Ingame time advances differently and slower than real time for a few reasons: - IGT starts counting when spawning in the room after the intro - IGT advances at 59.7275 fps, which means igt seconds are about 1.0046s - IGT does not advance during white screen transitions when LCD is disabled: map / battle transitions, opening pokedex / party / trainer card... - in yellow, a few more things stop the igt from advancing: palette changes, pikachu cries - and ofc IGT does not advance when reseting back to a save Most of the events that lag the IGT are fixed in a run: entering lab, leaving lab, entering mart, leaving mart, etc. Those transitions have a variable duration but not variable enough to matter over a few minutes. The important ones are the events that might or might not happen like wild encounters. Using Flowtimer IGT Tracking: To calibrate, use either the patched ROM where you can check igt, or the normal ROM and open the save files with pichusav. Start the timer at the same time as clearing the last intro textbox. Play normally and fill on the program any random event that might delay the igt (like route 1 encounters). Never do extra flashing of pokedex / party / trainer card. Before saving for the manip, hit Play (it will tick for the next 10 igt seconds) and save on a tick. Check the save file to see how far you are from frame 0 and change the offset accordingly (one frame is 16.74ms), then change frame to your target igt frame. Notes: - "Frame" and "Offset" do the same thing except that Offset is in ms while Frame is in frames, I just found convenient to have Frame to change the target frame easily. - Since it will tick every second you want to avoid putting a too large interval / amount of beeps or it will just overlap everything. - If you want to save multiple times for calibration, it is important to note that the game will actually take longer to save after the first save of a run. On Red/Blue, it will be 4 frames slower (21 instead of 17), on Yellow 3 frames slower (30 instead of 27) so you want to account for that in your calibration, unless the manip is not the first one in the run. In other words if you hit frame 4 on a resave in red you are correctly calibrated for frame 0 for a first save manip. - If tracking for a manip that is not the first in a run, it is important to reset previous manips at the same time as pressing A (or with a consistent delay, thx yellow) to keep your timer consistent with igt. - If using the patched ROM to calibrate, checking the save igt in trainer card will cause igt lag :o) - Advanced users can configure games and delays in igtdelayers.json Yellow color lag: A lot of things causes 2 frames of igt lag in yellow, but the most notable one is HP bars switching colors. Every time hp (ennemy or ally) changes color you have to add a color lag. It is possible to skip the orange bar (green to red) *however* the redbar lag is never skipped and will happen at 0 hp. Leveling out to a different color also causes lag. Throwing a poké ball causes a color lag, so if you're throwing more balls than intended you have to add 1 every time. Naming a pokemon causes 2 color lags (4 frames) - useful for yellow nsc which doesnt always name.