[N/A] Text and Hex Editors - Hext Tools 3.0

  • Thread starter Thread starter DLPB_
  • Start date Start date
Status
Not open for further replies.
DLPB Tools is released.  All 7 programs in 1 package :)

Download HERE

I will be adding some more tutorials in the coming days.  For now we have 2, the main format:


and HextLoader


I would appreciate some feedback, and tests especially with regards to HextLoader.
HextLoader should allow 2012 FF7 users to add some of the cheats/tweaks from Menu Overhaul,
although the main graphical changes and fixes only work for the 1998 version.
 
Last edited:
Request: Could you add a Hext format instruction that allows Hexeditor to read the value at a certain address (with a user-specified value size), then use that value as an in-file offset to write a subsequent value to?

For example, if I know that the header of a given file type is always the same size and uses the same structure, and that at 0x4 there is a 4-byte value that points to the in-file offset for a certain type of data, and I want to edit the first byte of that data in 40 different files, I could use a feature like that requested above to point Hexteditor at address 0x4, have it pull the 4-byte value from that address, use that as the destination offset to write to, and change the value at that destination to 00 (then automate with a batch script, etc).
 
You can use Hextract to extract a list of bytes from a file at a certain address and it will place it in hext format, but I don't have any plans to do more than that at this time.  8-)  The primary function of these tools is to provide basic editing ability.  At the moment this is based on 1 file, and not multiple files.
 
Last edited:
Ah; I didn't even notice Hextract :)  I'll play around with that and see what I can come up with. Thanks.
 
1.31

Some minor changes.  I've made it so TextChange can take multiple case insensitive flags on one line.
HextLoader has been given a new "F" button that will open the folder of the current file for you.

Some small changes here and there.
 
Last edited:
I've been looking at all these again and have done an immense amount of work to optimize them (hence the reason Reunion 02 hasn't been released).  Made them faster.  Added a few more features.  I'll release them as soon as I can.  For now these are the main changes I have made:

Hexteditor:

1. Search and replace allows starting address, and number of changes to make from that address.
2. You can specify the target size of the exe (in decimal) so that wrong size exes are untouched.
3. Optimized code as much as I think I can.
4. "Changes made" counter.

TextChange:

1. Added new "delete line" mode
2. You can specify the starting/ending line of files to be altered.
3.  When specifying a folder, you can choose which files in the folder to include, or to skip.
4.  Massive changes to code.  Optimized.
5. Whole-word flag added.  This is because I now know how to code that properly.  As opposed to before when there was a 5000%+ slow down :P
6. "Changes made" counter.
7. Force Write added.


All of the above have had summaries adding, and some command line parameters.  Skip the log, and autoclose the app (no summary) are among them.

I've changed all the other tools too, optimized them and so forth.  Fixed a few bugs.
 
Last edited:
It should do... it's the most basic and easy program I have ever made.   ;D
 
I've added a find/replace option to hext.dll also.  I am now working on adding an "address is value at pointer"

For example:

0056D234^= 22

Would mean "find what 0056D234 points to. Note the use of ^ to signify that this address will be changed to what the pointer points to.  Of course, this may be needed in junction with a + or -.  So...

+10
0056D234^= 22

Would be "the address is what 0056D234 points to and then + 10 to that address"

A real example of where this could be useful is FF7s font spacing data (which comes from window.bin).  Ordinarily, you'd be forced to edit window.bin, because its contents are placed into memory from a pointer.  Their final destination in memory shifts and is not static.

So...  you point to an address where the actual font address is being referenced (obviously you would have to find that), and then you tell it to change bytes at that address.  You can use + - if the pointer destination is out by x bytes.

Most people won't need this option, but it's going to be there for completeness.
 
Hello! You sir, are a beast!

I wanted to send you a private message thanking you for all of the man hours you've put into your Mods and your Tools, but you don't accept them!  The Reunion is pretty damn amazing.
Also, as a musician, Anxious Hearts and RaW are my favorite mods EVER.  Thank you so much for giving us decent soundtracks!

Your DLPB Tools are amazing.  I have probably spent 10 hours between the Tools and your Tutorials trying to figure out how I can even approach my problem.  These are breakthrough modding apps!

I know you don't have time to help people with their projects, but I had a question I hope you can help me answer.
I've made a higher resolution Triple Triad card master graphic for FF8, and I've been able to make it a TIM file and I'm trying to inject this higher resolution TIM file into the main EXE - but - I'm running around in circles at this point.  I'm no programmer (made a crappy text adventures in GW Basic about 15 years ago) and I'm finding myself pretty lost.   

