Post subject: Timing button presses on "slow" menus
fruitbane
He/Him
Joined: 3/28/2005
Posts: 216
I know I don't have a lot of patience, but I'm trying to start a run of Shinobi Legions on the Sega Saturn. One of the problems I'm having has to do with menu/screen fades/transitions and loading breaks. It's hard to tell when I can push a button and get a response. For example, the Title screen fades in. If you hit Start too early it does nothing. If you hit it twice in rapid succession when Start is active to go from the title to the menu, it accidentally starts the game. Now, in some cases I might just alternate one empty input frame with one Start frame and assume I'll catch the earliest opportunity, but with this title screen it's dangerous, because it'll jump right into starting the game. This is especially problematic because the visual transitions are delayed from the input just a little, so you have to input under the assumption that it took. How have the rest of you tried to deal with fades/transitions and loading screens and such? Is it just menial trial and error with lots of frame counting, memory watching (not an option for me, really), or something else?
Joined: 10/20/2006
Posts: 1248
Get the number of the current frame displayed and you won't need to do any counting. You should first have an approximate idea on when the first frame is where input get excepted. This is what I do then (while already recording): 1) Make a savestate that's sure to be before the first frame when input gets accepted. 2) Pause the game. 3) Load save state 1. 4) Advance a certain number of frames. 5) Pause the game again. 6) Make another savestate on a different slot. 7) Press the button (f.e. start) using frame advance. 8) Unpause and maybe fast forward to check if the input got accepted. 9a) If it didn't: Pause the game, load save state 2 and continue at step 4. 9b) If it did: Pause the game and load save state 1 and continue at step 4, but only advance half the number of frames this time. The next time you get to 9a, you'll also half down the number of frames you'll advance in 4. I hope this is comprehensible. x_x What you're really doing is playing that game where the emulator thinks of a random number and you go asking "Is it bigger than 50? Yes. Bigger than 100? No. Is it bigger than 75? No. Than 62? No. Than 56? Yes." Well, at this point you could just load that last save state a couple of times, and advance 1 frame, try if it accepts the input. Then reload, but advance 1 additional frame this time for each time you've already reloaded. You'll eventually find it. If you do some smart guessing and modify the process a bit, it doesn't take long at all.
Joined: 10/3/2005
Posts: 1332
Am I missing something? I thought this is what GENS' lag counter is for. And yeah, there's bound to be at least one serviceable memory address for detecting when a dialog box can be dismissed and things like that. It's simple enough to find. First get the frame where the lag ends/input is allowed, start a new cheat search, rewind a few frames, and use the equality and inequality searches to narrow down the field. After a few rounds of that, the remaining addresses are probably useful.
Joined: 10/20/2006
Posts: 1248
Well yea, I've treated this as a more generic question about how to find the first possible frame for a certain key press in difficult cases. (even though the topic title suggests otherwise >_>) I didn't even read the Sega Saturn part. Gens counts and displays the number of frames where the game didn't accept input. Obviously, watching that number helps a lot.
fruitbane
He/Him
Joined: 3/28/2005
Posts: 216
Well, for Saturn games you use Yabause, not Gens. I don't know enough about RAM watching to be effective going that route, I think. But thanks. Your advice renewed my interest in toughing it out.
adelikat
He/Him
Emulator Coder, Site Developer, Site Owner, Expert player (3573)
Joined: 11/3/2004
Posts: 4754
Location: Tennessee
Yabause has a lag counter and any other features of GENS mentioned here. Also, I used Shinobi Legions as my test game when we were working on Yabause rerecording. Unfortunately I never finished my TAS nor did I get around to it since. I look forward to seeing your work!
It's hard to look this good. My TAS projects