Banner
Views: 932,822,813
Time:
8 users online: bandicoot, chickaDEE Magazine, Hinalyte, KaidenThelens, morisot, Paithus,  RussianMan, Splat3r - Guests: 98 - Bots: 226 Users: 52,067 (2,106 active)
Latest: Graul
Tip: Verify that your hack's BPS patch is functioning correctly before submitting it.
Not logged in.
Star Fox Disassembly Thread!
Forum Index - Non-SMW Hacking - Misc. ROM Hacking - Star Fox Disassembly Thread!
Pages: « 1 2 » Link
Okay, next question.

The asteroids on the Asteroid levels are 0x0A entries, and are almost always followed by a 0x0C entry. Both of these entries point to model address 0xAE99, and the 0X0A entries point to another address that contains "Swarm" events, according to the wiki page.

Although the wiki lists several "swarm" event types, the only ones that I've seen are objects (the asteroids), and a jump event that just loops to the beginning of the asteroids. Obviously, the asteroid events don't actually loop forever, so something else controls when the asteroids start and stop.

Also, the asteroid model data is a bit odd. I'm still trying to figure out why the face data for these models is so different from the rest of the models.
Okay, I think I have some answers for the questions above.

It looks like the "swarm" records define the range of values to be used when spawning new objects. If there are 4 asteroid records with coordinates of 1000, 1000, 0, then four asteroids will be created with values between -500, -500, 0 and 500, 500, 0 (or something like that).

Asteroids, and all of the other "billboard" type objects have a vertex/face entry with a type of 0x50, which no other models appear to have. I believe this entry has a total length of 38 bytes, including the initial type byte. The only value that I'm sure of is that the second byte is the color/texture offset used by all of the other models.

The rest of the data appears to be largely meaningless, as all of these "billboard" models have four vertices, and two triangles. By just rendering these two triangles and the correct textures, I can now draw asteroids, projectiles, water splashes, explosions, etc.

I'll get all of this documented on the DataCrystal wiki, and on the GitHub project.
For anyone interested in extracting some of the compressed data from the Star Fox (and Star Fox 2) ROMS, user Everything8215 has created a utility that will extract and decompress a block of compressed data. You can find it uploaded to romhacking.net here: https://www.romhacking.net/utilities/1543/

I'm also porting this code to C#, and will upload it to GitHub fairly soon.
Now that we have the leaked source for the main CPU code and the SuperFX code, and we have tools to extract the compressed data from the ROM, the only missing information is the SPC700 code/data. I'm starting to disassemble and document the code running on the SPC700 on https://github.com/SpyderTL/StarFoxDisassembly.

If anyone has experience reverse engineering SNES audio logic and wants to help out, let me know. I'm fairly new at this, so if anyone has any tips, that would be helpful.

I'm specifically looking for the song events so that I can extract the data and modify it (change notes, instruments, etc.)

Thanks, guys.
Pages: « 1 2 » Link
Forum Index - Non-SMW Hacking - Misc. ROM Hacking - Star Fox Disassembly Thread!

The purpose of this site is not to distribute copyrighted material, but to honor one of our favourite games.

Copyright © 2005 - 2021 - SMW Central
Legal Information - Privacy Policy - Link To Us


Menu

Follow Us On

  • YouTube
  • Twitch
  • Twitter

Affiliates

  • Super Mario Bros. X Community
  • ROMhacking.net
  • Mario Fan Games Galaxy
  • sm64romhacks