11 users online: Darknubs, Dispace, Duende, Emera1ds, isaix, Jgb007, mason,  Nanako, pinguwahoo, Quaza, sholmes - Guests: 112 - Bots: 207
Users: 66,531 (2,384 active)
Latest user: MrJATGG

Yoshi's Island Disassembly Project [COMPLETED!]

x-post from C3

Hey! Near the beginning of the year, I decided that it might be fun to try my hand at disassembling Yoshi's Island. I quickly realized that I wouldn't be able to do this alone, so I enlisted Raidenthequick from the YI speedrunning community (#yoshi on go visit them, they're awesome), and we went full force on it.

Day in and day out we worked on this thing, often in a call. As a result of this, raiden became my best friend, and I could not have asked for someone better to do this with me than him.

Over the course of this project, there was finally a reason to implement YI ROM/RAM/SRAM maps, and raiden was enlisted to moderate them. The first site-wide Yoshi's Island collab hack, SMWCI, has started as well, and the disassembly has provided a great deal of help in making it one of the best YI hacks to date!

Without further ado, after 10-11 months of work, I present to you the completed Yoshi's Island Disassembly!


NOTE: This will not assemble. We're currently working on getting it to a state where it can be assembled, but as of now it will not.

Also, disregard the sometimes inconsistent formatting. This kind of thing happens when you have two different people working on the same thing. Raiden and I had our disagreements about some things, but nothing major. Additionally, the format for the beginning of bank 00 (and bits and pieces of other banks) is different from the rest because it was done before I enlisted raiden and we decided not to go with that format. It'll all be consistent once we format this thing to look pretty.

Special thanks:
p4plus2: for various things including helping me get started with disassembling, as well as being patient with all of my stupid questions.
ARM9: lots and lots of super fx help, as well as integrating super fx assembling into bass for us
Alcaro: for letting me have some space on his server to put the disassembly
Mattrizzle et al: for all the existing documentation for the game, which gave us a serious boost in the beginning
Ladida: for help in various areas
Lui37: for helping with music
#yoshi, both on caffie and speedrunslive: for being very supportive throughout the whole endeavor

Other links:
Our git repository you can view our entire progress in-depth here, (note: a lot of the commit messages are pretty crass)
Our disassembly thread wherein you can view our progress over the months to some extent (I created the thread a while after we started)
Yoshi's Island Disassembly Data Dump Wiki lots of documentation that wouldn't fit in a map or in the dis itself is located here

Warning: Opinions expressed by Lexie or others in this post do not necessarily reflect the views, opinions, or position of Lexie himself on the matter(s) being discussed therein.

Yoshi's Island Disassembly C3 Thread
SPASM - LevelASM for Yoshi's Island!
Yoshi's Island Disassembly Data Dump Wiki
Fanatical like a Demon
This helped me a whole lot. I actually found YI's instrument table and SFX instrument table because of this which will help a lot for the next part of my YI Soundtrack and how it's gonna be organized! Also on a FAAARRRR side note,
my girlfriend found a YI game and I got it on the 27th of December and started playing! I LOVE IT SO MUCH! I've been looking 14 year for one and IT'S SO MUCH FUN!!!
Major thanks to Suika Ibuki for layout!
I'm open for music requests, just DM me on discord and we can further discuss there.
SMAS Soundtrack Status: 100% finished
YI Soundtrack Status: 100%
YI Unsampled Soundtrack Status: 100%
NSMB Soundtrack Status: 7.89%
Killer Instinct Soundtrack Status: 14.63%
SPC Thread
From our family to you, keep your pants dry, your dreams wet, and remember, hugs not drugs.
I've been doing a lot of work reformatting everything to be much more consistent and clean, and also on the track to hopefully actually assemble. Progress can be found in the git repo for now, haven't yet updated the official release; would rather wait till more is done.
Okay, so I've gotten this to a very satisfactory point! I have everything assembling in purely asar, and it produces almost a clean ROM. The only issue (I think) is asar's handling of short addresses (namely, sms and lms instructions) not implicitly multiplying (or I guess dividing) the address by 2. p4 said he'd work on this, I don't think / hope it will be too hard an issue. Regardless, I'm 99% sure the code I have now is complete/clean/good. Only 99% because you never truly know until it's FULLY verified.

Once again, the git repo has the latest progress, not yet the release. But it will be updated when it is fully verified.
So I'm a total moron and didn't realize asar just had the source with it, despite p4 telling me probably on at least 6 distinct occasions.

I modified it to fix the aforementioned short address problem (I also uploaded this modified asar in the repo). Then I ran it and boom! Only one remaining error was present (meaning the 99% was accurate :3) so I fixed it and now we have a 100% CLEAN ROM assembling!! YAY!

All you have to do is, from repo root:

cd disassembly
../asar/asar assemble.asm yi.sfc

Or whatever you want to call the output file. As long as you're using a correct asar like the one in the repo currently is (p4 will be releasing this fix regardless eventually in the official one as well), it will be 100% clean.

Note this does not necessarily mean it's mistake-free. There can still be M/X flags that are wrong, data that is code, code that is data, etc. But it's a terrific start and likely 95% or more is completely correct, especially after the grueling process I just went through to correct all our mistakes!
oh sweet baby jesus it's glorious

sorry I haven't been active with this. life hit me in the face pretty hard and pretty fast. I wish I could still dedicate time to this, but my free time is basically non-existent these days.

fantastic work is being done by raiden, though. I'm really glad that this is still being worked on. good show!

Warning: Opinions expressed by Lexie or others in this post do not necessarily reflect the views, opinions, or position of Lexie himself on the matter(s) being discussed therein.

Yoshi's Island Disassembly C3 Thread
SPASM - LevelASM for Yoshi's Island!
Yoshi's Island Disassembly Data Dump Wiki
Thanks to Alcaro, I have updated the OFFICIAL release (same link as OP).

This now assembles and produces a 100% clean ROM!!