From 6c434f12d4e169a10b1cb54509a5d4731849896d Mon Sep 17 00:00:00 2001 From: ClawGrip Date: Wed, 7 Aug 2024 17:32:01 +0200 Subject: [PATCH 1/4] igs/pgm2.cpp: Add CPLD dump for Bu Bu Car [Victor Fernandez (City Game), Recreativas.org] (#12642) --- src/mame/igs/pgm2.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/mame/igs/pgm2.cpp b/src/mame/igs/pgm2.cpp index c95c1a1568b..6202560f624 100644 --- a/src/mame/igs/pgm2.cpp +++ b/src/mame/igs/pgm2.cpp @@ -1220,6 +1220,9 @@ ROM_START( bubucar ) ROM_REGION( 0x10000, "sram", 0 ) ROM_LOAD( "bubucar_en_sram", 0x0000000, 0x0010000, NO_DUMP ) + + ROM_REGION( 0x603, "cpld", 0 ) + ROM_LOAD( "xilinx_xc2c32a-vqg44.u14", 0x0000000, 0x0000603, CRC(bf461ea6) SHA1(26c434f189a3730a07cec3ebd9a05d0d0d5e4a55) ) ROM_END static void iga_u16_decode(u16 *rom, int len, int ixor) From f385cfa40b124b733fb5883dcd7630cb69eb50de Mon Sep 17 00:00:00 2001 From: ClawGrip Date: Wed, 7 Aug 2024 17:33:09 +0200 Subject: [PATCH 2/4] gaelco/gaelco3d.cpp: Add note and ROM placeholder about Speed Up coin distribution [Recreativas.org] (#12640) --- src/mame/gaelco/gaelco3d.cpp | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/mame/gaelco/gaelco3d.cpp b/src/mame/gaelco/gaelco3d.cpp index 44ea176a133..b73d0b8a499 100644 --- a/src/mame/gaelco/gaelco3d.cpp +++ b/src/mame/gaelco/gaelco3d.cpp @@ -1011,6 +1011,27 @@ Gaelco was notorious for using the same ROM labels even when ROM data changed. T Occasionally PCBs have been observed with a handwritten version on the labels, but it's unknown if it's a factory or operator addition. */ +/* +Speed Up uses a small external PCB with a PIC for credit distribution: + ________________________ + | ____ ____ | + | ···· ···· | + | ______ _________ ·|| + | LM340T5 |PIC16C54| ·|| + | ___ ·|| + | _________ | | ·|| + | |ULN2003A1| | | | + | ___ | <-74HCT245N + || | _________ |__| | + || | |_DIPSx8_| ·|| + || <-CD74HCT174E ·|| + ||__| _________ ·|| + | |74HCT245N ·|| + |_______________________| + +Manuals with dip switches setup and schematics can be downloaded from https://www.recreativas.org/manuales/videojuegos +*/ + ROM_START( speedup ) // Version 2.20 - REF. 960717 ROM board ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 code ROM_LOAD16_BYTE( "sup_2.2_10.ic10", 0x000000, 0x80000, CRC(ee781e64) SHA1(d90fa9319982fa389c2032e13d59850971078006) ) // 2.2 is handwritten between SUP and 10 @@ -1035,6 +1056,9 @@ ROM_START( speedup ) // Version 2.20 - REF. 960717 ROM board // These 2 are copies of the previous 2 at different IC locations // ROM_LOAD( "ic43.bin", 0x0000000, 0x020000, CRC(34737d1d) SHA1(e9109a88e211aa49851e72a6fa3417f1cad1cb8b) ) // nondescript green dot label // ROM_LOAD( "ic42.bin", 0x0020000, 0x020000, CRC(e89e829b) SHA1(50c99bd9667d78a61252eaad5281a2e7f57be85a) ) // nondescript white dot label + + ROM_REGION( 0x2000, "coin", 0 ) // Credit distribution PCB + ROM_LOAD( "2x1c_pic16c54.u1", 0x0000, 0x2000, NO_DUMP ) ROM_END ROM_START( speedup12 ) // Version 1.20 - REF. 960717 ROM board @@ -1061,6 +1085,9 @@ ROM_START( speedup12 ) // Version 1.20 - REF. 960717 ROM board // These 2 are copies of the previous 2 at different IC locations // ROM_LOAD( "ic43.bin", 0x0000000, 0x020000, CRC(34737d1d) SHA1(e9109a88e211aa49851e72a6fa3417f1cad1cb8b) ) // nondescript green dot label // ROM_LOAD( "ic42.bin", 0x0020000, 0x020000, CRC(e89e829b) SHA1(50c99bd9667d78a61252eaad5281a2e7f57be85a) ) // nondescript white dot label + + ROM_REGION( 0x2000, "coin", 0 ) // Credit distribution PCB + ROM_LOAD( "2x1c_pic16c54.u1", 0x0000, 0x2000, NO_DUMP ) ROM_END ROM_START( speedup10 ) // Version 1.00 - REF. 960717 ROM board @@ -1087,6 +1114,9 @@ ROM_START( speedup10 ) // Version 1.00 - REF. 960717 ROM board // These 2 are copies of the previous 2 at different IC locations // ROM_LOAD( "ic43.bin", 0x0000000, 0x020000, CRC(34737d1d) SHA1(e9109a88e211aa49851e72a6fa3417f1cad1cb8b) ) // nondescript green dot label // ROM_LOAD( "ic42.bin", 0x0020000, 0x020000, CRC(e89e829b) SHA1(50c99bd9667d78a61252eaad5281a2e7f57be85a) ) // nondescript white dot label + + ROM_REGION( 0x2000, "coin", 0 ) // Credit distribution PCB + ROM_LOAD( "2x1c_pic16c54.u1", 0x0000, 0x2000, NO_DUMP ) ROM_END From d4a570081f61430f6d9bed86a1b2bc18b5ec5153 Mon Sep 17 00:00:00 2001 From: mamehaze <140764005+mamehaze@users.noreply.github.com> Date: Wed, 7 Aug 2024 16:38:10 +0100 Subject: [PATCH 3/4] tvgames/xavix_2000.cpp: Add preliminary support for Duel Masters: Duel Station (#12639) * new NOT WORKING machines --------------------------------------- Duel Masters: Duel Station (Japan) [David Haywood, Team Europe] --------- Co-authored-by: DavidHaywood --- src/mame/mame.lst | 1 + src/mame/tvgames/xavix.h | 11 +++++++++++ src/mame/tvgames/xavix_2000.cpp | 28 ++++++++++++++++++++++++++++ src/mame/tvgames/xavix_m.cpp | 29 +++++++++++++++++++++++++++++ 4 files changed, 69 insertions(+) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index ec11de34f56..45a517bf158 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -45643,6 +45643,7 @@ domfitad // dombikec // @source:tvgames/xavix_2000.cpp +duelmast // epo_ebox // epo_bowl // epo_sdb // diff --git a/src/mame/tvgames/xavix.h b/src/mame/tvgames/xavix.h index 6a74dfd98a0..07251d34942 100644 --- a/src/mame/tvgames/xavix.h +++ b/src/mame/tvgames/xavix.h @@ -1000,5 +1000,16 @@ class xavix_hikara_state : public xavix_ekara_state }; +class xavix_duelmast_state : public xavix_i2c_state +{ +public: + xavix_duelmast_state(const machine_config &mconfig, device_type type, const char *tag) + : xavix_i2c_state(mconfig, type, tag) + { } + +protected: + virtual uint8_t read_io1(uint8_t direction) override; +}; + #endif // MAME_TVGAMES_XAVIX_H diff --git a/src/mame/tvgames/xavix_2000.cpp b/src/mame/tvgames/xavix_2000.cpp index a38861e630b..2ac9a48f79e 100644 --- a/src/mame/tvgames/xavix_2000.cpp +++ b/src/mame/tvgames/xavix_2000.cpp @@ -140,6 +140,23 @@ static INPUT_PORTS_START( epo_bowl ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("i2cmem", i2cmem_device, read_sda) INPUT_PORTS_END +static INPUT_PORTS_START( duelmast ) + PORT_INCLUDE(xavix) + + PORT_MODIFY("IN0") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(1) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(1) + + PORT_MODIFY("IN1") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("i2cmem", i2cmem_device, read_sda) +INPUT_PORTS_END + + static INPUT_PORTS_START( epo_sdb ) PORT_INCLUDE(xavix) @@ -274,11 +291,22 @@ ROM_START( ban_onep ) ROM_LOAD("onepiece.bin", 0x000000, 0x800000, CRC(c5cb5a5f) SHA1(db85f6cc48d77c5a4967b9b8e2999167e3dfc8c8) ) ROM_END +ROM_START( duelmast ) + ROM_REGION(0x200000, "bios", ROMREGION_ERASE00) + ROM_LOAD("duelmasters.u4", 0x000000, 0x200000, CRC(2f11fcd7) SHA1(d8849c74833e77b8b309e845523f2cdc7ac68054) ) +ROM_END + + // doesn't use extra opcodes? CONS( 2002, epo_ebox, 0, 0, xavix2000_nv, epo_ebox, xavix_state, init_xavix, "Epoch / SSD Company LTD", "Excite Boxing (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // doesn't use XaviX2000 extra opcodes, but had that type of CPU // die not confirmed, but uses extra opcodes. (hangs on title screen due to combination of freq_timer_done nested interrupts tripping, and waiting on bits in input ports to change CONS( 2002, epo_bowl, 0, 0, xavix2000_i2c_24c04, epo_bowl, xavix_i2c_state, init_xavix, "Epoch / SSD Company LTD", "Excite Bowling (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +// takes a long time to boot to a card scanner error +// This is a product in the Duel Masters line called Duel Station; the boot up screen calls it Duel Station, title logo is Duel Masters +// It also has a cartridge slot in addition to the card scanner and at least 1 ROM cartridge was produced "デュエルマスターズ デュエルステーション専用カートリッジ Ver.1" +CONS( 2003, duelmast, 0, 0, xavix2000_i2c_24c04, duelmast, xavix_duelmast_state, init_xavix, "Takara / SSD Company LTD", "Duel Masters: Duel Station (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) + CONS( 2004, epo_sdb, 0, 0, xavix2000_nv_sdb, epo_sdb, xavix_2000_nv_sdb_state, init_xavix, "Epoch / SSD Company LTD", "Super Dash Ball (Japan)", MACHINE_IMPERFECT_SOUND ) CONS( 2005, ttv_sw, 0, 0, xavix2000_i2c_24c02, ttv_lotr, xavix_i2c_lotr_state, init_xavix, "Tiger / SSD Company LTD", "Star Wars Saga Edition - Lightsaber Battle Game", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/tvgames/xavix_m.cpp b/src/mame/tvgames/xavix_m.cpp index 6d9ed194ad9..5e68dbf9b1f 100644 --- a/src/mame/tvgames/xavix_m.cpp +++ b/src/mame/tvgames/xavix_m.cpp @@ -453,6 +453,35 @@ uint8_t xavix_state::read_io1(uint8_t direction) return m_in1->read(); } +uint8_t xavix_duelmast_state::read_io1(uint8_t direction) +{ + int pc = m_maincpu->pc(); + + // hacks to get it to boot. It will still spin for a long time on a black + // screen before giving a card scanner error, you can bypass that with button 1 + // but the game isn't playable + + if (pc == 0x3c01) + return 0x00; + + if (pc == 0x3c06) + return 0x02; + + if (pc == 0x3c14) + return 0x04; + + if (pc == 0x3c19) + return 0x00; + + if (pc == 0x3c25) + return 0x04; + + if (pc == 0x3c2a) + return 0x00; + + return m_in1->read(); +} + void xavix_state::write_io0(uint8_t data, uint8_t direction) { // no special handling From 061098f2ed1f30d79320114481de60e6c105a593 Mon Sep 17 00:00:00 2001 From: cam900 Date: Thu, 8 Aug 2024 00:39:18 +0900 Subject: [PATCH 4/4] neogeo/neogeo_spr.cpp: Fix display timing related parameters (#12634) neogeo/midas.cpp: Fix zoom table RAM size (The maximum allowed access is 64K bytes) --- src/mame/neogeo/midas.cpp | 8 +++----- src/mame/neogeo/neogeo_spr.h | 4 ++-- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/mame/neogeo/midas.cpp b/src/mame/neogeo/midas.cpp index 6f0f0e4c53c..ac6dd4f966c 100644 --- a/src/mame/neogeo/midas.cpp +++ b/src/mame/neogeo/midas.cpp @@ -184,10 +184,8 @@ void midas_state::zoomtable_w(offs_t offset, uint16_t data, uint16_t mem_mask) if (ACCESSING_BITS_0_7) { - m_zoomtable[offset+0x00000] = data & 0xff; - m_zoomtable[offset+0x10000] = data & 0xff; + m_zoomtable[offset] = data & 0xff; } - } /*************************************************************************************** Live Quiz Show @@ -814,7 +812,7 @@ ROM_START( livequiz ) ROM_REGION( 0x200000, "ymz", 0 ) ROM_LOAD( "flash.u5", 0x000000, 0x200000, CRC(dc062792) SHA1(ec415c918c47ce9d181f014cde317af5717600e4) ) - ROM_REGION( 0x20000, "spritegen:zoomy", ROMREGION_ERASE00 ) + ROM_REGION( 0x10000, "spritegen:zoomy", ROMREGION_ERASE00 ) /* uploaded */ ROM_END @@ -912,7 +910,7 @@ ROM_START( hammer ) ROM_LOAD( "s0.u25", 0x000000, 0x200000, CRC(c049a3e0) SHA1(0c7016c3128c170a84ad3f92fad1165775210e3d) ) ROM_LOAD( "s1.u26", 0x200000, 0x200000, CRC(9cc4b3ec) SHA1(b91a8747074a1032eb7f70a015d394fe8e896d7e) ) - ROM_REGION( 0x20000, "spritegen:zoomy", ROMREGION_ERASE00 ) + ROM_REGION( 0x10000, "spritegen:zoomy", ROMREGION_ERASE00 ) /* uploaded */ ROM_END diff --git a/src/mame/neogeo/neogeo_spr.h b/src/mame/neogeo/neogeo_spr.h index 613c2e84296..0c32479ebf7 100644 --- a/src/mame/neogeo/neogeo_spr.h +++ b/src/mame/neogeo/neogeo_spr.h @@ -8,8 +8,8 @@ // todo, move these back, currently the sprite code needs some of the values tho #define NEOGEO_HTOTAL (0x180) -#define NEOGEO_HBEND (0x01e) /* this should really be 29.5 */ -#define NEOGEO_HBSTART (0x15e) /* this should really be 349.5 */ +#define NEOGEO_HBEND (0x01c) // verified from https://wiki.neogeodev.org/index.php?title=Display_timing +#define NEOGEO_HBSTART (0x15c) #define NEOGEO_VTOTAL (0x108) #define NEOGEO_VBEND (0x010) #define NEOGEO_VBSTART (0x0f0)