psx.wiki

DMA Timing

Measures DMA register behavior, transfer times, chopping, priorities and DICR interrupts.

DMA Timing
MachineSCPH-5501
Programdmatime

This is an old revision of this page, as edited by RemmyLee at 05:18, 23 October 2026. Edit this revision | Latest revision

Overview

The program measures the DMA controller beyond what the register descriptions give: register read-back, transfer times for each device, the CPU's share of the bus while a transfer runs, chopping, channel priority and the DICR interrupt flags. Each group writes its results to its own file.1

Times are counted on root counter 2, which counts system clock cycles. A time runs from the CHCR write that starts a channel to the first poll that sees CHCR bit 24 clear, so every figure includes a fixed overhead for the write and the poll. A CHCR write that starts no transfer reads 68 clocks on the card-h run. Rows that could exceed 131071 clocks use root counter 2 on system clock / 8 and are given here in system clocks.12

The groups that can hang the console run last, each in a separate program image, so that a hang loses only that row. The variants dmatime_drq1 to drq10, odd1 to odd4, pio1 to pio5 and unk1 to unk3 each hold one such row.1

Results

Register Read-back

With each channel's DPCR enable off, MADR keeps 24 bits: FFFFFFFFh reads 00FFFFFFh. BCR keeps all 32 bits. CHCR on channels 0 to 5 keeps the bits 71770703h, and the same register reads back at offset +Ch. A halfword or byte store to BCR or CHCR writes only its own lanes: halfword 1234h at +2 reads 12340000h.3

Channel 6 CHCR keeps only bits 30, 28 and 24 of a write, and bit 1 always reads 1, so FFFFFFFFh reads 51000002h. DPCR keeps every bit. DICR keeps bits 0 to 5 and bits 15 to 23. Bit 31 cannot be written, and writing bit 15 sets bit 31 at once.3

1F8010F8h read 7FE7581Ah and 1F8010FCh read 00FFFFFFh. Writing 0 or FFFFFFFFh to either changes nothing. 1F8010F8h does change between transfers: it read 7FE31AA3h after an OTC and 7FE70AA3h after an SPU read, and it changed during an SPU write.4

OTC (Channel 6)

An OTC transfer takes about one system clock a word plus the overhead, and about 1.06 clocks a word for long tables. BCR 0 clears 65536 words, which took the same time as 65535. MADR and BCR keep their start values after the transfer, and the CPU polled once during each.2

Table 1: OTC transfer time on the card-h run
Words System clocks
1 89
16 109 to 119
64 157
256 359
1024 1172
4096 4429 to 4434
16384 17461 to 17468
65535 69585 to 69601
65536 69586 to 69601

CHCR bit 30 changes nothing in the time, and it stays set after the transfer. The upper half of BCR is ignored in SyncMode 0.2

An OTC that counts down past address 0 stops at the wrap. Three words from address 4 wrote 0 at address 4 and 00FFFFFCh at address 0, and left the word at 1FFFFCh unchanged.5

GPU (Channel 2)

A GPU list costs about 10 clocks for each empty node. The CPU runs between nodes: a list of 2048 empty nodes took 21040 clocks and the CPU polled 1064 times during it. Each GP0 word in a node adds about 1.07 clocks, so 16 nodes of 255 words took 4612 to 4628 clocks.6

A list ended by FFFFFFh ends without an error. A list ended by FFFFFEh or 800000h sets DICR bit 15 and with it bit 31 and IRQ3, and MADR is left holding the end value.7

A 2048-word block write to VRAM in SyncMode 0 takes 2247 clocks. SyncMode 1 in blocks of 16 words takes 512 to 517 clocks for 16 blocks and 7126 to 7153 for 256 blocks, and smaller blocks cost more: 256 blocks of 1 word took 2978 clocks. Reads from VRAM are slower than writes in SyncMode 1. A read of 64 blocks of 16 words took 2235 clocks against 1855 for the write.8

With GP1(04h) set to 0 the GPU does not request data, and a SyncMode 0 or 1 transfer stays busy until GP1(04h)=2 is written. With CHCR bit 28 set, a SyncMode 0 transfer runs to the end even with the request off.9

SPU (Channel 4)

SPU transfers are much slower than GPU transfers. A SyncMode 0 write of 256 words took 2141 clocks, which is about 8 clocks a word. In SyncMode 1 the first block of 16 words took 217 to 221 clocks and each further block about 1160, so 64 blocks took about 73070 clocks. Reads take about the same time as writes. Changing the SPU delay register between 200931E1h, 220931E1h, 220931F1h and 22093141h moved the 16-block time by less than 1000 clocks.10

64 words were written to sound RAM and read back. After SyncMode 1 transfers 56 words matched, and after SyncMode 0 transfers 16 matched.10

With the SPU transfer mode set to stop, a SyncMode 0 or 1 transfer stays busy until the mode is set to DMA write. With CHCR bit 28 it runs to the end.11 During a SyncMode 1 SPU write, MADR advances and BCR counts down one block at a time, and the CPU polls between blocks.12

CPU During a Transfer

A loop running from the instruction cache keeps running during an OTC burst. A loop of registers alone or of scratchpad loads finished in the time of the loop or of the transfer, whichever was longer: 4000 turns took 17402 clocks with an OTC of 16384 words, and 10000 turns took 40019 with and without it. The timer read at the end waits for the transfer.13

Loops that use the bus wait for the transfer. 1000 turns of RAM stores took 21390 clocks with the OTC against 4019 alone, and RAM loads and CHCR loads added the full transfer time. During a SyncMode 1 SPU write, register loops ran at full speed and RAM loads ran about 15 percent slower.13

Chopping

Chopping a 2048-word GPU block write in SyncMode 0 lets the CPU run between pieces of the transfer. MADR advances and BCR counts down while it runs, and they end at the last address and 0. The time depends on both windows.14

Table 2: 2048-word GPU write with chopping in system clocks (CPU polls)
DMA window (words) CPU window 1 clock 4 clocks 16 clocks 32 clocks 128 clocks
1 16720 (1040) 23376 (1548) 47888 (3412) 80680 (6141) 276648 (20471)
2 9440 (513) 13400 (1023) 24640 (1706) 41000 (3069) 139208 (10231)
4 5864 (266) 7352 (511) 13472 (1022) 21856 (1533) 70704 (5111)
16 3136 (127) 3504 (127) 5032 (254) 7088 (381) 19280 (1271)
128 2352 (15) 2408 (15) 2576 (30) 2792 (45) 4240 (151)

The same write without chopping takes 2247 clocks with one poll. A 256-word SPU write chopped at 16 words and 64 clocks took 3206 clocks against 2138 unchopped.14

Priority

Two channels were armed with their DPCR enables off and then started by one DPCR write, both writing the same 64 words. In SyncMode 0 the channel with the higher priority (the lower number) ran first and the other channel's data was left in memory. At equal priority, channel 6 ran before channel 4 and before channel 2.15 DPCR bits 28 to 30 made no difference to an SPU write or to a CPU loop running beside it.15

DICR Interrupts

A channel's flag is set at the end of its transfer when its enable bit (16+n) is set, whether or not bit 23 is set. Bit 31 and IRQ3 follow only when bit 23 is set as well. Writing 1 to a flag clears it.16

Table 3: DICR around a 16-word OTC on the card-h run
DICR written DICR after the OTC IRQ3
00000000h 00000000h 0
00400000h 40400000h 0
00800000h 00800000h 0
00C00000h C0C00000h 1
00FF0000h C0FF0000h 1
00008000h 80008000h 0
0000003Fh 0000003Fh 0

IRQ3 is raised when bit 31 changes from 0 to 1. A flag set while bit 23 was off raised IRQ3 as soon as bit 23 was written, and a second flag while bit 31 was already set raised nothing.16

CHCR Bits 8 29 and 30

Bit 30 stays set in CHCR after a transfer. A 16-block GPU write took 476 to 480 clocks with it against 494 without, and a 16-block SPU write 17355 against 17700. Bit 8 in a list transfer changes nothing. A forced SyncMode 0 burst with bit 29 set runs to the end, and CHCR reads 30000001h after it.17

Bit 8 in SyncMode 1 runs last because it may stop the DMA. On the card-b run the log ends at that row with no result.18

Expansion Port (Channel 5)

DMA5 from the expansion port at 1F000000h never ends in SyncMode 0 or 1 without bit 28: the channel was still busy after 20000 polls. With bit 28 it runs, at about 20 clocks a word: 1 word took 111 to 115 clocks and 64 words 1380 to 1388. With nothing in the port, every word read FFFFFFFFh.19

List End Timing

Short GPU lists ending FFFFFFh took 65 clocks for one empty node and 98 for four. Writing DICR 7F000000h before the transfer changed only the first sample of the first row. That sample read 75 clocks against 65.20

Runs

27 September 2026 card-b

Raw output: 00RUN.txt · 01DRB.txt · 02DOT.txt · 03DGL.txt · 04DGB.txt · 05DSP.txt · 06DMW.txt · 07DIC.txt · 08DCP.txt · 09DCH.txt · 10DPR.txt · 11DMD.txt · 12DRQ.txt · 13DOD.txt

00RUN.txt:

===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
15 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 1F801DAA BDAM 00000000
BPCM 00000000 SR 70000000 Cause 00000020 EPC 80022438 PRId 00000002

01DRB.txt:

===== 01 DRB DMA READ BACK | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
DMA registers written and read back, each channel with its DPCR enable off.
1F8010F8h reads 3FEB1A1C, 1F8010FCh reads 00FFFFFF
Channel 0 MADR: FFFFFFFF reads 00FFFFFF, 00000003 reads 00000003
Channel 0 BCR: FFFFFFFF reads FFFFFFFF, halfword 1234 at +2 reads 12340000, then byte 56 at +1 reads 12345600
Channel 0 CHCR: FFFFFFFF reads 71770703, 8E88F8FC reads 00000000, 60770703 reads 60770703 (at +Ch 60770703)
Channel 0 CHCR: 10000000 reads 10000000, byte 07 at +2 reads 00070000, 0 reads 00000000
Channel 1 MADR: FFFFFFFF reads 00FFFFFF, 00000003 reads 00000003
Channel 1 BCR: FFFFFFFF reads FFFFFFFF, halfword 1234 at +2 reads 12340000, then byte 56 at +1 reads 12345600
Channel 1 CHCR: FFFFFFFF reads 71770703, 8E88F8FC reads 00000000, 60770703 reads 60770703 (at +Ch 60770703)
Channel 1 CHCR: 10000000 reads 10000000, byte 07 at +2 reads 00070000, 0 reads 00000000
Channel 2 MADR: FFFFFFFF reads 00FFFFFF, 00000003 reads 00000003
Channel 2 BCR: FFFFFFFF reads FFFFFFFF, halfword 1234 at +2 reads 12340000, then byte 56 at +1 reads 12345600
Channel 2 CHCR: FFFFFFFF reads 71770703, 8E88F8FC reads 00000000, 60770703 reads 60770703 (at +Ch 60770703)
Channel 2 CHCR: 10000000 reads 10000000, byte 07 at +2 reads 00070000, 0 reads 00000000
Channel 3 MADR: FFFFFFFF reads 00FFFFFF, 00000003 reads 00000003
Channel 3 BCR: FFFFFFFF reads FFFFFFFF, halfword 1234 at +2 reads 12340000, then byte 56 at +1 reads 12345600
Channel 3 CHCR: FFFFFFFF reads 71770703, 8E88F8FC reads 00000000, 60770703 reads 60770703 (at +Ch 60770703)
Channel 3 CHCR: 10000000 reads 10000000, byte 07 at +2 reads 00070000, 0 reads 00000000
Channel 4 MADR: FFFFFFFF reads 00FFFFFF, 00000003 reads 00000003
Channel 4 BCR: FFFFFFFF reads FFFFFFFF, halfword 1234 at +2 reads 12340000, then byte 56 at +1 reads 12345600
Channel 4 CHCR: FFFFFFFF reads 71770703, 8E88F8FC reads 00000000, 60770703 reads 60770703 (at +Ch 60770703)
Channel 4 CHCR: 10000000 reads 10000000, byte 07 at +2 reads 00070000, 0 reads 00000000
Channel 5 MADR: FFFFFFFF reads 00FFFFFF, 00000003 reads 00000003
Channel 5 BCR: FFFFFFFF reads FFFFFFFF, halfword 1234 at +2 reads 12340000, then byte 56 at +1 reads 12345600
Channel 5 CHCR: FFFFFFFF reads 71770703, 8E88F8FC reads 00000000, 60770703 reads 60770703 (at +Ch 60770703)
Channel 5 CHCR: 10000000 reads 10000000, byte 07 at +2 reads 00070000, 0 reads 00000000
Channel 6 MADR: FFFFFFFF reads 00FFFFFF, 00000003 reads 00000003
Channel 6 BCR: FFFFFFFF reads FFFFFFFF, halfword 1234 at +2 reads 12340000, then byte 56 at +1 reads 12345600
Channel 6 CHCR: FFFFFFFF reads 51000002, 8E88F8FC reads 00000002, 60770703 reads 40000002 (at +Ch 40000002)
Channel 6 CHCR: 10000000 reads 10000002, byte 07 at +2 reads 00000002, 0 reads 00000002
DPCR was 33333B33. FFFFFFFF reads FFFFFFFF, 0 reads 00000000, 80000000 reads 80000000, 70000000 reads 70000000, byte 08 at +3 reads 08000000
DICR was 00000000. 0 reads 00000000, 7F reads 0000003F, 7F80 reads 00000000, FF0000 reads 00FF0000, 80000000 reads 00000000, IRQ3 0
DICR 8000 reads 80008000 with IRQ3 1; 0 reads 00000000; 8000 again IRQ3 0; 8000 while set IRQ3 1
DICR byte 80 at +2 reads 00800000, halfword 0080 at +2 reads 00800000
1F8010F8h reads 3FEB1A1C, 1F8010FCh reads 00FFFFFF, at +2 halfwords 3FEB 00FF
Done.

02DOT.txt:

===== 02 DOT DMA OTC TIMES | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
DMA6 OTC, CHCR 11000002: system clocks from the CHCR write to the poll that sees bit 24 clear, four times each.
CHCR written 00000002, no transfer: 69, polls 0
OTC     1 words: 77 59 59 63 | polls 0, MADR start0, BCR 00000001, CHCR 00000002, table right
After the first OTC: 1F8010F8h 3FE32A5C, 1F8010FCh 00FFFFFF
OTC     2 words: 74 63 60 60 | polls 0, MADR start0, BCR 00000002, CHCR 00000002, table right
OTC     3 words: 75 64 61 61 | polls 0, MADR start0, BCR 00000003, CHCR 00000002, table right
OTC     4 words: 76 67 62 62 | polls 0, MADR start0, BCR 00000004, CHCR 00000002, table right
OTC     8 words: 80 70 66 66 | polls 0, MADR start0, BCR 00000008, CHCR 00000002, table right
OTC    15 words: 87 73 73 73 | polls 0, MADR start0, BCR 0000000F, CHCR 00000002, table right
OTC    16 words: 93 76 74 74 | polls 0, MADR start0, BCR 00000010, CHCR 00000002, table right
OTC    17 words: 89 75 75 85 | polls 0, MADR start0, BCR 00000011, CHCR 00000002, table right
OTC    32 words: 104 90 100 90 | polls 0, MADR start0, BCR 00000020, CHCR 00000002, table right
OTC    64 words: 146 132 132 132 | polls 0, MADR start0, BCR 00000040, CHCR 00000002, table right
OTC   128 words: 210 196 188 186 | polls 0, MADR start0, BCR 00000080, CHCR 00000002, table right
OTC   256 words: 345 329 329 329 | polls 0, MADR start0, BCR 00000100, CHCR 00000002, table right
OTC  1024 words: 1161 1147 1152 1152 | polls 0, MADR start0, BCR 00000400, CHCR 00000002, table right
OTC  4096 words: 4413 4404 4399 4401 | polls 0, MADR start0, BCR 00001000, CHCR 00000002, table right
OTC 16384 words: 17446 17437 17425 17438 | polls 0, MADR start0, BCR 00004000, CHCR 00000002, table right
OTC 65535 words: 69578 69566 69558 69567 | polls 0, MADR start0, BCR 0000FFFF, CHCR 00000002, table right
OTC 65536 words: 69585 69566 69562 69566 | polls 0, MADR start0, BCR 00000000, CHCR 00000002, table right
OTC 256 words, CHCR 51000002 (bit 30): 344 329 329 330 | CHCR after 40000002, table right
OTC BCR 00050010 (16 words, 5 in the upper half): 88 74 84 74 | BCR after 00050010, table right
After: 1F8010F8h 3FE32A5C, 1F8010FCh 00FFFFFF
Done.

03DGL.txt:

