Alright, never put items after the floors. This is very, very bad, as it actually causes a myriad of problems whenever the game tries to assert the item list on its lonesome. Effectively, this has been adding floors. This caused the item descriptions to be offset by 21 spaces once you get to the TMs. The fact it worked before was a miracle.
Anyway, all considerations have been made when doing this, so it should all be just fine.
If you need to test if the items are ok, check the Up-Grade on Porygon, as it's the last in the list. Checks showed it was ok for me.
Also, Old Sea Chart now uses the localised name - Old Sea Map. This actually fits in-game, which is good.
- Regional trades now dummy out the "-A" thing etc so they look nice
- Added Celadon, Saffron, Viridian, and Vermillion regional trades
- Added Galarian Sidegrade trades to the S. S. Anne, but Perrserker and Sirfetch'd specifically don't work. I have zero clue why, as they work the same as the rest.
- Corrected grammar in the "Happy" text when you finish a trade
With me moving the Trainer AI elsewhere, I was able to optimise the party stuff a little bit. There's a lot more space and from what I can tell it works fine.
There are now three separate files - one for standard trainers, one for the rival & oak, and one for scaled parties (aka gym battles and related). This is mainly for organisational purposes.
If I run out of space again, I'll rework the Trainer AI script to pull parties another way, storing the party files in individual banks.
- Move Deleter and Move Relearner are added, featuring updated code from Shin Pokered, which took the code from Mateo's Red++ hack. They replace the Trader in Celadon University. The code has been updated quite a bit to fit the modern standards of pokered.
- The Trader has been moved to the trade room in Cinnabar Lab, which is thematically appropriate.
- Eevee's L1 learnset now appropriately features Tail Whip; this was a mistake made by Martha when porting Yellow learnsets.
- Fast Text cursor slot is fixed
- New ROM Bank stores the new maps as it got full when adding the move relearner/deleter - Maps 21 will still have space though.
- WRAM has been fiddled with, please please read the notes if you edit the Move Relearner area, it needs quite a bit of space.
- Wild data for Mt. Moon and Route 22 has been tweaked a little bit.
This code has a lot of problems with solutions that me and Frrf can't seem to figure out. We've taken a lot of references from Erika's Gym but we've got many bugs after Yujirou is defeated, such as one case where you end up instantly doing the rematch fight, which is insane because there's no way this can actually happen.
What's committed is a fight that can be re-fought when it shouldn't.
Seems to interact oddly with Saffron but I believe this is because of the way Team Rocket works. The event itself works fine.
Also added the Up-Grade, as before, Porygon was evolving via Trade.
Uses text referencing LGPE, and has a similar location.
Because of the sprite limit in Saffron, the Pidgeot NPC has been removed.
Thanks to Frrf for helping me fix the broken code I initially sent in. This commit refines the mode so that the Oak Lab cutscene is finished and the party picking process is all concrete.
Also, given Surge is a fight, the S.S. Anne Pikachu rival can have Raichu, surely...
Also, the UnusedNames files were, in fact, needed...otherwise, the item names get all corrupted. Probably left some code behind.
So we officially have a new funky mode!
So some bits of this are untested, but the base starters are unaffected. I had to work a lot with the sprite limits so Oak's lab has been changed a bit.
This adds a Pikachu and Eevee "mode" to the game, allowing you to pick them as starters. When doing so, the Rival will always pick the opposite.
There are some glitches;
- Picking Charmander makes Blue erase himself from existence
- Picking from anywhere other than the front of the table may have odd results.
- Oak has to be shown in the lab at the start from now on for some reason; side effect of removing the dexes, there's definitely a fix for this.
These are from me not finishing the ball picking process - it was a little weird.
Parties based on starters have been updated but I had to cut out a lot of unused trainer slots.
Also the unused names were removed.
Bill's House is now finished and fully functional, save for the PC. I've left some commented-out code to have the dex entries in case someone wants to do that.
I did some groundwork for a Blastyke starter but it's really difficult and unwieldy, so I've left it out of this commit and likely won't bother. Pikachu and Eevee mode is definitely in the cards though.
This implements much of the stuff Martha wants for the regional forms.
- Alola forms have trades; version exclusives moved to Pewter
- Galar forms will be on the S.S. Anne to promote returning
- Regional form evos will be on the S.S. Anne possibly? Maybe something else.
Also contains a similar-to-LGPE trade quote. Extremely compressed quotes.
- Replaces the Old Rod with the Candy Sack, an item to evolve Meltan into Melmetal. Meltan and Melmetal aren't in yet.
- Improves Gym Leader and Elite Four AI by a lot. They still use items, they're just better. Fixes XSpecial use while we're at it; before, it didn't actually increase the stat...
- The Scarlet Book now takes up both shelves, one section for each Paradox Pokemon. I also moved the bookshelf so it looks nicer.
- Text in Celadon University has been reduced significantly, taking up less memory and being a bit more RBY-like. It has also been made more accurate (thanks to Daiginjo for translating my booklet!)
- The Magikarp researcher in Celadon University now gives TM Dragon Rage (no longer unused!)
- Added a guard for Mt. Moon Crater.
- Removed TrainerNamePointers, Blank Leader Name Code, and Dakutens/Hakutens using a guide published by YakiNeen.
- PP no longer uses a shitty graphic and is instead properly implemented into the font, optimising the status screen. Also displays in-battle which is kinda cool.
- Lorelei, Bruno, and Agatha now play the Gym Leader theme, not just Lance.
Still unsure how to fix Celadon University's trainers, all I know is a lot of the information should be taken from the Oak fight I did. The code is radically different and doesn't call trainer headers at all. You'll likely want to start from scratch.
The Mt. Moon Crater Guard's text is a little wonky, not sure what's up there. May have been from the way I accessed Mt. Moon in testing. Anyway, if you want to mess around feel free.
This is a pretty hefty commit, so let's break it down.
- Fixes Pokedex entries for Bittybat, Bulbasaur, and Shellder.
- ...presumably fixes the options menu.
- Adds a Fishing Group and water wild data to Diglett's Cave, also reduces the encounter rate. More to come.
- Modifies parties, including evolving Rival 2's starter.
- Attempts to fix the Ultra and Safari Balls by making `BallFactor` 4, which appears to be the intended number. Tests yielded positive results.
- Restores a ton of Japanese references that got removed in localisation, including some errors.
A simple 1-character change that does so much. Usually, the game delays it by 2 frames per pixel, so changing it to 1 doubles the speed. If it remains too slow, I believe it can be removed entirely, but I'm avoiding it in case of bugs.
I also changed the debug Pokemon to Croakozuna as Pound is s/e vs Dark, allowing for an easier visual. Rhydon changed to Rhyperior for the same reason; more damage, better visual.
* Wild data added to the Mt. Moon Crater
* CoolTrainer NPC (young Sada) added to the Pewter Museum of Science.
* [EXPERIMENTAL] Added the Scarlet Book to the hidden item list for the Pewter Mueseum of Science.
Notes;
* This commit will not work without SV Pokemon being implemented.
* The Scarlet Book has not been placed correctly. The tileset for the museum doesn't load properly in Polished Map, so I'm kind of stumped. Neither has Sada.
Things to do:
* Add an NPC to Mt. Moon B2F that blocks off the crater, along with a warp there. NPC should disappear when you have 8 Gym Badges.
This is a reference to another bit of the Tamamushi booklets, where they talk about the Pokemon that can fly without wings.
Also, shortened one of the text chains. In general, they need to be much shorter.
I am 90% sure something will bug out, can't test the map right now for obvious reasons. Tested everything else, though.
Mostly copied data from Cinnabar Volcano while commenting out Vermillion Dock Mew info to move it.
Wild data has been added along with a fishing group, just dummied out slots.
Old Sea Chart is a clone of the Citrine Pass which is all it needs to be. It is obtainable near the truck.
the ghost without silph scope fix doesn't work due to a codebase change, and the night shade wiggly animation causes a bank overflow
celadon university has 3 more books detailing lore from one of the old pokedex books
This adds;
- Text and stuff on the interior to add some really nice worldbuilding
- Trainers outside that you can fight with repeatedly.
The trainers need yes/no menus but I can't figure it out for the life of me. If anyone can do it, lemme know!
Underwater Tunnel is a new area that links Route 25 to Route 10, basically just being a straight tunnel needing Surf to traverse.
Also given Seafoam Islands and Lorelei's room an unused palette that gives it a more icy feel
Instatext seems to have its own thing going on that I have issues sorting, so I'm just removing the frame delay on fast text. It doesn't look like much but it's surprisingly good.
Also, this makes fast text the default option.
Adds the five eeveelutions we don't have, evo items for Glaceon and Sylveon, fixes Rhyperior's dex entry, renamed the Super Rod to Fishing Rod, and commented out the OW Crocky/Kabutops for now
Rhyperior files are dummies and will need to be properly edited with sprites, Rhydon evo data, etc, but it (and the other files included) show that the trainer and pokemon sprite indexes have been separated, which allows us to add the other KEP mons
The comments in the SwitchAndTeleportEffect section incorrectly stated
that the random number was generated in the
half-open interval [0, playerLevel + enemyLevel),
instead of the closed interval [0, playerLevel + enemyLevel].