diff options
author | 2019-07-28 04:29:54 +0200 | |
---|---|---|
committer | 2019-07-28 04:29:54 +0200 | |
commit | 0d67ef6cd5e9bb8805434964a648ce5bf4ef6ee3 (patch) | |
tree | 5fc77096e64a0edddee22cbf13e7d83aae8d3f88 | |
parent | 042294d9b0ccd888c341792b20c492f78887b61d (diff) |
Super 21 improvements... [Roberto Fresca, Grull Osgo]
- Change setname from paradiss to super21.
- Change game description to Super 21.
- Added year and manufacturer.
- Descramble the program properly, eliminating the skull warning screen.
- Identified and set the correct CPU.
- Mapped PIAs, CRTC, and AY8910 in the correct offsets.
- Inputs from scratch.
- Mapped both DIP switches banks with their own defaults and diplocations.
- Rearrange the ROM load, graphics banks and gfxdecode.
- Reworked the video hardware since palette system and attr RAM is
quite different from the standard for this kind of hardware.
- Promoted to working.
New working machines
--------------------
Super 21 [Roberto Fresca, Grull Osgo, Team Europe]
-rw-r--r-- | src/mame/drivers/goldnpkr.cpp | 301 | ||||
-rw-r--r-- | src/mame/mame.lst | 2 |
2 files changed, 255 insertions, 48 deletions
diff --git a/src/mame/drivers/goldnpkr.cpp b/src/mame/drivers/goldnpkr.cpp index ade773efb82..b9d92ebab0c 100644 --- a/src/mame/drivers/goldnpkr.cpp +++ b/src/mame/drivers/goldnpkr.cpp @@ -1273,8 +1273,6 @@ #include "emu.h" #include "cpu/m6502/m6502.h" -#include "cpu/m6502/m65sc02.h" -#include "cpu/m6502/r65c02.h" #include "cpu/m6805/m68705.h" #include "cpu/z80/z80.h" #include "machine/6821pia.h" @@ -1325,7 +1323,7 @@ public: void pottnpkr(machine_config &config); void goldnpkr(machine_config &config); void wcrdxtnd(machine_config &config); - void paradiss(machine_config &config); + void super21p(machine_config &config); void init_vkdlswwh(); void init_icp1db(); @@ -1365,6 +1363,7 @@ protected: DECLARE_WRITE8_MEMBER(goldnpkr_colorram_w); void witchcrd_palette(palette_device &palette) const; + void super21p_palette(palette_device &palette) const; void goldnpkr_base(machine_config &config); @@ -1391,8 +1390,10 @@ private: TILE_GET_INFO_MEMBER(get_bg_tile_info); TILE_GET_INFO_MEMBER(wcrdxtnd_get_bg_tile_info); + TILE_GET_INFO_MEMBER(super21p_get_bg_tile_info); void goldnpkr_palette(palette_device &palette) const; DECLARE_VIDEO_START(wcrdxtnd); + DECLARE_VIDEO_START(super21p); void wcrdxtnd_palette(palette_device &palette) const; DECLARE_MACHINE_START(mondial); DECLARE_MACHINE_RESET(mondial); @@ -1409,7 +1410,7 @@ private: void wildcrdb_mcu_map(address_map &map); void witchcrd_falcon_map(address_map &map); void witchcrd_map(address_map &map); - void paradiss_map(address_map &map); + void super21p_map(address_map &map); required_shared_ptr<uint8_t> m_videoram; required_shared_ptr<uint8_t> m_colorram; @@ -1508,16 +1509,56 @@ TILE_GET_INFO_MEMBER(goldnpkr_state::wcrdxtnd_get_bg_tile_info) SET_TILE_INFO_MEMBER(bank, code, color, 0); } +TILE_GET_INFO_MEMBER(goldnpkr_state::super21p_get_bg_tile_info) +{ +/* 4 graphics banks system for Super 21 extended graphics. + + - bits - + 7654 3210 + -xxx ---- tiles color. + x--- --xx tiles bank. +*/ + + int attr = m_colorram[tile_index]; + int code = ((attr & 1) << 8) | m_videoram[tile_index]; + int bank = (attr & 0x03); // bits 0-1, switch the gfx banks + int color = (attr & 0x70) >> 3; // bits 4-5-6 for color, shifted x2 to match the color groups used. + + SET_TILE_INFO_MEMBER(bank, code, color, 0); + +/* + Color codes GFX bank 0 (chars) + + 00 = Black. + 10 = Red. + 20 = Green. + 30 = Yellow. + 40 = Blue. + 50 = Magenta. + 60 = Cyan. + 70 = White. + + In test mode, the DIP switches status are assigned with code 00, + so you can't see them since they are black on black background. + +*/ +} + void goldnpkr_state::video_start() { m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goldnpkr_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } -VIDEO_START_MEMBER(goldnpkr_state,wcrdxtnd) +VIDEO_START_MEMBER(goldnpkr_state, wcrdxtnd) { m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goldnpkr_state::wcrdxtnd_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } +VIDEO_START_MEMBER(goldnpkr_state, super21p) +{ + m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goldnpkr_state::super21p_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); +} + uint32_t goldnpkr_state::screen_update_goldnpkr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); @@ -1641,6 +1682,48 @@ void goldnpkr_state::wcrdxtnd_palette(palette_device &palette) const } } +void goldnpkr_state::super21p_palette(palette_device &palette) const +{ +/* + Each graphics bank has its own palette. The first 3 are tied to + bipolar PROMs, and the las one is RGB direct. + + GFX bank 0 ---> bipolar PROM 1 + GFX bank 1 ---> bipolar PROM 2 + GFX bank 2 ---> bipolar PROM 3 + GFX bank 3 ---> RGB direct. + + 7654 3210 + ---- ---x red component. + ---- --x- green component. + ---- -x-- blue component. + ---- x--- unknown (maybe intensity). + xxxx ---- unused. +*/ + + // 0000?BGR + uint8_t const *const color_prom = memregion("proms")->base(); + if (!color_prom) + return; + + for (int i = 0; i < (palette.entries() * 3) / 4; i++) + { +// last quarter of palette is RGB direct, for gfx bank 3 (title) +// todo: implement bit 3. + + // red component + int const r = BIT(color_prom[i], 0) * 0xff; + + // green component + int const g = BIT(color_prom[i], 1) * 0xff; + + // blue component + int const b = BIT(color_prom[i], 2) * 0xff; + + palette.set_pen_color(i, rgb_t(r, g, b)); + } +} + /******************************************* * R/W Handlers * @@ -1923,7 +2006,6 @@ void goldnpkr_state::witchcrd_falcon_map(address_map &map) void goldnpkr_state::wildcard_map(address_map &map) { -// ADDRESS_MAP_GLOBAL_MASK(0x7fff) map(0x0000, 0x07ff).ram().share("nvram"); /* battery backed RAM */ map(0x0800, 0x0800).w("crtc", FUNC(mc6845_device::address_w)); map(0x0801, 0x0801).rw("crtc", FUNC(mc6845_device::register_r), FUNC(mc6845_device::register_w)); @@ -2041,22 +2123,18 @@ void goldnpkr_state::bchancep_map(address_map &map) map(0x2000, 0x7fff).rom(); } -void goldnpkr_state::paradiss_map(address_map &map) +void goldnpkr_state::super21p_map(address_map &map) { -// ADDRESS_MAP_GLOBAL_MASK(0x7fff) map(0x0000, 0x07ff).ram().share("nvram"); /* battery backed RAM */ map(0x0800, 0x0800).w("crtc", FUNC(mc6845_device::address_w)); map(0x0801, 0x0801).rw("crtc", FUNC(mc6845_device::register_r), FUNC(mc6845_device::register_w)); - map(0x0844, 0x0847).rw("pia0", FUNC(pia6821_device::read), FUNC(pia6821_device::write)); - map(0x0848, 0x084b).rw("pia1", FUNC(pia6821_device::read), FUNC(pia6821_device::write)); - map(0x0884, 0x0887).ram(); // unknown - map(0x0888, 0x088b).ram(); // unknown + map(0x0804, 0x0807).rw("pia0", FUNC(pia6821_device::read), FUNC(pia6821_device::write)); + map(0x0808, 0x080b).rw("pia1", FUNC(pia6821_device::read), FUNC(pia6821_device::write)); map(0x1000, 0x13ff).ram().w(FUNC(goldnpkr_state::goldnpkr_videoram_w)).share("videoram"); map(0x1800, 0x1bff).ram().w(FUNC(goldnpkr_state::goldnpkr_colorram_w)).share("colorram"); - map(0x2000, 0x2000).portr("SW2"); - map(0x2200, 0x27ff).rom(); /* for VK set */ - map(0x2800, 0x2fff).ram(); /* for VK set */ - map(0x3000, 0xffff).rom(); /* for VK set. bootleg starts from 4000 */ + map(0x2000, 0x2000).w("crtc", FUNC(mc6845_device::address_w)); + map(0x2001, 0x2001).rw("crtc", FUNC(mc6845_device::register_r), FUNC(mc6845_device::register_w)); + map(0x8000, 0xffff).rom(); } @@ -4191,6 +4269,99 @@ static INPUT_PORTS_START( bonuspkr ) INPUT_PORTS_END +static INPUT_PORTS_START( super21p ) + /* Multiplexed - 4x5bits */ + PORT_START("IN0-0") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_BET ) PORT_NAME("Bet") + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Meters") + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_D_UP ) PORT_NAME("Double Up") + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_DEAL ) PORT_NAME("Hit") + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_CANCEL ) PORT_NAME("Not Use") + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("IN0-1") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_NAME("Not Use") PORT_CODE(KEYCODE_L) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Key Pay") PORT_CODE(KEYCODE_W) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_TAKE ) PORT_NAME("Take Score") + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_HIGH ) PORT_NAME("Big") + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_LOW ) PORT_NAME("Small") + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("IN0-2") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("IN0-3") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_NAME("Not Use") PORT_CODE(KEYCODE_F) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_NAME("C.A.R.") PORT_CODE(KEYCODE_G) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(3) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(3) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_IMPULSE(3) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("SW1") + PORT_DIPNAME( 0x03, 0x03, "Limit" ) PORT_DIPLOCATION("SW1:8,7") + PORT_DIPSETTING( 0x03, "3000" ) + PORT_DIPSETTING( 0x02, "5000" ) + PORT_DIPSETTING( 0x01, "10000" ) + PORT_DIPSETTING( 0x00, "30000" ) + PORT_DIPNAME( 0x04, 0x04, "4 Of a Kind" ) PORT_DIPLOCATION("SW1:6") + PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPNAME( 0x08, 0x08, "Credit Limit" ) PORT_DIPLOCATION("SW1:5") + PORT_DIPSETTING( 0x08, DEF_STR( Yes ) ) + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPNAME( 0x10, 0x10, "Cr. Limit" ) PORT_DIPLOCATION("SW1:4") + PORT_DIPSETTING( 0x10, DEF_STR( Yes ) ) + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPNAME( 0x20, 0x20, "W. Point" ) PORT_DIPLOCATION("SW1:3") + PORT_DIPSETTING( 0x20, DEF_STR( Yes ) ) + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPNAME( 0x40, 0x40, "Fever Chance" ) PORT_DIPLOCATION("SW1:2") + PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPNAME( 0x80, 0x80, "Game Mode" ) PORT_DIPLOCATION("SW1:1") + PORT_DIPSETTING( 0x80, "Play" ) + PORT_DIPSETTING( 0x00, "Port Check" ) + + PORT_START("SW2") + PORT_DIPNAME( 0x07, 0x07, "Coin1-Coin2-NoteIn" ) PORT_DIPLOCATION("SW2:8,7,6") + PORT_DIPSETTING( 0x07, "10-100-50" ) + PORT_DIPSETTING( 0x06, "5-50-25" ) + PORT_DIPSETTING( 0x05, "4-40-20" ) + PORT_DIPSETTING( 0x04, "3-30-15" ) + PORT_DIPSETTING( 0x03, "2-20-10" ) + PORT_DIPSETTING( 0x02, "1-10-5" ) + PORT_DIPSETTING( 0x01, "1/2 - 6 - 3" ) + PORT_DIPSETTING( 0x00, "1/5 - 2 - 1" ) + PORT_DIPNAME( 0x08, 0x08, "PayOut" ) PORT_DIPLOCATION("SW2:5") + PORT_DIPSETTING( 0x08, "Direct" ) + PORT_DIPSETTING( 0x00, "Credit" ) + PORT_DIPNAME( 0x10, 0x10, "Win-Up Win" ) PORT_DIPLOCATION("SW2:4") + PORT_DIPSETTING( 0x10, "90%" ) + PORT_DIPSETTING( 0x00, "80%" ) + PORT_DIPNAME( 0x20, 0x20, "Duty" ) PORT_DIPLOCATION("SW2:3") + PORT_DIPSETTING( 0x20, "Weak" ) + PORT_DIPSETTING( 0x00, "Strong" ) + PORT_DIPNAME( 0xc0, 0xc0, "Game Win" ) PORT_DIPLOCATION("SW2:2,1") + PORT_DIPSETTING( 0xc0, "90%" ) + PORT_DIPSETTING( 0x80, "80%" ) + PORT_DIPSETTING( 0x40, "70%" ) + PORT_DIPSETTING( 0x00, "60%" ) +INPUT_PORTS_END + /********************************************* * Graphics Layouts * @@ -4207,6 +4378,17 @@ static const gfx_layout tilelayout = 8*8 }; +static const gfx_layout fixedtilelayout = +{ + 8, 8, + 0x100, + 3, + { 0, RGN_FRAC(1,3), RGN_FRAC(2,3) }, + { 0, 1, 2, 3, 4, 5, 6, 7 }, + { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, + 8*8 +}; + /************************************************** * Graphics Decode Information * @@ -4236,10 +4418,11 @@ static GFXDECODE_START( gfx_wcrdxtnd ) GFXDECODE_ENTRY( "gfx15", 0, tilelayout, 0, 16 ) GFXDECODE_END -static GFXDECODE_START( gfx_paradiss ) - GFXDECODE_ENTRY( "gfx1", 0, tilelayout, 0, 16 ) -// GFXDECODE_ENTRY( "gfx1", 0x1000, tilelayout, 0, 16 ) - GFXDECODE_ENTRY( "gfx1", 0x1000, tilelayout, 16, 16 ) +static GFXDECODE_START( gfx_super21p ) + GFXDECODE_ENTRY( "gfx1", 0, fixedtilelayout, 0, 16 ) + GFXDECODE_ENTRY( "gfx2", 0, fixedtilelayout, 0x100, 16 ) + GFXDECODE_ENTRY( "gfx3", 0, fixedtilelayout, 0x200, 16 ) + GFXDECODE_ENTRY( "gfx4", 0, fixedtilelayout, 0x300, 16 ) GFXDECODE_END @@ -4500,13 +4683,12 @@ void goldnpkr_state::wcfalcon(machine_config &config) AY8910(config, m_ay8910, MASTER_CLOCK/4).add_route(ALL_OUTPUTS, "mono", 1.00); /* guess, seems ok */ } -void goldnpkr_state::paradiss(machine_config &config) +void goldnpkr_state::super21p(machine_config &config) { goldnpkr_base(config); /* basic machine hardware */ - R65C02(config.replace(), m_maincpu, CPU_CLOCK); /* 2MHz */ - m_maincpu->set_addrmap(AS_PROGRAM, &goldnpkr_state::paradiss_map); + m_maincpu->set_addrmap(AS_PROGRAM, &goldnpkr_state::super21p_map); m_pia[0]->writepa_handler().set(FUNC(goldnpkr_state::mux_port_w)); m_pia[0]->writepb_handler().set(FUNC(goldnpkr_state::ay8910_control_w)); @@ -4514,12 +4696,16 @@ void goldnpkr_state::paradiss(machine_config &config) m_pia[1]->writepa_handler().set(FUNC(goldnpkr_state::ay8910_data_w)); /* video hardware */ - m_palette->set_init(FUNC(goldnpkr_state::witchcrd_palette)); - m_gfxdecode->set_info(gfx_paradiss); + MCFG_VIDEO_START_OVERRIDE(goldnpkr_state, super21p) + m_gfxdecode->set_info(gfx_super21p); + + PALETTE(config.replace(), m_palette, FUNC(goldnpkr_state::super21p_palette), 1024); /* sound hardware */ SPEAKER(config, "mono").front_center(); - AY8910(config, m_ay8910, MASTER_CLOCK/4).add_route(ALL_OUTPUTS, "mono", 1.00); /* guess, seems ok */ + AY8910(config, m_ay8910, MASTER_CLOCK/4).add_route(ALL_OUTPUTS, "mono", 1.00); // guess, seems ok + m_ay8910->port_a_read_callback().set_ioport("SW1"); + m_ay8910->port_b_read_callback().set_ioport("SW2"); } void goldnpkr_state::wildcard(machine_config &config) @@ -10357,7 +10543,7 @@ ROM_START( falcnwldc ) ROM_LOAD( "3.b4", 0x1800, 0x0800, CRC(d9246780) SHA1(4ceb24131ec6208b742ba80373201aa53c50732d) ) ROM_REGION( 0x1800, "gfx1", 0 ) - ROM_FILL( 0x0000, 0x1000, 0x0000 ) /* filling bitplanes */ + ROM_FILL( 0x0000, 0x1000, 0x0000 ) /* filling bitplanes */ ROM_COPY( "temp", 0x0800, 0x1000, 0x0800 ) /* second half of 1.b1 */ ROM_REGION( 0x1800, "gfx2", 0 ) @@ -11254,14 +11440,15 @@ ROM_END /* - SE Paradise. - Paradais PCB - "SUPN-072" + Super 21. + + ROMs stickered with "SE Paradise". + PCB stickered with "Paradais" and etched "SUPN-072" 1x Scratched CPU (seems 6502 family) 1x GI AY-3-8910. 2x Hitachi HD6821P. - 1x IC CIC8645BE (seems 6845 CRTC type) + 1x IC CIC8645BE (looks like a 6845 CRTC variant) 3x 27256 EPROMs. 3x N82S129AN Bipolar PROMs. @@ -11271,26 +11458,46 @@ ROM_END 1x 10.000 MHz. Xtal. 2x 8 DIP switches bank. + Edge connector adapter from 2x 22+10 ro 2x 32+10, with optoisolators + and one big relay, with unknown purposes. Etched "PS Public Softwear". + */ -ROM_START( paradiss ) +ROM_START( super21p ) ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "13.ic4", 0xc000, 0x2000, CRC(6f414354) SHA1(290e97b876ce7aa9e273fe5f597caaa2e31992a8) ) // ok - ROM_CONTINUE( 0x8000, 0x2000) // to check... - ROM_CONTINUE( 0xe000, 0x2000) // ok - ROM_CONTINUE( 0xa000, 0x2000) // to check... + ROM_LOAD( "13.ic4", 0xa000, 0x2000, CRC(6f414354) SHA1(290e97b876ce7aa9e273fe5f597caaa2e31992a8) ) // ok + ROM_CONTINUE( 0x8000, 0x2000) // ok + ROM_CONTINUE( 0xe000, 0x2000) // ok + ROM_CONTINUE( 0xc000, 0x2000) // ok - ROM_REGION( 0x6000, "gfx1", 0 ) - ROM_LOAD( "1.ic10", 0x0000, 0x4000, CRC(40bb114e) SHA1(be4636455c6dd303255d21799cd17c590d8f1423) ) // identical halves, 2 bitplanes. - ROM_IGNORE( 0x4000) // discarding the 2nd half. - ROM_LOAD( "2.ic9", 0x4000, 0x2000, CRC(51c08823) SHA1(123dab7485cac23ee1d72fd50e4af273c946fc56) ) // identical halves, 1 bitplane. - ROM_IGNORE( 0x6000) // discarding the 2nd half and the unused 0x2000. + ROM_REGION( 0x6000, "gfxpool", 0 ) + ROM_LOAD( "1.ic10", 0x0000, 0x4000, CRC(40bb114e) SHA1(be4636455c6dd303255d21799cd17c590d8f1423) ) // identical halves, 2 bitplanes. + ROM_IGNORE( 0x4000) // discarding the 2nd half. + ROM_LOAD( "2.ic9", 0x4000, 0x2000, CRC(51c08823) SHA1(123dab7485cac23ee1d72fd50e4af273c946fc56) ) // identical halves, 1 bitplane. + ROM_IGNORE( 0x6000) // discarding the 2nd half and the unused 0x2000. - ROM_REGION( 0x6000, "gfx2", 0 ) - ROM_LOAD( "1.ic10", 0x0000, 0x4000, CRC(40bb114e) SHA1(be4636455c6dd303255d21799cd17c590d8f1423) ) // identical halves, 2 bitplanes. - ROM_IGNORE( 0x4000) // discarding the 2nd half. - ROM_LOAD( "2.ic9", 0x4000, 0x2000, CRC(51c08823) SHA1(123dab7485cac23ee1d72fd50e4af273c946fc56) ) // identical halves, 1 bitplane. - ROM_IGNORE( 0x6000) // discarding the 2nd half and the unused 0x2000. + ROM_REGION( 0x1800, "gfx1", 0 ) + ROM_COPY( "gfxpool", 0x0000, 0x1000, 0x0800 ) // src-dest-size + ROM_COPY( "gfxpool", 0x2000, 0x0800, 0x0800 ) // src-dest-size + ROM_COPY( "gfxpool", 0x4000, 0x0000, 0x0800 ) // src-dest-size + + ROM_REGION( 0x1800, "gfx2", 0 ) + ROM_COPY( "gfxpool", 0x0800, 0x1000, 0x0800 ) // src-dest-size + ROM_COPY( "gfxpool", 0x2800, 0x0800, 0x0800 ) // src-dest-size + ROM_COPY( "gfxpool", 0x4800, 0x0000, 0x0800 ) // src-dest-size + + ROM_REGION( 0x1800, "gfx3", 0 ) + ROM_COPY( "gfxpool", 0x1000, 0x1000, 0x0800 ) // src-dest-size + ROM_COPY( "gfxpool", 0x3000, 0x0800, 0x0800 ) // src-dest-size + ROM_COPY( "gfxpool", 0x5000, 0x0000, 0x0800 ) // src-dest-size + + ROM_REGION( 0x1800, "gfx4", 0 ) + ROM_COPY( "gfxpool", 0x1800, 0x1000, 0x0800 ) // src-dest-size + ROM_COPY( "gfxpool", 0x3800, 0x0800, 0x0800 ) // src-dest-size + ROM_COPY( "gfxpool", 0x5800, 0x0000, 0x0800 ) // src-dest-size + +// ROM_FILL( 0x0000, 0x1000, 0x0000 ) /* filling the R-G bitplanes */ +// ROM_FILL( 0x2000, 0x1000, 0x0000 ) /* filling the R-G bitplanes */ ROM_REGION( 0x0300, "proms", 0 ) ROM_LOAD( "82s129_1.ic31", 0x0000, 0x0100, CRC(c3d777b4) SHA1(5a3c0325dcbddde3f8ae2ffbc1cb56cfccda308d) ) @@ -11800,7 +12007,7 @@ GAMEL( 1990, falcnwlda, falcnwld, wildcard, wildcard, goldnpkr_state, empty_init GAMEL( 1990, falcnwldb, falcnwld, wildcard, wildcard, goldnpkr_state, empty_init, ROT0, "Video Klein", "Falcons Wild - World Wide Poker (Video Klein, set 2)", 0, layout_goldnpkr ) GAME( 1983, falcnwldc, falcnwld, wildcrdb, wildcard, goldnpkr_state, init_flcnw, ROT0, "Falcon", "Falcons Wild - World Wide Poker (Falcon original)", MACHINE_NOT_WORKING ) -GAME( 1987, paradiss, 0, paradiss, wildcard, goldnpkr_state, empty_init, ROT0, "Paradise", "Paradise 21", MACHINE_NOT_WORKING ) +GAME( 1987, super21p, 0, super21p, super21p, goldnpkr_state, empty_init, ROT0, "Public MNG", "Super 21", MACHINE_IMPERFECT_COLORS ) GAMEL( 1991, witchcrd, 0, witchcrd, witchcrd, goldnpkr_state, init_vkdlsc, ROT0, "Video Klein?", "Witch Card (Video Klein CPU box, set 1)", 0, layout_goldnpkr ) GAME( 1991, witchcda, witchcrd, witchcrd, witchcda, goldnpkr_state, empty_init, ROT0, "<unknown>", "Witch Card (Spanish, witch game, set 1)", 0 ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 06d148c26ca..898928f50e2 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -14437,7 +14437,6 @@ megadpkrb // (c) 1990 Blitz System Inc ngold // 198? Unknown ngolda // 198? Unknown ngoldb // 198? Unknown -paradiss // 1987 Paradise pmpoker // (c) 1981 PlayMan poker91 // 1991, Unknown pokerdub // 198?, Unknown @@ -14461,6 +14460,7 @@ royalea // Unknown silverga // 1983, Unknown sloco93 // 1993, Unknown sloco93a // 1993, Unknown +super21p // 1987, Public MNG super98 // 199?, Unknown superdbl // 198? Karateco videtrna // Unknown |