Forums  /  La-Mulana Remake  /  I finally made that Checklist Program

¤¤Skip to the bottom for the download if you don't care about any of this¤¤

So I finally finished this silly thing. Hopefully it'll be useful for someone. The program tracks progress towards every character for the All Characters Ending. Goals that have been met will be highlighted in green, and the goals for the timed characters will turn red when their timers reach 0. In addition, it monitors which guardians have been defeated and which ones haven't. Boss portraits that are in color are bosses that are still alive, while grey scale portraits are bosses that have been defeated.

There are some characters for whom I got conflicting messages about what the requirements actually are, since some of the Steam Achievements are incorrect. For instance, I confirmed that the requirement for Fobos to appear is collecting Enga Musica, and not Beo Lamulana like the achievement implies. For the Healing Fairy the achievement says you have to summon a fairy, while the wiki says you just have to show Isis' pendant to the Fairy Queen. I don't know how you would go about confirming that since it's required to beat the game anyway, but the wiki was right about a lot of other strange things, so I went with that.

The Fairy Queen was where this project just became a nightmare. Every other character had one single memory address that stored your progress making the process pretty painless, but no dice for the Fairy Queen. Instead there's an array of values for each inventory item which the game checks through to see if you have everything. So I had to find all of the values for every item. The first weird thing that happened was when I got to the Dragon Bone, and instead of the value getting set to 1 like every other item in the game, it got set to 0x9D (or 157 in decimal). No idea why, and it never takes on a different value at any point after collecting it. Then on top of that, every item which has multiple states/upgrades behaves in a different way. The shields were easy. Each shield has a different spot in memory, and skipping one and getting the higher level checks off both flags (For instance, getting the silver shield first also flags the buckler in memory). Next the treasures and the anchor both have their own spot in memory, but when you replace the treasures with the anchor, the anchor value gets set to 1 but the treasures value gets set to 0. The vessel is another interesting one. There is only one memory address for whether or not you have the vessel, but then 3 separate addresses for what color medicine you have. And finally (and most annoyingly) is the Lamp of Time. It has two separate addresses for the lit and unlit lamps (similarly I later found that the holy grail has three addresses, one each for normal, powered, and broken).

I based that total (67 items) off of how the values changed over time, where they were located in memory, and a few test cases. More or less, every single thing that appears on the item screen at the end of the game is required, except for the whip/whip upgrades and possibly the MSX/MSX2 (I'm not sure about the MSX2, since I have yet done a playthrough without collecting it, but based on it's location it's probably not counted). I wanted to count every item that you would be requried to collect through normal gameplay, without counting anything that isn't required to get the Fairy Queen to spawn, or isn't permanently stored in memory. It's not a very scientific method, so if anyone has a problem/finds out something isn't required or is required, tell me and I'll change it since it would take less than a minute to do so. For the exact breakdown:
Weapons: 4 (Not counting whip or whip upgrades)
Subweapons: 11 (9 + buckler, silver, since they stack)
Usable Items: 18 (15 + woman, talisman, diary, since they stack, and not counting the medicine since it gets used before the final boss)
Items: 29 (Not counting MSX/MSX2)
Seals: 4
+ The Treasure of Life (Because it does get added to the item screen, and I doubt it would be possible to beat the game without getting it anyway, so sure why not count it)

When I'm referring to the location in memory, the array that stores these values is actually arranged in the order the items appear on the inventory screen, starting with whip/whip upgrades at the array pointer + 0, and moving through the list all the way down to Death Seal. After that are values for several items that are likely not counted, starting immediately after the death seal with two values that I never found a need for, then the treasures, diary, mulana talisman, MSX2, three for the colors of medicine, empty lamp, maternity statue, broken grail, powered grail, and finally the treasure of life. I'd assume the game only really checks that every inventory slot is occupied, and as such only itterates through the array up to a certain point, but that theory gets broken because of the fact that the broken grail is the only grail-related flag at the end of the game, and the game would have to check both the flags for the lamp, since only one is active at a time. Really just like anything else in the game's memory, it's a complete cluster, and trying to make any sense of it isn't really worth it, so in the end my decision for which items to count was pretty arbitrary.
Edit: I also forgot to mention that I tried to check how many times the array gets accessed at the end of the game, but other important information is stored in it, such as which softwares you have, and how many maps you have among other things, so I wasn't able to use that to see which items get counted, and the only other way would be to beat the game over and over, and check each one individually which I really really don't feel like doing.

All the other values are pretty self explanatory since I'm just displaying the memory value as is. The only exception is the value for Sacred orbs which interestingly starts at 1, since you technically have one orb's worth of health from the start of the game. The in game time variable sadly doesn't reset until you load a save or start a new game, so don't be shocked that it shows a random time on the title screen if you reset. And the only other note really is that the Mother is counted in the variable for Hard Mode kills, so the total is 9 instead of 8.

Here's the download link, but be warned I made it in Cheat Engine, and it's the most horrible unstable IDE i have every dealt with in my life, so it might explode for no reason. If it does, force close it, and either leave a comment here or on that youtube video (I'll probably see youtube comments a lot sooner). The zip file also includes the source code for Cheat Engine if anyone wants to make any additional modifications themselves, and anyone can ask about additional features from me, though I can't guarantee how long it would take for me to get around to it. In addition, please tell me if you find anything to be inaccurate (IE: You got a character when the text was grey or didn't when the text was green)



oh no

... we have an autosplitter that tracks these already ...

i feel bad now