psx.wiki

Store and Load Sequences: 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: Store and Load Sequences
+type: test
+summary: Measures stores and loads in sequence and the GTE inputs that commands read after they start.
+category: Hardware tests
+info: Machine = SCPH-5501
+info: Program = cpu_next6
+---
+
+## Overview
+
+The program follows on from [GTE Control Inputs and Store Widths](/tests/gte-control-inputs/). It times a store, a load and a store in sequence, a store after an I/O load, a load after a store with NOPs between, two loads with NOPs between, and calls that leave an instruction cache line early. Its timing rows are root counter 2 counts in system clock cycles for 100 turns of a loop body.[^runh]
+
+Its GTE groups narrow the gaps that earlier runs left as ranges, and a last group reads IR1 back by SWC2 after an MTC2. Each GTE row runs cold from RAM and then cached.[^runh]
+
+## Results
+
+### Two Loads with NOPs between
+
+A second RAM load waits until about five instructions after the first. With one to five NOPs between the two loads the loop took 1679 to 1687 cycles for 100 turns. From the sixth NOP on, each NOP added about a cycle a turn.[^runh]
+
+Table: A load followed by n NOPs and a second load (cycles for 100 turns)
+
+| NOPs between | RAM lw | I_STAT lw | BIOS lw |
+| --- | --- | --- | --- |
+| none, one load only | 960 | 746 | 2943 |
+| 0 | 1477 | 1148 | 5447 |
+| 1 | 1687 | 1361 | 5658 |
+| 3 | 1679 | 1345 | 5644 |
+| 5 | 1681 | 1548 | 5643 |
+| 8 | 1978 | | 5669 |
+| 12 | 2393 | | 5667 |
+
+Between two BIOS ROM loads, one to twelve NOPs all gave 5643 to 5669 cycles.[^runh]
+
+### A Load after a Store
+
+A RAM load after a RAM store waits for the store. With up to five NOPs between them the loop took 1472 to 1491 cycles. With six, seven and eight NOPs it took 1579, 1666 and 1769, so from the sixth NOP each one adds about a cycle a turn.[^runh]
+
+### Store Load Store
+
+A second RAM store after a store and a load adds about 4 cycles a turn: sw, lw, sw took 1882 cycles against 1473 for sw, lw, NOP. When the first store goes to the GPU's GP0 port the second store adds about 2 (1278 against 1077).[^runh]
+
+RAM stores of each width cost the same when no load is near them. One store a turn took 444 to 454 cycles and four stores 888 to 905.[^runh]
+
+### Instruction Cache Lines Left Early
+
+A call that returns from the first, second or third word of a cache line costs nearly as much cold as one that runs the whole line:[^runh]
+
+Table: Calls that leave a line early in counts with the timer overhead included
+
+| Call | Cold | Cached |
+| --- | --- | --- |
+| jr at word 0 | 26 | 5 |
+| jr at word 1 | 26 | 6 |
+| jr at word 2 | 25 | 12 |
+| 4 nops, then jr (2 lines) | 34 | 14 |
+| 8 nops, then jr (3 lines) | 44 | 13 |
+
+### SWC2 after MTC2
+
+SWC2 of IR1 stored the old value when it came at once or one NOP after an MTC2 of IR1, and the new value after two NOPs. SWC2 therefore needs the same two-instruction gap as MFC2.[^runh]
+
+### GTE Inputs Read Late
+
+The program narrowed several inputs that a command reads after it has started:[^runh]
+
+Table: Latest write after the command that still reaches it
+
+| Command | Input | Cold run | Cached run |
+| --- | --- | --- | --- |
+| RTPS | TRX, TRY | none | none |
+| RTPS | OFY | not at 4 or more | 5 NOPs after |
+| RTPS | DQA | 2 NOPs after | 8 NOPs after |
+| RTPS | DQB | | 7 NOPs after |
+| NCS | GBK | 1 NOP after | 3 NOPs after |
+| MVMVA, V2 | VZ2 | none | 1 NOP after |
+| CDP | RGBC | | 2 NOPs after |
+
+RTPS reads the translation vector TRX and TRY at its start, and the offset and depth registers OFY, DQA and DQB near its end.[^runh]
+
+## Runs
+
+### 26 September 2026 (card-cpu6)
+
+[00RUN.txt](/tests/raw/20260926T0000Z-5501a-card-cpu6/cpu6/00RUN.txt):
+
+```
+===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+10 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
+```
+
+[01SLS.txt](/tests/raw/20260926T0000Z-5501a-card-cpu6/cpu6/01SLS.txt)
+
+[02FLE.txt](/tests/raw/20260926T0000Z-5501a-card-cpu6/cpu6/02FLE.txt):
+
+```
+===== 02 FLE FILLS LEFT EARLY | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+i-cache fills left early, one call (timer overhead included):
+4 nops, then jr (2 lines): cold 26, cached 21, cold again 30
+8 nops, then jr (3 lines): cold 41, cached 36, cold again 41
+jr at word 0: cold 23, cached 23, cold again 23
+jr at word 1: cold 22, cached 17, cold again 22
+jr at word 2: cold 32, cached 27, cold again 32
+4 nops, jr at word 0 of the next line: cold 36, cached 15, cold again 32
+16 nops from word 0: cold 59, cached 21, cold again 59
+15 nops from word 1: cold 53, cached 20, cold again 53
+14 nops from word 2: cold 52, cached 19, cold again 52
+13 nops from word 3: cold 51, cached 18, cold again 51
+Done.
+```
+
+[03LNL.txt](/tests/raw/20260926T0000Z-5501a-card-cpu6/cpu6/03LNL.txt):
+
+```
+===== 03 LNL LOAD NOPS LOAD | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+a load, n nops, a load:
+RAM lw, nop: 969
+RAM lw, 0 nops, lw, nop: 1475
+RAM lw, 1 nops, lw, nop: 1669
+RAM lw, 2 nops, lw, nop: 1683
+RAM lw, 3 nops, lw, nop: 1684
+RAM lw, 5 nops, lw, nop: 1679
+RAM lw, 6 nops, lw, nop: 1771
+RAM lw, 7 nops, lw, nop: 1887
+RAM lw, 8 nops, lw, nop: 1963
+RAM lw, 9 nops, lw, nop: 2078
+RAM lw, 10 nops, lw, nop: 2185
+RAM lw, 12 nops, lw, nop: 2379
+I_STAT lw, nop: 747
+I_STAT lw, 0 nops, lw, nop: 1150
+I_STAT lw, 1 nops, lw, nop: 1345
+I_STAT lw, 2 nops, lw, nop: 1366
+I_STAT lw, 3 nops, lw, nop: 1362
+I_STAT lw, 5 nops, lw, nop: 1557
+GPUSTAT lw, nop: 725
+GPUSTAT lw, 0 nops, lw, nop: 1143
+GPUSTAT lw, 1 nops, lw, nop: 1345
+GPUSTAT lw, 2 nops, lw, nop: 1359
+GPUSTAT lw, 3 nops, lw, nop: 1362
+GPUSTAT lw, 5 nops, lw, nop: 1554
+BIOS lw, nop: 2944
+BIOS lw, 0 nops, lw, nop: 5452
+BIOS lw, 1 nops, lw, nop: 5646
+BIOS lw, 2 nops, lw, nop: 5663
+BIOS lw, 3 nops, lw, nop: 5659
+BIOS lw, 5 nops, lw, nop: 5653
+BIOS lw, 6 nops, lw, nop: 5652
+BIOS lw, 7 nops, lw, nop: 5662
+BIOS lw, 8 nops, lw, nop: 5655
+BIOS lw, 9 nops, lw, nop: 5670
+BIOS lw, 10 nops, lw, nop: 5663
+BIOS lw, 12 nops, lw, nop: 5673
+SPUSTAT lhu, nop: 2245
+SPUSTAT lhu, lhu, nop: 4252
+SPUSTAT lhu, 1 nop, lhu, nop: 4242
+SPUSTAT lhu, 2 nops, lhu, nop: 4247
+timer 1 lhu, nop: 725
+timer 1 lhu, lhu, nop: 1125
+timer 1 lhu, 1 nop, lhu, nop: 1325
+
+code from KSEG1, a load then n nops:
+RAM lw, 1 nop: 3526
+RAM lw, 3 nops: 4744
+RAM lw, 5 nops: 5967
+I_STAT lw, 1 nop: 3108
+I_STAT lw, 3 nops: 4328
+BIOS lw, 1 nop: 5299
+BIOS lw, 5 nops: 7745
+Done.
+```
+
+[04GE1.txt](/tests/raw/20260926T0000Z-5501a-card-cpu6/cpu6/04GE1.txt):
+
+```
+===== 04 GE1 GTE INPUTS 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):
+NCS, VXY0 (VY, MAC2) 0 before: 00000003 00000003
+NCS, VXY0 (VY, MAC2) 1 before: 00000003 00000003
+GPL, IR2 (IR0 1000h) 0 before: 00000002 00000002
+GPL, IR2 (IR0 1000h) 1 before: 00000004 00000004
+GPL, IR3 (IR0 1000h) 0 before: 00000004 00000004
+GPL, IR3 (IR0 1000h) 1 before: 00000004 00000004
+GPF, IR3 (IR0 1000h) 0 before: 00000004 00000004
+GPF, IR3 (IR0 1000h) 1 before: 00000004 00000004
+DPCT, RGB0 (RGB0) 0 before: 00030004 00030004
+DPCT, RGB0 (RGB0) 1 before: 00030004 00030004
+MVMVA TR, TRX (MAC1) 0 before: 00010002 00010002
+MVMVA TR, TRX (MAC1) 1 before: 00030004 00010002
+MVMVA TR, TRZ (MAC3) 0 before: 00030004 00030004
+MVMVA TR, TRZ (MAC3) 1 before: 00030004 00030004
+MVMVA BK, RBK (MAC1) 0 before: 00010002 00010002
+MVMVA BK, RBK (MAC1) 1 before: 00010002 00010002
+AVSZ3, ZSF3 (MAC0) 0 before: 00000800 00000800
+Done.
+```
+
+[05GE2.txt](/tests/raw/20260926T0000Z-5501a-card-cpu6/cpu6/05GE2.txt):
+
+```
+===== 05 GE2 GTE INPUTS 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):
+AVSZ3, ZSF3 (MAC0) 1 before: 00000C00 00000A00
+AVSZ4, ZSF4 (MAC0) 0 before: 00000C00 00000C00
+AVSZ4, ZSF4 (MAC0) 1 before: 00000E00 00000E00
+AVSZ4, SZ0 (MAC0) 0 before: 00304000 00304000
+AVSZ4, SZ0 (MAC0) 1 before: 00304000 00304000
+NCLIP, SXY1 (MAC0) 0 before: FFFFFFD0 FFFFFFD0
+NCLIP, SXY1 (MAC0) 1 before: FFFFFFD0 FFFFFFD0
+OP, IR3 (MAC1) 0 before: FFFFF002 FFFFF002
+OP, IR3 (MAC1) 1 before: FFFFF004 FFFFF004
+GPF, IR1 (IR0 1000h) 0 before: 00000002 00000002
+GPF, IR1 (IR0 1000h) 1 before: 00000002 00000002
+GPF, IR2 (IR0 1000h) 0 before: 00000002 00000002
+GPF, IR2 (IR0 1000h) 1 before: 00000004 00000004
+MVMVA IR, IR1 (MAC1) 0 before: 00000002 00000002
+MVMVA IR, IR1 (MAC1) 1 before: 00000002 00000002
+MVMVA IR, IR3 (MAC3) 0 before: 00000004 00000004
+MVMVA IR, IR3 (MAC3) 1 before: 00000004 00000004
+Done.
+```
+
+[06GF1.txt](/tests/raw/20260926T0000Z-5501a-card-cpu6/cpu6/06GF1.txt):
+
+```
+===== 06 GF1 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 5 after: 00000001 00000001
+RTPS, OFY 4 after: 00010000 00030000
+RTPS, OFY 5 after: 00010000 00030000
+RTPS, OFY 6 after: 00010000 00010000
+RTPS, OFY 7 after: 00010000 00010000
+RTPS, DQB 7 after: 00000010 00000030
+RTPS, DQA 2 after: 0000007F 0000007F
+RTPS, DQA 4 after: 0000003F 0000007F
+RTPS, DQA 6 after: 0000003F 0000007F
+RTPS, DQA 8 after: 0000003F 0000007F
+RTPS, H 0 after: 00000000 00000000
+RTPS, H 2 after: 00000000 00000000
+RTPS, H 4 after: 00000000 00000000
+RTPS, H 6 after: 00000000 00000000
+RTPS, TRX 0 after: 00010002 00010002
+RTPS, TRX 1 after: 00010002 00010002
+RTPS, TRX 2 after: 00010002 00010002
+RTPS, TRY 0 after: 00010002 00010002
+RTPS, TRY 1 after: 00010002 00010002
+RTPS, TRY 2 after: 00010002 00010002
+RTPS, VXY0 (VY, MAC2) 0 after: 00000001 00000003
+RTPS, VXY0 (VY, MAC2) 1 after: 00000001 00000001
+RTPT, TRZ 3 after: 00010002 00010002
+RTPT, VZ1 2 after: 00000002 00000002
+RTPT, VXY2 6 after: 00000002 00000002
+NCS, BBK 3 after: 00010002 00030004
+NCS, GBK 0 after: 00030004 00030004
+NCS, GBK 1 after: 00010002 00030004
+NCS, GBK 2 after: 00010002 00030004
+Done.
+```
+
+[07GF2.txt](/tests/raw/20260926T0000Z-5501a-card-cpu6/cpu6/07GF2.txt):
+
+```
+===== 07 GF2 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, GBK 3 after: 00010002 00030004
+NCS, GBK 4 after: 00010002 00010002
+NCS, GBK 5 after: 00010002 00010002
+NCS, GBK 6 after: 00010002 00010002
+NCS, VZ0 2 after: 00000002 00000002
+NCS, VXY0 (VY, MAC2) 0 after: 00000001 00000001
+NCS, VXY0 (VY, MAC2) 1 after: 00000001 00000001
+NCS, VXY0 (VY, MAC2) 2 after: 00000001 00000001
+CDP, RGBC 2 after: 00000040 00000080
+NCLIP, SXY2 0 after: FFFFFFE0 FFFFFFE0
+INTPL, IR2 (MAC2) 0 after: 00000002 00000002
+INTPL, IR2 (MAC2) 1 after: 00000002 00000002
+INTPL, IR2 (MAC2) 2 after: 00000002 00000002
+INTPL, IR2 (MAC2) 3 after: 00000002 00000002
+MVMVA V1, VZ1 0 after: 00000004 00000004
+MVMVA V1, VZ1 1 after: 00000004 00000004
+MVMVA V1, VZ1 2 after: 00000002 00000002
+MVMVA V2, VZ2 0 after: 00000002 00000004
+MVMVA V2, VZ2 1 after: 00000002 00000004
+MVMVA V2, VZ2 2 after: 00000002 00000002
+GPL, MAC3 0 after: 00030004 00010002
+GPL, MAC3 1 after: 00030004 00010000
+DPCT, RGB2 0 after: 00000020 00000040
+DPCT, RGB2 1 after: 00000020 00000040
+DPCT, RGB2 2 after: 00000020 00000020
+DPCT, RGB2 3 after: 00000020 00000020
+DPCT, RGB2 4 after: 00000020 00000020
+MVMVA TR, TRX (MAC1) 0 after: 00010002 00010002
+MVMVA TR, TRX (MAC1) 1 after: 00010002 00010002
+Done.
+```
+
+[08GF3.txt](/tests/raw/20260926T0000Z-5501a-card-cpu6/cpu6/08GF3.txt):
+
+```
+===== 08 GF3 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):
+MVMVA TR, TRX (MAC1) 2 after: 00010002 00010002
+MVMVA TR, TRX (MAC1) 3 after: 00010002 00010002
+MVMVA TR, TRZ (MAC3) 0 after: 00010002 00010002
+MVMVA TR, TRZ (MAC3) 1 after: 00010002 00010002
+MVMVA TR, TRZ (MAC3) 2 after: 00010002 00010002
+MVMVA TR, TRZ (MAC3) 3 after: 00010002 00010002
+MVMVA BK, BBK (MAC3) 0 after: 00010002 00010002
+MVMVA BK, BBK (MAC3) 1 after: 00010002 00010002
+MVMVA BK, BBK (MAC3) 2 after: 00010002 00010002
+MVMVA BK, BBK (MAC3) 3 after: 00010002 00010002
+AVSZ3, ZSF3 (MAC0) 0 after: 00000600 00000600
+AVSZ3, ZSF3 (MAC0) 1 after: 00000600 00000600
+AVSZ3, ZSF3 (MAC0) 2 after: 00000600 00000600
+AVSZ3, SZ3 (MAC0) 0 after: 00202000 00202000
+AVSZ3, SZ3 (MAC0) 1 after: 00202000 00202000
+AVSZ3, SZ3 (MAC0) 2 after: 00202000 00202000
+AVSZ4, SZ3 (MAC0) 0 after: 00302000 00302000
+AVSZ4, SZ3 (MAC0) 1 after: 00302000 00302000
+AVSZ4, SZ3 (MAC0) 2 after: 00302000 00302000
+NCLIP, SXY0 (MAC0) 0 after: FFFFFF30 FFFFFF30
+NCLIP, SXY0 (MAC0) 1 after: FFFFFF30 FFFFFF30
+NCLIP, SXY0 (MAC0) 2 after: FFFFFF30 FFFFFF30
+NCLIP, SXY1 (MAC0) 0 after: FFFFFFF0 FFFFFFF0
+NCLIP, SXY1 (MAC0) 1 after: FFFFFFF0 FFFFFFF0
+NCLIP, SXY1 (MAC0) 2 after: FFFFFFF0 FFFFFFF0
+NCLIP, SXY1 (MAC0) 3 after: FFFFFFF0 FFFFFFF0
+SQR, IR3 (MAC3) 0 after: 00000004 00000004
+SQR, IR3 (MAC3) 1 after: 00000004 00000004
+SQR, IR3 (MAC3) 2 after: 00000004 00000004
+Done.
+```
+
+[09GF4.txt](/tests/raw/20260926T0000Z-5501a-card-cpu6/cpu6/09GF4.txt):
+
+```
+===== 09 GF4 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):
+OP, IR3 (MAC1) 0 after: FFFFF002 FFFFF002
+OP, IR3 (MAC1) 1 after: FFFFF002 FFFFF002
+OP, IR3 (MAC1) 2 after: FFFFF002 FFFFF002
+OP, IR1 (MAC2) 0 after: FFFFF002 FFFFF002
+OP, IR1 (MAC2) 1 after: FFFFF002 FFFFF002
+OP, IR1 (MAC2) 2 after: FFFFF002 FFFFF002
+GPF, IR3 (IR0 1000h) 0 after: 00000002 00000002
+GPF, IR3 (IR0 1000h) 1 after: 00000002 00000002
+GPF, IR3 (IR0 1000h) 2 after: 00000002 00000002
+GPL, IR3 (IR0 1000h) 0 after: 00000002 00000002
+GPL, IR3 (IR0 1000h) 1 after: 00000002 00000002
+GPL, IR3 (IR0 1000h) 2 after: 00000002 00000002
+INTPL, IR1 (MAC1) 0 after: 00000002 00000002
+INTPL, IR1 (MAC1) 1 after: 00000002 00000002
+RTPS, VZ0 (MAC3) 0 after: 00000002 00000002
+RTPS, VZ0 (MAC3) 1 after: 00000002 00000002
+RTPS, VZ0 (MAC3) 2 after: 00000002 00000002
+RTPS, VZ0 (MAC3) 3 after: 00000002 00000002
+RTPS, VZ0 (MAC3) 4 after: 00000002 00000002
+RTPT, VZ0 (SZ1) 0 after: 00000002 00000002
+RTPT, VZ0 (SZ1) 1 after: 00000002 00000002
+RTPT, VZ0 (SZ1) 2 after: 00000002 00000002
+RTPT, VXY1 (MAC1) 0 after: 00000000 00000000
+RTPT, VXY1 (MAC1) 2 after: 00000000 00000000
+RTPT, VXY1 (MAC1) 4 after: 00000000 00000000
+MVMVA IR, IR3 (MAC3) 0 after: 00000002 00000004
+MVMVA IR, IR3 (MAC3) 1 after: 00000002 00000004
+MVMVA IR, IR3 (MAC3) 2 after: 00000002 00000002
+MVMVA IR, IR3 (MAC3) 3 after: 00000002 00000002
+Done.
+```
+
+[10SC2.txt](/tests/raw/20260926T0000Z-5501a-card-cpu6/cpu6/10SC2.txt):
+
+```
+===== 10 SC2 SWC2 AFTER MTC2 | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+swc2 of IR1 n nops after mtc2 (old 00010002, new 00030004; cold, cached):
+swc2 IR1, 0 nops after: 00000002 00000002
+swc2 IR1, 1 nops after: 00000002 00000002
+swc2 IR1, 2 nops after: 00000004 00000004
+swc2 IR1, 3 nops after: 00000004 00000004
+Done.
+```
+
+### 27 September 2026 (card-1)
+
+[00RUN.txt](/tests/raw/20260927T0000Z-5501a-card-1/cpu6/00RUN.txt):
+
+```
+===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+10 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 80025BF4 DCIC 00000000 BadVaddr 00000400 BDAM 00000000
+BPCM 00000000 SR 40000000 Cause 00000020 EPC 800267A8 PRId 00000002
+```
+
+[01SLS.txt](/tests/raw/20260927T0000Z-5501a-card-1/cpu6/01SLS.txt)
+
+[02FLE.txt](/tests/raw/20260927T0000Z-5501a-card-1/cpu6/02FLE.txt):
+
+```
+===== 02 FLE FILLS LEFT EARLY | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000400
+
+i-cache fills left early, one call (timer overhead included):
+4 nops, then jr (2 lines): cold 34, cached 16, cold again 34
+8 nops, then jr (3 lines): cold 44, cached 19, cold again 44
+jr at word 0: cold 26, cached 5, cold again 26
+jr at word 1: cold 26, cached 6, cold again 26
+jr at word 2: cold 25, cached 7, cold again 25
+4 nops, jr at word 0 of the next line: cold 37, cached 22, cold again 40
+16 nops from word 0: cold 62, cached 55, cold again 62
+15 nops from word 1: cold 61, cached 54, cold again 61
+14 nops from word 2: cold 55, cached 48, cold again 60
+13 nops from word 3: cold 57, cached 47, cold again 54
+Done.
+```
+
+[03LNL.txt](/tests/raw/20260927T0000Z-5501a-card-1/cpu6/03LNL.txt):
+
+```
+===== 03 LNL LOAD NOPS LOAD | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000400
+
+a load, n nops, a load:
+RAM lw, nop: 953
+RAM lw, 0 nops, lw, nop: 1473
+RAM lw, 1 nops, lw, nop: 1675
+RAM lw, 2 nops, lw, nop: 1672
+RAM lw, 3 nops, lw, nop: 1670
+RAM lw, 5 nops, lw, nop: 1675
+RAM lw, 6 nops, lw, nop: 1761
+RAM lw, 7 nops, lw, nop: 1882
+RAM lw, 8 nops, lw, nop: 1965
+RAM lw, 9 nops, lw, nop: 2066
+RAM lw, 10 nops, lw, nop: 2188
+RAM lw, 12 nops, lw, nop: 2371
+I_STAT lw, nop: 739
+I_STAT lw, 0 nops, lw, nop: 1141
+I_STAT lw, 1 nops, lw, nop: 1354
+I_STAT lw, 2 nops, lw, nop: 1348
+I_STAT lw, 3 nops, lw, nop: 1340
+I_STAT lw, 5 nops, lw, nop: 1541
+GPUSTAT lw, nop: 739
+GPUSTAT lw, 0 nops, lw, nop: 1141
+GPUSTAT lw, 1 nops, lw, nop: 1354
+GPUSTAT lw, 2 nops, lw, nop: 1333
+GPUSTAT lw, 3 nops, lw, nop: 1338
+GPUSTAT lw, 5 nops, lw, nop: 1541
+BIOS lw, nop: 2936
+BIOS lw, 0 nops, lw, nop: 5440
+BIOS lw, 1 nops, lw, nop: 5651
+BIOS lw, 2 nops, lw, nop: 5647
+BIOS lw, 3 nops, lw, nop: 5637
+BIOS lw, 5 nops, lw, nop: 5636
+BIOS lw, 6 nops, lw, nop: 5652
+BIOS lw, 7 nops, lw, nop: 5653
+BIOS lw, 8 nops, lw, nop: 5659
+BIOS lw, 9 nops, lw, nop: 5652
+BIOS lw, 10 nops, lw, nop: 5654
+BIOS lw, 12 nops, lw, nop: 5660
+SPUSTAT lhu, nop: 2244
+SPUSTAT lhu, lhu, nop: 4243
+SPUSTAT lhu, 1 nop, lhu, nop: 4241
+SPUSTAT lhu, 2 nops, lhu, nop: 4241
+timer 1 lhu, nop: 733
+timer 1 lhu, lhu, nop: 1126
+timer 1 lhu, 1 nop, lhu, nop: 1320
+
+code from KSEG1, a load then n nops:
+RAM lw, 1 nop: 3520
+RAM lw, 3 nops: 4741
+RAM lw, 5 nops: 5962
+I_STAT lw, 1 nop: 3103
+I_STAT lw, 3 nops: 4323
+BIOS lw, 1 nop: 5290
+BIOS lw, 5 nops: 7735
+Done.
+```
+
+[04GE1.txt](/tests/raw/20260927T0000Z-5501a-card-1/cpu6/04GE1.txt):
+
+```
+===== 04 GE1 GTE INPUTS 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):
+NCS, VXY0 (VY, MAC2) 0 before: 00000003 00000003
+NCS, VXY0 (VY, MAC2) 1 before: 00000003 00000003
+GPL, IR2 (IR0 1000h) 0 before: 00000002 00000002
+GPL, IR2 (IR0 1000h) 1 before: 00000004 00000004
+GPL, IR3 (IR0 1000h) 0 before: 00000004 00000004
+GPL, IR3 (IR0 1000h) 1 before: 00000004 00000004
+GPF, IR3 (IR0 1000h) 0 before: 00000004 00000004
+GPF, IR3 (IR0 1000h) 1 before: 00000004 00000004
+DPCT, RGB0 (RGB0) 0 before: 00030004 00030002
+DPCT, RGB0 (RGB0) 1 before: 00030004 00030004
+MVMVA TR, TRX (MAC1) 0 before: 00010002 00010002
+MVMVA TR, TRX (MAC1) 1 before: 00010002 00010002
+MVMVA TR, TRZ (MAC3) 0 before: 00030004 00030004
+MVMVA TR, TRZ (MAC3) 1 before: 00030004 00030004
+MVMVA BK, RBK (MAC1) 0 before: 00010002 00010002
+MVMVA BK, RBK (MAC1) 1 before: 00010002 00010002
+AVSZ3, ZSF3 (MAC0) 0 before: 00000800 00000800
+Done.
+```
+
+[05GE2.txt](/tests/raw/20260927T0000Z-5501a-card-1/cpu6/05GE2.txt):
+
+```
+===== 05 GE2 GTE INPUTS 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):
+AVSZ3, ZSF3 (MAC0) 1 before: 00000A00 00000A00
+AVSZ4, ZSF4 (MAC0) 0 before: 00000C00 00000C00
+AVSZ4, ZSF4 (MAC0) 1 before: 00001000 00000E00
+AVSZ4, SZ0 (MAC0) 0 before: 00304000 00304000
+AVSZ4, SZ0 (MAC0) 1 before: 00304000 00304000
+NCLIP, SXY1 (MAC0) 0 before: FFFFFFD0 FFFFFFD0
+NCLIP, SXY1 (MAC0) 1 before: FFFFFFD0 FFFFFFD0
+OP, IR3 (MAC1) 0 before: FFFFF002 FFFFF002
+OP, IR3 (MAC1) 1 before: FFFFF002 FFFFF002
+GPF, IR1 (IR0 1000h) 0 before: 00000002 00000002
+GPF, IR1 (IR0 1000h) 1 before: 00000004 00000004
+GPF, IR2 (IR0 1000h) 0 before: 00000002 00000002
+GPF, IR2 (IR0 1000h) 1 before: 00000004 00000004
+MVMVA IR, IR1 (MAC1) 0 before: 00000002 00000002
+MVMVA IR, IR1 (MAC1) 1 before: 00000002 00000002
+MVMVA IR, IR3 (MAC3) 0 before: 00000004 00000004
+MVMVA IR, IR3 (MAC3) 1 before: 00000004 00000004
+Done.
+```
+
+[06GF1.txt](/tests/raw/20260927T0000Z-5501a-card-1/cpu6/06GF1.txt):
+
+```
+===== 06 GF1 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 5 after: 00000001 00000001
+RTPS, OFY 4 after: 00010000 00030000
+RTPS, OFY 5 after: 00010000 00030000
+RTPS, OFY 6 after: 00010000 00010000
+RTPS, OFY 7 after: 00010000 00010000
+RTPS, DQB 7 after: 00000010 00000030
+RTPS, DQA 2 after: 0000007F 0000007F
+RTPS, DQA 4 after: 0000003F 0000007F
+RTPS, DQA 6 after: 0000003F 0000007F
+RTPS, DQA 8 after: 0000003F 0000007F
+RTPS, H 0 after: 00000000 00000000
+RTPS, H 2 after: 00000000 00000000
+RTPS, H 4 after: 00000000 00000000
+RTPS, H 6 after: 00000000 00000000
+RTPS, TRX 0 after: 00010002 00010002
+RTPS, TRX 1 after: 00010002 00010002
+RTPS, TRX 2 after: 00010002 00010002
+RTPS, TRY 0 after: 00010002 00010002
+RTPS, TRY 1 after: 00010002 00010002
+RTPS, TRY 2 after: 00010002 00010002
+RTPS, VXY0 (VY, MAC2) 0 after: 00000003 00000003
+RTPS, VXY0 (VY, MAC2) 1 after: 00000001 00000001
+RTPT, TRZ 3 after: 00010002 00010002
+RTPT, VZ1 2 after: 00000002 00000002
+RTPT, VXY2 6 after: 00000002 00000002
+NCS, BBK 3 after: 00010002 00030004
+NCS, GBK 0 after: 00030004 00030004
+NCS, GBK 1 after: 00030004 00030004
+NCS, GBK 2 after: 00010002 00030004
+Done.
+```
+
+[07GF2.txt](/tests/raw/20260927T0000Z-5501a-card-1/cpu6/07GF2.txt):
+
+```
+===== 07 GF2 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, GBK 3 after: 00010002 00030004
+NCS, GBK 4 after: 00010002 00010002
+NCS, GBK 5 after: 00010002 00010002
+NCS, GBK 6 after: 00010002 00010002
+NCS, VZ0 2 after: 00000002 00000002
+NCS, VXY0 (VY, MAC2) 0 after: 00000001 00000001
+NCS, VXY0 (VY, MAC2) 1 after: 00000001 00000001
+NCS, VXY0 (VY, MAC2) 2 after: 00000001 00000001
+CDP, RGBC 2 after: 00000040 00000080
+NCLIP, SXY2 0 after: FFFFFFC0 FFFFFFC0
+INTPL, IR2 (MAC2) 0 after: 00000002 00000002
+INTPL, IR2 (MAC2) 1 after: 00000002 00000002
+INTPL, IR2 (MAC2) 2 after: 00000002 00000002
+INTPL, IR2 (MAC2) 3 after: 00000002 00000002
+MVMVA V1, VZ1 0 after: 00000002 00000002
+MVMVA V1, VZ1 1 after: 00000002 00000002
+MVMVA V1, VZ1 2 after: 00000002 00000002
+MVMVA V2, VZ2 0 after: 00000002 00000004
+MVMVA V2, VZ2 1 after: 00000002 00000004
+MVMVA V2, VZ2 2 after: 00000002 00000002
+GPL, MAC3 0 after: 00030004 00010002
+GPL, MAC3 1 after: 00030004 00010000
+DPCT, RGB2 0 after: 00000020 00000020
+DPCT, RGB2 1 after: 00000020 00000020
+DPCT, RGB2 2 after: 00000020 00000020
+DPCT, RGB2 3 after: 00000020 00000020
+DPCT, RGB2 4 after: 00000020 00000020
+MVMVA TR, TRX (MAC1) 0 after: 00010002 00010002
+MVMVA TR, TRX (MAC1) 1 after: 00010002 00010002
+Done.
+```
+
+[08GF3.txt](/tests/raw/20260927T0000Z-5501a-card-1/cpu6/08GF3.txt):
+
+```
+===== 08 GF3 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):
+MVMVA TR, TRX (MAC1) 2 after: 00010002 00010002
+MVMVA TR, TRX (MAC1) 3 after: 00010002 00010002
+MVMVA TR, TRZ (MAC3) 0 after: 00010002 00010002
+MVMVA TR, TRZ (MAC3) 1 after: 00010002 00010002
+MVMVA TR, TRZ (MAC3) 2 after: 00010002 00010002
+MVMVA TR, TRZ (MAC3) 3 after: 00010002 00010002
+MVMVA BK, BBK (MAC3) 0 after: 00010002 00010002
+MVMVA BK, BBK (MAC3) 1 after: 00010002 00010002
+MVMVA BK, BBK (MAC3) 2 after: 00010002 00010002
+MVMVA BK, BBK (MAC3) 3 after: 00010002 00010002
+AVSZ3, ZSF3 (MAC0) 0 after: 00000600 00000600
+AVSZ3, ZSF3 (MAC0) 1 after: 00000600 00000600
+AVSZ3, ZSF3 (MAC0) 2 after: 00000600 00000600
+AVSZ3, SZ3 (MAC0) 0 after: 00202000 00202000
+AVSZ3, SZ3 (MAC0) 1 after: 00202000 00202000
+AVSZ3, SZ3 (MAC0) 2 after: 00202000 00202000
+AVSZ4, SZ3 (MAC0) 0 after: 00302000 00302000
+AVSZ4, SZ3 (MAC0) 1 after: 00302000 00302000
+AVSZ4, SZ3 (MAC0) 2 after: 00302000 00302000
+NCLIP, SXY0 (MAC0) 0 after: FFFFFF30 FFFFFF30
+NCLIP, SXY0 (MAC0) 1 after: FFFFFF30 FFFFFF30
+NCLIP, SXY0 (MAC0) 2 after: FFFFFF30 FFFFFF30
+NCLIP, SXY1 (MAC0) 0 after: FFFFFFF0 FFFFFFD0
+NCLIP, SXY1 (MAC0) 1 after: FFFFFFF0 FFFFFFD0
+NCLIP, SXY1 (MAC0) 2 after: FFFFFFF0 FFFFFFF0
+NCLIP, SXY1 (MAC0) 3 after: FFFFFFF0 FFFFFFF0
+SQR, IR3 (MAC3) 0 after: 00000004 00000004
+SQR, IR3 (MAC3) 1 after: 00000004 00000004
+SQR, IR3 (MAC3) 2 after: 00000004 00000004
+Done.
+```
+
+[09GF4.txt](/tests/raw/20260927T0000Z-5501a-card-1/cpu6/09GF4.txt):
+
+```
+===== 09 GF4 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):
+OP, IR3 (MAC1) 0 after: FFFFF002 FFFFF002
+OP, IR3 (MAC1) 1 after: FFFFF002 FFFFF002
+OP, IR3 (MAC1) 2 after: FFFFF002 FFFFF002
+OP, IR1 (MAC2) 0 after: FFFFF002 FFFFF002
+OP, IR1 (MAC2) 1 after: FFFFF002 FFFFF002
+OP, IR1 (MAC2) 2 after: FFFFF002 FFFFF002
+GPF, IR3 (IR0 1000h) 0 after: 00000002 00000002
+GPF, IR3 (IR0 1000h) 1 after: 00000002 00000002
+GPF, IR3 (IR0 1000h) 2 after: 00000002 00000002
+GPL, IR3 (IR0 1000h) 0 after: 00000002 00000002
+GPL, IR3 (IR0 1000h) 1 after: 00000002 00000002
+GPL, IR3 (IR0 1000h) 2 after: 00000002 00000002
+INTPL, IR1 (MAC1) 0 after: 00000002 00000002
+INTPL, IR1 (MAC1) 1 after: 00000002 00000002
+RTPS, VZ0 (MAC3) 0 after: 00000002 00000002
+RTPS, VZ0 (MAC3) 1 after: 00000002 00000002
+RTPS, VZ0 (MAC3) 2 after: 00000002 00000002
+RTPS, VZ0 (MAC3) 3 after: 00000002 00000002
+RTPS, VZ0 (MAC3) 4 after: 00000002 00000002
+RTPT, VZ0 (SZ1) 0 after: 00000002 00000002
+RTPT, VZ0 (SZ1) 1 after: 00000002 00000002
+RTPT, VZ0 (SZ1) 2 after: 00000002 00000002
+RTPT, VXY1 (MAC1) 0 after: 00000000 00000000
+RTPT, VXY1 (MAC1) 2 after: 00000000 00000000
+RTPT, VXY1 (MAC1) 4 after: 00000000 00000000
+MVMVA IR, IR3 (MAC3) 0 after: 00000004 00000004
+MVMVA IR, IR3 (MAC3) 1 after: 00000002 00000004
+MVMVA IR, IR3 (MAC3) 2 after: 00000002 00000002
+MVMVA IR, IR3 (MAC3) 3 after: 00000002 00000002
+Done.
+```
+
+[10SC2.txt](/tests/raw/20260927T0000Z-5501a-card-1/cpu6/10SC2.txt):
+
+```
+===== 10 SC2 SWC2 AFTER MTC2 | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000400
+
+swc2 of IR1 n nops after mtc2 (old 00010002, new 00030004; cold, cached):
+swc2 IR1, 0 nops after: 00000002 00000002
+swc2 IR1, 1 nops after: 00000002 00000002
+swc2 IR1, 2 nops after: 00000004 00000004
+swc2 IR1, 3 nops after: 00000004 00000004
+Done.
+```
+
+### 27 September 2026 (card-2)
+
+[00RUN.txt](/tests/raw/20260927T0000Z-5501a-card-2/cpu6/00RUN.txt):
+
+```
+===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+10 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 80025C5C DCIC 00000000 BadVaddr 00000480 BDAM 00000000
+BPCM 00000000 SR 40000000 Cause 00000020 EPC 800267C8 PRId 00000002
+```
+
+[01SLS.txt](/tests/raw/20260927T0000Z-5501a-card-2/cpu6/01SLS.txt)
+
+[02FLE.txt](/tests/raw/20260927T0000Z-5501a-card-2/cpu6/02FLE.txt):
+
+```
+===== 02 FLE FILLS LEFT EARLY | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+i-cache fills left early, one call (timer overhead included):
+4 nops, then jr (2 lines): cold 34, cached 14, cold again 34
+8 nops, then jr (3 lines): cold 44, cached 13, cold again 44
+jr at word 0: cold 26, cached 5, cold again 32
+jr at word 1: cold 26, cached 6, cold again 26
+jr at word 2: cold 25, cached 12, cold again 25
+4 nops, jr at word 0 of the next line: cold 35, cached 34, cold again 35
+16 nops from word 0: cold 62, cached 55, cold again 62
+15 nops from word 1: cold 61, cached 54, cold again 65
+14 nops from word 2: cold 55, cached 48, cold again 55
+13 nops from word 3: cold 54, cached 47, cold again 54
+Done.
+```
+
+[03LNL.txt](/tests/raw/20260927T0000Z-5501a-card-2/cpu6/03LNL.txt):
+
+```
+===== 03 LNL LOAD NOPS LOAD | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+a load, n nops, a load:
+RAM lw, nop: 963
+RAM lw, 0 nops, lw, nop: 1476
+RAM lw, 1 nops, lw, nop: 1681
+RAM lw, 2 nops, lw, nop: 1679
+RAM lw, 3 nops, lw, nop: 1673
+RAM lw, 5 nops, lw, nop: 1690
+RAM lw, 6 nops, lw, nop: 1770
+RAM lw, 7 nops, lw, nop: 1892
+RAM lw, 8 nops, lw, nop: 1975
+RAM lw, 9 nops, lw, nop: 2072
+RAM lw, 10 nops, lw, nop: 2189
+RAM lw, 12 nops, lw, nop: 2389
+I_STAT lw, nop: 746
+I_STAT lw, 0 nops, lw, nop: 1148
+I_STAT lw, 1 nops, lw, nop: 1361
+I_STAT lw, 2 nops, lw, nop: 1355
+I_STAT lw, 3 nops, lw, nop: 1345
+I_STAT lw, 5 nops, lw, nop: 1548
+GPUSTAT lw, nop: 746
+GPUSTAT lw, 0 nops, lw, nop: 1148
+GPUSTAT lw, 1 nops, lw, nop: 1361
+GPUSTAT lw, 2 nops, lw, nop: 1340
+GPUSTAT lw, 3 nops, lw, nop: 1345
+GPUSTAT lw, 5 nops, lw, nop: 1548
+BIOS lw, nop: 2943
+BIOS lw, 0 nops, lw, nop: 5449
+BIOS lw, 1 nops, lw, nop: 5660
+BIOS lw, 2 nops, lw, nop: 5654
+BIOS lw, 3 nops, lw, nop: 5644
+BIOS lw, 5 nops, lw, nop: 5643
+BIOS lw, 6 nops, lw, nop: 5659
+BIOS lw, 7 nops, lw, nop: 5660
+BIOS lw, 8 nops, lw, nop: 5668
+BIOS lw, 9 nops, lw, nop: 5659
+BIOS lw, 10 nops, lw, nop: 5658
+BIOS lw, 12 nops, lw, nop: 5673
+SPUSTAT lhu, nop: 2251
+SPUSTAT lhu, lhu, nop: 4250
+SPUSTAT lhu, 1 nop, lhu, nop: 4248
+SPUSTAT lhu, 2 nops, lhu, nop: 4254
+timer 1 lhu, nop: 727
+timer 1 lhu, lhu, nop: 1127
+timer 1 lhu, 1 nop, lhu, nop: 1334
+
+code from KSEG1, a load then n nops:
+RAM lw, 1 nop: 3524
+RAM lw, 3 nops: 4746
+RAM lw, 5 nops: 5973
+I_STAT lw, 1 nop: 3110
+I_STAT lw, 3 nops: 4329
+BIOS lw, 1 nop: 5297
+BIOS lw, 5 nops: 7744
+Done.
+```
+
+[04GE1.txt](/tests/raw/20260927T0000Z-5501a-card-2/cpu6/04GE1.txt):
+
+```
+===== 04 GE1 GTE INPUTS 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):
+NCS, VXY0 (VY, MAC2) 0 before: 00000003 00000003
+NCS, VXY0 (VY, MAC2) 1 before: 00000003 00000003
+GPL, IR2 (IR0 1000h) 0 before: 00000002 00000002
+GPL, IR2 (IR0 1000h) 1 before: 00000004 00000004
+GPL, IR3 (IR0 1000h) 0 before: 00000004 00000004
+GPL, IR3 (IR0 1000h) 1 before: 00000004 00000004
+GPF, IR3 (IR0 1000h) 0 before: 00000004 00000004
+GPF, IR3 (IR0 1000h) 1 before: 00000004 00000004
+DPCT, RGB0 (RGB0) 0 before: 00030004 00030002
+DPCT, RGB0 (RGB0) 1 before: 00030004 00030004
+MVMVA TR, TRX (MAC1) 0 before: 00010002 00010002
+MVMVA TR, TRX (MAC1) 1 before: 00010002 00010002
+MVMVA TR, TRZ (MAC3) 0 before: 00030004 00030004
+MVMVA TR, TRZ (MAC3) 1 before: 00030004 00030004
+MVMVA BK, RBK (MAC1) 0 before: 00010002 00010002
+MVMVA BK, RBK (MAC1) 1 before: 00010002 00010002
+AVSZ3, ZSF3 (MAC0) 0 before: 00000800 00000800
+Done.
+```
+
+[05GE2.txt](/tests/raw/20260927T0000Z-5501a-card-2/cpu6/05GE2.txt):
+
+```
+===== 05 GE2 GTE INPUTS 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):
+AVSZ3, ZSF3 (MAC0) 1 before: 00000A00 00000A00
+AVSZ4, ZSF4 (MAC0) 0 before: 00000C00 00000C00
+AVSZ4, ZSF4 (MAC0) 1 before: 00001000 00000E00
+AVSZ4, SZ0 (MAC0) 0 before: 00304000 00304000
+AVSZ4, SZ0 (MAC0) 1 before: 00304000 00304000
+NCLIP, SXY1 (MAC0) 0 before: FFFFFFD0 FFFFFFD0
+NCLIP, SXY1 (MAC0) 1 before: FFFFFFD0 FFFFFFD0
+OP, IR3 (MAC1) 0 before: FFFFF002 FFFFF002
+OP, IR3 (MAC1) 1 before: FFFFF002 FFFFF002
+GPF, IR1 (IR0 1000h) 0 before: 00000002 00000002
+GPF, IR1 (IR0 1000h) 1 before: 00000004 00000004
+GPF, IR2 (IR0 1000h) 0 before: 00000002 00000002
+GPF, IR2 (IR0 1000h) 1 before: 00000004 00000004
+MVMVA IR, IR1 (MAC1) 0 before: 00000002 00000002
+MVMVA IR, IR1 (MAC1) 1 before: 00000002 00000002
+MVMVA IR, IR3 (MAC3) 0 before: 00000004 00000004
+MVMVA IR, IR3 (MAC3) 1 before: 00000004 00000004
+Done.
+```
+
+[06GF1.txt](/tests/raw/20260927T0000Z-5501a-card-2/cpu6/06GF1.txt):
+
+```
+===== 06 GF1 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 5 after: 00000001 00000001
+RTPS, OFY 4 after: 00010000 00030000
+RTPS, OFY 5 after: 00010000 00030000
+RTPS, OFY 6 after: 00010000 00010000
+RTPS, OFY 7 after: 00010000 00010000
+RTPS, DQB 7 after: 00000010 00000030
+RTPS, DQA 2 after: 0000007F 0000007F
+RTPS, DQA 4 after: 0000003F 0000007F
+RTPS, DQA 6 after: 0000003F 0000007F
+RTPS, DQA 8 after: 0000003F 0000007F
+RTPS, H 0 after: 00000000 00000000
+RTPS, H 2 after: 00000000 00000000
+RTPS, H 4 after: 00000000 00000000
+RTPS, H 6 after: 00000000 00000000
+RTPS, TRX 0 after: 00010002 00010002
+RTPS, TRX 1 after: 00010002 00010002
+RTPS, TRX 2 after: 00010002 00010002
+RTPS, TRY 0 after: 00010002 00010002
+RTPS, TRY 1 after: 00010002 00010002
+RTPS, TRY 2 after: 00010002 00010002
+RTPS, VXY0 (VY, MAC2) 0 after: 00000003 00000003
+RTPS, VXY0 (VY, MAC2) 1 after: 00000001 00000001
+RTPT, TRZ 3 after: 00010002 00010002
+RTPT, VZ1 2 after: 00000002 00000002
+RTPT, VXY2 6 after: 00000002 00000002
+NCS, BBK 3 after: 00010002 00030004
+NCS, GBK 0 after: 00030004 00030004
+NCS, GBK 1 after: 00030004 00030004
+NCS, GBK 2 after: 00010002 00030004
+Done.
+```
+
+[07GF2.txt](/tests/raw/20260927T0000Z-5501a-card-2/cpu6/07GF2.txt):
+
+```
+===== 07 GF2 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, GBK 3 after: 00010002 00030004
+NCS, GBK 4 after: 00010002 00010002
+NCS, GBK 5 after: 00010002 00010002
+NCS, GBK 6 after: 00010002 00010002
+NCS, VZ0 2 after: 00000002 00000002
+NCS, VXY0 (VY, MAC2) 0 after: 00000001 00000001
+NCS, VXY0 (VY, MAC2) 1 after: 00000001 00000001
+NCS, VXY0 (VY, MAC2) 2 after: 00000001 00000001
+CDP, RGBC 2 after: 00000040 00000080
+NCLIP, SXY2 0 after: FFFFFFC0 FFFFFFC0
+INTPL, IR2 (MAC2) 0 after: 00000002 00000002
+INTPL, IR2 (MAC2) 1 after: 00000002 00000002
+INTPL, IR2 (MAC2) 2 after: 00000002 00000002
+INTPL, IR2 (MAC2) 3 after: 00000002 00000002
+MVMVA V1, VZ1 0 after: 00000002 00000002
+MVMVA V1, VZ1 1 after: 00000002 00000002
+MVMVA V1, VZ1 2 after: 00000002 00000002
+MVMVA V2, VZ2 0 after: 00000002 00000004
+MVMVA V2, VZ2 1 after: 00000002 00000004
+MVMVA V2, VZ2 2 after: 00000002 00000002
+GPL, MAC3 0 after: 00030004 00010002
+GPL, MAC3 1 after: 00030004 00010000
+DPCT, RGB2 0 after: 00000020 00000020
+DPCT, RGB2 1 after: 00000020 00000020
+DPCT, RGB2 2 after: 00000020 00000020
+DPCT, RGB2 3 after: 00000020 00000020
+DPCT, RGB2 4 after: 00000020 00000020
+MVMVA TR, TRX (MAC1) 0 after: 00010002 00010002
+MVMVA TR, TRX (MAC1) 1 after: 00010002 00010002
+Done.
+```
+
+[08GF3.txt](/tests/raw/20260927T0000Z-5501a-card-2/cpu6/08GF3.txt):
+
+```
+===== 08 GF3 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):
+MVMVA TR, TRX (MAC1) 2 after: 00010002 00010002
+MVMVA TR, TRX (MAC1) 3 after: 00010002 00010002
+MVMVA TR, TRZ (MAC3) 0 after: 00010002 00010002
+MVMVA TR, TRZ (MAC3) 1 after: 00010002 00010002
+MVMVA TR, TRZ (MAC3) 2 after: 00010002 00010002
+MVMVA TR, TRZ (MAC3) 3 after: 00010002 00010002
+MVMVA BK, BBK (MAC3) 0 after: 00010002 00010002
+MVMVA BK, BBK (MAC3) 1 after: 00010002 00010002
+MVMVA BK, BBK (MAC3) 2 after: 00010002 00010002
+MVMVA BK, BBK (MAC3) 3 after: 00010002 00010002
+AVSZ3, ZSF3 (MAC0) 0 after: 00000600 00000600
+AVSZ3, ZSF3 (MAC0) 1 after: 00000600 00000600
+AVSZ3, ZSF3 (MAC0) 2 after: 00000600 00000600
+AVSZ3, SZ3 (MAC0) 0 after: 00202000 00202000
+AVSZ3, SZ3 (MAC0) 1 after: 00202000 00202000
+AVSZ3, SZ3 (MAC0) 2 after: 00202000 00202000
+AVSZ4, SZ3 (MAC0) 0 after: 00302000 00302000
+AVSZ4, SZ3 (MAC0) 1 after: 00302000 00302000
+AVSZ4, SZ3 (MAC0) 2 after: 00302000 00302000
+NCLIP, SXY0 (MAC0) 0 after: FFFFFF30 FFFFFF30
+NCLIP, SXY0 (MAC0) 1 after: FFFFFF30 FFFFFF30
+NCLIP, SXY0 (MAC0) 2 after: FFFFFF30 FFFFFF30
+NCLIP, SXY1 (MAC0) 0 after: FFFFFFF0 FFFFFFD0
+NCLIP, SXY1 (MAC0) 1 after: FFFFFFF0 FFFFFFD0
+NCLIP, SXY1 (MAC0) 2 after: FFFFFFF0 FFFFFFF0
+NCLIP, SXY1 (MAC0) 3 after: FFFFFFF0 FFFFFFF0
+SQR, IR3 (MAC3) 0 after: 00000004 00000004
+SQR, IR3 (MAC3) 1 after: 00000004 00000004
+SQR, IR3 (MAC3) 2 after: 00000004 00000004
+Done.
+```
+
+[09GF4.txt](/tests/raw/20260927T0000Z-5501a-card-2/cpu6/09GF4.txt):
+
+```
+===== 09 GF4 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):
+OP, IR3 (MAC1) 0 after: FFFFF002 FFFFF002
+OP, IR3 (MAC1) 1 after: FFFFF002 FFFFF002
+OP, IR3 (MAC1) 2 after: FFFFF002 FFFFF002
+OP, IR1 (MAC2) 0 after: FFFFF002 FFFFF002
+OP, IR1 (MAC2) 1 after: FFFFF002 FFFFF002
+OP, IR1 (MAC2) 2 after: FFFFF002 FFFFF002
+GPF, IR3 (IR0 1000h) 0 after: 00000002 00000002
+GPF, IR3 (IR0 1000h) 1 after: 00000002 00000002
+GPF, IR3 (IR0 1000h) 2 after: 00000002 00000002
+GPL, IR3 (IR0 1000h) 0 after: 00000002 00000002
+GPL, IR3 (IR0 1000h) 1 after: 00000002 00000002
+GPL, IR3 (IR0 1000h) 2 after: 00000002 00000002
+INTPL, IR1 (MAC1) 0 after: 00000002 00000002
+INTPL, IR1 (MAC1) 1 after: 00000002 00000002
+RTPS, VZ0 (MAC3) 0 after: 00000002 00000002
+RTPS, VZ0 (MAC3) 1 after: 00000002 00000002
+RTPS, VZ0 (MAC3) 2 after: 00000002 00000002
+RTPS, VZ0 (MAC3) 3 after: 00000002 00000002
+RTPS, VZ0 (MAC3) 4 after: 00000002 00000002
+RTPT, VZ0 (SZ1) 0 after: 00000002 00000002
+RTPT, VZ0 (SZ1) 1 after: 00000002 00000002
+RTPT, VZ0 (SZ1) 2 after: 00000002 00000002
+RTPT, VXY1 (MAC1) 0 after: 00000000 00000000
+RTPT, VXY1 (MAC1) 2 after: 00000000 00000000
+RTPT, VXY1 (MAC1) 4 after: 00000000 00000000
+MVMVA IR, IR3 (MAC3) 0 after: 00000004 00000004
+MVMVA IR, IR3 (MAC3) 1 after: 00000002 00000004
+MVMVA IR, IR3 (MAC3) 2 after: 00000002 00000002
+MVMVA IR, IR3 (MAC3) 3 after: 00000002 00000002
+Done.
+```
+
+Output files that match an earlier run: [10SC2.txt](/tests/raw/20260927T0000Z-5501a-card-2/cpu6/10SC2.txt) (as run 20260926T0000Z-5501a-card-cpu6).
+
+### 27 September 2026 (card-d)
+
+[00RUN.txt](/tests/raw/20260927T0000Z-5501a-card-d/cpu6/00RUN.txt):
+
+```
+===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+10 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 00000400 BDAM 00000000
+BPCM 00000000 SR 40000000 Cause 00000020 EPC 800267C8 PRId 00000002
+```
+
+[01SLS.txt](/tests/raw/20260927T0000Z-5501a-card-d/cpu6/01SLS.txt)
+
+[02FLE.txt](/tests/raw/20260927T0000Z-5501a-card-d/cpu6/02FLE.txt):
+
+```
+===== 02 FLE FILLS LEFT EARLY | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000400
+
+i-cache fills left early, one call (timer overhead included):
+4 nops, then jr (2 lines): cold 34, cached 14, cold again 34
+8 nops, then jr (3 lines): cold 44, cached 13, cold again 44
+jr at word 0: cold 26, cached 5, cold again 32
+jr at word 1: cold 26, cached 6, cold again 26
+jr at word 2: cold 25, cached 12, cold again 25
+4 nops, jr at word 0 of the next line: cold 35, cached 34, cold again 35
+16 nops from word 0: cold 62, cached 55, cold again 62
+15 nops from word 1: cold 61, cached 54, cold again 65
+14 nops from word 2: cold 55, cached 48, cold again 55
+13 nops from word 3: cold 54, cached 47, cold again 54
+Done.
+```
+
+[03LNL.txt](/tests/raw/20260927T0000Z-5501a-card-d/cpu6/03LNL.txt):
+
+```
+===== 03 LNL LOAD NOPS LOAD | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000400
+
+a load, n nops, a load:
+RAM lw, nop: 963
+RAM lw, 0 nops, lw, nop: 1476
+RAM lw, 1 nops, lw, nop: 1681
+RAM lw, 2 nops, lw, nop: 1679
+RAM lw, 3 nops, lw, nop: 1673
+RAM lw, 5 nops, lw, nop: 1690
+RAM lw, 6 nops, lw, nop: 1770
+RAM lw, 7 nops, lw, nop: 1892
+RAM lw, 8 nops, lw, nop: 1975
+RAM lw, 9 nops, lw, nop: 2072
+RAM lw, 10 nops, lw, nop: 2189
+RAM lw, 12 nops, lw, nop: 2389
+I_STAT lw, nop: 746
+I_STAT lw, 0 nops, lw, nop: 1148
+I_STAT lw, 1 nops, lw, nop: 1361
+I_STAT lw, 2 nops, lw, nop: 1355
+I_STAT lw, 3 nops, lw, nop: 1345
+I_STAT lw, 5 nops, lw, nop: 1548
+GPUSTAT lw, nop: 746
+GPUSTAT lw, 0 nops, lw, nop: 1148
+GPUSTAT lw, 1 nops, lw, nop: 1361
+GPUSTAT lw, 2 nops, lw, nop: 1340
+GPUSTAT lw, 3 nops, lw, nop: 1345
+GPUSTAT lw, 5 nops, lw, nop: 1548
+BIOS lw, nop: 2943
+BIOS lw, 0 nops, lw, nop: 5449
+BIOS lw, 1 nops, lw, nop: 5660
+BIOS lw, 2 nops, lw, nop: 5654
+BIOS lw, 3 nops, lw, nop: 5644
+BIOS lw, 5 nops, lw, nop: 5643
+BIOS lw, 6 nops, lw, nop: 5659
+BIOS lw, 7 nops, lw, nop: 5660
+BIOS lw, 8 nops, lw, nop: 5668
+BIOS lw, 9 nops, lw, nop: 5659
+BIOS lw, 10 nops, lw, nop: 5658
+BIOS lw, 12 nops, lw, nop: 5673
+SPUSTAT lhu, nop: 2251
+SPUSTAT lhu, lhu, nop: 4250
+SPUSTAT lhu, 1 nop, lhu, nop: 4248
+SPUSTAT lhu, 2 nops, lhu, nop: 4254
+timer 1 lhu, nop: 727
+timer 1 lhu, lhu, nop: 1127
+timer 1 lhu, 1 nop, lhu, nop: 1334
+
+code from KSEG1, a load then n nops:
+RAM lw, 1 nop: 3524
+RAM lw, 3 nops: 4746
+RAM lw, 5 nops: 5973
+I_STAT lw, 1 nop: 3110
+I_STAT lw, 3 nops: 4329
+BIOS lw, 1 nop: 5297
+BIOS lw, 5 nops: 7744
+Done.
+```
+
+[08GF3.txt](/tests/raw/20260927T0000Z-5501a-card-d/cpu6/08GF3.txt):
+
+```
+===== 08 GF3 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):
+MVMVA TR, TRX (MAC1) 2 after: 00010002 00010002
+MVMVA TR, TRX (MAC1) 3 after: 00010002 00010002
+MVMVA TR, TRZ (MAC3) 0 after: 00010002 00010002
+MVMVA TR, TRZ (MAC3) 1 after: 00010002 00010002
+MVMVA TR, TRZ (MAC3) 2 after: 00010002 00010002
+MVMVA TR, TRZ (MAC3) 3 after: 00010002 00010002
+MVMVA BK, BBK (MAC3) 0 after: 00010002 00010002
+MVMVA BK, BBK (MAC3) 1 after: 00010002 00010002
+MVMVA BK, BBK (MAC3) 2 after: 00010002 00010002
+MVMVA BK, BBK (MAC3) 3 after: 00010002 00010002
+AVSZ3, ZSF3 (MAC0) 0 after: 00000600 00000600
+AVSZ3, ZSF3 (MAC0) 1 after: 00000600 00000600
+AVSZ3, ZSF3 (MAC0) 2 after: 00000600 00000600
+AVSZ3, SZ3 (MAC0) 0 after: 00202000 00202000
+AVSZ3, SZ3 (MAC0) 1 after: 00202000 00202000
+AVSZ3, SZ3 (MAC0) 2 after: 00202000 00202000
+AVSZ4, SZ3 (MAC0) 0 after: 00302000 00302000
+AVSZ4, SZ3 (MAC0) 1 after: 00302000 00302000
+AVSZ4, SZ3 (MAC0) 2 after: 00302000 00302000
+NCLIP, SXY0 (MAC0) 0 after: FFFFFF30 FFFFFF30
+NCLIP, SXY0 (MAC0) 1 after: FFFFFF30 FFFFFF30
+NCLIP, SXY0 (MAC0) 2 after: FFFFFF30 FFFFFF30
+NCLIP, SXY1 (MAC0) 0 after: FFFFFFF0 FFFFFFD0
+NCLIP, SXY1 (MAC0) 1 after: FFFFFFF0 FFFFFFF0
+NCLIP, SXY1 (MAC0) 2 after: FFFFFFF0 FFFFFFF0
+NCLIP, SXY1 (MAC0) 3 after: FFFFFFF0 FFFFFFF0
+SQR, IR3 (MAC3) 0 after: 00000004 00000004
+SQR, IR3 (MAC3) 1 after: 00000004 00000004
+SQR, IR3 (MAC3) 2 after: 00000004 00000004
+Done.
+```
+
+Output files that match an earlier run: [04GE1.txt](/tests/raw/20260927T0000Z-5501a-card-d/cpu6/04GE1.txt) (as run 20260927T0000Z-5501a-card-1) · [05GE2.txt](/tests/raw/20260927T0000Z-5501a-card-d/cpu6/05GE2.txt) (as run 20260927T0000Z-5501a-card-1) · [06GF1.txt](/tests/raw/20260927T0000Z-5501a-card-d/cpu6/06GF1.txt) (as run 20260927T0000Z-5501a-card-1) · [07GF2.txt](/tests/raw/20260927T0000Z-5501a-card-d/cpu6/07GF2.txt) (as run 20260927T0000Z-5501a-card-1) · [09GF4.txt](/tests/raw/20260927T0000Z-5501a-card-d/cpu6/09GF4.txt) (as run 20260927T0000Z-5501a-card-1) · [10SC2.txt](/tests/raw/20260927T0000Z-5501a-card-d/cpu6/10SC2.txt) (as run 20260927T0000Z-5501a-card-1).
+
+### 27 September 2026 (card-g2)
+
+[01SLS.txt](/tests/raw/20260927T0000Z-5501a-card-g2/cpu6/01SLS.txt)
+
+[02FLE.txt](/tests/raw/20260927T0000Z-5501a-card-g2/cpu6/02FLE.txt):
+
+```
+===== 02 FLE FILLS LEFT EARLY | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000400
+
+i-cache fills left early, one call (timer overhead included):
+4 nops, then jr (2 lines): cold 34, cached 14, cold again 34
+8 nops, then jr (3 lines): cold 44, cached 13, cold again 44
+jr at word 0: cold 26, cached 5, cold again 26
+jr at word 1: cold 30, cached 6, cold again 26
+jr at word 2: cold 25, cached 12, cold again 25
+4 nops, jr at word 0 of the next line: cold 35, cached 28, cold again 41
+16 nops from word 0: cold 62, cached 55, cold again 66
+15 nops from word 1: cold 61, cached 54, cold again 61
+14 nops from word 2: cold 55, cached 48, cold again 55
+13 nops from word 3: cold 54, cached 49, cold again 54
+Done.
+```
+
+[04GE1.txt](/tests/raw/20260927T0000Z-5501a-card-g2/cpu6/04GE1.txt):
+
+```
+===== 04 GE1 GTE INPUTS 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):
+NCS, VXY0 (VY, MAC2) 0 before: 00000003 00000003
+NCS, VXY0 (VY, MAC2) 1 before: 00000003 00000003
+GPL, IR2 (IR0 1000h) 0 before: 00000002 00000002
+GPL, IR2 (IR0 1000h) 1 before: 00000004 00000004
+GPL, IR3 (IR0 1000h) 0 before: 00000004 00000004
+GPL, IR3 (IR0 1000h) 1 before: 00000004 00000004
+GPF, IR3 (IR0 1000h) 0 before: 00000004 00000004
+GPF, IR3 (IR0 1000h) 1 before: 00000004 00000004
+DPCT, RGB0 (RGB0) 0 before: 00030004 00030004
+DPCT, RGB0 (RGB0) 1 before: 00030004 00030004
+MVMVA TR, TRX (MAC1) 0 before: 00010002 00010002
+MVMVA TR, TRX (MAC1) 1 before: 00010002 00010002
+MVMVA TR, TRZ (MAC3) 0 before: 00030004 00030004
+MVMVA TR, TRZ (MAC3) 1 before: 00030004 00030004
+MVMVA BK, RBK (MAC1) 0 before: 00010002 00010002
+MVMVA BK, RBK (MAC1) 1 before: 00010002 00010002
+AVSZ3, ZSF3 (MAC0) 0 before: 00000800 00000800
+Done.
+```
+
+[07GF2.txt](/tests/raw/20260927T0000Z-5501a-card-g2/cpu6/07GF2.txt):
+
+```
+===== 07 GF2 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, GBK 3 after: 00010002 00030004
+NCS, GBK 4 after: 00010002 00010002
+NCS, GBK 5 after: 00010002 00010002
+NCS, GBK 6 after: 00010002 00010002
+NCS, VZ0 2 after: 00000002 00000002
+NCS, VXY0 (VY, MAC2) 0 after: 00000001 00000001
+NCS, VXY0 (VY, MAC2) 1 after: 00000001 00000001
+NCS, VXY0 (VY, MAC2) 2 after: 00000001 00000001
+CDP, RGBC 2 after: 00000040 00000080
+NCLIP, SXY2 0 after: FFFFFFC0 FFFFFFC0
+INTPL, IR2 (MAC2) 0 after: 00000002 00000002
+INTPL, IR2 (MAC2) 1 after: 00000002 00000002
+INTPL, IR2 (MAC2) 2 after: 00000002 00000002
+INTPL, IR2 (MAC2) 3 after: 00000002 00000002
+MVMVA V1, VZ1 0 after: 00000002 00000002
+MVMVA V1, VZ1 1 after: 00000002 00000002
+MVMVA V1, VZ1 2 after: 00000002 00000002
+MVMVA V2, VZ2 0 after: 00000002 00000004
+MVMVA V2, VZ2 1 after: 00000002 00000004
+MVMVA V2, VZ2 2 after: 00000002 00000002
+GPL, MAC3 0 after: 00030004 00010002
+GPL, MAC3 1 after: 00030004 00010000
+DPCT, RGB2 0 after: 00000040 00000040
+DPCT, RGB2 1 after: 00000040 00000040
+DPCT, RGB2 2 after: 00000020 00000040
+DPCT, RGB2 3 after: 00000020 00000040
+DPCT, RGB2 4 after: 00000020 00000040
+MVMVA TR, TRX (MAC1) 0 after: 00010002 00010002
+MVMVA TR, TRX (MAC1) 1 after: 00010002 00010002
+Done.
+```
+
+Output files that match an earlier run: [00RUN.txt](/tests/raw/20260927T0000Z-5501a-card-g2/cpu6/00RUN.txt) (as run 20260927T0000Z-5501a-card-d) · [03LNL.txt](/tests/raw/20260927T0000Z-5501a-card-g2/cpu6/03LNL.txt) (as run 20260927T0000Z-5501a-card-d) · [05GE2.txt](/tests/raw/20260927T0000Z-5501a-card-g2/cpu6/05GE2.txt) (as run 20260927T0000Z-5501a-card-1) · [06GF1.txt](/tests/raw/20260927T0000Z-5501a-card-g2/cpu6/06GF1.txt) (as run 20260927T0000Z-5501a-card-1) · [08GF3.txt](/tests/raw/20260927T0000Z-5501a-card-g2/cpu6/08GF3.txt) (as run 20260927T0000Z-5501a-card-1) · [09GF4.txt](/tests/raw/20260927T0000Z-5501a-card-g2/cpu6/09GF4.txt) (as run 20260927T0000Z-5501a-card-1) · [10SC2.txt](/tests/raw/20260927T0000Z-5501a-card-g2/cpu6/10SC2.txt) (as run 20260927T0000Z-5501a-card-1).
+
+### 27 September 2026 (card-g3)
+
+[00RUN.txt](/tests/raw/20260927T0000Z-5501a-card-g3/cpu6/00RUN.txt):
+
+```
+===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+10 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 800267C8 PRId 00000002
+```
+
+[01SLS.txt](/tests/raw/20260927T0000Z-5501a-card-g3/cpu6/01SLS.txt)
+
+[02FLE.txt](/tests/raw/20260927T0000Z-5501a-card-g3/cpu6/02FLE.txt):
+
+```
+===== 02 FLE FILLS LEFT EARLY | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+i-cache fills left early, one call (timer overhead included):
+4 nops, then jr (2 lines): cold 34, cached 20, cold again 34
+8 nops, then jr (3 lines): cold 44, cached 13, cold again 44
+jr at word 0: cold 26, cached 5, cold again 32
+jr at word 1: cold 26, cached 6, cold again 26
+jr at word 2: cold 25, cached 12, cold again 25
+4 nops, jr at word 0 of the next line: cold 35, cached 34, cold again 35
+16 nops from word 0: cold 62, cached 55, cold again 62
+15 nops from word 1: cold 61, cached 54, cold again 65
+14 nops from word 2: cold 55, cached 48, cold again 55
+13 nops from word 3: cold 54, cached 47, cold again 54
+Done.
+```
+
+[03LNL.txt](/tests/raw/20260927T0000Z-5501a-card-g3/cpu6/03LNL.txt):
+
+```
+===== 03 LNL LOAD NOPS LOAD | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+a load, n nops, a load:
+RAM lw, nop: 963
+RAM lw, 0 nops, lw, nop: 1476
+RAM lw, 1 nops, lw, nop: 1681
+RAM lw, 2 nops, lw, nop: 1679
+RAM lw, 3 nops, lw, nop: 1673
+RAM lw, 5 nops, lw, nop: 1690
+RAM lw, 6 nops, lw, nop: 1770
+RAM lw, 7 nops, lw, nop: 1892
+RAM lw, 8 nops, lw, nop: 1975
+RAM lw, 9 nops, lw, nop: 2072
+RAM lw, 10 nops, lw, nop: 2189
+RAM lw, 12 nops, lw, nop: 2396
+I_STAT lw, nop: 750
+I_STAT lw, 0 nops, lw, nop: 1148
+I_STAT lw, 1 nops, lw, nop: 1363
+I_STAT lw, 2 nops, lw, nop: 1357
+I_STAT lw, 3 nops, lw, nop: 1347
+I_STAT lw, 5 nops, lw, nop: 1551
+GPUSTAT lw, nop: 750
+GPUSTAT lw, 0 nops, lw, nop: 1148
+GPUSTAT lw, 1 nops, lw, nop: 1363
+GPUSTAT lw, 2 nops, lw, nop: 1345
+GPUSTAT lw, 3 nops, lw, nop: 1345
+GPUSTAT lw, 5 nops, lw, nop: 1551
+BIOS lw, nop: 2943
+BIOS lw, 0 nops, lw, nop: 5447
+BIOS lw, 1 nops, lw, nop: 5658
+BIOS lw, 2 nops, lw, nop: 5654
+BIOS lw, 3 nops, lw, nop: 5644
+BIOS lw, 5 nops, lw, nop: 5643
+BIOS lw, 6 nops, lw, nop: 5659
+BIOS lw, 7 nops, lw, nop: 5668
+BIOS lw, 8 nops, lw, nop: 5669
+BIOS lw, 9 nops, lw, nop: 5659
+BIOS lw, 10 nops, lw, nop: 5658
+BIOS lw, 12 nops, lw, nop: 5667
+SPUSTAT lhu, nop: 2251
+SPUSTAT lhu, lhu, nop: 4250
+SPUSTAT lhu, 1 nop, lhu, nop: 4248
+SPUSTAT lhu, 2 nops, lhu, nop: 4254
+timer 1 lhu, nop: 727
+timer 1 lhu, lhu, nop: 1127
+timer 1 lhu, 1 nop, lhu, nop: 1334
+
+code from KSEG1, a load then n nops:
+RAM lw, 1 nop: 3524
+RAM lw, 3 nops: 4746
+RAM lw, 5 nops: 5973
+I_STAT lw, 1 nop: 3110
+I_STAT lw, 3 nops: 4329
+BIOS lw, 1 nop: 5297
+BIOS lw, 5 nops: 7744
+Done.
+```
+
+Output files that match an earlier run: [04GE1.txt](/tests/raw/20260927T0000Z-5501a-card-g3/cpu6/04GE1.txt) (as run 20260927T0000Z-5501a-card-2) · [05GE2.txt](/tests/raw/20260927T0000Z-5501a-card-g3/cpu6/05GE2.txt) (as run 20260927T0000Z-5501a-card-2) · [06GF1.txt](/tests/raw/20260927T0000Z-5501a-card-g3/cpu6/06GF1.txt) (as run 20260927T0000Z-5501a-card-2) · [07GF2.txt](/tests/raw/20260927T0000Z-5501a-card-g3/cpu6/07GF2.txt) (as run 20260927T0000Z-5501a-card-2) · [08GF3.txt](/tests/raw/20260927T0000Z-5501a-card-g3/cpu6/08GF3.txt) (as run 20260927T0000Z-5501a-card-2) · [09GF4.txt](/tests/raw/20260927T0000Z-5501a-card-g3/cpu6/09GF4.txt) (as run 20260927T0000Z-5501a-card-2) · [10SC2.txt](/tests/raw/20260927T0000Z-5501a-card-g3/cpu6/10SC2.txt) (as run 20260926T0000Z-5501a-card-cpu6).
+
+### 28 September 2026 (card-h)
+
+[00RUN.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu6/00RUN.txt):
+
+```
+===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+10 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 80025C14 DCIC 00000000 BadVaddr 00000480 BDAM 00000000
+BPCM 00000000 SR 40000000 Cause 00000020 EPC 800267C8 PRId 00000002
+```
+
+[01SLS.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu6/01SLS.txt)
+
+[03LNL.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu6/03LNL.txt):
+
+```
+===== 03 LNL LOAD NOPS LOAD | BIOS 19951204 System ROM Version 3.0 11/18/96 A
+BadVaddr as the group starts: 00000480
+
+a load, n nops, a load:
+RAM lw, nop: 960
+RAM lw, 0 nops, lw, nop: 1477
+RAM lw, 1 nops, lw, nop: 1687
+RAM lw, 2 nops, lw, nop: 1685
+RAM lw, 3 nops, lw, nop: 1679
+RAM lw, 5 nops, lw, nop: 1681
+RAM lw, 6 nops, lw, nop: 1772
+RAM lw, 7 nops, lw, nop: 1885
+RAM lw, 8 nops, lw, nop: 1978
+RAM lw, 9 nops, lw, nop: 2075
+RAM lw, 10 nops, lw, nop: 2192
+RAM lw, 12 nops, lw, nop: 2393
+I_STAT lw, nop: 746
+I_STAT lw, 0 nops, lw, nop: 1148
+I_STAT lw, 1 nops, lw, nop: 1361
+I_STAT lw, 2 nops, lw, nop: 1355
+I_STAT lw, 3 nops, lw, nop: 1345
+I_STAT lw, 5 nops, lw, nop: 1548
+GPUSTAT lw, nop: 746
+GPUSTAT lw, 0 nops, lw, nop: 1148
+GPUSTAT lw, 1 nops, lw, nop: 1361
+GPUSTAT lw, 2 nops, lw, nop: 1340
+GPUSTAT lw, 3 nops, lw, nop: 1345
+GPUSTAT lw, 5 nops, lw, nop: 1551
+BIOS lw, nop: 2943
+BIOS lw, 0 nops, lw, nop: 5447
+BIOS lw, 1 nops, lw, nop: 5658
+BIOS lw, 2 nops, lw, nop: 5654
+BIOS lw, 3 nops, lw, nop: 5644
+BIOS lw, 5 nops, lw, nop: 5643
+BIOS lw, 6 nops, lw, nop: 5659
+BIOS lw, 7 nops, lw, nop: 5668
+BIOS lw, 8 nops, lw, nop: 5669
+BIOS lw, 9 nops, lw, nop: 5665
+BIOS lw, 10 nops, lw, nop: 5658
+BIOS lw, 12 nops, lw, nop: 5667
+SPUSTAT lhu, nop: 2251
+SPUSTAT lhu, lhu, nop: 4250
+SPUSTAT lhu, 1 nop, lhu, nop: 4248
+SPUSTAT lhu, 2 nops, lhu, nop: 4254
+timer 1 lhu, nop: 727
+timer 1 lhu, lhu, nop: 1127
+timer 1 lhu, 1 nop, lhu, nop: 1334
+
+code from KSEG1, a load then n nops:
+RAM lw, 1 nop: 3524
+RAM lw, 3 nops: 4746
+RAM lw, 5 nops: 5976
+I_STAT lw, 1 nop: 3110
+I_STAT lw, 3 nops: 4329
+BIOS lw, 1 nop: 5297
+BIOS lw, 5 nops: 7744
+Done.
+```
+
+Output files that match an earlier run: [02FLE.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu6/02FLE.txt) (as run 20260927T0000Z-5501a-card-2) · [04GE1.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu6/04GE1.txt) (as run 20260927T0000Z-5501a-card-2) · [05GE2.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu6/05GE2.txt) (as run 20260927T0000Z-5501a-card-2) · [06GF1.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu6/06GF1.txt) (as run 20260927T0000Z-5501a-card-2) · [07GF2.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu6/07GF2.txt) (as run 20260927T0000Z-5501a-card-2) · [08GF3.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu6/08GF3.txt) (as run 20260927T0000Z-5501a-card-2) · [09GF4.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu6/09GF4.txt) (as run 20260927T0000Z-5501a-card-2) · [10SC2.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu6/10SC2.txt) (as run 20260926T0000Z-5501a-card-cpu6).
+
+## References
+
+[^runh]: Hardware test run 20260928T0000Z-5501a-card-h on the SCPH-5501: [00RUN.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu6/00RUN.txt) · [01SLS.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu6/01SLS.txt) · [02FLE.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu6/02FLE.txt) · [03LNL.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu6/03LNL.txt) · [04GE1.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu6/04GE1.txt) · [05GE2.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu6/05GE2.txt) · [06GF1.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu6/06GF1.txt) · [07GF2.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu6/07GF2.txt) · [08GF3.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu6/08GF3.txt) · [09GF4.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu6/09GF4.txt) · [10SC2.txt](/tests/raw/20260928T0000Z-5501a-card-h/cpu6/10SC2.txt).