summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2019-11-23 23:06:01 +0100
committer Ivan Vangelista <mesgnet@yahoo.it>2019-11-23 23:06:01 +0100
commit3dbf46d0a753a09598260ffb3cedf820dc077ea9 (patch)
tree9d43749197648e7542e5f06dd1208772fe2d53ba
parent26d21906bb2d4192f55acc0ed0546f4e606865c1 (diff)
new not working machine
--------------------------------------------- Channel Three [Team Europe, Grull Osgo, Ivan Vangelista]
-rw-r--r--src/mame/drivers/goldstar.cpp79
-rw-r--r--src/mame/includes/goldstar.h1
-rw-r--r--src/mame/mame.lst1
3 files changed, 78 insertions, 3 deletions
diff --git a/src/mame/drivers/goldstar.cpp b/src/mame/drivers/goldstar.cpp
index e261767f4de..7c6d35a845b 100644
--- a/src/mame/drivers/goldstar.cpp
+++ b/src/mame/drivers/goldstar.cpp
@@ -189,7 +189,7 @@
This game has similar memory map than Golden Star. The program writes to init
the reels RAM/palette (bp C11A), then transfer the control to PC 253h where
- starts to write to some NVRAM chunks. Unfortunatelly at PC 2DBh there is a call
+ starts to write to some NVRAM chunks. Unfortunately at PC 2DBh there is a call
to 0C33h, where there are only ASCII strings instead of subroutines.
Also there are some other calls to the same range, that also lack of code.
@@ -206,7 +206,7 @@
* Bingo (Wing)
It has a different machine driver to support the different pos of gfx
- layers. I strogly suspect there is a register to adjust the layer position.
+ layers. I strongly suspect there is a register to adjust the layer position.
***************************************************************************/
@@ -10356,6 +10356,42 @@ ROM_START( super7 )
ROM_LOAD( "gal20v8.bin", 0x000, 0x114, NO_DUMP )
ROM_END
+ROM_START( chthree )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "1.u40", 0x0000, 0x8000, CRC(3d677758) SHA1(d2d13e54d3b55460a05b0ca42e12d8a6d72954ba) ) // 1ST AND 2ND HALF IDENTICAL
+ ROM_IGNORE(0x8000)
+
+ ROM_REGION( 0x18000, "gfx1", 0 )
+ ROM_LOAD( "7.u46", 0x00000, 0x8000, CRC(65e2e9e9) SHA1(3085aec35ac6d232fcf9be847ab4fcde586dd4f5) ) // 1ST AND 2ND HALF IDENTICAL
+ ROM_IGNORE(0x8000)
+ ROM_LOAD( "8.u47", 0x08000, 0x8000, CRC(0ec483a9) SHA1(55913f830ee310c2326f50af4527aeb63649e68d) ) // 0xxxxxxxxxxxxxxx = 0xFF
+ ROM_CONTINUE( 0x08000, 0x8000)
+ ROM_LOAD( "9.u48", 0x10000, 0x8000, CRC(39f528f7) SHA1(29d31783afdb256cd9454c87170591d3f9c53665) ) // 1ST AND 2ND HALF IDENTICAL
+ ROM_IGNORE(0x8000)
+
+ ROM_REGION( 0x8000, "gfx2", 0 )
+ ROM_LOAD( "3.u49", 0x0000, 0x2000, CRC(b541cbc0) SHA1(ab8666c06a71fa8364c71d14715ddf9e222064cd) )
+ ROM_LOAD( "4.u50", 0x2000, 0x2000, CRC(95ecd2aa) SHA1(73452c77dd83f96038d197bad5e37f0b3d9de561) )
+ ROM_LOAD( "5.u51", 0x4000, 0x2000, CRC(a99c87ba) SHA1(4d74ded22da25e093b09d0a4abfbd3e1eabd816c) )
+ ROM_LOAD( "6.u52", 0x6000, 0x2000, CRC(5b19025d) SHA1(8e861ed8249811fdf50de8ca9c44fe1176a7e340) )
+
+ ROM_REGION( 0x10000, "user1", 0 )
+ ROM_LOAD( "2.u53", 0x0000, 0x10000, CRC(4124228a) SHA1(d1a6c98cac20ae49daaaa165ac9ccfaca14323b1) )
+
+ ROM_REGION( 0x200, "proms", 0 )
+ ROM_LOAD( "82s129.u23", 0x0000, 0x0100, CRC(fdb15bef) SHA1(68c6539f5c9136e5f822dce86fcf3335e8c3874d) )
+ ROM_LOAD( "82s129.u35", 0x0100, 0x0100, CRC(fd90f7e6) SHA1(6bfa15ab2db8667e28277c9a5cd80ad3d5a0ea4d) )
+
+ ROM_REGION( 0x200, "proms2", 0 )
+ ROM_LOAD( "82s129.u24", 0x0000, 0x0100, CRC(50ec383b) SHA1(ae95b92bd3946b40134bcdc22708d5c6b0f4c23e) )
+
+ ROM_REGION( 0x800, "plds", 0 ) // PALs dumps from a 27c020 adapter are available, need checking / conversion
+ ROM_LOAD( "16l8_u18.bin", 0x0000, 0x117, NO_DUMP )
+ ROM_LOAD( "16l8_u31.bin", 0x0200, 0x117, NO_DUMP )
+ ROM_LOAD( "16l8_u32.bin", 0x0400, 0x117, NO_DUMP )
+ ROM_LOAD( "16l8_u30.bin", 0x0600, 0x117, NO_DUMP )
+ROM_END
+
/*
2764.u10 m4.64 IDENTICAL
27256.u11 m6.256 IDENTICAL
@@ -16917,7 +16953,7 @@ void wingco_state::init_wcat3()
}
// data encryption seems to involve only bits 4, 5 and 7 and some conditional XORs
- for (int i = 0x4000; i < 0x10000; i++)
+ for (int i = 0x4000; i < 0x10000; i++)
{
uint8_t x = rom[i];
@@ -17691,6 +17727,42 @@ void goldstar_state::init_wcherry()
}
}
+void cmaster_state::init_chthree()
+{
+ // Address swapping in 0x10 bytes blocks.
+ // 01234567-89abcdef <> c9ba8dfe - 41320576
+
+ uint8_t *rom = memregion("maincpu")->base();
+
+ for (int i = 0000; i < 0x8000; i++)
+ {
+ uint8_t row = i & 0x07;
+ uint16_t addr;
+
+ switch (row)
+ {
+ case 0x00: addr = 0x0c; break;
+ case 0x01: addr = 0x09; break;
+ case 0x02: addr = 0x0b; break;
+ case 0x03: addr = 0x0a; break;
+ case 0x04: addr = 0x08; break;
+ case 0x05: addr = 0x0d; break;
+ case 0x06: addr = 0x0f; break;
+ case 0x07: addr = 0x0e; break;
+ }
+
+ addr = (i & 0xfff0) | addr;
+
+ if (!BIT(i, 3))
+ std::swap(rom[i], rom[addr]);
+ }
+
+ // Temporary hacks - PPI settings and checksum correction
+ rom[0x1ff] = 0xbd;
+ rom[0x209] = 0x9b;
+ rom[0x20d] = 0x9b;
+}
+
/*
Flaming 7's
Cyberdyne Systems.
@@ -17895,6 +17967,7 @@ GAME( 1999, jkrmasta, jkrmast, pkrmast, pkrmast, goldstar_state, init_jkrma
GAME( 199?, pkrmast, jkrmast, pkrmast, pkrmast, goldstar_state, init_pkrmast, ROT0, "Fun USA", "Poker Master (ED-1993 set 1)", MACHINE_NOT_WORKING ) // needs inputs / dips fixed, puts FUN USA 95H N/G V2.20 in NVRAM
GAME( 1993, pkrmasta, jkrmast, pkrmast, pkrmast, goldstar_state, init_pkrmast, ROT0, "Fun USA", "Poker Master (ED-1993 set 2)", MACHINE_NOT_WORKING ) // needs inputs / dips fixed, puts PM93 JAN 29/1996 V1.52 in NVRAM
+GAME( 199?, chthree, cmaster, cm, cmaster, cmaster_state, init_chthree, ROT0, "Promat", "Channel Three", MACHINE_NOT_WORKING) // GFX scrambled
GAME( 1991, cmast91, 0, cmast91, cmast91, goldstar_state, init_cmast91, ROT0, "Dyna", "Cherry Master '91 (ver.1.30)", 0 )
GAME( 1992, cmast92, 0, cmast91, cmast91, goldstar_state, init_cmast91, ROT0, "Dyna", "Cherry Master '92", MACHINE_NOT_WORKING ) // no gfx roms are dumped
diff --git a/src/mame/includes/goldstar.h b/src/mame/includes/goldstar.h
index 27eef5ae680..7c0c9039956 100644
--- a/src/mame/includes/goldstar.h
+++ b/src/mame/includes/goldstar.h
@@ -181,6 +181,7 @@ public:
void init_rp96sub();
void init_tcl();
void init_super7();
+ void init_chthree();
uint32_t screen_update_amcoe1a(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index d51715f80ae..58367d4e874 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -14776,6 +14776,7 @@ chryangl // (c) 199? Dyna Electronics
chryangla // unknown, W-4 hardware
chrygld // bootleg
chryglda // bootleg
+chthree // 199? Promat
cmast91 // (c) 1991 Dyna Electronics
cmast92 // (c) 1992 Dyna Electronics
cmast97 // (c) 1996 Dyna Electronics