psx.wiki

GTE Input Timing and I/O Load Pairs: Difference between revisions

Revision as of 04:48, 23 October 2026
RemmyLee
(Main page: drop the Hardware Tests lede)
Revision as of 05:11, 23 October 2026
RemmyLee
(Hardware tests: 72 more test pages, listed on the main page by area; RUN.toml no longer published)
Line 1:Line 1:
+---
+title: GTE Input Timing and I/O Load Pairs
+type: test
+summary: Measures when each GTE command reads each input, and the cost of paired loads, stores after loads and uncached loads.
+category: Hardware tests
+info: Machine = SCPH-5501
+info: Program = cpu_next4
+---
+
+## Overview
+
+The program follows on from [CPU Load Pairs and GTE Input Timing](/tests/cpu-load-pairs/). Its timing rows are root counter 2 counts in system clock cycles for 100 turns of a loop body.[^runh]
+
+The GTE groups sweep each input of each [GTE](/hardware/gte/) command. In the "before" rows the input changes from its old value 00010002h to its new value 00030004h up to two NOPs before the command. In the "after" rows the command is issued with the old value in place and the new value is written zero to twelve NOPs after it. Every input is set again before each pass, and each row runs cold from RAM and then cached.[^runh]
+
+## Results
+
+### GTE Inputs
+
+The table gives, for each input whose old and new values lead to different results, how many NOPs must come between a write and the command for the command to use it. It also gives the latest write after the command that still reached it. A dagger (†) marks a row in which the cold and the cached runs differed, and the figure is then the latest gap at which either run took the write.[^runh]
+
+Table: When each GTE command reads its inputs
+
+| Command | Input | NOPs needed before | Latest write after that reaches it |
+| --- | --- | --- | --- |
+| RTPS | VXY0, VZ0 | 0 | none |
+| RTPT | VZ0 | 0 | none |
+| RTPT | VZ1 | 0 | at once |
+| RTPT | VXY2, VZ2 | 0 | 4 NOPs after † |
+| NCLIP | SXY0 | 2 | |
+| NCLIP | SXY2 | 0 | at once |
+| OP | IR2 | 1 | |
+| OP | IR3 | 0 | none |
+| DPCS | RGBC | 1 | none |
+| DCPL | RGBC | 1 | none |
+| DCPL | IR1 | 1 | |
+| INTPL | IR1 | 1 | none |
+| MVMVA | VXY0 | 2 | |
+| MVMVA | VZ0 | 0 | 1 NOP after † |
+| MVMVA, IR vector | IR1 | 2 | |
+| NCS | VXY0 | 2 | none |
+| NCS | VZ0 | 0 | at once † |
+| NCDS, NCCS | VXY0 | 2 | none |
+| NCDS, NCCS | RGBC | 0 | 8 NOPs after † |
+| NCT | VXY2 | 0 | 4 NOPs after † |
+| NCDT, NCCT | VXY2 | 0 | at once |
+| CC | RGBC | 0 | 2 NOPs after † |
+| CC | IR1 | 2 † | |
+| CDP | RGBC | 0 | at once |
+| CDP | IR1 | 2 | |
+| SQR | IR1 | 2 | |
+| SQR | IR2 | 1 | |
+| SQR | IR3 | 0 | none |
+| AVSZ3 | SZ1 | 2 | |
+| AVSZ3 | SZ2 | 1 | |
+| AVSZ3 | SZ3 | 0 | none |
+| GPF | IR0, IR1 | 2 | none for IR0 |
+| GPF | IR2 | 1 | |
+| GPL | IR0, MAC1 | 2 | |
+
+A blank cell means the program did not test that case. Inputs that a command reads early need the write to settle first, and inputs it reads late can still be changed after the command has started. RTPT, for example, reads the first vector at the start and the third vector several cycles later.[^runh]
+
+### I/O Loads in Pairs
+
+The second of two loads from the same device waits for the first to finish:[^runh]
+
+Table: Loads in pairs by device (cycles for 100 turns)
+
+| Load | Load, nop | Load, load, nop | Load, 4 nops, load, nop |
+| --- | --- | --- | --- |
+| I_STAT lw | 750 | 1148 | 1449 |
+| GPUSTAT lw | 745 | 1138 | 1449 |
+| DPCR lw | 745 | 1138 | 1449 |
+| Timer 1 lhu | 750 | 1152 | 1448 |
+| SPUSTAT lhu | 2246 | 4252 | 4241 |
+| SPU voice 0 lhu | 2246 | 4247 | 4241 |
+| CD-ROM status lbu | 1242 | 2041 | 2250 |
+| EXP1 lbu | 1130 | 1825 | 2018 |
+| BIOS lbu | 1130 | 1825 | 2024 |
+| RAM lbu | 944 | 1446 | 1642 |
+
+On the SPU, four NOPs between the two loads save nothing: the second load still takes as long as if it came at once.[^runh]
+
+### A Store after a Load
+
+A RAM store right after a RAM load added about 3 cycles a turn (1265 against 958). A store to the GPU's GP0 port or to the scratchpad after a RAM load added about 1 (1044). A RAM store after an I_STAT load added about 1 (863 against 750).[^runh]
+
+### Branches between Loads
+
+A taken backward branch between two RAM loads added about 1 cycle a turn: the loop took 1771 cycles against 1678 with four NOPs in its place. A forward branch cost nothing (1677). A BNE on a register written just before it cost nothing as well (1675).[^runh]
+
+### Loads in Uncached Code
+
+When the code runs from KSEG1, a load does not overlap with the next instruction fetch. A RAM load adds about 4 cycles a turn to the uncached loop and a BIOS ROM load about 22. The number of NOPs after the load does not change these figures. An I_STAT load adds nothing beyond its own fetch. I_STAT lw with two NOPs took 3715 cycles against 3103 for two NOPs alone, which is the cost of one more uncached instruction.[^runh]
+
+### Instruction Cache Fills by Line
+
+A call of 1 to 16 cache lines of NOPs was timed three times. The first call followed FlushCache, the second came from the cache and the third followed a second FlushCache.[^runh]
+
+Table: Calls of n cache lines in counts with the timer overhead included
+
+| Lines | Cold | Cached | Cold again |
+| --- | --- | --- | --- |
+| 1 | 33 | 28 | 33 |
+| 2 | 42 | 37 | 42 |
+| 3 | 51 | 28 | 51 |
+| 4 | 60 | 26 | 60 |
+| 6 | 82 | 29 | 78 |
+| 8 | 101 | 37 | 96 |
+| 16 | 168 | 69 | 173 |
+
+Each further line costs about 9 counts when the cache is cold.[^runh]
+
+## Runs
+
+### 26 September 2026 (card-cpu4)
+
+[00RUN.txt](/tests/raw/20260926T0000Z-5501a-card-cpu4/cpu4/00RUN.txt):
+
+```
+===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+12 tests
+COP0 at start: BPC 00000000 BDA 00000000 TAR BFC02B68 DCIC 00000000 BadVaddr 00000480 BDAM 00000000
+BPCM 00000000 SR 00000000 Cause C0000024 EPC BFC02B78 PRId 00000002
+```
+
+[01IOP.txt](/tests/raw/20260926T0000Z-5501a-card-cpu4/cpu4/01IOP.txt):
+
+```
+===== 01 IOP IO LOAD PAIRS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+loads in pairs by device:
+I_STAT lw load, nop: 746
+I_STAT lw load, load, nop: 1155
+I_STAT lw load, 4 nops, load, nop: 1455
+GPUSTAT lw load, nop: 750
+GPUSTAT lw load, load, nop: 1137
+GPUSTAT lw load, 4 nops, load, nop: 1450
+DPCR lw load, nop: 751
+DPCR lw load, load, nop: 1136
+DPCR lw load, 4 nops, load, nop: 1449
+timer 1 lhu load, nop: 756
+timer 1 lhu load, load, nop: 1147
+timer 1 lhu load, 4 nops, load, nop: 1449
+SPUSTAT lhu load, nop: 2237
+SPUSTAT lhu load, load, nop: 4228
+SPUSTAT lhu load, 4 nops, load, nop: 4225
+SPU voice 0 lhu load, nop: 2243
+SPU voice 0 lhu load, load, nop: 4225
+SPU voice 0 lhu load, 4 nops, load, nop: 4225
+CDROM status lbu load, nop: 1243
+CDROM status lbu load, load, nop: 2052
+CDROM status lbu load, 4 nops, load, nop: 2251
+EXP1 lbu load, nop: 1136
+EXP1 lbu load, load, nop: 1825
+EXP1 lbu load, 4 nops, load, nop: 2025
+BIOS lbu load, nop: 1124
+BIOS lbu load, load, nop: 1825
+BIOS lbu load, 4 nops, load, nop: 2025
+RAM lbu load, nop: 941
+RAM lbu load, load, nop: 1446
+RAM lbu load, 4 nops, load, nop: 1650
+I_STAT lw, lw: 1055
+I_STAT lw, 1 nop, lw, nop: 1349
+RAM lw, 9 nops, lw, nop: 2075
+RAM lw, 10 nops, lw, nop: 2186
+RAM lw, 12 nops, lw, nop: 2382
+Done.
+```
+
+[02SAL.txt](/tests/raw/20260926T0000Z-5501a-card-cpu4/cpu4/02SAL.txt):
+
+```
+===== 02 SAL STORE AFTER LOAD | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+a store after a load:
+RAM lw, nop: 956
+RAM sw, nop (no load): 559
+RAM lw, RAM sw: 1261
+RAM lw, 1 nop, RAM sw: 1477
+RAM lw, 2 nops, RAM sw: 1486
+RAM lw, 3 nops, RAM sw: 1483
+RAM lw, 5 nops, RAM sw: 1493
+RAM lw, GP0 sw: 1047
+RAM lw, 1 nop, GP0 sw: 1238
+RAM lw, 3 nops, GP0 sw: 1267
+RAM lw, scratchpad sw: 1047
+RAM lw, 1 nop, scratchpad sw: 1247
+RAM lw, 3 nops, scratchpad sw: 1271
+I_STAT lw, RAM sw: 863
+I_STAT lw, 1 nop, RAM sw: 1079
+BIOS lw, 1 nop, RAM sw: 3233
+BIOS lw, 3 nops, RAM sw: 3252
+Done.
+```
+
+[03BRK.txt](/tests/raw/20260926T0000Z-5501a-card-cpu4/cpu4/03BRK.txt):
+
+```
+===== 03 BRK BRANCH KINDS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+the branch between two loads (4 instructions between each time):
+RAM lw, 4 nops, lw, nop: 1685
+RAM lw, backward beq path, lw: 1783
+RAM lw, forward beq, 3 nops, lw, nop: 1687
+RAM lw, addiu, bne on it (taken), nop, lw, nop: 1684
+RAM lw, addiu, beq $0 (taken), nop, lw, nop: 1693
+BIOS lw, 4 nops, lw, nop: 5625
+BIOS lw, backward beq path, lw: 5671
+BIOS lw, addiu, bne on it (taken), nop, lw, nop: 5661
+Done.
+```
+
+[04UNL.txt](/tests/raw/20260926T0000Z-5501a-card-cpu4/cpu4/04UNL.txt):
+
+```
+===== 04 UNL UNCACHED LOADS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+code from KSEG1, a load then n nops:
+1 nop: 2503
+2 nops: 3111
+4 nops: 4331
+6 nops: 5551
+RAM lw: 2912
+RAM lw, 1 nop: 3526
+RAM lw, 2 nops: 4133
+RAM lw, 4 nops: 5362
+RAM lw, 6 nops: 6604
+BIOS lw: 4714
+BIOS lw, 2 nops: 5927
+BIOS lw, 6 nops: 8369
+I_STAT lw, 2 nops: 3722
+Done.
+```
+
+[05FLN.txt](/tests/raw/20260926T0000Z-5501a-card-cpu4/cpu4/05FLN.txt):
+
+```
+===== 05 FLN FILL LINES | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+i-cache fills, one call (timer overhead included):
+1 line: cold 34, cached 16, cold again 40
+2 lines: cold 43, cached 20, cold again 43
+3 lines: cold 52, cached 24, cold again 52
+4 lines: cold 61, cached 28, cold again 61
+6 lines: cold 79, cached 50, cold again 84
+8 lines: cold 101, cached 44, cold again 97
+16 lines: cold 169, cached 81, cold again 169
+Done.
+```
+
+[06GB1.txt](/tests/raw/20260926T0000Z-5501a-card-cpu4/cpu4/06GB1.txt):
+
+```
+===== 06 GB1 GTE BEFORE 1 | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+GTE: an input written n nops before the command (old 00010002, new 00030004; cold, cached):
+RTPS, VXY0 0 before: 00000004 00000004
+RTPS, VXY0 1 before: 00000004 00000004
+RTPS, VXY0 2 before: 00000004 00000004
+RTPS, VZ0 0 before: 00000004 00000004
+RTPS, VZ0 1 before: 00000004 00000004
+RTPS, VZ0 2 before: 00000004 00000004
+RTPT, VZ0 0 before: 00000004 00000004
+RTPT, VZ0 1 before: 00000004 00000004
+RTPT, VZ0 2 before: 00000004 00000004
+RTPT, VZ1 0 before: 00000004 00000004
+RTPT, VZ1 1 before: 00000004 00000004
+RTPT, VZ1 2 before: 00000004 00000004
+RTPT, VXY2 0 before: 00000004 00000004
+RTPT, VXY2 1 before: 00000004 00000004
+RTPT, VXY2 2 before: 00000004 00000004
+RTPT, VZ2 0 before: 00000004 00000004
+RTPT, VZ2 1 before: 00000004 00000004
+RTPT, VZ2 2 before: 00000004 00000004
+NCLIP, SXY0 0 before: FFFFFF30 FFFFFF30
+NCLIP, SXY0 1 before: FFFFFF50 FFFFFF50
+NCLIP, SXY0 2 before: FFFFFF70 FFFFFF70
+NCLIP, SXY1 0 before: FFFFFFD0 FFFFFFD0
+NCLIP, SXY1 1 before: FFFFFFD0 FFFFFFD0
+NCLIP, SXY1 2 before: FFFFFFD0 FFFFFFD0
+NCLIP, SXY2 0 before: FFFFFFC0 FFFFFFC0
+NCLIP, SXY2 1 before: FFFFFFC0 FFFFFFC0
+NCLIP, SXY2 2 before: FFFFFFC0 FFFFFFC0
+OP, IR1 0 before: FFFFF004 FFFFF004
+OP, IR1 1 before: FFFFF004 FFFFF004
+OP, IR1 2 before: FFFFF004 FFFFF004
+OP, IR2 0 before: 00000FFE 00000FFE
+OP, IR2 1 before: 00000FFC 00000FFC
+OP, IR2 2 before: 00000FFC 00000FFC
+OP, IR3 0 before: 00000FFC 00000FFC
+OP, IR3 1 before: 00000FFC 00000FFC
+OP, IR3 2 before: 00000FFC 00000FFC
+DPCS, RGBC 0 before: 00000020 00000020
+DPCS, RGBC 1 before: 00000040 00000040
+DPCS, RGBC 2 before: 00000040 00000040
+INTPL, IR0 0 before: 00000FFC 00000FFC
+INTPL, IR0 1 before: 00000FFC 00000FFC
+INTPL, IR0 2 before: 00000FFC 00000FFC
+INTPL, IR1 0 before: 00000002 00000002
+INTPL, IR1 1 before: 00000004 00000004
+INTPL, IR1 2 before: 00000004 00000004
+MVMVA, VXY0 0 before: 00000002 00000002
+MVMVA, VXY0 1 before: 00000004 00000002
+Done.
+```
+
+[07GB2.txt](/tests/raw/20260926T0000Z-5501a-card-cpu4/cpu4/07GB2.txt):
+
+```
+===== 07 GB2 GTE BEFORE 2 | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+GTE: an input written n nops before the command (old 00010002, new 00030004; cold, cached):
+MVMVA, VXY0 2 before: 00000004 00000004
+MVMVA, VZ0 0 before: 00000004 00000004
+MVMVA, VZ0 1 before: 00000004 00000004
+MVMVA, VZ0 2 before: 00000004 00000004
+MVMVA IR, IR1 0 before: 00000002 00000002
+MVMVA IR, IR1 1 before: 00000004 00000002
+MVMVA IR, IR1 2 before: 00000004 00000004
+MVMVA IR, IR3 0 before: 00000004 00000004
+MVMVA IR, IR3 1 before: 00000004 00000004
+MVMVA IR, IR3 2 before: 00000004 00000004
+NCDS, VXY0 0 before: 00000400 00000400
+NCDS, VXY0 1 before: 00000400 00000400
+NCDS, VXY0 2 before: 00000401 00000401
+NCDS, RGBC 0 before: 00000040 00000040
+NCDS, RGBC 1 before: 00000040 00000040
+NCDS, RGBC 2 before: 00000040 00000040
+NCS, VXY0 0 before: 00001002 00001002
+NCS, VXY0 1 before: 00001004 00001002
+NCS, VXY0 2 before: 00001004 00001004
+NCS, VZ0 0 before: 00000004 00000004
+NCS, VZ0 1 before: 00000004 00000004
+NCS, VZ0 2 before: 00000004 00000004
+NCCS, VXY0 0 before: 00000400 00000400
+NCCS, VXY0 1 before: 00000400 00000400
+NCCS, VXY0 2 before: 00000401 00000401
+NCCS, RGBC 0 before: 00000040 00000040
+NCCS, RGBC 1 before: 00000040 00000040
+NCCS, RGBC 2 before: 00000040 00000040
+CC, RGBC 0 before: 00000080 00000080
+CC, RGBC 1 before: 00000080 00000080
+CC, RGBC 2 before: 00000080 00000080
+CC, IR1 0 before: 00000400 00000400
+CC, IR1 1 before: 00000400 00000400
+CC, IR1 2 before: 00000401 00000401
+CDP, RGBC 0 before: 00000080 00000080
+CDP, RGBC 1 before: 00000080 00000080
+CDP, RGBC 2 before: 00000080 00000080
+CDP, IR1 0 before: 00000400 00000400
+CDP, IR1 1 before: 00000400 00000400
+CDP, IR1 2 before: 00000401 00000401
+SQR, IR1 0 before: 00000004 00000004
+SQR, IR1 1 before: 00000010 00000004
+SQR, IR1 2 before: 00000010 00000010
+SQR, IR2 0 before: 00000004 00000004
+SQR, IR2 1 before: 00000010 00000010
+SQR, IR2 2 before: 00000010 00000010
+SQR, IR3 0 before: 00000010 00000010
+Done.
+```
+
+[08GB3.txt](/tests/raw/20260926T0000Z-5501a-card-cpu4/cpu4/08GB3.txt):
+
+```
+===== 08 GB3 GTE BEFORE 3 | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+GTE: an input written n nops before the command (old 00010002, new 00030004; cold, cached):
+SQR, IR3 1 before: 00000010 00000010
+SQR, IR3 2 before: 00000010 00000010
+DCPL, RGBC 0 before: 00000020 00000020
+DCPL, RGBC 1 before: 00000040 00000040
+DCPL, RGBC 2 before: 00000040 00000040
+DCPL, IR1 0 before: 00000000 00000000
+DCPL, IR1 1 before: 00000001 00000001
+DCPL, IR1 2 before: 00000001 00000001
+AVSZ3, SZ1 0 before: 00000202 00000202
+AVSZ3, SZ1 1 before: 00000202 00000202
+AVSZ3, SZ1 2 before: 00000204 00000204
+AVSZ3, SZ2 0 before: 00000202 00000202
+AVSZ3, SZ2 1 before: 00000204 00000204
+AVSZ3, SZ2 2 before: 00000204 00000204
+AVSZ3, SZ3 0 before: 00000204 00000204
+AVSZ3, SZ3 1 before: 00000204 00000204
+AVSZ3, SZ3 2 before: 00000204 00000204
+AVSZ4, SZ0 0 before: 00000304 00000304
+AVSZ4, SZ0 1 before: 00000304 00000304
+AVSZ4, SZ0 2 before: 00000304 00000304
+GPF, IR0 0 before: 00000002 00000002
+GPF, IR0 1 before: 00000002 00000002
+GPF, IR0 2 before: 00000004 00000004
+GPF, IR1 0 before: 00000002 00000002
+GPF, IR1 1 before: 00000004 00000002
+GPF, IR1 2 before: 00000004 00000004
+GPF, IR2 0 before: 00000002 00000002
+GPF, IR2 1 before: 00000004 00000004
+GPF, IR2 2 before: 00000004 00000004
+GPF, IR3 0 before: 00000004 00000004
+GPF, IR3 1 before: 00000004 00000004
+GPF, IR3 2 before: 00000004 00000004
+GPL, IR0 0 before: 00000002 00000002
+GPL, IR0 1 before: 00000002 00000002
+GPL, IR0 2 before: 00000004 00000004
+GPL, MAC1 0 before: 00010002 00010002
+GPL, MAC1 1 before: 00030004 00010002
+GPL, MAC1 2 before: 00030004 00030004
+NCT, VXY2 0 before: 00001004 00001004
+NCT, VXY2 1 before: 00001004 00001004
+NCT, VXY2 2 before: 00001004 00001004
+NCDT, VXY2 0 before: 00000401 00000401
+NCDT, VXY2 1 before: 00000401 00000401
+NCDT, VXY2 2 before: 00000401 00000401
+NCCT, VXY2 0 before: 00000401 00000401
+NCCT, VXY2 1 before: 00000401 00000401
+NCCT, VXY2 2 before: 00000401 00000401
+Done.
+```
+
+[09GA1.txt](/tests/raw/20260926T0000Z-5501a-card-cpu4/cpu4/09GA1.txt):
+
+```
+===== 09 GA1 GTE AFTER 1 | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+GTE: an input written n nops after the command (old 00010002, new 00030004; cold, cached):
+RTPS, VXY0 0 after: 00000002 00000002
+RTPS, VXY0 1 after: 00000002 00000002
+RTPS, VXY0 2 after: 00000002 00000002
+RTPS, VXY0 4 after: 00000002 00000002
+RTPS, VXY0 6 after: 00000002 00000002
+RTPS, VXY0 8 after: 00000002 00000002
+RTPS, VXY0 12 after: 00000002 00000002
+RTPS, VZ0 0 after: 00000002 00000002
+RTPS, VZ0 1 after: 00000002 00000002
+RTPS, VZ0 2 after: 00000002 00000002
+RTPS, VZ0 4 after: 00000002 00000002
+RTPS, VZ0 6 after: 00000002 00000002
+RTPS, VZ0 8 after: 00000002 00000002
+RTPS, VZ0 12 after: 00000002 00000002
+RTPT, VZ0 0 after: 00000002 00000002
+RTPT, VZ0 1 after: 00000002 00000002
+RTPT, VZ0 2 after: 00000002 00000002
+RTPT, VZ0 4 after: 00000002 00000002
+RTPT, VZ0 6 after: 00000002 00000002
+RTPT, VZ1 0 after: 00000004 00000004
+RTPT, VZ1 2 after: 00000002 00000002
+RTPT, VZ1 4 after: 00000002 00000002
+RTPT, VZ1 6 after: 00000002 00000002
+RTPT, VZ1 8 after: 00000002 00000002
+RTPT, VZ1 10 after: 00000002 00000002
+RTPT, VZ1 12 after: 00000002 00000002
+RTPT, VXY2 0 after: 00000004 00000004
+RTPT, VXY2 2 after: 00000002 00000004
+RTPT, VXY2 4 after: 00000002 00000004
+RTPT, VXY2 6 after: 00000002 00000002
+RTPT, VXY2 8 after: 00000002 00000002
+RTPT, VXY2 10 after: 00000002 00000002
+RTPT, VXY2 12 after: 00000002 00000002
+RTPT, VXY2 14 after: 00000002 00000002
+RTPT, VXY2 16 after: 00000002 00000002
+RTPT, VXY2 20 after: 00000002 00000002
+RTPT, VZ2 0 after: 00000002 00000004
+RTPT, VZ2 2 after: 00000002 00000004
+RTPT, VZ2 4 after: 00000002 00000004
+RTPT, VZ2 6 after: 00000002 00000002
+RTPT, VZ2 8 after: 00000002 00000002
+Done.
+```
+
+[10GA2.txt](/tests/raw/20260926T0000Z-5501a-card-cpu4/cpu4/10GA2.txt):
+
+```
+===== 10 GA2 GTE AFTER 2 | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+GTE: an input written n nops after the command (old 00010002, new 00030004; cold, cached):
+RTPT, VZ2 10 after: 00000002 00000002
+RTPT, VZ2 12 after: 00000002 00000002
+RTPT, VZ2 14 after: 00000002 00000002
+RTPT, VZ2 16 after: 00000002 00000002
+RTPT, VZ2 20 after: 00000002 00000002
+NCLIP, SXY2 0 after: FFFFFFC0 FFFFFFC0
+NCLIP, SXY2 1 after: FFFFFFE0 FFFFFFC0
+NCLIP, SXY2 2 after: FFFFFFE0 FFFFFFE0
+NCLIP, SXY2 4 after: FFFFFFE0 FFFFFFE0
+NCLIP, SXY2 6 after: FFFFFFE0 FFFFFFE0
+OP, IR3 0 after: 00000FFE 00000FFE
+OP, IR3 1 after: 00000FFE 00000FFE
+OP, IR3 2 after: 00000FFE 00000FFE
+OP, IR3 4 after: 00000FFE 00000FFE
+DPCS, RGBC 0 after: 00000020 00000020
+DPCS, RGBC 1 after: 00000020 00000020
+DPCS, RGBC 2 after: 00000020 00000020
+DPCS, RGBC 4 after: 00000020 00000020
+DPCS, RGBC 6 after: 00000020 00000020
+INTPL, IR1 0 after: 00000002 00000002
+INTPL, IR1 1 after: 00000002 00000002
+INTPL, IR1 2 after: 00000002 00000002
+INTPL, IR1 4 after: 00000002 00000002
+INTPL, IR1 6 after: 00000002 00000002
+MVMVA, VZ0 0 after: 00000002 00000004
+MVMVA, VZ0 1 after: 00000002 00000004
+MVMVA, VZ0 2 after: 00000002 00000002
+MVMVA, VZ0 4 after: 00000002 00000002
+MVMVA, VZ0 6 after: 00000002 00000002
+SQR, IR3 0 after: 00000004 00000004
+SQR, IR3 1 after: 00000004 00000004
+SQR, IR3 2 after: 00000004 00000004
+SQR, IR3 4 after: 00000004 00000004
+NCDS, VXY0 0 after: 00000400 00000400
+NCDS, VXY0 2 after: 00000400 00000400
+NCDS, VXY0 4 after: 00000400 00000400
+NCDS, VXY0 6 after: 00000400 00000400
+NCDS, VXY0 8 after: 00000400 00000400
+NCDS, VXY0 12 after: 00000400 00000400
+NCDS, VXY0 16 after: 00000400 00000400
+NCDS, RGBC 0 after: 00000040 00000040
+Done.
+```
+
+[11GA3.txt](/tests/raw/20260926T0000Z-5501a-card-cpu4/cpu4/11GA3.txt):
+
+```
+===== 11 GA3 GTE AFTER 3 | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+GTE: an input written n nops after the command (old 00010002, new 00030004; cold, cached):
+NCDS, RGBC 2 after: 00000040 00000040
+NCDS, RGBC 4 after: 00000020 00000040
+NCDS, RGBC 8 after: 00000020 00000040
+NCDS, RGBC 12 after: 00000020 00000020
+NCDS, RGBC 16 after: 00000020 00000020
+NCS, VXY0 0 after: 00001002 00001002
+NCS, VXY0 2 after: 00001002 00001002
+NCS, VXY0 4 after: 00001002 00001002
+NCS, VXY0 6 after: 00001002 00001002
+NCS, VXY0 8 after: 00001002 00001002
+NCS, VXY0 12 after: 00001002 00001002
+NCS, VZ0 0 after: 00000002 00000004
+NCS, VZ0 2 after: 00000002 00000002
+NCS, VZ0 4 after: 00000002 00000002
+NCS, VZ0 6 after: 00000002 00000002
+NCS, VZ0 8 after: 00000002 00000002
+NCS, VZ0 12 after: 00000002 00000002
+NCCS, VXY0 0 after: 00000400 00000400
+NCCS, VXY0 2 after: 00000400 00000400
+NCCS, VXY0 4 after: 00000400 00000400
+NCCS, VXY0 6 after: 00000400 00000400
+NCCS, VXY0 8 after: 00000400 00000400
+NCCS, VXY0 12 after: 00000400 00000400
+NCCS, VXY0 16 after: 00000400 00000400
+NCCS, RGBC 0 after: 00000040 00000040
+NCCS, RGBC 2 after: 00000040 00000040
+NCCS, RGBC 4 after: 00000020 00000040
+NCCS, RGBC 6 after: 00000020 00000040
+NCCS, RGBC 8 after: 00000020 00000040
+NCCS, RGBC 10 after: 00000020 00000020
+NCCS, RGBC 12 after: 00000020 00000020
+NCCS, RGBC 14 after: 00000020 00000020
+NCCS, RGBC 16 after: 00000020 00000020
+CC, RGBC 0 after: 00000040 00000080
+CC, RGBC 2 after: 00000040 00000080
+CC, RGBC 4 after: 00000040 00000040
+CC, RGBC 6 after: 00000040 00000040
+CC, RGBC 8 after: 00000040 00000040
+CC, RGBC 10 after: 00000040 00000040
+CDP, RGBC 0 after: 00000080 00000080
+CDP, RGBC 2 after: 00000040 00000040
+Done.
+```
+
+[12GA4.txt](/tests/raw/20260926T0000Z-5501a-card-cpu4/cpu4/12GA4.txt):
+
+```
+===== 12 GA4 GTE AFTER 4 | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+GTE: an input written n nops after the command (old 00010002, new 00030004; cold, cached):
+CDP, RGBC 4 after: 00000040 00000040
+CDP, RGBC 6 after: 00000040 00000040
+CDP, RGBC 8 after: 00000040 00000040
+CDP, RGBC 12 after: 00000040 00000040
+DCPL, RGBC 0 after: 00000020 00000020
+DCPL, RGBC 1 after: 00000020 00000020
+DCPL, RGBC 2 after: 00000020 00000020
+DCPL, RGBC 4 after: 00000020 00000020
+DCPL, RGBC 6 after: 00000020 00000020
+AVSZ3, SZ3 0 after: 00000202 00000202
+AVSZ3, SZ3 1 after: 00000202 00000202
+AVSZ3, SZ3 2 after: 00000202 00000202
+AVSZ3, SZ3 4 after: 00000202 00000202
+GPF, IR0 0 after: 00000002 00000002
+GPF, IR0 1 after: 00000002 00000002
+GPF, IR0 2 after: 00000002 00000002
+GPF, IR0 4 after: 00000002 00000002
+NCT, VXY2 0 after: 00001004 00001004
+NCT, VXY2 4 after: 00001002 00001004
+NCT, VXY2 8 after: 00001002 00001002
+NCT, VXY2 12 after: 00001002 00001002
+NCT, VXY2 16 after: 00001002 00001002
+NCT, VXY2 20 after: 00001002 00001002
+NCT, VXY2 24 after: 00001002 00001002
+NCT, VXY2 28 after: 00001002 00001002
+NCDT, VXY2 0 after: 00000401 00000401
+NCDT, VXY2 8 after: 00000400 00000400
+NCDT, VXY2 16 after: 00000400 00000400
+NCDT, VXY2 24 after: 00000400 00000400
+NCDT, VXY2 28 after: 00000400 00000400
+NCDT, VXY2 32 after: 00000400 00000400
+NCDT, VXY2 36 after: 00000400 00000400
+NCDT, VXY2 40 after: 00000400 00000400
+NCCT, VXY2 0 after: 00000401 00000401
+NCCT, VXY2 8 after: 00000400 00000400
+NCCT, VXY2 16 after: 00000400 00000400
+NCCT, VXY2 24 after: 00000400 00000400
+NCCT, VXY2 28 after: 00000400 00000400
+NCCT, VXY2 32 after: 00000400 00000400
+NCCT, VXY2 36 after: 00000400 00000400
+Done.
+```
+
+### 27 September 2026 (card-1)
+
+[00RUN.txt](/tests/raw/20260927T0000Z-5501a-card-1/cpu4/00RUN.txt):
+
+```
+===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+12 tests
+A chain program, linked at 80100000
+Saved on the card in slot 2, from image 1
+COP0 at start: BPC 00000000 BDA 00000000 TAR 8001F3F8 DCIC 00000000 BadVaddr 00000400 BDAM 00000000
+BPCM 00000000 SR 40000000 Cause 00000020 EPC 8001FF64 PRId 00000002
+```
+
+[01IOP.txt](/tests/raw/20260927T0000Z-5501a-card-1/cpu4/01IOP.txt):
+
+```
+===== 01 IOP IO LOAD PAIRS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000400
+
+loads in pairs by device:
+I_STAT lw load, nop: 750
+I_STAT lw load, load, nop: 1142
+I_STAT lw load, 4 nops, load, nop: 1448
+GPUSTAT lw load, nop: 738
+GPUSTAT lw load, load, nop: 1139
+GPUSTAT lw load, 4 nops, load, nop: 1448
+DPCR lw load, nop: 738
+DPCR lw load, load, nop: 1144
+DPCR lw load, 4 nops, load, nop: 1448
+timer 1 lhu load, nop: 753
+timer 1 lhu load, load, nop: 1147
+timer 1 lhu load, 4 nops, load, nop: 1448
+SPUSTAT lhu load, nop: 2246
+SPUSTAT lhu load, load, nop: 4247
+SPUSTAT lhu load, 4 nops, load, nop: 4248
+SPU voice 0 lhu load, nop: 2246
+SPU voice 0 lhu load, load, nop: 4247
+SPU voice 0 lhu load, 4 nops, load, nop: 4248
+CDROM status lbu load, nop: 1242
+CDROM status lbu load, load, nop: 2038
+CDROM status lbu load, 4 nops, load, nop: 2250
+EXP1 lbu load, nop: 1130
+EXP1 lbu load, load, nop: 1825
+EXP1 lbu load, 4 nops, load, nop: 2018
+BIOS lbu load, nop: 1130
+BIOS lbu load, load, nop: 1825
+BIOS lbu load, 4 nops, load, nop: 2018
+RAM lbu load, nop: 943
+RAM lbu load, load, nop: 1446
+RAM lbu load, 4 nops, load, nop: 1645
+I_STAT lw, lw: 1040
+I_STAT lw, 1 nop, lw, nop: 1340
+RAM lw, 9 nops, lw, nop: 2078
+RAM lw, 10 nops, lw, nop: 2180
+RAM lw, 12 nops, lw, nop: 2381
+Done.
+```
+
+[02SAL.txt](/tests/raw/20260927T0000Z-5501a-card-1/cpu4/02SAL.txt):
+
+```
+===== 02 SAL STORE AFTER LOAD | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000400
+
+a store after a load:
+RAM lw, nop: 960
+RAM sw, nop (no load): 552
+RAM lw, RAM sw: 1263
+RAM lw, 1 nop, RAM sw: 1460
+RAM lw, 2 nops, RAM sw: 1467
+RAM lw, 3 nops, RAM sw: 1480
+RAM lw, 5 nops, RAM sw: 1481
+RAM lw, GP0 sw: 1040
+RAM lw, 1 nop, GP0 sw: 1232
+RAM lw, 3 nops, GP0 sw: 1254
+RAM lw, scratchpad sw: 1040
+RAM lw, 1 nop, scratchpad sw: 1239
+RAM lw, 3 nops, scratchpad sw: 1267
+I_STAT lw, RAM sw: 857
+I_STAT lw, 1 nop, RAM sw: 1069
+BIOS lw, 1 nop, RAM sw: 3220
+BIOS lw, 3 nops, RAM sw: 3233
+Done.
+```
+
+[03BRK.txt](/tests/raw/20260927T0000Z-5501a-card-1/cpu4/03BRK.txt):
+
+```
+===== 03 BRK BRANCH KINDS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000400
+
+the branch between two loads (4 instructions between each time):
+RAM lw, 4 nops, lw, nop: 1687
+RAM lw, backward beq path, lw: 1770
+RAM lw, forward beq, 3 nops, lw, nop: 1679
+RAM lw, addiu, bne on it (taken), nop, lw, nop: 1676
+RAM lw, addiu, beq $0 (taken), nop, lw, nop: 1675
+BIOS lw, 4 nops, lw, nop: 5618
+BIOS lw, backward beq path, lw: 5618
+BIOS lw, addiu, bne on it (taken), nop, lw, nop: 5645
+Done.
+```
+
+[04UNL.txt](/tests/raw/20260927T0000Z-5501a-card-1/cpu4/04UNL.txt):
+
+```
+===== 04 UNL UNCACHED LOADS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000400
+
+code from KSEG1, a load then n nops:
+1 nop: 2498
+2 nops: 3104
+4 nops: 4323
+6 nops: 5544
+RAM lw: 2906
+RAM lw, 1 nop: 3516
+RAM lw, 2 nops: 4128
+RAM lw, 4 nops: 5354
+RAM lw, 6 nops: 6596
+BIOS lw: 4709
+BIOS lw, 2 nops: 5924
+BIOS lw, 6 nops: 8357
+I_STAT lw, 2 nops: 3712
+Done.
+```
+
+[05FLN.txt](/tests/raw/20260927T0000Z-5501a-card-1/cpu4/05FLN.txt):
+
+```
+===== 05 FLN FILL LINES | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000400
+
+i-cache fills, one call (timer overhead included):
+1 line: cold 33, cached 28, cold again 33
+2 lines: cold 42, cached 37, cold again 42
+3 lines: cold 51, cached 38, cold again 51
+4 lines: cold 60, cached 21, cold again 64
+6 lines: cold 82, cached 34, cold again 78
+8 lines: cold 96, cached 37, cold again 96
+16 lines: cold 172, cached 69, cold again 168
+Done.
+```
+
+[06GB1.txt](/tests/raw/20260927T0000Z-5501a-card-1/cpu4/06GB1.txt):
+
+```
+===== 06 GB1 GTE BEFORE 1 | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000400
+
+GTE: an input written n nops before the command (old 00010002, new 00030004; cold, cached):
+RTPS, VXY0 0 before: 00000004 00000004
+RTPS, VXY0 1 before: 00000004 00000004
+RTPS, VXY0 2 before: 00000004 00000004
+RTPS, VZ0 0 before: 00000004 00000004
+RTPS, VZ0 1 before: 00000004 00000004
+RTPS, VZ0 2 before: 00000004 00000004
+RTPT, VZ0 0 before: 00000004 00000004
+RTPT, VZ0 1 before: 00000004 00000004
+RTPT, VZ0 2 before: 00000004 00000004
+RTPT, VZ1 0 before: 00000004 00000004
+RTPT, VZ1 1 before: 00000004 00000004
+RTPT, VZ1 2 before: 00000004 00000004
+RTPT, VXY2 0 before: 00000004 00000004
+RTPT, VXY2 1 before: 00000004 00000004
+RTPT, VXY2 2 before: 00000004 00000004
+RTPT, VZ2 0 before: 00000004 00000004
+RTPT, VZ2 1 before: 00000004 00000004
+RTPT, VZ2 2 before: 00000004 00000004
+NCLIP, SXY0 0 before: FFFFFF50 FFFFFF50
+NCLIP, SXY0 1 before: FFFFFF50 FFFFFF50
+NCLIP, SXY0 2 before: FFFFFF70 FFFFFF70
+NCLIP, SXY1 0 before: FFFFFFD0 FFFFFFD0
+NCLIP, SXY1 1 before: FFFFFFD0 FFFFFFD0
+NCLIP, SXY1 2 before: FFFFFFD0 FFFFFFD0
+NCLIP, SXY2 0 before: FFFFFFC0 FFFFFFC0
+NCLIP, SXY2 1 before: FFFFFFC0 FFFFFFC0
+NCLIP, SXY2 2 before: FFFFFFC0 FFFFFFC0
+OP, IR1 0 before: FFFFF004 FFFFF004
+OP, IR1 1 before: FFFFF004 FFFFF004
+OP, IR1 2 before: FFFFF004 FFFFF004
+OP, IR2 0 before: 00000FFE 00000FFE
+OP, IR2 1 before: 00000FFC 00000FFC
+OP, IR2 2 before: 00000FFC 00000FFC
+OP, IR3 0 before: 00000FFC 00000FFC
+OP, IR3 1 before: 00000FFC 00000FFC
+OP, IR3 2 before: 00000FFC 00000FFC
+DPCS, RGBC 0 before: 00000020 00000020
+DPCS, RGBC 1 before: 00000040 00000040
+DPCS, RGBC 2 before: 00000040 00000040
+INTPL, IR0 0 before: 00000FFC 00000FFC
+INTPL, IR0 1 before: 00000FFC 00000FFC
+INTPL, IR0 2 before: 00000FFC 00000FFC
+INTPL, IR1 0 before: 00000002 00000002
+INTPL, IR1 1 before: 00000004 00000004
+INTPL, IR1 2 before: 00000004 00000004
+MVMVA, VXY0 0 before: 00000002 00000002
+MVMVA, VXY0 1 before: 00000002 00000002
+Done.
+```
+
+[07GB2.txt](/tests/raw/20260927T0000Z-5501a-card-1/cpu4/07GB2.txt):
+
+```
+===== 07 GB2 GTE BEFORE 2 | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000400
+
+GTE: an input written n nops before the command (old 00010002, new 00030004; cold, cached):
+MVMVA, VXY0 2 before: 00000004 00000004
+MVMVA, VZ0 0 before: 00000004 00000004
+MVMVA, VZ0 1 before: 00000004 00000004
+MVMVA, VZ0 2 before: 00000004 00000004
+MVMVA IR, IR1 0 before: 00000002 00000002
+MVMVA IR, IR1 1 before: 00000002 00000002
+MVMVA IR, IR1 2 before: 00000004 00000004
+MVMVA IR, IR3 0 before: 00000004 00000004
+MVMVA IR, IR3 1 before: 00000004 00000004
+MVMVA IR, IR3 2 before: 00000004 00000004
+NCDS, VXY0 0 before: 00000400 00000400
+NCDS, VXY0 1 before: 00000400 00000400
+NCDS, VXY0 2 before: 00000401 00000401
+NCDS, RGBC 0 before: 00000040 00000040
+NCDS, RGBC 1 before: 00000040 00000040
+NCDS, RGBC 2 before: 00000040 00000040
+NCS, VXY0 0 before: 00001002 00001002
+NCS, VXY0 1 before: 00001002 00001002
+NCS, VXY0 2 before: 00001004 00001004
+NCS, VZ0 0 before: 00000004 00000004
+NCS, VZ0 1 before: 00000004 00000004
+NCS, VZ0 2 before: 00000004 00000004
+NCCS, VXY0 0 before: 00000400 00000400
+NCCS, VXY0 1 before: 00000400 00000400
+NCCS, VXY0 2 before: 00000401 00000401
+NCCS, RGBC 0 before: 00000040 00000040
+NCCS, RGBC 1 before: 00000040 00000040
+NCCS, RGBC 2 before: 00000040 00000040
+CC, RGBC 0 before: 00000080 00000080
+CC, RGBC 1 before: 00000080 00000080
+CC, RGBC 2 before: 00000080 00000080
+CC, IR1 0 before: 00000400 00000400
+CC, IR1 1 before: 00000401 00000400
+CC, IR1 2 before: 00000401 00000401
+CDP, RGBC 0 before: 00000080 00000080
+CDP, RGBC 1 before: 00000080 00000080
+CDP, RGBC 2 before: 00000080 00000080
+CDP, IR1 0 before: 00000400 00000400
+CDP, IR1 1 before: 00000400 00000400
+CDP, IR1 2 before: 00000401 00000401
+SQR, IR1 0 before: 00000004 00000004
+SQR, IR1 1 before: 00000004 00000004
+SQR, IR1 2 before: 00000010 00000010
+SQR, IR2 0 before: 00000004 00000004
+SQR, IR2 1 before: 00000010 00000010
+SQR, IR2 2 before: 00000010 00000010
+SQR, IR3 0 before: 00000010 00000010
+Done.
+```
+
+[08GB3.txt](/tests/raw/20260927T0000Z-5501a-card-1/cpu4/08GB3.txt):
+
+```
+===== 08 GB3 GTE BEFORE 3 | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000400
+
+GTE: an input written n nops before the command (old 00010002, new 00030004; cold, cached):
+SQR, IR3 1 before: 00000010 00000010
+SQR, IR3 2 before: 00000010 00000010
+DCPL, RGBC 0 before: 00000020 00000020
+DCPL, RGBC 1 before: 00000040 00000040
+DCPL, RGBC 2 before: 00000040 00000040
+DCPL, IR1 0 before: 00000000 00000000
+DCPL, IR1 1 before: 00000001 00000001
+DCPL, IR1 2 before: 00000001 00000001
+AVSZ3, SZ1 0 before: 00000202 00000202
+AVSZ3, SZ1 1 before: 00000202 00000202
+AVSZ3, SZ1 2 before: 00000204 00000204
+AVSZ3, SZ2 0 before: 00000202 00000202
+AVSZ3, SZ2 1 before: 00000204 00000204
+AVSZ3, SZ2 2 before: 00000204 00000204
+AVSZ3, SZ3 0 before: 00000204 00000204
+AVSZ3, SZ3 1 before: 00000204 00000204
+AVSZ3, SZ3 2 before: 00000204 00000204
+AVSZ4, SZ0 0 before: 00000304 00000304
+AVSZ4, SZ0 1 before: 00000304 00000304
+AVSZ4, SZ0 2 before: 00000304 00000304
+GPF, IR0 0 before: 00000002 00000002
+GPF, IR0 1 before: 00000002 00000002
+GPF, IR0 2 before: 00000004 00000004
+GPF, IR1 0 before: 00000002 00000002
+GPF, IR1 1 before: 00000002 00000002
+GPF, IR1 2 before: 00000004 00000004
+GPF, IR2 0 before: 00000002 00000002
+GPF, IR2 1 before: 00000004 00000004
+GPF, IR2 2 before: 00000004 00000004
+GPF, IR3 0 before: 00000004 00000004
+GPF, IR3 1 before: 00000004 00000004
+GPF, IR3 2 before: 00000004 00000004
+GPL, IR0 0 before: 00000002 00000002
+GPL, IR0 1 before: 00000002 00000002
+GPL, IR0 2 before: 00000004 00000004
+GPL, MAC1 0 before: 00010002 00010002
+GPL, MAC1 1 before: 00010002 00010002
+GPL, MAC1 2 before: 00030004 00030004
+NCT, VXY2 0 before: 00001004 00001004
+NCT, VXY2 1 before: 00001004 00001004
+NCT, VXY2 2 before: 00001004 00001004
+NCDT, VXY2 0 before: 00000401 00000401
+NCDT, VXY2 1 before: 00000401 00000401
+NCDT, VXY2 2 before: 00000401 00000401
+NCCT, VXY2 0 before: 00000401 00000401
+NCCT, VXY2 1 before: 00000401 00000401
+NCCT, VXY2 2 before: 00000401 00000401
+Done.
+```
+
+[09GA1.txt](/tests/raw/20260927T0000Z-5501a-card-1/cpu4/09GA1.txt):
+
+```
+===== 09 GA1 GTE AFTER 1 | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000400
+
+GTE: an input written n nops after the command (old 00010002, new 00030004; cold, cached):
+RTPS, VXY0 0 after: 00000002 00000002
+RTPS, VXY0 1 after: 00000002 00000002
+RTPS, VXY0 2 after: 00000002 00000002
+RTPS, VXY0 4 after: 00000002 00000002
+RTPS, VXY0 6 after: 00000002 00000002
+RTPS, VXY0 8 after: 00000002 00000002
+RTPS, VXY0 12 after: 00000002 00000002
+RTPS, VZ0 0 after: 00000002 00000002
+RTPS, VZ0 1 after: 00000002 00000002
+RTPS, VZ0 2 after: 00000002 00000002
+RTPS, VZ0 4 after: 00000002 00000002
+RTPS, VZ0 6 after: 00000002 00000002
+RTPS, VZ0 8 after: 00000002 00000002
+RTPS, VZ0 12 after: 00000002 00000002
+RTPT, VZ0 0 after: 00000002 00000002
+RTPT, VZ0 1 after: 00000002 00000002
+RTPT, VZ0 2 after: 00000002 00000002
+RTPT, VZ0 4 after: 00000002 00000002
+RTPT, VZ0 6 after: 00000002 00000002
+RTPT, VZ1 0 after: 00000004 00000004
+RTPT, VZ1 2 after: 00000002 00000002
+RTPT, VZ1 4 after: 00000002 00000002
+RTPT, VZ1 6 after: 00000002 00000002
+RTPT, VZ1 8 after: 00000002 00000002
+RTPT, VZ1 10 after: 00000002 00000002
+RTPT, VZ1 12 after: 00000002 00000002
+RTPT, VXY2 0 after: 00000004 00000004
+RTPT, VXY2 2 after: 00000002 00000004
+RTPT, VXY2 4 after: 00000002 00000004
+RTPT, VXY2 6 after: 00000002 00000002
+RTPT, VXY2 8 after: 00000002 00000002
+RTPT, VXY2 10 after: 00000002 00000002
+RTPT, VXY2 12 after: 00000002 00000002
+RTPT, VXY2 14 after: 00000002 00000002
+RTPT, VXY2 16 after: 00000002 00000002
+RTPT, VXY2 20 after: 00000002 00000002
+RTPT, VZ2 0 after: 00000002 00000004
+RTPT, VZ2 2 after: 00000002 00000004
+RTPT, VZ2 4 after: 00000002 00000004
+RTPT, VZ2 6 after: 00000002 00000002
+RTPT, VZ2 8 after: 00000002 00000002
+Done.
+```
+
+[10GA2.txt](/tests/raw/20260927T0000Z-5501a-card-1/cpu4/10GA2.txt):
+
+```
+===== 10 GA2 GTE AFTER 2 | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000400
+
+GTE: an input written n nops after the command (old 00010002, new 00030004; cold, cached):
+RTPT, VZ2 10 after: 00000002 00000002
+RTPT, VZ2 12 after: 00000002 00000002
+RTPT, VZ2 14 after: 00000002 00000002
+RTPT, VZ2 16 after: 00000002 00000002
+RTPT, VZ2 20 after: 00000002 00000002
+NCLIP, SXY2 0 after: FFFFFFC0 FFFFFFC0
+NCLIP, SXY2 1 after: FFFFFFE0 FFFFFFE0
+NCLIP, SXY2 2 after: FFFFFFE0 FFFFFFE0
+NCLIP, SXY2 4 after: FFFFFFE0 FFFFFFE0
+NCLIP, SXY2 6 after: FFFFFFE0 FFFFFFE0
+OP, IR3 0 after: 00000FFE 00000FFE
+OP, IR3 1 after: 00000FFE 00000FFE
+OP, IR3 2 after: 00000FFE 00000FFE
+OP, IR3 4 after: 00000FFE 00000FFE
+DPCS, RGBC 0 after: 00000020 00000020
+DPCS, RGBC 1 after: 00000020 00000020
+DPCS, RGBC 2 after: 00000020 00000020
+DPCS, RGBC 4 after: 00000020 00000020
+DPCS, RGBC 6 after: 00000020 00000020
+INTPL, IR1 0 after: 00000002 00000002
+INTPL, IR1 1 after: 00000002 00000002
+INTPL, IR1 2 after: 00000002 00000002
+INTPL, IR1 4 after: 00000002 00000002
+INTPL, IR1 6 after: 00000002 00000002
+MVMVA, VZ0 0 after: 00000002 00000004
+MVMVA, VZ0 1 after: 00000002 00000004
+MVMVA, VZ0 2 after: 00000002 00000002
+MVMVA, VZ0 4 after: 00000002 00000002
+MVMVA, VZ0 6 after: 00000002 00000002
+SQR, IR3 0 after: 00000004 00000004
+SQR, IR3 1 after: 00000004 00000004
+SQR, IR3 2 after: 00000004 00000004
+SQR, IR3 4 after: 00000004 00000004
+NCDS, VXY0 0 after: 00000400 00000400
+NCDS, VXY0 2 after: 00000400 00000400
+NCDS, VXY0 4 after: 00000400 00000400
+NCDS, VXY0 6 after: 00000400 00000400
+NCDS, VXY0 8 after: 00000400 00000400
+NCDS, VXY0 12 after: 00000400 00000400
+NCDS, VXY0 16 after: 00000400 00000400
+NCDS, RGBC 0 after: 00000040 00000040
+Done.
+```
+
+[11GA3.txt](/tests/raw/20260927T0000Z-5501a-card-1/cpu4/11GA3.txt):
+
+```
+===== 11 GA3 GTE AFTER 3 | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000400
+
+GTE: an input written n nops after the command (old 00010002, new 00030004; cold, cached):
+NCDS, RGBC 2 after: 00000040 00000040
+NCDS, RGBC 4 after: 00000020 00000040
+NCDS, RGBC 8 after: 00000020 00000040
+NCDS, RGBC 12 after: 00000020 00000020
+NCDS, RGBC 16 after: 00000020 00000020
+NCS, VXY0 0 after: 00001002 00001002
+NCS, VXY0 2 after: 00001002 00001002
+NCS, VXY0 4 after: 00001002 00001002
+NCS, VXY0 6 after: 00001002 00001002
+NCS, VXY0 8 after: 00001002 00001002
+NCS, VXY0 12 after: 00001002 00001002
+NCS, VZ0 0 after: 00000002 00000004
+NCS, VZ0 2 after: 00000002 00000002
+NCS, VZ0 4 after: 00000002 00000002
+NCS, VZ0 6 after: 00000002 00000002
+NCS, VZ0 8 after: 00000002 00000002
+NCS, VZ0 12 after: 00000002 00000002
+NCCS, VXY0 0 after: 00000400 00000400
+NCCS, VXY0 2 after: 00000400 00000400
+NCCS, VXY0 4 after: 00000400 00000400
+NCCS, VXY0 6 after: 00000400 00000400
+NCCS, VXY0 8 after: 00000400 00000400
+NCCS, VXY0 12 after: 00000400 00000400
+NCCS, VXY0 16 after: 00000400 00000400
+NCCS, RGBC 0 after: 00000040 00000040
+NCCS, RGBC 2 after: 00000040 00000040
+NCCS, RGBC 4 after: 00000020 00000040
+NCCS, RGBC 6 after: 00000020 00000040
+NCCS, RGBC 8 after: 00000020 00000040
+NCCS, RGBC 10 after: 00000020 00000020
+NCCS, RGBC 12 after: 00000020 00000020
+NCCS, RGBC 14 after: 00000020 00000020
+NCCS, RGBC 16 after: 00000020 00000020
+CC, RGBC 0 after: 00000040 00000080
+CC, RGBC 2 after: 00000040 00000080
+CC, RGBC 4 after: 00000040 00000040
+CC, RGBC 6 after: 00000040 00000040
+CC, RGBC 8 after: 00000040 00000040
+CC, RGBC 10 after: 00000040 00000040
+CDP, RGBC 0 after: 00000080 00000080
+CDP, RGBC 2 after: 00000040 00000040
+Done.
+```
+
+[12GA4.txt](/tests/raw/20260927T0000Z-5501a-card-1/cpu4/12GA4.txt):
+
+```
+===== 12 GA4 GTE AFTER 4 | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000400
+
+GTE: an input written n nops after the command (old 00010002, new 00030004; cold, cached):
+CDP, RGBC 4 after: 00000040 00000040
+CDP, RGBC 6 after: 00000040 00000040
+CDP, RGBC 8 after: 00000040 00000040
+CDP, RGBC 12 after: 00000040 00000040
+DCPL, RGBC 0 after: 00000020 00000020
+DCPL, RGBC 1 after: 00000020 00000020
+DCPL, RGBC 2 after: 00000020 00000020
+DCPL, RGBC 4 after: 00000020 00000020
+DCPL, RGBC 6 after: 00000020 00000020
+AVSZ3, SZ3 0 after: 00000202 00000202
+AVSZ3, SZ3 1 after: 00000202 00000202
+AVSZ3, SZ3 2 after: 00000202 00000202
+AVSZ3, SZ3 4 after: 00000202 00000202
+GPF, IR0 0 after: 00000002 00000002
+GPF, IR0 1 after: 00000002 00000002
+GPF, IR0 2 after: 00000002 00000002
+GPF, IR0 4 after: 00000002 00000002
+NCT, VXY2 0 after: 00001004 00001004
+NCT, VXY2 4 after: 00001002 00001004
+NCT, VXY2 8 after: 00001002 00001002
+NCT, VXY2 12 after: 00001002 00001002
+NCT, VXY2 16 after: 00001002 00001002
+NCT, VXY2 20 after: 00001002 00001002
+NCT, VXY2 24 after: 00001002 00001002
+NCT, VXY2 28 after: 00001002 00001002
+NCDT, VXY2 0 after: 00000401 00000401
+NCDT, VXY2 8 after: 00000400 00000400
+NCDT, VXY2 16 after: 00000400 00000400
+NCDT, VXY2 24 after: 00000400 00000400
+NCDT, VXY2 28 after: 00000400 00000400
+NCDT, VXY2 32 after: 00000400 00000400
+NCDT, VXY2 36 after: 00000400 00000400
+NCDT, VXY2 40 after: 00000400 00000400
+NCCT, VXY2 0 after: 00000401 00000401
+NCCT, VXY2 8 after: 00000400 00000400
+NCCT, VXY2 16 after: 00000400 00000400
+NCCT, VXY2 24 after: 00000400 00000400
+NCCT, VXY2 28 after: 00000400 00000400
+NCCT, VXY2 32 after: 00000400 00000400
+NCCT, VXY2 36 after: 00000400 00000400
+Done.
+```
+
+### 27 September 2026 (card-2)
+
+[00RUN.txt](/tests/raw/20260927T0000Z-5501a-card-2/cpu4/00RUN.txt):
+
+```
+===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+12 tests
+A chain program, linked at 80100000
+Saved on the card in slot 2, from image 1
+COP0 at start: BPC 00000000 BDA 00000000 TAR 8001F3D0 DCIC 00000000 BadVaddr 00000480 BDAM 00000000
+BPCM 00000000 SR 40000000 Cause 00000020 EPC 8001FF84 PRId 00000002
+```
+
+[01IOP.txt](/tests/raw/20260927T0000Z-5501a-card-2/cpu4/01IOP.txt):
+
+```
+===== 01 IOP IO LOAD PAIRS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+loads in pairs by device:
+I_STAT lw load, nop: 750
+I_STAT lw load, load, nop: 1145
+I_STAT lw load, 4 nops, load, nop: 1449
+GPUSTAT lw load, nop: 745
+GPUSTAT lw load, load, nop: 1138
+GPUSTAT lw load, 4 nops, load, nop: 1449
+DPCR lw load, nop: 745
+DPCR lw load, load, nop: 1138
+DPCR lw load, 4 nops, load, nop: 1449
+timer 1 lhu load, nop: 750
+timer 1 lhu load, load, nop: 1155
+timer 1 lhu load, 4 nops, load, nop: 1448
+SPUSTAT lhu load, nop: 2246
+SPUSTAT lhu load, load, nop: 4252
+SPUSTAT lhu load, 4 nops, load, nop: 4241
+SPU voice 0 lhu load, nop: 2246
+SPU voice 0 lhu load, load, nop: 4247
+SPU voice 0 lhu load, 4 nops, load, nop: 4241
+CDROM status lbu load, nop: 1242
+CDROM status lbu load, load, nop: 2041
+CDROM status lbu load, 4 nops, load, nop: 2250
+EXP1 lbu load, nop: 1130
+EXP1 lbu load, load, nop: 1825
+EXP1 lbu load, 4 nops, load, nop: 2024
+BIOS lbu load, nop: 1134
+BIOS lbu load, load, nop: 1825
+BIOS lbu load, 4 nops, load, nop: 2018
+RAM lbu load, nop: 944
+RAM lbu load, load, nop: 1446
+RAM lbu load, 4 nops, load, nop: 1642
+I_STAT lw, lw: 1045
+I_STAT lw, 1 nop, lw, nop: 1343
+RAM lw, 9 nops, lw, nop: 2074
+RAM lw, 10 nops, lw, nop: 2184
+RAM lw, 12 nops, lw, nop: 2377
+Done.
+```
+
+[02SAL.txt](/tests/raw/20260927T0000Z-5501a-card-2/cpu4/02SAL.txt):
+
+```
+===== 02 SAL STORE AFTER LOAD | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+a store after a load:
+RAM lw, nop: 958
+RAM sw, nop (no load): 552
+RAM lw, RAM sw: 1265
+RAM lw, 1 nop, RAM sw: 1454
+RAM lw, 2 nops, RAM sw: 1467
+RAM lw, 3 nops, RAM sw: 1470
+RAM lw, 5 nops, RAM sw: 1477
+RAM lw, GP0 sw: 1036
+RAM lw, 1 nop, GP0 sw: 1249
+RAM lw, 3 nops, GP0 sw: 1239
+RAM lw, scratchpad sw: 1044
+RAM lw, 1 nop, scratchpad sw: 1240
+RAM lw, 3 nops, scratchpad sw: 1268
+I_STAT lw, RAM sw: 860
+I_STAT lw, 1 nop, RAM sw: 1064
+BIOS lw, 1 nop, RAM sw: 3228
+BIOS lw, 3 nops, RAM sw: 3220
+Done.
+```
+
+[03BRK.txt](/tests/raw/20260927T0000Z-5501a-card-2/cpu4/03BRK.txt):
+
+```
+===== 03 BRK BRANCH KINDS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+the branch between two loads (4 instructions between each time):
+RAM lw, 4 nops, lw, nop: 1679
+RAM lw, backward beq path, lw: 1774
+RAM lw, forward beq, 3 nops, lw, nop: 1676
+RAM lw, addiu, bne on it (taken), nop, lw, nop: 1675
+RAM lw, addiu, beq $0 (taken), nop, lw, nop: 1671
+BIOS lw, 4 nops, lw, nop: 5618
+BIOS lw, backward beq path, lw: 5618
+BIOS lw, addiu, bne on it (taken), nop, lw, nop: 5648
+Done.
+```
+
+[04UNL.txt](/tests/raw/20260927T0000Z-5501a-card-2/cpu4/04UNL.txt):
+
+```
+===== 04 UNL UNCACHED LOADS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+code from KSEG1, a load then n nops:
+1 nop: 2501
+2 nops: 3103
+4 nops: 4324
+6 nops: 5539
+RAM lw: 2899
+RAM lw, 1 nop: 3516
+RAM lw, 2 nops: 4126
+RAM lw, 4 nops: 5352
+RAM lw, 6 nops: 6598
+BIOS lw: 4708
+BIOS lw, 2 nops: 5922
+BIOS lw, 6 nops: 8356
+I_STAT lw, 2 nops: 3715
+Done.
+```
+
+[05FLN.txt](/tests/raw/20260927T0000Z-5501a-card-2/cpu4/05FLN.txt):
+
+```
+===== 05 FLN FILL LINES | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+i-cache fills, one call (timer overhead included):
+1 line: cold 33, cached 28, cold again 33
+2 lines: cold 42, cached 37, cold again 42
+3 lines: cold 51, cached 28, cold again 51
+4 lines: cold 60, cached 26, cold again 60
+6 lines: cold 82, cached 29, cold again 78
+8 lines: cold 101, cached 37, cold again 96
+16 lines: cold 168, cached 69, cold again 174
+Done.
+```
+
+[06GB1.txt](/tests/raw/20260927T0000Z-5501a-card-2/cpu4/06GB1.txt):
+
+```
+===== 06 GB1 GTE BEFORE 1 | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+GTE: an input written n nops before the command (old 00010002, new 00030004; cold, cached):
+RTPS, VXY0 0 before: 00000004 00000004
+RTPS, VXY0 1 before: 00000004 00000004
+RTPS, VXY0 2 before: 00000004 00000004
+RTPS, VZ0 0 before: 00000004 00000004
+RTPS, VZ0 1 before: 00000004 00000004
+RTPS, VZ0 2 before: 00000004 00000004
+RTPT, VZ0 0 before: 00000004 00000004
+RTPT, VZ0 1 before: 00000004 00000004
+RTPT, VZ0 2 before: 00000004 00000004
+RTPT, VZ1 0 before: 00000004 00000004
+RTPT, VZ1 1 before: 00000004 00000004
+RTPT, VZ1 2 before: 00000004 00000004
+RTPT, VXY2 0 before: 00000004 00000004
+RTPT, VXY2 1 before: 00000004 00000004
+RTPT, VXY2 2 before: 00000004 00000004
+RTPT, VZ2 0 before: 00000004 00000004
+RTPT, VZ2 1 before: 00000004 00000004
+RTPT, VZ2 2 before: 00000004 00000004
+NCLIP, SXY0 0 before: FFFFFF50 FFFFFF50
+NCLIP, SXY0 1 before: FFFFFF50 FFFFFF50
+NCLIP, SXY0 2 before: FFFFFF70 FFFFFF70
+NCLIP, SXY1 0 before: FFFFFFD0 FFFFFFD0
+NCLIP, SXY1 1 before: FFFFFFD0 FFFFFFD0
+NCLIP, SXY1 2 before: FFFFFFD0 FFFFFFD0
+NCLIP, SXY2 0 before: FFFFFFC0 FFFFFFC0
+NCLIP, SXY2 1 before: FFFFFFC0 FFFFFFC0
+NCLIP, SXY2 2 before: FFFFFFC0 FFFFFFC0
+OP, IR1 0 before: FFFFF004 FFFFF004
+OP, IR1 1 before: FFFFF004 FFFFF004
+OP, IR1 2 before: FFFFF004 FFFFF004
+OP, IR2 0 before: 00000FFE 00000FFE
+OP, IR2 1 before: 00000FFC 00000FFC
+OP, IR2 2 before: 00000FFC 00000FFC
+OP, IR3 0 before: 00000FFC 00000FFC
+OP, IR3 1 before: 00000FFC 00000FFC
+OP, IR3 2 before: 00000FFC 00000FFC
+DPCS, RGBC 0 before: 00000020 00000020
+DPCS, RGBC 1 before: 00000040 00000040
+DPCS, RGBC 2 before: 00000040 00000040
+INTPL, IR0 0 before: 00000FFC 00000FFC
+INTPL, IR0 1 before: 00000FFC 00000FFC
+INTPL, IR0 2 before: 00000FFC 00000FFC
+INTPL, IR1 0 before: 00000002 00000002
+INTPL, IR1 1 before: 00000004 00000004
+INTPL, IR1 2 before: 00000004 00000004
+MVMVA, VXY0 0 before: 00000002 00000002
+MVMVA, VXY0 1 before: 00000002 00000002
+Done.
+```
+
+[07GB2.txt](/tests/raw/20260927T0000Z-5501a-card-2/cpu4/07GB2.txt):
+
+```
+===== 07 GB2 GTE BEFORE 2 | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+GTE: an input written n nops before the command (old 00010002, new 00030004; cold, cached):
+MVMVA, VXY0 2 before: 00000004 00000004
+MVMVA, VZ0 0 before: 00000004 00000004
+MVMVA, VZ0 1 before: 00000004 00000004
+MVMVA, VZ0 2 before: 00000004 00000004
+MVMVA IR, IR1 0 before: 00000002 00000002
+MVMVA IR, IR1 1 before: 00000002 00000002
+MVMVA IR, IR1 2 before: 00000004 00000004
+MVMVA IR, IR3 0 before: 00000004 00000004
+MVMVA IR, IR3 1 before: 00000004 00000004
+MVMVA IR, IR3 2 before: 00000004 00000004
+NCDS, VXY0 0 before: 00000400 00000400
+NCDS, VXY0 1 before: 00000400 00000400
+NCDS, VXY0 2 before: 00000401 00000401
+NCDS, RGBC 0 before: 00000040 00000040
+NCDS, RGBC 1 before: 00000040 00000040
+NCDS, RGBC 2 before: 00000040 00000040
+NCS, VXY0 0 before: 00001002 00001002
+NCS, VXY0 1 before: 00001002 00001002
+NCS, VXY0 2 before: 00001004 00001004
+NCS, VZ0 0 before: 00000004 00000004
+NCS, VZ0 1 before: 00000004 00000004
+NCS, VZ0 2 before: 00000004 00000004
+NCCS, VXY0 0 before: 00000400 00000400
+NCCS, VXY0 1 before: 00000400 00000400
+NCCS, VXY0 2 before: 00000401 00000401
+NCCS, RGBC 0 before: 00000040 00000040
+NCCS, RGBC 1 before: 00000040 00000040
+NCCS, RGBC 2 before: 00000040 00000040
+CC, RGBC 0 before: 00000080 00000080
+CC, RGBC 1 before: 00000080 00000080
+CC, RGBC 2 before: 00000080 00000080
+CC, IR1 0 before: 00000400 00000400
+CC, IR1 1 before: 00000401 00000400
+CC, IR1 2 before: 00000401 00000401
+CDP, RGBC 0 before: 00000080 00000080
+CDP, RGBC 1 before: 00000080 00000080
+CDP, RGBC 2 before: 00000080 00000080
+CDP, IR1 0 before: 00000400 00000400
+CDP, IR1 1 before: 00000400 00000400
+CDP, IR1 2 before: 00000401 00000401
+SQR, IR1 0 before: 00000004 00000004
+SQR, IR1 1 before: 00000004 00000004
+SQR, IR1 2 before: 00000010 00000010
+SQR, IR2 0 before: 00000004 00000004
+SQR, IR2 1 before: 00000010 00000010
+SQR, IR2 2 before: 00000010 00000010
+SQR, IR3 0 before: 00000010 00000010
+Done.
+```
+
+[08GB3.txt](/tests/raw/20260927T0000Z-5501a-card-2/cpu4/08GB3.txt):
+
+```
+===== 08 GB3 GTE BEFORE 3 | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+GTE: an input written n nops before the command (old 00010002, new 00030004; cold, cached):
+SQR, IR3 1 before: 00000010 00000010
+SQR, IR3 2 before: 00000010 00000010
+DCPL, RGBC 0 before: 00000020 00000020
+DCPL, RGBC 1 before: 00000040 00000040
+DCPL, RGBC 2 before: 00000040 00000040
+DCPL, IR1 0 before: 00000000 00000000
+DCPL, IR1 1 before: 00000001 00000001
+DCPL, IR1 2 before: 00000001 00000001
+AVSZ3, SZ1 0 before: 00000202 00000202
+AVSZ3, SZ1 1 before: 00000202 00000202
+AVSZ3, SZ1 2 before: 00000204 00000204
+AVSZ3, SZ2 0 before: 00000202 00000202
+AVSZ3, SZ2 1 before: 00000204 00000204
+AVSZ3, SZ2 2 before: 00000204 00000204
+AVSZ3, SZ3 0 before: 00000204 00000204
+AVSZ3, SZ3 1 before: 00000204 00000204
+AVSZ3, SZ3 2 before: 00000204 00000204
+AVSZ4, SZ0 0 before: 00000304 00000304
+AVSZ4, SZ0 1 before: 00000304 00000304
+AVSZ4, SZ0 2 before: 00000304 00000304
+GPF, IR0 0 before: 00000002 00000002
+GPF, IR0 1 before: 00000002 00000002
+GPF, IR0 2 before: 00000004 00000004
+GPF, IR1 0 before: 00000002 00000002
+GPF, IR1 1 before: 00000002 00000002
+GPF, IR1 2 before: 00000004 00000004
+GPF, IR2 0 before: 00000002 00000002
+GPF, IR2 1 before: 00000004 00000004
+GPF, IR2 2 before: 00000004 00000004
+GPF, IR3 0 before: 00000004 00000004
+GPF, IR3 1 before: 00000004 00000004
+GPF, IR3 2 before: 00000004 00000004
+GPL, IR0 0 before: 00000002 00000002
+GPL, IR0 1 before: 00000002 00000002
+GPL, IR0 2 before: 00000004 00000004
+GPL, MAC1 0 before: 00010002 00010002
+GPL, MAC1 1 before: 00010002 00010002
+GPL, MAC1 2 before: 00030004 00030004
+NCT, VXY2 0 before: 00001004 00001004
+NCT, VXY2 1 before: 00001004 00001004
+NCT, VXY2 2 before: 00001004 00001004
+NCDT, VXY2 0 before: 00000401 00000401
+NCDT, VXY2 1 before: 00000401 00000401
+NCDT, VXY2 2 before: 00000401 00000401
+NCCT, VXY2 0 before: 00000401 00000401
+NCCT, VXY2 1 before: 00000401 00000401
+NCCT, VXY2 2 before: 00000401 00000401
+Done.
+```
+
+[10GA2.txt](/tests/raw/20260927T0000Z-5501a-card-2/cpu4/10GA2.txt):
+
+```
+===== 10 GA2 GTE AFTER 2 | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+GTE: an input written n nops after the command (old 00010002, new 00030004; cold, cached):
+RTPT, VZ2 10 after: 00000002 00000002
+RTPT, VZ2 12 after: 00000002 00000002
+RTPT, VZ2 14 after: 00000002 00000002
+RTPT, VZ2 16 after: 00000002 00000002
+RTPT, VZ2 20 after: 00000002 00000002
+NCLIP, SXY2 0 after: FFFFFFC0 FFFFFFC0
+NCLIP, SXY2 1 after: FFFFFFE0 FFFFFFE0
+NCLIP, SXY2 2 after: FFFFFFE0 FFFFFFE0
+NCLIP, SXY2 4 after: FFFFFFE0 FFFFFFE0
+NCLIP, SXY2 6 after: FFFFFFE0 FFFFFFE0
+OP, IR3 0 after: 00000FFE 00000FFE
+OP, IR3 1 after: 00000FFE 00000FFE
+OP, IR3 2 after: 00000FFE 00000FFE
+OP, IR3 4 after: 00000FFE 00000FFE
+DPCS, RGBC 0 after: 00000020 00000020
+DPCS, RGBC 1 after: 00000020 00000020
+DPCS, RGBC 2 after: 00000020 00000020
+DPCS, RGBC 4 after: 00000020 00000020
+DPCS, RGBC 6 after: 00000020 00000020
+INTPL, IR1 0 after: 00000002 00000002
+INTPL, IR1 1 after: 00000002 00000002
+INTPL, IR1 2 after: 00000002 00000002
+INTPL, IR1 4 after: 00000002 00000002
+INTPL, IR1 6 after: 00000002 00000002
+MVMVA, VZ0 0 after: 00000002 00000004
+MVMVA, VZ0 1 after: 00000002 00000004
+MVMVA, VZ0 2 after: 00000002 00000002
+MVMVA, VZ0 4 after: 00000002 00000002
+MVMVA, VZ0 6 after: 00000002 00000002
+SQR, IR3 0 after: 00000004 00000004
+SQR, IR3 1 after: 00000004 00000004
+SQR, IR3 2 after: 00000004 00000004
+SQR, IR3 4 after: 00000004 00000004
+NCDS, VXY0 0 after: 00000400 00000400
+NCDS, VXY0 2 after: 00000400 00000400
+NCDS, VXY0 4 after: 00000400 00000400
+NCDS, VXY0 6 after: 00000400 00000400
+NCDS, VXY0 8 after: 00000400 00000400
+NCDS, VXY0 12 after: 00000400 00000400
+NCDS, VXY0 16 after: 00000400 00000400
+NCDS, RGBC 0 after: 00000040 00000040
+Done.
+```
+
+Output files that match an earlier run: [09GA1.txt](/tests/raw/20260927T0000Z-5501a-card-2/cpu4/09GA1.txt) (as run 20260926T0000Z-5501a-card-cpu4) · [11GA3.txt](/tests/raw/20260927T0000Z-5501a-card-2/cpu4/11GA3.txt) (as run 20260926T0000Z-5501a-card-cpu4) · [12GA4.txt](/tests/raw/20260927T0000Z-5501a-card-2/cpu4/12GA4.txt) (as run 20260926T0000Z-5501a-card-cpu4).
+
+### 27 September 2026 (card-d)
+
+[00RUN.txt](/tests/raw/20260927T0000Z-5501a-card-d/cpu4/00RUN.txt):
+
+```
+===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+12 tests
+A chain program, linked at 80100000
+Saved on the card in slot 2, from image 1
+COP0 at start: BPC 00000000 BDA 00000000 TAR 8001F3D0 DCIC 00000000 BadVaddr 00000400 BDAM 00000000
+BPCM 00000000 SR 40000000 Cause 00000020 EPC 8001FF84 PRId 00000002
+```
+
+[01IOP.txt](/tests/raw/20260927T0000Z-5501a-card-d/cpu4/01IOP.txt):
+
+```
+===== 01 IOP IO LOAD PAIRS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000400
+
+loads in pairs by device:
+I_STAT lw load, nop: 752
+I_STAT lw load, load, nop: 1145
+I_STAT lw load, 4 nops, load, nop: 1449
+GPUSTAT lw load, nop: 748
+GPUSTAT lw load, load, nop: 1142
+GPUSTAT lw load, 4 nops, load, nop: 1449
+DPCR lw load, nop: 749
+DPCR lw load, load, nop: 1138
+DPCR lw load, 4 nops, load, nop: 1449
+timer 1 lhu load, nop: 755
+timer 1 lhu load, load, nop: 1152
+timer 1 lhu load, 4 nops, load, nop: 1448
+SPUSTAT lhu load, nop: 2251
+SPUSTAT lhu load, load, nop: 4247
+SPUSTAT lhu load, 4 nops, load, nop: 4241
+SPU voice 0 lhu load, nop: 2249
+SPU voice 0 lhu load, load, nop: 4247
+SPU voice 0 lhu load, 4 nops, load, nop: 4244
+CDROM status lbu load, nop: 1242
+CDROM status lbu load, load, nop: 2045
+CDROM status lbu load, 4 nops, load, nop: 2250
+EXP1 lbu load, nop: 1130
+EXP1 lbu load, load, nop: 1825
+EXP1 lbu load, 4 nops, load, nop: 2018
+BIOS lbu load, nop: 1130
+BIOS lbu load, load, nop: 1825
+BIOS lbu load, 4 nops, load, nop: 2024
+RAM lbu load, nop: 944
+RAM lbu load, load, nop: 1446
+RAM lbu load, 4 nops, load, nop: 1642
+I_STAT lw, lw: 1045
+I_STAT lw, 1 nop, lw, nop: 1343
+RAM lw, 9 nops, lw, nop: 2074
+RAM lw, 10 nops, lw, nop: 2184
+RAM lw, 12 nops, lw, nop: 2377
+Done.
+```
+
+[02SAL.txt](/tests/raw/20260927T0000Z-5501a-card-d/cpu4/02SAL.txt):
+
+```
+===== 02 SAL STORE AFTER LOAD | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000400
+
+a store after a load:
+RAM lw, nop: 958
+RAM sw, nop (no load): 552
+RAM lw, RAM sw: 1265
+RAM lw, 1 nop, RAM sw: 1454
+RAM lw, 2 nops, RAM sw: 1467
+RAM lw, 3 nops, RAM sw: 1470
+RAM lw, 5 nops, RAM sw: 1477
+RAM lw, GP0 sw: 1036
+RAM lw, 1 nop, GP0 sw: 1249
+RAM lw, 3 nops, GP0 sw: 1239
+RAM lw, scratchpad sw: 1044
+RAM lw, 1 nop, scratchpad sw: 1240
+RAM lw, 3 nops, scratchpad sw: 1261
+I_STAT lw, RAM sw: 860
+I_STAT lw, 1 nop, RAM sw: 1064
+BIOS lw, 1 nop, RAM sw: 3228
+BIOS lw, 3 nops, RAM sw: 3220
+Done.
+```
+
+[03BRK.txt](/tests/raw/20260927T0000Z-5501a-card-d/cpu4/03BRK.txt):
+
+```
+===== 03 BRK BRANCH KINDS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000400
+
+the branch between two loads (4 instructions between each time):
+RAM lw, 4 nops, lw, nop: 1678
+RAM lw, backward beq path, lw: 1771
+RAM lw, forward beq, 3 nops, lw, nop: 1677
+RAM lw, addiu, bne on it (taken), nop, lw, nop: 1675
+RAM lw, addiu, beq $0 (taken), nop, lw, nop: 1671
+BIOS lw, 4 nops, lw, nop: 5618
+BIOS lw, backward beq path, lw: 5618
+BIOS lw, addiu, bne on it (taken), nop, lw, nop: 5648
+Done.
+```
+
+[04UNL.txt](/tests/raw/20260927T0000Z-5501a-card-d/cpu4/04UNL.txt):
+
+```
+===== 04 UNL UNCACHED LOADS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000400
+
+code from KSEG1, a load then n nops:
+1 nop: 2501
+2 nops: 3103
+4 nops: 4323
+6 nops: 5543
+RAM lw: 2902
+RAM lw, 1 nop: 3520
+RAM lw, 2 nops: 4133
+RAM lw, 4 nops: 5353
+RAM lw, 6 nops: 6602
+BIOS lw: 4708
+BIOS lw, 2 nops: 5923
+BIOS lw, 6 nops: 8358
+I_STAT lw, 2 nops: 3711
+Done.
+```
+
+[05FLN.txt](/tests/raw/20260927T0000Z-5501a-card-d/cpu4/05FLN.txt):
+
+```
+===== 05 FLN FILL LINES | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000400
+
+i-cache fills, one call (timer overhead included):
+1 line: cold 33, cached 28, cold again 33
+2 lines: cold 42, cached 37, cold again 42
+3 lines: cold 51, cached 28, cold again 51
+4 lines: cold 60, cached 26, cold again 60
+6 lines: cold 82, cached 29, cold again 78
+8 lines: cold 96, cached 37, cold again 96
+16 lines: cold 172, cached 69, cold again 168
+Done.
+```
+
+[06GB1.txt](/tests/raw/20260927T0000Z-5501a-card-d/cpu4/06GB1.txt):
+
+```
+===== 06 GB1 GTE BEFORE 1 | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000400
+
+GTE: an input written n nops before the command (old 00010002, new 00030004; cold, cached):
+RTPS, VXY0 0 before: 00000004 00000004
+RTPS, VXY0 1 before: 00000004 00000004
+RTPS, VXY0 2 before: 00000004 00000004
+RTPS, VZ0 0 before: 00000004 00000004
+RTPS, VZ0 1 before: 00000004 00000004
+RTPS, VZ0 2 before: 00000004 00000004
+RTPT, VZ0 0 before: 00000004 00000004
+RTPT, VZ0 1 before: 00000004 00000004
+RTPT, VZ0 2 before: 00000004 00000004
+RTPT, VZ1 0 before: 00000004 00000004
+RTPT, VZ1 1 before: 00000004 00000004
+RTPT, VZ1 2 before: 00000004 00000004
+RTPT, VXY2 0 before: 00000004 00000004
+RTPT, VXY2 1 before: 00000004 00000004
+RTPT, VXY2 2 before: 00000004 00000004
+RTPT, VZ2 0 before: 00000004 00000004
+RTPT, VZ2 1 before: 00000004 00000004
+RTPT, VZ2 2 before: 00000004 00000004
+NCLIP, SXY0 0 before: FFFFFF50 FFFFFF50
+NCLIP, SXY0 1 before: FFFFFF70 FFFFFF70
+NCLIP, SXY0 2 before: FFFFFF70 FFFFFF70
+NCLIP, SXY1 0 before: FFFFFFD0 FFFFFFD0
+NCLIP, SXY1 1 before: FFFFFFD0 FFFFFFD0
+NCLIP, SXY1 2 before: FFFFFFD0 FFFFFFD0
+NCLIP, SXY2 0 before: FFFFFFC0 FFFFFFC0
+NCLIP, SXY2 1 before: FFFFFFC0 FFFFFFC0
+NCLIP, SXY2 2 before: FFFFFFC0 FFFFFFC0
+OP, IR1 0 before: FFFFF004 FFFFF004
+OP, IR1 1 before: FFFFF004 FFFFF004
+OP, IR1 2 before: FFFFF004 FFFFF004
+OP, IR2 0 before: 00000FFE 00000FFE
+OP, IR2 1 before: 00000FFC 00000FFC
+OP, IR2 2 before: 00000FFC 00000FFC
+OP, IR3 0 before: 00000FFC 00000FFC
+OP, IR3 1 before: 00000FFC 00000FFC
+OP, IR3 2 before: 00000FFC 00000FFC
+DPCS, RGBC 0 before: 00000020 00000020
+DPCS, RGBC 1 before: 00000040 00000040
+DPCS, RGBC 2 before: 00000040 00000040
+INTPL, IR0 0 before: 00000FFC 00000FFC
+INTPL, IR0 1 before: 00000FFC 00000FFC
+INTPL, IR0 2 before: 00000FFC 00000FFC
+INTPL, IR1 0 before: 00000002 00000002
+INTPL, IR1 1 before: 00000004 00000004
+INTPL, IR1 2 before: 00000004 00000004
+MVMVA, VXY0 0 before: 00000002 00000002
+MVMVA, VXY0 1 before: 00000002 00000002
+Done.
+```
+
+[10GA2.txt](/tests/raw/20260927T0000Z-5501a-card-d/cpu4/10GA2.txt):
+
+```
+===== 10 GA2 GTE AFTER 2 | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000400
+
+GTE: an input written n nops after the command (old 00010002, new 00030004; cold, cached):
+RTPT, VZ2 10 after: 00000002 00000002
+RTPT, VZ2 12 after: 00000002 00000002
+RTPT, VZ2 14 after: 00000002 00000002
+RTPT, VZ2 16 after: 00000002 00000002
+RTPT, VZ2 20 after: 00000002 00000002
+NCLIP, SXY2 0 after: FFFFFFE0 FFFFFFE0
+NCLIP, SXY2 1 after: FFFFFFE0 FFFFFFE0
+NCLIP, SXY2 2 after: FFFFFFE0 FFFFFFE0
+NCLIP, SXY2 4 after: FFFFFFE0 FFFFFFE0
+NCLIP, SXY2 6 after: FFFFFFE0 FFFFFFE0
+OP, IR3 0 after: 00000FFE 00000FFE
+OP, IR3 1 after: 00000FFE 00000FFE
+OP, IR3 2 after: 00000FFE 00000FFE
+OP, IR3 4 after: 00000FFE 00000FFE
+DPCS, RGBC 0 after: 00000020 00000020
+DPCS, RGBC 1 after: 00000020 00000020
+DPCS, RGBC 2 after: 00000020 00000020
+DPCS, RGBC 4 after: 00000020 00000020
+DPCS, RGBC 6 after: 00000020 00000020
+INTPL, IR1 0 after: 00000002 00000002
+INTPL, IR1 1 after: 00000002 00000002
+INTPL, IR1 2 after: 00000002 00000002
+INTPL, IR1 4 after: 00000002 00000002
+INTPL, IR1 6 after: 00000002 00000002
+MVMVA, VZ0 0 after: 00000002 00000004
+MVMVA, VZ0 1 after: 00000002 00000004
+MVMVA, VZ0 2 after: 00000002 00000002
+MVMVA, VZ0 4 after: 00000002 00000002
+MVMVA, VZ0 6 after: 00000002 00000002
+SQR, IR3 0 after: 00000004 00000004
+SQR, IR3 1 after: 00000004 00000004
+SQR, IR3 2 after: 00000004 00000004
+SQR, IR3 4 after: 00000004 00000004
+NCDS, VXY0 0 after: 00000400 00000400
+NCDS, VXY0 2 after: 00000400 00000400
+NCDS, VXY0 4 after: 00000400 00000400
+NCDS, VXY0 6 after: 00000400 00000400
+NCDS, VXY0 8 after: 00000400 00000400
+NCDS, VXY0 12 after: 00000400 00000400
+NCDS, VXY0 16 after: 00000400 00000400
+NCDS, RGBC 0 after: 00000040 00000040
+Done.
+```
+
+Output files that match an earlier run: [07GB2.txt](/tests/raw/20260927T0000Z-5501a-card-d/cpu4/07GB2.txt) (as run 20260927T0000Z-5501a-card-1) · [08GB3.txt](/tests/raw/20260927T0000Z-5501a-card-d/cpu4/08GB3.txt) (as run 20260927T0000Z-5501a-card-1) · [09GA1.txt](/tests/raw/20260927T0000Z-5501a-card-d/cpu4/09GA1.txt) (as run 20260927T0000Z-5501a-card-1) · [11GA3.txt](/tests/raw/20260927T0000Z-5501a-card-d/cpu4/11GA3.txt) (as run 20260927T0000Z-5501a-card-1) · [12GA4.txt](/tests/raw/20260927T0000Z-5501a-card-d/cpu4/12GA4.txt) (as run 20260927T0000Z-5501a-card-1).
+
+### 27 September 2026 (card-g2)
+
+[00RUN.txt](/tests/raw/20260927T0000Z-5501a-card-g2/cpu4/00RUN.txt):
+
+```
+===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+12 tests
+A chain program, linked at 80100000
+Saved on the card in slot 2, from image 1
+COP0 at start: BPC 00000000 BDA 00000000 TAR 8001F418 DCIC 00000000 BadVaddr 00000400 BDAM 00000000
+BPCM 00000000 SR 40000000 Cause 00000020 EPC 8001FF84 PRId 00000002
+```
+
+[01IOP.txt](/tests/raw/20260927T0000Z-5501a-card-g2/cpu4/01IOP.txt):
+
+```
+===== 01 IOP IO LOAD PAIRS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000400
+
+loads in pairs by device:
+I_STAT lw load, nop: 750
+I_STAT lw load, load, nop: 1148
+I_STAT lw load, 4 nops, load, nop: 1449
+GPUSTAT lw load, nop: 745
+GPUSTAT lw load, load, nop: 1138
+GPUSTAT lw load, 4 nops, load, nop: 1449
+DPCR lw load, nop: 745
+DPCR lw load, load, nop: 1138
+DPCR lw load, 4 nops, load, nop: 1449
+timer 1 lhu load, nop: 750
+timer 1 lhu load, load, nop: 1155
+timer 1 lhu load, 4 nops, load, nop: 1448
+SPUSTAT lhu load, nop: 2246
+SPUSTAT lhu load, load, nop: 4252
+SPUSTAT lhu load, 4 nops, load, nop: 4241
+SPU voice 0 lhu load, nop: 2246
+SPU voice 0 lhu load, load, nop: 4247
+SPU voice 0 lhu load, 4 nops, load, nop: 4241
+CDROM status lbu load, nop: 1242
+CDROM status lbu load, load, nop: 2041
+CDROM status lbu load, 4 nops, load, nop: 2250
+EXP1 lbu load, nop: 1130
+EXP1 lbu load, load, nop: 1825
+EXP1 lbu load, 4 nops, load, nop: 2018
+BIOS lbu load, nop: 1130
+BIOS lbu load, load, nop: 1825
+BIOS lbu load, 4 nops, load, nop: 2024
+RAM lbu load, nop: 944
+RAM lbu load, load, nop: 1446
+RAM lbu load, 4 nops, load, nop: 1642
+I_STAT lw, lw: 1045
+I_STAT lw, 1 nop, lw, nop: 1343
+RAM lw, 9 nops, lw, nop: 2074
+RAM lw, 10 nops, lw, nop: 2184
+RAM lw, 12 nops, lw, nop: 2377
+Done.
+```
+
+[03BRK.txt](/tests/raw/20260927T0000Z-5501a-card-g2/cpu4/03BRK.txt):
+
+```
+===== 03 BRK BRANCH KINDS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000400
+
+the branch between two loads (4 instructions between each time):
+RAM lw, 4 nops, lw, nop: 1679
+RAM lw, backward beq path, lw: 1774
+RAM lw, forward beq, 3 nops, lw, nop: 1676
+RAM lw, addiu, bne on it (taken), nop, lw, nop: 1675
+RAM lw, addiu, beq $0 (taken), nop, lw, nop: 1671
+BIOS lw, 4 nops, lw, nop: 5618
+BIOS lw, backward beq path, lw: 5618
+BIOS lw, addiu, bne on it (taken), nop, lw, nop: 5648
+Done.
+```
+
+[04UNL.txt](/tests/raw/20260927T0000Z-5501a-card-g2/cpu4/04UNL.txt):
+
+```
+===== 04 UNL UNCACHED LOADS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000400
+
+code from KSEG1, a load then n nops:
+1 nop: 2501
+2 nops: 3103
+4 nops: 4324
+6 nops: 5539
+RAM lw: 2899
+RAM lw, 1 nop: 3516
+RAM lw, 2 nops: 4126
+RAM lw, 4 nops: 5352
+RAM lw, 6 nops: 6598
+BIOS lw: 4708
+BIOS lw, 2 nops: 5922
+BIOS lw, 6 nops: 8356
+I_STAT lw, 2 nops: 3715
+Done.
+```
+
+[05FLN.txt](/tests/raw/20260927T0000Z-5501a-card-g2/cpu4/05FLN.txt):
+
+```
+===== 05 FLN FILL LINES | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000400
+
+i-cache fills, one call (timer overhead included):
+1 line: cold 33, cached 28, cold again 33
+2 lines: cold 42, cached 37, cold again 42
+3 lines: cold 51, cached 28, cold again 51
+4 lines: cold 60, cached 26, cold again 60
+6 lines: cold 82, cached 29, cold again 78
+8 lines: cold 101, cached 37, cold again 96
+16 lines: cold 168, cached 69, cold again 173
+Done.
+```
+
+Output files that match an earlier run: [02SAL.txt](/tests/raw/20260927T0000Z-5501a-card-g2/cpu4/02SAL.txt) (as run 20260927T0000Z-5501a-card-d) · [06GB1.txt](/tests/raw/20260927T0000Z-5501a-card-g2/cpu4/06GB1.txt) (as run 20260927T0000Z-5501a-card-1) · [07GB2.txt](/tests/raw/20260927T0000Z-5501a-card-g2/cpu4/07GB2.txt) (as run 20260927T0000Z-5501a-card-1) · [08GB3.txt](/tests/raw/20260927T0000Z-5501a-card-g2/cpu4/08GB3.txt) (as run 20260927T0000Z-5501a-card-1) · [09GA1.txt](/tests/raw/20260927T0000Z-5501a-card-g2/cpu4/09GA1.txt) (as run 20260927T0000Z-5501a-card-1) · [10GA2.txt](/tests/raw/20260927T0000Z-5501a-card-g2/cpu4/10GA2.txt) (as run 20260927T0000Z-5501a-card-1) · [11GA3.txt](/tests/raw/20260927T0000Z-5501a-card-g2/cpu4/11GA3.txt) (as run 20260927T0000Z-5501a-card-1) · [12GA4.txt](/tests/raw/20260927T0000Z-5501a-card-g2/cpu4/12GA4.txt) (as run 20260927T0000Z-5501a-card-1).
+
+### 27 September 2026 (card-g3)
+
+[00RUN.txt](/tests/raw/20260927T0000Z-5501a-card-g3/cpu4/00RUN.txt):
+
+```
+===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+12 tests
+A chain program, linked at 80100000
+Saved on the card in slot 2, from image 1
+COP0 at start: BPC 00000000 BDA 00000000 TAR 8001F418 DCIC 00000000 BadVaddr 00000480 BDAM 00000000
+BPCM 00000000 SR 40000000 Cause 00000020 EPC 8001FF84 PRId 00000002
+```
+
+[01IOP.txt](/tests/raw/20260927T0000Z-5501a-card-g3/cpu4/01IOP.txt):
+
+```
+===== 01 IOP IO LOAD PAIRS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+loads in pairs by device:
+I_STAT lw load, nop: 752
+I_STAT lw load, load, nop: 1145
+I_STAT lw load, 4 nops, load, nop: 1449
+GPUSTAT lw load, nop: 748
+GPUSTAT lw load, load, nop: 1142
+GPUSTAT lw load, 4 nops, load, nop: 1449
+DPCR lw load, nop: 749
+DPCR lw load, load, nop: 1138
+DPCR lw load, 4 nops, load, nop: 1449
+timer 1 lhu load, nop: 755
+timer 1 lhu load, load, nop: 1152
+timer 1 lhu load, 4 nops, load, nop: 1448
+SPUSTAT lhu load, nop: 2251
+SPUSTAT lhu load, load, nop: 4247
+SPUSTAT lhu load, 4 nops, load, nop: 4241
+SPU voice 0 lhu load, nop: 2249
+SPU voice 0 lhu load, load, nop: 4247
+SPU voice 0 lhu load, 4 nops, load, nop: 4244
+CDROM status lbu load, nop: 1242
+CDROM status lbu load, load, nop: 2045
+CDROM status lbu load, 4 nops, load, nop: 2250
+EXP1 lbu load, nop: 1130
+EXP1 lbu load, load, nop: 1825
+EXP1 lbu load, 4 nops, load, nop: 2018
+BIOS lbu load, nop: 1130
+BIOS lbu load, load, nop: 1825
+BIOS lbu load, 4 nops, load, nop: 2024
+RAM lbu load, nop: 944
+RAM lbu load, load, nop: 1446
+RAM lbu load, 4 nops, load, nop: 1642
+I_STAT lw, lw: 1045
+I_STAT lw, 1 nop, lw, nop: 1343
+RAM lw, 9 nops, lw, nop: 2074
+RAM lw, 10 nops, lw, nop: 2184
+RAM lw, 12 nops, lw, nop: 2377
+Done.
+```
+
+[02SAL.txt](/tests/raw/20260927T0000Z-5501a-card-g3/cpu4/02SAL.txt):
+
+```
+===== 02 SAL STORE AFTER LOAD | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+a store after a load:
+RAM lw, nop: 956
+RAM sw, nop (no load): 550
+RAM lw, RAM sw: 1265
+RAM lw, 1 nop, RAM sw: 1462
+RAM lw, 2 nops, RAM sw: 1467
+RAM lw, 3 nops, RAM sw: 1479
+RAM lw, 5 nops, RAM sw: 1484
+RAM lw, GP0 sw: 1044
+RAM lw, 1 nop, GP0 sw: 1238
+RAM lw, 3 nops, GP0 sw: 1235
+RAM lw, scratchpad sw: 1044
+RAM lw, 1 nop, scratchpad sw: 1240
+RAM lw, 3 nops, scratchpad sw: 1272
+I_STAT lw, RAM sw: 863
+I_STAT lw, 1 nop, RAM sw: 1063
+BIOS lw, 1 nop, RAM sw: 3228
+BIOS lw, 3 nops, RAM sw: 3220
+Done.
+```
+
+[03BRK.txt](/tests/raw/20260927T0000Z-5501a-card-g3/cpu4/03BRK.txt):
+
+```
+===== 03 BRK BRANCH KINDS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+the branch between two loads (4 instructions between each time):
+RAM lw, 4 nops, lw, nop: 1684
+RAM lw, backward beq path, lw: 1772
+RAM lw, forward beq, 3 nops, lw, nop: 1683
+RAM lw, addiu, bne on it (taken), nop, lw, nop: 1682
+RAM lw, addiu, beq $0 (taken), nop, lw, nop: 1677
+BIOS lw, 4 nops, lw, nop: 5618
+BIOS lw, backward beq path, lw: 5618
+BIOS lw, addiu, bne on it (taken), nop, lw, nop: 5648
+Done.
+```
+
+[04UNL.txt](/tests/raw/20260927T0000Z-5501a-card-g3/cpu4/04UNL.txt):
+
+```
+===== 04 UNL UNCACHED LOADS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+code from KSEG1, a load then n nops:
+1 nop: 2500
+2 nops: 3103
+4 nops: 4319
+6 nops: 5543
+RAM lw: 2899
+RAM lw, 1 nop: 3519
+RAM lw, 2 nops: 4126
+RAM lw, 4 nops: 5355
+RAM lw, 6 nops: 6596
+BIOS lw: 4708
+BIOS lw, 2 nops: 5922
+BIOS lw, 6 nops: 8356
+I_STAT lw, 2 nops: 3715
+Done.
+```
+
+[05FLN.txt](/tests/raw/20260927T0000Z-5501a-card-g3/cpu4/05FLN.txt):
+
+```
+===== 05 FLN FILL LINES | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+i-cache fills, one call (timer overhead included):
+1 line: cold 33, cached 28, cold again 33
+2 lines: cold 42, cached 37, cold again 42
+3 lines: cold 51, cached 28, cold again 51
+4 lines: cold 60, cached 26, cold again 60
+6 lines: cold 82, cached 29, cold again 78
+8 lines: cold 101, cached 37, cold again 96
+16 lines: cold 168, cached 69, cold again 173
+Done.
+```
+
+Output files that match an earlier run: [06GB1.txt](/tests/raw/20260927T0000Z-5501a-card-g3/cpu4/06GB1.txt) (as run 20260927T0000Z-5501a-card-2) · [07GB2.txt](/tests/raw/20260927T0000Z-5501a-card-g3/cpu4/07GB2.txt) (as run 20260927T0000Z-5501a-card-2) · [08GB3.txt](/tests/raw/20260927T0000Z-5501a-card-g3/cpu4/08GB3.txt) (as run 20260927T0000Z-5501a-card-2) · [09GA1.txt](/tests/raw/20260927T0000Z-5501a-card-g3/cpu4/09GA1.txt) (as run 20260926T0000Z-5501a-card-cpu4) · [10GA2.txt](/tests/raw/20260927T0000Z-5501a-card-g3/cpu4/10GA2.txt) (as run 20260927T0000Z-5501a-card-2) · [11GA3.txt](/tests/raw/20260927T0000Z-5501a-card-g3/cpu4/11GA3.txt) (as run 20260926T0000Z-5501a-card-cpu4) · [12GA4.txt](/tests/raw/20260927T0000Z-5501a-card-g3/cpu4/12GA4.txt) (as run 20260926T0000Z-5501a-card-cpu4).
+
+### 28 September 2026 (card-h)
+
+[00RUN.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu4/00RUN.txt):
+
+```
+===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+12 tests
+A chain program, linked at 80100000
+Saved on the card in slot 2, from image 1
+COP0 at start: BPC 00000000 BDA 00000000 TAR BFC02BAC DCIC 00000000 BadVaddr 00000480 BDAM 00000000
+BPCM 00000000 SR 40000000 Cause 00000020 EPC 8001FF84 PRId 00000002
+```
+
+[01IOP.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu4/01IOP.txt):
+
+```
+===== 01 IOP IO LOAD PAIRS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+loads in pairs by device:
+I_STAT lw load, nop: 750
+I_STAT lw load, load, nop: 1148
+I_STAT lw load, 4 nops, load, nop: 1449
+GPUSTAT lw load, nop: 745
+GPUSTAT lw load, load, nop: 1138
+GPUSTAT lw load, 4 nops, load, nop: 1449
+DPCR lw load, nop: 745
+DPCR lw load, load, nop: 1138
+DPCR lw load, 4 nops, load, nop: 1449
+timer 1 lhu load, nop: 750
+timer 1 lhu load, load, nop: 1152
+timer 1 lhu load, 4 nops, load, nop: 1448
+SPUSTAT lhu load, nop: 2246
+SPUSTAT lhu load, load, nop: 4252
+SPUSTAT lhu load, 4 nops, load, nop: 4241
+SPU voice 0 lhu load, nop: 2246
+SPU voice 0 lhu load, load, nop: 4247
+SPU voice 0 lhu load, 4 nops, load, nop: 4241
+CDROM status lbu load, nop: 1242
+CDROM status lbu load, load, nop: 2041
+CDROM status lbu load, 4 nops, load, nop: 2250
+EXP1 lbu load, nop: 1130
+EXP1 lbu load, load, nop: 1825
+EXP1 lbu load, 4 nops, load, nop: 2018
+BIOS lbu load, nop: 1130
+BIOS lbu load, load, nop: 1825
+BIOS lbu load, 4 nops, load, nop: 2024
+RAM lbu load, nop: 944
+RAM lbu load, load, nop: 1446
+RAM lbu load, 4 nops, load, nop: 1642
+I_STAT lw, lw: 1045
+I_STAT lw, 1 nop, lw, nop: 1343
+RAM lw, 9 nops, lw, nop: 2074
+RAM lw, 10 nops, lw, nop: 2184
+RAM lw, 12 nops, lw, nop: 2377
+Done.
+```
+
+[02SAL.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu4/02SAL.txt):
+
+```
+===== 02 SAL STORE AFTER LOAD | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+a store after a load:
+RAM lw, nop: 958
+RAM sw, nop (no load): 549
+RAM lw, RAM sw: 1265
+RAM lw, 1 nop, RAM sw: 1462
+RAM lw, 2 nops, RAM sw: 1467
+RAM lw, 3 nops, RAM sw: 1479
+RAM lw, 5 nops, RAM sw: 1484
+RAM lw, GP0 sw: 1044
+RAM lw, 1 nop, GP0 sw: 1238
+RAM lw, 3 nops, GP0 sw: 1235
+RAM lw, scratchpad sw: 1044
+RAM lw, 1 nop, scratchpad sw: 1240
+RAM lw, 3 nops, scratchpad sw: 1272
+I_STAT lw, RAM sw: 863
+I_STAT lw, 1 nop, RAM sw: 1063
+BIOS lw, 1 nop, RAM sw: 3228
+BIOS lw, 3 nops, RAM sw: 3220
+Done.
+```
+
+[03BRK.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu4/03BRK.txt):
+
+```
+===== 03 BRK BRANCH KINDS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+the branch between two loads (4 instructions between each time):
+RAM lw, 4 nops, lw, nop: 1678
+RAM lw, backward beq path, lw: 1771
+RAM lw, forward beq, 3 nops, lw, nop: 1677
+RAM lw, addiu, bne on it (taken), nop, lw, nop: 1675
+RAM lw, addiu, beq $0 (taken), nop, lw, nop: 1671
+BIOS lw, 4 nops, lw, nop: 5618
+BIOS lw, backward beq path, lw: 5618
+BIOS lw, addiu, bne on it (taken), nop, lw, nop: 5648
+Done.
+```
+
+Output files that match an earlier run: [04UNL.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu4/04UNL.txt) (as run 20260927T0000Z-5501a-card-g3) · [05FLN.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu4/05FLN.txt) (as run 20260927T0000Z-5501a-card-g3) · [06GB1.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu4/06GB1.txt) (as run 20260927T0000Z-5501a-card-2) · [07GB2.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu4/07GB2.txt) (as run 20260927T0000Z-5501a-card-2) · [08GB3.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu4/08GB3.txt) (as run 20260927T0000Z-5501a-card-2) · [09GA1.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu4/09GA1.txt) (as run 20260926T0000Z-5501a-card-cpu4) · [10GA2.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu4/10GA2.txt) (as run 20260927T0000Z-5501a-card-2) · [11GA3.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu4/11GA3.txt) (as run 20260926T0000Z-5501a-card-cpu4) · [12GA4.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu4/12GA4.txt) (as run 20260926T0000Z-5501a-card-cpu4).
+
+## References
+
+[^runh]: Hardware test run 20260928T0000Z-5501a-card-h on the SCPH-5501: [00RUN.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu4/00RUN.txt) · [01IOP.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu4/01IOP.txt) · [02SAL.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu4/02SAL.txt) · [03BRK.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu4/03BRK.txt) · [04UNL.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu4/04UNL.txt) · [05FLN.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu4/05FLN.txt) · [06GB1.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu4/06GB1.txt) · [07GB2.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu4/07GB2.txt) · [08GB3.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu4/08GB3.txt) · [09GA1.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu4/09GA1.txt) · [10GA2.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu4/10GA2.txt) · [11GA3.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu4/11GA3.txt) · [12GA4.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu4/12GA4.txt).