From 1c7965ac7121ee8aad8a7d181efe9cbee68a632d Mon Sep 17 00:00:00 2001 From: Jan Vos Date: Tue, 30 Dec 2025 18:35:13 +0100 Subject: [PATCH 1/2] island --- src/dmdreader.cpp | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/dmdreader.cpp b/src/dmdreader.cpp index 48f0049..832aa4c 100644 --- a/src/dmdreader.cpp +++ b/src/dmdreader.cpp @@ -77,6 +77,7 @@ enum DmdType { DMD_SEGA_HD, DMD_GOTTLIEB, DMD_ALVING, + DMD_ISLAND, // CAPCOM need to be the last entries: DMD_CAPCOM, DMD_CAPCOM_HD, @@ -382,6 +383,11 @@ DmdType detect_dmd() { (de < 9600) && (rdata > 65) && (rdata < 80)) { return DMD_ALVING; + // Island/SPinball(?) -> DOTCLK: 2323000 | DE: 18150 | RDATA: 565 + } else if ((dotclk > 2200000) && (dotclk < 2450000) && (de > 17650) && + (de < 18500) && (rdata > 540) && (rdata < 590)) { + return DMD_ISLAND; + // Capcom -> DOTCLK: 4168000 | DE: 16280 | RDATA: 510 } else if ((dotclk > 4000000) && (dotclk < 4300000) && (de > 16000) && (de < 16500) && (rdata > 490) && (rdata < 530)) { @@ -904,6 +910,26 @@ bool dmdreader_init(bool return_on_no_detection) { break; } + case DMD_ISLAND: { + uint input_pins[] = {RDATA}; + dmdreader_programs_init( + &dmd_reader_gottlieb_program, + dmd_reader_gottlieb_program_get_default_config, + &dmd_framedetect_gottlieb_program, + dmd_framedetect_gottlieb_program_get_default_config, input_pins, 1, + 0); + + source_width = 128; + source_height = 32; + source_bitsperpixel = 4; + target_bitsperpixel = 4; + source_planesperframe = 4; + source_planehistoryperframe = 0; + source_lineoversampling = LINEOVERSAMPLING_NONE; + source_mergeplanes = MERGEPLANES_ADD; + break; + } + case DMD_CAPCOM: { uint input_pins[] = {RDATA, RCLK}; dmdreader_programs_init(&dmd_reader_capcom_program, From acf7d7e1a81c36379099229a9634e0126efba0a1 Mon Sep 17 00:00:00 2001 From: Jan Vos Date: Fri, 2 Jan 2026 17:39:58 +0100 Subject: [PATCH 2/2] fix capcom pin numbers --- src/dmdreader.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/dmdreader.cpp b/src/dmdreader.cpp index 832aa4c..688e70e 100644 --- a/src/dmdreader.cpp +++ b/src/dmdreader.cpp @@ -936,7 +936,7 @@ bool dmdreader_init(bool return_on_no_detection) { dmd_reader_capcom_program_get_default_config, &dmd_framedetect_capcom_program, dmd_framedetect_capcom_program_get_default_config, - input_pins, 3, 0); + input_pins, 2, 0); source_width = 128; source_height = 32;