I'd be really curious to see how the Pokemon Red/Blue split was done. Is it a C precompiler flag? Build config? Actual config? Cloned repo?
These are the values for each game:
Green: pokemon_type=0 pokemon_type_blue=0
Red: pokemon_type=1 pokemon_type_blue=0
Blue: pokemon_type=1 pokemon_type_blue=1
The general pattern for branching between game variations looks like this across the codebase: ifn pokemon_type
ifn pokemon_type_blue
; blue
else
; red
endif
else
; green
endif
Conditional assembly directives like `ifn` are resolved statically during assembly, so only the code between matching conditions is included as part of the output. To anyone interested in exploring this a bit more, I'd recommend reading Chapter 8 Section 13 of the DOS version of The Art of Assembly Language Programming [0], which starts on page 43 of the linked PDF.Bonus fun-fact: In the Pokemon Yellow codebase it says `pokemon_type=1` is yellow, while `pokemon_type=0` is pink! This suggests to me that the idea of Pokemon Pink with Jigglypuff as your starter was probably being floated around but it was eventually scrapped. (The only remaining options for a pink starter pokemon with a pink evolution in the original 151 would be Clefairy and Slowpoke, neither of which are very cute.) The idea of Jigglypuff as a starter is further supported by her appearance alongside Pikachu on the roster of the original Super Smash Bros. which seems rather unexpected unless they had bigger plans for her.
[0] http://www.plantation-productions.com/Webster/www.artofasm.c...
Source: https://m.bulbapedia.bulbagarden.net/wiki/Clefairy_(Pok%C3%A...
Very cool find about the pink version!
Thanks for this!
The downside is that we'll never really be able to play today's games nostalgically like we can with old burned-to-ROM games.
Online multiplayer games have a shelf life of sorts that depends on the servers being available and having other people to play with. There's a few examples of community-driven projects to revive classic online multiplayer games with mixed success but it'll just never be the same thing.
Anyone who's curious can find the download links by backtracking through all the Pokemon Prototype General threads under the Pokemon board on 4chan.
One of the leaks that caught my attention was the source for Pokemon Blue, partially because of nostalgia and partially out of curiosity to see what an old game's codebase even looks like. The first thing that stood out to me was the project's flat folder structure, full of hundreds of files; I guess I was expecting things to be a bit more structured. The source is more readable and approachable than I expected, although I've only poked around in some of the more obvious places and definitions. I'd recommend watching The Ultimate Game Boy Talk [1] before trying to dive into any code.
[0] https://www.youtube.com/watch?v=n8G7eq0GlQs
[1] https://www.youtube.com/watch?v=HyzD8pNlpwI