Submission #4463: HHS's SNES Secret of Mana in 08:57.66

Super Nintendo Entertainment System
baseline
(Submitted: Secret of Mana (U).smc USA)
Snes9x 1.51
32313
60.0988138974405
1398
Unknown
HHS
Submitted by HHS on 10/19/2014 1:13 AM
Submission Comments
A newly discovered dialogue glitch allows jumping to unrelated locations in the game script by activating a bogus dialogue prompt. This run jumps straight to the end and thereby beats the game soon after leaving Potos.

Game objectives

  • Emulator used: Snes9x 1.51 v7 svn225
  • Aims for fastest time
  • Abuses glitches
  • Manipulates luck

Comments

While playing the game on a console, a player named BJW recorded a video where the dialogue window went crazy after opening a 1000 GP chest in the fire palace. After staring long enough at the code, I was able to determine the cause.
If a script is triggered on a specific frame following the disappearance of a status message from the screen, and the script displays the player's money before printing anything else, the game will instead give an invisible prompt using the last parameters. Entering the save menu will clear the number of options, allowing underflowing to option 256 by pressing left. After making a choice, both the jump table pointer and the script pointer will point to the selected entry in the jump table. Furthermore, if this location contains text rather than a script command, the game will continue giving invisible prompts. The table pointer is also used to point at the tables for printing names of enemies, equipment and spells. In this run, I get a "barreled" status message before talking to the cannon man, as there are few ways to trigger messages in this room at this point in the game.

Route

Waterfall

Gained 25 frames by better stair walking and bush slashing.

Rabite forest

From here it goes downhill. I need to kill 10 rabites to get money for shopping in Potos, and the RNG is giving me a hard time. The awkward movements at the end are for manipulating spawns. It is still faster than selling the overalls, as the selling menu refuses to open when you do not have any equipment, if the item menu was opened last.

Mantis Ant

Again, the RNG is being stubborn, and no critical hits could be had in a reasonable time.

Potos

I get 50 GP from chest in Elder's house. I buy a candy, a herb and a cup of wishes at the store and execute the money glitch.

Neko's

I buy a barrel and a cup of wishes, and invoke the save menu. The cup of wishes is necessary since the item menu is messed up at this point.

Dyluck

After talking to the second soldier from the right, the cannon man starts charging money.

Cannon

Before entering the cannon room, I use the barrel. It is important to leave the menu open until it starts printing "Barrel", to load an usable text table pointer. After the message about being barreled disappears, I talk to the cannon man and the false prompt is activated. I then advance the pointer in increments of 2 (by choosing option 1) and 512 (by choosing option 256) until I get to C91096, which invokes the ending screen.

Useful RAM addresses

AddressDescription
7E00F4Frame counter
7ECC48Items
7ECC6AMoney
7EE002Position
7EE006Speed
7E1873Item selection
7E1D00Text flags. Bit 7: Activates a prompt
7EA200Current dialogue choice
7EA1D4Number of dialogue choices
7EA1D5Table pointer
Also useful was the script I wrote for displaying real time information about the game state, downloadable here: http://www.mediafire.com/download/hmlq9015op565a3/som.lua
Edit: An improvement was pointed out. I am therefore cancelling this and uploading a new one.
Last Edited by HHS on 10/19/2014 10:35 PM
Page History Latest diff List referrers