Its hard for me to believe that i’ve been maintaining this program since 2011.
I’ve added to this as I needed extra functionality and for the last 12 months or so its been untouched but for the last few weeks I’ve been rewriting some parts I wasn’t happy with and changing a few things around.
Its now got to the point where I think its pretty much complete (although i’ve said that before) so though it was about time I did a proper post on some of the things it does and how to use it.
I wont go into everything as I dont think I need to but let me know.
What does it do?
Back when I started this program I wanted a quick, easy and no fuss way of quickly interleaving, deinterleaving and byte swapping files. That’s exactly what it did but that’s all it did.
Take a look
What it does now:
- Create a new files filled with recurring byte or word values
- Analyse a file (8 bit or 16 bit) – check for stuck bits, upper and lower halfs matching, etc
- Bit manipulation – simulate stuck bits in a file & swap bit order of address and/or data bus
- Byte swap
- Deinterleave
- Invert the whole file
- Manipulate – XOR, swap bits, simulate fixed bits
- Reverse the file
- Split the file in to smaller files
- Swap the upper and lower half of the file
- Concatenate up to 4 files at once
- Interleave in 16 bit, 32 bit or 64 bit format
- Compare 2 files – checks how many bytes match
- Display CRC32, SHA1 and MD5 hash values
Creating a new file
Click the ‘Single File’ menu and select ‘Create a new file’
You should see this
You can fill the new file with a byte pattern or a word pattern.
To fill with a specified byte pattern you can enter something like this
This will fill each byte with a value of 0x55
To fill with a word pattern you will enter
This will fill the file with the word value 0x55AA
If the slot is empty you can also load a file by double clicking on the slot.
You can overwrite any loaded file by dragging and dropping a new file onto the slot.
Analysing a file
Analysing a file check for a few things.
First you will need to select from the menu whether the binary file you loaded is from an 8 bit or 16 bit source.
The output from the analysis will be displayed in the Log window.
In this example I have created a new file filled with 0x0
As you can see it has flagged up all the bits (8 bit) as being stuck LOW. This means that throughout the file non of the bits changed from logic state 0.
It also shows that the upper and lower half of the file are filled with 0x0. If the file (or half the file) was filled with 0xFF then this would be flagged instead.
Finally, we have flagged up that the upper half of the file is identical to the lower half of the file.
Viewing the file contents
There is a basic HEX viewer built in to the program. Just double click on any of the loaded slots to view it.
Checksums
There are 3 different checksums that the program can show you.
The default is CRC32 but by clicking on the “CRC32” box you can cycle between CRC32, SHA-1 and MD5.
Compare files
If any loaded file is the same as another file that is already loaded you will get an instant notification in the Log window that is matches
If however the files are not a match, its sometimes nice to see how much of the file actually does match. For example, if you have a a new revision ROM dump of a game you might want to see how much has actually changed. If its just 1 byte different then it could be bit rot or a region code change.
I think the rest of the functionality is self explanatory so wont go into it.
The program is in the software section now.
Please do let me know if you find this program useful, find any bugs or maybe want to see something added or changed (no guarantees though).