From 744fde0149ca0dbcee9cb8fc03386c2af3a4eb5d Mon Sep 17 00:00:00 2001 From: David Haywood Date: Sat, 11 Oct 2014 15:25:46 +0000 Subject: [PATCH] new clones Hexa (with 2xZ80, protected) [??] haven't made this work properly yet. parent set might be a bootleg. --- src/mame/drivers/arkanoid.c | 99 ++++++++++++++++++++++++++++++++++++ src/mame/includes/arkanoid.h | 8 +++ src/mame/mame.lst | 1 + 3 files changed, 108 insertions(+) diff --git a/src/mame/drivers/arkanoid.c b/src/mame/drivers/arkanoid.c index 159a842c29b..867a1d01651 100644 --- a/src/mame/drivers/arkanoid.c +++ b/src/mame/drivers/arkanoid.c @@ -807,6 +807,55 @@ static ADDRESS_MAP_START( hexa_map, AS_PROGRAM, 8, arkanoid_state ) AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(arkanoid_videoram_w) AM_SHARE("videoram") ADDRESS_MAP_END +READ8_MEMBER(arkanoid_state::hexaa_f000_r) +{ +// return hexaa_from_sub; + return rand(); +} + +WRITE8_MEMBER(arkanoid_state::hexaa_f000_w) +{ + hexaa_from_main = data; +} + +static ADDRESS_MAP_START( hexaa_map, AS_PROGRAM, 8, arkanoid_state ) + AM_RANGE(0x0000, 0x7fff) AM_ROM + AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") + AM_RANGE(0xc000, 0xc7ff) AM_RAM + AM_RANGE(0xd001, 0xd001) AM_DEVREAD("aysnd", ay8910_device, data_r) + AM_RANGE(0xd000, 0xd001) AM_DEVWRITE("aysnd", ay8910_device, address_data_w) + AM_RANGE(0xd008, 0xd008) AM_WRITE(hexa_d008_w) + AM_RANGE(0xd010, 0xd010) AM_WRITE(watchdog_reset_w) /* or IRQ acknowledge, or both */ + AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(arkanoid_videoram_w) AM_SHARE("videoram") + AM_RANGE(0xe800, 0xefff) AM_RAM + AM_RANGE(0xf000, 0xf000) AM_READWRITE(hexaa_f000_r, hexaa_f000_w) +ADDRESS_MAP_END + +static ADDRESS_MAP_START( hexaa_sub_map, AS_PROGRAM, 8, arkanoid_state ) + AM_RANGE(0x0000, 0x0fff) AM_ROM +ADDRESS_MAP_END + + +WRITE8_MEMBER(arkanoid_state::hexaa_sub_80_w) +{ + hexaa_from_sub = data; +} + +READ8_MEMBER(arkanoid_state::hexaa_sub_90_r) +{ + return hexaa_from_main; +// return rand(); +} + +static ADDRESS_MAP_START( hexaa_sub_iomap, AS_IO, 8, arkanoid_state ) + ADDRESS_MAP_GLOBAL_MASK(0x0f) + AM_RANGE(0x00, 0x0f) AM_RAM // ?? could be communication with the other chip (protection?) + AM_RANGE(0x80, 0x80) AM_WRITE(hexaa_sub_80_w) + AM_RANGE(0x90, 0x90) AM_READ(hexaa_sub_90_r) +ADDRESS_MAP_END + + + static ADDRESS_MAP_START( brixian_map, AS_PROGRAM, 8, arkanoid_state ) AM_RANGE(0x0000, 0xbfff) AM_ROM AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_SHARE("protram") @@ -1240,6 +1289,16 @@ static MACHINE_CONFIG_START( hexa, arkanoid_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MACHINE_CONFIG_END +static MACHINE_CONFIG_DERIVED( hexaa, hexa ) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(hexaa_map) + MCFG_CPU_VBLANK_INT_DRIVER("screen", arkanoid_state, irq0_line_hold) + + MCFG_CPU_ADD("subcpu", Z80, XTAL_12MHz/2) // ? + MCFG_CPU_PROGRAM_MAP(hexaa_sub_map) + MCFG_CPU_IO_MAP(hexaa_sub_iomap) +MACHINE_CONFIG_END + static MACHINE_CONFIG_DERIVED( bootleg, arkanoid ) @@ -1749,6 +1808,45 @@ ROM_START( hexa ) ROM_LOAD( "hexa.002", 0x0200, 0x0100, CRC(ff15366c) SHA1(7feaf1c768bfe76432fb80991585e13d95960b34) ) ROM_END +/* + +Hexa (alt.) + +main hardware consists of..... + +sub board with Z80 x2, 2 ROMs and a scratched 18 pin chip (probably a PIC) + +main board has.... +12MHz xtal +ay3-8910 +8 position DSW x1 +ROMs x4 +6116 SRAM x3 +82S123 PROMs x3 + +*/ + + +ROM_START( hexaa ) + ROM_REGION( 0x18000, "maincpu", 0 ) /* 64k for code + 32k for banked ROM */ + ROM_LOAD( "sub1.bin", 0x00000, 0x8000, CRC(82c091fa) SHA1(e509ab4d9372f93d81df70772a4632100081ffd7) ) + ROM_LOAD( "main4.bin", 0x10000, 0x8000, CRC(3d5d006c) SHA1(ad4eadab82024b122182eacb5a322cfd6e476a70) ) + + ROM_REGION( 0x18000, "subcpu", 0 ) + ROM_LOAD( "sub2.bin", 0x00000, 0x2000, CRC(c3bb9661) SHA1(e4bccb822d6eba77bb9cba75125cddb740775a2c)) // 1ST AND 2ND HALF IDENTICAL (contains just 0x55 bytes of code) + + + ROM_REGION( 0x18000, "gfx1", 0 ) + ROM_LOAD( "main1.bin", 0x00000, 0x8000, CRC(f6911dd6) SHA1(b12ea27ecddd60820a32d4346afab0cc9d06fa57) ) + ROM_LOAD( "main2.bin", 0x08000, 0x8000, CRC(6e3d95d2) SHA1(6399b7b5d088ceda08fdea9cf650f6b405f038e7) ) + ROM_LOAD( "main3.bin", 0x10000, 0x8000, CRC(ffe97a31) SHA1(f16b5d2b9ace09bcbbfe3dfb73db7fa377d1af7f) ) + + ROM_REGION( 0x0300, "proms", 0 ) + ROM_LOAD( "hexa.001", 0x0000, 0x0100, CRC(88a055b4) SHA1(eee86a7930d0a251f3e5c2134532cd1dede2026c) ) + ROM_LOAD( "hexa.003", 0x0100, 0x0100, CRC(3e9d4932) SHA1(9a336dba7134400312985b9902c77b4141105853) ) + ROM_LOAD( "hexa.002", 0x0200, 0x0100, CRC(ff15366c) SHA1(7feaf1c768bfe76432fb80991585e13d95960b34) ) +ROM_END + ROM_START( brixian ) ROM_REGION( 0x18000, "maincpu", 0 ) ROM_LOAD( "b1.bin", 0x00000, 0x8000, CRC(3d167d09) SHA1(1d5bd098b655b8d2f956cfcb718213915bee3e41) ) @@ -1927,5 +2025,6 @@ GAME( 1987, arkatour, 0, arkanoid, arkanoid, driver_device, 0, R GAME( 19??, tetrsark, 0, bootleg, tetrsark, arkanoid_state, tetrsark, ROT0, "D.R. Korea", "Tetris (D.R. Korea)", GAME_SUPPORTS_SAVE ) GAME( 199?, hexa, 0, hexa, hexa, arkanoid_state, hexa, ROT0, "D.R. Korea", "Hexa", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) +GAME( 199?, hexaa, hexa, hexaa, hexa, arkanoid_state, hexa, ROT0, "D.R. Korea", "Hexa (with 2xZ80, protected)", GAME_NOT_WORKING ) GAME( 1993, brixian, 0, brixian, brixian, arkanoid_state, brixian, ROT0, "Cheil Computer System", "Brixian", GAME_SUPPORTS_SAVE ) diff --git a/src/mame/includes/arkanoid.h b/src/mame/includes/arkanoid.h index 991e9df40cd..55a7e7578d2 100644 --- a/src/mame/includes/arkanoid.h +++ b/src/mame/includes/arkanoid.h @@ -49,6 +49,10 @@ public: UINT8 m_ddr_c; UINT8 m_bootleg_cmd; + /* hexaa */ + UINT8 hexaa_from_main; + UINT8 hexaa_from_sub; + /* devices */ optional_device m_mcu; DECLARE_READ8_MEMBER(arkanoid_Z80_mcu_r); @@ -69,6 +73,10 @@ public: DECLARE_WRITE8_MEMBER(tetrsark_d008_w); DECLARE_WRITE8_MEMBER(brixian_d008_w); DECLARE_WRITE8_MEMBER(hexa_d008_w); + DECLARE_READ8_MEMBER(hexaa_f000_r); + DECLARE_WRITE8_MEMBER(hexaa_f000_w); + DECLARE_WRITE8_MEMBER(hexaa_sub_80_w); + DECLARE_READ8_MEMBER(hexaa_sub_90_r); DECLARE_CUSTOM_INPUT_MEMBER(arkanoid_68705_input_r); DECLARE_CUSTOM_INPUT_MEMBER(arkanoid_input_mux); DECLARE_DRIVER_INIT(block2); diff --git a/src/mame/mame.lst b/src/mame/mame.lst index cb2ffb82c46..27642ed669a 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -2124,6 +2124,7 @@ arktayt2 // bootleg arkatour // ??? (c) 1987 Taito America Corporation + Romstar license (US) tetrsark // ??? (c) D.R.Korea hexa // D. R. Korea +hexaa // brixian // (c) 1993 Cheil Computer System sqix // B03 1987 sqixr1 // B03 1987