Register | Login | |||||
Main
| Memberlist
| Active users
| Calendar
| Chat
| Online users Ranks | FAQ | ACS | Stats | Color Chart | Search | Photo album |
| |
0 users currently in ROM Hacking. |
Acmlm's Board - I3 Archive - ROM Hacking - General Super Mario 64 hacking / TT64 Progress thread | New poll | | Thread closed |
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | Add to favorites | Next newer thread | Next older thread |
User | Post | ||
Raccoon Sam Boomerang Brother Custom Title Since: 11-20-05 From: Correct Last post: 6294 days Last view: 6294 days |
| ||
Excellent.
Could you perhaps make a compatibility list? With OSes and their versions? |
|||
Guy Perfect Since: 11-18-05 Last post: 6296 days Last view: 6295 days |
| ||
Mac OS X and Win32. | |||
Raccoon Sam Boomerang Brother Custom Title Since: 11-20-05 From: Correct Last post: 6294 days Last view: 6294 days |
| ||
Originally posted by BGNG Tiger, Panther, Jaguar, Puma what? |
|||
proffessor_gad Red Koopa Since: 01-27-06 From: Mars Last post: 6325 days Last view: 6325 days |
| ||
Mission successfull! I have successfully decompressed/recompressed super mario 64, and it worked perfectly on the emulator! I'm so happy!
P.S. I made no modifications to the decompressed file, maybe if I did.... |
|||
Guy Perfect Since: 11-18-05 Last post: 6296 days Last view: 6295 days |
| ||
Originally posted by Raccoon Sam While you're at it, why not say "95, ME, 2000, XP what?" |
|||
VL-Tone Paratroopa Since: 11-18-05 Last post: 6485 days Last view: 6485 days |
| ||
Originally posted by Raccoon Sam I'm not sure it's a good idea to be a smartass about OS X versions names here It should work on Mac OS X 10.3 and 10.4 (and probably 10.1 and 10.2). As for Windows, I guess it will work on any Win32 OS, which means 95 and up. I would support Linux if I could, but I simply can't... I'm sincerely sorry about that Someone else will have to do that, and I'll help this person if necessary. (edited by VL-Tone on 03-21-06 04:21 PM) (edited by VL-Tone on 03-21-06 05:48 PM) |
|||
Guy Perfect Since: 11-18-05 Last post: 6296 days Last view: 6295 days |
| ||
That's what C is for, my apprentice. You're already looking into it. If you program in C, you can have cross-platform out the wazoo. | |||
VL-Tone Paratroopa Since: 11-18-05 Last post: 6485 days Last view: 6485 days |
| ||
hehehe
For now, I'll only use it for external commands, and maybe someday port the whole editor, to C or something like that, but don't count on it, I'm not that young anymore, I already learned too many (useless) things in my life, like how to load a program from an audio tape using a 16k Timex Sinclair 1000 micro-computer. (edited by VL-Tone on 03-21-06 11:58 PM) |
|||
Cellar Dweller + Red Koopa Since: 11-18-05 From: Arkansas Last post: 6304 days Last view: 6295 days |
| ||
I just did some looking into regarding the repointing not working. Here is a disassembly of the code that contains the start and end pointers:
80286d40: 3c 05 00 11 LUI a1, 0x11 (17) I patched Mupen 64 to display when the JAL instruction is executed with 0x802787d8 and tried to run the repointed ROM. It did not indicate that the JAL instruction was ever executed. When Mupen 64 stops emulation, it prints the contents of the registers. When I stopped the hacked ROM, I noticed that the PC was near the beginning of the ROM. Next, I patched Mupen 64 to magically change the a1 and a2 registers to point to 0x800000-0x80bd10 when the above JAL was called and a1 pointed to 0x108a40. I then ran a ROM with the MIO0 file copied onto the end of the ROM but no other changes. It ran fine. It seems that changing this part of the ROM causes a checksum to fail and hang the ROM. There are several checksums in a N64 ROM header. Perhaps using one the header checksum fixing tools could help. |
|||
Guy Perfect Since: 11-18-05 Last post: 6296 days Last view: 6295 days |
| ||
The first megabyte of PRG-ROM data after the boot code (that is, 0x1000 to 0x101000) is checked against two checksums in the ROM header at offsets 0x10 and 0x14. I believe Super Mario 64 uses the CIC-NUS-6102 boot chip, so you'd have to recalculate the checksums accordingly if you change any data in this portion of the ROM.
Originally posted by VL-ToneAssuming "10A68" refers to ROM address 0x10A68, then that's the problem right there. Shame I didn't realize that sooner. 0x10A68 falls within the 0x1000 to 0x101000 range of offsets. If you change it or anything related to it, the header checksum will fail when the game boots and the CIC code will stick the execution into an endless loop. There's a DOS program out there that I'm currently using for the F-Zero X editor called rn64crc by RaO. You can grab that at Dextrose. Otherwise, I have some C code that calculates those checksums for a variety of CIC-NUS chips, but it's encased in a thick protective barrier of GNU GPL. If you plan to use this code in your project, I highly recommend you create it as a separate command line utility and release the source code with it. Attached is the file, along with the GPL text file, in its form verbatim as it was when Parasyte gave it to me some time ago. (edited by BGNG on 03-22-06 01:48 AM) |
|||
VL-Tone Paratroopa Since: 11-18-05 Last post: 6485 days Last view: 6485 days |
| ||
Originally posted by BGNG Actually, it's a typo, which I corrected. I meant "The MIO0 file 0x108A40 is a special case" which is outside of the first meg. But the code Cellar posted is at 0x3AC0 so it is part of the checksum. This code contains the pointer to the MIO0 found at 0x108A40, and that's what must be modified to be able to edit this particular re-pointed MIO0. I didn't stumble on this checksum problem until I tried to edit some table at 0xEC7E0. The rest of the level data is outside the first meg. I downloaded the n64sums.c file. I think I found a potential endian issue in that command:
This is the same function I had to edit to make the YaZ0 compressor work on PPC. Can I modify it under GPL? (I'm pretty clueless about these licenses) What do I have to do if I modify it? (edited by VL-Tone on 03-22-06 04:58 AM) |
|||
Guy Perfect Since: 11-18-05 Last post: 6296 days Last view: 6295 days |
| ||
Read the .txt file in there for notes of how to use something licensed under GPL. Basically, if you modify it, make sure you post in the comments at the top of the file when you modified it.
The BYTES2LONG() macro there is endian-safe. N64 ROMs are always stored big-endian, since that's with the RISC 4300i is using. All that macro does is take four bytes loaded from the ROM and shift/combine the bits to make a long variable out of them. Regardless of the endianness of your processor, that macro will do its job correctly. That .c compiles to a command line utility as it is, so give it a shot and see if it works the way you want it to before changing anything. |
|||
Cellar Dweller + Red Koopa Since: 11-18-05 From: Arkansas Last post: 6304 days Last view: 6295 days |
| ||
Fixing the checksums did the trick. I had to patch in the new checksums manually, as the utility did not have the capability to patch the ROM.
The most important issue with the GPL is that you make the source code of the modified version availible. The best way to do this is to include the source code along with the binary, as this will eliminate the need to ensure that that the source code is available for three years. |
|||
VL-Tone Paratroopa Since: 11-18-05 Last post: 6485 days Last view: 6485 days |
| ||
Ok, I compiled the n64sums program on gcc without any errors, and it seems to work without any modification.
For a mario64.z64 ROM I get: BootChip: CIC-NUS-6102 CRC 1: 0x635A2BFF Calculated: 0x635A2BFF (Good) CRC 2: 0x8B022326 Calculated: 0x8B022326 (Good) I can read back this output in Director and automatically patch the ROM accordingly, so it's all good! |
|||
Guy Perfect Since: 11-18-05 Last post: 6296 days Last view: 6295 days |
| ||
Excellent. Check your PM's, VL-Tone. I've given you a Windows compile of it.
I think it might only work with Z64, so be careful with it. If anything, just have your editor swap everything to Z64 if necessary. You have the means for that. Remember: When you release anything with n64sums in it, be sure to include the .c and gpl.txt with the distribution. Putting those together with your finished editor will make sure you conform to everything stated in the GPL. (edited by BGNG on 03-22-06 07:06 PM) |
|||
VL-Tone Paratroopa Since: 11-18-05 Last post: 6485 days Last view: 6485 days |
| ||
The ROM will be converted to .z64 anyway using the byte swapper. n64sums will be run after as the last process.
Thanks for the compile! |
|||
HyperHacker Star Mario Finally being paid to code in VB! If only I still enjoyed that. <_< Wii #7182 6487 4198 1828 Since: 11-18-05 From: Canada, w00t! My computer's specs, if anyone gives a damn. STOP TRUNCATING THIS >8^( Last post: 6295 days Last view: 6295 days |
| ||
BGNG, not sure what's wrong with M0CK (but there's something), but do recall that my own compressor works except for that one padding bug. Maybe you could compare the code to see what they do differently. (And yes, I should rewrite mine to have code that isn't a huge mess, but that's beside the point. ) | |||
VL-Tone Paratroopa Since: 11-18-05 Last post: 6485 days Last view: 6485 days |
| ||
Some little update before this thread gets burried
My "Super Mario 64 ROM extender" is almost ready. It works on my Mac, but the Windows version doesn't... I just installed Windows XP on Virtual PC, and I'll try to find and squash the bug. For some reason, the shell_cmd Xtra doesn't call anything on Windows. Once this one is fixed, I don't think I'll have many other cross-platform problems, Director projects, even complex ones, usually run exactly the same on both platform. A few basic issues can happen with path separators, but these are taken care off now. This program will be useful for other reasons than my editor. The ROM it produces can have its textures edited without having to deal with compression. The font and text MIO0 will now be editable, thanks to Cellar Dweller and BGNG. Once the ROM extender is released, I may release some simple quick text and texture editor, and/or some interesting IPS patches to be used with the extended ROM No Photoshop involved I swear! Yes I could put 5 Bowsers. As for moving him in other levels, this won't be possible in my editor until version 1.5, as it involves switching which bank is loaded in which level, and inserting a special object. Actually, putting extra Bowsers require deleting and adding objects, which won't be possible in v1.0 It's much harder to battle 3 Bowsers at the same time. While you pick one by the tail and start spinning, the other two will toast you Bowsers have no collision detection between themselves, and act independently, each one will become a key if you beat them. At first, the extra Bowsers will look stunned and won't attack, you have to pick them and throw them so they wake up. It seems that the behavior code will decide which kind of Bowser you get depending on which level you are. So maybe it will be hard anyway to move it to other levels. (edited by VL-Tone on 03-25-06 12:32 AM) |
|||
Guy Perfect Since: 11-18-05 Last post: 6296 days Last view: 6295 days |
| ||
I always thought a video clip of tossing Bowser off of the mountain in Bob-omb Battlefield would make for one nice hype-inducing promotional video. | |||
VL-Tone Paratroopa Since: 11-18-05 Last post: 6485 days Last view: 6485 days |
| ||
Originally posted by BGNG I'll do my best to make this possible, but I cannot guarantee it. Personnaly I would like to battle Bowser on the top of the castle Great news, Windows version of the ROM extender is ready and working! (Mac version later today.) I'm confident enough to release it now: http://rapidshare.de/files/16368233/M64ROMExtender_1.1b.zip.html It's on rapidshare, you have to click the free button and wait a few seconds until the download can be started. A Read Me file is included. Have fun! (edited by VL-Tone on 03-25-06 04:35 AM) (edited by VL-Tone on 03-25-06 04:38 AM) (edited by VL-Tone on 03-25-06 04:42 AM) |
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | Add to favorites | Next newer thread | Next older thread |
Acmlm's Board - I3 Archive - ROM Hacking - General Super Mario 64 hacking / TT64 Progress thread | | Thread closed |