|
Time: Now - Date: Today - Weather: What can be seen outside. - Mood: How it feels. Answer to the universe: 42
|
Ok guys, I'm really sorry about this bug... I'm a little ashamed to admit this, but for this bug I didn't even try to reproduce it myself. I assumed that since I made zero changes in the texture saving part of the editor, these were weird issues that only some people were having.
But no, this bug was actually affecting everyone since 0.5.6b. Simply going to the texture editor and back would corrupt the ROM.
This had something to do with a new feature I was toying with but that was writing its changes at the wrong place, and corrupting a command in the ROM.
The new feature will resize Mario's shadow to match any change in its overall size. Since the size data is saved automatically when you quit the texture editor, the corruption would happen just by visiting the texture editor.
I just released version 0.5.9b which will fix this crashing ROM bug. To fix your ROM, open it with TT64 0.5.9b, and just go to the texture editor (then back to the level editor). This will automatically save the size and shadow data, AND fix the corrupted data. You don't need to click save, and you don't even need to edit anything, but you must go to the texture editor once. Further changes won't corrupt the ROM (obviously).
You can download version 0.5.9b at the usual address: http://homepage.mac.com/qubedstudios/ToadsTool64.htm
Version 0.5.9b attempts to fix an issue with checksum verification that would happen on Japanese and other asian Windows systems. Opening an already correctly extended ROM should now work on Japanese systems.
Note that this DOESN'T fix the problem with the ROM Extender on Japanese systems. This problem will require a partial rewrite of the app.
The problem with the ROM Extender is from the Binary IO Xtra. This Xtra enables very fast reading and writing abilities to Director MX. It's fast because it loads the binary data in ASCII string variables, instead of converting them to lists variables (arrays). The problem is that on Japanese systems, Director seems to have a different internal representation of string variables, which corrupts the binary data read into those strings. To fix it I'll need to use another Xtra, and read/write large amount of data with some conversion to list variables, and that will make it much slower. I'll probably have to split the program in two version, so that the fast, but less compatible version is still available.
This leads me to this question:
Is anyone here experienced enough in C or C++ command-line programming to help me write an all-in-one portable command-line version of the ROM Extender?
I could provide the source code for all the hard parts (MIO0 decompression, checksum calculation). Essentially, the rest is relatively simple, it's a matter of decompressing the MIO0 data, adding 16MB of padding to a copy of the ROM, then copy the decompressed data at some specific addresses, modify all the related pointers, then recalculate the checksum.
Having such a program would be very useful for TT64. First, it would fix a few issues some people are having with the program on some systems. It would work on Japanese OSes, amongst other things.
It would also provide better Linux support for TT64. While TT64 doesn't run natively on Linux, it does run under WINE. But the ROM Extender doesn't because on its reliance on Windows-specific command line utils. A C or C++ version of the ROM extender could be easily ported to Linux, Windows and OS X.
____________________
|
  |
|
|