I know the file is at 7A9B10 and ends at 820B2F, but I have no idea how to replace it properly... or how to get the exe to read a different file.   It seems like an awful lot of bits of data to extract/edit manually with the Hext procedure, so I don't know what I'm doing wrong.  I tried other methods (TimViewer has an export/import feature), and the only thing that did was crash the EXE...

Do you have any suggestions?  Am I barking up the wrong tree, per say?

Thanks again for being such a huge contributor to the modding community!
 
I'm afraid I don't know much about tim files.  You'd have to create a new thread.  This one is just for my own tools :)
 
I'm afraid I don't know much about tim files.  You'd have to create a new thread.  This one is just for my own tools :)
Already made that topic, but it seems everyone is at a loss :P

I was really just wondering if I should keep trying to make this work with your Tools... so i'll let you know if I run into any luck! :)
 
See, as far as I know... when you want to replace a picture with another picture at the hex level, it's not as easy as just dumping in the new hex values. There are likely pointers in the exe that will also need to be modified.

But what picture are you trying to change?  Can't you just use Aali's modpath?
 
See, as far as I know... when you want to replace a picture with another picture at the hex level, it's not as easy as just dumping in the new hex values. There are likely pointers in the exe that will also need to be modified.

But what picture are you trying to change?  Can't you just use Aali's modpath?
Yeah, I figured there would be pointers and whatnot that would need to be adjusted (new pixel resolution, etc.)

I have done an upscale of all of the Triple Triad game cards in FF8 -- which actually is just one really big (long) graphic.

Aali's modpath only works for the menu.fs file path, I believe.  (I made the new improved SeeD mod using it.)  I keep trying to find out if there are -any- other paths, but run into dead ends. FF8 barely has mod support through his driver atm
 
Last edited:
Ok, hopefully later today, I will release 2.0

It's been a bit difficult getting all this updated.  I am back finalizing Reunion now too.

Code: [Select]
Code:
DLPB Tools v2.0Latest changes (30.Apr.2014)General1. All console app tools now have a new switch option /nolog    When /nolog is used, error logs will not be generated2. Code for ALL tools has been optimized, sometimes resulting in big speed ups3. To be on the safe side, when writing to memory, I have added FlushInstructionCache4. {{ and }} tags have been added to the Hext format. They instruct the tools to ignore all text with the starting tag {{, until the occurrence of the ending tag }}5. Lines starting with a hash (#) will also be ignored6. All tools have had their history erased. From now on, the tools package as a whole will be given  a revision number7. Numerous bug fixes in all tools8. Most tools now have better loggingHext.dll1. Ability to retrieve addresses from a pointer address2. Search and replace function added Hexteditor1. Filesize check can now be specified2. Search and replace function supports a start address and how many occurrences to replaceHextLoader1. Options saved as you select them.2. Minimize fixedHextract1. Tool now recognizes more than one file from the IN folder2. New command line parameters added- /A8 /A16 /B8 /B32 /B643. More flexibility with formatHextCorrect1. New command line parameters added- /A8 /A16 /B8 /B32 /B642. Double blank lines are now deleted3. Blank lines are ignored when grouping bytesTextChange1. /forcewrite switch added2. Round brackets can now be used to instruct the tool which specific files to edit, or not edit3. Wildcards for file types are now placed on line 1, along with the folder path4. Startline and Endline of target files can be set5. Tool will not save a file that had no changes
 
Last edited:
Well, it's delayed again.  Here's what's happening.

I am getting rid of Hext.dll, multi.dll,  and the hext function of HextLoader (which will be renamed). 

Instead, I am creating a launcher that combines the abilities of all 3.  The launcher will be able to load Hext files, multiple DLLs, and programs (like FF7.exe). It will be universal, and will do away with needing to load dlls into memory.

To be honest, using hext.dll was a desperate way to achieve this without having to create a separate program.  But once hext.dll has added those values, it just stays there in memory doing absolutely nothing.
 
Last edited:
Finally, this is out of the way!  2.0 is released.  See the first post for download link.  You will need 7zip to extract the tools.

There are too many changes to list, so see the change log when downloaded.

The main addition to this package is HextLaunch.  This tool can launch programs and then inject DLLs or modify virtual memory based on Hext instruction lists. Please see the documentation.

I will clean the first post up, and add Youtube tutorial at a later time.


 8) Back to the Reunion tonight!
 
I went to re-download the file to make sure my step-by-step instructions are clear, and it seems like Google says your file is corrupted by a virus and only the owner can download it.
 
This is probably because Google is an idiot that uses heuristic detection, sees DLL injection, and assumes its a virus. I've had issues with things I knew to be fine, with programs I made myself even, because Google decided that guessing is a good way to determine what is and isn't a virus.
 
Status
Not open for further replies.
Back
Top