Sega Dreamcast Check-GD disk that tests several parts of the system. Originally posted in dccons.cpp, moved here for convenience in tracking.
Parenthesis notes denotes internal code markings. Jumps in these markings denotes greyed out tests that cannot be run.
Main Menu
[ ] SCIF failure at bootneeds NOPs at PC=0xc0196da and PC=0xc0196ec to bypass
[ ] identify what alt combinations does at boot
(A+B, Right+X, Left+X, Down+A+B+X, Down+X, Up+X and few others)
[ ] Compile switch for serial terminal mode
SH4 CHECK
UBC test (01++)
[x] UBC test (0101): ok
FPU test (02++)
[ ] FPU test (0201): NG
0xc03fe24 work ram flag check (1=error, 0=ok)
Cache test (03++):
[ ] Cache Read/Write test (0301): NG
[ ] Cache RAM mode Check (0305): NG
MMU test (04++):
[ ] punts on main menu with wrong colors, hangs
[ ] MMU check 1 (0401)
[ ] MMU check 2 (0402)
[ ] MMU check 3 (0403)
[ ] MMU check 4 (0404)
TMU test (05++):
These three runs under (0501)
[x] *_reg check -> ok
[x] TCNT* reload -> NG ok
[x] TCNT* underflow irq -> NG ok
MULT test (06++)
[x] (0601) ok
DIVU test (07++)
[x] (0701) ok
Store Queue test (08++):
[x] (0801) ok
SCIF test (0a++)
[ ] (0a01) NG
PI test (0b++)
[ ] PI (0b01) NG
As in "Private Instruction"
Critical test (0d++)
[x] Critical (Store Queue) test (0d01): ok
[x] Critical (Write back) test (0d02): ok
[x] Critical (ADD,CMP/EQ) test (0d03): ok
[ ] Critical (OC_OIX) test (0d04): NG
[x] Critical (MAX current) test (0d05): ok
very slow test
[ ] Critical (IC Cross Talk) test (0d06): NG
[ ] Critical (Cache D-array) test (0d07): NG
SH-4 BUG (0e++)
These three runs under (0e01)
[x] SH4_BUG 64bit FMOV: ok
[x] SH4 BUG FIX (64bitFMOV): ok
MEMORY CHECK
several sub-tests
[x] AICA (0102): ok
[x] Work RAM (0204): ok
[x] PV64 area (0303): ok
[x] PV32 area (0403): ok
CLX CHECK
[x] CLX internal RAM (0101): ok
[ ] TORUS check (0401): NG
draws a vertical violet stripe with unmapped $5f8000 writes, expect an irq at PC=0xc094546, unsure what even "Torus" is.
TA CHECK
Interrupt (01++)
[x] TA_YUVINT (0101): ok -> IST_EOXFER_YUV
[x] TA_OENDINT (0102): ok -> IST_EOXFER_OPLST
[x] TA_OMENDINT (0103): ok -> IST_EOXFER_OPMV
[x] TA_TENDINT (0104): ok -> IST_EOXFER_TRLST
[x] TA_TMENDINT (0105): ok -> IST_EOXFER_TRMV
[x] TA_PTENDINT (0106): ok -> IST_EOXFER_PTLST
[ ] TA_ISPINT (0107): NG -> ISP/TSP Parameter Overflow (error)
[ ] TA_OBJINT (0108): NG -> OBJect list pointer Overflow (error)
[ ] TA_IPINT (0109): NG -> TA: Illegal parameter (error)
YUV CNVT (02++)
[x] YUV Converter (0201): ok
DDTi/f CHECK
DMA (01++)
[ ] (0101): hangs (wants Sort DMA irq)
these three runs with same test
[ ] Sort, Normal DMA (1)
[ ] Sort, Normal DMA (2)
[ ] Through: NG, hangs again
Interrupt (02++)
[x] DC_DEINT (0201): ok
[x] DC_SDTEINT (0202): ok
[ ] DC_SDTERINT (0203): prompts ok but returns error count ++, bug in SW?
G2 BUS CHECK
DMA (01++)
[x] DMA (0101): NG ok
G2 EXT AREA DETECT:
"!!!! ch00 ERROR DETECT !!!!"
<hangs>
wants AICA mirror RAM and E1/E2/DD G2 DMA emulation, fixed in naomiaw_inputs
Interrupt (03++)
[x] Interrupt (0301): NG ok
G2 EXT AREA DETECT
DMA END INT
<hangs>
wants G2 end irq to work on all channels, fixed in naomiaw_inputs
[x] (0302): DMA iA INT: NG !!!! ERROR DETECT !!!! ok
attempt to write root or g2 addresses with an illegal parameter (illegal Address), attempt to start a DMA with said incorrect configuration, fixed in naomiaw_inputs
[x] (0303): DMA OR INT: NG !!!! ERROR DETECT !!!! ok
wants an OveRflow exception (not asserting area protection for root address while transfering), fixed in naomiaw_inputs
[ ] (0304): TIME OUT INT: NG !!!! ERROR DETECT !!!!
Ext Interrupt (06++)
[x] AICA INT (0601): error detect ok
fixed in naomiaw_inputs, regression with sfz3ugd BGMs
[ ] Modem INT (0602): error detect
AICA CHECK
Sound RAM (01++)
[x] Pattern R/W (0101): ok
Register (02++)
[x] CH Data (0201): ok
[x] EXT Input (0202): ok
[x] DSP Data (0203): ok
S_Clock (03++)
[ ] 50MSEC (0301): NG
~0xa58 in 0x702814, must be > 0x889 and < 0x8b0
[ ] 25MSEC (0302): NG
~0x372 in 0x702814, must be > 0x443 and < 0x45a
Timer (04++)
[ ] Timer A (0401): NG
[ ] Timer B (0402): NG
[ ] Timer C (0403): NG
DMA (05++)
[x] SRAM -> CH Reg (0501): ok
[x] SRAM -> Comm Reg (0502): ok
[x] SRAM -> DSP Reg (0503): ok
[x] CH Reg -> SRAM (0504): ok
[x] Comm Reg -> SRAM (0505): ok
[x] DSP Reg -> SRAM (0506): ok
[x] Clear SRAM (0507): ok
[x] Clear CH Reg (0508): ok
[x] Clear Comm Reg (0509): ok
[x] Clear DSP Reg (050a): ok
Interrupt (06++)
[ ] Sampling clock (0601): enable reg OK, actual clock test NG
(irq 0x400)
[ ] Timer A (0602): NG first time around, ok on successive runs
[x] Timer B (0603): ok
[x] Timer C (0604): ok
[x] DMA End (0605): ok
[ ] Midi Out (0606): NG
[x] Main CPU (0607): ok
RTC (07++)
[x] Write Protect (0701): ok
[x] RW Comp (0702): ok
[ ] Clock (0703): NG TIC 1001034
ARM7 (08++)
[ ] Load & Start (0801): NG
[ ] Timer & Intr (0802): NG
[ ] DMA (0803): NG
[x] Ch-Reg R/W (0804): ok
[ ] SRAM incr (0805): NG
[x] SRAM pattern (0806): ok
EG (09++)
[ ] LSA-Reg Left (0901): random ok/NG
[ ] LSA-Reg Right (0902): random ok/NG
[ ] LSA-Reg Left & Right (0903): random ok/NG
MIDI (0a++)
[ ] OEMP bit (0a01): NG
[ ] OFLL bit (0a02): NG
PVRi/f CHECK
DMA (01++)
Two tests under (0101)
[x] CPU trig: ok
[x] INT trig: ok
Interrupt (02++)
[x] PVR DMA end Int (0201): ok
[ ] PVR DMA IA Int (0202): NG !!!! ERROR DETECT !!!!
[ ] PVR DMA end (0203): NG !!!! ERROR DETECT !!!!
FLASH CHECK
WRITE & READ (01++)
[ ] WRITE & READ (0101): NG
(SH-4 jumps to la la land as soon as this is started)
ERASE (02++)
[x] chip erase (0201): ok
[ ] data set (0202): NG
!!!! ERROR DETECT !!!!
BYTE PROGRAM FAIL
CODE (03++)
[x] Device Code (0301): ok
[x] Manufacture's Code (sic) (0302): ok
PROTECT (04++)
All runs under 0401
[x] Sector Check Chip Erase: ok
[ ] 00000-0ffff Protect: !!!! ERROR DETECT !!!!
[ ] 10000-17fff Protect: !!!! ERROR DETECT !!!!
[ ] 18000-19fff Protect: !!!! ERROR DETECT !!!!
[x] 1a000-1bfff Protect: ok
[ ] 1c000-1ffff Protect: !!!! ERROR DETECT !!!!
GD CHECK
[x] All commands here punts with "Fatal error: GDROM: Unhandled read_type 0"
Sega Dreamcast Check-GD disk that tests several parts of the system. Originally posted in dccons.cpp, moved here for convenience in tracking.
Parenthesis notes denotes internal code markings. Jumps in these markings denotes greyed out tests that cannot be run.
Main Menu
needs NOPs at PC=0xc0196da and PC=0xc0196ec to bypass
SH4 CHECK
UBC test (01++)
FPU test (02++)
0xc03fe24 work ram flag check (1=error, 0=ok)
Cache test (03++):
MMU test (04++):
punts on main menu with wrong colors, hangs
TMU test (05++):
NGokNGokMULT test (06++)
DIVU test (07++)
Store Queue test (08++):
SCIF test (0a++)
PI test (0b++)
SH-4 BUG (0e++)
MEMORY CHECK
CLX CHECK
YUV CNVT (02++)
DDTi/f CHECK
DMA (01++)
Interrupt (02++)
G2 BUS CHECK
DMA (01++)
NGokNGokNGok!!!! ERROR DETECT !!!!
NGok!!!! ERROR DETECT !!!!
!!!! ERROR DETECT !!!!
Ext Interrupt (06++)
error detectokAICA CHECK
Sound RAM (01++)
Register (02++)
S_Clock (03++)
~0xa58 in 0x702814, must be > 0x889 and < 0x8b0
~0x372 in 0x702814, must be > 0x443 and < 0x45a
Timer (04++)
DMA (05++)
Interrupt (06++)
(irq 0x400)
RTC (07++)
ARM7 (08++)
EG (09++)
MIDI (0a++)
PVRi/f CHECK
DMA (01++)
Interrupt (02++)
!!!! ERROR DETECT !!!!
!!!! ERROR DETECT !!!!
FLASH CHECK
WRITE & READ (01++)
CODE (03++)
PROTECT (04++)
!!!! ERROR DETECT !!!!
!!!! ERROR DETECT !!!!
!!!! ERROR DETECT !!!!
!!!! ERROR DETECT !!!!
GD CHECK
unemulated
, hangsunemulated
unemulated
, hangsfails several
unemulated
unemulated
INTERRUPT (03++)
HEARING TEST