CT075 Posted April 21, 2012 Share Posted April 21, 2012 (edited) I was playing a draft and I was curious as to how FE7 decided which version of PFoD (C27 in Hector mode) to take you to. In the disassembled event files: // the first code in this sequence is the check IFAT 0x8 0x7D4C1 // if (asm_cond) { MNCH 0x23 // Jerme's version STAL 1 _0x1 ELSE 0x9 // } else { ENIF 0x8 MNCH 0x24 // Kenneth's version STAL 1 _0x1 ENIF 0x9 // } so i went to the offset specified and disassembled the condition code r0 - no matter, clobbered anyway r1 - 0x0800D569 probably the interpreter r2 - 0x00 r3 - 0x08B907C0 r4 - 0x02024F00 r5 - 0x48 r6 - 0x02024F56 r7 - 0x08B90E48 r8 - 0x08B90E4C r9 - 0x00 r10 - 0x00 r11 - 0x03007DFC r12 - 0x03 sp - 0x03007DA0 lr - 0x0800D575 pc - 0x0807D4C0 0807D4C0 B510 push {r4,r14} @ Self-explanatory 0807D4C2 4806 ldr r0,=#0x8CB8984 @ offset of list for Jerme - 06 00 08 00 09 00 04 00 @ corresponds to guy, dorcas, bartre, raven respectively 0807D4C4 F7FFFFC0 bl #0x807D448 @ r0 = sum of guy/dorcas/bartre/raven 0807D4C8 1C04 mov r4,r0 @ store r0 0807D4CA 4805 ldr r0,=#0x8CB898E @ load another offset for Kenneth - 13 00 10 00 12 00 1B 00 11 00 @ Erk, Lucius, Renault (!), Priscilla, Serra @ Apparently Renault is also checked for this, although his level is set at 0 at this time @ maybe this is an indication that he was meant to be recruitable for then? Beats me. 0807D4CC F7FFFFBC bl #0x807D448 @ add their levels 0807D4D0 0424 lsl r4,r4,#0x10 @ r4 = (short) r4 0807D4D2 0400 lsl r0,r0,#0x10 @ r0 = (short) r0 0807D4D4 4284 cmp r4,r0 @ if r4 <= r0 (if physical units levels <= magical) 0807D4D6 D805 bhi #0x807D4E4 @ ^ 0807D4D8 2000 mov r0,#0x0 @ return false 0807D4DA E004 b #0x807D4E6 0807D4DC 8984 ldrh r4,[r0,#0xC] @ Pointers 0807D4DE 08CB lsr r3,r1,#0x3 @ ^ 0807D4E0 898E ldrh r6,[r1,#0xC] @ ^ 0807D4E2 08CB lsr r3,r1,#0x3 @ ^ 0807D4E4 2001 mov r0,#0x1 @ else (physical > mag): return true (Jerme) @ This means that Jerme only shows up if and only if your physical units are higher @ which fits in with the idea that "Kenneth's Chapter is the default". 0807D4E6 BC10 pop {r4} 0807D4E8 BC02 pop {r1} 0807D4EA 4708 bx r1 Notice that Renault is included in the "magic users" group. The log as well as my personal thoughts on the matter can be found here. Edited April 21, 2012 by Camtech Quote Link to comment Share on other sites More sharing options...
Celice Posted April 21, 2012 Share Posted April 21, 2012 Might be an indication that Renault was previously planned to arrive earlier. Nuances like you've found are usually indications of such with other games. Quote Link to comment Share on other sites More sharing options...
CT075 Posted April 21, 2012 Author Share Posted April 21, 2012 (edited) I noted as much, but I don't consider myself qualified to draw conclusions. Yet. Edited April 21, 2012 by Camtech Quote Link to comment Share on other sites More sharing options...
Celice Posted April 21, 2012 Share Posted April 21, 2012 (edited) Though I doubt it, it'd be cool if the FE6 routine had a similar check for an unexpected requirement. Has anyone combed through the in-game script to see if there's any unused convos? Might scrounge up some evidence in there too. I can't think of any other real place, other than maybe an unused event where his specific ID is called for at an earlier time in the game (visiting a village, recruitment, spawning on map, etc.). It's too bad there still hasn't been any attempt to make a valid editor supporting everything, rather than supporting each thing as they come individually. A wholly-encompassing editor makes finding things like these far more easier and likely when you let the program sniff for you, rather than relying on you to sniff by oneself Edited April 21, 2012 by Celice Quote Link to comment Share on other sites More sharing options...
CT075 Posted April 21, 2012 Author Share Posted April 21, 2012 (edited) from what i've seen from combing through the disassembled event files (i have a lot of free time on my hands >_>) there's nothing leftover in those, unfortunately i can't speak for the game script, however --- Zahlman was making a "catch-all" nightmare 3 program in python, but it's slow because he has a job and he has to figure out how to re-consolidate every single tool into either the main program structure (i don't think he's doing that) or figure out how to turn everything into a module Edited April 21, 2012 by Camtech Quote Link to comment Share on other sites More sharing options...
Silent Mercenary Posted April 21, 2012 Share Posted April 21, 2012 I'm not really good with interpreting hexadecimal codes, but has anyone found out at what point exactly does it calculate and compare the level sums to determine the next chapter? Because I remember there's a house in Unfulfilled Heart (chapter 24/26, the one with Vaida before Jerme/Kenneth) where a villager talked about Jerme and his Light Brand, which would then be the chapter I got next. I recall it was Hector Mode, I think Normal, where I miscalculated Guy's high level (trained to OHKO Kishuna) being a bit over all my mages, and I really wanted the Guiding Ring and restarting to focus on the mages didn't help change the outcome. So, does it calculate this split before the Vaida chapter or as it ends? Quote Link to comment Share on other sites More sharing options...
CT075 Posted April 21, 2012 Author Share Posted April 21, 2012 (edited) It is the very last thing the game checks before the Vaida chapter ends. I haven't logged the actual adding routine, but I'd assume that it calc's the total levels gained rather than absolute levels. edit: The only village in C26 gives you the hammerne staff. I'm not sure what you're talking about. Edited April 21, 2012 by Camtech Quote Link to comment Share on other sites More sharing options...
Crimson Red Posted April 21, 2012 Share Posted April 21, 2012 Sweet, I'm tempted to use this and hack the ASM just so I can say I did an ASM hack for a custom split path thing XD which is silly but meh :P Quote Link to comment Share on other sites More sharing options...
CT075 Posted April 21, 2012 Author Share Posted April 21, 2012 a) hack the asm how? b) you can custom split path easily if you know what you're doing with a debugger Quote Link to comment Share on other sites More sharing options...
Aura Wolf Posted April 21, 2012 Share Posted April 21, 2012 (edited) The only village in C26 gives you the hammerne staff. I'm not sure what you're talking about. there's a house in Unfulfilled Heart (chapter 24/26, the one with Vaida before Jerme/Kenneth) where a villager talked about Jerme and his Light Brand A bit confusing with the villager bit, but yeah. Tempted to learn crap so I can use things such as this XD Edited April 21, 2012 by Aura Wolf Quote Link to comment Share on other sites More sharing options...
Jubby Posted April 21, 2012 Share Posted April 21, 2012 Just want to throw in that I'm not tempted at all to hack the ASM But I also might use this :3 Quote Link to comment Share on other sites More sharing options...
CT075 Posted April 21, 2012 Author Share Posted April 21, 2012 (edited) okay running a quick check through the events the asm condition is never called directly aside from in the chapter end event but that doesn't mean that it's not indirectly called somewhere else Edited April 21, 2012 by Camtech Quote Link to comment Share on other sites More sharing options...
Silent Mercenary Posted April 21, 2012 Share Posted April 21, 2012 Thanks for the answer. Yeah, I thought of that later as the possible explanation. Some exp on Dorcas coming over from Lyn mode might also have to do with that. Either way, I'll focus more on that when I need that extra crest/ring. The only village in C26 gives you the hammerne staff. I'm not sure what you're talking about. A bit confusing with the villager bit, but yeah. No, I mean the houses, you know the little one-tile brown-roof ones that give nothing but tidbits of info. I don't recall if the two are for Kenneth and Jerme, but I think I checked both of them, and one of the villagers talked about Jerme and the Light Brand vaguely, but you could tell it was him (something about a cursed blade, assassin, etc.) I don't recall which house exactly since I haven't played in years. Quote Link to comment Share on other sites More sharing options...
Aura Wolf Posted April 21, 2012 Share Posted April 21, 2012 ^ I meant in the post that you were talking about a house (Hence why it was bolded), not a village. Then again, I worded it awkwardly XD Quote Link to comment Share on other sites More sharing options...
Original Alear Posted April 21, 2012 Share Posted April 21, 2012 @ This means that Jerme only shows up if and only if your physical units are higher@ which fits in with the idea that "Kenneth's Chapter is the default". This is coming from someone totally ignorant on game design, hacking, etc, so I won't be disappointed if my thoughts are dismissed, but I think arguments about which chapter is "default" based on character stats and coding are a little hard to make. For example, based on starting level, the physical units have a lead of 5 on the magical units. That would suggest that the default is Jerme's chapter - the tiebreaker thing only activates in the somewhat unlikely event that the units' levels tie, while the 5 level gap is going to affect things every time you play. On the flipside, I do think that the magical units are generally better than the physical units, and thus more likely to be used and leveled, and a cogent argument could be made that the 5 level gap will almost always be outstripped by an efficient player (though an efficient player would hardly be taking the default path). But generally, "default" refers to something that happens if no action is taken. To the fullest extent of this understanding, there is no default chapter - Fire Emblem remains off. If the game is played normally, and chapters are completed, then the path will depend on actions by the player, making the chapter that results strictly not default (not determined in the absence of the player's input, whether the player is aware of the impact of his actions or not). Ya I know it's BS and no one cares. Quote Link to comment Share on other sites More sharing options...
CT075 Posted April 22, 2012 Author Share Posted April 22, 2012 (edited) This is coming from someone totally ignorant on game design, hacking, etc, so I won't be disappointed if my thoughts are dismissed, but I think arguments about which chapter is "default" based on character stats and coding are a little hard to make. For example, based on starting level, the physical units have a lead of 5 on the magical units. That would suggest that the default is Jerme's chapter - the tiebreaker thing only activates in the somewhat unlikely event that the units' levels tie, while the 5 level gap is going to affect things every time you play. On the flipside, I do think that the magical units are generally better than the physical units, and thus more likely to be used and leveled, and a cogent argument could be made that the 5 level gap will almost always be outstripped by an efficient player (though an efficient player would hardly be taking the default path). Ya I know it's BS and no one cares. obligatory: go be semantic somewhere else actual response: if they are all benched 100% of the time you go to kenneth there is no tiebreaker at all the code very specifically says: "if the physical units have gained a total number levels that is greater than that of the magical units, go to Jerme - Else, go to Kenneth" two scenarios. either the physical units > magical, or not. if they're equal, that falls under the category of "not". i'm too lazy to check whether the routine checks if routine checks levels gained or absolute levels but i remember from simple experiment in playing the game that benching all of those units nabs you kenneth Edited April 22, 2012 by Camtech Quote Link to comment Share on other sites More sharing options...
Celice Posted April 22, 2012 Share Posted April 22, 2012 When you mean default, are you meaning the option that happens regardless of player function, or are you implying that the creators intended Kenneth's chapter to be first? Because the second one doesn't have enough evidence, from what you've said, to merit that conclusion :/ (it's not altogether clear whether you implied the latter or not) Quote Link to comment Share on other sites More sharing options...
CT075 Posted April 22, 2012 Author Share Posted April 22, 2012 if you're going to pull semantics up my ass i'll say it straight - there is no "default" because there are exactly two scenarios. either the physical units are higher, or they aren't. literally no other possibility exists in terms of this situation, and both are accounted for; there is no need for a "default" situation to fall back on Quote Link to comment Share on other sites More sharing options...
Crimson Red Posted April 22, 2012 Share Posted April 22, 2012 semantics is all we have on this forum I am the prime example Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.