- Eevee and Pikachu family's growth rates are changed to Medium Slow. This gives them a much better early-game power spike that tapers off momentarily. They will level up faster until Level 68.
- Yujirou's levels and one pre-gym trainer are slightly nerfed, being easier for players starting out.
- Caterpie and Weedle in Viridian Forest have level deviation, and Pikachu is tapped on the wrist to not make the starter too redundant; change here is pending.
- Debug uses Pikachu and Eevee starters for future starter-based testing.
This fixes a bug where Meltans would invade Trainer Battles under the effects of the Mystery Box.
I also did some minor groundwork where the Candy Jar check is a function. I intend to change it so that catching a Pokemon would incur it too. I ended up with glitches when doing that, though.
The "ball miss" message is now modular, with a new message being spat out when not in the Safari Zone. The message talks about it being "too strong" and "breaking the ball", making it far more intense and matching some early anime scenes.
The Candy Jar is now obtainable in the Indigo Plateau, instead of being an item obtained from Chief. I've removed most Chief-related stuff but expect some instability after you beat him, as I don't believe I completely removed the function to call the text.
The Candy Jar will now not collect candies in the following instances;
- It isn't in the bag.
- The total would go over 40.
Just makes sense and ensures players are engaging with the proper intentions. The 40 total is necessary, as over 40 stops the jar from working. This does mean some candies are "lost", but the players see that.
There's a bug where Meltan will have the moves of the Pokemon it's replacing and I don't know why. I've tried a bunch of fixes in `LoadEnemyMonData` but it didn't seem to want to work.
- Fixed a bug where the Candy Jar would load `wIsInBattle`'s 01, causing it to zero itself out every time.
- Fixed a bug where the Candy Jar would display `wMysteryBoxActive` due to the way `text_bcd` was being used. Replaced with `text_decimal` so it actually displays properly as well. No hex!!
- Added a test function for the evolution in the debug party because that's cool
This does everything except the incrementation.
If you defeat a Meltan, `wCandyJarCount` increments by 1, capping at 40. This is represented in-game as 10, going up to 400, simply by adding a 0 at the end. This, in effect, replicates the Meltan quest from Pokemon Go.
Once 40/400 is reached, the Candy Jar will become an evolution stone, evolving Meltan. Instead of consuming the Jar, the Candies inside are zeroed out.
Currently, the Candy Jar increments, but only once, thus why this is being committed on a separate branch. The bug appears to be at `engine\battle\core.asm`, line 842-861, likely 854-856. It's possible that it could be due to its position in WRAM, or that it's a `db` instead of a `dw`.
It was a long shot, but I did it! I added the Mystery Box from Pokemon GO! Very happy with the results here.
So here's how it works: When used, the game will replace Pokemon encountered with Meltan until the player leaves the map. This is sort of how it works in GO, with the player unable to close it and naturally petering out as they play.
Now multiple Meltan can be obtained, and in abundance, just like GO. Technically, someone could use this as a pseudo-Repel to replace hard encounters with easy ones.
Oh, and I'm pretty sure this happens vs static encounters as well, but it's awkward to account for I think that's hilarious, so...
This fixes the issue with Mt Moon Square's NPC text and changes the Battle Tent to a continuous system.
The Battle Tent's new system circumvents the issue with wBTStreakCnt while providing the player with more agency. They'll get constant prize money after each battle and can abandon the challenge at any time. It may feel more grindy but in my opinion works just as well.
- Changes Bill's Garden to be a more fitting Overworld-tileset map
- Gives Cinnabar Volcano a unique palette, being a slightly less-bright version of the RedMon palette
- A few small changes/improvements to the Rival teams
- Reduced wild encounter levels in Silph Gauntlet a little
- Adds a 100% chance for a Magmar encounter when fishing in the Cinnabar Volcano lava
- Hides more 'secret' areas off the Pokedex area listing, namely Mt. Moon Crater and Faraway Island
- Improves Jabetta's sprite a little
- Gave nicknames to the Galar Evolution trades, they're a bit different to regional variants n such
- The Throw Rock command now only increases flee chance by 50%. It seems like it may be a little TOO strong though, bit curious.
- Changed a bit of text here and there
- Made CHIKUCHIKU trade accessible, still need MICHELLE
In vanilla RBY, Pokemon flash 6 times when taking damage from moves like Tackle or Fury Attack. This is really slow and sells the impact way too much, drawing out battles by a lot. I tried 3 but it looked just slightly too fast, so I went with 4.
This modifies the credits to have a KEP staff version. It's a little awkward aesthetically! But this should be used and expanded on in the future - people don't read readmes, so the people who've helped should be credited.
So it turns out that the code used in Factory Adventure *or* the TPP Anniversary Repository, by all accounts, should not actually work. Like, no, really, it ends up loading 0xFF as code, thus why it would always rst38. It just...doesn't...do anything. My friend Enigami, who figured out the issue, described the function as being "half-finished".
We came up with a solution that results in less functionality - now it needs a free box - but it results in less load times, so maybe it's just better this way. I doubt many people will catch that many Pokemon unless they were shooting for a living dex, which is unfeasible in its current state anyway.
I considered putting Bottle Caps in here, but it felt like making the game too grindy, so I changed it to just be in the Battle Tent shop with a very high price.
This now, technically, works.
However, the Battle Tent was seemingly made with the assumption trainers are Pokemon, which our hack has moved from. I've made it so it can load it as a trainer battle properly, but you will deathwarp. I need to implement a scripted loss system.
This is...most of the stuff necessary for the Battle Tent to work. I've faithfully restored most things so far, including doing a few grammar tweaks.
Main issue is that we get a really strange softlock when the Pokemon selection menu comes up. Not sure why, but point is, it can't progress to the next bit for debugging like this. Committing now to ask for assistance.
This adds the boy/girl selection from later generations, using the pret tutorial and a spriteset from Pokemon Anniversary Red. I made some alterations, namely inserting the option later into the speech to be less clunky, and having the Nidorino become a Nidorina if you pick the feminine option.
I decided to make the third name option Seren, a common Welsh name for girls. It means "star", which is really cute! But...most people will probably say it's a Panel de Pon reference, which is cool too.
There are ways this can be improved (SFX, menu message, insta-recalc stats), but this finishes the Hyper Training functionality.
Talk to James, give him a Bottle Cap, he boosts your DVs to max, and then he deducts a Bottle Cap.
Notable that vanilla vitamins don't recalc stats immediately as well, so maybe the recalc bit isn't necessary.
Currently, he doesn't deduct a Bottle Cap and he only fills out Attack and Defence. DVs are stored as a 16-bit address, so I need to find a way to make `a` work with it...
This makes it so everything except Rhydon works properly. At this point I'm willing to have Rhydon not work, they can just evolve into Rhyperior instead.
The warps are currently broken for reasons I can't figure out for the life of me. Faraway Island works but is loaded in a glitched state where other warps break and are generally very unstable, while Citrine softlocks. It's progress, though.
Gives Garnet Cavern its custom palette. Also reverts the changes I made to Viridian Forest's palette since it's very hard to spot the difference anyway, and I needed the space. Also had to revert Faraway Island's, which I'll revisit at some point
- Fixed an issue where KEP's new static encounters would sometimes not disappear correctly
- Fixed an issue where boulders wouldn't fall down holes
- Fixed issues where the SS Anne Rival and Oak in the Indigo Plateau wouldn't appear, causing a softlock
- Fixed an issue where the Mt. Moon fossils wouldn't disappear
- Added several items back after they were previously removed
Dark Void and friends aren't in and probably won't be, I dunno yet.
I think Kowtow Cleave is really badass so I gave it to Night Slash too.
Scream Tail and Barunda now have Disarming Voice, which also has its own sound, which is basically Sing but a bit different.
Fake Tears was given its own subanimation to account for the fact it's basically a Water Gun used on yourself.
The FIGHT debug function helps a lot with this whole thing, so test with that.
- All of the Silph Gauntlet maps use the same palettes as the map's they're based on
- Viridian Forest uses Viridian's palette, it just makes sense
- Power Plant is now yellow, just 'cause.
- Game Corner payouts are much faster, and have been slightly rebalanced
I am tired of doing the Legendary wing event, so I'm populating Citrine City.
Some notes;
- I refactored the In-Game Trades to match their nicknames and re-distributed them.
- I swapped Fuschia's bench guy for the third unused one meant for the safe house, but I may outright restore these.
- I refactored the Pokecenter Hidden Objects to all use the same set - they're clones of each other, so this works out. This saves a TON of bytes and works fine.
- I placed the Harry trade for Kadabra/Alakazam in Citrine Pokecenter as it feels right for such a powerful Pokemon to be post-game.
This adds the first half of an event where you will find the Galarian Birds. It is not finished yet.
It currently bugs out when Galarian Zapdos tries to run away and I don't know why. Frame-by-frame, it seems to be when the player has to move. I've tried different things to make this less bad, but they don't work.
Here's how it's meant to go:
1) Articuno flies away (done)
2) Zapdos barges past the player like Silver does in GSC (bugs out)
3) Moltres moves in front of the player and engages (not done)
If anyone has a better way to do this, please let me know!
Minor changes;
- Connection for Brunswick-Citrine looks nicer
- Celeste has a few changes to make the event run easier.
- Brunswick Trail and Faraway Island now use correct palettes.
- Faraway Island has been altered slightly with the same tileset as Celeste Hill
- It's now possible to fly from Citrine locations, as well as Faraway Island, and the roof of both Celadon's Mart and Mansion.
This adds Pikachu, Cat, and "Small Bird" menu icons. The cat has a custom animation done by myself.
The Jigglypuff in the Pokemon Centre now uses the new sprite, nice 'n' pretty. Officer Jenny is also in Cerulean. The Pokemon from Melanie's house in Yellow have been put in Mr. Fuji's House, given the purpose of the house in RB is different. I think it ends up fitting very nicely.
Chansey has been given its proper sprite in Fuschia. Yellow didn't actually do this, as Chansey doesn't have a walk cycle, causing the stuff that exists to go unused. I wanted it, though, so I had Chansey just not walk and turn around. Oh, and it's in all the Pokemon Centres now. Yeah, that's a...lot of changed files.
Some big dubs for KEP today. This commit backports the Yellow overworld spriteset, and also adds the cat sprite for Meowth. This allows Jessie and James to use their overworld sprites in the Rocket House and serves as groundwork for backporting their other events.
There are altered Daisy and Nurse Joy sprites that may or may not warrant usage. That can be discussed.
Naturally, this also means there's a ton of overworld sprites to use elsewhere. Revamps of the "Bulbasaur house" in Cerulean and the Surfing Pikachu sprite change come to mind.
An & symbol has been backported from GSC for Jessie and James's trainer class as well.
Currently the move tutor is a little bit broken - the IDs are 1 above how they should be. Shell speculates that it's searching at the table starting from Kangaskhan due to the way the decrements shake up but it may just be making things more complicated than they are.
Big cheese code is `PrepareTradebackMoveList`, it's where things are mucking up.
Also, the code can be significantly optimised, as it's currently being adapted from the function above, `PrepareRelearnableMoveList`; It doesn't need to check levels, for example.
Note that the relearner functions properly, so use it as a reference. I may have removed something important.
Technically, we could have NO_MON as an entry which may make things shake out properly. But I'd rather have a proper fix.
This adds the Mega Punch & Mega Kick guys from FireRed and LeafGreen.
Given Mega Punch was in Mt. Moon, and GF replaced it with Thief in FRLG, I decided to change the TM to the Wing Fossil, which currently isn't obtainable outside of Mt. Moon Crater.