summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2025-04-28 20:05:00 +0200
committer Ivan Vangelista <mesgnet@yahoo.it>2025-04-28 20:05:00 +0200
commit4d8377f3b27fc2e1320da324a2cecf28ada85a88 (patch)
treed39d1de256e54b57bf8ade4f1e8cc32518b9fcfe
parent175b697c749814e871d7203d82b4959300b5a7ed (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.xml7
-rw-r--r--src/mame/igs/igs017.cpp66
-rw-r--r--src/mame/mame.lst6
-rw-r--r--src/mame/skeleton/biorhythm_fp.cpp128
-rw-r--r--src/mame/skeleton/sartorius.cpp2
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