At power on (like 3 frames in) game, stores date time value at 0x023FFDED. Game gets initial RNG state from applying some function linear function to this value; it appears to only care about hours,minutes,seconds, but I haven't done thorough testing.
RNG values stored at 0x0218104C. Only 2 bytes! Get used all the time during dialogue and also combat (obviously). Appears to determine enemy AI as well. Haven't really felt like doing more thorough testing yet, but will get around to it eventually.
function nextrng(n)
return (109*n+1021)%65536
end
I hope this game gets TAS'd at some point.
FWIW, Devil Survivor 2 appears to have very similar (if not the same) RNG.
EDIT: So upon further testing, it turns out that this is the auxiliary RNG, with the primary RNG located just before at 0x02181048. This one seems to have a fixed value when loading up the game and also progresses in a fixed manner, though I haven't tried to figure it out yet.
From what I can tell, this primary RNG seems to deal with stuff like battle damage and criticals/misses, while the secondary RNG determines things like turn order... or something... I'm not too sure at the moment.