psx.wiki

GTE Timing during CPU Stalls: 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 Timing during CPU Stalls
+type: test
+summary: Measures whether a GTE command keeps running while the CPU stalls, and the cost of loads and stores from KSEG1 code by device.
+category: Hardware tests
+info: Machine = SCPH-5501
+info: Program = cpu_next8
+---
+
+## Overview
+
+The program follows on from [Load Landing and Device Loads](/tests/load-landing/). Its first group asks whether the [GTE](/hardware/gte/) counts the cycles in which the CPU is stalled. Each row writes an input's old value and lets it settle, issues a command, waits, writes the new value and reads the result.[^runh]
+
+The wait is a number of NOPs, a divide followed by MFLO, which holds the CPU for about 36 cycles, or a BIOS ROM load and a use of its value. Each row runs from cached code and again from KSEG1, where every instruction fetch stalls the CPU for about 5 cycles.[^runh]
+
+The other groups time the instruction that runs as a RAM load completes and loads and stores from code in KSEG1. Their rows are root counter 2 counts in system clock cycles for 100 turns of a loop body.[^runh]
+
+## Results
+
+### The GTE Runs while the CPU Stalls
+
+A GTE command keeps running while the CPU waits. A write that reaches the command from cached code arrives too late when the same instructions run from KSEG1, because the fetches there take more cycles. A divide or a slow load between the command and the write has the same effect.[^runh]
+
+Table: Writes after a GTE command (result read after the command)
+
+| Command and input | Gap | Cached code | KSEG1 code |
+| --- | --- | --- | --- |
+| RTPS, OFX | 0 to 4 NOPs | new | old |
+| RTPS, OFX | 6 NOPs | old | old |
+| RTPS, OFX | a divide | old | old |
+| RTPS, DQB | 4 or 6 NOPs | new | old |
+| RTPS, DQB | a divide | old | old |
+| NCS, VZ0 | 0 or 1 NOP | new | old |
+| NCS, RBK | 0 or 2 NOPs | new | old |
+| RTPT, OFX | 4 or 8 NOPs | new | old |
+| RTPT, OFX | a divide | old | old |
+
+The same holds for inputs written before a command. A write of TRZ one NOP before RTPS reached the command only from KSEG1, and a divide before RTPS let it reach the command from cached code as well. SQR with IR1 written one NOP before used the new IR1 only from KSEG1.[^runh]
+
+### The Instruction When a Load Completes
+
+The table gives each instruction placed after a RAM load and five, six or seven NOPs:[^runh]
+
+Table: RAM lw and n NOPs followed by the named instruction (cycles for 100 turns)
+
+| Instruction | 5 NOPs | 6 NOPs | 7 NOPs |
+| --- | --- | --- | --- |
+| addu | 1362 | 1448 | 1562 |
+| RAM lw | 1680 | 1764 | 1887 |
+| scratchpad lw | 1331 | 1441 | 1526 |
+| I_STAT lw | 1520 | 1620 | 1723 |
+| BIOS lw | 3647 | 3721 | 3822 |
+| RAM sw | 1478 | 1477 | 1572 |
+| scratchpad sw | 1332 | 1440 | 1539 |
+| GP0 sw | 1332 | 1439 | 1536 |
+
+### Loads and Stores from KSEG1 Code
+
+From KSEG1 a NOP loop took 2497 cycles for 100 turns. A load or store adds to that according to its target and not its width:[^runh]
+
+Table: Loads and stores from KSEG1 code (cycles for 100 turns)
+
+| Body | Cycles |
+| --- | --- |
+| 1 nop | 2497 |
+| I_STAT, GPUSTAT or scratchpad lw | 2495 |
+| RAM lw, lhu or lbu | 2901 to 2907 |
+| EXP1 lbu or BIOS lbu | 2900 to 2904 |
+| CD-ROM status lbu | 3011 |
+| SPUSTAT lhu | 3995 |
+| BIOS lw | 4708 |
+| RAM sw, sh or sb | 3008 to 3012 |
+| GP0 sw, SPU sh, CD-ROM sb, scratchpad sw | 2491 to 2495 |
+| RAM sw, sw | 3833 |
+| GP0 sw, sw | 3103 |
+
+A store to an I/O port from KSEG1 code adds nothing to the fetch time, and a store to RAM adds about 5 cycles.[^runh]
+
+## Runs
+
+### 26 September 2026 (card-cpu8)
+
+[00RUN.txt](/tests/raw/20260926T0000Z-5501a-card-cpu8/cpu8/00RUN.txt):
+
+```
+===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+11 tests
+COP0 at start: BPC 00000000 BDA 00000000 TAR BFC02B68 DCIC 00000000 BadVaddr 00000400 BDAM 00000000
+BPCM 00000000 SR 00000000 Cause C0000024 EPC BFC02B78 PRId 00000002
+```
+
+[01STL.txt](/tests/raw/20260926T0000Z-5501a-card-cpu8/cpu8/01STL.txt):
+
+```
+===== 01 STL GTE AND STALLS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000400
+
+GTE rows, cached and from KSEG1 (old 00010002, new 00030004):
+RTPS, OFX 0 after (SXY2): cached 00000003, KSEG1 00000001
+RTPS, OFX 2 after: cached 00000003, KSEG1 00000001
+RTPS, OFX 4 after: cached 00000003, KSEG1 00000001
+RTPS, OFX 6 after: cached 00000001, KSEG1 00000001
+RTPS, OFX after a divide: cached 00000001, KSEG1 00000001
+RTPS, OFX after a BIOS load and use: cached 00000001, KSEG1 00000001
+RTPS, DQB 4 after (IR0): cached 00000030, KSEG1 00000010
+RTPS, DQB 6 after: cached 00000030, KSEG1 00000010
+RTPS, DQB after a divide: cached 00000010, KSEG1 00000010
+RTPS, DQB after a BIOS load and use: cached 00000010, KSEG1 00000010
+NCS, VZ0 0 after (MAC3): cached 00000004, KSEG1 00000002
+NCS, VZ0 1 after: cached 00000004, KSEG1 00000002
+NCS, VZ0 2 after: cached 00000002, KSEG1 00000002
+NCS, VZ0 after a divide: cached 00000002, KSEG1 00000002
+NCS, VZ0 after a BIOS load and use: cached 00000002, KSEG1 00000002
+NCS, RBK 0 after (MAC1): cached 00030004, KSEG1 00010002
+NCS, RBK 2 after: cached 00030004, KSEG1 00010002
+RTPT, OFX 0 after (SXY0): cached 00000003, KSEG1 00000003
+RTPT, OFX 4 after: cached 00000003, KSEG1 00000001
+RTPT, OFX 8 after: cached 00000003, KSEG1 00000001
+RTPT, OFX after a divide: cached 00000001, KSEG1 00000001
+RTPS, TRZ 0 before (MAC3): cached 00010002, KSEG1 00010002
+RTPS, TRZ 1 before: cached 00010002, KSEG1 00030004
+RTPS, TRZ a divide before: cached 00030004, KSEG1 00030004
+SQR, IR1 1 before (MAC1): cached 00000004, KSEG1 00000010
+SQR, IR1 a divide before: cached 00000010, KSEG1 00000010
+Done.
+```
+
+[02LN2.txt](/tests/raw/20260926T0000Z-5501a-card-cpu8/cpu8/02LN2.txt):
+
+```
+===== 02 LN2 LOAD LANDING 2 | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000400
+
+the instruction on the cycle a RAM load lands (RAM lw at $10, n nops, the named one):
+lw, 5 nops, addu, nop: 1364
+lw, 5 nops, RAM lw, nop: 1672
+lw, 5 nops, lw of RAM 2, nop: 1680
+lw, 5 nops, scratchpad lw, nop: 1333
+lw, 5 nops, I_STAT lw, nop: 1525
+lw, 5 nops, BIOS lw, nop: 3644
+lw, 5 nops, RAM sw, nop: 1480
+lw, 5 nops, scratchpad sw, nop: 1351
+lw, 5 nops, GP0 sw, nop: 1355
+lw, 5 nops, lw, lw, nop: 2389
+lw, 6 nops, addu, nop: 1457
+lw, 6 nops, RAM lw, nop: 1758
+lw, 6 nops, lw of RAM 2, nop: 1766
+lw, 6 nops, scratchpad lw, nop: 1442
+lw, 6 nops, I_STAT lw, nop: 1622
+lw, 6 nops, BIOS lw, nop: 3729
+lw, 6 nops, RAM sw, nop: 1490
+lw, 6 nops, scratchpad sw, nop: 1450
+lw, 6 nops, GP0 sw, nop: 1450
+lw, 6 nops, lw, lw, nop: 2491
+lw, 7 nops, addu, nop: 1560
+lw, 7 nops, RAM lw, nop: 1882
+lw, 7 nops, lw of RAM 2, nop: 1882
+lw, 7 nops, scratchpad lw, nop: 1552
+lw, 7 nops, I_STAT lw, nop: 1752
+lw, 7 nops, BIOS lw, nop: 3858
+lw, 7 nops, RAM sw, nop: 1569
+lw, 7 nops, scratchpad sw, nop: 1538
+lw, 7 nops, GP0 sw, nop: 1537
+lw, 7 nops, lw, lw, nop: 2614
+Done.
+```
+
+[03UN3.txt](/tests/raw/20260926T0000Z-5501a-card-cpu8/cpu8/03UN3.txt):
+
+```
+===== 03 UN3 KSEG1 CODE 2 | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000400
+
+code from KSEG1 ($10 the load's address, $11 the store's):
+1 nop: 2495
+RAM lw: 2906
+RAM lhu: 2903
+RAM lbu: 2910
+RAM lw, lw: 4037
+RAM lw, use: 3714
+I_STAT lw: 2493
+I_STAT lw, lw: 3325
+GPUSTAT lw: 2492
+SPUSTAT lhu: 3996
+CDROM status lbu: 3007
+EXP1 lbu: 2900
+BIOS lw: 4706
+BIOS lbu: 2900
+scratchpad lw: 2498
+RAM sw: 3014
+RAM sh: 3007
+RAM sb: 3012
+RAM sw, sw: 3829
+RAM sw, RAM lw: 4040
+RAM lw, RAM sw: 4129
+GP0 sw: 2496
+GP0 sw, sw: 3104
+SPU voice 0 sh: 2498
+CDROM index sb: 2496
+scratchpad sw: 2496
+RAM sw, GP0 lw: 3628
+Done.
+```
+
+[04GJ1.txt](/tests/raw/20260926T0000Z-5501a-card-cpu8/cpu8/04GJ1.txt):
+
+```
+===== 04 GJ1 GTE INPUTS BEFORE | 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, TRZ (MAC3) 0 before: 00010002 00010002
+RTPS, TRZ (MAC3) 1 before: 00010002 00010002
+MVMVA TR, TRX (MAC1) 0 before: 00010002 00010002
+MVMVA TR, TRX (MAC1) 1 before: 00010002 00010002
+Done.
+```
+
+[05GK1.txt](/tests/raw/20260926T0000Z-5501a-card-cpu8/cpu8/05GK1.txt):
+
+```
+===== 05 GK1 GTE INPUTS 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, OFX (SXY2) 0 after: 00000003 00000003
+RTPS, OFX (SXY2) 1 after: 00000003 00000003
+RTPS, OFX (SXY2) 2 after: 00000001 00000003
+RTPS, OFX (SXY2) 3 after: 00000001 00000003
+RTPS, OFX (SXY2) 4 after: 00000001 00000003
+RTPS, OFX (SXY2) 5 after: 00000001 00000001
+RTPS, OFX (SXY2) 6 after: 00000001 00000001
+RTPS, DQB (IR0) 4 after: 00000010 00000030
+RTPS, DQB (IR0) 5 after: 00000010 00000030
+RTPS, DQB (IR0) 6 after: 00000010 00000030
+RTPS, DQB (IR0) 7 after: 00000010 00000030
+RTPS, DQB (IR0) 8 after: 00000010 00000010
+RTPS, DQB (IR0) 9 after: 00000010 00000010
+NCS, VZ0 (MAC3) 0 after: 00000004 00000004
+NCS, VZ0 (MAC3) 1 after: 00000004 00000004
+NCS, VZ0 (MAC3) 2 after: 00000002 00000002
+NCS, VZ0 (MAC3) 3 after: 00000002 00000002
+NCS, RBK (MAC1) 0 after: 00010002 00010002
+Done.
+```
+
+[06GK2.txt](/tests/raw/20260926T0000Z-5501a-card-cpu8/cpu8/06GK2.txt):
+
+```
+===== 06 GK2 GTE INPUTS 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):
+NCS, RBK (MAC1) 1 after: 00010002 00010002
+NCS, RBK (MAC1) 2 after: 00010002 00010002
+NCS, RBK (MAC1) 3 after: 00010002 00010002
+NCS, BBK (MAC3) 2 after: 00010002 00030004
+NCS, BBK (MAC3) 3 after: 00010002 00030004
+NCS, BBK (MAC3) 4 after: 00010002 00030004
+NCS, BBK (MAC3) 5 after: 00010002 00030004
+RTPT, OFX (SXY0) 0 after: 00000003 00000003
+RTPT, OFX (SXY0) 2 after: 00000003 00000003
+RTPT, OFX (SXY0) 4 after: 00000003 00000003
+RTPT, OFX (SXY0) 6 after: 00000001 00000003
+RTPT, OFX (SXY0) 8 after: 00000001 00000003
+CDP, RGBC (MAC1) 0 after: 00000040 00000080
+CDP, RGBC (MAC1) 1 after: 00000040 00000080
+CDP, RGBC (MAC1) 2 after: 00000040 00000080
+CDP, RGBC (MAC1) 3 after: 00000040 00000040
+NCLIP, SXY2 (MAC0) 0 after: FFFFFFC0 FFFFFFC0
+NCLIP, SXY2 (MAC0) 1 after: FFFFFFE0 FFFFFFE0
+Done.
+```
+
+[07GK3.txt](/tests/raw/20260926T0000Z-5501a-card-cpu8/cpu8/07GK3.txt):
+
+```
+===== 07 GK3 GTE INPUTS 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):
+OP, IR3 (MAC1) 0 after: FFFFF002 FFFFF002
+OP, IR3 (MAC1) 1 after: FFFFF002 FFFFF002
+RTPS, OFX (SXY2) a 1 after: 00000003 00000003
+RTPS, OFX (SXY2) a 2 after: 00000001 00000003
+RTPS, OFX (SXY2) a 3 after: 00000001 00000001
+RTPS, OFX (SXY2) a 4 after: 00000001 00000001
+RTPS, OFX (SXY2) a 5 after: 00000001 00000001
+RTPS, OFX (SXY2) a 6 after: 00000001 00000001
+NCS, RBK (MAC1) a 0 after: 00030004 00030004
+NCS, RBK (MAC1) a 1 after: 00010002 00010002
+NCS, RBK (MAC1) a 2 after: 00010002 00030004
+NCS, RBK (MAC1) a 3 after: 00010002 00010002
+NCS, BBK (MAC3) a 2 after: 00010002 00030004
+NCS, BBK (MAC3) a 3 after: 00010002 00030004
+NCS, BBK (MAC3) a 4 after: 00010002 00030004
+NCS, BBK (MAC3) a 5 after: 00010002 00030004
+CDP, RGBC (MAC1) a 0 after: 00000080 00000080
+CDP, RGBC (MAC1) a 1 after: 00000040 00000080
+Done.
+```
+
+[08GK4.txt](/tests/raw/20260926T0000Z-5501a-card-cpu8/cpu8/08GK4.txt):
+
+```
+===== 08 GK4 GTE INPUTS 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 (MAC1) a 2 after: 00000040 00000080
+CDP, RGBC (MAC1) a 3 after: 00000040 00000040
+GPL, MAC3 a 0 after: 00010002 00010002
+GPL, MAC3 a 1 after: 00030004 00010000
+RTPS, OFX (SXY2) b 1 after: 00000001 00000003
+RTPS, OFX (SXY2) b 2 after: 00000001 00000003
+RTPS, OFX (SXY2) b 3 after: 00000001 00000003
+RTPS, OFX (SXY2) b 4 after: 00000001 00000003
+RTPS, OFX (SXY2) b 5 after: 00000001 00000001
+RTPS, OFX (SXY2) b 6 after: 00000001 00000001
+NCS, RBK (MAC1) b 0 after: 00010002 00030004
+NCS, RBK (MAC1) b 1 after: 00010002 00010002
+NCS, RBK (MAC1) b 2 after: 00010002 00010002
+NCS, RBK (MAC1) b 3 after: 00010002 00010002
+NCS, BBK (MAC3) b 2 after: 00010002 00010002
+NCS, BBK (MAC3) b 3 after: 00010002 00010002
+NCS, BBK (MAC3) b 4 after: 00010002 00010002
+NCS, BBK (MAC3) b 5 after: 00010002 00010002
+Done.
+```
+
+[09GK5.txt](/tests/raw/20260926T0000Z-5501a-card-cpu8/cpu8/09GK5.txt):
+
+```
+===== 09 GK5 GTE INPUTS AFTER 5 | 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 (MAC1) b 0 after: 00000040 00000080
+CDP, RGBC (MAC1) b 1 after: 00000040 00000080
+CDP, RGBC (MAC1) b 2 after: 00000040 00000080
+CDP, RGBC (MAC1) b 3 after: 00000040 00000040
+GPL, MAC3 b 0 after: 00030004 00010002
+GPL, MAC3 b 1 after: 00030004 00010000
+RTPS, OFX (SXY2) c 1 after: 00000001 00000003
+RTPS, OFX (SXY2) c 2 after: 00000001 00000003
+RTPS, OFX (SXY2) c 3 after: 00000001 00000003
+RTPS, OFX (SXY2) c 4 after: 00000001 00000003
+RTPS, OFX (SXY2) c 5 after: 00000001 00000001
+RTPS, OFX (SXY2) c 6 after: 00000001 00000001
+NCS, RBK (MAC1) c 0 after: 00010002 00030004
+NCS, RBK (MAC1) c 1 after: 00010002 00030004
+NCS, RBK (MAC1) c 2 after: 00010002 00030004
+NCS, RBK (MAC1) c 3 after: 00010002 00010002
+NCS, BBK (MAC3) c 2 after: 00010002 00030004
+NCS, BBK (MAC3) c 3 after: 00010002 00030004
+Done.
+```
+
+[10GK6.txt](/tests/raw/20260926T0000Z-5501a-card-cpu8/cpu8/10GK6.txt):
+
+```
+===== 10 GK6 GTE INPUTS AFTER 6 | 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):
+NCS, BBK (MAC3) c 4 after: 00010002 00030004
+NCS, BBK (MAC3) c 5 after: 00010002 00010002
+CDP, RGBC (MAC1) c 0 after: 00000080 00000080
+CDP, RGBC (MAC1) c 1 after: 00000080 00000080
+CDP, RGBC (MAC1) c 2 after: 00000040 00000040
+CDP, RGBC (MAC1) c 3 after: 00000040 00000040
+GPL, MAC3 c 0 after: 00030004 00030004
+GPL, MAC3 c 1 after: 00030004 00010000
+RTPT, OFX (SXY1) 0 after: 00000003 00000003
+RTPT, OFX (SXY1) 2 after: 00000003 00000003
+RTPT, OFX (SXY1) 4 after: 00000003 00000003
+RTPT, OFX (SXY1) 6 after: 00000001 00000003
+RTPT, OFX (SXY1) 8 after: 00000001 00000003
+RTPT, OFX (SXY1) 10 after: 00000001 00000003
+RTPT, OFX (SXY1) 12 after: 00000001 00000001
+RTPT, OFX (SXY2) 0 after: 00000003 00000003
+RTPT, OFX (SXY2) 2 after: 00000003 00000003
+RTPT, OFX (SXY2) 4 after: 00000001 00000003
+Done.
+```
+
+[11GK7.txt](/tests/raw/20260926T0000Z-5501a-card-cpu8/cpu8/11GK7.txt):
+
+```
+===== 11 GK7 GTE INPUTS AFTER 7 | 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, OFX (SXY2) 6 after: 00000001 00000003
+RTPT, OFX (SXY2) 8 after: 00000001 00000003
+RTPT, OFX (SXY2) 10 after: 00000001 00000003
+RTPT, OFX (SXY2) 12 after: 00000001 00000001
+RTPT, DQB (IR0) 6 after: 00000010 00000030
+RTPT, DQB (IR0) 8 after: 00000010 00000030
+RTPT, DQB (IR0) 10 after: 00000010 00000030
+RTPT, DQB (IR0) 12 after: 00000010 00000010
+RTPT, DQB (IR0) 14 after: 00000010 00000010
+RTPT, DQB (IR0) 16 after: 00000010 00000010
+RTPT, OFY (SXY2) 2 after: 00030000 00030000
+RTPT, OFY (SXY2) 4 after: 00030000 00030000
+RTPT, OFY (SXY2) 6 after: 00010000 00010000
+RTPT, OFY (SXY2) 8 after: 00010000 00030000
+RTPT, OFY (SXY2) 10 after: 00010000 00030000
+Done.
+```
+
+### 27 September 2026 (card-1)
+
+[00RUN.txt](/tests/raw/20260927T0000Z-5501a-card-1/cpu8/00RUN.txt):
+
+```
+===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+11 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 80017600 DCIC 00000000 BadVaddr 00000400 BDAM 00000000
+BPCM 00000000 SR 40000000 Cause 00000020 EPC 8001816C PRId 00000002
+```
+
+[02LN2.txt](/tests/raw/20260927T0000Z-5501a-card-1/cpu8/02LN2.txt):
+
+```
+===== 02 LN2 LOAD LANDING 2 | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000400
+
+the instruction on the cycle a RAM load lands (RAM lw at $10, n nops, the named one):
+lw, 5 nops, addu, nop: 1361
+lw, 5 nops, RAM lw, nop: 1677
+lw, 5 nops, lw of RAM 2, nop: 1667
+lw, 5 nops, scratchpad lw, nop: 1330
+lw, 5 nops, I_STAT lw, nop: 1520
+lw, 5 nops, BIOS lw, nop: 3646
+lw, 5 nops, RAM sw, nop: 1480
+lw, 5 nops, scratchpad sw, nop: 1334
+lw, 5 nops, GP0 sw, nop: 1330
+lw, 5 nops, lw, lw, nop: 2384
+lw, 6 nops, addu, nop: 1449
+lw, 6 nops, RAM lw, nop: 1764
+lw, 6 nops, lw of RAM 2, nop: 1760
+lw, 6 nops, scratchpad lw, nop: 1437
+lw, 6 nops, I_STAT lw, nop: 1622
+lw, 6 nops, BIOS lw, nop: 3726
+lw, 6 nops, RAM sw, nop: 1482
+lw, 6 nops, scratchpad sw, nop: 1429
+lw, 6 nops, GP0 sw, nop: 1439
+lw, 6 nops, lw, lw, nop: 2480
+lw, 7 nops, addu, nop: 1556
+lw, 7 nops, RAM lw, nop: 1891
+lw, 7 nops, lw of RAM 2, nop: 1877
+lw, 7 nops, scratchpad lw, nop: 1528
+lw, 7 nops, I_STAT lw, nop: 1725
+lw, 7 nops, BIOS lw, nop: 3824
+lw, 7 nops, RAM sw, nop: 1563
+lw, 7 nops, scratchpad sw, nop: 1536
+lw, 7 nops, GP0 sw, nop: 1542
+lw, 7 nops, lw, lw, nop: 2604
+Done.
+```
+
+[03UN3.txt](/tests/raw/20260927T0000Z-5501a-card-1/cpu8/03UN3.txt):
+
+```
+===== 03 UN3 KSEG1 CODE 2 | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000400
+
+code from KSEG1 ($10 the load's address, $11 the store's):
+1 nop: 2500
+RAM lw: 2908
+RAM lhu: 2904
+RAM lbu: 2908
+RAM lw, lw: 4035
+RAM lw, use: 3715
+I_STAT lw: 2491
+I_STAT lw, lw: 3323
+GPUSTAT lw: 2495
+SPUSTAT lhu: 3988
+CDROM status lbu: 3005
+EXP1 lbu: 2899
+BIOS lw: 4710
+BIOS lbu: 2905
+scratchpad lw: 2495
+RAM sw: 3019
+RAM sh: 3014
+RAM sb: 3010
+RAM sw, sw: 3836
+RAM sw, RAM lw: 4040
+RAM lw, RAM sw: 4127
+GP0 sw: 2495
+GP0 sw, sw: 3103
+SPU voice 0 sh: 2495
+CDROM index sb: 2491
+scratchpad sw: 2495
+RAM sw, GP0 lw: 3626
+Done.
+```
+
+[04GJ1.txt](/tests/raw/20260927T0000Z-5501a-card-1/cpu8/04GJ1.txt):
+
+```
+===== 04 GJ1 GTE INPUTS BEFORE | 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, TRZ (MAC3) 0 before: 00010002 00010002
+RTPS, TRZ (MAC3) 1 before: 00030004 00010002
+MVMVA TR, TRX (MAC1) 0 before: 00010002 00010002
+MVMVA TR, TRX (MAC1) 1 before: 00010002 00010002
+Done.
+```
+
+[05GK1.txt](/tests/raw/20260927T0000Z-5501a-card-1/cpu8/05GK1.txt):
+
+```
+===== 05 GK1 GTE INPUTS 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, OFX (SXY2) 0 after: 00000001 00000003
+RTPS, OFX (SXY2) 1 after: 00000001 00000003
+RTPS, OFX (SXY2) 2 after: 00000001 00000003
+RTPS, OFX (SXY2) 3 after: 00000001 00000003
+RTPS, OFX (SXY2) 4 after: 00000001 00000003
+RTPS, OFX (SXY2) 5 after: 00000001 00000001
+RTPS, OFX (SXY2) 6 after: 00000001 00000001
+RTPS, DQB (IR0) 4 after: 00000010 00000030
+RTPS, DQB (IR0) 5 after: 00000010 00000030
+RTPS, DQB (IR0) 6 after: 00000010 00000030
+RTPS, DQB (IR0) 7 after: 00000010 00000030
+RTPS, DQB (IR0) 8 after: 00000010 00000010
+RTPS, DQB (IR0) 9 after: 00000010 00000010
+NCS, VZ0 (MAC3) 0 after: 00000002 00000004
+NCS, VZ0 (MAC3) 1 after: 00000002 00000002
+NCS, VZ0 (MAC3) 2 after: 00000002 00000002
+NCS, VZ0 (MAC3) 3 after: 00000002 00000002
+NCS, RBK (MAC1) 0 after: 00030004 00030004
+Done.
+```
+
+[06GK2.txt](/tests/raw/20260927T0000Z-5501a-card-1/cpu8/06GK2.txt):
+
+```
+===== 06 GK2 GTE INPUTS 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):
+NCS, RBK (MAC1) 1 after: 00010002 00010002
+NCS, RBK (MAC1) 2 after: 00010002 00010002
+NCS, RBK (MAC1) 3 after: 00010002 00010002
+NCS, BBK (MAC3) 2 after: 00010002 00030004
+NCS, BBK (MAC3) 3 after: 00010002 00030004
+NCS, BBK (MAC3) 4 after: 00010002 00030004
+NCS, BBK (MAC3) 5 after: 00010002 00030004
+RTPT, OFX (SXY0) 0 after: 00000003 00000003
+RTPT, OFX (SXY0) 2 after: 00000003 00000003
+RTPT, OFX (SXY0) 4 after: 00000003 00000003
+RTPT, OFX (SXY0) 6 after: 00000001 00000003
+RTPT, OFX (SXY0) 8 after: 00000001 00000003
+CDP, RGBC (MAC1) 0 after: 00000040 00000080
+CDP, RGBC (MAC1) 1 after: 00000040 00000080
+CDP, RGBC (MAC1) 2 after: 00000040 00000080
+CDP, RGBC (MAC1) 3 after: 00000040 00000040
+NCLIP, SXY2 (MAC0) 0 after: FFFFFFC0 FFFFFFC0
+NCLIP, SXY2 (MAC0) 1 after: FFFFFFC0 FFFFFFC0
+Done.
+```
+
+[07GK3.txt](/tests/raw/20260927T0000Z-5501a-card-1/cpu8/07GK3.txt):
+
+```
+===== 07 GK3 GTE INPUTS 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):
+OP, IR3 (MAC1) 0 after: FFFFF002 FFFFF002
+OP, IR3 (MAC1) 1 after: FFFFF002 FFFFF002
+RTPS, OFX (SXY2) a 1 after: 00000001 00000003
+RTPS, OFX (SXY2) a 2 after: 00000001 00000003
+RTPS, OFX (SXY2) a 3 after: 00000001 00000001
+RTPS, OFX (SXY2) a 4 after: 00000001 00000001
+RTPS, OFX (SXY2) a 5 after: 00000001 00000001
+RTPS, OFX (SXY2) a 6 after: 00000001 00000001
+NCS, RBK (MAC1) a 0 after: 00030004 00030004
+NCS, RBK (MAC1) a 1 after: 00030004 00030004
+NCS, RBK (MAC1) a 2 after: 00010002 00030004
+NCS, RBK (MAC1) a 3 after: 00010002 00010002
+NCS, BBK (MAC3) a 2 after: 00010002 00030004
+NCS, BBK (MAC3) a 3 after: 00010002 00030004
+NCS, BBK (MAC3) a 4 after: 00010002 00030004
+NCS, BBK (MAC3) a 5 after: 00010002 00030004
+CDP, RGBC (MAC1) a 0 after: 00000080 00000080
+CDP, RGBC (MAC1) a 1 after: 00000080 00000080
+Done.
+```
+
+[08GK4.txt](/tests/raw/20260927T0000Z-5501a-card-1/cpu8/08GK4.txt):
+
+```
+===== 08 GK4 GTE INPUTS 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 (MAC1) a 2 after: 00000040 00000080
+CDP, RGBC (MAC1) a 3 after: 00000040 00000040
+GPL, MAC3 a 0 after: 00030004 00010002
+GPL, MAC3 a 1 after: 00030004 00010000
+RTPS, OFX (SXY2) b 1 after: 00000003 00000003
+RTPS, OFX (SXY2) b 2 after: 00000001 00000003
+RTPS, OFX (SXY2) b 3 after: 00000001 00000003
+RTPS, OFX (SXY2) b 4 after: 00000001 00000003
+RTPS, OFX (SXY2) b 5 after: 00000001 00000001
+RTPS, OFX (SXY2) b 6 after: 00000001 00000001
+NCS, RBK (MAC1) b 0 after: 00030004 00030004
+NCS, RBK (MAC1) b 1 after: 00010002 00010002
+NCS, RBK (MAC1) b 2 after: 00010002 00010002
+NCS, RBK (MAC1) b 3 after: 00010002 00010002
+NCS, BBK (MAC3) b 2 after: 00010002 00010002
+NCS, BBK (MAC3) b 3 after: 00010002 00010002
+NCS, BBK (MAC3) b 4 after: 00010002 00010002
+NCS, BBK (MAC3) b 5 after: 00010002 00010002
+Done.
+```
+
+[09GK5.txt](/tests/raw/20260927T0000Z-5501a-card-1/cpu8/09GK5.txt):
+
+```
+===== 09 GK5 GTE INPUTS AFTER 5 | 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 (MAC1) b 0 after: 00000040 00000080
+CDP, RGBC (MAC1) b 1 after: 00000040 00000080
+CDP, RGBC (MAC1) b 2 after: 00000040 00000080
+CDP, RGBC (MAC1) b 3 after: 00000040 00000040
+GPL, MAC3 b 0 after: 00010002 00010002
+GPL, MAC3 b 1 after: 00030004 00010000
+RTPS, OFX (SXY2) c 1 after: 00000001 00000003
+RTPS, OFX (SXY2) c 2 after: 00000001 00000003
+RTPS, OFX (SXY2) c 3 after: 00000001 00000003
+RTPS, OFX (SXY2) c 4 after: 00000001 00000003
+RTPS, OFX (SXY2) c 5 after: 00000001 00000001
+RTPS, OFX (SXY2) c 6 after: 00000001 00000001
+NCS, RBK (MAC1) c 0 after: 00010002 00030004
+NCS, RBK (MAC1) c 1 after: 00010002 00030004
+NCS, RBK (MAC1) c 2 after: 00010002 00030004
+NCS, RBK (MAC1) c 3 after: 00010002 00010002
+NCS, BBK (MAC3) c 2 after: 00010002 00030004
+NCS, BBK (MAC3) c 3 after: 00010002 00030004
+Done.
+```
+
+[10GK6.txt](/tests/raw/20260927T0000Z-5501a-card-1/cpu8/10GK6.txt):
+
+```
+===== 10 GK6 GTE INPUTS AFTER 6 | 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):
+NCS, BBK (MAC3) c 4 after: 00010002 00030004
+NCS, BBK (MAC3) c 5 after: 00010002 00010002
+CDP, RGBC (MAC1) c 0 after: 00000040 00000040
+CDP, RGBC (MAC1) c 1 after: 00000040 00000040
+CDP, RGBC (MAC1) c 2 after: 00000040 00000040
+CDP, RGBC (MAC1) c 3 after: 00000040 00000040
+GPL, MAC3 c 0 after: 00030004 00030004
+GPL, MAC3 c 1 after: 00030004 00010000
+RTPT, OFX (SXY1) 0 after: 00000003 00000003
+RTPT, OFX (SXY1) 2 after: 00000003 00000003
+RTPT, OFX (SXY1) 4 after: 00000003 00000003
+RTPT, OFX (SXY1) 6 after: 00000001 00000003
+RTPT, OFX (SXY1) 8 after: 00000001 00000003
+RTPT, OFX (SXY1) 10 after: 00000001 00000003
+RTPT, OFX (SXY1) 12 after: 00000001 00000001
+RTPT, OFX (SXY2) 0 after: 00000003 00000003
+RTPT, OFX (SXY2) 2 after: 00000003 00000003
+RTPT, OFX (SXY2) 4 after: 00000001 00000003
+Done.
+```
+
+[11GK7.txt](/tests/raw/20260927T0000Z-5501a-card-1/cpu8/11GK7.txt):
+
+```
+===== 11 GK7 GTE INPUTS AFTER 7 | 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, OFX (SXY2) 6 after: 00000001 00000003
+RTPT, OFX (SXY2) 8 after: 00000001 00000003
+RTPT, OFX (SXY2) 10 after: 00000001 00000003
+RTPT, OFX (SXY2) 12 after: 00000001 00000001
+RTPT, DQB (IR0) 6 after: 00000010 00000030
+RTPT, DQB (IR0) 8 after: 00000010 00000030
+RTPT, DQB (IR0) 10 after: 00000010 00000030
+RTPT, DQB (IR0) 12 after: 00000010 00000010
+RTPT, DQB (IR0) 14 after: 00000010 00000010
+RTPT, DQB (IR0) 16 after: 00000010 00000010
+RTPT, OFY (SXY2) 2 after: 00030000 00030000
+RTPT, OFY (SXY2) 4 after: 00010000 00010000
+RTPT, OFY (SXY2) 6 after: 00010000 00010000
+RTPT, OFY (SXY2) 8 after: 00010000 00030000
+RTPT, OFY (SXY2) 10 after: 00010000 00030000
+Done.
+```
+
+Output files that match an earlier run: [01STL.txt](/tests/raw/20260927T0000Z-5501a-card-1/cpu8/01STL.txt) (as run 20260926T0000Z-5501a-card-cpu8).
+
+### 27 September 2026 (card-2)
+
+[00RUN.txt](/tests/raw/20260927T0000Z-5501a-card-2/cpu8/00RUN.txt):
+
+```
+===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+11 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 8001818C PRId 00000002
+```
+
+[01STL.txt](/tests/raw/20260927T0000Z-5501a-card-2/cpu8/01STL.txt):
+
+```
+===== 01 STL GTE AND STALLS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+GTE rows, cached and from KSEG1 (old 00010002, new 00030004):
+RTPS, OFX 0 after (SXY2): cached 00000003, KSEG1 00000001
+RTPS, OFX 2 after: cached 00000003, KSEG1 00000001
+RTPS, OFX 4 after: cached 00000003, KSEG1 00000001
+RTPS, OFX 6 after: cached 00000001, KSEG1 00000001
+RTPS, OFX after a divide: cached 00000001, KSEG1 00000001
+RTPS, OFX after a BIOS load and use: cached 00000001, KSEG1 00000001
+RTPS, DQB 4 after (IR0): cached 00000030, KSEG1 00000010
+RTPS, DQB 6 after: cached 00000030, KSEG1 00000010
+RTPS, DQB after a divide: cached 00000010, KSEG1 00000010
+RTPS, DQB after a BIOS load and use: cached 00000010, KSEG1 00000010
+NCS, VZ0 0 after (MAC3): cached 00000004, KSEG1 00000002
+NCS, VZ0 1 after: cached 00000004, KSEG1 00000002
+NCS, VZ0 2 after: cached 00000002, KSEG1 00000002
+NCS, VZ0 after a divide: cached 00000002, KSEG1 00000002
+NCS, VZ0 after a BIOS load and use: cached 00000002, KSEG1 00000002
+NCS, RBK 0 after (MAC1): cached 00030004, KSEG1 00010002
+NCS, RBK 2 after: cached 00030004, KSEG1 00010002
+RTPT, OFX 0 after (SXY0): cached 00000003, KSEG1 00000003
+RTPT, OFX 4 after: cached 00000003, KSEG1 00000001
+RTPT, OFX 8 after: cached 00000003, KSEG1 00000001
+RTPT, OFX after a divide: cached 00000001, KSEG1 00000001
+RTPS, TRZ 0 before (MAC3): cached 00010002, KSEG1 00010002
+RTPS, TRZ 1 before: cached 00010002, KSEG1 00030004
+RTPS, TRZ a divide before: cached 00030004, KSEG1 00030004
+SQR, IR1 1 before (MAC1): cached 00000004, KSEG1 00000010
+SQR, IR1 a divide before: cached 00000010, KSEG1 00000010
+Done.
+```
+
+[02LN2.txt](/tests/raw/20260927T0000Z-5501a-card-2/cpu8/02LN2.txt):
+
+```
+===== 02 LN2 LOAD LANDING 2 | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+the instruction on the cycle a RAM load lands (RAM lw at $10, n nops, the named one):
+lw, 5 nops, addu, nop: 1359
+lw, 5 nops, RAM lw, nop: 1672
+lw, 5 nops, lw of RAM 2, nop: 1668
+lw, 5 nops, scratchpad lw, nop: 1336
+lw, 5 nops, I_STAT lw, nop: 1520
+lw, 5 nops, BIOS lw, nop: 3647
+lw, 5 nops, RAM sw, nop: 1478
+lw, 5 nops, scratchpad sw, nop: 1332
+lw, 5 nops, GP0 sw, nop: 1332
+lw, 5 nops, lw, lw, nop: 2385
+lw, 6 nops, addu, nop: 1448
+lw, 6 nops, RAM lw, nop: 1760
+lw, 6 nops, lw of RAM 2, nop: 1768
+lw, 6 nops, scratchpad lw, nop: 1436
+lw, 6 nops, I_STAT lw, nop: 1622
+lw, 6 nops, BIOS lw, nop: 3725
+lw, 6 nops, RAM sw, nop: 1480
+lw, 6 nops, scratchpad sw, nop: 1432
+lw, 6 nops, GP0 sw, nop: 1433
+lw, 6 nops, lw, lw, nop: 2486
+lw, 7 nops, addu, nop: 1562
+lw, 7 nops, RAM lw, nop: 1886
+lw, 7 nops, lw of RAM 2, nop: 1885
+lw, 7 nops, scratchpad lw, nop: 1520
+lw, 7 nops, I_STAT lw, nop: 1726
+lw, 7 nops, BIOS lw, nop: 3822
+lw, 7 nops, RAM sw, nop: 1576
+lw, 7 nops, scratchpad sw, nop: 1542
+lw, 7 nops, GP0 sw, nop: 1540
+lw, 7 nops, lw, lw, nop: 2624
+Done.
+```
+
+[03UN3.txt](/tests/raw/20260927T0000Z-5501a-card-2/cpu8/03UN3.txt):
+
+```
+===== 03 UN3 KSEG1 CODE 2 | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+code from KSEG1 ($10 the load's address, $11 the store's):
+1 nop: 2501
+RAM lw: 2914
+RAM lhu: 2904
+RAM lbu: 2904
+RAM lw, lw: 4036
+RAM lw, use: 3715
+I_STAT lw: 2491
+I_STAT lw, lw: 3322
+GPUSTAT lw: 2497
+SPUSTAT lhu: 3991
+CDROM status lbu: 3012
+EXP1 lbu: 2904
+BIOS lw: 4708
+BIOS lbu: 2900
+scratchpad lw: 2495
+RAM sw: 3012
+RAM sh: 3012
+RAM sb: 3008
+RAM sw, sw: 3833
+RAM sw, RAM lw: 4039
+RAM lw, RAM sw: 4130
+GP0 sw: 2495
+GP0 sw, sw: 3103
+SPU voice 0 sh: 2495
+CDROM index sb: 2495
+scratchpad sw: 2491
+RAM sw, GP0 lw: 3628
+Done.
+```
+
+[04GJ1.txt](/tests/raw/20260927T0000Z-5501a-card-2/cpu8/04GJ1.txt):
+
+```
+===== 04 GJ1 GTE INPUTS BEFORE | 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, TRZ (MAC3) 0 before: 00010002 00010002
+RTPS, TRZ (MAC3) 1 before: 00030004 00010002
+MVMVA TR, TRX (MAC1) 0 before: 00010002 00010002
+MVMVA TR, TRX (MAC1) 1 before: 00010002 00010002
+Done.
+```
+
+[05GK1.txt](/tests/raw/20260927T0000Z-5501a-card-2/cpu8/05GK1.txt):
+
+```
+===== 05 GK1 GTE INPUTS 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, OFX (SXY2) 0 after: 00000001 00000003
+RTPS, OFX (SXY2) 1 after: 00000001 00000003
+RTPS, OFX (SXY2) 2 after: 00000001 00000003
+RTPS, OFX (SXY2) 3 after: 00000001 00000003
+RTPS, OFX (SXY2) 4 after: 00000001 00000003
+RTPS, OFX (SXY2) 5 after: 00000001 00000001
+RTPS, OFX (SXY2) 6 after: 00000001 00000001
+RTPS, DQB (IR0) 4 after: 00000010 00000030
+RTPS, DQB (IR0) 5 after: 00000010 00000030
+RTPS, DQB (IR0) 6 after: 00000010 00000030
+RTPS, DQB (IR0) 7 after: 00000010 00000030
+RTPS, DQB (IR0) 8 after: 00000010 00000010
+RTPS, DQB (IR0) 9 after: 00000010 00000010
+NCS, VZ0 (MAC3) 0 after: 00000002 00000004
+NCS, VZ0 (MAC3) 1 after: 00000002 00000002
+NCS, VZ0 (MAC3) 2 after: 00000002 00000002
+NCS, VZ0 (MAC3) 3 after: 00000002 00000002
+NCS, RBK (MAC1) 0 after: 00030004 00030004
+Done.
+```
+
+[06GK2.txt](/tests/raw/20260927T0000Z-5501a-card-2/cpu8/06GK2.txt):
+
+```
+===== 06 GK2 GTE INPUTS 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):
+NCS, RBK (MAC1) 1 after: 00010002 00010002
+NCS, RBK (MAC1) 2 after: 00010002 00010002
+NCS, RBK (MAC1) 3 after: 00010002 00010002
+NCS, BBK (MAC3) 2 after: 00010002 00030004
+NCS, BBK (MAC3) 3 after: 00010002 00030004
+NCS, BBK (MAC3) 4 after: 00010002 00030004
+NCS, BBK (MAC3) 5 after: 00010002 00030004
+RTPT, OFX (SXY0) 0 after: 00000003 00000003
+RTPT, OFX (SXY0) 2 after: 00000003 00000003
+RTPT, OFX (SXY0) 4 after: 00000003 00000003
+RTPT, OFX (SXY0) 6 after: 00000001 00000003
+RTPT, OFX (SXY0) 8 after: 00000001 00000003
+CDP, RGBC (MAC1) 0 after: 00000040 00000080
+CDP, RGBC (MAC1) 1 after: 00000040 00000080
+CDP, RGBC (MAC1) 2 after: 00000040 00000080
+CDP, RGBC (MAC1) 3 after: 00000040 00000040
+NCLIP, SXY2 (MAC0) 0 after: FFFFFFC0 FFFFFFC0
+NCLIP, SXY2 (MAC0) 1 after: FFFFFFC0 FFFFFFC0
+Done.
+```
+
+[07GK3.txt](/tests/raw/20260927T0000Z-5501a-card-2/cpu8/07GK3.txt):
+
+```
+===== 07 GK3 GTE INPUTS 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):
+OP, IR3 (MAC1) 0 after: FFFFF002 FFFFF002
+OP, IR3 (MAC1) 1 after: FFFFF002 FFFFF002
+RTPS, OFX (SXY2) a 1 after: 00000001 00000003
+RTPS, OFX (SXY2) a 2 after: 00000001 00000003
+RTPS, OFX (SXY2) a 3 after: 00000001 00000001
+RTPS, OFX (SXY2) a 4 after: 00000001 00000001
+RTPS, OFX (SXY2) a 5 after: 00000001 00000001
+RTPS, OFX (SXY2) a 6 after: 00000001 00000001
+NCS, RBK (MAC1) a 0 after: 00030004 00030004
+NCS, RBK (MAC1) a 1 after: 00030004 00030004
+NCS, RBK (MAC1) a 2 after: 00010002 00030004
+NCS, RBK (MAC1) a 3 after: 00010002 00010002
+NCS, BBK (MAC3) a 2 after: 00010002 00030004
+NCS, BBK (MAC3) a 3 after: 00010002 00030004
+NCS, BBK (MAC3) a 4 after: 00010002 00030004
+NCS, BBK (MAC3) a 5 after: 00010002 00030004
+CDP, RGBC (MAC1) a 0 after: 00000080 00000080
+CDP, RGBC (MAC1) a 1 after: 00000080 00000080
+Done.
+```
+
+[08GK4.txt](/tests/raw/20260927T0000Z-5501a-card-2/cpu8/08GK4.txt):
+
+```
+===== 08 GK4 GTE INPUTS 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 (MAC1) a 2 after: 00000040 00000080
+CDP, RGBC (MAC1) a 3 after: 00000040 00000040
+GPL, MAC3 a 0 after: 00030004 00010002
+GPL, MAC3 a 1 after: 00030004 00010000
+RTPS, OFX (SXY2) b 1 after: 00000003 00000003
+RTPS, OFX (SXY2) b 2 after: 00000001 00000003
+RTPS, OFX (SXY2) b 3 after: 00000001 00000003
+RTPS, OFX (SXY2) b 4 after: 00000001 00000003
+RTPS, OFX (SXY2) b 5 after: 00000001 00000001
+RTPS, OFX (SXY2) b 6 after: 00000001 00000001
+NCS, RBK (MAC1) b 0 after: 00030004 00030004
+NCS, RBK (MAC1) b 1 after: 00010002 00010002
+NCS, RBK (MAC1) b 2 after: 00010002 00010002
+NCS, RBK (MAC1) b 3 after: 00010002 00010002
+NCS, BBK (MAC3) b 2 after: 00010002 00010002
+NCS, BBK (MAC3) b 3 after: 00010002 00010002
+NCS, BBK (MAC3) b 4 after: 00010002 00010002
+NCS, BBK (MAC3) b 5 after: 00010002 00010002
+Done.
+```
+
+[09GK5.txt](/tests/raw/20260927T0000Z-5501a-card-2/cpu8/09GK5.txt):
+
+```
+===== 09 GK5 GTE INPUTS AFTER 5 | 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 (MAC1) b 0 after: 00000040 00000080
+CDP, RGBC (MAC1) b 1 after: 00000040 00000080
+CDP, RGBC (MAC1) b 2 after: 00000040 00000080
+CDP, RGBC (MAC1) b 3 after: 00000040 00000040
+GPL, MAC3 b 0 after: 00010002 00010002
+GPL, MAC3 b 1 after: 00030004 00010000
+RTPS, OFX (SXY2) c 1 after: 00000001 00000003
+RTPS, OFX (SXY2) c 2 after: 00000001 00000003
+RTPS, OFX (SXY2) c 3 after: 00000001 00000003
+RTPS, OFX (SXY2) c 4 after: 00000001 00000003
+RTPS, OFX (SXY2) c 5 after: 00000001 00000001
+RTPS, OFX (SXY2) c 6 after: 00000001 00000001
+NCS, RBK (MAC1) c 0 after: 00010002 00030004
+NCS, RBK (MAC1) c 1 after: 00010002 00030004
+NCS, RBK (MAC1) c 2 after: 00010002 00030004
+NCS, RBK (MAC1) c 3 after: 00010002 00010002
+NCS, BBK (MAC3) c 2 after: 00010002 00030004
+NCS, BBK (MAC3) c 3 after: 00010002 00030004
+Done.
+```
+
+[10GK6.txt](/tests/raw/20260927T0000Z-5501a-card-2/cpu8/10GK6.txt):
+
+```
+===== 10 GK6 GTE INPUTS AFTER 6 | 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):
+NCS, BBK (MAC3) c 4 after: 00010002 00030004
+NCS, BBK (MAC3) c 5 after: 00010002 00010002
+CDP, RGBC (MAC1) c 0 after: 00000040 00000040
+CDP, RGBC (MAC1) c 1 after: 00000040 00000040
+CDP, RGBC (MAC1) c 2 after: 00000040 00000040
+CDP, RGBC (MAC1) c 3 after: 00000040 00000040
+GPL, MAC3 c 0 after: 00030004 00030004
+GPL, MAC3 c 1 after: 00030004 00010000
+RTPT, OFX (SXY1) 0 after: 00000003 00000003
+RTPT, OFX (SXY1) 2 after: 00000001 00000003
+RTPT, OFX (SXY1) 4 after: 00000003 00000003
+RTPT, OFX (SXY1) 6 after: 00000001 00000003
+RTPT, OFX (SXY1) 8 after: 00000001 00000003
+RTPT, OFX (SXY1) 10 after: 00000001 00000003
+RTPT, OFX (SXY1) 12 after: 00000001 00000001
+RTPT, OFX (SXY2) 0 after: 00000003 00000003
+RTPT, OFX (SXY2) 2 after: 00000003 00000003
+RTPT, OFX (SXY2) 4 after: 00000001 00000003
+Done.
+```
+
+[11GK7.txt](/tests/raw/20260927T0000Z-5501a-card-2/cpu8/11GK7.txt):
+
+```
+===== 11 GK7 GTE INPUTS AFTER 7 | 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, OFX (SXY2) 6 after: 00000001 00000003
+RTPT, OFX (SXY2) 8 after: 00000001 00000003
+RTPT, OFX (SXY2) 10 after: 00000001 00000003
+RTPT, OFX (SXY2) 12 after: 00000001 00000001
+RTPT, DQB (IR0) 6 after: 00000010 00000030
+RTPT, DQB (IR0) 8 after: 00000010 00000030
+RTPT, DQB (IR0) 10 after: 00000010 00000030
+RTPT, DQB (IR0) 12 after: 00000010 00000010
+RTPT, DQB (IR0) 14 after: 00000010 00000010
+RTPT, DQB (IR0) 16 after: 00000010 00000010
+RTPT, OFY (SXY2) 2 after: 00030000 00030000
+RTPT, OFY (SXY2) 4 after: 00010000 00010000
+RTPT, OFY (SXY2) 6 after: 00010000 00010000
+RTPT, OFY (SXY2) 8 after: 00010000 00030000
+RTPT, OFY (SXY2) 10 after: 00010000 00030000
+Done.
+```
+
+### 27 September 2026 (card-d)
+
+[00RUN.txt](/tests/raw/20260927T0000Z-5501a-card-d/cpu8/00RUN.txt):
+
+```
+===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+11 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 800160E0 DCIC 00000000 BadVaddr 00000400 BDAM 00000000
+BPCM 00000000 SR 00000000 Cause 00000020 EPC 80016C84 PRId 00000002
+```
+
+[02LN2.txt](/tests/raw/20260927T0000Z-5501a-card-d/cpu8/02LN2.txt):
+
+```
+===== 02 LN2 LOAD LANDING 2 | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000400
+
+the instruction on the cycle a RAM load lands (RAM lw at $10, n nops, the named one):
+lw, 5 nops, addu, nop: 1360
+lw, 5 nops, RAM lw, nop: 1672
+lw, 5 nops, lw of RAM 2, nop: 1668
+lw, 5 nops, scratchpad lw, nop: 1336
+lw, 5 nops, I_STAT lw, nop: 1520
+lw, 5 nops, BIOS lw, nop: 3647
+lw, 5 nops, RAM sw, nop: 1478
+lw, 5 nops, scratchpad sw, nop: 1332
+lw, 5 nops, GP0 sw, nop: 1332
+lw, 5 nops, lw, lw, nop: 2385
+lw, 6 nops, addu, nop: 1448
+lw, 6 nops, RAM lw, nop: 1760
+lw, 6 nops, lw of RAM 2, nop: 1768
+lw, 6 nops, scratchpad lw, nop: 1436
+lw, 6 nops, I_STAT lw, nop: 1622
+lw, 6 nops, BIOS lw, nop: 3725
+lw, 6 nops, RAM sw, nop: 1480
+lw, 6 nops, scratchpad sw, nop: 1432
+lw, 6 nops, GP0 sw, nop: 1433
+lw, 6 nops, lw, lw, nop: 2486
+lw, 7 nops, addu, nop: 1562
+lw, 7 nops, RAM lw, nop: 1886
+lw, 7 nops, lw of RAM 2, nop: 1885
+lw, 7 nops, scratchpad lw, nop: 1520
+lw, 7 nops, I_STAT lw, nop: 1726
+lw, 7 nops, BIOS lw, nop: 3822
+lw, 7 nops, RAM sw, nop: 1576
+lw, 7 nops, scratchpad sw, nop: 1542
+lw, 7 nops, GP0 sw, nop: 1540
+lw, 7 nops, lw, lw, nop: 2624
+Done.
+```
+
+[03UN3.txt](/tests/raw/20260927T0000Z-5501a-card-d/cpu8/03UN3.txt):
+
+```
+===== 03 UN3 KSEG1 CODE 2 | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000400
+
+code from KSEG1 ($10 the load's address, $11 the store's):
+1 nop: 2501
+RAM lw: 2914
+RAM lhu: 2904
+RAM lbu: 2904
+RAM lw, lw: 4036
+RAM lw, use: 3715
+I_STAT lw: 2491
+I_STAT lw, lw: 3322
+GPUSTAT lw: 2497
+SPUSTAT lhu: 3991
+CDROM status lbu: 3012
+EXP1 lbu: 2904
+BIOS lw: 4708
+BIOS lbu: 2900
+scratchpad lw: 2495
+RAM sw: 3012
+RAM sh: 3012
+RAM sb: 3008
+RAM sw, sw: 3833
+RAM sw, RAM lw: 4039
+RAM lw, RAM sw: 4130
+GP0 sw: 2495
+GP0 sw, sw: 3103
+SPU voice 0 sh: 2495
+CDROM index sb: 2495
+scratchpad sw: 2491
+RAM sw, GP0 lw: 3628
+Done.
+```
+
+[10GK6.txt](/tests/raw/20260927T0000Z-5501a-card-d/cpu8/10GK6.txt):
+
+```
+===== 10 GK6 GTE INPUTS AFTER 6 | 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):
+NCS, BBK (MAC3) c 4 after: 00010002 00030004
+NCS, BBK (MAC3) c 5 after: 00010002 00010002
+CDP, RGBC (MAC1) c 0 after: 00000040 00000040
+CDP, RGBC (MAC1) c 1 after: 00000040 00000040
+CDP, RGBC (MAC1) c 2 after: 00000040 00000040
+CDP, RGBC (MAC1) c 3 after: 00000040 00000040
+GPL, MAC3 c 0 after: 00030004 00030004
+GPL, MAC3 c 1 after: 00030004 00010000
+RTPT, OFX (SXY1) 0 after: 00000003 00000003
+RTPT, OFX (SXY1) 2 after: 00000001 00000003
+RTPT, OFX (SXY1) 4 after: 00000003 00000003
+RTPT, OFX (SXY1) 6 after: 00000001 00000003
+RTPT, OFX (SXY1) 8 after: 00000001 00000003
+RTPT, OFX (SXY1) 10 after: 00000001 00000003
+RTPT, OFX (SXY1) 12 after: 00000001 00000001
+RTPT, OFX (SXY2) 0 after: 00000003 00000003
+RTPT, OFX (SXY2) 2 after: 00000003 00000003
+RTPT, OFX (SXY2) 4 after: 00000001 00000003
+Done.
+```
+
+Output files that match an earlier run: [01STL.txt](/tests/raw/20260927T0000Z-5501a-card-d/cpu8/01STL.txt) (as run 20260926T0000Z-5501a-card-cpu8) · [04GJ1.txt](/tests/raw/20260927T0000Z-5501a-card-d/cpu8/04GJ1.txt) (as run 20260927T0000Z-5501a-card-1) · [05GK1.txt](/tests/raw/20260927T0000Z-5501a-card-d/cpu8/05GK1.txt) (as run 20260927T0000Z-5501a-card-1) · [06GK2.txt](/tests/raw/20260927T0000Z-5501a-card-d/cpu8/06GK2.txt) (as run 20260926T0000Z-5501a-card-cpu8) · [07GK3.txt](/tests/raw/20260927T0000Z-5501a-card-d/cpu8/07GK3.txt) (as run 20260927T0000Z-5501a-card-1) · [08GK4.txt](/tests/raw/20260927T0000Z-5501a-card-d/cpu8/08GK4.txt) (as run 20260927T0000Z-5501a-card-1) · [09GK5.txt](/tests/raw/20260927T0000Z-5501a-card-d/cpu8/09GK5.txt) (as run 20260927T0000Z-5501a-card-1) · [11GK7.txt](/tests/raw/20260927T0000Z-5501a-card-d/cpu8/11GK7.txt) (as run 20260927T0000Z-5501a-card-1).
+
+### 27 September 2026 (card-g2)
+
+[00RUN.txt](/tests/raw/20260927T0000Z-5501a-card-g2/cpu8/00RUN.txt):
+
+```
+===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+11 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 80022758 DCIC 00000000 BadVaddr 00000400 BDAM 00000000
+BPCM 00000000 SR 00000000 Cause 00000020 EPC 800232C4 PRId 00000002
+```
+
+[03UN3.txt](/tests/raw/20260927T0000Z-5501a-card-g2/cpu8/03UN3.txt):
+
+```
+===== 03 UN3 KSEG1 CODE 2 | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000400
+
+code from KSEG1 ($10 the load's address, $11 the store's):
+1 nop: 2497
+RAM lw: 2903
+RAM lhu: 2907
+RAM lbu: 2901
+RAM lw, lw: 4033
+RAM lw, use: 3715
+I_STAT lw: 2495
+I_STAT lw, lw: 3325
+GPUSTAT lw: 2495
+SPUSTAT lhu: 3995
+CDROM status lbu: 3011
+EXP1 lbu: 2904
+BIOS lw: 4708
+BIOS lbu: 2900
+scratchpad lw: 2495
+RAM sw: 3012
+RAM sh: 3012
+RAM sb: 3008
+RAM sw, sw: 3833
+RAM sw, RAM lw: 4039
+RAM lw, RAM sw: 4130
+GP0 sw: 2495
+GP0 sw, sw: 3103
+SPU voice 0 sh: 2495
+CDROM index sb: 2495
+scratchpad sw: 2491
+RAM sw, GP0 lw: 3628
+Done.
+```
+
+Output files that match an earlier run: [01STL.txt](/tests/raw/20260927T0000Z-5501a-card-g2/cpu8/01STL.txt) (as run 20260926T0000Z-5501a-card-cpu8) · [02LN2.txt](/tests/raw/20260927T0000Z-5501a-card-g2/cpu8/02LN2.txt) (as run 20260927T0000Z-5501a-card-d) · [04GJ1.txt](/tests/raw/20260927T0000Z-5501a-card-g2/cpu8/04GJ1.txt) (as run 20260927T0000Z-5501a-card-1) · [05GK1.txt](/tests/raw/20260927T0000Z-5501a-card-g2/cpu8/05GK1.txt) (as run 20260927T0000Z-5501a-card-1) · [06GK2.txt](/tests/raw/20260927T0000Z-5501a-card-g2/cpu8/06GK2.txt) (as run 20260927T0000Z-5501a-card-1) · [07GK3.txt](/tests/raw/20260927T0000Z-5501a-card-g2/cpu8/07GK3.txt) (as run 20260927T0000Z-5501a-card-1) · [08GK4.txt](/tests/raw/20260927T0000Z-5501a-card-g2/cpu8/08GK4.txt) (as run 20260927T0000Z-5501a-card-1) · [09GK5.txt](/tests/raw/20260927T0000Z-5501a-card-g2/cpu8/09GK5.txt) (as run 20260927T0000Z-5501a-card-1) · [10GK6.txt](/tests/raw/20260927T0000Z-5501a-card-g2/cpu8/10GK6.txt) (as run 20260927T0000Z-5501a-card-d) · [11GK7.txt](/tests/raw/20260927T0000Z-5501a-card-g2/cpu8/11GK7.txt) (as run 20260927T0000Z-5501a-card-1).
+
+### 27 September 2026 (card-g3)
+
+[00RUN.txt](/tests/raw/20260927T0000Z-5501a-card-g3/cpu8/00RUN.txt):
+
+```
+===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+11 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 8001F9D4 DCIC 00000000 BadVaddr 00000480 BDAM 00000000
+BPCM 00000000 SR 40000000 Cause 00000020 EPC 80020540 PRId 00000002
+```
+
+[02LN2.txt](/tests/raw/20260927T0000Z-5501a-card-g3/cpu8/02LN2.txt):
+
+```
+===== 02 LN2 LOAD LANDING 2 | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+the instruction on the cycle a RAM load lands (RAM lw at $10, n nops, the named one):
+lw, 5 nops, addu, nop: 1362
+lw, 5 nops, RAM lw, nop: 1680
+lw, 5 nops, lw of RAM 2, nop: 1667
+lw, 5 nops, scratchpad lw, nop: 1331
+lw, 5 nops, I_STAT lw, nop: 1520
+lw, 5 nops, BIOS lw, nop: 3647
+lw, 5 nops, RAM sw, nop: 1478
+lw, 5 nops, scratchpad sw, nop: 1332
+lw, 5 nops, GP0 sw, nop: 1332
+lw, 5 nops, lw, lw, nop: 2384
+lw, 6 nops, addu, nop: 1448
+lw, 6 nops, RAM lw, nop: 1760
+lw, 6 nops, lw of RAM 2, nop: 1760
+lw, 6 nops, scratchpad lw, nop: 1440
+lw, 6 nops, I_STAT lw, nop: 1624
+lw, 6 nops, BIOS lw, nop: 3721
+lw, 6 nops, RAM sw, nop: 1480
+lw, 6 nops, scratchpad sw, nop: 1432
+lw, 6 nops, GP0 sw, nop: 1433
+lw, 6 nops, lw, lw, nop: 2486
+lw, 7 nops, addu, nop: 1562
+lw, 7 nops, RAM lw, nop: 1886
+lw, 7 nops, lw of RAM 2, nop: 1885
+lw, 7 nops, scratchpad lw, nop: 1520
+lw, 7 nops, I_STAT lw, nop: 1726
+lw, 7 nops, BIOS lw, nop: 3822
+lw, 7 nops, RAM sw, nop: 1576
+lw, 7 nops, scratchpad sw, nop: 1542
+lw, 7 nops, GP0 sw, nop: 1540
+lw, 7 nops, lw, lw, nop: 2624
+Done.
+```
+
+[03UN3.txt](/tests/raw/20260927T0000Z-5501a-card-g3/cpu8/03UN3.txt):
+
+```
+===== 03 UN3 KSEG1 CODE 2 | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+code from KSEG1 ($10 the load's address, $11 the store's):
+1 nop: 2501
+RAM lw: 2902
+RAM lhu: 2899
+RAM lbu: 2904
+RAM lw, lw: 4037
+RAM lw, use: 3711
+I_STAT lw: 2495
+I_STAT lw, lw: 3325
+GPUSTAT lw: 2495
+SPUSTAT lhu: 3995
+CDROM status lbu: 3007
+EXP1 lbu: 2903
+BIOS lw: 4708
+BIOS lbu: 2904
+scratchpad lw: 2495
+RAM sw: 3010
+RAM sh: 3011
+RAM sb: 3019
+RAM sw, sw: 3826
+RAM sw, RAM lw: 4042
+RAM lw, RAM sw: 4127
+GP0 sw: 2495
+GP0 sw, sw: 3103
+SPU voice 0 sh: 2495
+CDROM index sb: 2495
+scratchpad sw: 2495
+RAM sw, GP0 lw: 3628
+Done.
+```
+
+Output files that match an earlier run: [01STL.txt](/tests/raw/20260927T0000Z-5501a-card-g3/cpu8/01STL.txt) (as run 20260927T0000Z-5501a-card-2) · [04GJ1.txt](/tests/raw/20260927T0000Z-5501a-card-g3/cpu8/04GJ1.txt) (as run 20260927T0000Z-5501a-card-2) · [05GK1.txt](/tests/raw/20260927T0000Z-5501a-card-g3/cpu8/05GK1.txt) (as run 20260927T0000Z-5501a-card-2) · [06GK2.txt](/tests/raw/20260927T0000Z-5501a-card-g3/cpu8/06GK2.txt) (as run 20260927T0000Z-5501a-card-2) · [07GK3.txt](/tests/raw/20260927T0000Z-5501a-card-g3/cpu8/07GK3.txt) (as run 20260927T0000Z-5501a-card-2) · [08GK4.txt](/tests/raw/20260927T0000Z-5501a-card-g3/cpu8/08GK4.txt) (as run 20260927T0000Z-5501a-card-2) · [09GK5.txt](/tests/raw/20260927T0000Z-5501a-card-g3/cpu8/09GK5.txt) (as run 20260927T0000Z-5501a-card-2) · [10GK6.txt](/tests/raw/20260927T0000Z-5501a-card-g3/cpu8/10GK6.txt) (as run 20260927T0000Z-5501a-card-2) · [11GK7.txt](/tests/raw/20260927T0000Z-5501a-card-g3/cpu8/11GK7.txt) (as run 20260927T0000Z-5501a-card-2).
+
+### 28 September 2026 (card-h)
+
+[00RUN.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu8/00RUN.txt):
+
+```
+===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+11 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 80020540 PRId 00000002
+```
+
+[02LN2.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu8/02LN2.txt):
+
+```
+===== 02 LN2 LOAD LANDING 2 | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+the instruction on the cycle a RAM load lands (RAM lw at $10, n nops, the named one):
+lw, 5 nops, addu, nop: 1362
+lw, 5 nops, RAM lw, nop: 1680
+lw, 5 nops, lw of RAM 2, nop: 1667
+lw, 5 nops, scratchpad lw, nop: 1331
+lw, 5 nops, I_STAT lw, nop: 1520
+lw, 5 nops, BIOS lw, nop: 3647
+lw, 5 nops, RAM sw, nop: 1478
+lw, 5 nops, scratchpad sw, nop: 1332
+lw, 5 nops, GP0 sw, nop: 1332
+lw, 5 nops, lw, lw, nop: 2382
+lw, 6 nops, addu, nop: 1448
+lw, 6 nops, RAM lw, nop: 1764
+lw, 6 nops, lw of RAM 2, nop: 1760
+lw, 6 nops, scratchpad lw, nop: 1441
+lw, 6 nops, I_STAT lw, nop: 1620
+lw, 6 nops, BIOS lw, nop: 3721
+lw, 6 nops, RAM sw, nop: 1477
+lw, 6 nops, scratchpad sw, nop: 1440
+lw, 6 nops, GP0 sw, nop: 1439
+lw, 6 nops, lw, lw, nop: 2488
+lw, 7 nops, addu, nop: 1562
+lw, 7 nops, RAM lw, nop: 1887
+lw, 7 nops, lw of RAM 2, nop: 1885
+lw, 7 nops, scratchpad lw, nop: 1526
+lw, 7 nops, I_STAT lw, nop: 1723
+lw, 7 nops, BIOS lw, nop: 3822
+lw, 7 nops, RAM sw, nop: 1572
+lw, 7 nops, scratchpad sw, nop: 1539
+lw, 7 nops, GP0 sw, nop: 1536
+lw, 7 nops, lw, lw, nop: 2604
+Done.
+```
+
+[03UN3.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu8/03UN3.txt):
+
+```
+===== 03 UN3 KSEG1 CODE 2 | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+code from KSEG1 ($10 the load's address, $11 the store's):
+1 nop: 2497
+RAM lw: 2903
+RAM lhu: 2907
+RAM lbu: 2901
+RAM lw, lw: 4033
+RAM lw, use: 3715
+I_STAT lw: 2495
+I_STAT lw, lw: 3325
+GPUSTAT lw: 2495
+SPUSTAT lhu: 3995
+CDROM status lbu: 3011
+EXP1 lbu: 2904
+BIOS lw: 4708
+BIOS lbu: 2900
+scratchpad lw: 2495
+RAM sw: 3012
+RAM sh: 3012
+RAM sb: 3008
+RAM sw, sw: 3833
+RAM sw, RAM lw: 4039
+RAM lw, RAM sw: 4130
+GP0 sw: 2495
+GP0 sw, sw: 3103
+SPU voice 0 sh: 2495
+CDROM index sb: 2495
+scratchpad sw: 2491
+RAM sw, GP0 lw: 3628
+Done.
+```
+
+[10GK6.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu8/10GK6.txt):
+
+```
+===== 10 GK6 GTE INPUTS AFTER 6 | 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):
+NCS, BBK (MAC3) c 4 after: 00010002 00030004
+NCS, BBK (MAC3) c 5 after: 00010002 00010002
+CDP, RGBC (MAC1) c 0 after: 00000040 00000040
+CDP, RGBC (MAC1) c 1 after: 00000040 00000040
+CDP, RGBC (MAC1) c 2 after: 00000040 00000040
+CDP, RGBC (MAC1) c 3 after: 00000040 00000040
+GPL, MAC3 c 0 after: 00030004 00030004
+GPL, MAC3 c 1 after: 00030004 00010000
+RTPT, OFX (SXY1) 0 after: 00000003 00000003
+RTPT, OFX (SXY1) 2 after: 00000003 00000003
+RTPT, OFX (SXY1) 4 after: 00000003 00000003
+RTPT, OFX (SXY1) 6 after: 00000001 00000003
+RTPT, OFX (SXY1) 8 after: 00000001 00000003
+RTPT, OFX (SXY1) 10 after: 00000001 00000003
+RTPT, OFX (SXY1) 12 after: 00000001 00000001
+RTPT, OFX (SXY2) 0 after: 00000003 00000003
+RTPT, OFX (SXY2) 2 after: 00000003 00000003
+RTPT, OFX (SXY2) 4 after: 00000001 00000003
+Done.
+```
+
+Output files that match an earlier run: [01STL.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu8/01STL.txt) (as run 20260927T0000Z-5501a-card-2) · [04GJ1.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu8/04GJ1.txt) (as run 20260927T0000Z-5501a-card-2) · [05GK1.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu8/05GK1.txt) (as run 20260927T0000Z-5501a-card-2) · [06GK2.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu8/06GK2.txt) (as run 20260927T0000Z-5501a-card-2) · [07GK3.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu8/07GK3.txt) (as run 20260927T0000Z-5501a-card-2) · [08GK4.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu8/08GK4.txt) (as run 20260927T0000Z-5501a-card-2) · [09GK5.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu8/09GK5.txt) (as run 20260927T0000Z-5501a-card-2) · [11GK7.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu8/11GK7.txt) (as run 20260927T0000Z-5501a-card-2).
+
+## References
+
+[^runh]: Hardware test run 20260928T0000Z-5501a-card-h on the SCPH-5501: [00RUN.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu8/00RUN.txt) · [01STL.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu8/01STL.txt) · [02LN2.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu8/02LN2.txt) · [03UN3.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu8/03UN3.txt) · [04GJ1.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu8/04GJ1.txt) · [05GK1.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu8/05GK1.txt) · [06GK2.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu8/06GK2.txt) · [07GK3.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu8/07GK3.txt) · [08GK4.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu8/08GK4.txt) · [09GK5.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu8/09GK5.txt) · [10GK6.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu8/10GK6.txt) · [11GK7.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu8/11GK7.txt).