Now, I know this may be considered bumping. Also, whatever I'm about to post may be obsolete due to obvious changes in available tools since I went dormant. However, I didn't want to create a new topic, and I had ALOT of fun programming the newest release of the SNES-->GBA converter.
I hoping that, even if this tool is pretty useless, that I at least did SOMETHING productive.
This release is a complete 100% rewrite of the code. It is more stable, and it converts better too.
It is written in C++, and for any programmers who exist out there, the code is SOOOO much more clean and readable than in previous releases.
-Manual overrides, of any kind, have been removed for this release. This is because, in next release, I am developing a text-based configuration file parser for overrides instead of using binary files. That way, you could use notepad to add in custom rules for ignoring sprites, level pieces, etc.
-The handling of the "unknown bytes" in GBA screen exits and level entrances has been improved. Assuming that your input GBA rom is 100% clean, the converter will take default sample values and use them in the conversion process. Level entrance values are sampled from level 1-1. Screen exit values are sampled from the first screen exit of the first room of level 1-2.
-No more batch file needed.
-The program accepts default filenames, in case you don't want to use command prompt. It uses Yoshi.SMC and Yoshi.GBA.
-The program no longer mixes up the level entrances of the GBA secret levels and GBA extra levels.
Simply copy cmd.exe from C:\windows\System32 to the same folder as this program.
Next, assuming that your roms are named YOSHI.GBA and YOSHI.SMC, open cmd.exe and type:
YOSHI.EXE YOSHI.SMC YOSHI.GBA
And the conversion will be done!
By the way, the program will try to use default filenames without the command prompt.
It will try to use YOSHI.SMC and YOSHI.GBA by default.
<Fixed link is below>
Many new bugs have been found. Such bugs include corruption of random screen exits, Yoshi being spawned in the ground at the beginning of levels, and...tile data of the map screen being overwritten????
I'll get to work on fixing these immediately.
Bugs have been fixed! The converter now decodes all pointers properly, and because of that, it converts so much faster.
The GBA-only bytes for screen exits have been figured out! This release should solve alot of issues.
The converter now has a GUI, and now features scripted sprite overrides. I'll go more in depth with these in a moment.
The scripting system goes as follows:
If you want the converter to ignore/skip sprite 1D9 (473 in decimal) you would add this to the script:
The number of spaces is VERY important. The converter's parser works by alot of assumptions, so you have to be specific down to the very last char.
Now, using multiple lines was supposed to work, but bugs out as of now. To use multiple overrides, you would use this for example:
Notice how there is no extra space in between the first sprite id and the second "@SKI". That is critically important.
Now, "@SKI" isn't the only supported command type. There is one other: "@REP". It simply replaces one sprite id with another.
To replace 1D9 (473 in decimal) with 1DE (478 in decimal) you would use:
And one more example, where I mix a skip command and a replace command:
This would replace all instances of 478 with 473, and skip all instances of 474.