Augury/Fortune Teller in Lyn Mode

Alright, I didn’t get any help on the Discord, and there doesn’t seem to be a topic in questions, so I will post it here. Currently, I am looking for a way to enable the fortune teller function in FE7 prior to chapter 14, in Lyn mode. Does anyone know if there exists some sort of way to do it?

I’ve made a patch that enables augury on hard mode. My best suggestion is to use that as reference to search for where it checks for the chapter ID, instead of the difficulty. Shouldn’t be far from 0x9930A.

So I tried looking around that offset in the Hex Editor for the chapter # that it starts at (14, which is 11 in hex), and tried changing it to 00, but it did nothing observable. The second closest instance of 11 was about 1000 away, which is probably too far, do you have any other suggestions?

Auguries can appear in the early chapters just fine so long as you provide the text and portrait. The problem is it’s not allowed in Lyn Mode, so you need to be looking to fix the story mode byte, not the chapter ID.

Edit: Looking at the patch myself, it’s already brute forcing it, so another area of code must be disabling it on Lyn Mode. I dunno how to find how the game’s reaching there, so l got nothing more.

1 Like

Looking at it that way, the most effective solution would probably just to skip Lyn mode altogether. Thanks for the help.

1 Like

If you disassemble the code, you can open it in a text editor and search for (ChapterData@ChapterData.Mode ) to see every instance in which the game checks it. One of them will be the one that determines whether Fortune is enabled or not.

1 Like

Use no$gba and break on reading that byte. The game will pause when entering prep screen (and possibly also when exiting unit selection to redraw the available options). This brings you to the exact code so there’s no guess work. A byte in ram could be read in dozens, hundreds, or thousands of places in the rom depending on how important it is.

ctrl + b [202BBF8+0x1B]? is what you should do in no$gba

1 Like

Okay, so, @Shuusuke’s tip helped me find 0x08DF3A, which will allow Fortune to be selectable in Lyn Mode if set to 00. Meanwhile, @Vesly’s tip showed me 0x08DA42, which will cause the Prep Screen to never show the Lyn Mode descriptions if set to 00 (but you can just change the text, so this bit ain’t necessary).

Thus, the last remaining issue is that the Hard mode patch is allowing Augury to show up even if the chapter data is invalid for it. That’s technically bad, but if you set the chapter data’s (Prologue) and (End-Confirmation) texts to 0 and set up the rest of the Augury data so its text reads, “No augury for this chapter,” or something, that should cover for it.
I guess that doesn’t work because map 0x2E is hardcoded to not display the first message. Pbbbt. But, I still found a way to fix the issue: If you go to 0x0992FE and replace the 00 28 03 D1 with 00 00 00 00 (and also make sure Shuusuke’s Augury Hard mode patch is disabled), that’ll NOP out the Hard mode check and leave the rest of the code in tact. Lyn Hard mode will have auguries if they are present for the chapter, and the game will know to hide the option if the data isn’t there.

All right. That took me awhile to uncover, but I think that’s everything. Good learns.

2 Likes

Great work!

Could also break on the chapter ID being read if you were looking for how the text for augury is found.

ctrl + b [202BBF8+0xE]?

But you’d have to hook the function to make it guard against a text id of 0 to hide augury, which I personally don’t want to bother with lol

Okay, last thing. Promise. I was out of practice at first, so l didn’t remember how to read the ChapterStuff description.
If one goes to 0x0992FE and replaces the 00 28 03 D1 with 00 00 00 00 (and also makes sure Shuusuke’s Augury Hard mode patch is disabled), that’ll NOP out just the Hard mode check and leave the rest of the code in tact. I knew the rest of the solution was around there, I just misread it the first time through.