This is a hack of Pokémon Blue but I have played the Japanese version of Green in its entirety side-by-side making scripting changes. I must have changed over 200 scripts (excluding counting Pokedex entries; though these are translated fully, too). If any of you know me here as a hacker, or has even checked my own forum, you know the quality and effort that I always put into all my works. This hack is a heavily ASM-based one. Everything matches Green perfectly. The intro, SFX changes, logo scrolling, sprites, etc. Everything that you can think of has been adapted. But wait! There's more. In addition, I am a major OCD freak when it comes to fixing glitches. I've fixed every known glitch in this version known to man. And I mean all! I fixed PP UP glitch, Old Man on the Roof, Critical Hit glitch, OAM glitches when using Gameshark (there was a check that caused garbled sprites). I fixed all glitches according to various wikis and YT videos that I visited/saw.
About Missingno.: I fixed the glitch that caused Missingno. to appear. The issue was a tile collision detection glitch. The route next to Pallet and Cinnabar Island east coast tile was set as a grass tile, but with surf attributes. Grass PKMN data is stored at a different location from Water data. When it called that data on the Route next to palette, wild grass Pokémon such as Pidgeotto and Tangela would show up. But the reason Missingno./M block and other random Pokémon came up on Cinnabar (based on the previous Grass area visited) was due to random data being loaded into the grass slot. (This is because the east coast of Cinnabar is really mapped as the water route and no grass data was assigned to it, unlike the route next to Pallet.) It took me a few hours to fix but I did a CALL to free space where I did a CP (HL) check to fix this. In addition, I've left an easter egg in the game for avid gamers: Missingno. no longer occurs by normal gameplay, but if you use a Gameshark or some other cheating device, you'll see a brand new custom Pokémon I created! (Missingno. would always set the Overflow flag and its data was being drawn from identifier $FF. Missingno. would turn into Rhydon upon depositing it into PC because there is a check to turn any invalid Pokémon into Rhydon, which has an internal number of $01. [Internal PKMN IDs are different from dex numbers.])
In addition, I've also recreated all the original attack patterns, such as Thunderbolt and Hyper Beam, but without the seizure-inducing flashes. (https://www.youtube.com/watch?v=RcsEPt2QaG8) I've made use of 30% freeze rates etc. Like I said, everything matches what a localized Green would look like. I will eventually share all my coding, but here's the custom ASM I did for Thunderbolt (I kinda lost my notes on the Missingno tile fix, badge fix and titlescreen scrolling fix and other ASM fixes, but I think I can find them, heh):
Code: Select all
;Thunderbolt ;Go to offset 0x78F13 change $F7 $4F to $C1 $7F. ;This points to the custom code. Thunderbolt_Green_ShaneM: ; 0x7bfc1 (1e:7fc1) ld a,[W_SUBANIMCOUNTER] srl a call c,AnimationFlashScreen ; if so, flash the screen [this is call c a16, btw] ret ;return from subroutine
I also found a bunch of beta code in Pokémon Green Japan. I'll recall one from another forum that I made:
Now, I also discovered beta objects etc., but I won't waste space describing all of this. Just know that this hack of Blue made into Green will always be sublime to anything Ninendo ever did with the GB Pokémon games. I also gave Pokémon an extended learnset from Yellow!ShaneM wrote: Onto the beta thing that I found in Green Japan. In the Seafoam Islands, the signs for the Seafoam entrance are on the outside. But there are two warps on the inside that don’t point to anything in particular. I stumbled across this while comparing object data with Green Japan. It could very well be a text post for ‘Welcome to SEAFOAM ISLANDS’ before it was moved to the outside. Compare data between my Green and Green Japan:
Code: Select all
;My Green SeafoamIslands1Object: ; 0x4484f (size=72) db $7d ; border tile db $7 ; warps db $11, $4, $0, $ff db $11, $5, $0, $ff db $11, $1a, $1, $ff db $11, $1b, $1, $ff db $5, $7, $1, SEAFOAM_ISLANDS_2 db $3, $19, $6, SEAFOAM_ISLANDS_2 db $f, $17, $4, SEAFOAM_ISLANDS_2 db $0 ; signs db $2 ; people db SPRITE_BOULDER, $a + 4, $12 + 4, $ff, $10, $1 ; person db SPRITE_BOULDER, $7 + 4, $1a + 4, $ff, $10, $2 ; person
As you can see, the beta data is for signs, while every other version is empty there. I have not included it in my version, because Green Japan crashes when you press A by the unused pointers. Below, I have included pictures of where to press A, along a .sav file. You may use my Gyrados and Spearow to FLY/SURF between entrances to check this cool feature out!
Code: Select all
;Green Japan SeafoamIslands1Object: ; 0x44e2f db $7d ; border tile db $7 ; warps db $11, $4, $0, $ff db $11, $5, $0, $ff db $11, $1a, $1, $ff db $11, $1b, $1, $ff db $5, $7, $1, SEAFOAM_ISLANDS_2 db $3, $19, $6, SEAFOAM_ISLANDS_2 db $f, $17, $4, SEAFOAM_ISLANDS_2 db $2 ; beta signs db $0d, $05, $03 db $0d, $19, $04 db $2 ; people db SPRITE_BOULDER, $a + 4, $12 + 4, $ff, $10, $1 ; person db SPRITE_BOULDER, $7 + 4, $1a + 4, $ff, $10, $2 ; person
Everything matches! Pokémon Green sprites were compressed in .2bpp format and I had to create a routine to read them differently. They took up more space, which is why I expanded the ROM to 2MB.
Badge names have been restored. I had to add some tile IDs in to have room. Stupid Nintendo and their crappy interns. There was room for this but it took extra code. This took me 5 minutes to fix.
Beta ice tiles that I made use of in Seafoam Islands
Beta sign used in Seafoam Islands
Since Mew was only available through giveaway in BOTH Japan and USA, I've made Mew to appear in the Safari Zone surfing spots with a .00000008% catch rate. This is the only elusive change.
I redrew Celadon City!
Remember, this is 100% proper English and I did this myself. Nintendo apparently were too cheap to localize this or they didn't have interns with programming knowledge to do this. Special thanks to Skeetendo's IRC, where Padz and IImarckus help teach me some Z80 last year and taught me how to hack games. They are very good teachers and I credit them as this work wouldn't have been done without them showing me ASM.
Patch either the Red or Green patch to a clean copy of Pokémon Blue. Green is a hack of Blue and Red is a hack of my Green (which is, as I said, a hack of English Blue). I'll upload some of my ASM fixes I made later on when I find them. I believe I e-mailed several copies of the documents to myself last year to backup. I'll find them. Also, this is the newest build I have created. It fixes a glitch that I found earlier. This is my April 2014 build. Enjoy!