diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mame/arcade.flt | 1 | ||||
-rw-r--r-- | src/mame/drivers/8080bw.cpp | 4 | ||||
-rw-r--r-- | src/mame/drivers/bfmsys85.cpp | 4 | ||||
-rw-r--r-- | src/mame/drivers/cosmos_playc8f.cpp | 110 | ||||
-rw-r--r-- | src/mame/drivers/cps1.cpp | 254 | ||||
-rw-r--r-- | src/mame/drivers/jpmimpctsw.cpp | 12 | ||||
-rw-r--r-- | src/mame/drivers/jpmsys5sw.cpp | 2 | ||||
-rw-r--r-- | src/mame/drivers/kaypro.cpp | 17 | ||||
-rw-r--r-- | src/mame/drivers/nes.cpp | 1 | ||||
-rw-r--r-- | src/mame/drivers/newton.cpp | 26 | ||||
-rw-r--r-- | src/mame/drivers/playch10.cpp | 12 | ||||
-rw-r--r-- | src/mame/drivers/taitottl.cpp | 89 | ||||
-rw-r--r-- | src/mame/includes/cps1.h | 4 | ||||
-rw-r--r-- | src/mame/includes/playch10.h | 3 | ||||
-rw-r--r-- | src/mame/machine/playch10.cpp | 26 | ||||
-rw-r--r-- | src/mame/mame.lst | 10 | ||||
-rw-r--r-- | src/mame/video/cps1.cpp | 42 |
17 files changed, 545 insertions, 72 deletions
diff --git a/src/mame/arcade.flt b/src/mame/arcade.flt index 587f4a9f3c9..2acacd3acbb 100644 --- a/src/mame/arcade.flt +++ b/src/mame/arcade.flt @@ -266,6 +266,7 @@ copsnrob.cpp corona.cpp cosmic.cpp cosmicg.cpp +cosmos_playc8f.cpp cowtipping.cpp cps1.cpp cps1bl_5205.cpp diff --git a/src/mame/drivers/8080bw.cpp b/src/mame/drivers/8080bw.cpp index fd0791f535c..c2e7e0f866b 100644 --- a/src/mame/drivers/8080bw.cpp +++ b/src/mame/drivers/8080bw.cpp @@ -1419,7 +1419,9 @@ static INPUT_PORTS_START( rollingc ) PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_MODIFY("IN2") - PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x00, "SW1:4" ) + PORT_DIPNAME( 0x08, 0x08, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:4") + PORT_DIPSETTING( 0x08, "RC=3000 / MB=1000" ) + PORT_DIPSETTING( 0x00, "RC=5000 / MB=2000" ) INPUT_PORTS_END MACHINE_START_MEMBER(_8080bw_state,rollingc) diff --git a/src/mame/drivers/bfmsys85.cpp b/src/mame/drivers/bfmsys85.cpp index 338c764a3dd..f3c4a0f610b 100644 --- a/src/mame/drivers/bfmsys85.cpp +++ b/src/mame/drivers/bfmsys85.cpp @@ -796,9 +796,9 @@ GAME( 1989, b85clbpm, 0, bfmsys85, bfmsys85, bfmsys85_state, init_dec // PROJECT NUMBER 5116 HI LO SILVER DX GAME No 39-350-049 - 27-FEB-1987 10:49:08 -GAME( 1987, b85hilo, 0, bfmsys85, bfmsys85, bfmsys85_state, init_decode, 0, "BFM", "Hi Lo Silver (System 85, set 1)", MACHINE_FLAGS ) +GAME( 1987, b85hilo, 0, bfmsys85, bfmsys85, bfmsys85_state, init_decode, 0, "BFM", "Hi-Lo Silver (System 85, set 1)", MACHINE_FLAGS ) // PROJECT NUMBER 5407 HI LO SILVER 2P GAME No 39-350-142 - 12-OCT-1988 09:39:26 -GAME( 1988, b85hiloa, b85hilo, bfmsys85, bfmsys85, bfmsys85_state, init_decode, 0, "BFM", "Hi Lo Silver (System 85, set 2)", MACHINE_FLAGS ) +GAME( 1988, b85hiloa, b85hilo, bfmsys85, bfmsys85, bfmsys85_state, init_decode, 0, "BFM", "Hi-Lo Silver (System 85, set 2)", MACHINE_FLAGS ) // PROJECT NUMBER 5104 THE RITZ 10P PLAY GAME No 39-350-084 - 28-AUG-1987 08:44:30 diff --git a/src/mame/drivers/cosmos_playc8f.cpp b/src/mame/drivers/cosmos_playc8f.cpp new file mode 100644 index 00000000000..eecc3931f91 --- /dev/null +++ b/src/mame/drivers/cosmos_playc8f.cpp @@ -0,0 +1,110 @@ +// license:BSD-3-Clause +// copyright-holders: +/********************************************************************************************************************************************* + + Skeleton driver for Cosmos PLAYC8F/PLAYC8E hardware based electromechanical machines. + + Known machines on this hardware: + + Dumped Manufacturer Machine Notes + ------ --------------------------------------------------------------- ------------------ ----------------------------------------------- + Yes Benchmark Games, Inc. Basketball PLAYC8F + SY-MUSIC01 (music) + Yes Benchmark Games, Inc. Ten Strike Classic PLAYC8F (mechanical sound, no sound/music PCBs) + No Universal Space Amusement (HK) Co., Ltd Mr. Wolf PLAYC8F + No HomingGame Gold Fort PLAYC8F + SOUND03H (music, STC11F08XE-based) + No Family Fun Companies, Inc. Basket Fortune PLAYC8F + SY-MUSIC01 (music) + No Family Fun Companies, Inc. Pharaoh’s Treasure PLAYC8F + SY-MUSIC01 (music) + SC52 (sound) + No Family Fun Companies, Inc. Football Fortune PLAYC8F + SY-MUSIC01 (music) + No Universal Space Amusement Equipment Ltd. Bed Monsters PLAYC8F + SY-MUSIC01 (music) + No Universal Space Amusement Equipment Ltd. Colorama 4 Player PLAYC8F + SY-MUSIC01 (music) + No Universal Space Amusement Equipment Ltd. / Bromley Incorporated Ghost Hunter PLAYC8E + SY-MUSIC01 (music) + +***********************************************************************************************************************************************/ + +#include "emu.h" +#include "cpu/m6805/m68hc05.h" +#include "cpu/mcs51/mcs51.h" +#include "sound/okim9810.h" +#include "speaker.h" + +namespace +{ + +class cosmos_playc8f_state : public driver_device +{ +public: + cosmos_playc8f_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_soundcpu(*this, "soundcpu") + { + } + + void playc8f(machine_config &config); + void playc8f_symusic01(machine_config &config); + +private: + required_device<m68hc05_device> m_maincpu; + optional_device<mcs51_cpu_device> m_soundcpu; +}; + +static INPUT_PORTS_START(playc8f) +INPUT_PORTS_END + +// PLAYC8F + SY-MUSIC01 (music) +void cosmos_playc8f_state::playc8f_symusic01(machine_config &config) +{ + M68HC705C8A(config, m_maincpu, 4_MHz_XTAL); + + I80C51(config, m_soundcpu, 6_MHz_XTAL); // Actually an AT89C51 + + SPEAKER(config, "mono").front_center(); + + okim9810_device &oki(OKIM9810(config, "oki", 4.096_MHz_XTAL)); // Actually an OKI M9811 + oki.add_route(ALL_OUTPUTS, "mono", 0.50); +} + +// PLAYC8F (without sound hardware) +void cosmos_playc8f_state::playc8f(machine_config &config) +{ + M68HC705C8A(config, m_maincpu, 4_MHz_XTAL); +} + +ROM_START(bgbasketb) + ROM_REGION(0x002000, "maincpu", 0) + ROM_LOAD("basketball_2004-01-22.u13", 0x000000, 0x002000, CRC(5dd80da6) SHA1(5671d7166c7131ce0ad415da16842f271cc7ac3f)) // MC68HC705C8P + + ROM_REGION(0x001000, "soundcpu", 0) + ROM_LOAD("mglqj-y-3-3_2004-10-22.u2", 0x000000, 0x001000, NO_DUMP) // AT89C51, protected + + ROM_REGION(0x200000, "samples", 0) + ROM_LOAD("mglqj-y-1-3_2004-10-22.rom1", 0x000000, 0x100000, CRC(ca8ac968) SHA1(c974e16d86f0d5fbc5fe663aa81dff82b8678813)) // 27C801 + ROM_LOAD("mglqj-y-2-3_2004-10-22.rom2", 0x100000, 0x100000, CRC(b4987ea2) SHA1(77f42740bea08a72fc1a201a0ed7946c380141cf)) // 27C801 +ROM_END + +ROM_START(bgbasketbb) + ROM_REGION(0x002000, "maincpu", 0) + ROM_LOAD("srlqj02-2-01_2013-03-23.u13", 0x000000, 0x002000, CRC(9ab77de9) SHA1(c3507636dfe963023d5894403b850b65da2613b4)) // MC705C8ACPE + + ROM_REGION(0x001000, "soundcpu", 0) + ROM_LOAD("mglqj-y-3-3_2004-10-22.u2", 0x000000, 0x001000, NO_DUMP) // AT89C51, protected + + ROM_REGION(0x200000, "samples", 0) + ROM_LOAD("mglqj-y-1-3_2004-10-22.rom1", 0x000000, 0x100000, CRC(ca8ac968) SHA1(c974e16d86f0d5fbc5fe663aa81dff82b8678813)) // 27C801 + ROM_LOAD("mglqj-y-2-3_2004-10-22.rom2", 0x100000, 0x100000, CRC(b4987ea2) SHA1(77f42740bea08a72fc1a201a0ed7946c380141cf)) // 27C801 +ROM_END + +// This is a reissue and copy of the 1957 Williams Ten Strike +ROM_START(tenstrikc) + ROM_REGION(0x002000, "maincpu", 0) + ROM_LOAD("gdblq_2003-5-17.u13", 0x000000, 0x002000, CRC(dc345c3b) SHA1(50edbecf20e038f35556d315447a9d370d125ea7)) // MC68HC705C8A + + // No sound hardware (just mechanical sounds triggered by relays) +ROM_END + +} // anonymous namespace + +// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROT COMPANY FULLNAME FLAGS +GAME(2013, bgbasketb, 0, playc8f_symusic01, playc8f, cosmos_playc8f_state, empty_init, ROT0, "Benchmark Games, Inc.", "Basketball (Benchmark Games, set 1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, bgbasketbb, bgbasketb, playc8f_symusic01, playc8f, cosmos_playc8f_state, empty_init, ROT0, "Benchmark Games, Inc.", "Basketball (Benchmark Games, set 2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, tenstrikc, 0, playc8f, playc8f, cosmos_playc8f_state, empty_init, ROT0, "Benchmark Games, Inc.", "Ten Strike Classic", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/cps1.cpp b/src/mame/drivers/cps1.cpp index d42cb8714f2..61a101d22fd 100644 --- a/src/mame/drivers/cps1.cpp +++ b/src/mame/drivers/cps1.cpp @@ -3081,6 +3081,70 @@ static INPUT_PORTS_START( pang3b ) PORT_DIPUNUSED( 0x80, 0x80 ) INPUT_PORTS_END +/* The bootleggers hacked main code (@ 0x300 and 0xe0000) to use dip switches instead of the usual pang3 93C46 serial EPROM */ +static INPUT_PORTS_START( pang3b4 ) + // Though service mode shows diagonal inputs, the flyer and manual both specify 4-way joysticks + PORT_INCLUDE( cps1_2b_4way ) + + PORT_MODIFY("IN0") + PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW ) + + // As manual states, "Push 2 is not used," and is not even shown in service mode + PORT_MODIFY("IN1") + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("P1 Shot") + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("P2 Shot") + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("DSWA") + CPS1_COINAGE_2( "DIP-A" ) + PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "DIP-A:4" ) + PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "DIP-A:5" ) + PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "DIP-A:6" ) + PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "DIP-A:7" ) + PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "DIP-A:8" ) + + PORT_START("DSWB") + PORT_DIPNAME( 0x07, 0x04, "Game level" ) PORT_DIPLOCATION("DIP-B:1,2,3") + PORT_DIPSETTING( 0x07, "Easy 3" ) + PORT_DIPSETTING( 0x06, "Easy 2" ) + PORT_DIPSETTING( 0x05, "Easy 1" ) + PORT_DIPSETTING( 0x04, "Normal" ) + PORT_DIPSETTING( 0x03, "Hard 1" ) + PORT_DIPSETTING( 0x02, "Hard 2" ) + PORT_DIPSETTING( 0x01, "Hard 3" ) + PORT_DIPSETTING( 0x00, "Hard 4" ) + PORT_DIPNAME( 0x18, 0x18, "Player" ) PORT_DIPLOCATION("DIP-B:4,5") + PORT_DIPSETTING( 0x08, "1" ) + PORT_DIPSETTING( 0x10, "2" ) + PORT_DIPSETTING( 0x18, "3" ) + PORT_DIPSETTING( 0x00, "4" ) + PORT_DIPNAME( 0x60, 0x20, "Extend" ) PORT_DIPLOCATION("DIP-B:6,7") + PORT_DIPSETTING( 0x00, "30K, 250K, 1M, 3M, 7M" ) + PORT_DIPSETTING( 0x20, "80K, 500k, 2M, 5M, 10M" ) + PORT_DIPSETTING( 0x40, "250K, 1M, 3M, 7M, 15M" ) + PORT_DIPSETTING( 0x60, "Not extend" ) + PORT_DIPNAME( 0x80, 0x80, "Free play" ) PORT_DIPLOCATION("DIP-B:8") + PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + + PORT_START("DSWC") + PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "DIP-C:1" ) + PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "DIP-C:2" ) + PORT_DIPUNUSED_DIPLOC( 0x04, 0x04, "DIP-C:3" ) + PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "DIP-C:4" ) // Missing freeze code @ 0x020B74 + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("DIP-C:5") + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x20, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("DIP-C:6") + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("DIP-C:7") + PORT_DIPSETTING( 0x40, DEF_STR( No ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "DIP-C:8" ) +INPUT_PORTS_END + // Note: if you have service mode stuck then start button doesn't get recognized on title screen. static INPUT_PORTS_START( gulunpa ) PORT_INCLUDE( cps1_2b ) @@ -13294,6 +13358,131 @@ ROM_START( pang3b3 ) ROM_LOAD( "cp1b9k.9k", 0x0000, 0x0117, CRC(a754bdc3) SHA1(9267b24cbddee4858b219468cc92f9df8f5fd0ef) ) ROM_END +/* This bootleg uses a bootlegged B board nearly identical to that used in sf2ceblp. + In my set: + - Board-A is missing so I don't know if a normal or a dash board was used. + - Board-C is an hacked 88622-C-5 with an unusual CPS-B-12 and clearly it's not its C-board because + code analisys led to identify the CPS_B_21_DEF as the right configuration. + - Board-B has some missing components: + - audio cpu code EPROM @B13 (pang3b pa3_11.11f used instead) + - 28 pin DIP component @F8, probably a PIC16C55/7 looking the pinout (VCC on pin2, GND on pin 4, ...) + + The program code is almost the same as of pang3b with some minor, yet interesting, hacks: + - Dip switch use for board configuration (code@ 0x000300, 0xe0000) instead of a serial EPROM + - Removed freeze from dip switch (code@ 020B74) + - Some code to handle the PIC (protection?). + Read and write to addresses 0x5762b0 and 0x57a2b0 occurs in the code but the return value is never really used (nop or bra skips relevant parts) + and so seems that the PIC protection is ineffective. + - Read and write to port 0x80017a (EEPROM in pang3) still are present in the code, but are filtered by the PAL16V8 @ E13 so there is no need to + create a port for that address here in mame (altough this causes a popmessage "CPS-B read port 3A contact MAMEDEV" to occurr at startup if compiled with + DEBUG=1) + + Board-B has five PALs: + - PALCE16V8 @A2 + - PAL16L8 @E11 + - PALCE16V8 @E13 + - PAL16L8 @J8 + - PALCE22V10 @J8 + +*/ +ROM_START( pang3b4 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "22.u30", 0x00000, 0x20000, CRC(bf3ebe68) SHA1(10f3eb3f6e747eaed1821c611fa19350c3528362) ) + ROM_LOAD16_BYTE( "26.u35", 0x00001, 0x20000, CRC(d20db83c) SHA1(ac97ad76848bb6069e6d07d1f2feb2c328578228) ) + ROM_LOAD16_BYTE( "23.u31", 0x40000, 0x20000, CRC(94d494c2) SHA1(33a2c1ea041a68655b7c3c44b1c5d58dec3add89) ) + ROM_LOAD16_BYTE( "27.u36", 0x40001, 0x20000, CRC(38e43390) SHA1(ae346c5e21b3aad86b118a0c99a550304916debf) ) + ROM_LOAD16_BYTE( "20.u28", 0x80000, 0x20000, CRC(8daf3814) SHA1(a83a0434b9f281c70dae35362741f52a8b3ea622) ) + ROM_LOAD16_BYTE( "24.u33", 0x80001, 0x20000, CRC(bb34e444) SHA1(2cfb135dbd763f327fe3c5ed2d8d291fd97118c2) ) + ROM_LOAD16_BYTE( "21.u29", 0xC0000, 0x20000, CRC(54d0b680) SHA1(5527673286dc9db82eed357cda1f53ccdd3e2d1f) ) + ROM_LOAD16_BYTE( "25.u34", 0xC0001, 0x20000, CRC(d666ec70) SHA1(3305fa5c6c78bdfc5ef5393f001e710ce3c4d28a) ) + + + ROM_REGION( 0x400000, "gfx", 0 ) + ROM_LOAD64_BYTE( "14.u25", 0x000000, 0x40000, CRC(d2b764a9) SHA1(bb13821a1a3059c2f98d5c36f830116b87583312) ) + ROM_LOAD64_BYTE( "06.u15", 0x000001, 0x40000, CRC(fb68be4e) SHA1(5d7e34bfa5427a1b05b64e174dd26e2153b56ec0) ) + ROM_LOAD64_BYTE( "13.u24", 0x200000, 0x40000, CRC(0c73a1c7) SHA1(c3d3f9115b24805f038bb4b808beef342c87eff3) ) + ROM_LOAD64_BYTE( "05.u14", 0x200001, 0x40000, CRC(475a5ef1) SHA1(0dcd8d747a84037e27c5b360733a4c3d03cc43fa) ) + + ROM_LOAD64_BYTE( "10.u21", 0x000004, 0x40000, CRC(79673708) SHA1(9b4d972d7ef6592763271976349d65519e0d0dfa) ) + ROM_LOAD64_BYTE( "02.u11", 0x000005, 0x40000, CRC(f706b466) SHA1(ecdfe160bdfa9c5d4533c43f52868f4e71ee6c8b) ) + ROM_LOAD64_BYTE( "09.u20", 0x200004, 0x40000, CRC(6e36e963) SHA1(2e46c57516603322ee16e7a7ffa4792c3569f087) ) + ROM_LOAD64_BYTE( "01.u10", 0x200005, 0x40000, CRC(7d15b9d7) SHA1(b6b39bffb2440c4cfedcdda19e6bcb0a85038ee3) ) + + ROM_LOAD64_BYTE( "16.u27", 0x000002, 0x40000, CRC(3e293482) SHA1(c5896b92126f05cfcef46a1d6e4a8986c054d1db) ) + ROM_LOAD64_BYTE( "08.u17", 0x000003, 0x40000, CRC(7e0ca927) SHA1(eee7df6f8fc11dda0d403b7d43934e3233cf257e) ) + ROM_LOAD64_BYTE( "15.u26", 0x200002, 0x40000, CRC(a933434f) SHA1(60807e16b87f3e07f59fd14d29a5c54efe54f4af) ) + ROM_LOAD64_BYTE( "07.u16", 0x200003, 0x40000, CRC(83b3fa5e) SHA1(95c79cfe88902a36a60ebd73490b435c57c9d60e) ) + + ROM_LOAD64_BYTE( "12.u23", 0x000006, 0x40000, CRC(3c4dfb4f) SHA1(638078080d49edb8c711dfb10ee6029c58e82801) ) + ROM_LOAD64_BYTE( "04.u13", 0x000007, 0x40000, CRC(44cd5e95) SHA1(53ba6dd7ab2313b5a0ee1210a1ec24e57d1d5d86) ) + ROM_LOAD64_BYTE( "11.u22", 0x200006, 0x40000, CRC(29194b90) SHA1(479bbfbc26cd18440fdf9b71f85e3776add61cc4) ) + ROM_LOAD64_BYTE( "03.u12", 0x200007, 0x40000, CRC(7e28974e) SHA1(d1eb177fe37784c6bcd5cb7df3b06b55c4d069b8) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "pa3_11.11f", 0x00000, 0x08000, BAD_DUMP CRC(cb1423a2) SHA1(3191bf5d340168647881738cb2aed09b1d86146e) ) // 19.u9 missing, used pang3b audio code instead + ROM_IGNORE( 0x18000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "pa3_05.10d", 0x00000, 0x20000, CRC(73a10d5d) SHA1(999465e4fbc35a34746d2db61ad49f61403d5af7) ) // 18.u18 has the same content of pa3_05.10d from pang3 romset + ROM_LOAD( "pa3_06.11d", 0x20000, 0x20000, CRC(affa4f82) SHA1(27b9292bbc121cf585f53297a79fe8f0d0a729ae) ) // 17.u19 has the same content of pa3_06.11d from pang3 romset + + ROM_REGION( 0x0400, "bboardplds", 0 ) + ROM_LOAD( "pal16l8.11e", 0x0000, 0x0117, CRC(27617943) SHA1(eb34cfba18fcc2b67ee214c681ea86bfe1bb75e0) ) // Bruteforced + ROM_LOAD( "pal16v8.1a", 0x0000, 0x0117, CRC(78c3161f) SHA1(7ae85dfca59387f4874b0ef1218bfd14c393fb85) ) // Bruteforced + ROM_LOAD( "pal16v8.13e", 0x0000, 0x0117, CRC(5406caf1) SHA1(6bebafd4a4bad9ed766abce2fef9c30cbf61772e) ) // Bruteforced + ROM_LOAD( "pal22v10.j8", 0x0000, 0x02dd, CRC(a9445f88) SHA1(caacee5f3d5502cd51060c0769914cad4317838c) ) // Bruteforced + ROM_LOAD( "pal16l8.j8", 0x0000, 0x0117, NO_DUMP ) // Bad PAL, all outputs are fixed high +ROM_END + +/* B-Board Mitchell 94916-10 */ +/* This set comes from an encrypted bootleg that uses a very well reproduced Mitchell 94916-10 B-Board surmounted by an + original Capcom 90631C-5 C-Board taken from a Knights of the round board (there's a sticker on it). + Protection chip MACH215 is present. */ +ROM_START( pang3b5 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "pa3e_17.11l", 0x00000, 0x80000, CRC(d7041d32) SHA1(b021f3defe7fc58030ba907125c713f987724187) ) // 17.11l has the same content of pa3e_17.11l from pang3r1 romset + ROM_LOAD16_WORD_SWAP( "pa3e_16.10l", 0x80000, 0x80000, CRC(1be9a483) SHA1(6cff1dd15ca163237bc82fb4a3e1d469d35e7be8) ) // 16.10l has the same content of pa3e_16.10l from pang3r1 romset + + ROM_REGION( 0x400000, "gfx", 0 ) + ROM_LOAD64_WORD( "1.2c", 0x000000, 0x80000, CRC(22c934c4) SHA1(93a3c3cfdbfd1321b785f08d1da30d9b1445e14b) ) + ROM_LOAD64_WORD( "7.2f", 0x000002, 0x80000, CRC(51031180) SHA1(a38a77da2ca452843a3b0cb02baaaf7df2e3d9a4) ) + ROM_LOAD64_WORD( "3.4c", 0x000004, 0x80000, CRC(ac119a46) SHA1(e8a07349b6106f712a7543ab52e9d5ced756fdbd) ) + ROM_LOAD64_WORD( "9.4f", 0x000006, 0x80000, CRC(2e1d35f2) SHA1(1b4a9cf9ed91fed532d44582c598982dae06253c) ) + ROM_LOAD64_WORD( "2.3c", 0x200000, 0x80000, CRC(07c85e9b) SHA1(5b9bc1f5708d03c2458a1dbb781084c2af8f91ee) ) + ROM_LOAD64_WORD( "8.3f", 0x200002, 0x80000, CRC(325cc0b7) SHA1(ef464abfbadb680eac51daab4adf0bb239785679) ) + ROM_LOAD64_WORD( "4.5c", 0x200004, 0x80000, CRC(4ad13297) SHA1(59565f9819e1cdd405103d5e3621c747116f653c) ) + ROM_LOAD64_WORD( "10.5f", 0x200006, 0x80000, CRC(026d0cd2) SHA1(44f7718851e0b1f43682afafcbd844e6b1ce3430) ) + + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "pa3_11.11f", 0x00000, 0x08000, CRC(cb1423a2) SHA1(3191bf5d340168647881738cb2aed09b1d86146e) ) // == 11.11f has the same content of pa3w_16.10l from pang3 romset + ROM_IGNORE( 0x18000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "pa3_05.10d", 0x00000, 0x20000, CRC(73a10d5d) SHA1(999465e4fbc35a34746d2db61ad49f61403d5af7) ) // 5.10c has the same content of pa3_05.10d from pang3 romset + ROM_LOAD( "pa3_06.11d", 0x20000, 0x20000, CRC(affa4f82) SHA1(27b9292bbc121cf585f53297a79fe8f0d0a729ae) ) // 6.11c has the same content of pa3_06.11d from pang3 romset + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "cp1b1f_boot.1f", 0x0000, 0x0117, CRC(658849dc) SHA1(4fc386fa33322ce52334dee1391d617e0754bde0) ) + ROM_LOAD( "cp1b8k.8k", 0x0000, 0x0117, CRC(8a52ea7a) SHA1(47a59abc54a83292cfd6faa2d293c8f948c7ea03) ) // I was not able to dump the original PAL. Tryied to swap it with a legit CP1B8K on real hw + // and it's working, so I suppose they're functionally equivalent + ROM_LOAD( "cp1b9ka.9k", 0x0000, 0x0117, CRC(238d3ff4) SHA1(597f429d6a0ea485746322592604188c1ec87595) ) // The PAL @ 9k was bruteforced and verified to be to be functionally equivalent to a standard cp1b9ka + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0104, CRC(a399772d) SHA1(55471189db573dd61e3087d12c55564291672c77) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + + + + /* B-Board 91635B-2 */ /* Note that this USA set seems to be the only one where GFX are stored into EPROMs instead of the usual mask ROMs. */ ROM_START( megaman ) @@ -13956,6 +14145,69 @@ void cps_state::init_pang3() init_pang3b(); } +/* +Pang 3b4 - code accesso to $5762b0 and $57a2b0 (PIC) + +--------- Dip switch decoding --------- +0E001A: move.b $80001c.l, D0 ; !Dip switch B +0E0020: not.b D0 ; Dip switch B +0E0022: move.b D0, D1 ; D1 = D0 - Save DSWB for later use +0E0024: andi.b #$7, D0 ; D0 = D0 & $7 - first 3 bits - Game level -- 7<= D0 <= 0 +0E0028: move.w D0, $5762b0.l ; [$5762b0] = D0 +0E002E: nop ; +0E0030: move.w $57a2b0.l, D2 ; D2 = [$57a2b0] +0E0036: move.b D1, D0 ; D0 = D1 - restore value read from DSWB +0E0038: andi.w #$60, D0 ; D0 = D0 & $60 - bit 5, 6 + +--------- Copy protection ? --------- +000300: move.w #$17, $5762b0.l ; [5762B0] = 17 (Pic?) +000308: nop ; +00030A: move.w #$3, D2 ; D2 = 3 +00030E: move.w $57a2b0.l, D0 ; D0 = [$57A2B0] +000314: cmpi.w #$7321, D0 ; DO <= $7321 (not used?) +000318: bra $360 ; jmp 360 +; unused code +00031A: dbra D2, $30e ; loop until D2=0 to $30E +00031E: move.l #$0, $ff10fa.l ; [$ff10fa] = 0 ; reset values initialized at 238F0-23922 +000328: move.l #$0, $ff113a.l ; [$ff113a] = 0 ; reset values initialized at 238F0-23922 +000332: move.l #$0, $ff10fe.l ; [$ff10fe] = 0 ; reset values initialized at 238F0-23922 +00033C: move.l #$0, $ff113e.l ; [$ff113e] = 0 ; reset values initialized at 238F0-23922 +000346: move.l #$0, $ff10d2.l ; [$ff10d2] = 0 ; reset values initialized at 238F0-23922 +000350: move.l #$0, $ff1112.l ; [$ff1112] = 0 ; reset values initialized at 238F0-23922 +00035A: jmp $20acc.l ; jmp $20ACC +; unused code [END] +000360: jmp $e0000.l ; jmp $E0000 +*/ +uint16_t cps_state::pang3b4_prot_r() +{ + + if ((pang3b4_prot & 0xFF) >=0 && (pang3b4_prot & 0xFF) <=7) + return (pang3b4_prot & 0xFF)+0x20; // Game level + extend + if (pang3b4_prot == 0x17) + return 0x7321; // Guessed from code @0x314 + return 0xFFFF; +} + +void cps_state::pang3b4_prot_w(uint16_t data) +{ + pang3b4_prot = data; +} + + +void cps_state::init_pang3b4() +{ + m_maincpu->space(AS_PROGRAM).install_write_handler(0x5762b0, 0x5762b1, write16smo_delegate(*this, FUNC(cps_state::pang3b4_prot_w))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x57A2b0, 0x57A2b1, read16smo_delegate(*this, FUNC(cps_state::pang3b4_prot_r))); + + /* In pang3 the Mach215 security chip outputs 2 control signals (pins 4, 6) which switch the eeprom in/out serial data lines onto the main 68k data bus when required + They're mapped in the CPS-B address range but there is not the EPROM on the board + Read and write to port 0x80017a still are present in the code, but they are filtered by the PAL16V8 @ E13 */ + m_maincpu->space(AS_PROGRAM).nop_readwrite(0x80017a, 0x80017b); + + init_cps1(); +} + + uint16_t cps_state::ganbare_ram_r(offs_t offset, uint16_t mem_mask) { uint16_t result = 0xffff; @@ -14283,6 +14535,8 @@ GAME( 1995, pang3j, pang3, pang3, pang3, cps_state, init_pang3 GAME( 1995, pang3b, pang3, pang3, pang3b, cps_state, init_pang3b, ROT0, "bootleg", "Pang! 3 (bootleg, set 1)", MACHINE_SUPPORTS_SAVE ) // 950511 - based on Euro version GAME( 1995, pang3b2, pang3, pang3, pang3, cps_state, init_pang3, ROT0, "bootleg", "Pang! 3 (bootleg, set 2)", MACHINE_SUPPORTS_SAVE ) // 950601 - based on Euro version GAME( 1995, pang3b3, pang3, pang3, pang3, cps_state, init_pang3, ROT0, "bootleg", "Pang! 3 (bootleg, set 3)", MACHINE_SUPPORTS_SAVE ) // 950511 - based on Euro version, hacked to use cps-b-17 +GAME( 1995, pang3b4, pang3, cps1_12MHz, pang3b4, cps_state, init_pang3b4, ROT0, "bootleg", "Pang! 3 (bootleg, set 4)", MACHINE_SUPPORTS_SAVE ) // 950601 - based on Euro version, unencrypted, protection PIC, no serial EPROM +GAME( 1995, pang3b5, pang3, pang3, pang3, cps_state, init_pang3, ROT0, "bootleg", "Pang! 3 (bootleg, set 5)", MACHINE_SUPPORTS_SAVE ) // 950511 - based on Euro version /* Home 'CPS Changer' Unit */ diff --git a/src/mame/drivers/jpmimpctsw.cpp b/src/mame/drivers/jpmimpctsw.cpp index f81b5d2b606..92eeec3456e 100644 --- a/src/mame/drivers/jpmimpctsw.cpp +++ b/src/mame/drivers/jpmimpctsw.cpp @@ -11780,12 +11780,12 @@ GAMEL( 199?, j6hapyhr, 0, impact_nonvideo_disc, j6hapyhr, jpmimpct_ GAMEL( 199?, j6hapyhra, j6hapyhr, impact_nonvideo_disc, j6hapyhr, jpmimpct_state, empty_init, ROT0, "JPM", "Happy Hour (JPM) (IMPACT) (HH2 C5) (set 2)", GAME_FLAGS_WORKING, layout_j6hapyhrb ) GAMEL( 199?, j6hapyhrb, j6hapyhr, impact_nonvideo_disc, j6hapyhr, jpmimpct_state, empty_init, ROT0, "JPM", "Happy Hour (JPM) (IMPACT) (HH2 C5) (set 3)", GAME_FLAGS_WORKING, layout_j6hapyhrb ) -GAME( 199?, j6hilosv, 0, impact_nonvideo, j6hilosv, jpmimpct_state, empty_init, ROT0, "JPM", "Hi Lo Silver (JPM) (IMPACT) (set 1)", GAME_FLAGS ) -GAME( 199?, j6hilosva, j6hilosv, impact_nonvideo, j6hilosv, jpmimpct_state, empty_init, ROT0, "JPM", "Hi Lo Silver (JPM) (IMPACT) (set 2)", GAME_FLAGS ) -GAME( 199?, j6hilosvb, j6hilosv, impact_nonvideo, j6hilosv, jpmimpct_state, empty_init, ROT0, "JPM", "Hi Lo Silver (JPM) (IMPACT) (set 3)", GAME_FLAGS ) -GAME( 199?, j6hilosvc, j6hilosv, impact_nonvideo, j6hilosv, jpmimpct_state, empty_init, ROT0, "JPM", "Hi Lo Silver (JPM) (IMPACT) (set 4, Whitbread)", GAME_FLAGS ) -GAME( 199?, j6hilosvd, j6hilosv, impact_nonvideo, j6hilosv, jpmimpct_state, empty_init, ROT0, "JPM", "Hi Lo Silver (JPM) (IMPACT) (set 5)", GAME_FLAGS ) // incomplete pair -GAME( 199?, j6hilosve, j6hilosv, impact_nonvideo, j6hilosv, jpmimpct_state, empty_init, ROT0, "JPM", "Hi Lo Silver (JPM) (IMPACT) (set 6)", GAME_FLAGS ) // incomplete pair +GAME( 199?, j6hilosv, 0, impact_nonvideo, j6hilosv, jpmimpct_state, empty_init, ROT0, "JPM", "Hi-Lo Silver (JPM) (IMPACT) (set 1)", GAME_FLAGS ) +GAME( 199?, j6hilosva, j6hilosv, impact_nonvideo, j6hilosv, jpmimpct_state, empty_init, ROT0, "JPM", "Hi-Lo Silver (JPM) (IMPACT) (set 2)", GAME_FLAGS ) +GAME( 199?, j6hilosvb, j6hilosv, impact_nonvideo, j6hilosv, jpmimpct_state, empty_init, ROT0, "JPM", "Hi-Lo Silver (JPM) (IMPACT) (set 3)", GAME_FLAGS ) +GAME( 199?, j6hilosvc, j6hilosv, impact_nonvideo, j6hilosv, jpmimpct_state, empty_init, ROT0, "JPM", "Hi-Lo Silver (JPM) (IMPACT) (set 4, Whitbread)", GAME_FLAGS ) +GAME( 199?, j6hilosvd, j6hilosv, impact_nonvideo, j6hilosv, jpmimpct_state, empty_init, ROT0, "JPM", "Hi-Lo Silver (JPM) (IMPACT) (set 5)", GAME_FLAGS ) // incomplete pair +GAME( 199?, j6hilosve, j6hilosv, impact_nonvideo, j6hilosv, jpmimpct_state, empty_init, ROT0, "JPM", "Hi-Lo Silver (JPM) (IMPACT) (set 6)", GAME_FLAGS ) // incomplete pair GAMEL( 199?, j6impuls, 0, impact_nonvideo, j6impuls, jpmimpct_state, empty_init, ROT0, "JPM", "Impulse (JPM) (IMPACT) (IP 5 C13) (set 1)", GAME_FLAGS_WORKING, layout_j6impuls15 ) GAMEL( 199?, j6impulsa, j6impuls, impact_nonvideo, j6impulsa,jpmimpct_state, empty_init, ROT0, "JPM", "Impulse (JPM) (IMPACT) (IP 6 C14) (set 2)", GAME_FLAGS_WORKING, layout_j6impuls ) diff --git a/src/mame/drivers/jpmsys5sw.cpp b/src/mame/drivers/jpmsys5sw.cpp index 95d985b4dba..4c188005b41 100644 --- a/src/mame/drivers/jpmsys5sw.cpp +++ b/src/mame/drivers/jpmsys5sw.cpp @@ -1632,4 +1632,4 @@ GAME( 199?, j5revoa, j5revo, jpmsys5_ym, popeye, jpmsys5_state, empty_init, GAMEL( 199?, j5sizl, 0, jpmsys5_ym, popeye, jpmsys5_state, empty_init, ROT0, "JPM", "Sizzling (JPM) (SYSTEM5)", GAME_FLAGS, layout_j5sizl ) -GAME( 199?, j5hilos, 0, jpmsys5_ym, popeye, jpmsys5_state, empty_init, ROT0, "JPM", "Hi Lo Silver (JPM) (SYSTEM5)", GAME_FLAGS ) +GAME( 1990, j5hilos, 0, jpmsys5_ym, popeye, jpmsys5_state, empty_init, ROT0, "JPM", "Hi-Ho Silver (JPM) (SYSTEM5)", GAME_FLAGS ) diff --git a/src/mame/drivers/kaypro.cpp b/src/mame/drivers/kaypro.cpp index 237c7703e74..e3b036f9ff8 100644 --- a/src/mame/drivers/kaypro.cpp +++ b/src/mame/drivers/kaypro.cpp @@ -2,22 +2,25 @@ // copyright-holders:Robbbert /************************************************************************************************* - The Kaypro 2/83 computer - the very first Kaypro II - 2 full height floppy drives. Each disk was single sided, and could hold 191k. The computer had 2x pio and 1x sio. One of the sio ports communicated with the keyboard with a coiled telephone cord, complete with modular plug on each end. The keyboard carries its own Intel 87C51 processor and is an intelligent device. - + + Kaypro 5 notes: + The Kaycomp Kay Pro V / Non-Linear Systems Kaypro 5: https://retrocmp.de/kaypro/kay-p1_vers.htm#kay-5, + a version of the Kaypro II, but with a 5MB harddisk instead of one of the floppy drives, was announced + in December 1982, but apart from the relevant articles of the time, only one photo can be found. + Kaypro 10 notes: - - This machine comes with a 10MB hard drive, split into 2 5MB partitions. It also - has one floppy drive. The drive letters change depending on what drive it was booted - from. The boot drive is always A:. - If booted from floppy: + This machine comes with a 10MB hard drive, split into 2 5MB partitions. It also has one floppy drive. + The drive letters change depending on what drive it was booted from. The boot drive is always A:. + - If booted from floppy: A: floppy B: HD partition 1 C: HD partition 2 - If booted from HD (presumably partition 1) + - If booted from HD (presumably partition 1) A: HD partition 1 B: HD partition 2 C: floppy diff --git a/src/mame/drivers/nes.cpp b/src/mame/drivers/nes.cpp index 303ef932de7..ba80fe08043 100644 --- a/src/mame/drivers/nes.cpp +++ b/src/mame/drivers/nes.cpp @@ -85,6 +85,7 @@ void nes_state::nes(machine_config &config) SOFTWARE_LIST(config, "ntb_list").set_original("nes_ntbrom"); // Sunsoft Nantettate! Baseball mini-carts SOFTWARE_LIST(config, "kstudio_list").set_original("nes_kstudio"); // Bandai Karaoke Studio expansion carts SOFTWARE_LIST(config, "datach_list").set_original("nes_datach"); // Bandai Datach Joint ROM System mini-carts + SOFTWARE_LIST(config, "famibox_list").set_compatible("famibox"); // FamicomBox/FamicomStation carts } void nes_state::nespal(machine_config &config) diff --git a/src/mame/drivers/newton.cpp b/src/mame/drivers/newton.cpp index 86401cb91e5..f9c6f787516 100644 --- a/src/mame/drivers/newton.cpp +++ b/src/mame/drivers/newton.cpp @@ -5,18 +5,18 @@ Apple Newton devices skeleton driver CPUs: - MessagePad: ARM 610 (20MHz) + Newton MessagePad: ARM 610 (20MHz) ExpertPad PI-7000: ARM 610 (20MHz) - MessagePad 100: ARM 610 (20MHz) - MessagePad 110: ARM 610 (20MHz) - MessagePad 120: ARM 610 (20MHz) + Newton MessagePad 100: ARM 610 (20MHz) + Newton MessagePad 110: ARM 610 (20MHz) + Newton MessagePad 120: ARM 610 (20MHz) Marco: ARM 610 (20MHz) - MessagePad 130: ARM 610 (20MHz) + Newton MessagePad 130: ARM 610 (20MHz) eMate 300: ARM 710a (25MHz) - MessagePad 2000: StrongARM SA-110 (162MHz) - MessagePad 2100: StrongARM SA-110 (162MHz) + Newton MessagePad 2000: StrongARM SA-110 (162MHz) + Newton MessagePad 2100: StrongARM SA-110 (162MHz) ****************************************************************************/ @@ -183,12 +183,12 @@ ROM_END // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS CONS( 1992, newtnotp, 0, 0, gen1, newton, newton_state, empty_init, "Apple Computer", "Newton Notepad (prototype)", MACHINE_IS_SKELETON ) -CONS( 1993, newtonmp, 0, 0, gen1, newton, newton_state, empty_init, "Apple Computer", "MessagePad", MACHINE_IS_SKELETON ) +CONS( 1993, newtonmp, 0, 0, gen1, newton, newton_state, empty_init, "Apple Computer", "Newton MessagePad", MACHINE_IS_SKELETON ) CONS( 1993, spi7000, 0, 0, gen1, newton, newton_state, empty_init, "Sharp", "ExpertPad PI-7000", MACHINE_IS_SKELETON ) -CONS( 1994, mp110, 0, 0, gen1, newton, newton_state, empty_init, "Apple Computer", "MessagePad 110", MACHINE_IS_SKELETON ) -CONS( 1995, mp120, 0, 0, mp120, newton, newton_state, empty_init, "Apple Computer", "MessagePad 120", MACHINE_IS_SKELETON ) +CONS( 1994, mp110, 0, 0, gen1, newton, newton_state, empty_init, "Apple Computer", "Newton MessagePad 110", MACHINE_IS_SKELETON ) +CONS( 1995, mp120, 0, 0, mp120, newton, newton_state, empty_init, "Apple Computer", "Newton MessagePad 120", MACHINE_IS_SKELETON ) CONS( 1995, motmarco, 0, 0, marco, newton, newton_state, empty_init, "Motorola", "Marco", MACHINE_IS_SKELETON ) -CONS( 1996, mp130, 0, 0, mp130, newton, newton_state, empty_init, "Apple Computer", "MessagePad 130", MACHINE_IS_SKELETON ) +CONS( 1996, mp130, 0, 0, mp130, newton, newton_state, empty_init, "Apple Computer", "Newton MessagePad 130", MACHINE_IS_SKELETON ) CONS( 1997, emate, 0, 0, emate, newton, newton_state, empty_init, "Apple Computer", "eMate 300", MACHINE_IS_SKELETON ) -CONS( 1997, mp2000, 0, 0, mp2000, newton, newton_state, empty_init, "Apple Computer", "MessagePad 2000", MACHINE_IS_SKELETON ) -CONS( 1997, mp2100, 0, 0, mp2100, newton, newton_state, empty_init, "Apple Computer", "MessagePad 2100", MACHINE_IS_SKELETON ) +CONS( 1997, mp2000, 0, 0, mp2000, newton, newton_state, empty_init, "Apple Computer", "Newton MessagePad 2000", MACHINE_IS_SKELETON ) +CONS( 1997, mp2100, 0, 0, mp2100, newton, newton_state, empty_init, "Apple Computer", "Newton MessagePad 2100", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/playch10.cpp b/src/mame/drivers/playch10.cpp index fbe82e1b953..35cf16131ae 100644 --- a/src/mame/drivers/playch10.cpp +++ b/src/mame/drivers/playch10.cpp @@ -1433,7 +1433,7 @@ ROM_START( pc_virus ) /* Virus (from location test board) */ ROM_RELOAD( 0x18000, 0x08000 ) ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */ - ROM_LOAD( "security.u6", 0x00, 0x10, CRC(5b4f6930) SHA1(bd152d6907fe55f80125b34360fdb44cfc348906) ) + ROM_LOAD( "security.u6", 0x00, 0x10, CRC(b69309ab) SHA1(a11ae46ed4c6ae5c22bab36593a53535a257fd4f) ) ROM_END ROM_START( pc_bload ) /* Bases Loaded (from location test board) */ @@ -1449,7 +1449,7 @@ ROM_START( pc_bload ) /* Bases Loaded (from location test board) */ ROM_LOAD( "u1", 0x00000, 0x20000, CRC(02ff6ae9) SHA1(ba15b91f917c9e722d1d8b24b5783bd5eac6a4e7) ) ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */ - ROM_LOAD( "security.u6", 0x00, 0x10, CRC(5b4f6930) SHA1(bd152d6907fe55f80125b34360fdb44cfc348906) ) + ROM_LOAD( "security.u6", 0x00, 0x10, CRC(b69309ab) SHA1(a11ae46ed4c6ae5c22bab36593a53535a257fd4f) ) ROM_END ROM_START( pc_ftqst ) /* Fester's Quest */ @@ -1638,7 +1638,7 @@ ROM_START( pc_ttoon ) /* Tiny Toon Adventures */ ROM_LOAD( "tt-chr.u1", 0x00000, 0x20000, CRC(a024ae14) SHA1(2e797a173161a61c14ce299e3c5a31c6029f2b50) ) ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */ - ROM_LOAD( "security.u6", 0x00, 0x10, CRC(5b4f6930) SHA1(bd152d6907fe55f80125b34360fdb44cfc348906) ) + ROM_LOAD( "security.u6", 0x00, 0x10, CRC(b69309ab) SHA1(a11ae46ed4c6ae5c22bab36593a53535a257fd4f) ) ROM_END @@ -1898,10 +1898,10 @@ GAME( 1989, pc_tmnt, playch10, playch10_f, playch10, playch10_state, init_pcfbo GAME( 1989, pc_ftqst, playch10, playch10_f, playch10, playch10_state, init_pcfboard, ROT0, "Sunsoft (Nintendo of America license)", "Uncle Fester's Quest: The Addams Family (PlayChoice-10)", 0 ) GAME( 1989, pc_bstar, playch10, playch10_f2,playch10, playch10_state, init_pcfboard, ROT0, "SNK (Nintendo of America license)", "Baseball Stars: Be a Champ! (PlayChoice-10)", MACHINE_IMPERFECT_GRAPHICS ) GAME( 1989, pc_tbowl, playch10, playch10_f, playch10, playch10_state, init_pcfboard, ROT0, "Tecmo (Nintendo of America license)", "Tecmo Bowl (PlayChoice-10)", 0 ) -GAME( 1990, pc_virus, pc_drmro, playch10_f, playch10, playch10_state, init_virus, ROT0, "Nintendo", "Virus (Dr. Mario prototype, PlayChoice-10)", 0 ) +GAME( 1990, pc_virus, pc_drmro, playch10_f, playch10, playch10_state, init_pcfboard, ROT0, "Nintendo", "Virus (Dr. Mario prototype, PlayChoice-10)", 0 ) GAME( 1990, pc_rrngr, playch10, playch10_f, playch10, playch10_state, init_pcfboard, ROT0, "Capcom USA (Nintendo of America license)", "Chip'n Dale: Rescue Rangers (PlayChoice-10)", 0 ) GAME( 1990, pc_drmro, playch10, playch10_f, playch10, playch10_state, init_pcfboard, ROT0, "Nintendo", "Dr. Mario (PlayChoice-10)", 0 ) -GAME( 1990, pc_bload, playch10, playch10_f, playch10, playch10_state, init_virus, ROT0, "Jaleco (Nintendo of America license)", "Bases Loaded (Prototype, PlayChoice-10)", 0 ) +GAME( 1990, pc_bload, playch10, playch10_f, playch10, playch10_state, init_pcfboard, ROT0, "Jaleco (Nintendo of America license)", "Bases Loaded (Prototype, PlayChoice-10)", 0 ) GAME( 1990, pc_ynoid, playch10, playch10_f, playch10, playch10_state, init_pcfboard, ROT0, "Capcom USA (Nintendo of America license)", "Yo! Noid (PlayChoice-10)", 0 ) // G-Board Games @@ -1915,7 +1915,7 @@ GAME( 1990, pc_ngai2, playch10, playch10_g, playch10, playch10_state, init_pcgbo GAME( 1991, pc_ngai3, playch10, playch10_g, playch10, playch10_state, init_pcgboard, ROT0, "Tecmo (Nintendo of America license)", "Ninja Gaiden Episode III: The Ancient Ship of Doom (PlayChoice-10)", 0 ) GAME( 1991, pc_pwbld, playch10, playch10_g, playch10, playch10_state, init_pcgboard, ROT0, "Taito (Nintendo of America license)", "Power Blade (PlayChoice-10)", 0 ) GAME( 1991, pc_rkats, playch10, playch10_g, playch10, playch10_state, init_pcgboard, ROT0, "Atlus (Nintendo of America license)", "Rockin' Kats (PlayChoice-10)", 0 ) -GAME( 1991, pc_ttoon, playch10, playch10_g, playch10, playch10_state, init_ttoon, ROT0, "Konami (Nintendo of America license)", "Tiny Toon Adventures (prototype) (PlayChoice-10)", 0 ) // Code is final USA NES version of the game, (which is MMC3C according to nes.xml, but this cart has MMC3B) +GAME( 1991, pc_ttoon, playch10, playch10_g, playch10, playch10_state, init_pcgboard, ROT0, "Konami (Nintendo of America license)", "Tiny Toon Adventures (prototype) (PlayChoice-10)", 0 ) // Code is final USA NES version of the game, (which is MMC3C according to nes.xml, but this cart has MMC3B) // variant with 4 screen mirror GAME( 1990, pc_radr2, playch10, playch10_g, playch10, playch10_state, init_pcgboard_type2, ROT0, "Square (Nintendo of America license)", "Rad Racer II (PlayChoice-10)", MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/taitottl.cpp b/src/mame/drivers/taitottl.cpp index 14b95ae69b8..a1002445770 100644 --- a/src/mame/drivers/taitottl.cpp +++ b/src/mame/drivers/taitottl.cpp @@ -360,10 +360,87 @@ ROM_START( zzblock ) ROM_LOAD( "tz03.6f", 0x0000, 0x0020, CRC(1ba385b1) SHA1(b70c356174a1748723c0116ae8dd74b25e1fe6b4) ) ROM_END +//**************************************************************** +//******** GAMES AND CLONES NOT FROM TAITO *********************** -GAME( 1977, fisco400, 0, taitottl, 0, taitottl_state, empty_init, ROT0, "Taito", "Cisco/Fisco 400 [TTL]", MACHINE_IS_SKELETON ) -GAME( 1977, gunman, 0, taitottl, 0, taitottl_state, empty_init, ROT0, "Taito", "Gunman [TTL]", MACHINE_IS_SKELETON ) -GAME( 1977, missilex, 0, taitottl, 0, taitottl_state, empty_init, ROT0, "Taito", "Missile-X [TTL]", MACHINE_IS_SKELETON ) -GAME( 1977, ttblock, 0, taitottl, 0, taitottl_state, empty_init, ROT0, "Taito", "T.T Block [TTL]", MACHINE_IS_SKELETON ) -GAME( 1978, ttsracec, 0, taitottl, 0, taitottl_state, empty_init, ROT0, "Taito", "T.T. Speed Race CL [TTL]", MACHINE_IS_SKELETON ) -GAME( 1979, zzblock, 0, taitottl, 0, taitottl_state, empty_init, ROT0, "Taito", "Zun Zun Block [TTL]", MACHINE_IS_SKELETON ) +/* +Super Road Champions (1978), from Model Racing + +7 PCBs: + +CS219A (road PCB): + 1 x 22x2 edge connector + 6 x trimmer (VR1-VR6) + 2 x 1 DIP switch bank (SW1-SW2) + ROMs: + 1 x 6301 + 1 x 6331 + +CS220: + 1 x 22x2 edge connector + 3 x trimmer (VR1-VR3) + 1 x F32582DC 64x7x5 Character Generator (not dumped) + ROMs: + 3 x 6331 + +CS221 (sound): + 1 x 22x2 edge connector + 17 x trimmer (VR1-VR17) + 1 x 1 DIP switch bank (SW) + 1 x LM324 Quad Operational Amplifier (sound) + 1 x MM5837N Digital Noise Source (sound) + 1 x N50241 13-Note Top Octave Generator (sound) + 2 x TBA810 Audio Amplifier (sound) + ROMs: + 1 x 6301 + +CS222 (main): + 2 x 22x2 edge connector + 1 x LM324 Quad Operational Amplifier (sound) + ROMs: + 8 x 6301 + +CS223 (base) + +CS224 (power supply): + 2x 22x2 edge connector + 3x trimmer (VR1-VR3) + +CS225 (high score): + 1x 11x2 edge connector +*/ +ROM_START( srdchamp ) + ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 ) + + ROM_REGION( 0x0400, "roms", ROMREGION_ERASE00 ) + ROM_LOAD( "cs219_mr31.5d", 0x000, 0x020, CRC(332efd4f) SHA1(dc858b02d92d2a6f466fd4b0a8a2e415050286a5) ) + ROM_LOAD( "cs219_mr32.4j", 0x000, 0x100, CRC(08a808e3) SHA1(11e279e5f80d702155850612b1fe299af5f62167) ) + + ROM_LOAD( "cs220_f32582dc.3f", 0x000, 0x400, NO_DUMP ) // CGROM size unknown + ROM_LOAD( "cs220_mr39.3e", 0x000, 0x020, CRC(46bb17ff) SHA1(14d3b675613e9e13943d5fd38dbaab827f4d7a48) ) + ROM_LOAD( "cs220_mr40.3g", 0x000, 0x020, CRC(65fc450c) SHA1(d75f59775a3d6c82f942245b550be9cec2183848) ) + ROM_LOAD( "cs220_mr41.3h", 0x000, 0x020, CRC(b46a4389) SHA1(260a965b0219feae29bef0891bc96858995894a1) ) + + ROM_LOAD( "cs221_mr42.5a", 0x000, 0x100, CRC(9d24a1a8) SHA1(f98b55316dfc00c43830aff77c257265b0b5403d) ) + + ROM_LOAD( "cs222_mr33.3c", 0x000, 0x100, CRC(cc2ba2ea) SHA1(80fabb1b0b828f24012285525493f241e1b51a9f) ) + ROM_LOAD( "cs222_mr33.3g", 0x000, 0x100, CRC(cc2ba2ea) SHA1(80fabb1b0b828f24012285525493f241e1b51a9f) ) + ROM_LOAD( "cs222_mr34.3b", 0x000, 0x100, CRC(ce321649) SHA1(2ec5b25e03807ca49ab72dab13173e3d0445b1ac) ) + ROM_LOAD( "cs222_mr34.3h", 0x000, 0x100, CRC(ce321649) SHA1(2ec5b25e03807ca49ab72dab13173e3d0445b1ac) ) + + ROM_LOAD( "cs222_mr35.9g", 0x000, 0x100, CRC(f434cc57) SHA1(f2cf604d4d5cd55de31032abea5c35f3179121b0) ) + ROM_LOAD( "cs222_mr36.11f", 0x000, 0x100, CRC(8edc7993) SHA1(bc21ef568d6ee5ba33cefe015269ac2853dc0594) ) + ROM_LOAD( "cs222_mr37.12f", 0x000, 0x100, CRC(85573385) SHA1(db1feef3525247926316743f54e626e0c3da3f2b) ) + ROM_LOAD( "cs222_mr38.11j", 0x000, 0x100, CRC(fb775d23) SHA1(8dd3fca4d08c235c0999bd3623127331eed004d9) ) +ROM_END + + +GAME( 1977, fisco400, 0, taitottl, 0, taitottl_state, empty_init, ROT0, "Taito", "Cisco/Fisco 400 [TTL]", MACHINE_IS_SKELETON ) +GAME( 1977, gunman, 0, taitottl, 0, taitottl_state, empty_init, ROT0, "Taito", "Gunman [TTL]", MACHINE_IS_SKELETON ) +GAME( 1977, missilex, 0, taitottl, 0, taitottl_state, empty_init, ROT0, "Taito", "Missile-X [TTL]", MACHINE_IS_SKELETON ) +GAME( 1977, ttblock, 0, taitottl, 0, taitottl_state, empty_init, ROT0, "Taito", "T.T Block [TTL]", MACHINE_IS_SKELETON ) +GAME( 1978, ttsracec, 0, taitottl, 0, taitottl_state, empty_init, ROT0, "Taito", "T.T. Speed Race CL [TTL]", MACHINE_IS_SKELETON ) +GAME( 1979, zzblock, 0, taitottl, 0, taitottl_state, empty_init, ROT0, "Taito", "Zun Zun Block [TTL]", MACHINE_IS_SKELETON ) + +// Not from Taito +GAME( 1978, srdchamp, 0, taitottl, 0, taitottl_state, empty_init, ROT0, "Model Racing", "Super Road Champions [TTL]", MACHINE_IS_SKELETON ) diff --git a/src/mame/includes/cps1.h b/src/mame/includes/cps1.h index c4265f9ec5f..05deeda3fd0 100644 --- a/src/mame/includes/cps1.h +++ b/src/mame/includes/cps1.h @@ -154,6 +154,7 @@ public: void init_pang3(); void init_ganbare(); void init_pang3b(); + void init_pang3b4(); void init_sf2rb(); void init_sf2rb2(); void init_sf2thndr(); @@ -202,6 +203,8 @@ protected: void sf2m3_layer_w(offs_t offset, uint16_t data); uint16_t dinohunt_sound_r(); void varthb2_cps_a_w(offs_t offset, uint16_t data); + uint16_t pang3b4_prot_r(); + void pang3b4_prot_w(uint16_t data); TILEMAP_MAPPER_MEMBER(tilemap0_scan); TILEMAP_MAPPER_MEMBER(tilemap1_scan); @@ -235,6 +238,7 @@ protected: // game-specific uint16_t sf2ceblp_prot; + uint16_t pang3b4_prot; /* video-related */ tilemap_t *m_bg_tilemap[3]; diff --git a/src/mame/includes/playch10.h b/src/mame/includes/playch10.h index 3792442f102..c5cda00572a 100644 --- a/src/mame/includes/playch10.h +++ b/src/mame/includes/playch10.h @@ -55,9 +55,6 @@ public: void init_pcdboard(); void init_pceboard(); void init_pcfboard(); - void init_rp5h01_fix(); - void init_virus(); - void init_ttoon(); void init_pcgboard(); void init_pcgboard_type2(); void init_pchboard(); diff --git a/src/mame/machine/playch10.cpp b/src/mame/machine/playch10.cpp index 6de92fd0aa1..7e625b4df08 100644 --- a/src/mame/machine/playch10.cpp +++ b/src/mame/machine/playch10.cpp @@ -154,16 +154,6 @@ void playch10_state::pc10_prot_w(uint8_t data) } } -// Some prototypes/location test games need this -void playch10_state::init_rp5h01_fix() -{ - u8 *ROM = memregion("rp5h01")->base(); - u32 len = memregion("rp5h01")->bytes(); - - for (int i = 0; i < len; i++) - ROM[i] = ~bitswap<8>(ROM[i], 0, 1, 2, 3, 4, 5, 6, 7); -} - /************************************* * * Input Ports @@ -657,14 +647,6 @@ void playch10_state::init_pcfboard() init_prg_banking(); } -void playch10_state::init_virus() -{ - // common init - init_pcfboard(); - - init_rp5h01_fix(); -} - //********************************************************************************** // G Board (MMC3) games (Super Mario Bros. 3, etc) @@ -792,14 +774,6 @@ void playch10_state::init_pcgboard_type2() m_mirroring = PPU_MIRROR_4SCREEN; } -void playch10_state::init_ttoon() -{ - // common init - init_pcgboard(); - - init_rp5h01_fix(); -} - //********************************************************************************** // H Board games (PinBot) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 9f41553cb10..03601e58f37 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -10885,6 +10885,11 @@ cosmicgi // bootleg (Inder) @source:cosmicos.cpp cosmicos // +@source:cosmos_playc8f.cpp +bgbasketb // (c) 2013 Benchmark Games +bgbasketbb // (c) 2004 Benchmark Games +tenstrikc // (c) 2003 Benchmark Games + @source:cowtipping.cpp cowtipp // cowtippa // @@ -10991,6 +10996,8 @@ pang3b2 // bootleg pang3b3 // bootleg pang3j // 11/05/1995 (c) 1995 Mitchell (Japan) not listed on Capcom's site pang3r1 // 11/05/1995 (c) 1995 Mitchell (Euro) not listed on Capcom's site +pang3b4 // bootleg +pang3b5 // bootleg pnickj // 08/06/1994 (c) 1994 Compile + Capcom license (Japan) not listed on Capcom's site punisher // 22/04/1993 (c) 1993 (World) (CPS1 + QSound) punisherbz // bootleg @@ -17325,7 +17332,6 @@ atleta // brvteam // canasta // corsario // -gunshot // ind250cc // lapbylap // larana // @@ -39627,6 +39633,7 @@ spinner // bootleg bushido // bushidoa // bushidob // +gunshot // jolypark // mach2 // mach2a // @@ -40983,6 +40990,7 @@ wwestern1 // WW (c) 1982 Taito Corporation fisco400 // (c) 1977 Taito gunman // (c) 1977 Taito missilex // (c) 1977 Taito +srdchamp // (c) 1978 Model Racing ttblock // (c) 1977 Taito ttsracec // (c) 1978 Taito zzblock // (c) 1979 Taito diff --git a/src/mame/video/cps1.cpp b/src/mame/video/cps1.cpp index 49639eb078a..583d2cb834f 100644 --- a/src/mame/video/cps1.cpp +++ b/src/mame/video/cps1.cpp @@ -1529,6 +1529,26 @@ static const struct gfx_range mapper_CP1B1F_table[] = { 0 } }; +#define mapper_CP1B1F_boot { 0x10000, 0x10000, 0, 0 }, mapper_CP1B1F_boot_table +static const struct gfx_range mapper_CP1B1F_boot_table[] = +{ + // verified from PAL dump: + // pin 15 (ROMs 1-4,7-10 /oe) + // bank0 = pin 16 (ROMs 1,7 /ce) + // pin 18 (ROMs 3,9 /ce) + // bank1 = pin 17 (ROMs 2,8 /ce) + // pin 19 (ROMs 4,10 /ce) + // An a19 line is available on pin 13 for 32MBit roms (pin 44 of the EPROM) but is unused. + // pin 14 is fixed high in 16Mbit mode and is driven by gfx_chnl (CPS B-21 pin 108) if 32Mbit mode is selected + + /* type start end bank */ + { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x00000, 0x07fff, 0 }, + { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x10000, 0x17fff, 0 }, + { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x08000, 0x0ffff, 1 }, + { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x18000, 0x1ffff, 1 }, + { 0 } +}; + /* unverified, no dump */ #define mapper_sfzch { 0x20000, 0, 0, 0 }, mapper_sfzch_table @@ -1675,6 +1695,26 @@ static const struct gfx_range mapper_pokonyan_table[] = { 0 } }; +// pang3b4, PAL16V8@1A +#define mapper_pang3b4 { 0x8000, 0x8000, 0, 0 }, mapper_pang3b4_table +static const struct gfx_range mapper_pang3b4_table[] = +{ + // verified from PAL dump: + // bank0 = pin 14 (ROMs 2,4,6,8,10,12,14,16) + // bank1 = pin 12 (ROMs 1,3,5,7,9,11,13,15) + // pins 13,15,16,17,18,19 are always enabled + + /* type start end bank */ + { GFXTYPE_SPRITES, 0x0000, 0x7fff, 0 }, + { GFXTYPE_SCROLL2, 0x0000, 0x7fff, 0 }, + + { GFXTYPE_SPRITES, 0x8000, 0xffff, 1 }, + { GFXTYPE_SCROLL1, 0x8000, 0xffff, 1 }, + { GFXTYPE_SCROLL2, 0x8000, 0xffff, 1 }, + { GFXTYPE_SCROLL3, 0x8000, 0xffff, 1 }, + { 0 } +}; + // a game without an entry here defaults to cps2 mapper (eg. some games in fcrash.cpp) static const struct CPS1config cps1_config_table[]= { @@ -1924,6 +1964,8 @@ static const struct CPS1config cps1_config_table[]= {"pang3b", CPS_B_21_DEF, mapper_CP1B1F }, /* EEPROM port is among the CPS registers (handled by DRIVER_INIT) */ {"pang3b2", CPS_B_21_DEF, mapper_CP1B1F }, /* EEPROM port is among the CPS registers (handled by DRIVER_INIT) */ {"pang3b3", CPS_B_17, mapper_CP1B1F }, /* EEPROM port is among the CPS registers (handled by DRIVER_INIT) */ + {"pang3b4", CPS_B_21_DEF, mapper_pang3b4 }, + {"pang3b5", CPS_B_21_DEF, mapper_CP1B1F_boot }, /* EEPROM port is among the CPS registers (handled by DRIVER_INIT) */ {"ganbare", CPS_B_21_DEF, mapper_GBPR2 }, {"gulunpa", CPS_B_21_DEF, mapper_gulunpa }, // wrong |