-- FF2 Pause-on-Dialog-Window Script -- revision: 3 -- please provide feedback if this does not slow things down, -- or if the slowdown occurs in non-textbox circumstances. :) ---- your slowdown amount ---- local integer pausetime = 7; -- X = 1/Xth speed, still requires fast reading. bigger numbers = slower ---- script starts here ---- local integer pause_counter = 0; local integer room_title_shown = 0; function pause_wait (id, multiplier) if (id == 1 and pause_counter == 0) then snes9x.frameadvance(); end if (pause_counter < pausetime * multiplier) then snes9x.wait(); pause_counter = pause_counter + 1; pause_wait(id, multiplier) else snes9x.frameadvance(); pause_counter = 0; if (id == 1) then room_title_shown = 1; end end end while true do local integer byte_castleintro = memory.readbyte(0x7e06eb); -- 1 = FF2 castle intro thing showing, 0 = not showing. local integer word_castleintro2 = memory.readword(0x7e06b2); -- don't know, but is always 464 when the FF2 castle intro thing shows, so used for protection local integer byte_dialogwindow = memory.readbyte(0x7e06df); -- 0 = fully closed, 8 = fully open. local integer byte_roomwindow = memory.readbyte(0x7e06d6); -- rising edge = room title showing next frame, 1 = room title shown, 0 = reset room title shown flag (leaving room), -- required to get around textbox variable on the FF2 castle intro screen if (byte_castleintro ~= 1 and word_castleintro2 ~= 464) then -- check for textbox -- start check at 0-4 for a nicer open/close transition effect, and to make sure you don't cut off text when closing if (byte_dialogwindow >= 1) then pause_wait(0, 1); -- check for room name window elseif (byte_roomwindow == 1 and room_title_shown == 0) then pause_wait(1, 6); -- no checks match? advance the frame else snes9x.frameadvance(); end -- frameadvance if castle intro is showing else snes9x.frameadvance(); end -- reset the room_title_shown variable if the title has already been shown if (byte_roomwindow == 0 and room_title_shown == 1) then room_title_shown = 0; end end