Post subject: How does this game calculate % completion?
Editor, Expert player (2318)
Joined: 5/15/2007
Posts: 3856
Location: Germany
I don't think many or even anyone looks into the Kirby & The Amazing Mirror topic so for more visibility, I'm posting a separate topic about my problem. I'm of the opinion this can stand as an own topic because this is a problem more about how GBA savefiles, flags and progress calculation work. Maybe users can also post how other games handle their % numbers, because I would be interested in that. I'm interested in making a new Kirby Amazing mirror 100% TAS and this time around I wanted a means by which I can see exactly how much % I have completed. In other words, I want to know how the game calculates the % number on the file select screen. This is because I always had a slight suspicion that there might be rooms that don't even count to the completion at all. It would be completely pointless to dedicate extra routes leading into dead-ends when I don't even have to go there anyway.. What affects the % progress: I know that visiting new rooms, touching big buttons (which unlock new areas), opening treasure chests and activating levers all add to the progress. If enough new rooms are visited, the % will go up by 1. Then there can also be rooms that are "done" or still have unopened treasures in them so they are only "partially done" (visited but not gotten the treasure). What I already know: The game does not seem to have an extra address that keeps track of the completion percentage. It seems to go over all the flags (for each room, treasure, button etc) and calculates the % on the file select screen on the fly. I already tried editing flags in the .sav file and in $0E000... but the game would either just undo my changes or deem the file corrupted (so on next hard reset it brings up a screen telling the savegame is corrupted and needed to be wiped). Not sure why the former happens, the latter is since it probably uses a checksum. The help I'm asking: It would be very helpful if someone can help me figure out how the game calculates its completion percentage. Specifically, flags for rooms seem to be "8000" when visited and turn "8001" when they are left, which doesn't make sense to me. Only the act of visiting a new room is what affects the %. Then there are rooms that can turn "8002","8003","8004", etc. depending which door was used to leave it and if certain tresure was opened or not. I don't know how much "value" the game puts in a chest, in a visited but unfinished room and a finished room, a pressed button, an activated lever... There could also be the very unlikely case that I just missed the % address but I doubt it. I appreciate your help :)