===== 03 DGL DMA GPU LISTS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
DMA2 linked lists, CHCR 01000401, GP1(04h)=2: clocks from the CHCR write to bit 24 clear, and the polls the CPU made meanwhile. BCR written 00050010 first.
List    1 nodes of   0 NOP words: 79 (0 polls) 66 (0 polls) 63 (0 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List    2 nodes of   0 NOP words: 92 (1 polls) 74 (1 polls) 74 (1 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List    4 nodes of   0 NOP words: 112 (2 polls) 94 (2 polls) 94 (2 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of   0 NOP words: 229 (8 polls) 218 (8 polls) 215 (8 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   64 nodes of   0 NOP words: 718 (32 polls) 709 (33 polls) 709 (33 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List  256 nodes of   0 NOP words: 2684 (132 polls) 2675 (133 polls) 2669 (132 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List 1024 nodes of   0 NOP words: 10551 (532 polls) 10537 (532 polls) 10531 (531 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List 2048 nodes of   0 NOP words: 21035 (1064 polls) 21023 (1065 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of   1 NOP words: 320 (14 polls) 310 (15 polls) 304 (15 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of   2 NOP words: 339 (14 polls) 323 (15 polls) 326 (15 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of   4 NOP words: 368 (14 polls) 358 (15 polls) 352 (15 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of   8 NOP words: 432 (14 polls) 422 (15 polls) 422 (15 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of  15 NOP words: 563 (14 polls) 552 (15 polls) 552 (15 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of  16 NOP words: 571 (14 polls) 566 (15 polls) 564 (15 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of  32 NOP words: 849 (14 polls) 838 (15 polls) 832 (15 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of  64 NOP words: 1381 (14 polls) 1388 (15 polls) 1364 (15 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of 128 NOP words: 2475 (14 polls) 2468 (15 polls) 2458 (15 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of 255 NOP words: 4612 (14 polls) 4593 (15 polls) 4608 (15 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List    1 nodes of 255 NOP words: 352 (0 polls) 337 (0 polls) 332 (0 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List    4 nodes of 255 NOP words: 1195 (2 polls) 1184 (3 polls) 1188 (3 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
Done.

04DGB.txt:

===== 04 DGB DMA GPU BLOCKS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
DMA2 blocks to and from VRAM at 512,256: clocks from the CHCR write to bit 24 clear, twice each; polls, MADR, BCR and CHCR after.
Write SyncMode 1, 16 words x 1: 88 74 | polls 0, MADR start64, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 2: 122 104 | polls 1, MADR start128, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 4: 165 164 | polls 3, MADR start256, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 16: 511 494 | polls 15, MADR start1024, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 64: 1853 1838 | polls 63, MADR start4096, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 256: 7142 7138 | polls 258, MADR start16384, BCR 00000010, CHCR 00000201
Write SyncMode 1, 1 word x 256: 2976 2965 | polls 193, MADR start1024, BCR 00000001, CHCR 00000201
Write SyncMode 1, 2 words x 128: 1721 1720 | polls 127, MADR start1024, BCR 00000002, CHCR 00000201
Write SyncMode 1, 4 words x 64: 985 964 | polls 63, MADR start1024, BCR 00000004, CHCR 00000201
Write SyncMode 1, 8 words x 32: 664 659 | polls 31, MADR start1024, BCR 00000008, CHCR 00000201
Write SyncMode 1, 32 words x 8: 419 458 | polls 11, MADR start1024, BCR 00000020, CHCR 00000201
Write SyncMode 0, 256 words: 342 328 | polls 0, MADR start0, BCR 00000100, CHCR 00000001
Write SyncMode 0, 2048 words: 2242 2228 | polls 0, MADR start0, BCR 00000800, CHCR 00000001
Write SyncMode 0 bit 28, 256 words: 342 328 | polls 0, MADR start0, BCR 00000100, CHCR 00000001
Write SyncMode 1 bit 28, 16 words x 16: 508 497 | polls 15, MADR start1024, BCR 00000010, CHCR 00000201
Write SyncMode 1, MADR+2, 16 words x 4: 165 164 | polls 3, MADR start254, BCR 00000010, CHCR 00000201
Write SyncMode 1, MADR+1, 16 words x 4: 174 155 | polls 3, MADR start255, BCR 00000010, CHCR 00000201
Read SyncMode 1, 16 words x 1: 88 74 | polls 0, MADR start64, BCR 00000010, CHCR 00000200
Read SyncMode 1, 16 words x 16: 560 543 | polls 19, MADR start1024, BCR 00000010, CHCR 00000200
Read SyncMode 1, 16 words x 64: 2242 2217 | polls 89, MADR start4096, BCR 00000010, CHCR 00000200
Read SyncMode 1, 4 words x 64: 920 913 | polls 63, MADR start1024, BCR 00000004, CHCR 00000200
Read SyncMode 0, 256 words: 343 333 | polls 0, MADR start0, BCR 00000100, CHCR 00000000
Read SyncMode 0 bit 28, 256 words: 343 329 | polls 0, MADR start0, BCR 00000100, CHCR 00000000
Read SyncMode 1, MADR+2, 16 words x 4: 162 147 | polls 3, MADR start254, BCR 00000010, CHCR 00000200
Read back words 0-3: 7FFF0000 7FFF0001 7FFF0002 7FFF0003
Done.

05DSP.txt:

===== 05 DSP DMA SPU TIMES | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
DMA4 to and from sound RAM at 1000h: clocks from the CHCR write to bit 24 clear (polls meanwhile), three times each; MADR, BCR, CHCR after. SPU delay was 220931E1, 220931E1 here.
Write SyncMode 1, 16 words x 1: 202 (0) 192 (0) 191 (0) | MADR start64, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 2: 1492 (89) 1470 (88) 1479 (89) | MADR start128, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 4: 3842 (250) 3814 (249) 3833 (250) | MADR start256, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 8: 8545 (572) 8520 (571) 8537 (572) | MADR start512, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 16: 17789 (1202) 17772 (1202) 17772 (1202) | MADR start1024, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 64: 73072 (4969) 73068 (4970) 73068 (4970) | MADR start4096, BCR 00000010, CHCR 00000201
Write SyncMode 1, 1 word x 64: 4080 (265) 4060 (264) 4071 (265) | MADR start256, BCR 00000001, CHCR 00000201
Write SyncMode 1, 2 words x 32: 4885 (331) 4864 (331) 4855 (330) | MADR start256, BCR 00000002, CHCR 00000201
Write SyncMode 1, 4 words x 16: 4490 (299) 4470 (299) 4477 (299) | MADR start256, BCR 00000004, CHCR 00000201
Write SyncMode 1, 8 words x 8: 4280 (284) 4271 (284) 4472 (299) | MADR start256, BCR 00000008, CHCR 00000201
Read SyncMode 1, 16 words x 1: 203 (0) 191 (0) 200 (1) | MADR start64, BCR 00000010, CHCR 00000200
Read SyncMode 1, 16 words x 4: 3897 (255) 3894 (256) 3879 (255) | MADR start256, BCR 00000010, CHCR 00000200
Read SyncMode 1, 16 words x 16: 17790 (1207) 17783 (1208) 17780 (1208) | MADR start1024, BCR 00000010, CHCR 00000200
Read SyncMode 1, 16 words x 64: 73102 (5001) 73102 (5002) 73076 (5000) | MADR start4096, BCR 00000010, CHCR 00000200
Read SyncMode 1, 4 words x 16: 4796 (324) 4777 (324) 4780 (324) | MADR start256, BCR 00000004, CHCR 00000200
Write SyncMode 0, 16 words: 206 (0) 190 (0) 192 (0) | MADR start0, BCR 00000010, CHCR 00000001
Write SyncMode 0, 64 words: 590 (0) 577 (0) 572 (0) | MADR start0, BCR 00000040, CHCR 00000001
Write SyncMode 0, 256 words: 2125 (0) 2112 (0) 2114 (0) | MADR start0, BCR 00000100, CHCR 00000001
Write SyncMode 0 bit 28, 64 words: 589 (0) 572 (0) 572 (0) | MADR start0, BCR 00000040, CHCR 00000001
Read SyncMode 0, 64 words: 629 (2) 624 (3) 635 (4) | MADR start0, BCR 00000040, CHCR 00000000
Read SyncMode 0 bit 28, 64 words: 605 (0) 584 (0) 589 (0) | MADR start0, BCR 00000040, CHCR 00000000
Write SyncMode 1 bit 28, 16 words x 4: 3845 (250) 3828 (250) 3833 (250) | MADR start256, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 16, SPU delay 220931F1: 17766 (1200) 17755 (1200) 17755 (1200) | MADR start1024, BCR 00000010, CHCR 00000201
Read SyncMode 1, 16 words x 16, SPU delay 220931F1: 17803 (1209) 17794 (1209) 17791 (1209) | MADR start1024, BCR 00000010, CHCR 00000200
Write SyncMode 1, 16 words x 16, SPU delay 22093141: 17524 (1180) 17675 (1194) 17675 (1194) | MADR start1024, BCR 00000010, CHCR 00000201
Read SyncMode 1, 16 words x 16, delay 200931E1: 16879 (1215) 16872 (1217) 16854 (1214) | MADR start1024, BCR 00000010, CHCR 00000200
Read SyncMode 1, 16 words x 16, delay 220931E1: 17799 (1208) 17783 (1208) 17780 (1208) | MADR start1024, BCR 00000010, CHCR 00000200
64 words written then read back, SyncMode 1: 56 of 64 match
64 words written then read back, SyncMode 0: 16 of 64 match
Done.

06DMW.txt:

===== 06 DMW DMA MIDWAY | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
CHCR, MADR, BCR and DICR polled while a transfer runs: a row each time one changes (t is timer 2's low 16 bits). DICR flags need bit 23 and bit 16+n (dmachannels.txt:184-186); bits 0-6 may give a flag per slice (dmachannels.txt:174-177).
SPU write 16 words x 8, CHCR 01000201, DICR 00000000:
  poll    t: CHCR MADR BCR DICR
      0   539: 01000201 0011A458 00070010 00000000
      3  1646: 01000201 0011A498 00060010 00000000
      6  2718: 01000201 0011A498 00050010 00000000
      7  3082: 01000201 0011A4D8 00050010 00000000
     10  4150: 01000201 0011A518 00040010 00000000
     13  5224: 01000201 0011A558 00030010 00000000
     16  6280: 01000201 0011A598 00020010 00000000
     19  7358: 01000201 0011A5D8 00010010 00000000
     23  8708: 00000201 0011A618 00000010 00000000
  done after 23 polls
SPU write 16 words x 8, CHCR 11000201 (bit 28):
  poll    t: CHCR MADR BCR DICR
      0   527: 01000201 0011A458 00070010 00000000
      4  1916: 01000201 0011A498 00060010 00000000
      7  2982: 01000201 0011A4D8 00050010 00000000
     10  4049: 01000201 0011A518 00040010 00000000
     13  5117: 01000201 0011A558 00030010 00000000
     17  6470: 01000201 0011A598 00020010 00000000
     20  7539: 01000201 0011A5D8 00010010 00000000
     24  8901: 00000201 0011A618 00000010 00000000
  done after 24 polls
SPU write 16 words x 8, DICR 00900000 (bit 23, bit 20):
  poll    t: CHCR MADR BCR DICR
      0   520: 01000201 0011A458 00070010 00900000
      3  1618: 01000201 0011A458 00060010 00900000
      4  1982: 01000201 0011A498 00060010 00900000
      6  2758: 01000201 0011A4D8 00050010 00900000
     10  4109: 01000201 0011A518 00040010 00900000
     13  5182: 01000201 0011A558 00030010 00900000
     17  6531: 01000201 0011A598 00020010 00900000
     20  7599: 01000201 0011A5D8 00010010 00900000
     23  8657: 00000201 0011A618 00000010 90900000
  done after 23 polls
  I_STAT bit 3 after: 1
SPU write 16 words x 8, DICR 00900010 (bit 4 too, a flag per slice?):
  poll    t: CHCR MADR BCR DICR
      0   523: 01000201 0011A458 00070010 90900010
      3  1621: 01000201 0011A458 00060010 90900010
      4  1983: 01000201 0011A498 00060010 90900010
      6  2766: 01000201 0011A4D8 00050010 90900010
     10  4122: 01000201 0011A518 00040010 90900010
     13  5184: 01000201 0011A558 00030010 90900010
     17  6538: 01000201 0011A598 00020010 90900010
     20  7603: 01000201 0011A5D8 00010010 90900010
     24  8953: 00000201 0011A618 00000010 90900010
  done after 24 polls
  I_STAT bit 3 after: 1
SPU write 16 words x 8, DICR 00900010, I_STAT bit 3 in the last column:
  poll    t: CHCR MADR BCR I_STAT&8
      0   525: 01000201 0011A458 00070010 00000008
      4  1910: 01000201 0011A498 00060010 00000008
      7  2984: 01000201 0011A4D8 00050010 00000008
     10  4040: 01000201 0011A518 00040010 00000008
     13  5118: 01000201 0011A558 00030010 00000008
     17  6467: 01000201 0011A598 00020010 00000008
     20  7542: 01000201 0011A5D8 00010010 00000008
     23  8613: 01000201 0011A618 00000010 00000008
     24  8979: 00000201 0011A618 00000010 00000008
  done after 24 polls
SPU read 16 words x 8, CHCR 01000200:
  poll    t: CHCR MADR BCR DICR
      0   526: 01000200 0011A458 00070010 00000000
      4  1911: 01000200 0011A498 00060010 00000000
      7  2979: 01000200 0011A4D8 00050010 00000000
     10  4050: 01000200 0011A518 00040010 00000000
     13  5117: 01000200 0011A558 00030010 00000000
     17  6481: 01000200 0011A598 00020010 00000000
     20  7540: 01000200 0011A5D8 00010010 00000000
     23  8620: 01000200 0011A618 00000010 00000000
     24  8987: 00000200 0011A618 00000010 00000000
  done after 24 polls
GPU write 16 words x 8 to VRAM, CHCR 01000201:
  poll    t: CHCR MADR BCR DICR
      0   545: 01000201 0015B618 00000010 00000000
      1   942: 00000201 0015B618 00000010 00000000
  done after 1 polls
GPU list 8 nodes of 15 NOPs, DICR 00840004 (bit 2, a flag per entry?):
  list at 116278, nodes 64 bytes apart
  poll    t: CHCR MADR BCR DICR
      0   591: 01000401 00FFFFFF 00000000 84840004
      1   986: 00000401 00FFFFFF 00000000 84840004
  done after 1 polls
Done.

07DIC.txt:

===== 07 DIC DMA DICR | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
DICR around a 16 word OTC (channel 6: enable bit 22, flag bit 30). psx-spx sets the flag only with bit 23 and bit 22 (dmachannels.txt:184-186), nocash with bit 22 alone (channels.txt:122-123). IRQ3 is I_STAT bit 3, acknowledged before each OTC.
DICR 00000000 reads 00000000 (IRQ3 0); after OTC 00000000, IRQ3 0
DICR 00400000 reads 00400000 (IRQ3 0); after OTC 40400000, IRQ3 0
DICR 00800000 reads 00800000 (IRQ3 0); after OTC 00800000, IRQ3 0
DICR 00C00000 reads 00C00000 (IRQ3 0); after OTC C0C00000, IRQ3 1
DICR 00C00040 reads 00C00000 (IRQ3 0); after OTC C0C00000, IRQ3 1
DICR 00400040 reads 00400000 (IRQ3 0); after OTC 40400000, IRQ3 0
DICR 00BF0000 reads 00BF0000 (IRQ3 0); after OTC 00BF0000, IRQ3 0
DICR 00FF0000 reads 00FF0000 (IRQ3 0); after OTC C0FF0000, IRQ3 1
DICR 00008000 reads 80008000 (IRQ3 1); after OTC 80008000, IRQ3 0
DICR 00C08000 reads 80C08000 (IRQ3 1); after OTC C0C08000, IRQ3 0
DICR 0000003F reads 0000003F (IRQ3 0); after OTC 0000003F, IRQ3 0
A flag, then its enables taken away:
  after OTC: wrote 00C00000, reads C0C00000, IRQ3 1
  bit 22 off: wrote 00800000, reads C0800000, IRQ3 0
  bit 23 off too: wrote 00000000, reads 40000000, IRQ3 0
  bit 23 on: wrote 00800000, reads C0800000, IRQ3 1
  bit 23 on again: wrote 00800000, reads C0800000, IRQ3 0
  flag acknowledged: wrote 40800000, reads 00800000, IRQ3 0
  bit 31 written: wrote 80800000, reads 00800000, IRQ3 0
Flag with bit 22 alone, then bit 23:
  after OTC: wrote 00400000, reads 40400000, IRQ3 0
  bit 23 on: wrote 00C00000, reads C0C00000, IRQ3 1
Bit 15 set, then a flag:
  bit 15 and 22 and 23: wrote 00C08000, reads 80C08000, IRQ3 1
  after OTC: wrote 00C08000, reads C0C08000, IRQ3 0
  bit 15 off: wrote 00C00000, reads C0C00000, IRQ3 0
  flag acknowledged: wrote 40C00000, reads 00C00000, IRQ3 0
Two flags, one acknowledged:
  after first OTC: wrote 00C00000, reads C0C00000, IRQ3 1
  after second OTC: wrote 00C00000, reads C0C00000, IRQ3 0
  flag acknowledged: wrote 40C00000, reads 00C00000, IRQ3 0
  after third OTC: wrote 00C00000, reads C0C00000, IRQ3 1
OTC with bit 28 alone (no start, otc.c) and DICR 00C00000:
  after: wrote 00C00000, reads 00C00000, IRQ3 0
Done.

08DCP.txt:

===== 08 DCP DMA CPU DURING | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
A loop from the i-cache started right after the CHCR write that starts a transfer, then a timer 2 read: clocks alone and with the transfer. A loop turn is its body, addiu, bnez, nop.
OTC 16384 words (CHCR 11000002):
  registers n=1: alone 23, with the transfer 17403
  registers n=100: alone 419, with the transfer 17392
  registers n=1000: alone 4019, with the transfer 17407
  registers n=4000: alone 16019, with the transfer 17412
  registers n=10000: alone 40019, with the transfer 40019
  registers n=20000: alone 80019, with the transfer 80019
  scratchpad loads n=100: alone 419, with the transfer 17402
  scratchpad loads n=1000: alone 4019, with the transfer 17408
  scratchpad loads n=4000: alone 16019, with the transfer 17392
  scratchpad loads n=10000: alone 40019, with the transfer 40019
  scratchpad loads n=20000: alone 80019, with the transfer 80019
  RAM stores n=100: alone 421, with the transfer 17797
  RAM stores n=1000: alone 4022, with the transfer 21392
  RAM stores n=4000: alone 16020, with the transfer 33402
  RAM stores n=10000: alone 40020, with the transfer 57380
  RAM loads n=100: alone 935, with the transfer 18302
  RAM loads n=1000: alone 9163, with the transfer 26535
  RAM loads n=4000: alone 36586, with the transfer 53967
  RAM loads n=10000: alone 91445, with the transfer 108824
  CHCR loads n=100: alone 719, with the transfer 18095
  CHCR loads n=1000: alone 7019, with the transfer 24395
  CHCR loads n=4000: alone 28019, with the transfer 45395
  CHCR loads n=10000: alone 70019, with the transfer 87390
SPU write 16 words x 64 (CHCR 01000201):
  registers n=100: alone 419, with the transfer 419 (still busy after)
  registers n=1000: alone 4019, with the transfer 4019 (still busy after)
  registers n=4000: alone 16019, with the transfer 16019 (still busy after)
  registers n=10000: alone 40019, with the transfer 40019 (still busy after)
  RAM loads n=100: alone 930, with the transfer 1057 (still busy after)
  RAM loads n=1000: alone 9154, with the transfer 10463 (still busy after)
  RAM loads n=4000: alone 36586, with the transfer 41197 (still busy after)
  CHCR loads n=100: alone 719, with the transfer 850 (still busy after)
  CHCR loads n=1000: alone 7019, with the transfer 7951 (still busy after)
  CHCR loads n=4000: alone 28019, with the transfer 31753 (still busy after)
GPU write 2048 words SyncMode 0 chopped, DMA window 1 word, CPU window 128 clocks (CHCR 01700101):
  registers n=100: alone 424, with the transfer 448 (still busy after) (clock/8)
  registers n=1000: alone 4024, with the transfer 4040 (still busy after) (clock/8)
  registers n=4000: alone 16016, with the transfer 16040 (still busy after) (clock/8)
  registers n=10000: alone 40016, with the transfer 40032 (still busy after) (clock/8)
  RAM loads n=100: alone 936, with the transfer 960 (still busy after) (clock/8)
  RAM loads n=1000: alone 9160, with the transfer 9232 (still busy after) (clock/8)
  RAM loads n=4000: alone 36584, with the transfer 36776 (still busy after) (clock/8)
GPU write 2048 words SyncMode 0 not chopped (CHCR 01000001):
  registers n=100: alone 419, with the transfer 2199
  registers n=1000: alone 4019, with the transfer 4035
  registers n=4000: alone 16019, with the transfer 16035
  registers n=10000: alone 40019, with the transfer 40035
Done.

09DCH.txt:

===== 09 DCH DMA CHOP SHARE | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
GPU write 2048 words SyncMode 0 chopped (CHCR 01xx0101), polling CHCR: clocks, polls (the CPU's share), MADR, BCR, CHCR after. Not chopped for scale first.
Not chopped: 2238, polls 0
DMA window   1 words, CPU window   1 clocks: 16704, polls 1040, MADR start8192, BCR 00000000, CHCR 00000101
DMA window   1 words, CPU window   4 clocks: 23368, polls 1547, MADR start8192, BCR 00000000, CHCR 00200101
DMA window   1 words, CPU window  16 clocks: 47880, polls 3411, MADR start8192, BCR 00000000, CHCR 00400101
DMA window   1 words, CPU window  32 clocks: 80688, polls 6140, MADR start8192, BCR 00000000, CHCR 00500101
DMA window   1 words, CPU window 128 clocks: 276640, polls 20470, MADR start8192, BCR 00000000, CHCR 00700101
DMA window   2 words, CPU window   1 clocks: 9432, polls 512, MADR start8192, BCR 00000000, CHCR 00010101
DMA window   2 words, CPU window   4 clocks: 13384, polls 1022, MADR start8192, BCR 00000000, CHCR 00210101
DMA window   2 words, CPU window  16 clocks: 24624, polls 1705, MADR start8192, BCR 00000000, CHCR 00410101
DMA window   2 words, CPU window  32 clocks: 40992, polls 3068, MADR start8192, BCR 00000000, CHCR 00510101
DMA window   2 words, CPU window 128 clocks: 139216, polls 10230, MADR start8192, BCR 00000000, CHCR 00710101
DMA window   4 words, CPU window   1 clocks: 5808, polls 268, MADR start8192, BCR 00000000, CHCR 00020101
DMA window   4 words, CPU window   4 clocks: 7344, polls 510, MADR start8192, BCR 00000000, CHCR 00220101
DMA window   4 words, CPU window  16 clocks: 13456, polls 1021, MADR start8192, BCR 00000000, CHCR 00420101
DMA window   4 words, CPU window  32 clocks: 21864, polls 1532, MADR start8192, BCR 00000000, CHCR 00520101
DMA window   4 words, CPU window 128 clocks: 70664, polls 5110, MADR start8192, BCR 00000000, CHCR 00720101
DMA window  16 words, CPU window   1 clocks: 3128, polls 126, MADR start8192, BCR 00000000, CHCR 00040101
DMA window  16 words, CPU window   4 clocks: 3472, polls 126, MADR start8192, BCR 00000000, CHCR 00240101
DMA window  16 words, CPU window  16 clocks: 5024, polls 253, MADR start8192, BCR 00000000, CHCR 00440101
DMA window  16 words, CPU window  32 clocks: 7064, polls 380, MADR start8192, BCR 00000000, CHCR 00540101
DMA window  16 words, CPU window 128 clocks: 19272, polls 1270, MADR start8192, BCR 00000000, CHCR 00740101
DMA window 128 words, CPU window   1 clocks: 2344, polls 14, MADR start8192, BCR 00000000, CHCR 00070101
DMA window 128 words, CPU window   4 clocks: 2384, polls 14, MADR start8192, BCR 00000000, CHCR 00270101
DMA window 128 words, CPU window  16 clocks: 2552, polls 29, MADR start8192, BCR 00000000, CHCR 00470101
DMA window 128 words, CPU window  32 clocks: 2792, polls 44, MADR start8192, BCR 00000000, CHCR 00570101
DMA window 128 words, CPU window 128 clocks: 4200, polls 150, MADR start8192, BCR 00000000, CHCR 00770101
Chopped 1 word / 128 clocks, as it runs:
  poll    t: CHCR MADR BCR GPUSTAT&1C000000
      0   420: 01700101 0015B41C 000007FF 10000000
      1   828: 01700101 0015B42C 000007FB 10000000
      2  1197: 01700101 0015B434 000007F8 10000000
      3  1573: 01700101 0015B440 000007F6 00000000
      4  1949: 01700101 0015B44C 000007F3 10000000
      5  2328: 01700101 0015B458 000007F0 10000000
      6  2705: 01700101 0015B460 000007ED 10000000
      7  3079: 01700101 0015B46C 000007EB 10000000
      8  3450: 01700101 0015B478 000007E8 10000000
      9  3820: 01700101 0015B484 000007E5 10000000
     10  4200: 01700101 0015B48C 000007E2 10000000
     11  4572: 01700101 0015B498 000007E0 00000000
     12  4948: 01700101 0015B4A4 000007DD 10000000
     13  5313: 01700101 0015B4B0 000007DA 10000000
     14  5692: 01700101 0015B4B8 000007D7 10000000
     15  6065: 01700101 0015B4C4 000007D5 00000000
     16  6440: 01700101 0015B4D0 000007D2 10000000
     17  6813: 01700101 0015B4DC 000007CF 10000000
     18  7189: 01700101 0015B4E4 000007CC 10000000
     19  7561: 01700101 0015B4F0 000007CA 00000000
  done after 947 polls (rows cut at 20)
SPU write 256 words SyncMode 0 chopped 16 words / 64 clocks (CHCR 01640101): 3206, polls 75, MADR start1024, BCR 00000000
SPU write 256 words SyncMode 0 not chopped: 2129, polls 0
Done.

10DPR.txt:

===== 10 DPR DMA PRIORITY | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
Two channels armed with their DPCR enables off, then one DPCR write: which wrote each of 64 shared words last (O OTC, S SPU, G GPU, . untouched, ? other).
SPU read SyncMode 1, priority 1, OTC priority 5: 3912 clocks, 248 polls
  OOOOOOOOOOOOOOOOSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
SPU read SyncMode 1, priority 5, OTC priority 1: 3909 clocks, 248 polls
  SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
SPU read SyncMode 1, priority 3, OTC priority 3: 3909 clocks, 248 polls
  SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
SPU read SyncMode 0, priority 1, OTC priority 5: 710 clocks, 1 polls
  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
SPU read SyncMode 0, priority 5, OTC priority 1: 707 clocks, 1 polls
  SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
SPU read SyncMode 0, priority 3, OTC priority 3: 709 clocks, 1 polls
  SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
GPU read SyncMode 1, priority 1, OTC priority 5: 260 clocks, 1 polls
  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
GPU read SyncMode 1, priority 5, OTC priority 1: 260 clocks, 2 polls
  GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
GPU read SyncMode 1, priority 3, OTC priority 3: 270 clocks, 2 polls
  GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
GPU read SyncMode 0, priority 1, OTC priority 5: 248 clocks, 1 polls
  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
GPU read SyncMode 0, priority 5, OTC priority 1: 258 clocks, 1 polls
  GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
DPCR bits 28-30, CPU priority (channels.txt:105, dmachannels.txt:168):
DPCR 0B3B3B33, SPU write 16 words x 64: 73078, polls 4969; loop of 10000 alone 40026, with the SPU write 40019
DPCR 3B3B3B33, SPU write 16 words x 64: 73084, polls 4970; loop of 10000 alone 40026, with the SPU write 40019
DPCR 7B3B3B33, SPU write 16 words x 64: 73080, polls 4969; loop of 10000 alone 40026, with the SPU write 40019
Done.

11DMD.txt:

===== 11 DMD DMA MDEC | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
DMA0 and DMA1 with the MDEC: tables, then MDEC(1) on blocks of only a DC value (Q 1, DC 20h) and FE00h; DMA1 armed first. Clocks from the DMA0 start. Scale table zero.
Mono 8 bit, 1 block, out 16x1: quant 16 words 91, scale 32 words 90, decode: DMA0 done at 111, DMA1 done at 1007, 30 polls
  output sum 08080800, words 0 and last 80808080 80808080; MDEC status 8204FFFF
  DMA0 MADR start128 BCR 00000020 CHCR 00000201; DMA1 MADR start64 BCR 00000010 CHCR 00000200
Mono 8 bit, 4 blocks, out 16x4: quant 16 words timeout, scale 32 words timeout, decode: DMA0 done at timeout, DMA1 done at timeout, 200001 polls
  output sum 33333300, words 0 and last CCCCCCCC CCCCCCCC; MDEC status A004000D
  DMA0 MADR start0 BCR 00010020 CHCR 01000201; DMA1 MADR start0 BCR 00040010 CHCR 01000200
Mono 8 bit, 4 blocks, out 32x2: quant 16 words timeout, scale 32 words timeout, decode: DMA0 done at timeout, DMA1 done at timeout, 200001 polls
  output sum 33333300, words 0 and last CCCCCCCC CCCCCCCC; MDEC status A004000D
  DMA0 MADR start0 BCR 00010020 CHCR 01000201; DMA1 MADR start0 BCR 00020020 CHCR 01000200
Mono 4 bit, 4 blocks, out 8x4: quant 16 words timeout, scale 32 words timeout, decode: DMA0 done at timeout, DMA1 done at timeout, 200001 polls
  output sum 99999980, words 0 and last CCCCCCCC CCCCCCCC; MDEC status A004001E
  DMA0 MADR start0 BCR 00010020 CHCR 01000201; DMA1 MADR start0 BCR 00040008 CHCR 01000200
Colour 15 bit, 1 macroblock, out 32x4: quant 16 words timeout, scale 32 words timeout, decode: DMA0 done at timeout, DMA1 done at timeout, 200001 polls
  output sum 66666600, words 0 and last CCCCCCCC CCCCCCCC; MDEC status A004000D
  DMA0 MADR start0 BCR 00010020 CHCR 01000201; DMA1 MADR start0 BCR 00040020 CHCR 01000200
Colour 24 bit, 1 macroblock, out 32x6: quant 16 words timeout, scale 32 words timeout, decode: DMA0 done at timeout, DMA1 done at timeout, 200001 polls
  output sum 99999900, words 0 and last CCCCCCCC CCCCCCCC; MDEC status A004000D
  DMA0 MADR start0 BCR 00010020 CHCR 01000201; DMA1 MADR start0 BCR 00060020 CHCR 01000200
Colour 15 bit, 2 macroblocks, out 32x8: quant 16 words timeout, scale 32 words timeout, decode: DMA0 done at timeout, DMA1 done at timeout, 200001 polls
  output sum CCCCCC00, words 0 and last CCCCCCCC CCCCCCCC; MDEC status A004000D
  DMA0 MADR start0 BCR 00010020 CHCR 01000201; DMA1 MADR start0 BCR 00080020 CHCR 01000200
Done.

12DRQ.txt:

===== 12 DRQ DMA NO REQUEST | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
Transfers whose device is not asking, and the ends of the address range.
GPU SyncMode 1 with the GPU request off:
  GP1(04h)=0, CHCR 01000201 BCR 00040010: polled up to 20000 times, still busy; MADR start0 BCR 00040010 CHCR 01000201
  then GP1(04h)=2: done; MADR start256 BCR 00000010 CHCR 00000201
GPU SyncMode 0 with the GPU request off:
  GP1(04h)=0, CHCR 01000001 BCR 00000040: polled up to 20000 times, still busy; MADR start0 BCR 00000040 CHCR 01000001
  then GP1(04h)=2: done; MADR start0 BCR 00000040 CHCR 00000001
GPU SyncMode 0 bit 28 with the GPU request off:
  GP1(04h)=0, CHCR 11000001 BCR 00000040: polled up to 20000 times, done; MADR start0 BCR 00000040 CHCR 00000001
  then GP1(04h)=2: done; MADR start0 BCR 00000040 CHCR 00000001
SPU SyncMode 1 with SPU transfer mode stop:
  SPUCNT mode stop, CHCR 01000201: polled up to 20000 times, still busy; MADR start0 BCR 00040010 SPUSTAT 0000
  then mode DMA write: done; MADR start256 BCR 00000010 SPUSTAT 0020
SPU SyncMode 0 with SPU transfer mode stop:
  SPUCNT mode stop, CHCR 01000001: polled up to 20000 times, still busy; MADR start0 BCR 00000040 SPUSTAT 0000
  then mode DMA write: done; MADR start0 BCR 00000040 SPUSTAT 0020
SPU SyncMode 0 bit 28 with SPU transfer mode stop:
  SPUCNT mode stop, CHCR 11000001: polled up to 20000 times, done; MADR start0 BCR 00000040 SPUSTAT 0800
  then mode DMA write: done; MADR start0 BCR 00000040 SPUSTAT 0800
GPU list ended by FFFFFFh:
  list of 4 ending FFFFFF: 123, MADR 00FFFFFF, CHCR 00000401, DICR 00000000, IRQ3 0
  DICR with bit 15 written 0: 00000000
GPU list ended by FFFFFEh:
  list of 4 ending FFFFFE: 136, MADR 00FFFFFE, CHCR 00000401, DICR 80008000, IRQ3 1
  DICR with bit 15 written 0: 00000000
GPU list ended by 800000h:
  list of 4 ending 800000: 136, MADR 00800000, CHCR 00000401, DICR 80008000, IRQ3 1
  DICR with bit 15 written 0: 00000000
OTC of 3 words from address 4:
  word 4 00000000, word 0 00FFFFFC, word 1FFFFCh 22222222 (was 22222222); MADR 00000004 CHCR 00000002
Done.

13DOD.txt:

===== 13 DOD DMA ODD BITS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
CHCR bits 8, 29 and 30 where psx-spx leaves them open.
Bit 30:
  GPU write 16 x 16: CHCR 01000201 494, 41000201 476, CHCR after 40000201
  SPU write 16 x 16: CHCR 01000201 17700, 41000201 17355, CHCR after 40000201
Bits 28 and 29 in SyncMode 1:
  poll    t: CHCR MADR BCR DICR
      0  1480: 20000201 0011A618 00000010 00000000
  done after 0 polls
Bit 8 in a linked list:
  16 nodes of 1, CHCR 01000401: 317, 01000501: 310, MADR 00FFFFFF CHCR 00000501 GPUSTAT 5602220A
Bit 29 in a forced burst:
  GPU SyncMode 0, CHCR 31000001: polled up to 20000 times, done; MADR start0 BCR 00000100 CHCR 30000001
Bit 8 in SyncMode 1:

27 September 2026 card-c

Raw output: 00RUN.txt · 01DUN.txt · 02DPI.txt

00RUN.txt:

===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
2 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 00000000 Cause 00000020 EPC 80016C84 PRId 00000002

01DUN.txt:

===== 01 DUN DMA F8 FC | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
1F8010F8h and 1F8010FCh, "might be remaining length and address?" (channels.txt:132-141): read at the start 7FE7581A 00FFFFFF, while an SPU write runs, after transfers, then written.
While SPU write 16 words x 16 runs:
  poll    t: CHCR F8 FC MADR
      0   549: 01000201 7FEB0A63 00FFFFFF 0011A190
      3  1652: 01000201 7FEB0A63 00FFFFFF 0011A1D0
      6  2725: 01000201 7FEB0A63 00FFFFFF 0011A210
     10  4079: 01000201 7FEB0A63 00FFFFFF 0011A250
     13  5157: 01000201 7FEB0A63 00FFFFFF 0011A290
     16  6227: 01000201 7FEB0A63 00FFFFFF 0011A2D0
     19  7290: 01000201 7FEB0A63 00FFFFFF 0011A310
     23  8641: 01000201 7FEB0A63 00FFFFFF 0011A350
     26  9708: 01000201 7FEB0A63 00FFFFFF 0011A390
     30 11070: 01000201 7FEB0A63 00FFFFFF 0011A3D0
     33 12140: 01000201 7FEB0A63 00FFFFFF 0011A410
     36 13201: 01000201 7FEB0A63 00FFFFFF 0011A450
     39 14273: 01000201 7FEB0A63 00FFFFFF 0011A490
     43 15624: 01000201 7FEB0A63 00FFFFFF 0011A4D0
     46 16696: 01000201 7FEB0A63 00FFFFFF 0011A510
     49 17763: 01000201 79EB0A63 00FFFFFF 0011A550
     50 18128: 00000201 7FEB0A63 00FFFFFF 0011A550
  done after 50 polls
After transfers:
  after an OTC: F8 7FE31AA3 FC 00FFFFFF
  after an SPU read: F8 7FE70AA3 FC 00FFFFFF
  after an OTC from MADR+2: F8 7FE31AA3 FC 00FFFFFF
Written:
  F8 was 7FE31AA3: 0 reads 7FE31AA3, FFFFFFFF reads 7FE31AA3; FC was 00FFFFFF: 0 reads 00FFFFFF, FFFFFFFF reads 00FFFFFF; now 7FE31AA3 00FFFFFF
Done.

02DPI.txt:

===== 02 DPI DMA PIO | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
DMA5, expansion port to RAM. EXP1 delay/size 0013243F, base 1F000000.
SyncMode 1, 4 words:
  CHCR 01000200 BCR 00010004: busy after 20000 polls, 109016; MADR start0 BCR 00010004 CHCR 01000200; words 0-1 CCCCCCCC CCCCCCCC
SyncMode 0, 4 words, no bit 28:
  CHCR 01000000 BCR 00000004: busy after 20000 polls, 109015; MADR start0 BCR 00000004 CHCR 01000000; words 0-1 CCCCCCCC CCCCCCCC
SyncMode 0 bit 28, 1 word:
  CHCR 11000000 BCR 00000001: done at 115; MADR start0 BCR 00000001 CHCR 00000000; words 0-1 FFFFFFFF CCCCCCCC
SyncMode 0 bit 28, 16 words:
  CHCR 11000000 BCR 00000010: done at 412; MADR start0 BCR 00000010 CHCR 00000000; words 0-1 FFFFFFFF FFFFFFFF
SyncMode 0 bit 28, 64 words:
  CHCR 11000000 BCR 00000040: done at 1380; MADR start0 BCR 00000040 CHCR 00000000; words 0-1 FFFFFFFF FFFFFFFF
Done.

27 September 2026 card-g

Raw output: 00RUN.txt · 01DRB.txt · 02DOT.txt · 03DGL.txt · 04DGB.txt · 05DSP.txt · 06DMW.txt · 07DIC.txt · 08DCP.txt · 09DCH.txt · 10DPR.txt · 11DMD.txt

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 BFC034B4 DCIC 00000000 BadVaddr 1F801DAA BDAM 00000000
BPCM 00000000 SR 70000000 Cause 00000020 EPC 80022438 PRId 00000002

01DRB.txt:

===== 01 DRB DMA READ BACK | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
DMA registers written and read back, each channel with its DPCR enable off.
1F8010F8h reads 3FEB1A1C, 1F8010FCh reads 00FFFFFF
Channel 0 MADR: FFFFFFFF reads 00FFFFFF, 00000003 reads 00000003
Channel 0 BCR: FFFFFFFF reads FFFFFFFF, halfword 1234 at +2 reads 12340000, then byte 56 at +1 reads 12345600
Channel 0 CHCR: FFFFFFFF reads 71770703, 8E88F8FC reads 00000000, 60770703 reads 60770703 (at +Ch 60770703)
Channel 0 CHCR: 10000000 reads 10000000, byte 07 at +2 reads 00070000, 0 reads 00000000
Channel 1 MADR: FFFFFFFF reads 00FFFFFF, 00000003 reads 00000003
Channel 1 BCR: FFFFFFFF reads FFFFFFFF, halfword 1234 at +2 reads 12340000, then byte 56 at +1 reads 12345600
Channel 1 CHCR: FFFFFFFF reads 71770703, 8E88F8FC reads 00000000, 60770703 reads 60770703 (at +Ch 60770703)
Channel 1 CHCR: 10000000 reads 10000000, byte 07 at +2 reads 00070000, 0 reads 00000000
Channel 2 MADR: FFFFFFFF reads 00FFFFFF, 00000003 reads 00000003
Channel 2 BCR: FFFFFFFF reads FFFFFFFF, halfword 1234 at +2 reads 12340000, then byte 56 at +1 reads 12345600
Channel 2 CHCR: FFFFFFFF reads 71770703, 8E88F8FC reads 00000000, 60770703 reads 60770703 (at +Ch 60770703)
Channel 2 CHCR: 10000000 reads 10000000, byte 07 at +2 reads 00070000, 0 reads 00000000
Channel 3 MADR: FFFFFFFF reads 00FFFFFF, 00000003 reads 00000003
Channel 3 BCR: FFFFFFFF reads FFFFFFFF, halfword 1234 at +2 reads 12340000, then byte 56 at +1 reads 12345600
Channel 3 CHCR: FFFFFFFF reads 71770703, 8E88F8FC reads 00000000, 60770703 reads 60770703 (at +Ch 60770703)
Channel 3 CHCR: 10000000 reads 10000000, byte 07 at +2 reads 00070000, 0 reads 00000000
Channel 4 MADR: FFFFFFFF reads 00FFFFFF, 00000003 reads 00000003
Channel 4 BCR: FFFFFFFF reads FFFFFFFF, halfword 1234 at +2 reads 12340000, then byte 56 at +1 reads 12345600
Channel 4 CHCR: FFFFFFFF reads 71770703, 8E88F8FC reads 00000000, 60770703 reads 60770703 (at +Ch 60770703)
Channel 4 CHCR: 10000000 reads 10000000, byte 07 at +2 reads 00070000, 0 reads 00000000
Channel 5 MADR: FFFFFFFF reads 00FFFFFF, 00000003 reads 00000003
Channel 5 BCR: FFFFFFFF reads FFFFFFFF, halfword 1234 at +2 reads 12340000, then byte 56 at +1 reads 12345600
Channel 5 CHCR: FFFFFFFF reads 71770703, 8E88F8FC reads 00000000, 60770703 reads 60770703 (at +Ch 60770703)
Channel 5 CHCR: 10000000 reads 10000000, byte 07 at +2 reads 00070000, 0 reads 00000000
Channel 6 MADR: FFFFFFFF reads 00FFFFFF, 00000003 reads 00000003
Channel 6 BCR: FFFFFFFF reads FFFFFFFF, halfword 1234 at +2 reads 12340000, then byte 56 at +1 reads 12345600
Channel 6 CHCR: FFFFFFFF reads 51000002, 8E88F8FC reads 00000002, 60770703 reads 40000002 (at +Ch 40000002)
Channel 6 CHCR: 10000000 reads 10000002, byte 07 at +2 reads 00000002, 0 reads 00000002
DPCR was 33333B33. FFFFFFFF reads FFFFFFFF, 0 reads 00000000, 80000000 reads 80000000, 70000000 reads 70000000, byte 08 at +3 reads 08000000
DICR was 00000000. 0 reads 00000000, 7F reads 0000003F, 7F80 reads 00000000, FF0000 reads 00FF0000, 80000000 reads 00000000, IRQ3 0
DICR 8000 reads 80008000 with IRQ3 1; 0 reads 00000000; 8000 again IRQ3 0; 8000 while set IRQ3 1
DICR byte 80 at +2 reads 00800000, halfword 0080 at +2 reads 00800000
1F8010F8h reads 3FEB1A1C, 1F8010FCh reads 00FFFFFF, at +2 halfwords 3FEB 00FF
Done.

02DOT.txt:

===== 02 DOT DMA OTC TIMES | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
DMA6 OTC, CHCR 11000002: system clocks from the CHCR write to the poll that sees bit 24 clear, four times each.
CHCR written 00000002, no transfer: 68, polls 0
OTC     1 words: 89 89 89 92 | polls 1, MADR start0, BCR 00000001, CHCR 00000002, table right
After the first OTC: 1F8010F8h 3FE32A5C, 1F8010FCh 00FFFFFF
OTC     2 words: 90 90 95 90 | polls 1, MADR start0, BCR 00000002, CHCR 00000002, table right
OTC     3 words: 91 97 91 91 | polls 1, MADR start0, BCR 00000003, CHCR 00000002, table right
OTC     4 words: 92 92 102 94 | polls 1, MADR start0, BCR 00000004, CHCR 00000002, table right
OTC     8 words: 101 101 101 101 | polls 1, MADR start0, BCR 00000008, CHCR 00000002, table right
OTC    15 words: 112 108 112 112 | polls 1, MADR start0, BCR 0000000F, CHCR 00000002, table right
OTC    16 words: 109 112 109 109 | polls 1, MADR start0, BCR 00000010, CHCR 00000002, table right
OTC    17 words: 110 110 110 110 | polls 1, MADR start0, BCR 00000011, CHCR 00000002, table right
OTC    32 words: 125 125 125 125 | polls 1, MADR start0, BCR 00000020, CHCR 00000002, table right
OTC    64 words: 157 167 161 160 | polls 1, MADR start0, BCR 00000040, CHCR 00000002, table right
OTC   128 words: 223 231 224 231 | polls 1, MADR start0, BCR 00000080, CHCR 00000002, table right
OTC   256 words: 359 359 359 359 | polls 1, MADR start0, BCR 00000100, CHCR 00000002, table right
OTC  1024 words: 1182 1176 1175 1172 | polls 1, MADR start0, BCR 00000400, CHCR 00000002, table right
OTC  4096 words: 4434 4429 4434 4432 | polls 1, MADR start0, BCR 00001000, CHCR 00000002, table right
OTC 16384 words: 17462 17467 17470 17463 | polls 1, MADR start0, BCR 00004000, CHCR 00000002, table right
OTC 65535 words: 69590 69596 69591 69600 | polls 1, MADR start0, BCR 0000FFFF, CHCR 00000002, table right
OTC 65536 words: 69602 69596 69597 69596 | polls 1, MADR start0, BCR 00000000, CHCR 00000002, table right
OTC 256 words, CHCR 51000002 (bit 30): 359 361 359 359 | CHCR after 40000002, table right
OTC BCR 00050010 (16 words, 5 in the upper half): 109 109 109 109 | BCR after 00050010, table right
After: 1F8010F8h 3FE32A5C, 1F8010FCh 00FFFFFF
Done.

03DGL.txt:

===== 03 DGL DMA GPU LISTS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
DMA2 linked lists, CHCR 01000401, GP1(04h)=2: clocks from the CHCR write to bit 24 clear, and the polls the CPU made meanwhile. BCR written 00050010 first.
List    1 nodes of   0 NOP words: 90 (1 polls) 90 (1 polls) 90 (1 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List    2 nodes of   0 NOP words: 100 (1 polls) 94 (1 polls) 94 (1 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List    4 nodes of   0 NOP words: 114 (2 polls) 114 (2 polls) 114 (2 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of   0 NOP words: 235 (8 polls) 234 (8 polls) 238 (8 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   64 nodes of   0 NOP words: 718 (32 polls) 727 (33 polls) 726 (33 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List  256 nodes of   0 NOP words: 2691 (133 polls) 2690 (133 polls) 2699 (133 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List 1024 nodes of   0 NOP words: 10561 (533 polls) 10557 (532 polls) 10557 (532 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List 2048 nodes of   0 NOP words: 21043 (1065 polls) 21037 (1064 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of   1 NOP words: 329 (15 polls) 325 (15 polls) 330 (15 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of   2 NOP words: 349 (15 polls) 340 (15 polls) 344 (15 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of   4 NOP words: 383 (15 polls) 374 (15 polls) 374 (15 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of   8 NOP words: 450 (15 polls) 450 (15 polls) 450 (15 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of  15 NOP words: 568 (15 polls) 568 (15 polls) 565 (15 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of  16 NOP words: 584 (15 polls) 588 (15 polls) 584 (15 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of  32 NOP words: 858 (15 polls) 858 (15 polls) 858 (15 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of  64 NOP words: 1389 (15 polls) 1384 (15 polls) 1395 (15 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of 128 NOP words: 2474 (15 polls) 2478 (15 polls) 2474 (15 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of 255 NOP words: 4619 (15 polls) 4621 (15 polls) 4613 (15 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List    1 nodes of 255 NOP words: 367 (1 polls) 361 (1 polls) 363 (1 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List    4 nodes of 255 NOP words: 1208 (3 polls) 1210 (3 polls) 1210 (3 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
Done.

04DGB.txt:

===== 04 DGB DMA GPU BLOCKS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
DMA2 blocks to and from VRAM at 512,256: clocks from the CHCR write to bit 24 clear, twice each; polls, MADR, BCR and CHCR after.
Write SyncMode 1, 16 words x 1: 107 107 | polls 1, MADR start64, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 2: 124 124 | polls 1, MADR start128, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 4: 178 178 | polls 3, MADR start256, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 16: 517 517 | polls 15, MADR start1024, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 64: 1875 1867 | polls 63, MADR start4096, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 256: 7127 7121 | polls 258, MADR start16384, BCR 00000010, CHCR 00000201
Write SyncMode 1, 1 word x 256: 2976 2987 | polls 194, MADR start1024, BCR 00000001, CHCR 00000201
Write SyncMode 1, 2 words x 128: 1743 1739 | polls 127, MADR start1024, BCR 00000002, CHCR 00000201
Write SyncMode 1, 4 words x 64: 983 993 | polls 63, MADR start1024, BCR 00000004, CHCR 00000201
Write SyncMode 1, 8 words x 32: 668 672 | polls 31, MADR start1024, BCR 00000008, CHCR 00000201
Write SyncMode 1, 32 words x 8: 420 451 | polls 8, MADR start1024, BCR 00000020, CHCR 00000201
Write SyncMode 0, 256 words: 357 357 | polls 1, MADR start0, BCR 00000100, CHCR 00000001
Write SyncMode 0, 2048 words: 2251 2253 | polls 1, MADR start0, BCR 00000800, CHCR 00000001
Write SyncMode 0 bit 28, 256 words: 357 357 | polls 1, MADR start0, BCR 00000100, CHCR 00000001
Write SyncMode 1 bit 28, 16 words x 16: 540 520 | polls 15, MADR start1024, BCR 00000010, CHCR 00000201
Write SyncMode 1, MADR+2, 16 words x 4: 178 178 | polls 3, MADR start254, BCR 00000010, CHCR 00000201
Write SyncMode 1, MADR+1, 16 words x 4: 178 184 | polls 3, MADR start255, BCR 00000010, CHCR 00000201
Read SyncMode 1, 16 words x 1: 109 109 | polls 1, MADR start64, BCR 00000010, CHCR 00000200
Read SyncMode 1, 16 words x 16: 558 557 | polls 18, MADR start1024, BCR 00000010, CHCR 00000200
Read SyncMode 1, 16 words x 64: 2235 2243 | polls 91, MADR start4096, BCR 00000010, CHCR 00000200
Read SyncMode 1, 4 words x 64: 929 928 | polls 63, MADR start1024, BCR 00000004, CHCR 00000200
Read SyncMode 0, 256 words: 362 359 | polls 1, MADR start0, BCR 00000100, CHCR 00000000
Read SyncMode 0 bit 28, 256 words: 365 359 | polls 1, MADR start0, BCR 00000100, CHCR 00000000
Read SyncMode 1, MADR+2, 16 words x 4: 178 174 | polls 3, MADR start254, BCR 00000010, CHCR 00000200
Read back words 0-3: 7FFF0000 7FFF0001 7FFF0002 7FFF0003
Done.

05DSP.txt:

===== 05 DSP DMA SPU TIMES | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
DMA4 to and from sound RAM at 1000h: clocks from the CHCR write to bit 24 clear (polls meanwhile), three times each; MADR, BCR, CHCR after. SPU delay was 220931E1, 220931E1 here.
Write SyncMode 1, 16 words x 1: 219 (1) 221 (1) 217 (1) | MADR start64, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 2: 1498 (90) 1483 (88) 1286 (73) | MADR start128, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 4: 3836 (249) 3832 (249) 3847 (250) | MADR start256, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 8: 8533 (571) 8545 (572) 8545 (572) | MADR start512, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 16: 17780 (1202) 17783 (1202) 17790 (1202) | MADR start1024, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 64: 73072 (4969) 73079 (4970) 73079 (4970) | MADR start4096, BCR 00000010, CHCR 00000201
Write SyncMode 1, 1 word x 64: 4067 (264) 4084 (265) 4079 (265) | MADR start256, BCR 00000001, CHCR 00000201
Write SyncMode 1, 2 words x 32: 4867 (330) 4879 (331) 4870 (330) | MADR start256, BCR 00000002, CHCR 00000201
Write SyncMode 1, 4 words x 16: 4487 (299) 4478 (298) 4487 (299) | MADR start256, BCR 00000004, CHCR 00000201
Write SyncMode 1, 8 words x 8: 4278 (284) 4279 (284) 4486 (300) | MADR start256, BCR 00000008, CHCR 00000201
Read SyncMode 1, 16 words x 1: 215 (1) 219 (1) 214 (1) | MADR start64, BCR 00000010, CHCR 00000200
Read SyncMode 1, 16 words x 4: 3901 (254) 3911 (254) 3913 (255) | MADR start256, BCR 00000010, CHCR 00000200
Read SyncMode 1, 16 words x 16: 17780 (1206) 17810 (1208) 17801 (1208) | MADR start1024, BCR 00000010, CHCR 00000200
Read SyncMode 1, 16 words x 64: 73099 (5000) 73106 (5000) 73097 (5000) | MADR start4096, BCR 00000010, CHCR 00000200
Read SyncMode 1, 4 words x 16: 4786 (323) 4784 (323) 4784 (323) | MADR start256, BCR 00000004, CHCR 00000200
Write SyncMode 0, 16 words: 217 (1) 217 (1) 220 (1) | MADR start0, BCR 00000010, CHCR 00000001
Write SyncMode 0, 64 words: 601 (1) 609 (1) 606 (1) | MADR start0, BCR 00000040, CHCR 00000001
Write SyncMode 0, 256 words: 2137 (1) 2142 (1) 2138 (1) | MADR start0, BCR 00000100, CHCR 00000001
Write SyncMode 0 bit 28, 64 words: 601 (1) 608 (1) 606 (1) | MADR start0, BCR 00000040, CHCR 00000001
Read SyncMode 0, 64 words: 641 (3) 667 (5) 652 (4) | MADR start0, BCR 00000040, CHCR 00000000
Read SyncMode 0 bit 28, 64 words: 614 (1) 615 (1) 618 (1) | MADR start0, BCR 00000040, CHCR 00000000
Write SyncMode 1 bit 28, 16 words x 4: 3840 (250) 3841 (250) 3847 (250) | MADR start256, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 16, SPU delay 220931F1: 17775 (1201) 17339 (1167) 17781 (1202) | MADR start1024, BCR 00000010, CHCR 00000201
Read SyncMode 1, 16 words x 16, SPU delay 220931F1: 17790 (1207) 17801 (1208) 17810 (1208) | MADR start1024, BCR 00000010, CHCR 00000200
Write SyncMode 1, 16 words x 16, SPU delay 22093141: 17431 (1173) 17642 (1190) 17651 (1191) | MADR start1024, BCR 00000010, CHCR 00000201
Read SyncMode 1, 16 words x 16, delay 200931E1: 16874 (1215) 16868 (1214) 16868 (1214) | MADR start1024, BCR 00000010, CHCR 00000200
Read SyncMode 1, 16 words x 16, delay 220931E1: 17789 (1207) 17810 (1208) 17801 (1208) | MADR start1024, BCR 00000010, CHCR 00000200
64 words written then read back, SyncMode 1: 56 of 64 match
64 words written then read back, SyncMode 0: 16 of 64 match
Done.

06DMW.txt:

===== 06 DMW DMA MIDWAY | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
CHCR, MADR, BCR and DICR polled while a transfer runs: a row each time one changes (t is timer 2's low 16 bits). DICR flags need bit 23 and bit 16+n (dmachannels.txt:184-186); bits 0-6 may give a flag per slice (dmachannels.txt:174-177).
SPU write 16 words x 8, CHCR 01000201, DICR 00000000:
  poll    t: CHCR MADR BCR DICR
      0   553: 01000201 0011A428 00070010 00000000
      3  1662: 01000201 0011A468 00060010 00000000
      6  2740: 01000201 0011A4A8 00050010 00000000
     10  4093: 01000201 0011A4E8 00040010 00000000
     13  5160: 01000201 0011A528 00030010 00000000
     16  6229: 01000201 0011A568 00020010 00000000
     19  7293: 01000201 0011A568 00010010 00000000
     20  7658: 01000201 0011A5A8 00010010 00000000
     23  8726: 00000201 0011A5E8 00000010 00000000
  done after 23 polls
SPU write 16 words x 8, CHCR 11000201 (bit 28):
  poll    t: CHCR MADR BCR DICR
      0   520: 01000201 0011A428 00070010 00000000
      4  1900: 01000201 0011A468 00060010 00000000
      7  2961: 01000201 0011A4A8 00050010 00000000
     10  4033: 01000201 0011A4E8 00040010 00000000
     13  5101: 01000201 0011A4E8 00030010 00000000
     14  5469: 01000201 0011A528 00030010 00000000
     17  6540: 01000201 0011A568 00020010 00000000
     20  7611: 01000201 0011A5A8 00010010 00000000
     23  8685: 01000201 0011A5A8 00000010 00000000
     24  9054: 00000201 0011A5E8 00000010 00000000
  done after 24 polls
SPU write 16 words x 8, DICR 00900000 (bit 23, bit 20):
  poll    t: CHCR MADR BCR DICR
      0   515: 01000201 0011A428 00070010 00900000
      4  1903: 01000201 0011A468 00060010 00900000
      7  2976: 01000201 0011A4A8 00050010 00900000
     10  4040: 01000201 0011A4E8 00040010 00900000
     13  5112: 01000201 0011A528 00030010 00900000
     17  6465: 01000201 0011A568 00020010 00900000
     20  7532: 01000201 0011A5A8 00010010 00900000
     23  8602: 01000201 0011A5E8 00000010 90900000
     24  8964: 00000201 0011A5E8 00000010 90900000
  done after 24 polls
  I_STAT bit 3 after: 1
SPU write 16 words x 8, DICR 00900010 (bit 4 too, a flag per slice?):
  poll    t: CHCR MADR BCR DICR
      0   519: 01000201 0011A428 00070010 90900010
      4  1901: 01000201 0011A468 00060010 90900010
      7  2965: 01000201 0011A4A8 00050010 90900010
     10  4037: 01000201 0011A4E8 00040010 90900010
     13  5105: 01000201 0011A4E8 00030010 90900010
     14  5473: 01000201 0011A528 00030010 90900010
     17  6544: 01000201 0011A568 00020010 90900010
     20  7615: 01000201 0011A5A8 00010010 90900010
     23  8689: 01000201 0011A5A8 00000010 90900010
     24  9058: 00000201 0011A5E8 00000010 90900010
  done after 24 polls
  I_STAT bit 3 after: 1
SPU write 16 words x 8, DICR 00900010, I_STAT bit 3 in the last column:
  poll    t: CHCR MADR BCR I_STAT&8
      0   519: 01000201 0011A428 00070010 00000008
      4  1913: 01000201 0011A468 00060010 00000008
      7  2985: 01000201 0011A4A8 00050010 00000008
     10  4059: 01000201 0011A4E8 00040010 00000008
     13  5112: 01000201 0011A528 00030010 00000008
     17  6462: 01000201 0011A568 00020010 00000008
     20  7521: 01000201 0011A5A8 00010010 00000008
     23  8590: 01000201 0011A5E8 00000010 00000008
     24  8952: 00000201 0011A5E8 00000010 00000008
  done after 24 polls
SPU read 16 words x 8, CHCR 01000200:
  poll    t: CHCR MADR BCR DICR
      0   519: 01000200 0011A428 00070010 00000000
      4  1907: 01000200 0011A468 00060010 00000000
      7  2969: 01000200 0011A4A8 00050010 00000000
     10  4034: 01000200 0011A4E8 00040010 00000000
     13  5108: 01000200 0011A4E8 00030010 00000000
     14  5475: 01000200 0011A528 00030010 00000000
     17  6550: 01000200 0011A568 00020010 00000000
     20  7622: 01000200 0011A5A8 00010010 00000000
     23  8675: 00000200 0011A5E8 00000010 00000000
  done after 23 polls
GPU write 16 words x 8 to VRAM, CHCR 01000201:
  poll    t: CHCR MADR BCR DICR
      0   552: 01000201 0015B5E8 00000010 00000000
      1   941: 00000201 0015B5E8 00000010 00000000
  done after 1 polls
GPU list 8 nodes of 15 NOPs, DICR 00840004 (bit 2, a flag per entry?):
  list at 116248, nodes 64 bytes apart
  poll    t: CHCR MADR BCR DICR
      0   573: 01000401 00FFFFFF 00000000 84840004
      1   964: 00000401 00FFFFFF 00000000 84840004
  done after 1 polls
Done.

07DIC.txt:

===== 07 DIC DMA DICR | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
DICR around a 16 word OTC (channel 6: enable bit 22, flag bit 30). psx-spx sets the flag only with bit 23 and bit 22 (dmachannels.txt:184-186), nocash with bit 22 alone (channels.txt:122-123). IRQ3 is I_STAT bit 3, acknowledged before each OTC.
DICR 00000000 reads 00000000 (IRQ3 0); after OTC 00000000, IRQ3 0
DICR 00400000 reads 00400000 (IRQ3 0); after OTC 40400000, IRQ3 0
DICR 00800000 reads 00800000 (IRQ3 0); after OTC 00800000, IRQ3 0
DICR 00C00000 reads 00C00000 (IRQ3 0); after OTC C0C00000, IRQ3 1
DICR 00C00040 reads 00C00000 (IRQ3 0); after OTC C0C00000, IRQ3 1
DICR 00400040 reads 00400000 (IRQ3 0); after OTC 40400000, IRQ3 0
DICR 00BF0000 reads 00BF0000 (IRQ3 0); after OTC 00BF0000, IRQ3 0
DICR 00FF0000 reads 00FF0000 (IRQ3 0); after OTC C0FF0000, IRQ3 1
DICR 00008000 reads 80008000 (IRQ3 1); after OTC 80008000, IRQ3 0
DICR 00C08000 reads 80C08000 (IRQ3 1); after OTC C0C08000, IRQ3 0
DICR 0000003F reads 0000003F (IRQ3 0); after OTC 0000003F, IRQ3 0
A flag, then its enables taken away:
  after OTC: wrote 00C00000, reads C0C00000, IRQ3 1
  bit 22 off: wrote 00800000, reads C0800000, IRQ3 0
  bit 23 off too: wrote 00000000, reads 40000000, IRQ3 0
  bit 23 on: wrote 00800000, reads C0800000, IRQ3 1
  bit 23 on again: wrote 00800000, reads C0800000, IRQ3 0
  flag acknowledged: wrote 40800000, reads 00800000, IRQ3 0
  bit 31 written: wrote 80800000, reads 00800000, IRQ3 0
Flag with bit 22 alone, then bit 23:
  after OTC: wrote 00400000, reads 40400000, IRQ3 0
  bit 23 on: wrote 00C00000, reads C0C00000, IRQ3 1
Bit 15 set, then a flag:
  bit 15 and 22 and 23: wrote 00C08000, reads 80C08000, IRQ3 1
  after OTC: wrote 00C08000, reads C0C08000, IRQ3 0
  bit 15 off: wrote 00C00000, reads C0C00000, IRQ3 0
  flag acknowledged: wrote 40C00000, reads 00C00000, IRQ3 0
Two flags, one acknowledged:
  after first OTC: wrote 00C00000, reads C0C00000, IRQ3 1
  after second OTC: wrote 00C00000, reads C0C00000, IRQ3 0
  flag acknowledged: wrote 40C00000, reads 00C00000, IRQ3 0
  after third OTC: wrote 00C00000, reads C0C00000, IRQ3 1
OTC with bit 28 alone (no start, otc.c) and DICR 00C00000:
  after: wrote 00C00000, reads 00C00000, IRQ3 0
Done.

08DCP.txt:

===== 08 DCP DMA CPU DURING | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
A loop from the i-cache started right after the CHCR write that starts a transfer, then a timer 2 read: clocks alone and with the transfer. A loop turn is its body, addiu, bnez, nop.
OTC 16384 words (CHCR 11000002):
  registers n=1: alone 23, with the transfer 17407
  registers n=100: alone 419, with the transfer 17408
  registers n=1000: alone 4019, with the transfer 17400
  registers n=4000: alone 16019, with the transfer 17402
  registers n=10000: alone 40019, with the transfer 40019
  registers n=20000: alone 80019, with the transfer 80019
  scratchpad loads n=100: alone 419, with the transfer 17403
  scratchpad loads n=1000: alone 4019, with the transfer 17402
  scratchpad loads n=4000: alone 16019, with the transfer 17412
  scratchpad loads n=10000: alone 40019, with the transfer 40019
  scratchpad loads n=20000: alone 80019, with the transfer 80019
  RAM stores n=100: alone 423, with the transfer 17790
  RAM stores n=1000: alone 4020, with the transfer 21391
  RAM stores n=4000: alone 16020, with the transfer 33402
  RAM stores n=10000: alone 40021, with the transfer 57397
  RAM loads n=100: alone 929, with the transfer 18312
  RAM loads n=1000: alone 9162, with the transfer 26542
  RAM loads n=4000: alone 36586, with the transfer 53970
  RAM loads n=10000: alone 91444, with the transfer 108819
  CHCR loads n=100: alone 719, with the transfer 18094
  CHCR loads n=1000: alone 7019, with the transfer 24384
  CHCR loads n=4000: alone 28019, with the transfer 45394
  CHCR loads n=10000: alone 70019, with the transfer 87400
SPU write 16 words x 64 (CHCR 01000201):
  registers n=100: alone 419, with the transfer 419 (still busy after)
  registers n=1000: alone 4019, with the transfer 4019 (still busy after)
  registers n=4000: alone 16019, with the transfer 16019 (still busy after)
  registers n=10000: alone 40019, with the transfer 40019 (still busy after)
  RAM loads n=100: alone 930, with the transfer 1063 (still busy after)
  RAM loads n=1000: alone 9158, with the transfer 10481 (still busy after)
  RAM loads n=4000: alone 36586, with the transfer 41351 (still busy after)
  CHCR loads n=100: alone 719, with the transfer 850 (still busy after)
  CHCR loads n=1000: alone 7019, with the transfer 7946 (still busy after)
  CHCR loads n=4000: alone 28019, with the transfer 31752 (still busy after)
GPU write 2048 words SyncMode 0 chopped, DMA window 1 word, CPU window 128 clocks (CHCR 01700101):
  registers n=100: alone 424, with the transfer 432 (still busy after) (clock/8)
  registers n=1000: alone 4016, with the transfer 4040 (still busy after) (clock/8)
  registers n=4000: alone 16024, with the transfer 16040 (still busy after) (clock/8)
  registers n=10000: alone 40016, with the transfer 40032 (still busy after) (clock/8)
  RAM loads n=100: alone 928, with the transfer 976 (still busy after) (clock/8)
  RAM loads n=1000: alone 9160, with the transfer 9232 (still busy after) (clock/8)
  RAM loads n=4000: alone 36592, with the transfer 36800 (still busy after) (clock/8)
GPU write 2048 words SyncMode 0 not chopped (CHCR 01000001):
  registers n=100: alone 419, with the transfer 2215
  registers n=1000: alone 4019, with the transfer 4036
  registers n=4000: alone 16019, with the transfer 16036
  registers n=10000: alone 40019, with the transfer 40036
Done.

09DCH.txt:

===== 09 DCH DMA CHOP SHARE | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
GPU write 2048 words SyncMode 0 chopped (CHCR 01xx0101), polling CHCR: clocks, polls (the CPU's share), MADR, BCR, CHCR after. Not chopped for scale first.
Not chopped: 2247, polls 1
DMA window   1 words, CPU window   1 clocks: 16720, polls 1040, MADR start8192, BCR 00000000, CHCR 00000101
DMA window   1 words, CPU window   4 clocks: 23376, polls 1547, MADR start8192, BCR 00000000, CHCR 00200101
DMA window   1 words, CPU window  16 clocks: 47880, polls 3412, MADR start8192, BCR 00000000, CHCR 00400101
DMA window   1 words, CPU window  32 clocks: 80688, polls 6141, MADR start8192, BCR 00000000, CHCR 00500101
DMA window   1 words, CPU window 128 clocks: 276648, polls 20471, MADR start8192, BCR 00000000, CHCR 00700101
DMA window   2 words, CPU window   1 clocks: 9440, polls 512, MADR start8192, BCR 00000000, CHCR 00010101
DMA window   2 words, CPU window   4 clocks: 13408, polls 1023, MADR start8192, BCR 00000000, CHCR 00210101
DMA window   2 words, CPU window  16 clocks: 24640, polls 1706, MADR start8192, BCR 00000000, CHCR 00410101
DMA window   2 words, CPU window  32 clocks: 41000, polls 3069, MADR start8192, BCR 00000000, CHCR 00510101
DMA window   2 words, CPU window 128 clocks: 139216, polls 10231, MADR start8192, BCR 00000000, CHCR 00710101
DMA window   4 words, CPU window   1 clocks: 5864, polls 267, MADR start8192, BCR 00000000, CHCR 00020101
DMA window   4 words, CPU window   4 clocks: 7352, polls 511, MADR start8192, BCR 00000000, CHCR 00220101
DMA window   4 words, CPU window  16 clocks: 13480, polls 1022, MADR start8192, BCR 00000000, CHCR 00420101
DMA window   4 words, CPU window  32 clocks: 21872, polls 1533, MADR start8192, BCR 00000000, CHCR 00520101
DMA window   4 words, CPU window 128 clocks: 70680, polls 5111, MADR start8192, BCR 00000000, CHCR 00720101
DMA window  16 words, CPU window   1 clocks: 3136, polls 127, MADR start8192, BCR 00000000, CHCR 00040101
DMA window  16 words, CPU window   4 clocks: 3488, polls 127, MADR start8192, BCR 00000000, CHCR 00240101
DMA window  16 words, CPU window  16 clocks: 5024, polls 254, MADR start8192, BCR 00000000, CHCR 00440101
DMA window  16 words, CPU window  32 clocks: 7064, polls 381, MADR start8192, BCR 00000000, CHCR 00540101
DMA window  16 words, CPU window 128 clocks: 19272, polls 1271, MADR start8192, BCR 00000000, CHCR 00740101
DMA window 128 words, CPU window   1 clocks: 2344, polls 15, MADR start8192, BCR 00000000, CHCR 00070101
DMA window 128 words, CPU window   4 clocks: 2392, polls 15, MADR start8192, BCR 00000000, CHCR 00270101
DMA window 128 words, CPU window  16 clocks: 2568, polls 30, MADR start8192, BCR 00000000, CHCR 00470101
DMA window 128 words, CPU window  32 clocks: 2800, polls 45, MADR start8192, BCR 00000000, CHCR 00570101
DMA window 128 words, CPU window 128 clocks: 4216, polls 151, MADR start8192, BCR 00000000, CHCR 00770101
Chopped 1 word / 128 clocks, as it runs:
  poll    t: CHCR MADR BCR GPUSTAT&1C000000
      0   427: 01700101 0015B3EC 000007FF 10000000
      1   838: 01700101 0015B3FC 000007FB 10000000
      2  1210: 01700101 0015B404 000007F8 10000000
      3  1583: 01700101 0015B410 000007F6 00000000
      4  1958: 01700101 0015B41C 000007F3 10000000
      5  2323: 01700101 0015B428 000007F0 10000000
      6  2695: 01700101 0015B430 000007ED 10000000
      7  3075: 01700101 0015B43C 000007EB 00000000
      8  3447: 01700101 0015B448 000007E8 10000000
      9  3812: 01700101 0015B454 000007E5 10000000
     10  4186: 01700101 0015B45C 000007E2 10000000
     11  4563: 01700101 0015B468 000007E0 00000000
     12  4939: 01700101 0015B474 000007DD 10000000
     13  5306: 01700101 0015B480 000007DA 10000000
     14  5677: 01700101 0015B488 000007D7 10000000
     15  6054: 01700101 0015B494 000007D5 00000000
     16  6430: 01700101 0015B4A0 000007D2 10000000
     17  6807: 01700101 0015B4AC 000007CF 10000000
     18  7181: 01700101 0015B4B4 000007CC 10000000
     19  7558: 01700101 0015B4C0 000007CA 00000000
  done after 949 polls (rows cut at 20)
SPU write 256 words SyncMode 0 chopped 16 words / 64 clocks (CHCR 01640101): 3206, polls 75, MADR start1024, BCR 00000000
SPU write 256 words SyncMode 0 not chopped: 2137, polls 1
Done.

10DPR.txt:

===== 10 DPR DMA PRIORITY | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
Two channels armed with their DPCR enables off, then one DPCR write: which wrote each of 64 shared words last (O OTC, S SPU, G GPU, . untouched, ? other).
SPU read SyncMode 1, priority 1, OTC priority 5: 3905 clocks, 247 polls
  OOOOOOOOOOOOOOOOSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
SPU read SyncMode 1, priority 5, OTC priority 1: 3905 clocks, 247 polls
  SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
SPU read SyncMode 1, priority 3, OTC priority 3: 3908 clocks, 247 polls
  SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
SPU read SyncMode 0, priority 1, OTC priority 5: 715 clocks, 1 polls
  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
SPU read SyncMode 0, priority 5, OTC priority 1: 718 clocks, 1 polls
  SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
SPU read SyncMode 0, priority 3, OTC priority 3: 718 clocks, 1 polls
  SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
GPU read SyncMode 1, priority 1, OTC priority 5: 258 clocks, 1 polls
  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
GPU read SyncMode 1, priority 5, OTC priority 1: 277 clocks, 2 polls
  GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
GPU read SyncMode 1, priority 3, OTC priority 3: 271 clocks, 2 polls
  GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
GPU read SyncMode 0, priority 1, OTC priority 5: 265 clocks, 1 polls
  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
GPU read SyncMode 0, priority 5, OTC priority 1: 265 clocks, 1 polls
  GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
DPCR bits 28-30, CPU priority (channels.txt:105, dmachannels.txt:168):
DPCR 0B3B3B33, SPU write 16 words x 64: 73079, polls 4970; loop of 10000 alone 40025, with the SPU write 40019
DPCR 3B3B3B33, SPU write 16 words x 64: 73077, polls 4970; loop of 10000 alone 40025, with the SPU write 40019
DPCR 7B3B3B33, SPU write 16 words x 64: 73087, polls 4970; loop of 10000 alone 40025, with the SPU write 40019
Done.

11DMD.txt:

===== 11 DMD DMA MDEC | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
DMA0 and DMA1 with the MDEC: tables, then MDEC(1) on blocks of only a DC value (Q 1, DC 20h) and FE00h; DMA1 armed first. Clocks from the DMA0 start. Scale table zero.
Mono 8 bit, 1 block, out 16x1: quant 16 words 107, scale 32 words 68, decode: DMA0 done at 175, DMA1 done at 1013, 30 polls
  output sum 08080800, words 0 and last 80808080 80808080; MDEC status 8204FFFF
  DMA0 MADR start128 BCR 00000020 CHCR 00000201; DMA1 MADR start64 BCR 00000010 CHCR 00000200
Mono 8 bit, 4 blocks, out 16x4: quant 16 words timeout, scale 32 words timeout, decode: DMA0 done at timeout, DMA1 done at timeout, 200001 polls
  output sum 33333300, words 0 and last CCCCCCCC CCCCCCCC; MDEC status A004000D
  DMA0 MADR start0 BCR 00010020 CHCR 01000201; DMA1 MADR start0 BCR 00040010 CHCR 01000200
Mono 8 bit, 4 blocks, out 32x2: quant 16 words timeout, scale 32 words timeout, decode: DMA0 done at timeout, DMA1 done at timeout, 200001 polls
  output sum 33333300, words 0 and last CCCCCCCC CCCCCCCC; MDEC status A004000D
  DMA0 MADR start0 BCR 00010020 CHCR 01000201; DMA1 MADR start0 BCR 00020020 CHCR 01000200
Mono 4 bit, 4 blocks, out 8x4: quant 16 words timeout, scale 32 words timeout, decode: DMA0 done at timeout, DMA1 done at timeout, 200001 polls
  output sum 99999980, words 0 and last CCCCCCCC CCCCCCCC; MDEC status A004000D
  DMA0 MADR start0 BCR 00010020 CHCR 01000201; DMA1 MADR start0 BCR 00040008 CHCR 01000200
Colour 15 bit, 1 macroblock, out 32x4: quant 16 words timeout, scale 32 words timeout, decode: DMA0 done at timeout, DMA1 done at timeout, 200001 polls
  output sum 66666600, words 0 and last CCCCCCCC CCCCCCCC; MDEC status A004000D
  DMA0 MADR start0 BCR 00010020 CHCR 01000201; DMA1 MADR start0 BCR 00040020 CHCR 01000200
Colour 24 bit, 1 macroblock, out 32x6: quant 16 words timeout, scale 32 words timeout, decode: DMA0 done at timeout, DMA1 done at timeout, 200001 polls
  output sum 99999900, words 0 and last CCCCCCCC CCCCCCCC; MDEC status A004000D
  DMA0 MADR start0 BCR 00010020 CHCR 01000201; DMA1 MADR start0 BCR 00060020 CHCR 01000200
Colour 15 bit, 2 macroblocks, out 32x8: quant 16 words timeout, scale 32 words timeout, decode: DMA0 done at timeout, DMA1 done at timeout, 200001 polls
  output sum CCCCCC00, words 0 and last CCCCCCCC CCCCCCCC; MDEC status A004000D
  DMA0 MADR start0 BCR 00010020 CHCR 01000201; DMA1 MADR start0 BCR 00080020 CHCR 01000200
Done.

27 September 2026 card-g3

Raw output: 00RUN.txt · 01DRB.txt · 02DOT.txt · 03DGL.txt · 04DGB.txt · 05DSP.txt · 06DMW.txt · 07DIC.txt · 08DCP.txt · 09DCH.txt · 10DPR.txt · 11DMD.txt

00RUN.txt:

===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
11 tests
A chain program, linked at 80010000
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 8010D338 PRId 00000002

01DRB.txt:

===== 01 DRB DMA READ BACK | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
DMA registers written and read back, each channel with its DPCR enable off.
1F8010F8h reads 7FE7581A, 1F8010FCh reads 00FFFFFF
Channel 0 MADR: FFFFFFFF reads 00FFFFFF, 00000003 reads 00000003
Channel 0 BCR: FFFFFFFF reads FFFFFFFF, halfword 1234 at +2 reads 12340000, then byte 56 at +1 reads 12345600
Channel 0 CHCR: FFFFFFFF reads 71770703, 8E88F8FC reads 00000000, 60770703 reads 60770703 (at +Ch 60770703)
Channel 0 CHCR: 10000000 reads 10000000, byte 07 at +2 reads 00070000, 0 reads 00000000
Channel 1 MADR: FFFFFFFF reads 00FFFFFF, 00000003 reads 00000003
Channel 1 BCR: FFFFFFFF reads FFFFFFFF, halfword 1234 at +2 reads 12340000, then byte 56 at +1 reads 12345600
Channel 1 CHCR: FFFFFFFF reads 71770703, 8E88F8FC reads 00000000, 60770703 reads 60770703 (at +Ch 60770703)
Channel 1 CHCR: 10000000 reads 10000000, byte 07 at +2 reads 00070000, 0 reads 00000000
Channel 2 MADR: FFFFFFFF reads 00FFFFFF, 00000003 reads 00000003
Channel 2 BCR: FFFFFFFF reads FFFFFFFF, halfword 1234 at +2 reads 12340000, then byte 56 at +1 reads 12345600
Channel 2 CHCR: FFFFFFFF reads 71770703, 8E88F8FC reads 00000000, 60770703 reads 60770703 (at +Ch 60770703)
Channel 2 CHCR: 10000000 reads 10000000, byte 07 at +2 reads 00070000, 0 reads 00000000
Channel 3 MADR: FFFFFFFF reads 00FFFFFF, 00000003 reads 00000003
Channel 3 BCR: FFFFFFFF reads FFFFFFFF, halfword 1234 at +2 reads 12340000, then byte 56 at +1 reads 12345600
Channel 3 CHCR: FFFFFFFF reads 71770703, 8E88F8FC reads 00000000, 60770703 reads 60770703 (at +Ch 60770703)
Channel 3 CHCR: 10000000 reads 10000000, byte 07 at +2 reads 00070000, 0 reads 00000000
Channel 4 MADR: FFFFFFFF reads 00FFFFFF, 00000003 reads 00000003
Channel 4 BCR: FFFFFFFF reads FFFFFFFF, halfword 1234 at +2 reads 12340000, then byte 56 at +1 reads 12345600
Channel 4 CHCR: FFFFFFFF reads 71770703, 8E88F8FC reads 00000000, 60770703 reads 60770703 (at +Ch 60770703)
Channel 4 CHCR: 10000000 reads 10000000, byte 07 at +2 reads 00070000, 0 reads 00000000
Channel 5 MADR: FFFFFFFF reads 00FFFFFF, 00000003 reads 00000003
Channel 5 BCR: FFFFFFFF reads FFFFFFFF, halfword 1234 at +2 reads 12340000, then byte 56 at +1 reads 12345600
Channel 5 CHCR: FFFFFFFF reads 71770703, 8E88F8FC reads 00000000, 60770703 reads 60770703 (at +Ch 60770703)
Channel 5 CHCR: 10000000 reads 10000000, byte 07 at +2 reads 00070000, 0 reads 00000000
Channel 6 MADR: FFFFFFFF reads 00FFFFFF, 00000003 reads 00000003
Channel 6 BCR: FFFFFFFF reads FFFFFFFF, halfword 1234 at +2 reads 12340000, then byte 56 at +1 reads 12345600
Channel 6 CHCR: FFFFFFFF reads 51000002, 8E88F8FC reads 00000002, 60770703 reads 40000002 (at +Ch 40000002)
Channel 6 CHCR: 10000000 reads 10000002, byte 07 at +2 reads 00000002, 0 reads 00000002
DPCR was 33333B33. FFFFFFFF reads FFFFFFFF, 0 reads 00000000, 80000000 reads 80000000, 70000000 reads 70000000, byte 08 at +3 reads 08000000
DICR was 00000000. 0 reads 00000000, 7F reads 0000003F, 7F80 reads 00000000, FF0000 reads 00FF0000, 80000000 reads 00000000, IRQ3 0
DICR 8000 reads 80008000 with IRQ3 1; 0 reads 00000000; 8000 again IRQ3 0; 8000 while set IRQ3 1
DICR byte 80 at +2 reads 00800000, halfword 0080 at +2 reads 00800000
1F8010F8h reads 7FE7581A, 1F8010FCh reads 00FFFFFF, at +2 halfwords 7FE7 00FF
Done.

02DOT.txt:

===== 02 DOT DMA OTC TIMES | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
DMA6 OTC, CHCR 11000002: system clocks from the CHCR write to the poll that sees bit 24 clear, four times each.
CHCR written 00000002, no transfer: 68, polls 0
OTC     1 words: 92 89 92 89 | polls 1, MADR start0, BCR 00000001, CHCR 00000002, table right
After the first OTC: 1F8010F8h 7FE3585A, 1F8010FCh 00FFFFFF
OTC     2 words: 90 90 94 90 | polls 1, MADR start0, BCR 00000002, CHCR 00000002, table right
OTC     3 words: 91 91 91 91 | polls 1, MADR start0, BCR 00000003, CHCR 00000002, table right
OTC     4 words: 92 92 92 92 | polls 1, MADR start0, BCR 00000004, CHCR 00000002, table right
OTC     8 words: 105 106 105 106 | polls 1, MADR start0, BCR 00000008, CHCR 00000002, table right
OTC    15 words: 108 113 108 108 | polls 1, MADR start0, BCR 0000000F, CHCR 00000002, table right
OTC    16 words: 109 114 114 113 | polls 1, MADR start0, BCR 00000010, CHCR 00000002, table right
OTC    17 words: 110 115 115 114 | polls 1, MADR start0, BCR 00000011, CHCR 00000002, table right
OTC    32 words: 125 128 125 129 | polls 1, MADR start0, BCR 00000020, CHCR 00000002, table right
OTC    64 words: 157 157 157 157 | polls 1, MADR start0, BCR 00000040, CHCR 00000002, table right
OTC   128 words: 221 221 231 221 | polls 1, MADR start0, BCR 00000080, CHCR 00000002, table right
OTC   256 words: 359 359 359 359 | polls 1, MADR start0, BCR 00000100, CHCR 00000002, table right
OTC  1024 words: 1172 1172 1172 1172 | polls 1, MADR start0, BCR 00000400, CHCR 00000002, table right
OTC  4096 words: 4429 4431 4434 4429 | polls 1, MADR start0, BCR 00001000, CHCR 00000002, table right
OTC 16384 words: 17468 17461 17463 17464 | polls 1, MADR start0, BCR 00004000, CHCR 00000002, table right
OTC 65535 words: 69601 69593 69585 69588 | polls 1, MADR start0, BCR 0000FFFF, CHCR 00000002, table right
OTC 65536 words: 69601 69594 69586 69587 | polls 1, MADR start0, BCR 00000000, CHCR 00000002, table right
OTC 256 words, CHCR 51000002 (bit 30): 359 360 359 359 | CHCR after 40000002, table right
OTC BCR 00050010 (16 words, 5 in the upper half): 115 109 109 109 | BCR after 00050010, table right
After: 1F8010F8h 7FE3585A, 1F8010FCh 00FFFFFF
Done.

03DGL.txt:

===== 03 DGL DMA GPU LISTS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
DMA2 linked lists, CHCR 01000401, GP1(04h)=2: clocks from the CHCR write to bit 24 clear, and the polls the CPU made meanwhile. BCR written 00050010 first.
List    1 nodes of   0 NOP words: 90 (1 polls) 96 (1 polls) 94 (1 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List    2 nodes of   0 NOP words: 94 (1 polls) 94 (1 polls) 94 (1 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List    4 nodes of   0 NOP words: 114 (2 polls) 119 (2 polls) 114 (2 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of   0 NOP words: 236 (8 polls) 235 (8 polls) 239 (8 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   64 nodes of   0 NOP words: 733 (34 polls) 728 (33 polls) 723 (33 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List  256 nodes of   0 NOP words: 2689 (133 polls) 2692 (133 polls) 2694 (133 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List 1024 nodes of   0 NOP words: 10557 (532 polls) 10560 (532 polls) 10560 (532 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List 2048 nodes of   0 NOP words: 21040 (1064 polls) 21043 (1065 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of   1 NOP words: 325 (15 polls) 328 (15 polls) 329 (15 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of   2 NOP words: 347 (15 polls) 345 (15 polls) 343 (15 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of   4 NOP words: 382 (15 polls) 372 (15 polls) 373 (15 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of   8 NOP words: 450 (15 polls) 440 (15 polls) 446 (15 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of  15 NOP words: 572 (15 polls) 568 (15 polls) 568 (15 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of  16 NOP words: 584 (15 polls) 569 (15 polls) 584 (15 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of  32 NOP words: 858 (15 polls) 864 (15 polls) 864 (15 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of  64 NOP words: 1398 (15 polls) 1394 (15 polls) 1380 (15 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of 128 NOP words: 2460 (15 polls) 2474 (15 polls) 2478 (15 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of 255 NOP words: 4620 (15 polls) 4628 (15 polls) 4612 (15 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List    1 nodes of 255 NOP words: 361 (1 polls) 361 (1 polls) 361 (1 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List    4 nodes of 255 NOP words: 1204 (3 polls) 1204 (3 polls) 1210 (3 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
Done.

04DGB.txt:

===== 04 DGB DMA GPU BLOCKS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
DMA2 blocks to and from VRAM at 512,256: clocks from the CHCR write to bit 24 clear, twice each; polls, MADR, BCR and CHCR after.
Write SyncMode 1, 16 words x 1: 107 107 | polls 1, MADR start64, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 2: 130 134 | polls 1, MADR start128, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 4: 182 178 | polls 3, MADR start256, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 16: 517 512 | polls 15, MADR start1024, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 64: 1855 1870 | polls 63, MADR start4096, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 256: 7153 7126 | polls 257, MADR start16384, BCR 00000010, CHCR 00000201
Write SyncMode 1, 1 word x 256: 2978 2983 | polls 193, MADR start1024, BCR 00000001, CHCR 00000201
Write SyncMode 1, 2 words x 128: 1732 1733 | polls 127, MADR start1024, BCR 00000002, CHCR 00000201
Write SyncMode 1, 4 words x 64: 983 988 | polls 63, MADR start1024, BCR 00000004, CHCR 00000201
Write SyncMode 1, 8 words x 32: 677 673 | polls 31, MADR start1024, BCR 00000008, CHCR 00000201
Write SyncMode 1, 32 words x 8: 433 431 | polls 7, MADR start1024, BCR 00000020, CHCR 00000201
Write SyncMode 0, 256 words: 357 357 | polls 1, MADR start0, BCR 00000100, CHCR 00000001
Write SyncMode 0, 2048 words: 2247 2247 | polls 1, MADR start0, BCR 00000800, CHCR 00000001
Write SyncMode 0 bit 28, 256 words: 363 357 | polls 1, MADR start0, BCR 00000100, CHCR 00000001
Write SyncMode 1 bit 28, 16 words x 16: 530 520 | polls 15, MADR start1024, BCR 00000010, CHCR 00000201
Write SyncMode 1, MADR+2, 16 words x 4: 178 183 | polls 3, MADR start254, BCR 00000010, CHCR 00000201
Write SyncMode 1, MADR+1, 16 words x 4: 178 183 | polls 3, MADR start255, BCR 00000010, CHCR 00000201
Read SyncMode 1, 16 words x 1: 109 109 | polls 1, MADR start64, BCR 00000010, CHCR 00000200
Read SyncMode 1, 16 words x 16: 569 569 | polls 19, MADR start1024, BCR 00000010, CHCR 00000200
Read SyncMode 1, 16 words x 64: 2235 2237 | polls 91, MADR start4096, BCR 00000010, CHCR 00000200
Read SyncMode 1, 4 words x 64: 929 920 | polls 63, MADR start1024, BCR 00000004, CHCR 00000200
Read SyncMode 0, 256 words: 359 359 | polls 1, MADR start0, BCR 00000100, CHCR 00000000
Read SyncMode 0 bit 28, 256 words: 359 369 | polls 1, MADR start0, BCR 00000100, CHCR 00000000
Read SyncMode 1, MADR+2, 16 words x 4: 179 174 | polls 3, MADR start254, BCR 00000010, CHCR 00000200
Read back words 0-3: 7FFF0000 7FFF0001 7FFF0002 7FFF0003
Done.

05DSP.txt:

===== 05 DSP DMA SPU TIMES | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
DMA4 to and from sound RAM at 1000h: clocks from the CHCR write to bit 24 clear (polls meanwhile), three times each; MADR, BCR, CHCR after. SPU delay was 200931E1, 220931E1 here.
Write SyncMode 1, 16 words x 1: 217 (1) 217 (1) 217 (1) | MADR start64, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 2: 1489 (89) 1288 (73) 1489 (89) | MADR start128, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 4: 3836 (249) 3840 (250) 3849 (250) | MADR start256, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 8: 8547 (572) 8543 (572) 8547 (572) | MADR start512, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 16: 17781 (1202) 17790 (1202) 17789 (1202) | MADR start1024, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 64: 73072 (4969) 73086 (4970) 73078 (4970) | MADR start4096, BCR 00000010, CHCR 00000201
Write SyncMode 1, 1 word x 64: 4089 (266) 4079 (265) 4088 (266) | MADR start256, BCR 00000001, CHCR 00000201
Write SyncMode 1, 2 words x 32: 4867 (330) 4895 (332) 4897 (332) | MADR start256, BCR 00000002, CHCR 00000201
Write SyncMode 1, 4 words x 16: 4487 (298) 4506 (300) 4493 (299) | MADR start256, BCR 00000004, CHCR 00000201
Write SyncMode 1, 8 words x 8: 4286 (284) 4491 (300) 4295 (285) | MADR start256, BCR 00000008, CHCR 00000201
Read SyncMode 1, 16 words x 1: 223 (1) 233 (2) 221 (1) | MADR start64, BCR 00000010, CHCR 00000200
Read SyncMode 1, 16 words x 4: 3896 (254) 3566 (229) 3902 (255) | MADR start256, BCR 00000010, CHCR 00000200
Read SyncMode 1, 16 words x 16: 17378 (1170) 17802 (1203) 17825 (1205) | MADR start1024, BCR 00000010, CHCR 00000200
Read SyncMode 1, 16 words x 64: 73084 (4970) 73119 (4973) 73109 (4972) | MADR start4096, BCR 00000010, CHCR 00000200
Read SyncMode 1, 4 words x 16: 4800 (325) 4795 (324) 4805 (326) | MADR start256, BCR 00000004, CHCR 00000200
Write SyncMode 0, 16 words: 219 (1) 222 (1) 222 (1) | MADR start0, BCR 00000010, CHCR 00000001
Write SyncMode 0, 64 words: 601 (1) 601 (1) 601 (1) | MADR start0, BCR 00000040, CHCR 00000001
Write SyncMode 0, 256 words: 2143 (1) 2141 (1) 2137 (1) | MADR start0, BCR 00000100, CHCR 00000001
Write SyncMode 0 bit 28, 64 words: 601 (1) 602 (1) 605 (1) | MADR start0, BCR 00000040, CHCR 00000001
Read SyncMode 0, 64 words: 634 (3) 644 (4) 644 (4) | MADR start0, BCR 00000040, CHCR 00000000
Read SyncMode 0 bit 28, 64 words: 613 (1) 613 (1) 614 (1) | MADR start0, BCR 00000040, CHCR 00000000
Write SyncMode 1 bit 28, 16 words x 4: 3846 (250) 3852 (250) 3849 (250) | MADR start256, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 16, SPU delay 220931F1: 17776 (1201) 17774 (1201) 17344 (1167) | MADR start1024, BCR 00000010, CHCR 00000201
Read SyncMode 1, 16 words x 16, SPU delay 220931F1: 17805 (1203) 17797 (1202) 17809 (1204) | MADR start1024, BCR 00000010, CHCR 00000200
Write SyncMode 1, 16 words x 16, SPU delay 22093141: 17584 (1186) 17348 (1167) 17693 (1194) | MADR start1024, BCR 00000010, CHCR 00000201
Read SyncMode 1, 16 words x 16, delay 200931E1: 16858 (1215) 16872 (1216) 16871 (1215) | MADR start1024, BCR 00000010, CHCR 00000200
Read SyncMode 1, 16 words x 16, delay 220931E1: 17814 (1204) 17813 (1204) 17825 (1205) | MADR start1024, BCR 00000010, CHCR 00000200
64 words written then read back, SyncMode 1: 55 of 64 match
64 words written then read back, SyncMode 0: 16 of 64 match
Done.

06DMW.txt:

===== 06 DMW DMA MIDWAY | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
CHCR, MADR, BCR and DICR polled while a transfer runs: a row each time one changes (t is timer 2's low 16 bits). DICR flags need bit 23 and bit 16+n (dmachannels.txt:184-186); bits 0-6 may give a flag per slice (dmachannels.txt:174-177).
SPU write 16 words x 8, CHCR 01000201, DICR 00000000:
  poll    t: CHCR MADR BCR DICR
      0   551: 01000201 0002A428 00070010 00000000
      3  1657: 01000201 0002A468 00060010 00000000
      6  2728: 01000201 0002A4A8 00050010 00000000
     10  4079: 01000201 0002A4E8 00040010 00000000
     13  5141: 01000201 0002A528 00030010 00000000
     16  6215: 01000201 0002A568 00020010 00000000
     19  7289: 01000201 0002A568 00010010 00000000
     20  7655: 01000201 0002A5A8 00010010 00000000
     23  8715: 00000201 0002A5E8 00000010 00000000
  done after 23 polls
SPU write 16 words x 8, CHCR 11000201 (bit 28):
  poll    t: CHCR MADR BCR DICR
      0   515: 01000201 0002A428 00070010 00000000
      4  1899: 01000201 0002A468 00060010 00000000
      7  2968: 01000201 0002A4A8 00050010 00000000
     10  4038: 01000201 0002A4E8 00040010 00000000
     13  5105: 01000201 0002A528 00030010 00000000
     17  6469: 01000201 0002A568 00020010 00000000
     20  7528: 01000201 0002A5A8 00010010 00000000
     24  8877: 00000201 0002A5E8 00000010 00000000
  done after 24 polls
SPU write 16 words x 8, DICR 00900000 (bit 23, bit 20):
  poll    t: CHCR MADR BCR DICR
      0   519: 01000201 0002A428 00070010 00900000
      4  1907: 01000201 0002A468 00060010 00900000
      7  2974: 01000201 0002A4A8 00050010 00900000
     10  4045: 01000201 0002A4E8 00040010 00900000
     13  5116: 01000201 0002A528 00030010 00900000
     17  6467: 01000201 0002A568 00020010 00900000
     20  7529: 01000201 0002A5A8 00010010 00900000
     23  8604: 01000201 0002A5E8 00000010 90900000
     24  8976: 00000201 0002A5E8 00000010 90900000
  done after 24 polls
  I_STAT bit 3 after: 1
SPU write 16 words x 8, DICR 00900010 (bit 4 too, a flag per slice?):
  poll    t: CHCR MADR BCR DICR
      0   518: 01000201 0002A428 00070010 90900010
      4  1912: 01000201 0002A468 00060010 90900010
      7  2984: 01000201 0002A4A8 00050010 90900010
     10  4054: 01000201 0002A4E8 00040010 90900010
     13  5116: 01000201 0002A528 00030010 90900010
     17  6470: 01000201 0002A568 00020010 90900010
     20  7544: 01000201 0002A5A8 00010010 90900010
     24  8893: 00000201 0002A5E8 00000010 90900010
  done after 24 polls
  I_STAT bit 3 after: 1
SPU write 16 words x 8, DICR 00900010, I_STAT bit 3 in the last column:
  poll    t: CHCR MADR BCR I_STAT&8
      0   520: 01000201 0002A428 00070010 00000008
      4  1910: 01000201 0002A468 00060010 00000008
      7  2977: 01000201 0002A4A8 00050010 00000008
     10  4048: 01000201 0002A4E8 00040010 00000008
     13  5119: 01000201 0002A528 00030010 00000008
     17  6470: 01000201 0002A568 00020010 00000008
     20  7532: 01000201 0002A5A8 00010010 00000008
     23  8606: 01000201 0002A5E8 00000010 00000008
     24  8982: 00000201 0002A5E8 00000010 00000008
  done after 24 polls
SPU read 16 words x 8, CHCR 01000200:
  poll    t: CHCR MADR BCR DICR
      0   521: 01000200 0002A428 00070010 00000000
      4  1900: 01000200 0002A468 00060010 00000000
      7  2964: 01000200 0002A4A8 00050010 00000000
     10  4043: 01000200 0002A4E8 00040010 00000000
     13  5106: 01000200 0002A4E8 00030010 00000000
     14  5474: 01000200 0002A528 00030010 00000000
     17  6544: 01000200 0002A568 00020010 00000000
     20  7600: 01000200 0002A5A8 00010010 00000000
     23  8669: 00000200 0002A5E8 00000010 00000000
  done after 23 polls
GPU write 16 words x 8 to VRAM, CHCR 01000201:
  poll    t: CHCR MADR BCR DICR
      0   548: 01000201 0006B5E8 00000010 00000000
      1   943: 00000201 0006B5E8 00000010 00000000
  done after 1 polls
GPU list 8 nodes of 15 NOPs, DICR 00840004 (bit 2, a flag per entry?):
  list at 026248, nodes 64 bytes apart
  poll    t: CHCR MADR BCR DICR
      0   575: 01000401 00FFFFFF 00000000 84840004
      1   969: 00000401 00FFFFFF 00000000 84840004
  done after 1 polls
Done.

07DIC.txt:

===== 07 DIC DMA DICR | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
DICR around a 16 word OTC (channel 6: enable bit 22, flag bit 30). psx-spx sets the flag only with bit 23 and bit 22 (dmachannels.txt:184-186), nocash with bit 22 alone (channels.txt:122-123). IRQ3 is I_STAT bit 3, acknowledged before each OTC.
DICR 00000000 reads 00000000 (IRQ3 0); after OTC 00000000, IRQ3 0
DICR 00400000 reads 00400000 (IRQ3 0); after OTC 40400000, IRQ3 0
DICR 00800000 reads 00800000 (IRQ3 0); after OTC 00800000, IRQ3 0
DICR 00C00000 reads 00C00000 (IRQ3 0); after OTC C0C00000, IRQ3 1
DICR 00C00040 reads 00C00000 (IRQ3 0); after OTC C0C00000, IRQ3 1
DICR 00400040 reads 00400000 (IRQ3 0); after OTC 40400000, IRQ3 0
DICR 00BF0000 reads 00BF0000 (IRQ3 0); after OTC 00BF0000, IRQ3 0
DICR 00FF0000 reads 00FF0000 (IRQ3 0); after OTC C0FF0000, IRQ3 1
DICR 00008000 reads 80008000 (IRQ3 1); after OTC 80008000, IRQ3 0
DICR 00C08000 reads 80C08000 (IRQ3 1); after OTC C0C08000, IRQ3 0
DICR 0000003F reads 0000003F (IRQ3 0); after OTC 0000003F, IRQ3 0
A flag, then its enables taken away:
  after OTC: wrote 00C00000, reads C0C00000, IRQ3 1
  bit 22 off: wrote 00800000, reads C0800000, IRQ3 0
  bit 23 off too: wrote 00000000, reads 40000000, IRQ3 0
  bit 23 on: wrote 00800000, reads C0800000, IRQ3 1
  bit 23 on again: wrote 00800000, reads C0800000, IRQ3 0
  flag acknowledged: wrote 40800000, reads 00800000, IRQ3 0
  bit 31 written: wrote 80800000, reads 00800000, IRQ3 0
Flag with bit 22 alone, then bit 23:
  after OTC: wrote 00400000, reads 40400000, IRQ3 0
  bit 23 on: wrote 00C00000, reads C0C00000, IRQ3 1
Bit 15 set, then a flag:
  bit 15 and 22 and 23: wrote 00C08000, reads 80C08000, IRQ3 1
  after OTC: wrote 00C08000, reads C0C08000, IRQ3 0
  bit 15 off: wrote 00C00000, reads C0C00000, IRQ3 0
  flag acknowledged: wrote 40C00000, reads 00C00000, IRQ3 0
Two flags, one acknowledged:
  after first OTC: wrote 00C00000, reads C0C00000, IRQ3 1
  after second OTC: wrote 00C00000, reads C0C00000, IRQ3 0
  flag acknowledged: wrote 40C00000, reads 00C00000, IRQ3 0
  after third OTC: wrote 00C00000, reads C0C00000, IRQ3 1
OTC with bit 28 alone (no start, otc.c) and DICR 00C00000:
  after: wrote 00C00000, reads 00C00000, IRQ3 0
Done.

08DCP.txt:

===== 08 DCP DMA CPU DURING | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
A loop from the i-cache started right after the CHCR write that starts a transfer, then a timer 2 read: clocks alone and with the transfer. A loop turn is its body, addiu, bnez, nop.
OTC 16384 words (CHCR 11000002):
  registers n=1: alone 23, with the transfer 17403
  registers n=100: alone 419, with the transfer 17407
  registers n=1000: alone 4019, with the transfer 17407
  registers n=4000: alone 16019, with the transfer 17402
  registers n=10000: alone 40019, with the transfer 40019
  registers n=20000: alone 80019, with the transfer 80019
  scratchpad loads n=100: alone 419, with the transfer 17403
  scratchpad loads n=1000: alone 4019, with the transfer 17408
  scratchpad loads n=4000: alone 16019, with the transfer 17408
  scratchpad loads n=10000: alone 40019, with the transfer 40019
  scratchpad loads n=20000: alone 80019, with the transfer 80019
  RAM stores n=100: alone 423, with the transfer 17801
  RAM stores n=1000: alone 4019, with the transfer 21390
  RAM stores n=4000: alone 16019, with the transfer 33391
  RAM stores n=10000: alone 40019, with the transfer 57402
  RAM loads n=100: alone 930, with the transfer 18309
  RAM loads n=1000: alone 9158, with the transfer 26542
  RAM loads n=4000: alone 36586, with the transfer 53970
  RAM loads n=10000: alone 91449, with the transfer 108825
  CHCR loads n=100: alone 719, with the transfer 18095
  CHCR loads n=1000: alone 7019, with the transfer 24394
  CHCR loads n=4000: alone 28019, with the transfer 45400
  CHCR loads n=10000: alone 70019, with the transfer 87400
SPU write 16 words x 64 (CHCR 01000201):
  registers n=100: alone 419, with the transfer 419 (still busy after)
  registers n=1000: alone 4019, with the transfer 4019 (still busy after)
  registers n=4000: alone 16019, with the transfer 16019 (still busy after)
  registers n=10000: alone 40019, with the transfer 40019 (still busy after)
  RAM loads n=100: alone 930, with the transfer 1063 (still busy after)
  RAM loads n=1000: alone 9157, with the transfer 10440 (still busy after)
  RAM loads n=4000: alone 36586, with the transfer 41201 (still busy after)
  CHCR loads n=100: alone 719, with the transfer 850 (still busy after)
  CHCR loads n=1000: alone 7019, with the transfer 7953 (still busy after)
  CHCR loads n=4000: alone 28019, with the transfer 31753 (still busy after)
GPU write 2048 words SyncMode 0 chopped, DMA window 1 word, CPU window 128 clocks (CHCR 01700101):
  registers n=100: alone 416, with the transfer 440 (still busy after) (clock/8)
  registers n=1000: alone 4016, with the transfer 4040 (still busy after) (clock/8)
  registers n=4000: alone 16024, with the transfer 16040 (still busy after) (clock/8)
  registers n=10000: alone 40016, with the transfer 40040 (still busy after) (clock/8)
  RAM loads n=100: alone 928, with the transfer 968 (still busy after) (clock/8)
  RAM loads n=1000: alone 9160, with the transfer 9232 (still busy after) (clock/8)
  RAM loads n=4000: alone 36592, with the transfer 36792 (still busy after) (clock/8)
GPU write 2048 words SyncMode 0 not chopped (CHCR 01000001):
  registers n=100: alone 419, with the transfer 2215
  registers n=1000: alone 4019, with the transfer 4036
  registers n=4000: alone 16019, with the transfer 16036
  registers n=10000: alone 40019, with the transfer 40036
Done.

09DCH.txt:

===== 09 DCH DMA CHOP SHARE | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
GPU write 2048 words SyncMode 0 chopped (CHCR 01xx0101), polling CHCR: clocks, polls (the CPU's share), MADR, BCR, CHCR after. Not chopped for scale first.
Not chopped: 2247, polls 1
DMA window   1 words, CPU window   1 clocks: 16720, polls 1040, MADR start8192, BCR 00000000, CHCR 00000101
DMA window   1 words, CPU window   4 clocks: 23368, polls 1547, MADR start8192, BCR 00000000, CHCR 00200101
DMA window   1 words, CPU window  16 clocks: 47888, polls 3413, MADR start8192, BCR 00000000, CHCR 00400101
DMA window   1 words, CPU window  32 clocks: 80696, polls 6141, MADR start8192, BCR 00000000, CHCR 00500101
DMA window   1 words, CPU window 128 clocks: 276648, polls 20471, MADR start8192, BCR 00000000, CHCR 00700101
DMA window   2 words, CPU window   1 clocks: 9448, polls 513, MADR start8192, BCR 00000000, CHCR 00010101
DMA window   2 words, CPU window   4 clocks: 13400, polls 1023, MADR start8192, BCR 00000000, CHCR 00210101
DMA window   2 words, CPU window  16 clocks: 24640, polls 1706, MADR start8192, BCR 00000000, CHCR 00410101
DMA window   2 words, CPU window  32 clocks: 41000, polls 3069, MADR start8192, BCR 00000000, CHCR 00510101
DMA window   2 words, CPU window 128 clocks: 139216, polls 10231, MADR start8192, BCR 00000000, CHCR 00710101
DMA window   4 words, CPU window   1 clocks: 5864, polls 267, MADR start8192, BCR 00000000, CHCR 00020101
DMA window   4 words, CPU window   4 clocks: 7352, polls 511, MADR start8192, BCR 00000000, CHCR 00220101
DMA window   4 words, CPU window  16 clocks: 13464, polls 1022, MADR start8192, BCR 00000000, CHCR 00420101
DMA window   4 words, CPU window  32 clocks: 21872, polls 1533, MADR start8192, BCR 00000000, CHCR 00520101
DMA window   4 words, CPU window 128 clocks: 70712, polls 5111, MADR start8192, BCR 00000000, CHCR 00720101
DMA window  16 words, CPU window   1 clocks: 3136, polls 127, MADR start8192, BCR 00000000, CHCR 00040101
DMA window  16 words, CPU window   4 clocks: 3496, polls 127, MADR start8192, BCR 00000000, CHCR 00240101
DMA window  16 words, CPU window  16 clocks: 5024, polls 254, MADR start8192, BCR 00000000, CHCR 00440101
DMA window  16 words, CPU window  32 clocks: 7088, polls 381, MADR start8192, BCR 00000000, CHCR 00540101
DMA window  16 words, CPU window 128 clocks: 19296, polls 1271, MADR start8192, BCR 00000000, CHCR 00740101
DMA window 128 words, CPU window   1 clocks: 2360, polls 15, MADR start8192, BCR 00000000, CHCR 00070101
DMA window 128 words, CPU window   4 clocks: 2392, polls 15, MADR start8192, BCR 00000000, CHCR 00270101
DMA window 128 words, CPU window  16 clocks: 2568, polls 30, MADR start8192, BCR 00000000, CHCR 00470101
DMA window 128 words, CPU window  32 clocks: 2816, polls 45, MADR start8192, BCR 00000000, CHCR 00570101
DMA window 128 words, CPU window 128 clocks: 4192, polls 151, MADR start8192, BCR 00000000, CHCR 00770101
Chopped 1 word / 128 clocks, as it runs:
  poll    t: CHCR MADR BCR GPUSTAT&1C000000
      0   425: 01700101 0006B3EC 000007FF 10000000
      1   841: 01700101 0006B3FC 000007FB 10000000
      2  1209: 01700101 0006B404 000007F8 10000000
      3  1584: 01700101 0006B410 000007F6 00000000
      4  1960: 01700101 0006B41C 000007F3 10000000
      5  2339: 01700101 0006B428 000007F0 10000000
      6  2716: 01700101 0006B430 000007ED 10000000
      7  3090: 01700101 0006B43C 000007EB 10000000
      8  3461: 01700101 0006B448 000007E8 10000000
      9  3831: 01700101 0006B454 000007E5 10000000
     10  4211: 01700101 0006B45C 000007E2 10000000
     11  4583: 01700101 0006B468 000007E0 00000000
     12  4959: 01700101 0006B474 000007DD 10000000
     13  5324: 01700101 0006B480 000007DA 10000000
     14  5703: 01700101 0006B488 000007D7 10000000
     15  6076: 01700101 0006B494 000007D5 00000000
     16  6451: 01700101 0006B4A0 000007D2 10000000
     17  6824: 01700101 0006B4AC 000007CF 10000000
     18  7200: 01700101 0006B4B4 000007CC 10000000
     19  7572: 01700101 0006B4C0 000007CA 00000000
  done after 947 polls (rows cut at 20)
SPU write 256 words SyncMode 0 chopped 16 words / 64 clocks (CHCR 01640101): 3219, polls 76, MADR start1024, BCR 00000000
SPU write 256 words SyncMode 0 not chopped: 2141, polls 1
Done.

10DPR.txt:

===== 10 DPR DMA PRIORITY | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
Two channels armed with their DPCR enables off, then one DPCR write: which wrote each of 64 shared words last (O OTC, S SPU, G GPU, . untouched, ? other).
SPU read SyncMode 1, priority 1, OTC priority 5: 3920 clocks, 247 polls
  OOOOOOOOOOOOOOOOSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
SPU read SyncMode 1, priority 5, OTC priority 1: 3927 clocks, 248 polls
  SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
SPU read SyncMode 1, priority 3, OTC priority 3: 3925 clocks, 248 polls
  SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
SPU read SyncMode 0, priority 1, OTC priority 5: 720 clocks, 1 polls
  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
SPU read SyncMode 0, priority 5, OTC priority 1: 721 clocks, 1 polls
  SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
SPU read SyncMode 0, priority 3, OTC priority 3: 715 clocks, 1 polls
  SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
GPU read SyncMode 1, priority 1, OTC priority 5: 268 clocks, 1 polls
  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
GPU read SyncMode 1, priority 5, OTC priority 1: 268 clocks, 2 polls
  GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
GPU read SyncMode 1, priority 3, OTC priority 3: 277 clocks, 2 polls
  GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
GPU read SyncMode 0, priority 1, OTC priority 5: 257 clocks, 1 polls
  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
GPU read SyncMode 0, priority 5, OTC priority 1: 265 clocks, 1 polls
  GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
DPCR bits 28-30, CPU priority (channels.txt:105, dmachannels.txt:168):
DPCR 0B3B3B33, SPU write 16 words x 64: 73074, polls 4969; loop of 10000 alone 40030, with the SPU write 40019
DPCR 3B3B3B33, SPU write 16 words x 64: 72637, polls 4935; loop of 10000 alone 40025, with the SPU write 40019
DPCR 7B3B3B33, SPU write 16 words x 64: 73076, polls 4969; loop of 10000 alone 40025, with the SPU write 40019
Done.

11DMD.txt:

===== 11 DMD DMA MDEC | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
DMA0 and DMA1 with the MDEC: tables, then MDEC(1) on blocks of only a DC value (Q 1, DC 20h) and FE00h; DMA1 armed first. Clocks from the DMA0 start. Scale table zero.
Mono 8 bit, 1 block, out 16x1: quant 16 words 107, scale 32 words 68, decode: DMA0 done at 175, DMA1 done at 1013, 30 polls
  output sum 08080800, words 0 and last 80808080 80808080; MDEC status 8204FFFF
  DMA0 MADR start128 BCR 00000020 CHCR 00000201; DMA1 MADR start64 BCR 00000010 CHCR 00000200
Mono 8 bit, 4 blocks, out 16x4: quant 16 words timeout, scale 32 words timeout, decode: DMA0 done at timeout, DMA1 done at timeout, 200001 polls
  output sum 33333300, words 0 and last CCCCCCCC CCCCCCCC; MDEC status A004000D
  DMA0 MADR start0 BCR 00010020 CHCR 01000201; DMA1 MADR start0 BCR 00040010 CHCR 01000200
Mono 8 bit, 4 blocks, out 32x2: quant 16 words timeout, scale 32 words timeout, decode: DMA0 done at timeout, DMA1 done at timeout, 200001 polls
  output sum 33333300, words 0 and last CCCCCCCC CCCCCCCC; MDEC status A004000D
  DMA0 MADR start0 BCR 00010020 CHCR 01000201; DMA1 MADR start0 BCR 00020020 CHCR 01000200
Mono 4 bit, 4 blocks, out 8x4: quant 16 words timeout, scale 32 words timeout, decode: DMA0 done at timeout, DMA1 done at timeout, 200001 polls
  output sum 99999980, words 0 and last CCCCCCCC CCCCCCCC; MDEC status A004000D
  DMA0 MADR start0 BCR 00010020 CHCR 01000201; DMA1 MADR start0 BCR 00040008 CHCR 01000200
Colour 15 bit, 1 macroblock, out 32x4: quant 16 words timeout, scale 32 words timeout, decode: DMA0 done at timeout, DMA1 done at timeout, 200001 polls
  output sum 66666600, words 0 and last CCCCCCCC CCCCCCCC; MDEC status A004000D
  DMA0 MADR start0 BCR 00010020 CHCR 01000201; DMA1 MADR start0 BCR 00040020 CHCR 01000200
Colour 24 bit, 1 macroblock, out 32x6: quant 16 words timeout, scale 32 words timeout, decode: DMA0 done at timeout, DMA1 done at timeout, 200001 polls
  output sum 99999900, words 0 and last CCCCCCCC CCCCCCCC; MDEC status A004000D
  DMA0 MADR start0 BCR 00010020 CHCR 01000201; DMA1 MADR start0 BCR 00060020 CHCR 01000200
Colour 15 bit, 2 macroblocks, out 32x8: quant 16 words timeout, scale 32 words timeout, decode: DMA0 done at timeout, DMA1 done at timeout, 200001 polls
  output sum CCCCCC00, words 0 and last CCCCCCCC CCCCCCCC; MDEC status A004000D
  DMA0 MADR start0 BCR 00010020 CHCR 01000201; DMA1 MADR start0 BCR 00080020 CHCR 01000200
Done.

28 September 2026 card-h

Raw output: 00RUN.txt · 01DRB.txt · 02DOT.txt · 03DGL.txt · 04DGB.txt · 05DSP.txt · 06DMW.txt · 07DIC.txt · 08DCP.txt · 09DCH.txt · 10DPR.txt · 11DMD.txt

00RUN.txt:

===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
11 tests
A chain program, linked at 80010000
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 8010D338 PRId 00000002

01DRB.txt:

===== 01 DRB DMA READ BACK | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
DMA registers written and read back, each channel with its DPCR enable off.
1F8010F8h reads 7FE7581A, 1F8010FCh reads 00FFFFFF
Channel 0 MADR: FFFFFFFF reads 00FFFFFF, 00000003 reads 00000003
Channel 0 BCR: FFFFFFFF reads FFFFFFFF, halfword 1234 at +2 reads 12340000, then byte 56 at +1 reads 12345600
Channel 0 CHCR: FFFFFFFF reads 71770703, 8E88F8FC reads 00000000, 60770703 reads 60770703 (at +Ch 60770703)
Channel 0 CHCR: 10000000 reads 10000000, byte 07 at +2 reads 00070000, 0 reads 00000000
Channel 1 MADR: FFFFFFFF reads 00FFFFFF, 00000003 reads 00000003
Channel 1 BCR: FFFFFFFF reads FFFFFFFF, halfword 1234 at +2 reads 12340000, then byte 56 at +1 reads 12345600
Channel 1 CHCR: FFFFFFFF reads 71770703, 8E88F8FC reads 00000000, 60770703 reads 60770703 (at +Ch 60770703)
Channel 1 CHCR: 10000000 reads 10000000, byte 07 at +2 reads 00070000, 0 reads 00000000
Channel 2 MADR: FFFFFFFF reads 00FFFFFF, 00000003 reads 00000003
Channel 2 BCR: FFFFFFFF reads FFFFFFFF, halfword 1234 at +2 reads 12340000, then byte 56 at +1 reads 12345600
Channel 2 CHCR: FFFFFFFF reads 71770703, 8E88F8FC reads 00000000, 60770703 reads 60770703 (at +Ch 60770703)
Channel 2 CHCR: 10000000 reads 10000000, byte 07 at +2 reads 00070000, 0 reads 00000000
Channel 3 MADR: FFFFFFFF reads 00FFFFFF, 00000003 reads 00000003
Channel 3 BCR: FFFFFFFF reads FFFFFFFF, halfword 1234 at +2 reads 12340000, then byte 56 at +1 reads 12345600
Channel 3 CHCR: FFFFFFFF reads 71770703, 8E88F8FC reads 00000000, 60770703 reads 60770703 (at +Ch 60770703)
Channel 3 CHCR: 10000000 reads 10000000, byte 07 at +2 reads 00070000, 0 reads 00000000
Channel 4 MADR: FFFFFFFF reads 00FFFFFF, 00000003 reads 00000003
Channel 4 BCR: FFFFFFFF reads FFFFFFFF, halfword 1234 at +2 reads 12340000, then byte 56 at +1 reads 12345600
Channel 4 CHCR: FFFFFFFF reads 71770703, 8E88F8FC reads 00000000, 60770703 reads 60770703 (at +Ch 60770703)
Channel 4 CHCR: 10000000 reads 10000000, byte 07 at +2 reads 00070000, 0 reads 00000000
Channel 5 MADR: FFFFFFFF reads 00FFFFFF, 00000003 reads 00000003
Channel 5 BCR: FFFFFFFF reads FFFFFFFF, halfword 1234 at +2 reads 12340000, then byte 56 at +1 reads 12345600
Channel 5 CHCR: FFFFFFFF reads 71770703, 8E88F8FC reads 00000000, 60770703 reads 60770703 (at +Ch 60770703)
Channel 5 CHCR: 10000000 reads 10000000, byte 07 at +2 reads 00070000, 0 reads 00000000
Channel 6 MADR: FFFFFFFF reads 00FFFFFF, 00000003 reads 00000003
Channel 6 BCR: FFFFFFFF reads FFFFFFFF, halfword 1234 at +2 reads 12340000, then byte 56 at +1 reads 12345600
Channel 6 CHCR: FFFFFFFF reads 51000002, 8E88F8FC reads 00000002, 60770703 reads 40000002 (at +Ch 40000002)
Channel 6 CHCR: 10000000 reads 10000002, byte 07 at +2 reads 00000002, 0 reads 00000002
DPCR was 33333B33. FFFFFFFF reads FFFFFFFF, 0 reads 00000000, 80000000 reads 80000000, 70000000 reads 70000000, byte 08 at +3 reads 08000000
DICR was 00000000. 0 reads 00000000, 7F reads 0000003F, 7F80 reads 00000000, FF0000 reads 00FF0000, 80000000 reads 00000000, IRQ3 0
DICR 8000 reads 80008000 with IRQ3 1; 0 reads 00000000; 8000 again IRQ3 0; 8000 while set IRQ3 1
DICR byte 80 at +2 reads 00800000, halfword 0080 at +2 reads 00800000
1F8010F8h reads 7FE7581A, 1F8010FCh reads 00FFFFFF, at +2 halfwords 7FE7 00FF
Done.

02DOT.txt:

===== 02 DOT DMA OTC TIMES | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
DMA6 OTC, CHCR 11000002: system clocks from the CHCR write to the poll that sees bit 24 clear, four times each.
CHCR written 00000002, no transfer: 68, polls 0
OTC     1 words: 89 89 89 89 | polls 1, MADR start0, BCR 00000001, CHCR 00000002, table right
After the first OTC: 1F8010F8h 7FE3585A, 1F8010FCh 00FFFFFF
OTC     2 words: 90 90 90 90 | polls 1, MADR start0, BCR 00000002, CHCR 00000002, table right
OTC     3 words: 91 91 91 91 | polls 1, MADR start0, BCR 00000003, CHCR 00000002, table right
OTC     4 words: 96 92 92 95 | polls 1, MADR start0, BCR 00000004, CHCR 00000002, table right
OTC     8 words: 101 101 101 101 | polls 1, MADR start0, BCR 00000008, CHCR 00000002, table right
OTC    15 words: 108 112 112 118 | polls 1, MADR start0, BCR 0000000F, CHCR 00000002, table right
OTC    16 words: 115 109 119 119 | polls 1, MADR start0, BCR 00000010, CHCR 00000002, table right
OTC    17 words: 110 115 115 114 | polls 1, MADR start0, BCR 00000011, CHCR 00000002, table right
OTC    32 words: 125 128 125 129 | polls 1, MADR start0, BCR 00000020, CHCR 00000002, table right
OTC    64 words: 157 157 157 157 | polls 1, MADR start0, BCR 00000040, CHCR 00000002, table right
OTC   128 words: 221 221 231 221 | polls 1, MADR start0, BCR 00000080, CHCR 00000002, table right
OTC   256 words: 359 359 359 359 | polls 1, MADR start0, BCR 00000100, CHCR 00000002, table right
OTC  1024 words: 1172 1172 1172 1172 | polls 1, MADR start0, BCR 00000400, CHCR 00000002, table right
OTC  4096 words: 4429 4431 4434 4429 | polls 1, MADR start0, BCR 00001000, CHCR 00000002, table right
OTC 16384 words: 17468 17461 17463 17464 | polls 1, MADR start0, BCR 00004000, CHCR 00000002, table right
OTC 65535 words: 69601 69593 69585 69588 | polls 1, MADR start0, BCR 0000FFFF, CHCR 00000002, table right
OTC 65536 words: 69601 69594 69586 69587 | polls 1, MADR start0, BCR 00000000, CHCR 00000002, table right
OTC 256 words, CHCR 51000002 (bit 30): 359 360 359 359 | CHCR after 40000002, table right
OTC BCR 00050010 (16 words, 5 in the upper half): 115 109 109 109 | BCR after 00050010, table right
After: 1F8010F8h 7FE3585A, 1F8010FCh 00FFFFFF
Done.

03DGL.txt:

===== 03 DGL DMA GPU LISTS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
DMA2 linked lists, CHCR 01000401, GP1(04h)=2: clocks from the CHCR write to bit 24 clear, and the polls the CPU made meanwhile. BCR written 00050010 first.
List    1 nodes of   0 NOP words: 90 (1 polls) 90 (1 polls) 90 (1 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List    2 nodes of   0 NOP words: 94 (1 polls) 94 (1 polls) 94 (1 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List    4 nodes of   0 NOP words: 114 (2 polls) 118 (2 polls) 114 (2 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of   0 NOP words: 236 (8 polls) 235 (8 polls) 239 (8 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   64 nodes of   0 NOP words: 733 (34 polls) 728 (33 polls) 723 (33 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List  256 nodes of   0 NOP words: 2689 (133 polls) 2692 (133 polls) 2694 (133 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List 1024 nodes of   0 NOP words: 10557 (532 polls) 10560 (532 polls) 10560 (532 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List 2048 nodes of   0 NOP words: 21040 (1064 polls) 21043 (1065 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of   1 NOP words: 325 (15 polls) 328 (15 polls) 329 (15 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of   2 NOP words: 347 (15 polls) 345 (15 polls) 343 (15 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of   4 NOP words: 382 (15 polls) 372 (15 polls) 373 (15 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of   8 NOP words: 450 (15 polls) 440 (15 polls) 446 (15 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of  15 NOP words: 572 (15 polls) 568 (15 polls) 568 (15 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of  16 NOP words: 584 (15 polls) 569 (15 polls) 584 (15 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of  32 NOP words: 858 (15 polls) 864 (15 polls) 864 (15 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of  64 NOP words: 1398 (15 polls) 1394 (15 polls) 1380 (15 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of 128 NOP words: 2460 (15 polls) 2474 (15 polls) 2478 (15 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List   16 nodes of 255 NOP words: 4620 (15 polls) 4628 (15 polls) 4612 (15 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List    1 nodes of 255 NOP words: 361 (1 polls) 361 (1 polls) 361 (1 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
List    4 nodes of 255 NOP words: 1204 (3 polls) 1204 (3 polls) 1210 (3 polls) | MADR 00FFFFFF, BCR 00050010, CHCR 00000401
Done.

04DGB.txt:

===== 04 DGB DMA GPU BLOCKS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
DMA2 blocks to and from VRAM at 512,256: clocks from the CHCR write to bit 24 clear, twice each; polls, MADR, BCR and CHCR after.
Write SyncMode 1, 16 words x 1: 107 107 | polls 1, MADR start64, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 2: 130 134 | polls 1, MADR start128, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 4: 182 178 | polls 3, MADR start256, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 16: 517 512 | polls 15, MADR start1024, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 64: 1855 1870 | polls 63, MADR start4096, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 256: 7153 7126 | polls 257, MADR start16384, BCR 00000010, CHCR 00000201
Write SyncMode 1, 1 word x 256: 2978 2983 | polls 193, MADR start1024, BCR 00000001, CHCR 00000201
Write SyncMode 1, 2 words x 128: 1732 1733 | polls 127, MADR start1024, BCR 00000002, CHCR 00000201
Write SyncMode 1, 4 words x 64: 983 988 | polls 63, MADR start1024, BCR 00000004, CHCR 00000201
Write SyncMode 1, 8 words x 32: 677 673 | polls 31, MADR start1024, BCR 00000008, CHCR 00000201
Write SyncMode 1, 32 words x 8: 433 431 | polls 7, MADR start1024, BCR 00000020, CHCR 00000201
Write SyncMode 0, 256 words: 357 357 | polls 1, MADR start0, BCR 00000100, CHCR 00000001
Write SyncMode 0, 2048 words: 2247 2247 | polls 1, MADR start0, BCR 00000800, CHCR 00000001
Write SyncMode 0 bit 28, 256 words: 363 357 | polls 1, MADR start0, BCR 00000100, CHCR 00000001
Write SyncMode 1 bit 28, 16 words x 16: 530 520 | polls 15, MADR start1024, BCR 00000010, CHCR 00000201
Write SyncMode 1, MADR+2, 16 words x 4: 178 183 | polls 3, MADR start254, BCR 00000010, CHCR 00000201
Write SyncMode 1, MADR+1, 16 words x 4: 178 183 | polls 3, MADR start255, BCR 00000010, CHCR 00000201
Read SyncMode 1, 16 words x 1: 109 109 | polls 1, MADR start64, BCR 00000010, CHCR 00000200
Read SyncMode 1, 16 words x 16: 569 569 | polls 19, MADR start1024, BCR 00000010, CHCR 00000200
Read SyncMode 1, 16 words x 64: 2235 2237 | polls 91, MADR start4096, BCR 00000010, CHCR 00000200
Read SyncMode 1, 4 words x 64: 929 920 | polls 63, MADR start1024, BCR 00000004, CHCR 00000200
Read SyncMode 0, 256 words: 359 359 | polls 1, MADR start0, BCR 00000100, CHCR 00000000
Read SyncMode 0 bit 28, 256 words: 359 369 | polls 1, MADR start0, BCR 00000100, CHCR 00000000
Read SyncMode 1, MADR+2, 16 words x 4: 179 174 | polls 3, MADR start254, BCR 00000010, CHCR 00000200
Read back words 0-3: 7FFF0000 7FFF0001 7FFF0002 7FFF0003
Done.

05DSP.txt:

===== 05 DSP DMA SPU TIMES | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
DMA4 to and from sound RAM at 1000h: clocks from the CHCR write to bit 24 clear (polls meanwhile), three times each; MADR, BCR, CHCR after. SPU delay was 200931E1, 220931E1 here.
Write SyncMode 1, 16 words x 1: 221 (1) 217 (1) 217 (1) | MADR start64, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 2: 1493 (89) 1481 (88) 1285 (73) | MADR start128, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 4: 3841 (250) 3518 (225) 3829 (249) | MADR start256, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 8: 8543 (572) 8545 (572) 8124 (539) | MADR start512, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 16: 17767 (1200) 17779 (1201) 17773 (1201) | MADR start1024, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 64: 73069 (4969) 73075 (4969) 73069 (4969) | MADR start4096, BCR 00000010, CHCR 00000201
Write SyncMode 1, 1 word x 64: 4082 (265) 4077 (264) 4073 (264) | MADR start256, BCR 00000001, CHCR 00000201
Write SyncMode 1, 2 words x 32: 4863 (330) 4883 (331) 4897 (332) | MADR start256, BCR 00000002, CHCR 00000201
Write SyncMode 1, 4 words x 16: 4515 (301) 4490 (299) 4505 (300) | MADR start256, BCR 00000004, CHCR 00000201
Write SyncMode 1, 8 words x 8: 4476 (299) 4277 (284) 4299 (285) | MADR start256, BCR 00000008, CHCR 00000201
Read SyncMode 1, 16 words x 1: 220 (1) 227 (2) 227 (2) | MADR start64, BCR 00000010, CHCR 00000200
Read SyncMode 1, 16 words x 4: 3555 (228) 3565 (229) 3928 (257) | MADR start256, BCR 00000010, CHCR 00000200
Read SyncMode 1, 16 words x 16: 17378 (1170) 17806 (1204) 17792 (1202) | MADR start1024, BCR 00000010, CHCR 00000200
Read SyncMode 1, 16 words x 64: 73081 (4970) 73094 (4971) 73088 (4970) | MADR start4096, BCR 00000010, CHCR 00000200
Read SyncMode 1, 4 words x 16: 4799 (325) 4797 (325) 4811 (326) | MADR start256, BCR 00000004, CHCR 00000200
Write SyncMode 0, 16 words: 217 (1) 217 (1) 219 (1) | MADR start0, BCR 00000010, CHCR 00000001
Write SyncMode 0, 64 words: 601 (1) 603 (1) 601 (1) | MADR start0, BCR 00000040, CHCR 00000001
Write SyncMode 0, 256 words: 2141 (1) 2137 (1) 2141 (1) | MADR start0, BCR 00000100, CHCR 00000001
Write SyncMode 0 bit 28, 64 words: 605 (1) 601 (1) 601 (1) | MADR start0, BCR 00000040, CHCR 00000001
Read SyncMode 0, 64 words: 626 (2) 649 (4) 629 (3) | MADR start0, BCR 00000040, CHCR 00000000
Read SyncMode 0 bit 28, 64 words: 615 (1) 613 (1) 612 (1) | MADR start0, BCR 00000040, CHCR 00000000
Write SyncMode 1 bit 28, 16 words x 4: 3840 (250) 3518 (225) 3829 (249) | MADR start256, BCR 00000010, CHCR 00000201
Write SyncMode 1, 16 words x 16, SPU delay 220931F1: 17782 (1202) 17341 (1167) 17773 (1201) | MADR start1024, BCR 00000010, CHCR 00000201
Read SyncMode 1, 16 words x 16, SPU delay 220931F1: 17807 (1204) 17389 (1171) 17804 (1204) | MADR start1024, BCR 00000010, CHCR 00000200
Write SyncMode 1, 16 words x 16, SPU delay 22093141: 17598 (1188) 17363 (1169) 17687 (1194) | MADR start1024, BCR 00000010, CHCR 00000201
Read SyncMode 1, 16 words x 16, delay 200931E1: 16867 (1215) 16873 (1215) 16887 (1216) | MADR start1024, BCR 00000010, CHCR 00000200
Read SyncMode 1, 16 words x 16, delay 220931E1: 17375 (1170) 17806 (1204) 17792 (1202) | MADR start1024, BCR 00000010, CHCR 00000200
64 words written then read back, SyncMode 1: 56 of 64 match
64 words written then read back, SyncMode 0: 16 of 64 match
Done.

06DMW.txt:

===== 06 DMW DMA MIDWAY | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
CHCR, MADR, BCR and DICR polled while a transfer runs: a row each time one changes (t is timer 2's low 16 bits). DICR flags need bit 23 and bit 16+n (dmachannels.txt:184-186); bits 0-6 may give a flag per slice (dmachannels.txt:174-177).
SPU write 16 words x 8, CHCR 01000201, DICR 00000000:
  poll    t: CHCR MADR BCR DICR
      0   555: 01000201 0002A428 00070010 00000000
      3  1672: 01000201 0002A468 00060010 00000000
      6  2731: 01000201 0002A4A8 00050010 00000000
     10  4076: 01000201 0002A4E8 00040010 00000000
     13  5138: 01000201 0002A528 00030010 00000000
     16  6207: 01000201 0002A568 00020010 00000000
     19  7276: 01000201 0002A568 00010010 00000000
     20  7644: 01000201 0002A5A8 00010010 00000000
     23  8719: 00000201 0002A5E8 00000010 00000000
  done after 23 polls
SPU write 16 words x 8, CHCR 11000201 (bit 28):
  poll    t: CHCR MADR BCR DICR
      0   517: 01000201 0002A428 00070010 00000000
      4  1895: 01000201 0002A468 00060010 00000000
      7  2965: 01000201 0002A4A8 00050010 00000000
     10  4033: 01000201 0002A4E8 00040010 00000000
     13  5102: 01000201 0002A4E8 00030010 00000000
     14  5464: 01000201 0002A528 00030010 00000000
     17  6525: 01000201 0002A568 00020010 00000000
     20  7597: 01000201 0002A5A8 00010010 00000000
     24  8950: 00000201 0002A5E8 00000010 00000000
  done after 24 polls
SPU write 16 words x 8, DICR 00900000 (bit 23, bit 20):
  poll    t: CHCR MADR BCR DICR
      0   519: 01000201 0002A428 00070010 00900000
      4  1908: 01000201 0002A468 00060010 00900000
      7  2974: 01000201 0002A4A8 00050010 00900000
     10  4051: 01000201 0002A4E8 00040010 00900000
     13  5119: 01000201 0002A528 00030010 00900000
     17  6478: 01000201 0002A568 00020010 00900000
     20  7540: 01000201 0002A5A8 00010010 00900000
     23  8610: 01000201 0002A5E8 00000010 90900000
     24  8972: 00000201 0002A5E8 00000010 90900000
  done after 24 polls
  I_STAT bit 3 after: 1
SPU write 16 words x 8, DICR 00900010 (bit 4 too, a flag per slice?):
  poll    t: CHCR MADR BCR DICR
      0   519: 01000201 0002A428 00070010 90900010
      4  1900: 01000201 0002A468 00060010 90900010
      7  2977: 01000201 0002A4A8 00050010 90900010
     10  4054: 01000201 0002A4A8 00040010 90900010
     11  4422: 01000201 0002A4E8 00040010 90900010
     13  5205: 01000201 0002A528 00030010 90900010
     17  6561: 01000201 0002A568 00020010 90900010
     20  7617: 01000201 0002A5A8 00010010 90900010
     23  8703: 01000201 0002A5A8 00000010 90900010
     24  9071: 00000201 0002A5E8 00000010 90900010
  done after 24 polls
  I_STAT bit 3 after: 1
SPU write 16 words x 8, DICR 00900010, I_STAT bit 3 in the last column:
  poll    t: CHCR MADR BCR I_STAT&8
      0   516: 01000201 0002A428 00070010 00000008
      4  1901: 01000201 0002A468 00060010 00000008
      7  2967: 01000201 0002A4A8 00050010 00000008
     10  4039: 01000201 0002A4E8 00040010 00000008
     13  5106: 01000201 0002A528 00030010 00000008
     17  6462: 01000201 0002A568 00020010 00000008
     20  7518: 01000201 0002A5A8 00010010 00000008
     23  8604: 01000201 0002A5A8 00000010 00000008
     24  8972: 00000201 0002A5E8 00000010 00000008
  done after 24 polls
SPU read 16 words x 8, CHCR 01000200:
  poll    t: CHCR MADR BCR DICR
      0   513: 01000200 0002A428 00070010 00000000
      4  1901: 01000200 0002A468 00060010 00000000
      7  2959: 01000200 0002A4A8 00050010 00000000
     10  4018: 01000200 0002A4E8 00040010 00000000
     13  5091: 01000200 0002A4E8 00030010 00000000
     14  5455: 01000200 0002A528 00030010 00000000
     17  6515: 01000200 0002A568 00020010 00000000
     20  7584: 01000200 0002A5A8 00010010 00000000
     23  8656: 00000200 0002A5E8 00000010 00000000
  done after 23 polls
GPU write 16 words x 8 to VRAM, CHCR 01000201:
  poll    t: CHCR MADR BCR DICR
      0   542: 01000201 0006B5E8 00000010 00000000
      1   934: 00000201 0006B5E8 00000010 00000000
  done after 1 polls
GPU list 8 nodes of 15 NOPs, DICR 00840004 (bit 2, a flag per entry?):
  list at 026248, nodes 64 bytes apart
  poll    t: CHCR MADR BCR DICR
      0   578: 01000401 00FFFFFF 00000000 84840004
      1   972: 00000401 00FFFFFF 00000000 84840004
  done after 1 polls
Done.

07DIC.txt:

===== 07 DIC DMA DICR | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
DICR around a 16 word OTC (channel 6: enable bit 22, flag bit 30). psx-spx sets the flag only with bit 23 and bit 22 (dmachannels.txt:184-186), nocash with bit 22 alone (channels.txt:122-123). IRQ3 is I_STAT bit 3, acknowledged before each OTC.
DICR 00000000 reads 00000000 (IRQ3 0); after OTC 00000000, IRQ3 0
DICR 00400000 reads 00400000 (IRQ3 0); after OTC 40400000, IRQ3 0
DICR 00800000 reads 00800000 (IRQ3 0); after OTC 00800000, IRQ3 0
DICR 00C00000 reads 00C00000 (IRQ3 0); after OTC C0C00000, IRQ3 1
DICR 00C00040 reads 00C00000 (IRQ3 0); after OTC C0C00000, IRQ3 1
DICR 00400040 reads 00400000 (IRQ3 0); after OTC 40400000, IRQ3 0
DICR 00BF0000 reads 00BF0000 (IRQ3 0); after OTC 00BF0000, IRQ3 0
DICR 00FF0000 reads 00FF0000 (IRQ3 0); after OTC C0FF0000, IRQ3 1
DICR 00008000 reads 80008000 (IRQ3 1); after OTC 80008000, IRQ3 0
DICR 00C08000 reads 80C08000 (IRQ3 1); after OTC C0C08000, IRQ3 0
DICR 0000003F reads 0000003F (IRQ3 0); after OTC 0000003F, IRQ3 0
A flag, then its enables taken away:
  after OTC: wrote 00C00000, reads C0C00000, IRQ3 1
  bit 22 off: wrote 00800000, reads C0800000, IRQ3 0
  bit 23 off too: wrote 00000000, reads 40000000, IRQ3 0
  bit 23 on: wrote 00800000, reads C0800000, IRQ3 1
  bit 23 on again: wrote 00800000, reads C0800000, IRQ3 0
  flag acknowledged: wrote 40800000, reads 00800000, IRQ3 0
  bit 31 written: wrote 80800000, reads 00800000, IRQ3 0
Flag with bit 22 alone, then bit 23:
  after OTC: wrote 00400000, reads 40400000, IRQ3 0
  bit 23 on: wrote 00C00000, reads C0C00000, IRQ3 1
Bit 15 set, then a flag:
  bit 15 and 22 and 23: wrote 00C08000, reads 80C08000, IRQ3 1
  after OTC: wrote 00C08000, reads C0C08000, IRQ3 0
  bit 15 off: wrote 00C00000, reads C0C00000, IRQ3 0
  flag acknowledged: wrote 40C00000, reads 00C00000, IRQ3 0
Two flags, one acknowledged:
  after first OTC: wrote 00C00000, reads C0C00000, IRQ3 1
  after second OTC: wrote 00C00000, reads C0C00000, IRQ3 0
  flag acknowledged: wrote 40C00000, reads 00C00000, IRQ3 0
  after third OTC: wrote 00C00000, reads C0C00000, IRQ3 1
OTC with bit 28 alone (no start, otc.c) and DICR 00C00000:
  after: wrote 00C00000, reads 00C00000, IRQ3 0
Done.

08DCP.txt:

===== 08 DCP DMA CPU DURING | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
A loop from the i-cache started right after the CHCR write that starts a transfer, then a timer 2 read: clocks alone and with the transfer. A loop turn is its body, addiu, bnez, nop.
OTC 16384 words (CHCR 11000002):
  registers n=1: alone 23, with the transfer 17402
  registers n=100: alone 419, with the transfer 17397
  registers n=1000: alone 4019, with the transfer 17408
  registers n=4000: alone 16019, with the transfer 17402
  registers n=10000: alone 40019, with the transfer 40019
  registers n=20000: alone 80019, with the transfer 80019
  scratchpad loads n=100: alone 419, with the transfer 17407
  scratchpad loads n=1000: alone 4019, with the transfer 17408
  scratchpad loads n=4000: alone 16019, with the transfer 17408
  scratchpad loads n=10000: alone 40019, with the transfer 40019
  scratchpad loads n=20000: alone 80019, with the transfer 80019
  RAM stores n=100: alone 423, with the transfer 17801
  RAM stores n=1000: alone 4019, with the transfer 21390
  RAM stores n=4000: alone 16019, with the transfer 33391
  RAM stores n=10000: alone 40019, with the transfer 57402
  RAM loads n=100: alone 930, with the transfer 18309
  RAM loads n=1000: alone 9158, with the transfer 26542
  RAM loads n=4000: alone 36586, with the transfer 53970
  RAM loads n=10000: alone 91449, with the transfer 108825
  CHCR loads n=100: alone 719, with the transfer 18095
  CHCR loads n=1000: alone 7019, with the transfer 24394
  CHCR loads n=4000: alone 28019, with the transfer 45400
  CHCR loads n=10000: alone 70019, with the transfer 87400
SPU write 16 words x 64 (CHCR 01000201):
  registers n=100: alone 419, with the transfer 419 (still busy after)
  registers n=1000: alone 4019, with the transfer 4019 (still busy after)
  registers n=4000: alone 16019, with the transfer 16019 (still busy after)
  registers n=10000: alone 40019, with the transfer 40019 (still busy after)
  RAM loads n=100: alone 926, with the transfer 1067 (still busy after)
  RAM loads n=1000: alone 9158, with the transfer 10478 (still busy after)
  RAM loads n=4000: alone 36586, with the transfer 41354 (still busy after)
  CHCR loads n=100: alone 719, with the transfer 850 (still busy after)
  CHCR loads n=1000: alone 7019, with the transfer 7952 (still busy after)
  CHCR loads n=4000: alone 28019, with the transfer 31756 (still busy after)
GPU write 2048 words SyncMode 0 chopped, DMA window 1 word, CPU window 128 clocks (CHCR 01700101):
  registers n=100: alone 416, with the transfer 432 (still busy after) (clock/8)
  registers n=1000: alone 4016, with the transfer 4032 (still busy after) (clock/8)
  registers n=4000: alone 16016, with the transfer 16040 (still busy after) (clock/8)
  registers n=10000: alone 40024, with the transfer 40032 (still busy after) (clock/8)
  RAM loads n=100: alone 928, with the transfer 984 (still busy after) (clock/8)
  RAM loads n=1000: alone 9160, with the transfer 9232 (still busy after) (clock/8)
  RAM loads n=4000: alone 36584, with the transfer 36800 (still busy after) (clock/8)
GPU write 2048 words SyncMode 0 not chopped (CHCR 01000001):
  registers n=100: alone 419, with the transfer 2205
  registers n=1000: alone 4019, with the transfer 4036
  registers n=4000: alone 16019, with the transfer 16036
  registers n=10000: alone 40019, with the transfer 40036
Done.

09DCH.txt:

===== 09 DCH DMA CHOP SHARE | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
GPU write 2048 words SyncMode 0 chopped (CHCR 01xx0101), polling CHCR: clocks, polls (the CPU's share), MADR, BCR, CHCR after. Not chopped for scale first.
Not chopped: 2247, polls 1
DMA window   1 words, CPU window   1 clocks: 16720, polls 1040, MADR start8192, BCR 00000000, CHCR 00000101
DMA window   1 words, CPU window   4 clocks: 23376, polls 1548, MADR start8192, BCR 00000000, CHCR 00200101
DMA window   1 words, CPU window  16 clocks: 47888, polls 3412, MADR start8192, BCR 00000000, CHCR 00400101
DMA window   1 words, CPU window  32 clocks: 80680, polls 6141, MADR start8192, BCR 00000000, CHCR 00500101
DMA window   1 words, CPU window 128 clocks: 276648, polls 20471, MADR start8192, BCR 00000000, CHCR 00700101
DMA window   2 words, CPU window   1 clocks: 9440, polls 513, MADR start8192, BCR 00000000, CHCR 00010101
DMA window   2 words, CPU window   4 clocks: 13400, polls 1023, MADR start8192, BCR 00000000, CHCR 00210101
DMA window   2 words, CPU window  16 clocks: 24640, polls 1706, MADR start8192, BCR 00000000, CHCR 00410101
DMA window   2 words, CPU window  32 clocks: 41000, polls 3069, MADR start8192, BCR 00000000, CHCR 00510101
DMA window   2 words, CPU window 128 clocks: 139208, polls 10231, MADR start8192, BCR 00000000, CHCR 00710101
DMA window   4 words, CPU window   1 clocks: 5864, polls 266, MADR start8192, BCR 00000000, CHCR 00020101
DMA window   4 words, CPU window   4 clocks: 7352, polls 511, MADR start8192, BCR 00000000, CHCR 00220101
DMA window   4 words, CPU window  16 clocks: 13472, polls 1022, MADR start8192, BCR 00000000, CHCR 00420101
DMA window   4 words, CPU window  32 clocks: 21856, polls 1533, MADR start8192, BCR 00000000, CHCR 00520101
DMA window   4 words, CPU window 128 clocks: 70704, polls 5111, MADR start8192, BCR 00000000, CHCR 00720101
DMA window  16 words, CPU window   1 clocks: 3136, polls 127, MADR start8192, BCR 00000000, CHCR 00040101
DMA window  16 words, CPU window   4 clocks: 3504, polls 127, MADR start8192, BCR 00000000, CHCR 00240101
DMA window  16 words, CPU window  16 clocks: 5032, polls 254, MADR start8192, BCR 00000000, CHCR 00440101
DMA window  16 words, CPU window  32 clocks: 7088, polls 381, MADR start8192, BCR 00000000, CHCR 00540101
DMA window  16 words, CPU window 128 clocks: 19280, polls 1271, MADR start8192, BCR 00000000, CHCR 00740101
DMA window 128 words, CPU window   1 clocks: 2352, polls 15, MADR start8192, BCR 00000000, CHCR 00070101
DMA window 128 words, CPU window   4 clocks: 2408, polls 15, MADR start8192, BCR 00000000, CHCR 00270101
DMA window 128 words, CPU window  16 clocks: 2576, polls 30, MADR start8192, BCR 00000000, CHCR 00470101
DMA window 128 words, CPU window  32 clocks: 2792, polls 45, MADR start8192, BCR 00000000, CHCR 00570101
DMA window 128 words, CPU window 128 clocks: 4240, polls 151, MADR start8192, BCR 00000000, CHCR 00770101
Chopped 1 word / 128 clocks, as it runs:
  poll    t: CHCR MADR BCR GPUSTAT&1C000000
      0   438: 01700101 0006B3EC 000007FF 10000000
      1   845: 01700101 0006B3FC 000007FB 10000000
      2  1211: 01700101 0006B404 000007F8 10000000
      3  1585: 01700101 0006B410 000007F6 00000000
      4  1963: 01700101 0006B41C 000007F3 10000000
      5  2340: 01700101 0006B428 000007F0 10000000
      6  2712: 01700101 0006B430 000007ED 10000000
      7  3086: 01700101 0006B43C 000007EB 00000000
      8  3462: 01700101 0006B448 000007E8 10000000
      9  3829: 01700101 0006B454 000007E5 10000000
     10  4203: 01700101 0006B45C 000007E2 10000000
     11  4580: 01700101 0006B468 000007E0 00000000
     12  4957: 01700101 0006B474 000007DD 10000000
     13  5331: 01700101 0006B480 000007DA 10000000
     14  5709: 01700101 0006B488 000007D7 10000000
     15  6083: 01700101 0006B494 000007D5 10000000
     16  6460: 01700101 0006B4A0 000007D2 10000000
     17  6827: 01700101 0006B4AC 000007CF 10000000
     18  7198: 01700101 0006B4B4 000007CC 10000000
     19  7575: 01700101 0006B4C0 000007CA 00000000
  done after 949 polls (rows cut at 20)
SPU write 256 words SyncMode 0 chopped 16 words / 64 clocks (CHCR 01640101): 3206, polls 76, MADR start1024, BCR 00000000
SPU write 256 words SyncMode 0 not chopped: 2138, polls 1
Done.

10DPR.txt:

===== 10 DPR DMA PRIORITY | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
Two channels armed with their DPCR enables off, then one DPCR write: which wrote each of 64 shared words last (O OTC, S SPU, G GPU, . untouched, ? other).
SPU read SyncMode 1, priority 1, OTC priority 5: 3916 clocks, 248 polls
  OOOOOOOOOOOOOOOOSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
SPU read SyncMode 1, priority 5, OTC priority 1: 3928 clocks, 249 polls
  SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
SPU read SyncMode 1, priority 3, OTC priority 3: 3918 clocks, 247 polls
  SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
SPU read SyncMode 0, priority 1, OTC priority 5: 723 clocks, 1 polls
  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
SPU read SyncMode 0, priority 5, OTC priority 1: 726 clocks, 1 polls
  SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
SPU read SyncMode 0, priority 3, OTC priority 3: 727 clocks, 1 polls
  SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
GPU read SyncMode 1, priority 1, OTC priority 5: 262 clocks, 1 polls
  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
GPU read SyncMode 1, priority 5, OTC priority 1: 277 clocks, 2 polls
  GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
GPU read SyncMode 1, priority 3, OTC priority 3: 277 clocks, 2 polls
  GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
GPU read SyncMode 0, priority 1, OTC priority 5: 258 clocks, 1 polls
  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
GPU read SyncMode 0, priority 5, OTC priority 1: 265 clocks, 1 polls
  GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
DPCR bits 28-30, CPU priority (channels.txt:105, dmachannels.txt:168):
DPCR 0B3B3B33, SPU write 16 words x 64: 73075, polls 4969; loop of 10000 alone 40025, with the SPU write 40019
DPCR 3B3B3B33, SPU write 16 words x 64: 73074, polls 4969; loop of 10000 alone 40025, with the SPU write 40019
DPCR 7B3B3B33, SPU write 16 words x 64: 73082, polls 4970; loop of 10000 alone 40025, with the SPU write 40019
Done.

11DMD.txt:

===== 11 DMD DMA MDEC | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
DMA0 and DMA1 with the MDEC: tables, then MDEC(1) on blocks of only a DC value (Q 1, DC 20h) and FE00h; DMA1 armed first. Clocks from the DMA0 start. Scale table zero.
Mono 8 bit, 1 block, out 16x1: quant 16 words 107, scale 32 words 78, decode: DMA0 done at 165, DMA1 done at 1003, 30 polls
  output sum 08080800, words 0 and last 80808080 80808080; MDEC status 8204FFFF
  DMA0 MADR start128 BCR 00000020 CHCR 00000201; DMA1 MADR start64 BCR 00000010 CHCR 00000200
Mono 8 bit, 4 blocks, out 16x4: quant 16 words timeout, scale 32 words timeout, decode: DMA0 done at timeout, DMA1 done at timeout, 200001 polls
  output sum 33333300, words 0 and last CCCCCCCC CCCCCCCC; MDEC status A004000D
  DMA0 MADR start0 BCR 00010020 CHCR 01000201; DMA1 MADR start0 BCR 00040010 CHCR 01000200
Mono 8 bit, 4 blocks, out 32x2: quant 16 words timeout, scale 32 words timeout, decode: DMA0 done at timeout, DMA1 done at timeout, 200001 polls
  output sum 33333300, words 0 and last CCCCCCCC CCCCCCCC; MDEC status A004000D
  DMA0 MADR start0 BCR 00010020 CHCR 01000201; DMA1 MADR start0 BCR 00020020 CHCR 01000200
Mono 4 bit, 4 blocks, out 8x4: quant 16 words timeout, scale 32 words timeout, decode: DMA0 done at timeout, DMA1 done at timeout, 200001 polls
  output sum 99999980, words 0 and last CCCCCCCC CCCCCCCC; MDEC status A004000D
  DMA0 MADR start0 BCR 00010020 CHCR 01000201; DMA1 MADR start0 BCR 00040008 CHCR 01000200
Colour 15 bit, 1 macroblock, out 32x4: quant 16 words timeout, scale 32 words timeout, decode: DMA0 done at timeout, DMA1 done at timeout, 200001 polls
  output sum 66666600, words 0 and last CCCCCCCC CCCCCCCC; MDEC status A004000D
  DMA0 MADR start0 BCR 00010020 CHCR 01000201; DMA1 MADR start0 BCR 00040020 CHCR 01000200
Colour 24 bit, 1 macroblock, out 32x6: quant 16 words timeout, scale 32 words timeout, decode: DMA0 done at timeout, DMA1 done at timeout, 200001 polls
  output sum 99999900, words 0 and last CCCCCCCC CCCCCCCC; MDEC status A004000D
  DMA0 MADR start0 BCR 00010020 CHCR 01000201; DMA1 MADR start0 BCR 00060020 CHCR 01000200
Colour 15 bit, 2 macroblocks, out 32x8: quant 16 words timeout, scale 32 words timeout, decode: DMA0 done at timeout, DMA1 done at timeout, 200001 polls
  output sum CCCCCC00, words 0 and last CCCCCCCC CCCCCCCC; MDEC status A004000D
  DMA0 MADR start0 BCR 00010020 CHCR 01000201; DMA1 MADR start0 BCR 00080020 CHCR 01000200
Done.

28 September 2026 card-h dmatime_drq1

Raw output: 00RUN.txt · 01DRQ.txt

00RUN.txt:

===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
1 tests
A chain program, linked at 80100000
Saved on the card in slot 2, from image 1
COP0 at start: BPC 00000000 BDA 80024F50 TAR BFC02BAC DCIC 00000000 BadVaddr 1F801DAA BDAM FFFFFFFF
BPCM 00000000 SR 70000000 Cause 00000020 EPC 80023150 PRId 00000002

01DRQ.txt:

===== 01 DRQ DMA NO REQUEST | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
Transfers whose device is not asking, and the ends of the address range.
GPU SyncMode 1 with the GPU request off:
  GP1(04h)=0, CHCR 01000201 BCR 00040010: polled up to 20000 times, still busy; MADR start0 BCR 00040010 CHCR 01000201
  then GP1(04h)=2: done; MADR start256 BCR 00000010 CHCR 00000201
GPU SyncMode 0 with the GPU request off: not run in this table.
GPU SyncMode 0 bit 28 with the GPU request off: not run in this table.
SPU SyncMode 1 with SPU transfer mode stop: not run in this table.
SPU SyncMode 0 with SPU transfer mode stop: not run in this table.
SPU SyncMode 0 bit 28 with SPU transfer mode stop: not run in this table.
GPU list ended by FFFFFFh: not run in this table.
GPU list ended by FFFFFEh: not run in this table.
GPU list ended by 800000h: not run in this table.
OTC of 3 words from address 4: not run in this table.
Done.

28 September 2026 card-h dmatime_drq2

Raw output: 00RUN.txt · 01DRQ.txt

00RUN.txt:

===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
1 tests
A chain program, linked at 80010000
Saved on the card in slot 2, from image 1
COP0 at start: BPC 00000000 BDA 80024F50 TAR BFC02BAC DCIC 00000000 BadVaddr 1F801DAA BDAM FFFFFFFF
BPCM 00000000 SR 70000000 Cause 00000020 EPC 80111BC4 PRId 00000002

01DRQ.txt:

===== 01 DRQ DMA NO REQUEST | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
Transfers whose device is not asking, and the ends of the address range.
GPU SyncMode 1 with the GPU request off: not run in this table.
GPU SyncMode 0 with the GPU request off:
  GP1(04h)=0, CHCR 01000001 BCR 00000040: polled up to 20000 times, still busy; MADR start0 BCR 00000040 CHCR 01000001
  then GP1(04h)=2: done; MADR start0 BCR 00000040 CHCR 00000001
GPU SyncMode 0 bit 28 with the GPU request off: not run in this table.
SPU SyncMode 1 with SPU transfer mode stop: not run in this table.
SPU SyncMode 0 with SPU transfer mode stop: not run in this table.
SPU SyncMode 0 bit 28 with SPU transfer mode stop: not run in this table.
GPU list ended by FFFFFFh: not run in this table.
GPU list ended by FFFFFEh: not run in this table.
GPU list ended by 800000h: not run in this table.
OTC of 3 words from address 4: not run in this table.
Done.

28 September 2026 card-h dmatime_drq3

Raw output: 00RUN.txt · 01DRQ.txt

00RUN.txt:

===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
1 tests
A chain program, linked at 80100000
Saved on the card in slot 2, from image 1
COP0 at start: BPC 00000000 BDA 80024F50 TAR 80021028 DCIC 00000000 BadVaddr 1F801DAA BDAM FFFFFFFF
BPCM 00000000 SR 70000000 Cause 00000020 EPC 80021BC4 PRId 00000002

01DRQ.txt:

===== 01 DRQ DMA NO REQUEST | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
Transfers whose device is not asking, and the ends of the address range.
GPU SyncMode 1 with the GPU request off: not run in this table.
GPU SyncMode 0 with the GPU request off: not run in this table.
GPU SyncMode 0 bit 28 with the GPU request off:
  GP1(04h)=0, CHCR 11000001 BCR 00000040: polled up to 20000 times, done; MADR start0 BCR 00000040 CHCR 00000001
  then GP1(04h)=2: done; MADR start0 BCR 00000040 CHCR 00000001
SPU SyncMode 1 with SPU transfer mode stop: not run in this table.
SPU SyncMode 0 with SPU transfer mode stop: not run in this table.
SPU SyncMode 0 bit 28 with SPU transfer mode stop: not run in this table.
GPU list ended by FFFFFFh: not run in this table.
GPU list ended by FFFFFEh: not run in this table.
GPU list ended by 800000h: not run in this table.
OTC of 3 words from address 4: not run in this table.
Done.

28 September 2026 card-h dmatime_drq4

Raw output: 00RUN.txt · 01DRQ.txt

00RUN.txt:

===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
1 tests
A chain program, linked at 80010000
Saved on the card in slot 2, from image 1
COP0 at start: BPC 00000000 BDA 80024F50 TAR 80110FE0 DCIC 00000000 BadVaddr 1F801DAA BDAM FFFFFFFF
BPCM 00000000 SR 70000000 Cause 00000020 EPC 80111BC4 PRId 00000002

01DRQ.txt:

===== 01 DRQ DMA NO REQUEST | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
Transfers whose device is not asking, and the ends of the address range.
GPU SyncMode 1 with the GPU request off: not run in this table.
GPU SyncMode 0 with the GPU request off: not run in this table.
GPU SyncMode 0 bit 28 with the GPU request off: not run in this table.
SPU SyncMode 1 with SPU transfer mode stop:
  SPUCNT mode stop, CHCR 01000201: polled up to 20000 times, still busy; MADR start0 BCR 00040010 SPUSTAT 0000
  then mode DMA write: done; MADR start256 BCR 00000010 SPUSTAT 0020
SPU SyncMode 0 with SPU transfer mode stop: not run in this table.
SPU SyncMode 0 bit 28 with SPU transfer mode stop: not run in this table.
GPU list ended by FFFFFFh: not run in this table.
GPU list ended by FFFFFEh: not run in this table.
GPU list ended by 800000h: not run in this table.
OTC of 3 words from address 4: not run in this table.
Done.

28 September 2026 card-h dmatime_drq5

Raw output: 00RUN.txt · 01DRQ.txt

00RUN.txt:

===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
1 tests
A chain program, linked at 80100000
Saved on the card in slot 2, from image 1
COP0 at start: BPC 00000000 BDA 80024F50 TAR BFC02BAC DCIC 00000000 BadVaddr 1F801DAA BDAM FFFFFFFF
BPCM 00000000 SR 70000000 Cause 00000020 EPC 80021BC4 PRId 00000002

01DRQ.txt:

===== 01 DRQ DMA NO REQUEST | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
Transfers whose device is not asking, and the ends of the address range.
GPU SyncMode 1 with the GPU request off: not run in this table.
GPU SyncMode 0 with the GPU request off: not run in this table.
GPU SyncMode 0 bit 28 with the GPU request off: not run in this table.
SPU SyncMode 1 with SPU transfer mode stop: not run in this table.
SPU SyncMode 0 with SPU transfer mode stop:
  SPUCNT mode stop, CHCR 01000001: polled up to 20000 times, still busy; MADR start0 BCR 00000040 SPUSTAT 0000
  then mode DMA write: done; MADR start0 BCR 00000040 SPUSTAT 0020
SPU SyncMode 0 bit 28 with SPU transfer mode stop: not run in this table.
GPU list ended by FFFFFFh: not run in this table.
GPU list ended by FFFFFEh: not run in this table.
GPU list ended by 800000h: not run in this table.
OTC of 3 words from address 4: not run in this table.
Done.

28 September 2026 card-h dmatime_drq6

Raw output: 00RUN.txt · 01DRQ.txt

00RUN.txt:

===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
1 tests
A chain program, linked at 80010000
Saved on the card in slot 2, from image 1
COP0 at start: BPC 00000000 BDA 80024F50 TAR 80110FE0 DCIC 00000000 BadVaddr 1F801DAA BDAM FFFFFFFF
BPCM 00000000 SR 70000000 Cause 00000020 EPC 80111BC4 PRId 00000002

01DRQ.txt:

===== 01 DRQ DMA NO REQUEST | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
Transfers whose device is not asking, and the ends of the address range.
GPU SyncMode 1 with the GPU request off: not run in this table.
GPU SyncMode 0 with the GPU request off: not run in this table.
GPU SyncMode 0 bit 28 with the GPU request off: not run in this table.
SPU SyncMode 1 with SPU transfer mode stop: not run in this table.
SPU SyncMode 0 with SPU transfer mode stop: not run in this table.
SPU SyncMode 0 bit 28 with SPU transfer mode stop:
  SPUCNT mode stop, CHCR 11000001: polled up to 20000 times, done; MADR start0 BCR 00000040 SPUSTAT 0000
  then mode DMA write: done; MADR start0 BCR 00000040 SPUSTAT 0800
GPU list ended by FFFFFFh: not run in this table.
GPU list ended by FFFFFEh: not run in this table.
GPU list ended by 800000h: not run in this table.
OTC of 3 words from address 4: not run in this table.
Done.

28 September 2026 card-h dmatime_drq7

Raw output: 00RUN.txt · 01DRQ.txt

00RUN.txt:

===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
1 tests
A chain program, linked at 80100000
Saved on the card in slot 2, from image 1
COP0 at start: BPC 00000000 BDA 80024F50 TAR 80020FE0 DCIC 00000000 BadVaddr 1F801DAA BDAM FFFFFFFF
BPCM 00000000 SR 70000000 Cause 00000020 EPC 80021BC4 PRId 00000002

01DRQ.txt:

===== 01 DRQ DMA NO REQUEST | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
Transfers whose device is not asking, and the ends of the address range.
GPU SyncMode 1 with the GPU request off: not run in this table.
GPU SyncMode 0 with the GPU request off: not run in this table.
GPU SyncMode 0 bit 28 with the GPU request off: not run in this table.
SPU SyncMode 1 with SPU transfer mode stop: not run in this table.
SPU SyncMode 0 with SPU transfer mode stop: not run in this table.
SPU SyncMode 0 bit 28 with SPU transfer mode stop: not run in this table.
GPU list ended by FFFFFFh:
  list of 4 ending FFFFFF: 116, MADR 00FFFFFF, CHCR 00000401, DICR 00000000, IRQ3 0
  DICR with bit 15 written 0: 00000000
GPU list ended by FFFFFEh: not run in this table.
GPU list ended by 800000h: not run in this table.
OTC of 3 words from address 4: not run in this table.
Done.

28 September 2026 card-h dmatime_drq8

Raw output: 00RUN.txt · 01DRQ.txt

00RUN.txt:

===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
1 tests
A chain program, linked at 80010000
Saved on the card in slot 2, from image 1
COP0 at start: BPC 00000000 BDA 80024F50 TAR 80110FE0 DCIC 00000000 BadVaddr 1F801DAA BDAM FFFFFFFF
BPCM 00000000 SR 70000000 Cause 00000020 EPC 80111BC4 PRId 00000002

01DRQ.txt:

===== 01 DRQ DMA NO REQUEST | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
Transfers whose device is not asking, and the ends of the address range.
GPU SyncMode 1 with the GPU request off: not run in this table.
GPU SyncMode 0 with the GPU request off: not run in this table.
GPU SyncMode 0 bit 28 with the GPU request off: not run in this table.
SPU SyncMode 1 with SPU transfer mode stop: not run in this table.
SPU SyncMode 0 with SPU transfer mode stop: not run in this table.
SPU SyncMode 0 bit 28 with SPU transfer mode stop: not run in this table.
GPU list ended by FFFFFFh: not run in this table.
GPU list ended by FFFFFEh:
  list of 4 ending FFFFFE: 133, MADR 00FFFFFE, CHCR 00000401, DICR 80008000, IRQ3 1
  DICR with bit 15 written 0: 00000000
GPU list ended by 800000h: not run in this table.
OTC of 3 words from address 4: not run in this table.
Done.

28 September 2026 card-h dmatime_drq9

Raw output: 00RUN.txt · 01DRQ.txt

00RUN.txt:

===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
1 tests
A chain program, linked at 80100000
Saved on the card in slot 2, from image 1
COP0 at start: BPC 00000000 BDA 80024F50 TAR BFC02BAC DCIC 00000000 BadVaddr 1F801DAA BDAM FFFFFFFF
BPCM 00000000 SR 70000000 Cause 00000020 EPC 80021BC4 PRId 00000002

01DRQ.txt:

===== 01 DRQ DMA NO REQUEST | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
Transfers whose device is not asking, and the ends of the address range.
GPU SyncMode 1 with the GPU request off: not run in this table.
GPU SyncMode 0 with the GPU request off: not run in this table.
GPU SyncMode 0 bit 28 with the GPU request off: not run in this table.
SPU SyncMode 1 with SPU transfer mode stop: not run in this table.
SPU SyncMode 0 with SPU transfer mode stop: not run in this table.
SPU SyncMode 0 bit 28 with SPU transfer mode stop: not run in this table.
GPU list ended by FFFFFFh: not run in this table.
GPU list ended by FFFFFEh: not run in this table.
GPU list ended by 800000h:
  list of 4 ending 800000: 129, MADR 00800000, CHCR 00000401, DICR 80008000, IRQ3 1
  DICR with bit 15 written 0: 00000000
OTC of 3 words from address 4: not run in this table.
Done.

28 September 2026 card-h dmatime_drq10

Raw output: 00RUN.txt · 01DRQ.txt

00RUN.txt:

===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
1 tests
A chain program, linked at 80010000
Saved on the card in slot 2, from image 1
COP0 at start: BPC 00000000 BDA 80024F50 TAR BFC02BAC DCIC 00000000 BadVaddr 1F801DAA BDAM FFFFFFFF
BPCM 00000000 SR 70000000 Cause 00000020 EPC 80111BC4 PRId 00000002

01DRQ.txt:

===== 01 DRQ DMA NO REQUEST | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
Transfers whose device is not asking, and the ends of the address range.
GPU SyncMode 1 with the GPU request off: not run in this table.
GPU SyncMode 0 with the GPU request off: not run in this table.
GPU SyncMode 0 bit 28 with the GPU request off: not run in this table.
SPU SyncMode 1 with SPU transfer mode stop: not run in this table.
SPU SyncMode 0 with SPU transfer mode stop: not run in this table.
SPU SyncMode 0 bit 28 with SPU transfer mode stop: not run in this table.
GPU list ended by FFFFFFh: not run in this table.
GPU list ended by FFFFFEh: not run in this table.
GPU list ended by 800000h: not run in this table.
OTC of 3 words from address 4:
  word 4 00000000, word 0 00FFFFFC, word 1FFFFCh 22222222 (was 22222222); MADR 00000004 CHCR 00000002
Done.

28 September 2026 card-h dmatime_odd1

Raw output: 00RUN.txt · 01DOD.txt

00RUN.txt:

===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
1 tests
A chain program, linked at 80100000
Saved on the card in slot 2, from image 1
COP0 at start: BPC 00000000 BDA 80024F50 TAR BFC02BAC DCIC 00000000 BadVaddr 1F801DAA BDAM FFFFFFFF
BPCM 00000000 SR 70000000 Cause 00000020 EPC 80021BC4 PRId 00000002

01DOD.txt:

===== 01 DOD DMA ODD BITS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
CHCR bits 8, 29 and 30 where psx-spx leaves them open.
Bit 30:
  GPU write 16 x 16: CHCR 01000201 494, 41000201 480, CHCR after 40000201
  SPU write 16 x 16: CHCR 01000201 17700, 41000201 17356, CHCR after 40000201
Bits 28 and 29 in SyncMode 1: not run in this table.
Bit 8 in a linked list: not run in this table.
Bit 29 in a forced burst: not run in this table.
Bit 8 in SyncMode 1: not run in this table.
Done.

28 September 2026 card-h dmatime_odd2

Raw output: 00RUN.txt · 01DOD.txt

00RUN.txt:

===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
1 tests
A chain program, linked at 80010000
Saved on the card in slot 2, from image 1
COP0 at start: BPC 00000000 BDA 80024F50 TAR BFC02BAC DCIC 00000000 BadVaddr 1F801DAA BDAM FFFFFFFF
BPCM 00000000 SR 70000000 Cause 00000020 EPC 80111BC4 PRId 00000002

01DOD.txt:

===== 01 DOD DMA ODD BITS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
CHCR bits 8, 29 and 30 where psx-spx leaves them open.
Bit 30: not run in this table.
Bits 28 and 29 in SyncMode 1:
  poll    t: CHCR MADR BCR DICR
      0  1482: 20000201 0002A3C0 00000010 90900000
  done after 0 polls
Bit 8 in a linked list: not run in this table.
Bit 29 in a forced burst: not run in this table.
Bit 8 in SyncMode 1: not run in this table.
Done.

28 September 2026 card-h dmatime_odd3

Raw output: 00RUN.txt · 01DOD.txt

00RUN.txt:

===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
1 tests
A chain program, linked at 80100000
Saved on the card in slot 2, from image 1
COP0 at start: BPC 00000000 BDA 80024F50 TAR 80020FE0 DCIC 00000000 BadVaddr 1F801DAA BDAM FFFFFFFF
BPCM 00000000 SR 70000000 Cause 00000020 EPC 80021BC4 PRId 00000002

01DOD.txt:

===== 01 DOD DMA ODD BITS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
CHCR bits 8, 29 and 30 where psx-spx leaves them open.
Bit 30: not run in this table.
Bits 28 and 29 in SyncMode 1: not run in this table.
Bit 8 in a linked list:
  16 nodes of 1, CHCR 01000401: 308, 01000501: 310, MADR 00FFFFFF CHCR 00000501 GPUSTAT 5602220A
Bit 29 in a forced burst: not run in this table.
Bit 8 in SyncMode 1: not run in this table.
Done.

28 September 2026 card-h dmatime_odd4

Raw output: 00RUN.txt · 01DOD.txt

00RUN.txt:

===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
1 tests
A chain program, linked at 80010000
Saved on the card in slot 2, from image 1
COP0 at start: BPC 00000000 BDA 80024F50 TAR 80110FE0 DCIC 00000000 BadVaddr 1F801DAA BDAM FFFFFFFF
BPCM 00000000 SR 70000000 Cause 00000020 EPC 80111BC4 PRId 00000002

01DOD.txt:

===== 01 DOD DMA ODD BITS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
CHCR bits 8, 29 and 30 where psx-spx leaves them open.
Bit 30: not run in this table.
Bits 28 and 29 in SyncMode 1: not run in this table.
Bit 8 in a linked list: not run in this table.
Bit 29 in a forced burst:
  GPU SyncMode 0, CHCR 31000001: polled up to 20000 times, done; MADR start0 BCR 00000100 CHCR 30000001
Bit 8 in SyncMode 1: not run in this table.
Done.

28 September 2026 card-h dmatime_pio1

Raw output: 00RUN.txt · 01DPI.txt

00RUN.txt:

===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
1 tests
A chain program, linked at 80100000
Saved on the card in slot 2, from image 1
COP0 at start: BPC 00000000 BDA 80024F50 TAR 8001D3C4 DCIC 00000000 BadVaddr 1F801DAA BDAM FFFFFFFF
BPCM 00000000 SR 70000000 Cause 00000020 EPC 8001DF30 PRId 00000002

01DPI.txt:

===== 01 DPI DMA PIO | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
DMA5, expansion port to RAM. EXP1 delay/size 0013243F, base 1F000000.
SyncMode 1, 4 words:
  CHCR 01000200 BCR 00010004: busy after 20000 polls, 109029; MADR start0 BCR 00010004 CHCR 01000200; words 0-1 CCCCCCCC CCCCCCCC
SyncMode 0, 4 words, no bit 28: not run in this table.
SyncMode 0 bit 28, 1 word: not run in this table.
SyncMode 0 bit 28, 16 words: not run in this table.
SyncMode 0 bit 28, 64 words: not run in this table.
Done.

28 September 2026 card-h dmatime_pio2

Raw output: 00RUN.txt · 01DPI.txt

00RUN.txt:

===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
1 tests
A chain program, linked at 80010000
Saved on the card in slot 2, from image 1
COP0 at start: BPC 00000000 BDA 80024F50 TAR BFC02BAC DCIC 00000000 BadVaddr 1F801DAA BDAM FFFFFFFF
BPCM 00000000 SR 70000000 Cause 00000020 EPC 80111BB0 PRId 00000002

01DPI.txt:

===== 01 DPI DMA PIO | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
DMA5, expansion port to RAM. EXP1 delay/size 0013243F, base 1F000000.
SyncMode 1, 4 words: not run in this table.
SyncMode 0, 4 words, no bit 28:
  CHCR 01000000 BCR 00000004: busy after 20000 polls, 109026; MADR start0 BCR 00000004 CHCR 01000000; words 0-1 CCCCCCCC CCCCCCCC
SyncMode 0 bit 28, 1 word: not run in this table.
SyncMode 0 bit 28, 16 words: not run in this table.
SyncMode 0 bit 28, 64 words: not run in this table.
Done.

28 September 2026 card-h dmatime_pio3

Raw output: 00RUN.txt · 01DPI.txt

00RUN.txt:

===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
1 tests
A chain program, linked at 80100000
Saved on the card in slot 2, from image 1
COP0 at start: BPC 00000000 BDA 80024F50 TAR BFC02BAC DCIC 00000000 BadVaddr 1F801DAA BDAM FFFFFFFF
BPCM 00000000 SR 70000000 Cause 00000020 EPC 80021BB0 PRId 00000002

01DPI.txt:

===== 01 DPI DMA PIO | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
DMA5, expansion port to RAM. EXP1 delay/size 0013243F, base 1F000000.
SyncMode 1, 4 words: not run in this table.
SyncMode 0, 4 words, no bit 28: not run in this table.
SyncMode 0 bit 28, 1 word:
  CHCR 11000000 BCR 00000001: done at 111; MADR start0 BCR 00000001 CHCR 00000000; words 0-1 FFFFFFFF CCCCCCCC
SyncMode 0 bit 28, 16 words: not run in this table.
SyncMode 0 bit 28, 64 words: not run in this table.
Done.

28 September 2026 card-h dmatime_pio4

Raw output: 00RUN.txt · 01DPI.txt

00RUN.txt:

===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
1 tests
A chain program, linked at 80010000
Saved on the card in slot 2, from image 1
COP0 at start: BPC 00000000 BDA 80024F50 TAR 80110FCC DCIC 00000000 BadVaddr 1F801DAA BDAM FFFFFFFF
BPCM 00000000 SR 70000000 Cause 00000020 EPC 80111BB0 PRId 00000002

01DPI.txt:

===== 01 DPI DMA PIO | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
DMA5, expansion port to RAM. EXP1 delay/size 0013243F, base 1F000000.
SyncMode 1, 4 words: not run in this table.
SyncMode 0, 4 words, no bit 28: not run in this table.
SyncMode 0 bit 28, 1 word: not run in this table.
SyncMode 0 bit 28, 16 words:
  CHCR 11000000 BCR 00000010: done at 411; MADR start0 BCR 00000010 CHCR 00000000; words 0-1 FFFFFFFF FFFFFFFF
SyncMode 0 bit 28, 64 words: not run in this table.
Done.

28 September 2026 card-h dmatime_pio5

Raw output: 00RUN.txt · 01DPI.txt

00RUN.txt:

===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
1 tests
A chain program, linked at 80100000
Saved on the card in slot 2, from image 1
COP0 at start: BPC 00000000 BDA 80024F50 TAR 80021014 DCIC 00000000 BadVaddr 1F801DAA BDAM FFFFFFFF
BPCM 00000000 SR 70000000 Cause 00000020 EPC 80021BB0 PRId 00000002

01DPI.txt:

===== 01 DPI DMA PIO | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
DMA5, expansion port to RAM. EXP1 delay/size 0013243F, base 1F000000.
SyncMode 1, 4 words: not run in this table.
SyncMode 0, 4 words, no bit 28: not run in this table.
SyncMode 0 bit 28, 1 word: not run in this table.
SyncMode 0 bit 28, 16 words: not run in this table.
SyncMode 0 bit 28, 64 words:
  CHCR 11000000 BCR 00000040: done at 1388; MADR start0 BCR 00000040 CHCR 00000000; words 0-1 FFFFFFFF FFFFFFFF
Done.

28 September 2026 card-h dmatime_unk1

Raw output: 00RUN.txt · 01DUN.txt

00RUN.txt:

===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
1 tests
A chain program, linked at 80100000
Saved on the card in slot 2, from image 1
COP0 at start: BPC 00000000 BDA 80024F50 TAR BFC02BAC DCIC 00000000 BadVaddr 1F801DAA BDAM FFFFFFFF
BPCM 00000000 SR 70000000 Cause 00000020 EPC 8001E498 PRId 00000002

01DUN.txt:

===== 01 DUN DMA F8 FC | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
1F8010F8h and 1F8010FCh, "might be remaining length and address?" (channels.txt:132-141): read at the start 3FF33A0A 00FFFFFF, while an SPU write runs, after transfers, then written.
While SPU write 16 words x 16 runs:
  poll    t: CHCR F8 FC MADR
      0   552: 01000201 3FF30A53 00FFFFFF 0011A200
      3  1654: 01000201 3FF30A53 00FFFFFF 0011A240
      6  2722: 01000201 3FF30A53 00FFFFFF 0011A280
     10  4081: 01000201 3FF30A53 00FFFFFF 0011A2C0
     13  5143: 01000201 3FF30A53 00FFFFFF 0011A300
     16  6212: 01000201 3FF30A53 00FFFFFF 0011A340
     19  7282: 01000201 3FF30A53 00FFFFFF 0011A380
     23  8628: 01000201 3FF30A53 00FFFFFF 0011A3C0
     26  9698: 01000201 3FF30A53 00FFFFFF 0011A400
     29 10774: 01000201 3FF30A53 00FFFFFF 0011A440
     32 11842: 01000201 3FF30A53 00FFFFFF 0011A480
     36 13191: 01000201 3FF30A53 00FFFFFF 0011A4C0
     39 14259: 01000201 3FF30A53 00FFFFFF 0011A500
     43 15601: 01000201 3FF30A53 00FFFFFF 0011A540
     46 16663: 01000201 3FF30A53 00FFFFFF 0011A580
     49 17732: 01000201 3FF30A53 00FFFFFF 0011A5C0
     50 18098: 00000201 3FF30A53 00FFFFFF 0011A5C0
  done after 50 polls
After transfers: not run in this table.
Written: not run in this table.
Done.

28 September 2026 card-h dmatime_unk2

Raw output: 00RUN.txt · 01DUN.txt

00RUN.txt:

===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
1 tests
A chain program, linked at 80010000
Saved on the card in slot 2, from image 1
COP0 at start: BPC 00000000 BDA 80024F50 TAR BFC02BAC DCIC 00000000 BadVaddr 1F801DAA BDAM FFFFFFFF
BPCM 00000000 SR 70000000 Cause 00000020 EPC 80111BC0 PRId 00000002

01DUN.txt:

===== 01 DUN DMA F8 FC | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
1F8010F8h and 1F8010FCh, "might be remaining length and address?" (channels.txt:132-141): read at the start 3FF31A13 00FFFFFF, while an SPU write runs, after transfers, then written.
While SPU write 16 words x 16 runs: not run in this table.
After transfers:
  after an OTC: F8 3FE32A5C FC 00FFFFFF
  after an SPU read: F8 3FE70A9C FC 00FFFFFF
  after an OTC from MADR+2: F8 3FE31A9C FC 00FFFFFF
Written: not run in this table.
Done.

28 September 2026 card-h dmatime_unk3

Raw output: 00RUN.txt · 01DUN.txt

00RUN.txt:

===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
1 tests
A chain program, linked at 80100000
Saved on the card in slot 2, from image 1
COP0 at start: BPC 00000000 BDA 80024F50 TAR 80021024 DCIC 00000000 BadVaddr 1F801DAA BDAM FFFFFFFF
BPCM 00000000 SR 70000000 Cause 00000020 EPC 80021BC0 PRId 00000002

01DUN.txt:

===== 01 DUN DMA F8 FC | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
1F8010F8h and 1F8010FCh, "might be remaining length and address?" (channels.txt:132-141): read at the start 3FE72A1C 00FFFFFF, while an SPU write runs, after transfers, then written.
While SPU write 16 words x 16 runs: not run in this table.
After transfers: not run in this table.
Written:
  F8 was 3FE72A1C: 0 reads 3FE72A1C, FFFFFFFF reads 3FE72A1C; FC was 00FFFFFF: 0 reads 00FFFFFF, FFFFFFFF reads 00FFFFFF; now 3FE72A1C 00FFFFFF
Done.

5 October 2026 card-q

Raw output: 00RUN.txt · 01LSN.txt

00RUN.txt:

===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
1 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 8001FD9C DCIC 00000000 BadVaddr 00000480 BDAM 00000000
BPCM 00000000 SR 40000000 Cause 00000020 EPC 80020950 PRId 00000002

01LSN.txt:

===== 01 LSN DMA SHORT LISTS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
DMA2 lists of n nodes of k GP0(00h) words ending FFFFFFh, GP1(04h)=2: clocks from the CHCR
write to bit 24 clear, three runs; with DICR 7F000000h written first, then without (row 112).
DICR written, 1 nodes of 0:  75  65  65
DICR written, 2 nodes of 0:  85  82  82
DICR written, 3 nodes of 0:  85  85  85
DICR written, 4 nodes of 0:  98  98  98
DICR written, 1 nodes of 1:  68  68  69
DICR written, 2 nodes of 1:  95  97  91
DICR written, 3 nodes of 1:  97  101  103
DICR written, 4 nodes of 1:  113  113  113
DICR written, 1 nodes of 2:  69  69  69
DICR written, 2 nodes of 2:  93  93  93
DICR written, 3 nodes of 2:  100  100  106
DICR written, 4 nodes of 2:  117  117  117
no DICR write, 1 nodes of 0:  65  65  65
no DICR write, 2 nodes of 0:  85  82  82
no DICR write, 3 nodes of 0:  85  85  85
no DICR write, 4 nodes of 0:  98  98  98
no DICR write, 1 nodes of 1:  68  68  74
no DICR write, 2 nodes of 1:  97  91  91
no DICR write, 3 nodes of 1:  102  103  97
no DICR write, 4 nodes of 1:  118  117  113
no DICR write, 1 nodes of 2:  69  69  69
no DICR write, 2 nodes of 2:  93  93  93
no DICR write, 3 nodes of 2:  100  100  100
no DICR write, 4 nodes of 2:  117  117  117
Done.

References


  1. ^ a b c SCPH-5501 output: dmatime_safe/02DOT.txt.

  2. ^ a b c Run 20260928T0000Z-5501a-card-h: dmatime_safe/02DOT.txt.

  3. ^ a b Run 20260928T0000Z-5501a-card-h: dmatime_safe/01DRB.txt.

  4. ^ Run 20260927T0000Z-5501a-card-c: dmatime_rest/01DUN.txt.

  5. ^ Run 20260928T0000Z-5501a-card-h: dmatime_drq10/01DRQ.txt.

  6. ^ Run 20260928T0000Z-5501a-card-h: dmatime_safe/03DGL.txt.

  7. ^ Run 20260928T0000Z-5501a-card-h: dmatime_drq7/01DRQ.txt, dmatime_drq8/01DRQ.txt, dmatime_drq9/01DRQ.txt.

  8. ^ Run 20260928T0000Z-5501a-card-h: dmatime_safe/04DGB.txt.

  9. ^ Run 20260928T0000Z-5501a-card-h: dmatime_drq1/01DRQ.txt, dmatime_drq2/01DRQ.txt, dmatime_drq3/01DRQ.txt.

  10. ^ a b Run 20260928T0000Z-5501a-card-h: dmatime_safe/05DSP.txt.

  11. ^ Run 20260928T0000Z-5501a-card-h: dmatime_drq4/01DRQ.txt, dmatime_drq5/01DRQ.txt, dmatime_drq6/01DRQ.txt.

  12. ^ Run 20260928T0000Z-5501a-card-h: dmatime_safe/06DMW.txt.

  13. ^ a b Run 20260928T0000Z-5501a-card-h: dmatime_safe/08DCP.txt.

  14. ^ a b Run 20260928T0000Z-5501a-card-h: dmatime_safe/09DCH.txt.

  15. ^ a b Run 20260928T0000Z-5501a-card-h: dmatime_safe/10DPR.txt.

  16. ^ a b Run 20260928T0000Z-5501a-card-h: dmatime_safe/07DIC.txt.

  17. ^ Run 20260928T0000Z-5501a-card-h: dmatime_odd1/01DOD.txt, dmatime_odd3/01DOD.txt, dmatime_odd4/01DOD.txt.

  18. ^ Run 20260927T0000Z-5501a-card-b: dmatime/13DOD.txt.

  19. ^ Runs 20260927T0000Z-5501a-card-c and 20260928T0000Z-5501a-card-h: dmatime_rest/02DPI.txt, dmatime_pio1/01DPI.txt, dmatime_pio5/01DPI.txt.

  20. ^ Run 20261005T0000Z-5501a-card-q: dmatime_lsn/01LSN.txt.

Categories: Hardware tests