From d20b4ba6864b45d0c068d98d43e63c8bc5014a3b Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Sun, 5 Feb 2017 15:38:33 +0100 Subject: [PATCH] New working machine added _______________________ Flash Boy (vertical) [DECO Cassette MD] (No.12/Ver.0/Set.1,Japan) [Game Preservation Society] --- src/mame/drivers/decocass.cpp | 61 ++++++++++++++++++++++++++++++----- src/mame/includes/decocass.h | 1 + src/mame/machine/decocass.cpp | 33 +++++++++++++++++++ src/mame/mame.lst | 1 + 4 files changed, 88 insertions(+), 8 deletions(-) diff --git a/src/mame/drivers/decocass.cpp b/src/mame/drivers/decocass.cpp index dab345ae431..a9e92724ab0 100644 --- a/src/mame/drivers/decocass.cpp +++ b/src/mame/drivers/decocass.cpp @@ -14,23 +14,30 @@ The Dumping Union Team Japump!!! Hau + Jean-Francois Del Nero + Omar Cornut + Game Preservation Society + Joseph Redon The DECO cassette system consists of three PCBS in a card cage: Early boardset: (1980-1983) (proms unknown for this boardset, no schematics for this boardset) One DE-0069C-0 RMS-3 pcb with a 6502 processor, D8041C MCU (DECO Cassette control), two ay-3-8910s, and one 2708 eprom holding the audio bios. (audio, needs external amp and volume control) - One DE-0068B-0 DSP-3 pcb with a 'DECO CPU-3' custom, two 2716 eproms (main processor and bios, graphics, dipswitches?) - One DE-0070C-0 BIO-3 pcb with an analog ADC0908 8-bit adc + One DE-0068B-0 DSP-3 pcb with a 'DECO CPU-3' custom, two 2716 eproms. (main processor and bios, graphics, dipswitches?) + One DE-0070C-0 BIO-3 pcb with an analog ADC0908 8-bit adc. One DE-0066B-0 card rack board that the other three boards plug into. - TODO: get more info about this older boardset: D. Widel has some info about it on his page at http://www.widel.com/stuff/decopin.htm + This boardset has two versions : MD, known as "shokase" in Japan, and MT, known as "daikase" which is using bigger data tapes. (MT was only sold in Japan, not emulated yet) - Later boardset: (1984 onward, schematic is dated 10/83) + Later boardset: (1984 onward, schematic is dated October 1983) One DE-0097C-0 RMS-8 pcb with a 6502 processor, two ay-3-8910s, two eproms (2716 and 2732) plus one prom, and 48k worth of 4116 16kx1 DRAMs; the 6502 processor has its own 4K of SRAM. (audio processor and RAM, Main processor's dram, dipswitches) One DE-0096C-0 DSP-8 board with a 'DECO 222' custom on it (labeled '8049 // C10707-2') which appears to really be a 'cleverly' disguised 6502, and two proms, plus 4K of sram, and three hm2511-1 1kx1 srams. (main processor and graphics) - One DE-0098C-0 B10-8 (BIO-8 on schematics) board with an 8041, an analog devices ADC0908 8-bit adc, and 4K of SRAM on it (DECO Cassette control, inputs) - One DE-0109C-0 card rack board that the other three boards plug into. + One DE-0098C-0 B10-8 (BIO-8 on schematics) board with an 8041, an analog devices ADC0908 8-bit adc, and 4K of SRAM on it. (DECO Cassette control, inputs) + One DE-0109C-0 card rack board that the other three boards plug into. (fourth connector for DE-109C-0 is shorter than in earlier versions) The actual cassettes use a custom player hooked to the BIO board, and are roughly microcassette form factor, but are larger and will not fit in a conventional microcassette player. - Each cassette has two tracks on it: a clock track and a data track, for a form of synchronous serial. The data is stored in blocks with headers and checksums. + Each cassette has one track on it and is separated into clock and data by two Magtek IC in the player, for a form of synchronous serial. + The data is stored in blocks with headers and CRC16 checksums. + The first block contains information such as the region (A:Japan, B:USA, C:UK, D:Europe) and the total number of blocks left to read. + The last physical block on the cassette is a dummy block not used by the system. (only used to mark the end of last block) ***********************************************************************/ @@ -656,6 +663,26 @@ static INPUT_PORTS_START( cfishing ) /* Switches 5, 6, 7 & 8 are listed as "Not Used" and "Don't Change" */ INPUT_PORTS_END +static INPUT_PORTS_START( cfboy0a1 ) /* 12 */ + PORT_INCLUDE( decocass ) + + PORT_MODIFY("DSW2") + PORT_DIPNAME( 0x01, 0x01, "Number of The Deco Kids" ) PORT_DIPLOCATION("SW2:1") + PORT_DIPSETTING( 0x01, "3" ) + PORT_DIPSETTING( 0x00, "5" ) + PORT_DIPNAME( 0x06, 0x06, "Bonus Points" ) PORT_DIPLOCATION("SW2:2,3") + PORT_DIPSETTING( 0x06, "5000" ) + PORT_DIPSETTING( 0x04, "10000" ) + PORT_DIPSETTING( 0x02, "15000" ) + PORT_DIPSETTING( 0x00, DEF_STR( None ) ) + PORT_DIPNAME( 0x08, 0x08, "Number of Alien Missiles" ) PORT_DIPLOCATION("SW2:4") + PORT_DIPSETTING( 0x08, DEF_STR( Easy ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Difficult ) ) + PORT_DIPNAME( 0x10, 0x10, "Alien Craft Movement" ) PORT_DIPLOCATION("SW2:5") + PORT_DIPSETTING( 0x10, DEF_STR( Easy ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Difficult ) ) + /* Switches 6 to 8 are shown as "Country Code" (A to F) and "Don't Change" */ +INPUT_PORTS_END static const gfx_layout charlayout = { @@ -866,6 +893,13 @@ static MACHINE_CONFIG_DERIVED( clocknch, decocass ) MACHINE_CONFIG_END +static MACHINE_CONFIG_DERIVED( cfboy0a1, decocass ) /* 12 */ + + /* basic machine hardware */ + MCFG_MACHINE_RESET_OVERRIDE(decocass_state,cfboy0a1) +MACHINE_CONFIG_END + + static MACHINE_CONFIG_DERIVED( cprogolf, decocass ) /* basic machine hardware */ @@ -1237,6 +1271,17 @@ ROM_START( clocknch ) ROM_LOAD( "clocknch.cas", 0x0000, 0x8000, CRC(c9d163a4) SHA1(3ef55a8d8f603059e263776c08eb81f2cf18b75c) ) ROM_END +/* 12 Flash Boy (early vertical Japan version, then horizontal version), The Deco Kid (early vertical World version, then vertical version) */ +ROM_START( cfboy0a1 ) // version MD 0-A-1 verified, 105 blocks, decrypted main data CRC(7ca358f0) + DECOCASS_BIOS_AO_ROMS + + ROM_REGION( 0x10000, "cassette", 0 ) /* (max) 64k for cassette image */ + ROM_LOAD( "dt-1120-a-1.cas", 0x0000, 0x6a00, CRC(c6746dc0) SHA1(816ccb61dfa2745a9ef918d9a50d1cd91493c9ed) ) + + ROM_REGION( 0x00020, "dongle", 0 ) /* dongle data */ + ROM_LOAD( "dp-1120-a.rom", 0x0000, 0x0020, CRC(1bc9fccb) SHA1(ffc59c7660d5c87a8deca294f80260b6bc7c3027) ) +ROM_END + /* 13 */ /* Photo of Dongle shows DP-1130B (the "B" is in a separate white box then the DP-1130 label) */ ROM_START( cprogolf ) // version 9-B-0 @@ -1788,7 +1833,7 @@ DRIVER_INIT_MEMBER(decocass_state,cdsteljn) /* 10 */ GAME( 1981, cocean1a, decocass, cocean1a, cocean1a, decocass_state, decocass, ROT270, "Data East Corporation", "Ocean to Ocean (Medal) (DECO Cassette MD) (No.10/Ver.1,Japan)", 0 ) /* no lever, 1P/2P buttons used to switch player, cocktail mode not emulated */ /* */ GAME( 1981, cocean6b, cocean1a, cocean1a, cocean1a, decocass_state, decocass, ROT270, "Data East Corporation", "Ocean to Ocean (Medal) (DECO Cassette MD) (No.10/Ver.6,US)", 0 ) /* lever, 1P/2P buttons used to switch player, cocktail mode not emulated */ /* 11 */ GAME( 1981, clocknch, decocass, clocknch, clocknch, decocass_state, decocass, ROT270, "Data East Corporation", "Lock'n'Chase (DECO Cassette) (US)", 0 ) -/* 12 */ // 1981.08 Flash Boy/DECO Kid +/* 12 */ GAME( 1981, cfboy0a1, decocass, cfboy0a1, cfboy0a1, decocass_state, decocass, ROT270, "Data East Corporation", "Flash Boy (vertical) [DECO Cassette MD] (No.12/Ver.0/Set.1,Japan)", 0 ) /* 13 */ GAME( 1981, cprogolf, decocass, cprogolf, cprogolf, decocass_state, decocass, ROT270, "Data East Corporation", "Tournament Pro Golf (DECO Cassette) (US)", 0 ) /* */ GAME( 1981, cprogolfj, cprogolf, cprogolfj,cprogolf, decocass_state, decocass, ROT270, "Data East Corporation", "Tournament Pro Golf (DECO Cassette) (Japan)", 0 ) /* 14 */ GAME( 1981, cdsteljn, decocass, cdsteljn, cdsteljn, decocass_state, cdsteljn, ROT270, "Data East Corporation", "DS Telejan (DECO Cassette) (Japan)", 0 ) diff --git a/src/mame/includes/decocass.h b/src/mame/includes/decocass.h index 9f8beb4163b..a4f15a59a7e 100644 --- a/src/mame/includes/decocass.h +++ b/src/mame/includes/decocass.h @@ -184,6 +184,7 @@ public: DECLARE_MACHINE_RESET(cflyball); DECLARE_MACHINE_RESET(cmanhat); DECLARE_MACHINE_RESET(cocean1a); /* 10 */ + DECLARE_MACHINE_RESET(cfboy0a1); /* 12 */ uint32_t screen_update_decocass(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); DECLARE_WRITE8_MEMBER(decocass_coin_counter_w); DECLARE_WRITE8_MEMBER(decocass_sound_command_w); diff --git a/src/mame/machine/decocass.cpp b/src/mame/machine/decocass.cpp index f1529ebba4e..94d38b9a5d9 100644 --- a/src/mame/machine/decocass.cpp +++ b/src/mame/machine/decocass.cpp @@ -430,6 +430,39 @@ MACHINE_RESET_MEMBER(decocass_state,cocean1a) /* 10 */ m_type1_outmap = MAKE_MAP(0,1,2,3,4,5,6,7); } + /*************************************************************************** + * + * TYPE1 DONGLE DP-1120/DP-2120 map for Flash Boy/The Deco Kid + * + * Latched bits = $24 (2 latch bits) + * Input bits that are passed uninverted = $08 (1 true bits) + * Input bits that are passed inverted = $00 (0 inverted bits) + * Remaining bits for addressing PROM = $D3 (5 bits) + * Latched bit #0: + * Input bit position = 2 + * Output bit position = 2 + * Type = Inverting latch + * Latched bit #1: + * Input bit position = 5 + * Output bit position = 5 + * Type = Non-inverting latch + * + ***************************************************************************/ + +static uint8_t type1_map1120[8] = { T1PROM,T1PROM,T1LATCHINV,T1DIRECT,T1PROM,T1LATCH,T1PROM,T1PROM }; + + +MACHINE_RESET_MEMBER(decocass_state,cfboy0a1) /* 12 */ +{ + decocass_state::machine_reset(); + LOG(0,("dongle type #1 (DP-1120 map)\n")); + m_dongle_r = read8_delegate(FUNC(decocass_state::decocass_type1_r),this); + m_type1_map = type1_map1120; + m_type1_inmap = MAKE_MAP(0,1,2,3,4,5,6,7); + m_type1_outmap = MAKE_MAP(0,1,2,3,4,5,6,7); +} + + /*************************************************************************** * diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 449a4744036..934449b5a8f 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -10958,6 +10958,7 @@ cburnrub2 // 27 cdiscon1 // 19 1982.04 Disco No.1 cdsteljn // 14 1981.06 DS Telejan cexplore // 18 1982.02 Explorer +cfboy0a1 // DT-1[12]0-A-1 1981.08 Flash Boy (Japan) (DECO Cassette MD) (Ver 1) // version verified // vertical scrolling (early version) cfghtice // 40 1984.04 Fighting Ice Hockey cfishing // 25 1982.10 Fishing cflyball // 35 1983.?? Flying Ball/Bampoline