xexex.cpp : Minor cleanup, Add object finder instead runtime tag lookup, Add notes (#3329)

Demote Xexex/Orius with MACHINE_IMPERFECT_GRAPHICS, because it has alpha blending issue.
Add MACHINE_NO_COCKTAIL flag too, because tilemap scroll is wrong when cocktail mode
This commit is contained in:
cam900 2018-03-15 02:59:00 +09:00 committed by Olivier Galibert
parent 8c85589982
commit 4fe45e51cc
2 changed files with 47 additions and 44 deletions

View File

@ -128,6 +128,8 @@ Unresolved Issues:
- the stage 4 boss(tentacles) sometimes appears darker (palette update timing?)
- the furthest layer in stage 5 shakes when scrolling up or down (needs verification)
- Elaine's end-game graphics has wrong masking effect (known non-zoomed pdrawgfx issue)
- intro screen at wrong alpha effect; it has K054157 flag-per-tile for alpha blending?
- Tilemap scroll is wrong at cocktail mode
***************************************************************************/
@ -269,15 +271,16 @@ WRITE16_MEMBER(xexex_state::sound_irq_w)
WRITE8_MEMBER(xexex_state::sound_bankswitch_w)
{
membank("z80bank")->set_entry(data & 0x07);
m_z80bank->set_entry(data & 0x07);
}
K054539_CB_MEMBER(xexex_state::ym_set_mixing)
{
m_filter1l->flt_volume_set_volume((71.0 * left) / 55.0);
m_filter1r->flt_volume_set_volume((71.0 * right) / 55.0);
m_filter2l->flt_volume_set_volume((71.0 * left) / 55.0);
m_filter2r->flt_volume_set_volume((71.0 * right) / 55.0);
for (int out = 0; out < 2; out++)
{
m_filter_l[out]->flt_volume_set_volume((71.0 * left) / 55.0);
m_filter_r[out]->flt_volume_set_volume((71.0 * right) / 55.0);
}
}
TIMER_CALLBACK_MEMBER(xexex_state::dmaend_callback)
@ -431,8 +434,8 @@ void xexex_state::xexex_postload()
void xexex_state::machine_start()
{
membank("z80bank")->configure_entries(0, 8, memregion("audiocpu")->base(), 0x4000);
membank("z80bank")->set_entry(0);
m_z80bank->configure_entries(0, 8, memregion("audiocpu")->base(), 0x4000);
m_z80bank->set_entry(0);
save_item(NAME(m_cur_alpha));
save_item(NAME(m_sprite_colorbase));
@ -520,10 +523,10 @@ MACHINE_CONFIG_START(xexex_state::xexex)
MCFG_K054321_ADD("k054321", ":lspeaker", ":rspeaker")
MCFG_YM2151_ADD("ymsnd", XTAL(32'000'000)/8) // 4MHz
MCFG_SOUND_ROUTE(0, "filter1l", 0.50)
MCFG_SOUND_ROUTE(0, "filter1r", 0.50)
MCFG_SOUND_ROUTE(1, "filter2l", 0.50)
MCFG_SOUND_ROUTE(1, "filter2r", 0.50)
MCFG_SOUND_ROUTE(0, "filter1_l", 0.50)
MCFG_SOUND_ROUTE(0, "filter1_r", 0.50)
MCFG_SOUND_ROUTE(1, "filter2_l", 0.50)
MCFG_SOUND_ROUTE(1, "filter2_r", 0.50)
MCFG_DEVICE_ADD("k054539", K054539, XTAL(18'432'000))
MCFG_K054539_APAN_CB(xexex_state, ym_set_mixing)
@ -532,13 +535,13 @@ MACHINE_CONFIG_START(xexex_state::xexex)
MCFG_SOUND_ROUTE(1, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
MCFG_FILTER_VOLUME_ADD("filter1l", 0)
MCFG_FILTER_VOLUME_ADD("filter1_l", 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
MCFG_FILTER_VOLUME_ADD("filter1r", 0)
MCFG_FILTER_VOLUME_ADD("filter1_r", 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
MCFG_FILTER_VOLUME_ADD("filter2l", 0)
MCFG_FILTER_VOLUME_ADD("filter2_l", 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
MCFG_FILTER_VOLUME_ADD("filter2r", 0)
MCFG_FILTER_VOLUME_ADD("filter2_r", 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
MACHINE_CONFIG_END
@ -574,8 +577,6 @@ ROM_START( xexex ) /* Europe, Version AA */
ROM_LOAD( "er5911.19b", 0x0000, 0x0080, CRC(155624cc) SHA1(457f921e3a5d053c53e4f1a44941eb0a1f22e1b2) )
ROM_END
ROM_START( orius ) /* USA, Version AA */
ROM_REGION( 0x180000, "maincpu", 0 )
ROM_LOAD16_BYTE( "067uaa01.16d", 0x000000, 0x040000, CRC(f1263d3e) SHA1(c8a10b90e754ec7a72a23ac85b888f071ca40bb1) )
@ -683,7 +684,7 @@ DRIVER_INIT_MEMBER(xexex_state,xexex)
}
}
GAME( 1991, xexex, 0, xexex, xexex, xexex_state, xexex, ROT0, "Konami", "Xexex (ver EAA)", MACHINE_SUPPORTS_SAVE )
GAME( 1991, orius, xexex, xexex, xexex, xexex_state, xexex, ROT0, "Konami", "Orius (ver UAA)", MACHINE_SUPPORTS_SAVE )
GAME( 1991, xexexa, xexex, xexex, xexex, xexex_state, xexex, ROT0, "Konami", "Xexex (ver AAA)", MACHINE_SUPPORTS_SAVE )
GAME( 1991, xexexj, xexex, xexex, xexex, xexex_state, xexex, ROT0, "Konami", "Xexex (ver JAA)", MACHINE_SUPPORTS_SAVE )
GAME( 1991, xexex, 0, xexex, xexex, xexex_state, xexex, ROT0, "Konami", "Xexex (ver EAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
GAME( 1991, orius, xexex, xexex, xexex, xexex_state, xexex, ROT0, "Konami", "Orius (ver UAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
GAME( 1991, xexexa, xexex, xexex, xexex, xexex_state, xexex, ROT0, "Konami", "Xexex (ver AAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
GAME( 1991, xexexj, xexex, xexex, xexex, xexex_state, xexex, ROT0, "Konami", "Xexex (ver JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )

View File

@ -23,30 +23,34 @@ class xexex_state : public driver_device
{
public:
xexex_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_workram(*this, "workram"),
m_spriteram(*this, "spriteram"),
m_maincpu(*this, "maincpu"),
m_audiocpu(*this, "audiocpu"),
m_k054539(*this, "k054539"),
m_filter1l(*this, "filter1l"),
m_filter1r(*this, "filter1r"),
m_filter2l(*this, "filter2l"),
m_filter2r(*this, "filter2r"),
m_k056832(*this, "k056832"),
m_k053246(*this, "k053246"),
m_k053250(*this, "k053250"),
m_k053251(*this, "k053251"),
m_k053252(*this, "k053252"),
m_k054338(*this, "k054338"),
m_palette(*this, "palette"),
m_screen(*this, "screen"),
m_k054321(*this, "k054321") { }
: driver_device(mconfig, type, tag)
, m_workram(*this, "workram")
, m_spriteram(*this, "spriteram")
, m_z80bank(*this, "z80bank")
, m_maincpu(*this, "maincpu")
, m_audiocpu(*this, "audiocpu")
, m_k054539(*this, "k054539")
, m_filter_l(*this, "filter%u_l", 1)
, m_filter_r(*this, "filter%u_r", 1)
, m_k056832(*this, "k056832")
, m_k053246(*this, "k053246")
, m_k053250(*this, "k053250")
, m_k053251(*this, "k053251")
, m_k053252(*this, "k053252")
, m_k054338(*this, "k054338")
, m_palette(*this, "palette")
, m_screen(*this, "screen")
, m_k054321(*this, "k054321")
{
}
/* memory pointers */
required_shared_ptr<uint16_t> m_workram;
required_shared_ptr<uint16_t> m_spriteram;
/* memory regions */
required_memory_bank m_z80bank;
/* video-related */
int m_layer_colorbase[4];
int m_sprite_colorbase;
@ -65,10 +69,8 @@ public:
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_audiocpu;
required_device<k054539_device> m_k054539;
required_device<filter_volume_device> m_filter1l;
required_device<filter_volume_device> m_filter1r;
required_device<filter_volume_device> m_filter2l;
required_device<filter_volume_device> m_filter2r;
required_device_array<filter_volume_device, 2> m_filter_l;
required_device_array<filter_volume_device, 2> m_filter_r;
required_device<k056832_device> m_k056832;
required_device<k053247_device> m_k053246;
required_device<k053250_device> m_k053250;