name: 120 fps
description: The game at 120 frames a second (on a 120 Hz screen), at its normal speed: it still steps 60 times a second, and every other frame shows everything halfway between two steps. Loading screens stay at 60.
author: hakuX
refresh: 120

# The game steps its logic once a frame (0x123E0). With the vblank at
# 120 Hz the frame (0x13A80) runs every vblank; one that finds two vblanks
# since the last step (the game's count 0x265174, checked at its controller
# poll 0x13B15) polls, steps and reads the pads; the others go from the poll
# to the render (0x13C63): 60 steps a second, 120 frames. The frame counters
# (0x13F5C) count the stepped frames. Every draw's matrix (model and camera
# in one, from a slot of the game's matrix stack) goes through SetTransform
# (0x18CC60): on a stepped frame it's matched in the frame before's (the
# same slot, near the place the last match gave, close enough) and the mean
# of the two is drawn, half a step back. The code is in the header page
# (sizeof_headers raised to 0x1000), the records in two buffers from
# MmAllocateContiguousMemory. Generated by tools/mods/jsrf_120fps.py.
[default.xbe]
0x00010108: 88 09 00 00 -> 00 10 00 00
0x000109C0: 00 00 00 00 00 00 00 00 00 00 00 00 -> 00 00 80 40 0A D7 23 3B 9A 99 19 3F
0x000109D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -> 00 00 00 3F 00 00 00 3F 00 00 00 3F 00 00 00 3F
0x00010A60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -> 00 00 00 00 01 00 00 00 FF FF FF FF 02 00 00 00 FE FF FF FF 03 00 00 00 FD FF FF FF 04 00 00 00
0x00010A80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -> FC FF FF FF 05 00 00 00 FB FF FF FF 06 00 00 00 FA FF FF FF 07 00 00 00 F9 FF FF FF 08 00 00 00
0x00010AA0: 00 00 00 00 -> F8 FF FF FF
0x00010AB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -> 83 3D AC 09 01 00 00 75 1E 68 00 80 04 00 FF 15 44 40 1C 00 A3 AC 09 01 00 85 C0 74 0A 05 00 40
0x00010AD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -> 02 00 A3 B0 09 01 00 A1 AC 09 01 00 8B 0D B0 09 01 00 A3 B0 09 01 00 89 0D AC 09 01 00 A1 A8 09
0x00010AF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -> 01 00 A3 B4 09 01 00 C7 05 A8 09 01 00 00 00 00 00 C7 05 B8 09 01 00 00 00 00 00 A1 74 51 26 00
0x00010B10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -> 8B C8 2B 0D A4 09 01 00 83 F9 02 72 27 83 F9 04 77 09 83 05 A4 09 01 00 02 EB 05 A3 A4 09 01 00
0x00010B30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -> C7 05 A0 09 01 00 00 00 00 00 E8 81 4E 05 00 E9 D6 2F 00 00 C7 05 A0 09 01 00 01 00 00 00 89 5E
0x00010B50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -> 74 8B 86 94 00 00 00 3B C3 0F 85 D3 33 00 00 57 E9 FE 30 00 00
0x00010B80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -> 83 3D A0 09 01 00 00 75 0C FF 86 E0 87 00 00 FF 86 E4 87 00 00 E9 DC 33 00 00
0x00010BA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -> 8B 44 24 04 85 C0 74 12 83 F8 06 0F 82 2A 02 00 00 83 F8 09 0F 87 21 02 00 00 8B 0D AC 09 01 00
0x00010BC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -> 85 C9 0F 84 13 02 00 00 8B 15 A8 09 01 00 81 FA 00 08 00 00 0F 83 01 02 00 00 FF 05 A8 09 01 00
0x00010BE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -> 6B C2 48 03 C8 89 0D BC 09 01 00 53 55 56 57 8B 74 24 18 83 3D A0 09 01 00 00 0F 85 BE 01 00 00
0x00010C00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -> 8B 1D B0 09 01 00 8B EA 03 2D B8 09 01 00 0F 11 05 20 0A 01 00 0F 11 0D 30 0A 01 00 0F 11 15 40
0x00010C20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -> 0A 01 00 0F 11 1D 50 0A 01 00 33 FF 8B 04 BD 60 0A 01 00 03 C5 3B 05 B4 09 01 00 0F 83 57 01 00
0x00010C40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -> 00 6B C0 48 03 C3 8B 4C 24 14 39 08 0F 85 46 01 00 00 39 70 04 0F 85 3D 01 00 00 F3 0F 10 46 30
0x00010C60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -> F3 0F 5C 40 38 F3 0F 59 C0 F3 0F 10 56 30 F3 0F 59 D2 F3 0F 10 4E 34 F3 0F 5C 48 3C F3 0F 59 C9
0x00010C80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -> F3 0F 58 C1 F3 0F 10 4E 34 F3 0F 59 C9 F3 0F 58 D1 F3 0F 10 4E 38 F3 0F 5C 48 40 F3 0F 59 C9 F3
0x00010CA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -> 0F 58 C1 F3 0F 10 4E 38 F3 0F 59 C9 F3 0F 58 D1 F3 0F 59 15 C4 09 01 00 F3 0F 58 15 C0 09 01 00
0x00010CC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -> 0F 2F C2 0F 83 CF 00 00 00 0F 8A C9 00 00 00 0F 10 46 00 0F 10 50 08 0F 5C C2 0F 59 C0 0F 10 4E
0x00010CE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -> 10 0F 10 50 18 0F 5C CA 0F 59 C9 0F 58 C1 0F 10 4E 20 0F 10 50 28 0F 5C CA 0F 59 C9 0F 58 C1 0F
0x00010D00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -> 28 C8 0F C6 C8 4E 0F 58 C1 0F 28 C8 0F C6 C8 B1 0F 58 C1 0F 2F 05 C8 09 01 00 0F 83 78 00 00 00
0x00010D20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -> 0F 8A 72 00 00 00 8B 0C BD 60 0A 01 00 01 0D B8 09 01 00 0F 10 1D D0 09 01 00 0F 10 46 00 0F 10
0x00010D40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -> 48 08 0F 58 C1 0F 59 C3 0F 11 05 E0 09 01 00 0F 10 46 10 0F 10 48 18 0F 58 C1 0F 59 C3 0F 11 05
0x00010D60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -> F0 09 01 00 0F 10 46 20 0F 10 48 28 0F 58 C1 0F 59 C3 0F 11 05 00 0A 01 00 0F 10 46 30 0F 10 48
0x00010D80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -> 38 0F 58 C1 0F 59 C3 0F 11 05 10 0A 01 00 C7 44 24 18 E0 09 01 00 EB 0A 47 83 FF 11 0F 82 8A FE
0x00010DA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -> FF FF 0F 10 05 20 0A 01 00 0F 10 0D 30 0A 01 00 0F 10 15 40 0A 01 00 0F 10 1D 50 0A 01 00 8B 0D
0x00010DC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -> BC 09 01 00 8B 44 24 14 89 01 89 71 04 8D 79 08 B9 10 00 00 00 F3 A5 5F 5E 5D 5B 8B 44 24 04 8B
0x00010DE0: 00 00 00 00 00 00 00 00 -> 54 24 08 E9 80 BE 17 00
0x00013B15: E8 A6 1E 05 00 -> E9 96 CF FF FF
0x00013F5C: 8B 8E E0 87 00 00 -> E9 1F CC FF FF 90
0x0018CC60: 8B 44 24 04 8B 54 24 08 -> E9 3B 3F E8 FF 90 90 90
