tehkrizz / Krizz-Kaizo-IronMon

This extension helps the tracker work with Krizz's self-contained Kaizo IronMon Randomizer ROM.
0 stars 0 forks source link

Favorites don't appear to be handed out correctly #4

Closed Dark-Dragon closed 1 year ago

Dark-Dragon commented 1 year ago

So from my testing it seems like you're not getting your favorites correctly from Oak.

To attempt to test this, I've restarted the game many times at increased emulation speed both through soft resetting and through save stating before the walk into lab sequence. During testing I have had my rival receive one of my favorites multiple times (while not receiving a favorite myself, so it's not a case of multiple favorites showing up). Maybe my method of testing is to blame, but without insider-knowledge I can only assume it's not working as intended.

Two things which might be worth noting: I chose one of my favorites to be Registeel (by Kaizo rules you're allowed exactly one legendary favorite if it's <= 599 BST). However I've also had my rival receive Kingdra, one of my other favorites. Secondly the BizHawk Lua console kept showing me the following output right at the moment of receiving my starter:

Old/Incorrect data was detected for this ROM. Initializing new data. Ability table updated. Favorites applied.

Although with my favorites not changing, this probably shouldn't be an issue.

tehkrizz commented 1 year ago

Rival generation is separate from player starter generation to allow for unrestricted rival mons.

tehkrizz commented 1 year ago

The tracker logs are expected as it reads it as a new save. That's a good thing. (Edit: unless you're speeding up by an insane amount, it should actually be triggering in mom's house)

Legendary favorites won't currently work. I'll need to rework logic to support.

Dark-Dragon commented 1 year ago

Rival generation is separate from player starter generation to allow for unrestricted rival mons.

I see, that makes sense from a programming standpoint. So it might never be perfectly accurate to how it would play out through the normal selection process. The best I could think of would be to remove the favorites from the rival pokemon pool unless the player received a favorite themselves. This should be pretty close to how it would normally play out, except that the player doesn't get to choose their favorite among their favorites in the unlikely case that two (or more) are rolled. Either way this might be a little too much to ask for, but I just wanted to throw out some ideas.

unless you're speeding up by an insane amount, it should actually be triggering in mom's house

I was definitely speeding it up a lot for testing, but even going at normal speed I seem to consistently get the update when I receive my starter. In mom's house I'm only getting the DCM - Choices applied output.

Legendary favorites won't currently work. I'll need to rework logic to support.

Alright, that's good to know. I definitely wanted to add that bit of information though, in case just selecting one might break the others.

tehkrizz commented 1 year ago

Interesting. I'll re-verify my debug testing later for the timing. If the timing IS off now for some reason, the default favorites are Wailord, Kingdra, and Crobat. Also, the favorites have to be updated by the tracker for each save. So if you're resetting, the favorites previously applied shouldn't carry over.

I have no idea on the impact of save stating before lab to any of this. I do know it will be stale RNG, so shouldn't be used in place of a reset (soft or hard) for a new real run.

I may have sorted out how to support legendary favorites.

tehkrizz commented 1 year ago

Ok, I see whats going on with the lua logs. Short answer is it is fine.

Long answer is that the data is being set as expected in Mom's house when the game loads. The new data message is when you get a mon because it triggers the tracker to update stuff, it sees that it is a new save, and then the tracker basically soft resets itself. This executes certain parts of extensions again as well, hence the second update.

Reset (Ctrl+R)

Loading Ironmon Tracker for Bizhawk (Gen 3)
Ironmon Tracker v7.5.2 successfully loaded
Previously saved Tracker data for this game has been loaded
Extensions Loaded: Krizz's Kaizo Tracker Helper, Default Choice Maker, Version Check
KKTH - ROM is compatible.

Game Loaded (Mom's house)

Ability table updated.
Favorites applied.
DCM - Choices applied

Mon obtained


Old/Incorrect data was detected for this ROM. Initializing new data.
Ability table updated.
Favorites applied.
tehkrizz commented 1 year ago

There is a bug here. The extension doesn't apply favorites if the new game is after the soft reset triggered by losing a battle.

tehkrizz commented 1 year ago

I published a pre-release that should fix all of the current open issues. While it's not fully tested yet, I don't anticipate running into any issues based on what testing I have done. https://github.com/tehkrizz/Krizz-Kaizo-IronMon/releases/tag/v0.6