diff options
author | 2019-11-23 23:06:01 +0100 | |
---|---|---|
committer | 2019-11-23 23:06:01 +0100 | |
commit | 3dbf46d0a753a09598260ffb3cedf820dc077ea9 (patch) | |
tree | 9d43749197648e7542e5f06dd1208772fe2d53ba /src | |
parent | 26d21906bb2d4192f55acc0ed0546f4e606865c1 (diff) |
new not working machine
---------------------------------------------
Channel Three [Team Europe, Grull Osgo, Ivan Vangelista]
Diffstat (limited to 'src')
-rw-r--r-- | src/mame/drivers/goldstar.cpp | 79 | ||||
-rw-r--r-- | src/mame/includes/goldstar.h | 1 | ||||
-rw-r--r-- | src/mame/mame.lst | 1 |
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 |