Link’s Awakening disassembly progress report – week 5
kemenaran.winosx.com
kemenaran.winosx.com
I do wonder however if that's certain... in the example where bushes have been overlaid with flower titles, are we certain this does not change some property of the tiles in meaningful ways? In the same room, you can also see how the cave entry is painted over with the statue, and in this case that cave entrance is something that gets revealed later in the game.
In any case, a great series. This is exactly the type of content I come to HN for.
I too enjoy the traces of development decisions that must have been made decades ago. As an example, when making a toy Gameboy emulator, I discovered Tetris writes to a memory address that is normally used for bank switching, yet the game has no memory bank controller. Given that it just barely fits in 32K, with 60 bytes or so to spare, I presume they were using such a controller during development and then maybe spent some time cramming it into 32K to spare the cost of the part.
The compression algorithm is said to have been written by Satoru Iwata himself, giving a hand to the overloaded GameFreak team when the development of Pokémon G/S was hitting size limits pretty badly [1].
There is a readable version of the decompression routines in the Pokémon G/S disassembly repo [2]. As the code was originally written in assembly, it is not decompiled–only re-documented.
Which means the code we read is the actual code Iwata wrote it 20 years ago.
I really like seeing the traces of actual human beings in a disassembly. Noticing different coding styles; seeing where routines were written, then patched over later… We read code, but we see people.
[1] https://retrocomputing.stackexchange.com/questions/11476/how...
[2] https://github.com/pret/pokered/blob/10289bf/home/pic.asm
And lots of other sites that come up when I type “game boy browser emulator” into DuckDuckGo.
As mentioned on the featured article, Zelda: Link's Awakening is being released on the Nintendo Switch in a few months. You may be interested to see the graphics and art style: https://www.youtube.com/watch?v=_U-_XfDGgDw