Post subject: Shin Megami Tensei
Joined: 4/17/2004
Posts: 275
Translation by AeonGenesis I was just wondering if there was any interest in this game here at all, tool-assisted or otherwise. I wouldn't figure as much, seeing as there's all of two mentions on the board (and one of them was by me), but who knows, I might be pleasantly surprised. The manual provided with the patch should be enough for casual playing, but in case it isn't (or for those that don't feel like downloading it), I may be willing to try my hand at a write-up later.
Joined: 11/12/2006
Posts: 19
Although I actually like the game quite a bit, unless you could do some serious breaking of the game system, this would probably be a very boring TAS to watch. Unless something has changed, this site doesn't accept runs of fan translations either, which would make it quite indecipherable to any non-Japanese-fluent folks out there. I could be wrong, though, it could be great. I guess I'd have to see a bit of it in action first, it's been a while.
Joined: 4/9/2006
Posts: 54
Location: Durham, NC
I'd love to see a run of this, but I'm not sure how interesting it would be without some extreme luck manipulation/bug abuse. If I recall correctly, the easiest way to beat most enemies was to use a gun that produced some kind of status effect (sleep/stun) over and over again.
Joined: 4/17/2004
Posts: 275
Nemo2342 wrote:
I'd love to see a run of this, but I'm not sure how interesting it would be without some extreme luck manipulation/bug abuse.
I don't know about bug abuse, but in terms of luck manipulation: There are some demons that create anything from a fusion. If that isn't extreme luck manipulation to you, I dunno what is. It's just too bad that you can't create/summon anything that's higher than the Hero's level, with one exception.
If I recall correctly, the easiest way to beat most enemies was to use a gun that produced some kind of status effect (sleep/stun) over and over again.
Sounds like someone didn't use the Zio- (lightning) spells that often. :P Those attacks worked on a disturbingly high percentage of demons — including bosses — and almost always inflicted Bind status. In fact, I can count on one hand the number of times that the attack stuck and it hasn't inflicted Bind on my enemy... or on me. :E Besides, the problem with Nerve Bullets — and the other status-inducing ammo — is that you only get it after your trek through Makai (iirc), and the Female Hero is the most useful one with it, due to the fact that she's the only one at that game that has a gun that can target all your opposition. And unless you pump her speed so that she's faster than everyone else, you aren't going to get any decent use out of it. On the other hand, anyone using magic has the odd tendency to attack first or second in battle.
Joined: 10/3/2005
Posts: 1332
It would be great to see what tool assistance can do for this game... Not sure if it would be publishable, though. I suspect it would be a lot like Star Ocean, where you can't enjoy the movie without knowing the game beforehand.
Joined: 4/17/2004
Posts: 275
That's true for quite a few movies published on the site, though — RPGs in particular. At any rate, it's nice to see that there are some fans here aside from myself. Btw, anyone here able to get the Neutral ending regularly? From what I've read, it's much easier to get Law even if you're not trying to choose sides, due to there being a lot more Chaos demons to slay than Law. And while I'm on the topic, which route do you think would be the fastest for TASing?
Joined: 4/9/2006
Posts: 54
Location: Durham, NC
My vote goes for the Neutral ending, even if it's not the fastest, simply because it seems to be the ending that's SMT2 starts from.
Samsara
She/They
Senior Judge, Site Admin, Expert player (2240)
Joined: 11/13/2006
Posts: 2822
Location: Northern California
Wow, there's a topic for SMT, huh? I'm working on a proof of concept test TAS for the glitched route and have stumbled across a really lovely problem: The fastest route involves manipulating a 1/256 encounter, then a 1/3 chance of getting the correct encounter, then another 1/256 chance of getting the item drop after the fight. This wouldn't be so bad if the game's RNG didn't only advance when it's called, and "when it's called" is shockingly limited. As far as I can tell, it's overworld movement (specifically movement, turning/bumping walls in the 1st person sections doesn't call it but moving from space to space does) and in-battle actions. In theory, that means getting the encounter in the first place and getting the item drop after can be manipulated separately, so it isn't one single one in 200000 or whatever, but given the limited opportunities to change the RNG and the limited number of ways of doing so, I can't imagine bruteforcing it. I've figured out a few things to the best of my ability (which isn't much, because I am an idiot): 1. The room that the encounter appears in is set, and the encounter is fixed to happen. There's no need to manipulate a random encounter into happening, just what gets encountered. Here's a userfile that reaches that room. 2. 0x050A is the address that determines what gets encountered, 0x050B is the address that determines whether or not a battle is a boss battle. 050A can give different results for the same values depending on whether or not 050B is 0 (regular battle) or 1 (boss battle). Specifically, we need 050A to be 23 and 050B to be 1, giving the David boss encounter. I haven't determined what controls whether or not an item will be dropped. 3. 0x0ED5, 0x0ED7, 0x0ED8, and 0x0ED9 all relate to the RNG in some way, though my limited knowledge (i.e, me being an idiot) can't quite figure out how. Interestingly, when triggering a random encounter, if you instead wait a frame before moving into the encounter tile, the encounter won't happen but the RNG addresses will still change to the same value. Moving any other time will make the values different. 4. The RTA record performs a specific set of steps to manipulate the outcome I want, but it's a fairly lengthy sequence that involves saving and resetting first. I'm assuming this means the RNG gets reset to a fixed state on resets, though I haven't tested this yet. I'll be looking further into this, but I am an idiot and I think I'm going to need some help here. Good thing this is an incredibly popular game with a worldwide release that everyone knows about and posts about constantly!
TASvideos Admin and acting Senior Judge 💙 Currently unable to dedicate a lot of time to the site, taking care of family. Now infrequently posting on Bluesky
warmCabin wrote:
You shouldn't need a degree in computer science to get into this hobby.
fmp
He/Him
Active player (280)
Joined: 9/1/2018
Posts: 82
Hello, it is me, literally the entire SNES SMT hacking community. Here's the RNG routine from my disassembly:
GetRandomInt:
#_009643: PHP
#_009644: SEP #$20
#_009646: CLC
#_009647: LDA.w $0ED7
#_00964A: AND.b #$03
#_00964C: BEQ .zero

#_00964E: CMP.b #$03
#_009650: BNE .not3

.zero
#_009652: SEC

.not3
#_009653: ROL.w $0ED9
#_009656: ROL.w $0ED7

#_009659: LDA.w $0ED7
#_00965C: ADC.b #$22
#_00965E: ADC.w $0ED9

#_009661: EOR.b #$5A
#_009663: ADC.w $0ED8
#_009666: STA.w $0ED8

#_009669: EOR.w $0ED5
#_00966C: STA.w $0ED5

#_00966F: PLP
#_009670: RTL
The RNG routine can be called multiple times when asking for a random encounter. There's a frame counter at $7E:0451 that is incremented at the end of the NMI routine every frame it is called. Its only use appears to be this here:
#_01B17F: LDA.w $0451
#_01B182: AND.b #$03
#_01B184: TAX

.branch01B185
#_01B185: JSL GetRandomInt
#_01B189: DEX
#_01B18A: BNE .branch01B185
That code takes the frame counter and gets the remainder mod 4. Then calls the RNG routine that many times. RNG seems to always initialize to 0xFF for $0ED5 and 0x00 for the other values. I count 69 distinct calls of the RNG routine, though some appear to be part of unused routines. I planned to look into this glitched route both RTA and TAS eventually, but I'm currently busy with other projects. If you think you'd like more info from my disassembly, I'd be happy to look and figure out what I can.