Fix GS Ball unlock functionality

It was reported by /u/ImranFZakhaev on reddit that receiving the GS Ball
doesn't actually unlock the event. So I implemented it in a different
way.

By writing 0xB to 0x3E3C, we can start the GS Ball event semi-legit.
After triggering the GS Ball event from PokeMe64, you need to go to and
leave the Golden Rod Pokemon Center and an attendant will appear to hand
you the GS Ball.
This commit is contained in:
Philippe Symons 2024-07-26 21:40:52 +02:00
parent 39d7c31831
commit 4da27db8b8
3 changed files with 5 additions and 4 deletions

@ -1 +1 @@
Subproject commit 7ac7c29f3e8b6477ecbf7df50e68d553daa25e0d
Subproject commit 99e495dad99bc63cbb078862de3549d8c69890f1

View File

@ -43,7 +43,7 @@ MenuItemData gen2CrystalMenuEntries[] = {
.onConfirmAction = goToGen2PCNYDistributionPokemonMenu,
},
{
.title = "Receive GS Ball",
.title = "Unlock GS Ball",
.onConfirmAction = gen2ReceiveGSBall
}
};

View File

@ -346,9 +346,10 @@ void gen2ReceiveGSBall(void* context, const void* param)
}
else
{
keyItemPocket.add(POKEMON_CRYSTAL_ITEM_ID_GS_BALL, 1);
gameReader.unlockGsBallEvent();
gameReader.finishSave();
setDialogDataText(*messageData, "%s obtained a GS Ball!", trainerName);
tpakManager.finishWrites();
setDialogDataText(*messageData, "GS Ball event unlocked! Please go to the Golden Rod Pokémon Center and try to leave!", trainerName);
}
scene->showDialog(messageData);
}