mirror of
https://github.com/holub/mame
synced 2025-04-22 16:31:49 +03:00
new clones - Popeye (Japan, Sky Skipper hardware) [ShouTime]
This commit is contained in:
parent
c66cc4cff9
commit
086c14d1b6
@ -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
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -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 );
|
||||
|
@ -30798,6 +30798,7 @@ popeye // (c) 1982
|
||||
popeyebl // bootleg
|
||||
popeyef // (c) 1982
|
||||
popeyeu // (c) 1982
|
||||
popeyej //
|
||||
skyskipr // (c) 1981
|
||||
|
||||
@source:popobear.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;
|
||||
|
Loading…
Reference in New Issue
Block a user