diff options
author | 2025-04-28 20:05:00 +0200 | |
---|---|---|
committer | 2025-04-28 20:05:00 +0200 | |
commit | 4d8377f3b27fc2e1320da324a2cecf28ada85a88 (patch) | |
tree | d39d1de256e54b57bf8ade4f1e8cc32518b9fcfe | |
parent | 175b697c749814e871d7203d82b4959300b5a7ed (diff) |
New working clones
------------------
Chaoji Da Manguan II (China, V765C) [Mr. Kong, little0]
New systems marked not working
------------------------------
Biorhythm (For-Play) [Siftware]
- hash/a7800.xml: corrected ROM label for rampage [Guru]
-rw-r--r-- | hash/a7800.xml | 7 | ||||
-rw-r--r-- | src/mame/igs/igs017.cpp | 66 | ||||
-rw-r--r-- | src/mame/mame.lst | 6 | ||||
-rw-r--r-- | src/mame/skeleton/biorhythm_fp.cpp | 128 | ||||
-rw-r--r-- | src/mame/skeleton/sartorius.cpp | 2 |
5 files changed, 195 insertions, 14 deletions
diff --git a/hash/a7800.xml b/hash/a7800.xml index f569d0ddea5..2cc8971cb69 100644 --- a/hash/a7800.xml +++ b/hash/a7800.xml @@ -182,8 +182,9 @@ Super Pacman (2008) Wasp (2009) Notes: -The Atari 7800, like many early consoles, had cartridges with more than 1 chip on board. This list currently shows the older (all-in-1) -type of ROM dumps. Effort will be made at a later date to split them and document the chips/labels/markings on them. +Most games contain only one ROM and only a small number contain more than one ROM, +generally limited to early 32k games (2x 16k) and the 48k games (1x 16k + 1x 32k). +Efforts are being made to document the chips/labels/markings on them. --> @@ -2031,7 +2032,7 @@ almost nothing like the prototype. <part name="cart" interface="a7800_cart"> <feature name="slot" value="a78_act" /> <dataarea name="rom" size="0x20000"> - <rom name="rampage.bin" size="0x20000" crc="d2876ee2" sha1="17401f85fe8b453a6b43b3d0035d993b90568efc"/> + <rom name="dei-364nr-rmpgda1_(c)_ncr_a8928_609-2936005.u1" size="0x20000" crc="d2876ee2" sha1="17401f85fe8b453a6b43b3d0035d993b90568efc"/> </dataarea> </part> </software> diff --git a/src/mame/igs/igs017.cpp b/src/mame/igs/igs017.cpp index 72a77196a8a..f399f17d36a 100644 --- a/src/mame/igs/igs017.cpp +++ b/src/mame/igs/igs017.cpp @@ -698,7 +698,8 @@ public: void init_mgdh() ATTR_COLD; void init_mgdha() ATTR_COLD; void init_sdmg2() ATTR_COLD; - void init_sdmg2a() ATTR_COLD; + void init_sdmg2754ca() ATTR_COLD; + void init_sdmg2754cb() ATTR_COLD; void init_sdmg2p() ATTR_COLD; void init_slqz2() ATTR_COLD; void init_spkrform() ATTR_COLD; @@ -1533,7 +1534,7 @@ void igs017_state::init_cpoker2() // sdmg2 -void igs017_state::init_sdmg2() +void igs017_state::init_sdmg2754ca() { const int rom_size = memregion("maincpu")->bytes(); u16 * const rom = (u16 *)memregion("maincpu")->base(); @@ -1584,7 +1585,7 @@ void igs017_state::init_sdmg2() } // -void igs017_state::init_sdmg2a() +void igs017_state::init_sdmg2754cb() { const int rom_size = memregion("maincpu")->bytes(); u16 * const rom = (u16 *)memregion("maincpu")->base(); @@ -1634,6 +1635,37 @@ void igs017_state::init_sdmg2a() } } +void igs017_state::init_sdmg2() +{ + const int rom_size = memregion("maincpu")->bytes(); + u16 * const rom = (u16 *)memregion("maincpu")->base(); + + for (int i = 0; i < rom_size / 2; i++) + { + u16 x = rom[i]; + + // bit 0 xor layer + if (i & 0x20 / 2) + if (i & 0x02 / 2) + x ^= 0x0001; + + if (!(i & 0x4000 / 2)) + if (!(i & 0x300 / 2)) + x ^= 0x0001; + + // bit 9 xor layer + if (!(i & 0x20000 / 2)) + if (i & 0x400 / 2) + x ^= 0x0200; + + // bit 12 xor layer + if (i & 0x20000 / 2) + x ^= 0x1000; + + rom[i] = x; + } +} + // sdmg2p void igs017_state::init_sdmg2p() @@ -5284,9 +5316,9 @@ Notes: ***************************************************************************/ -ROM_START( sdmg2 ) +ROM_START( sdmg2754ca ) ROM_REGION( 0x80000, "maincpu", 0 ) - ROM_LOAD16_WORD_SWAP( "p0900.u25", 0x00000, 0x80000,CRC(43366f51) SHA1(48dd965dceff7de15b43c2140226a8b17a792dbc) ) + ROM_LOAD16_WORD_SWAP( "p0900.u25", 0x00000, 0x80000, CRC(43366f51) SHA1(48dd965dceff7de15b43c2140226a8b17a792dbc) ) ROM_REGION( 0x280000, "igs017_igs031:sprites", 0 ) ROM_LOAD( "m0901.u5", 0x000000, 0x200000, CRC(9699db24) SHA1(50fc2f173c20b48d10595f01f1e9545f1b13a61b) ) // FIXED BITS (xxxxxxxx0xxxxxxx) @@ -5299,9 +5331,9 @@ ROM_START( sdmg2 ) ROM_LOAD( "s0903.u15", 0x00000, 0x80000, CRC(ae5a441c) SHA1(923774ef73ab0f70e0db1738a4292dcbd70d2384) ) ROM_END -ROM_START( sdmg2a ) // supposedly earlier / easier, but reports same version as the other set +ROM_START( sdmg2754cb ) // supposedly earlier / easier, but reports same version as sdmg2754ca ROM_REGION( 0x80000, "maincpu", 0 ) - ROM_LOAD16_WORD_SWAP( "p0900.u25", 0x00000, 0x80000,CRC(1afc95d8) SHA1(924e198437359beec2abe6ee42a985f63d70b7e3) ) // SLDH + ROM_LOAD16_WORD_SWAP( "p0900.u25", 0x00000, 0x80000, CRC(1afc95d8) SHA1(924e198437359beec2abe6ee42a985f63d70b7e3) ) // SLDH ROM_REGION( 0x280000, "igs017_igs031:sprites", 0 ) ROM_LOAD( "m0901.u5", 0x000000, 0x200000, CRC(9699db24) SHA1(50fc2f173c20b48d10595f01f1e9545f1b13a61b) ) // FIXED BITS (xxxxxxxx0xxxxxxx) @@ -5314,6 +5346,21 @@ ROM_START( sdmg2a ) // supposedly earlier / easier, but reports same version as ROM_LOAD( "s0903.u15", 0x00000, 0x80000, CRC(ae5a441c) SHA1(923774ef73ab0f70e0db1738a4292dcbd70d2384) ) ROM_END +ROM_START( sdmg2 ) // C5220P001 PCB + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "rom.u16", 0x00000, 0x80000, CRC(362800e8) SHA1(00d93002272b1f3171ca84e67822eb31f760191f) ) + + ROM_REGION( 0x280000, "igs017_igs031:sprites", 0 ) + ROM_LOAD( "m0205.u6", 0x000000, 0x200000, BAD_DUMP CRC(9699db24) SHA1(50fc2f173c20b48d10595f01f1e9545f1b13a61b) ) // ROM didn't read correctly, taken from other sets + ROM_LOAD( "rom.u5", 0x200000, 0x080000, CRC(3298b13b) SHA1(13b21ddeed368b7f4fea1408c8fc511244342faf) ) // FIXED BITS (xxxxxxxx0xxxxxxx) + + ROM_REGION( 0x20000, "igs017_igs031:tilemaps", 0 ) + ROM_LOAD( "text.u7", 0x000000, 0x020000, CRC(cb34cbc0) SHA1(ceedbdda085fd1acc9a575502bdf7cf998f54f05) ) + + ROM_REGION( 0x80000, "oki", 0 ) + ROM_LOAD( "s0206.u3", 0x00000, 0x80000, CRC(ae5a441c) SHA1(923774ef73ab0f70e0db1738a4292dcbd70d2384) ) +ROM_END + /*************************************************************************** Maque Wangchao / Chaoji Da Manguan 2 - Jiaqiang Ban @@ -6140,8 +6187,9 @@ GAME ( 1996, iqblocka, iqblock, iqblocka, iqblocka, igs017_state, init GAME ( 1997, iqblockf, iqblock, iqblockf, iqblockf, igs017_state, init_iqblocka, ROT0, "IGS", "IQ Block (V113FR, gambling)", 0 ) GAME ( 1997, mgdh, 0, mgdh, mgdh, igs017_state, init_mgdh, ROT0, "IGS", "Manguan Daheng (Taiwan, V125T1)", MACHINE_IMPERFECT_COLORS | MACHINE_UNEMULATED_PROTECTION) // 滿貫大亨, wrong colors in betting screen, game id check (patched out) GAME ( 1997, mgdha, mgdh, mgdha, mgdh, igs017_state, init_mgdha, ROT0, "IGS", "Manguan Daheng (Taiwan, V123T1)", 0 ) // 滿貫大亨 -GAME ( 1997, sdmg2, 0, sdmg2, sdmg2, igs017_state, init_sdmg2, ROT0, "IGS", "Chaoji Da Manguan II (China, V754C, set 1)", 0 ) // 超級大滿貫II -GAME ( 1997, sdmg2a, sdmg2, sdmg2, sdmg2, igs017_state, init_sdmg2a, ROT0, "IGS", "Chaoji Da Manguan II (China, V754C, set 2)", 0 ) // 超級大滿貫II +GAME ( 1997, sdmg2, 0, sdmg2, sdmg2, igs017_state, init_sdmg2, ROT0, "IGS", "Chaoji Da Manguan II (China, V765C)", 0 ) // 超級大滿貫II +GAME ( 1997, sdmg2754ca, sdmg2, sdmg2, sdmg2, igs017_state, init_sdmg2754ca, ROT0, "IGS", "Chaoji Da Manguan II (China, V754C, set 1)", 0 ) // 超級大滿貫II +GAME ( 1997, sdmg2754cb, sdmg2, sdmg2, sdmg2, igs017_state, init_sdmg2754cb, ROT0, "IGS", "Chaoji Da Manguan II (China, V754C, set 2)", 0 ) // 超級大滿貫II GAME ( 1997, tjsb, 0, tjsb, tjsb, igs017_state, init_tjsb, ROT0, "IGS", "Tian Jiang Shen Bing (China, V137C)", MACHINE_UNEMULATED_PROTECTION ) // 天將神兵, fails the bonus round protection check (if enabled via DSW), see e.g. demo mode GAME ( 1998, genius6, 0, genius6, genius6, igs017_state, init_iqblocka, ROT0, "IGS", "Genius 6 (V110F)", 0 ) // shows Chinese text in puzzle game GAME ( 1997, genius6a, genius6, genius6, genius6, igs017_state, init_iqblocka, ROT0, "IGS", "Genius 6 (V133F)", 0 ) // clone because it has older copyright year diff --git a/src/mame/mame.lst b/src/mame/mame.lst index f4c837fc6a2..61e83f6b5e6 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -20542,7 +20542,8 @@ mgcsb mgdh mgdha sdmg2 -sdmg2a +sdmg2754ca +sdmg2754cb sdmg2p slqz2 slqz2a @@ -42619,6 +42620,9 @@ bert @source:skeleton/biorhythm.cpp biorhthm +@source:skeleton/biorhythm_fp.cpp +biortmfp + @source:skeleton/bitgraph.cpp bitgrpha bitgrphb diff --git a/src/mame/skeleton/biorhythm_fp.cpp b/src/mame/skeleton/biorhythm_fp.cpp new file mode 100644 index 00000000000..06569c51f8f --- /dev/null +++ b/src/mame/skeleton/biorhythm_fp.cpp @@ -0,0 +1,128 @@ +// license:BSD-3-Clause +// copyright-holders: + +/* +Biorhythm machine by For-Play + +Two different PCB sets were dumped, with identical ROM contents + +First PCB: + +Etched in copper on main board BIO-RHYTHM LOGIC + FOR-PLAY MADE IN USA REV G + ADJUST FOR 2V ON BLACK + WILL BE LESS THAN 1V ON WHITE + +Etched in copper on CPU board FP 4X-1280 COMPUTER REV A FOR-PLAY + MADE IN USA + +Etched in copper on back of driver board BIO-RHYTHM DRIVER + REV E + FOR-PLAY + MADE IN USA + +Etched in copper on back of little vertical board PHOTOCELL + AUTO + ADJUST + +Second PCB: + +Etched in copper on main board BIO-RHYTHM LOGIC + FOR-PLAY MADE IN USA REV H + +Etched in copper on CPU board FP 4X-1280 COMPUTER REV A FOR-PLAY + MADE IN USA + +Etched in copper on back of driver board BIO-RHYTHM DRIVER + REV E + FOR-PLAY + MADE IN USA + +Main components: +C4004 CPU +P4002-1 RAM +5x P4001 ROM +various TTL chips +*/ + + +#include "emu.h" + +#include "cpu/mcs40/mcs40.h" + +#include "speaker.h" + + +namespace { + +class biorhythm_fp_state : public driver_device +{ +public: + biorhythm_fp_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu") + { + } + + void biortmfp(machine_config &config) ATTR_COLD; + +private: + required_device<cpu_device> m_maincpu; + + void memory_map(address_map &map) ATTR_COLD; + void rom_map(address_map &map) ATTR_COLD; + void status_map(address_map &map) ATTR_COLD; +}; + + +void biorhythm_fp_state::rom_map(address_map &map) +{ + map(0x0000, 0x04ff).rom().region("maincpu", 0x0000); +} + +void biorhythm_fp_state::memory_map(address_map &map) +{ + map(0x0000, 0x003f).ram(); +} + +void biorhythm_fp_state::status_map(address_map &map) +{ + map(0x0000, 0x000f).ram(); +} + + +static INPUT_PORTS_START(biortmfp) + PORT_START("IN0") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) +INPUT_PORTS_END + + +void biorhythm_fp_state::biortmfp(machine_config &config) +{ + i4040_cpu_device &cpu(I4040(config, "maincpu", 750'000)); // clock unknown + cpu.set_rom_map(&biorhythm_fp_state::rom_map); + cpu.set_ram_memory_map(&biorhythm_fp_state::memory_map); + cpu.set_ram_status_map(&biorhythm_fp_state::status_map); +} + + +ROM_START( biortmfp ) + ROM_REGION( 0x500, "maincpu", 0 ) + ROM_LOAD( "p4001_0846.0", 0x000, 0x100, CRC(bd483c96) SHA1(c73ca9446a5da4d78d9a918350db26a3071d2940) ) + ROM_LOAD( "p4001_0848.1", 0x100, 0x100, CRC(9799470a) SHA1(b0ece482b3369cb8907554f509ca1c21424119d9) ) + ROM_LOAD( "p4001_0849.2", 0x200, 0x100, CRC(81bea767) SHA1(b8d413916530bf55333a7bb69eaa9f478e456361) ) + ROM_LOAD( "p4001_0847.3", 0x300, 0x100, CRC(eddf6e11) SHA1(01fac158e330b8c7f6336e9b66eeb20e535dc5b3) ) + ROM_LOAD( "p4001_0850.4", 0x400, 0x100, CRC(6c66b740) SHA1(03013ee965c95d0e08830e3b95532b6430573909) ) +ROM_END + +} // anonymous namespace + + +GAME( 197?, biortmfp, 0, biortmfp, biortmfp, biorhythm_fp_state, empty_init, ROT0, "For-Play", "Biorhythm (For-Play)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) diff --git a/src/mame/skeleton/sartorius.cpp b/src/mame/skeleton/sartorius.cpp index 0e3680302e1..4e54c789db0 100644 --- a/src/mame/skeleton/sartorius.cpp +++ b/src/mame/skeleton/sartorius.cpp @@ -12,7 +12,7 @@ * National Semiconductor MM74C907N hex open-drain P-channel buffer * Intersil IM6561AIJN 256*4 CMOS RAM * RCA CD4007AE dual complementary pair plus inverter - * National Semicondictor CD4049CN hex inverting buffer + * National Semiconductor CD4049CN hex inverting buffer * Intel P4201A clock generator * 4 * Motorola MC14099B 8-bit addressable latch * 2 * RCA CD4052BE 2-channel 4:1 analog switch |