summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author David Haywood <mamehaze@users.noreply.github.com>2016-09-25 15:15:17 +0100
committer David Haywood <mamehaze@users.noreply.github.com>2016-09-25 15:15:17 +0100
commit086c14d1b615b861e9595a637f5cab033295dbb9 (patch)
tree4fb623677405daa4242abd8e1de3afe45691015a
parentc66cc4cff92e8d9aa3823660ec5456ae83f695d2 (diff)
new clones - Popeye (Japan, Sky Skipper hardware) [ShouTime]
-rw-r--r--src/mame/drivers/popeye.cpp105
-rw-r--r--src/mame/includes/popeye.h6
-rw-r--r--src/mame/mame.lst1
-rw-r--r--src/mame/video/popeye.cpp52
4 files changed, 121 insertions, 43 deletions
diff --git a/src/mame/drivers/popeye.cpp b/src/mame/drivers/popeye.cpp
index a702cb7648f..8521c68dc28 100644
--- a/src/mame/drivers/popeye.cpp
+++ b/src/mame/drivers/popeye.cpp
@@ -191,7 +191,7 @@ static ADDRESS_MAP_START( popeyebl_map, AS_PROGRAM, 8, popeye_state )
AM_RANGE(0xa000, 0xa3ff) AM_WRITE(popeye_videoram_w) AM_SHARE("videoram")
AM_RANGE(0xa400, 0xa7ff) AM_WRITE(popeye_colorram_w) AM_SHARE("colorram")
AM_RANGE(0xc000, 0xcfff) AM_WRITE(skyskipr_bitmap_w)
- AM_RANGE(0xe000, 0xe01f) AM_ROM AM_REGION("proms", 0x0240)
+ AM_RANGE(0xe000, 0xe01f) AM_ROM AM_REGION("blprot", 0x00)
ADDRESS_MAP_END
static ADDRESS_MAP_START( popeye_io_map, AS_IO, 8, popeye_state )
@@ -467,7 +467,7 @@ static MACHINE_CONFIG_START( skyskipr, popeye_state )
MCFG_GFXDECODE_ADD("gfxdecode", "palette", popeye)
MCFG_PALETTE_ADD("palette", 16+16*2+64*4)
- MCFG_PALETTE_INIT_OWNER(popeye_state, popeye)
+ MCFG_PALETTE_INIT_OWNER(popeye_state, skyskipr)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -478,6 +478,10 @@ static MACHINE_CONFIG_START( skyskipr, popeye_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
MACHINE_CONFIG_END
+static MACHINE_CONFIG_DERIVED( popeyej, skyskipr )
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_INIT_OWNER(popeye_state,popeye)
+MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( popeye, skyskipr )
MCFG_CPU_MODIFY("maincpu")
@@ -546,12 +550,16 @@ ROM_START( skyskipr )
ROM_LOAD( "tnx1-t.3e", 0x2000, 0x1000, CRC(92b6a0e8) SHA1(d11ff39932cec9b5408dc957bf825dcf1d00c027) )
ROM_LOAD( "tnx1-t.5e", 0x3000, 0x1000, CRC(cc5f0ac3) SHA1(3374b1c387df3a3eba6c523f7c13711260074a89) )
- ROM_REGION( 0x0340, "proms", 0 )
+ ROM_REGION( 0x40, "proms", 0 )
ROM_LOAD( "tnx1-t.4a", 0x0000, 0x0020, CRC(98846924) SHA1(89688d05c4c2d6f389da4e9c0c13e0f022f2d376) ) /* background palette */
ROM_LOAD( "tnx1-t.1a", 0x0020, 0x0020, CRC(c2bca435) SHA1(e7d3e68d153d646eaf12b263d58b07da2615399c) ) /* char palette */
- ROM_LOAD( "tnx1-t.3a", 0x0040, 0x0100, CRC(8abf9de4) SHA1(6e5500639a2dca3c288619fb8bdd120eb49bf8e0) ) /* sprite palette - low 4 bits */
- ROM_LOAD( "tnx1-t.2a", 0x0140, 0x0100, CRC(aa7ff322) SHA1(522d21854aa11e24f3679163354ae4fb35619eff) ) /* sprite palette - high 4 bits */
- ROM_LOAD( "tnx1-t.3j", 0x0240, 0x0100, CRC(1c5c8dea) SHA1(5738303b2a9c79b7d06bcf20fdb4d9b29f6e2d96) ) /* timing for the protection ALU */
+
+ ROM_REGION( 0x0200, "sprpal", 0 )
+ ROM_LOAD( "tnx1-t.3a", 0x0000, 0x0100, CRC(8abf9de4) SHA1(6e5500639a2dca3c288619fb8bdd120eb49bf8e0) ) /* sprite palette - low 4 bits */
+ ROM_LOAD( "tnx1-t.2a", 0x0100, 0x0100, CRC(aa7ff322) SHA1(522d21854aa11e24f3679163354ae4fb35619eff) ) /* sprite palette - high 4 bits */
+
+ ROM_REGION( 0x0100, "prot", 0 )
+ ROM_LOAD( "tnx1-t.3j", 0x0000, 0x0100, CRC(1c5c8dea) SHA1(5738303b2a9c79b7d06bcf20fdb4d9b29f6e2d96) ) /* timing for the protection ALU */
ROM_END
/*
@@ -578,12 +586,16 @@ ROM_START( popeye )
ROM_LOAD( "tpp2-v.1j", 0x4000, 0x2000, CRC(7e864668) SHA1(8e275dbb1c586f4ebca7548db05246ef0f56d7b1) )
ROM_LOAD( "tpp2-v.1k", 0x6000, 0x2000, CRC(49e1d170) SHA1(bd51a4e34ce8109f26954760156e3cf05fb9db57) )
- ROM_REGION( 0x0340, "proms", 0 )
+ ROM_REGION( 0x40, "proms", 0 )
ROM_LOAD( "tpp2-c.4a", 0x0000, 0x0020, CRC(375e1602) SHA1(d84159a0af5db577821c43712bc733329a43af80) ) /* background palette */
ROM_LOAD( "tpp2-c.3a", 0x0020, 0x0020, CRC(e950bea1) SHA1(0b48082fe79d9fcdca7e80caff1725713d0c3163) ) /* char palette */
- ROM_LOAD( "tpp2-c.5b", 0x0040, 0x0100, CRC(c5826883) SHA1(f2c4d3473b3bfa55bffad003dc1fd79540e7e0d1) ) /* sprite palette - low 4 bits */
- ROM_LOAD( "tpp2-c.5a", 0x0140, 0x0100, CRC(c576afba) SHA1(013c8e8db08a03c7ba156cfefa671d26155fe835) ) /* sprite palette - high 4 bits */
- ROM_LOAD( "tpp2-v.7j", 0x0240, 0x0100, CRC(a4655e2e) SHA1(2a620932fccb763c6c667278c0914f31b9f00ddf) ) /* timing for the protection ALU */
+
+ ROM_REGION( 0x0200, "sprpal", 0 )
+ ROM_LOAD( "tpp2-c.5b", 0x0000, 0x0100, CRC(c5826883) SHA1(f2c4d3473b3bfa55bffad003dc1fd79540e7e0d1) ) /* sprite palette - low 4 bits */
+ ROM_LOAD( "tpp2-c.5a", 0x0100, 0x0100, CRC(c576afba) SHA1(013c8e8db08a03c7ba156cfefa671d26155fe835) ) /* sprite palette - high 4 bits */
+
+ ROM_REGION( 0x0100, "prot", 0 )
+ ROM_LOAD( "tpp2-v.7j", 0x0000, 0x0100, CRC(a4655e2e) SHA1(2a620932fccb763c6c667278c0914f31b9f00ddf) ) /* timing for the protection ALU */
ROM_END
ROM_START( popeyeu )
@@ -603,12 +615,16 @@ ROM_START( popeyeu )
ROM_LOAD( "tpp2-v.1j", 0x4000, 0x2000, CRC(7e864668) SHA1(8e275dbb1c586f4ebca7548db05246ef0f56d7b1) )
ROM_LOAD( "tpp2-v.1k", 0x6000, 0x2000, CRC(49e1d170) SHA1(bd51a4e34ce8109f26954760156e3cf05fb9db57) )
- ROM_REGION( 0x0340, "proms", 0 )
+ ROM_REGION( 0x40, "proms", 0 )
ROM_LOAD( "tpp2-c.4a", 0x0000, 0x0020, CRC(375e1602) SHA1(d84159a0af5db577821c43712bc733329a43af80) ) /* background palette */
ROM_LOAD( "tpp2-c.3a", 0x0020, 0x0020, CRC(e950bea1) SHA1(0b48082fe79d9fcdca7e80caff1725713d0c3163) ) /* char palette */
- ROM_LOAD( "tpp2-c.5b", 0x0040, 0x0100, CRC(c5826883) SHA1(f2c4d3473b3bfa55bffad003dc1fd79540e7e0d1) ) /* sprite palette - low 4 bits */
- ROM_LOAD( "tpp2-c.5a", 0x0140, 0x0100, CRC(c576afba) SHA1(013c8e8db08a03c7ba156cfefa671d26155fe835) ) /* sprite palette - high 4 bits */
- ROM_LOAD( "tpp2-v.7j", 0x0240, 0x0100, CRC(a4655e2e) SHA1(2a620932fccb763c6c667278c0914f31b9f00ddf) ) /* timing for the protection ALU */
+
+ ROM_REGION( 0x0200, "sprpal", 0 )
+ ROM_LOAD( "tpp2-c.5b", 0x0000, 0x0100, CRC(c5826883) SHA1(f2c4d3473b3bfa55bffad003dc1fd79540e7e0d1) ) /* sprite palette - low 4 bits */
+ ROM_LOAD( "tpp2-c.5a", 0x0100, 0x0100, CRC(c576afba) SHA1(013c8e8db08a03c7ba156cfefa671d26155fe835) ) /* sprite palette - high 4 bits */
+
+ ROM_REGION( 0x0100, "prot", 0 )
+ ROM_LOAD( "tpp2-v.7j", 0x0000, 0x0100, CRC(a4655e2e) SHA1(2a620932fccb763c6c667278c0914f31b9f00ddf) ) /* timing for the protection ALU */
ROM_END
ROM_START( popeyef )
@@ -628,12 +644,16 @@ ROM_START( popeyef )
ROM_LOAD( "tpp2-v.1j", 0x4000, 0x2000, CRC(7e864668) SHA1(8e275dbb1c586f4ebca7548db05246ef0f56d7b1) )
ROM_LOAD( "tpp2-v.1k", 0x6000, 0x2000, CRC(49e1d170) SHA1(bd51a4e34ce8109f26954760156e3cf05fb9db57) )
- ROM_REGION( 0x0340, "proms", 0 )
+ ROM_REGION( 0x40, "proms", 0 )
ROM_LOAD( "tpp2-c.4a", 0x0000, 0x0020, CRC(375e1602) SHA1(d84159a0af5db577821c43712bc733329a43af80) ) /* background palette */
ROM_LOAD( "tpp2-c.3a", 0x0020, 0x0020, CRC(e950bea1) SHA1(0b48082fe79d9fcdca7e80caff1725713d0c3163) ) /* char palette */
- ROM_LOAD( "tpp2-c.5b", 0x0040, 0x0100, CRC(c5826883) SHA1(f2c4d3473b3bfa55bffad003dc1fd79540e7e0d1) ) /* sprite palette - low 4 bits */
- ROM_LOAD( "tpp2-c.5a", 0x0140, 0x0100, CRC(c576afba) SHA1(013c8e8db08a03c7ba156cfefa671d26155fe835) ) /* sprite palette - high 4 bits */
- ROM_LOAD( "tpp2-v.7j", 0x0240, 0x0100, CRC(a4655e2e) SHA1(2a620932fccb763c6c667278c0914f31b9f00ddf) ) /* timing for the protection ALU */
+
+ ROM_REGION( 0x0200, "sprpal", 0 )
+ ROM_LOAD( "tpp2-c.5b", 0x0000, 0x0100, CRC(c5826883) SHA1(f2c4d3473b3bfa55bffad003dc1fd79540e7e0d1) ) /* sprite palette - low 4 bits */
+ ROM_LOAD( "tpp2-c.5a", 0x0100, 0x0100, CRC(c576afba) SHA1(013c8e8db08a03c7ba156cfefa671d26155fe835) ) /* sprite palette - high 4 bits */
+
+ ROM_REGION( 0x0100, "prot", 0 )
+ ROM_LOAD( "tpp2-v.7j", 0x0000, 0x0100, CRC(a4655e2e) SHA1(2a620932fccb763c6c667278c0914f31b9f00ddf) ) /* timing for the protection ALU */
ROM_END
ROM_START( popeyebl )
@@ -653,14 +673,49 @@ ROM_START( popeyebl )
ROM_LOAD( "v-1j", 0x4000, 0x2000, CRC(7e864668) SHA1(8e275dbb1c586f4ebca7548db05246ef0f56d7b1) )
ROM_LOAD( "v-1k", 0x6000, 0x2000, CRC(49e1d170) SHA1(bd51a4e34ce8109f26954760156e3cf05fb9db57) )
- ROM_REGION( 0x0260, "proms", 0 )
+ ROM_REGION( 0x40, "proms", 0 )
ROM_LOAD( "popeye.pr1", 0x0000, 0x0020, CRC(d138e8a4) SHA1(eba7f870ccab72105593007f5cd7e0b863912402) ) /* background palette */
ROM_LOAD( "popeye.pr2", 0x0020, 0x0020, CRC(0f364007) SHA1(b77d71df391a9ac9e778e84475627e72de2b8507) ) /* char palette */
- ROM_LOAD( "popeye.pr3", 0x0040, 0x0100, CRC(ca4d7b6a) SHA1(ec979fffea9db5a327a5270241e376c21516e343) ) /* sprite palette - low 4 bits */
- ROM_LOAD( "popeye.pr4", 0x0140, 0x0100, CRC(cab9bc53) SHA1(e63ba8856190187996e405f6fcee254c8ca6e81f) ) /* sprite palette - high 4 bits */
- ROM_LOAD( "po_d1-e1.bin", 0x0240, 0x0020, CRC(8de22998) SHA1(e3a232ff85fb207afbe23049a65e828420589342) ) /* protection PROM */
+
+ ROM_REGION( 0x0200, "sprpal", 0 )
+ ROM_LOAD( "popeye.pr3", 0x0000, 0x0100, CRC(ca4d7b6a) SHA1(ec979fffea9db5a327a5270241e376c21516e343) ) /* sprite palette - low 4 bits */
+ ROM_LOAD( "popeye.pr4", 0x0100, 0x0100, CRC(cab9bc53) SHA1(e63ba8856190187996e405f6fcee254c8ca6e81f) ) /* sprite palette - high 4 bits */
+
+ ROM_REGION( 0x0020, "blprot", 0 )
+ ROM_LOAD( "po_d1-e1.bin", 0x0000, 0x0020, CRC(8de22998) SHA1(e3a232ff85fb207afbe23049a65e828420589342) ) /* protection PROM */
ROM_END
+ROM_START( popeyej )
+ ROM_REGION( 0x8000, "maincpu", 0 )
+ ROM_LOAD( "TPP1-C.2A.2732", 0x0000, 0x1000, CRC(4176761e) SHA1(6977da294e88bb2d08ce02901f35c99df69dd6a5) )
+ ROM_LOAD( "TPP1-C.2B.2732", 0x1000, 0x1000, CRC(4e0b7f06) SHA1(02667e297ef2112cf4150c0c18e5715c9010e4ac) )
+ ROM_LOAD( "TPP1-C.2C.2732", 0x2000, 0x1000, CRC(b1c18b7e) SHA1(12a067e2914a9d2051b2507de0673ac4a5198329) )
+ ROM_LOAD( "TPP1-C.2D.2732", 0x3000, 0x1000, CRC(79d0e988) SHA1(7c8ee46918996dab39b417e4361edef259935dbf) )
+ ROM_LOAD( "TPP1-C.2E.2732", 0x4000, 0x1000, CRC(74854ca1) SHA1(9b9e5112e32105a9726fff23162be38b5b9e3f7b) )
+ ROM_LOAD( "TPP1-C.2F.2732", 0x5000, 0x1000, CRC(e2b08891) SHA1(e73b1d355f543772c79e1970426e3e9696b2b23c) )
+ ROM_LOAD( "TPP1-C.2G.2732", 0x6000, 0x1000, CRC(b74a1a97) SHA1(3a51b08f80d378403b1e0df8446057b69157ea9b) )
+ ROM_LOAD( "TPP1-C.2H.2732", 0x7000, 0x1000, CRC(30e84104) SHA1(c781cb47d940e8e5d4f3cb799222db634d99e054) )
+
+ ROM_REGION( 0x0800, "gfx1", 0 )
+ ROM_LOAD( "TPP1-V.3H.2716", 0x0000, 0x0800, CRC(fa52a752) SHA1(45b8f52e4c15f9fe761d7c7f7109b4a70ada0cda) )
+
+ ROM_REGION( 0x8000, "gfx2", 0 )
+ ROM_LOAD( "TPP1-E.1E.2763", 0x0000, 0x2000, CRC(0f2cd853) SHA1(426c9b4f6579bfcebe72b976bfe4f05147d53f96) )
+ ROM_LOAD( "TPP1-E.2E.2763", 0x2000, 0x2000, CRC(888f3474) SHA1(ddee56b2b49bd50aaf9c98d8ef6e905e3f6ab859) )
+ ROM_LOAD( "TPP1-E.3E.2763", 0x4000, 0x2000, CRC(7e864668) SHA1(8e275dbb1c586f4ebca7548db05246ef0f56d7b1) )
+ ROM_LOAD( "TPP1-E.5E.2763", 0x6000, 0x2000, CRC(49e1d170) SHA1(bd51a4e34ce8109f26954760156e3cf05fb9db57) )
+
+ ROM_REGION( 0x40, "proms", 0 )
+ ROM_LOAD( "TPP1-T.4A.82S123", 0x0000, 0x0020, CRC(375e1602) SHA1(d84159a0af5db577821c43712bc733329a43af80) ) /* background palette */
+ ROM_LOAD( "TPP1-T.1A.82S123", 0x0020, 0x0020, CRC(e950bea1) SHA1(0b48082fe79d9fcdca7e80caff1725713d0c3163) ) /* char palette */
+
+ ROM_REGION( 0x0200, "sprpal", 0 )
+ ROM_LOAD( "TPP1-T.3A.82S129", 0x0000, 0x0100, CRC(c5826883) SHA1(f2c4d3473b3bfa55bffad003dc1fd79540e7e0d1) ) /* sprite palette - low 4 bits */
+ ROM_LOAD( "TPP1-T.2A.82S129", 0x0100, 0x0100, CRC(c576afba) SHA1(013c8e8db08a03c7ba156cfefa671d26155fe835) ) /* sprite palette - high 4 bits */
+
+ ROM_REGION( 0x0100, "prot", 0 )
+ ROM_LOAD( "TPP1-T.3J.82S129", 0x0000, 0x0100, CRC(a4655e2e) SHA1(2a620932fccb763c6c667278c0914f31b9f00ddf) ) /* timing for the protection ALU */
+ROM_END
DRIVER_INIT_MEMBER(popeye_state,skyskipr)
@@ -707,3 +762,9 @@ GAME( 1982, popeye, 0, popeye, popeye, popeye_state, popeye, ROT0,
GAME( 1982, popeyeu, popeye, popeye, popeye, popeye_state, popeye, ROT0, "Nintendo", "Popeye (revision D not protected)", MACHINE_SUPPORTS_SAVE )
GAME( 1982, popeyef, popeye, popeye, popeyef, popeye_state, popeye, ROT0, "Nintendo", "Popeye (revision F)", MACHINE_SUPPORTS_SAVE )
GAME( 1982, popeyebl, popeye, popeyebl, popeye, driver_device, 0, ROT0, "bootleg", "Popeye (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, popeyej, popeye, popeyej, popeye, popeye_state, skyskipr, ROT0, "Nintendo", "Popeye (Japan, Sky Skipper hardware)", MACHINE_SUPPORTS_SAVE ) // this is the original Japanese release on the same hardware as Sky Skipper
+
+
+
+
+
diff --git a/src/mame/includes/popeye.h b/src/mame/includes/popeye.h
index f24304dbe3b..e0a9bb310d8 100644
--- a/src/mame/includes/popeye.h
+++ b/src/mame/includes/popeye.h
@@ -11,6 +11,8 @@ public:
m_spriteram(*this, "spriteram"),
m_videoram(*this, "videoram"),
m_colorram(*this, "colorram"),
+ m_color_prom(*this, "proms"),
+ m_color_prom_spr(*this, "sprpal"),
m_maincpu(*this, "maincpu"),
m_gfxdecode(*this, "gfxdecode"),
m_palette(*this, "palette") { }
@@ -24,6 +26,9 @@ public:
required_shared_ptr<UINT8> m_spriteram;
required_shared_ptr<UINT8> m_videoram;
required_shared_ptr<UINT8> m_colorram;
+ required_region_ptr<UINT8> m_color_prom;
+ required_region_ptr<UINT8> m_color_prom_spr;
+
std::unique_ptr<UINT8[]> m_bitmapram;
std::unique_ptr<bitmap_ind16> m_tmpbitmap2;
UINT8 m_invertmask;
@@ -47,6 +52,7 @@ public:
DECLARE_PALETTE_INIT(popeye);
DECLARE_VIDEO_START(popeye);
DECLARE_PALETTE_INIT(popeyebl);
+ DECLARE_PALETTE_INIT(skyskipr);
UINT32 screen_update_popeye(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(popeye_interrupt);
DECLARE_CUSTOM_INPUT_MEMBER( pop_field_r );
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 988ddfd17f8..f1abf3cfc3f 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -30798,6 +30798,7 @@ popeye // (c) 1982
popeyebl // bootleg
popeyef // (c) 1982
popeyeu // (c) 1982
+popeyej //
skyskipr // (c) 1981
@source:popobear.cpp
diff --git a/src/mame/video/popeye.cpp b/src/mame/video/popeye.cpp
index 7b28b8d776a..0b913f32e9e 100644
--- a/src/mame/video/popeye.cpp
+++ b/src/mame/video/popeye.cpp
@@ -159,7 +159,6 @@ void popeye_state::convert_color_prom(const UINT8 *color_prom)
m_palette->set_pen_color(16 + (2 * i) + 1,rgb_t(r,g,b));
}
#endif
- color_prom += 32;
#if USE_NEW_COLOR
/* sprites */
@@ -167,7 +166,7 @@ void popeye_state::convert_color_prom(const UINT8 *color_prom)
UINT8 cpi[512];
for (i=0; i<512; i++)
- cpi[i] = color_prom[i] ^ m_invertmask;
+ cpi[i] = m_color_prom_spr[i] ^ m_invertmask;
compute_res_net_all(rgb, &cpi[0], popeye_7052_decode_info, popeye_7052_obj_net_info);
m_palette->set_pen_colors(48, rgb);
@@ -178,48 +177,64 @@ void popeye_state::convert_color_prom(const UINT8 *color_prom)
/* red component */
- bit0 = ((color_prom[0] ^ m_invertmask) >> 0) & 0x01;
- bit1 = ((color_prom[0] ^ m_invertmask) >> 1) & 0x01;
- bit2 = ((color_prom[0] ^ m_invertmask) >> 2) & 0x01;
+ bit0 = ((m_color_prom_spr[0] ^ m_invertmask) >> 0) & 0x01;
+ bit1 = ((m_color_prom_spr[0] ^ m_invertmask) >> 1) & 0x01;
+ bit2 = ((m_color_prom_spr[0] ^ m_invertmask) >> 2) & 0x01;
r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
/* green component */
- bit0 = ((color_prom[0] ^ m_invertmask) >> 3) & 0x01;
- bit1 = ((color_prom[256] ^ m_invertmask) >> 0) & 0x01;
- bit2 = ((color_prom[256] ^ m_invertmask) >> 1) & 0x01;
+ bit0 = ((m_color_prom_spr[0] ^ m_invertmask) >> 3) & 0x01;
+ bit1 = ((m_color_prom_spr[256] ^ m_invertmask) >> 0) & 0x01;
+ bit2 = ((m_color_prom_spr[256] ^ m_invertmask) >> 1) & 0x01;
g = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
/* blue component */
bit0 = 0;
- bit1 = ((color_prom[256] ^ m_invertmask) >> 2) & 0x01;
- bit2 = ((color_prom[256] ^ m_invertmask) >> 3) & 0x01;
+ bit1 = ((m_color_prom_spr[256] ^ m_invertmask) >> 2) & 0x01;
+ bit2 = ((m_color_prom_spr[256] ^ m_invertmask) >> 3) & 0x01;
b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
m_palette->set_pen_color(48+i,rgb_t(r,g,b));
- color_prom++;
+ m_color_prom_spr++;
}
#endif
}
PALETTE_INIT_MEMBER(popeye_state, popeye)
{
- const UINT8 *color_prom = memregion("proms")->base();
m_invertmask = (USE_NEW_COLOR) ? 0x00 : 0xff;
- convert_color_prom(color_prom);
+ convert_color_prom(m_color_prom);
}
PALETTE_INIT_MEMBER(popeye_state,popeyebl)
{
- const UINT8 *color_prom = memregion("proms")->base();
m_invertmask = (USE_NEW_COLOR) ? 0xff : 0x00;
- convert_color_prom(color_prom);
+ convert_color_prom(m_color_prom);
}
+PALETTE_INIT_MEMBER(popeye_state, skyskipr)
+{
+ /* Two of the PROM address pins are tied together and one is not connected... */
+ for (int i = 0;i < 0x100;i++)
+ {
+ int color = (i & 0x3f) | ((i & 0x20) << 1);
+ m_color_prom_spr[i] = m_color_prom_spr[color];
+ m_color_prom_spr[i+0x100] = m_color_prom_spr[color+0x100];
+ }
+
+ m_invertmask = (USE_NEW_COLOR) ? 0x00 : 0xff;
+
+ convert_color_prom(m_color_prom);
+}
+
+
+
+
void popeye_state::set_background_palette(int bank)
{
int i;
- UINT8 *color_prom = memregion("proms")->base() + 16 * bank;
+ UINT8 *color_prom = m_color_prom + 16 * bank;
#if USE_NEW_COLOR
UINT8 cpi[16];
@@ -440,11 +455,6 @@ void popeye_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
+ ((spriteram[offs + 3] & 0x04) << 6);
color += (*m_palettebank & 0x07) << 3;
- if (m_bitmap_type == TYPE_SKYSKIPR)
- {
- /* Two of the PROM address pins are tied together and one is not connected... */
- color = (color & 0x0f) | ((color & 0x08) << 1);
- }
flipx = spriteram[offs + 2] & 0x80;
flipy = spriteram[offs + 3] & 0x08;