Super Mario 64: The Missing Stars (Rom Hack) by messiaen at 6:00 PM EDT on May 5, 2009
Hi!
Some of you will remind me from my thread about Mario 64 (and basically, Nintendo first-party) sequence format.
This is just to let you guys know that I finished my Super Mario 64 hack, called "The Missing Stars". It's the first ever complete Mario 64 hack and features, besides new levels, tons of custom music, including an original composition of mine.
Download it here: http://sites.google.com/site/messiaen64/themissingstars
Damn, there was a last minute bug due to a minimal change in an object position. Please redownload the patch if you have downloaded it before this message.
This hack uses extended memory, so I guess it won't work on a real N64 :(.
I was wondering just recently when we'd see a full hack of SM64. There's plenty of videos on youtube of kids dicking around in toad's tool, but to date I haven't seen anything solid. I'd like to play this! Shame my only means would be emulation.
Well, the title screen works, but when going into the demo or pressing start it freezes at the full white screen (music keeps going into demo, though). It's probably a matter of misalignment somewhere. I noticed the extender tool mentioned something about a future version doing 16-byte alignment, that might be required for ROM access via DMA (though iirc it was 8 bytes).
The title screen already runs some functions from the upper 4mb memory so I guess that means, unlike I thought, that it can work with the extension pak after all?
Have you tried running a "clean" extended ROM on your N64 just to see if the same problem happens? Since there is an open-source ROM Extender tool, I could try word aligning the data just to check if that would work.
The "new extender" output also freezes after hitting start or going into the demo.
Sure enough, if I have it round the "new offsets" up to the next 16 bytes it works, here's my diff. I don't know if this is a particularly safe way to handle it, though, as I don't take into account the actual file sizes, so they might overlap. I'm just guessing here.
Ok, thanks for the help. If I have some time today, I'll try sending you a version of the extended ROM with the alignment corrected. If that works, I can make a new patch compatible with the N64 hardware and try to convince VL-Tone (the guy who programmed Toad's Tool 64) to correct it in future versions of the extender :).
Edit: Ops, you edited your post after mine :). I don't know exactly what you modified, but what I was about to do is edit the tables.c file and change offsets like 0x00b1f8b5 to 0x00b1f8b4. There's a 32k space (if I remember correctly) space between the uncompressed files moved to the upper part of the ROM, so it's safe to displace them a few bytes.
All I did was have the program do the rounding itself. I removed the const from the table and added a loop to round addresses up to the >= 16-aligned address. If the spacing is as you describe then this should work fine, though I guess it makes more sense to just fix the table. 0x00b1f8b4 won't work if I understand the issue correctly, you'll want 0x00b1f8b0 likely. And I'd personally round up instead of down, to 0xb1f8c0 (0xb1f8b8 might work, too, but I didn't test 8-byte alignment). That way you're consuming your own padding, rather than that of the previous file.
[edit] Oh, man, I've known about Toad's Tool for a while, but I just got the pun. Awesome.
I played the hack and i was disappointed. it's the same wanky arbitrary approach you see on youtube. no rhyme no reason, just a "mess around", throwing whatever objects wherever just because you can, no real attempt at interesting level design or dialogue. random music choices as well... hah, were those originally midi sequences from vgmusic? easiest approach there would probably be to either stick to mario series compositions. imitating kondo's compositional voice from the ground up to create new compositions would take substantially more skill, but that would be exciting.
anyway, nothing inherently wrong with mess-around hacks, fun for about 5 - 10 minutes, but your first post made it sound more promising than that. :(
well, it's good to see these things are possible. hope someone really capitalises on it.