mirror of
https://github.com/holub/mame
synced 2025-06-30 07:58:56 +03:00
nmk16 : Cleanup duplicates, Update documents (#3227)
* nmk16 : Cleanup duplicates, Update documents vandykeb : Verified OKI Bankswitching, Correct OKI clock atombjt : Verified OKI Bankswitching * nmk16 : Build fixes
This commit is contained in:
parent
511aa0aac7
commit
1915a475cc
@ -3,31 +3,33 @@
|
||||
// thanks-to:Richard Bush
|
||||
/********************************************************************
|
||||
|
||||
Task Force Harrier 1989 UPL 68000 Z80 YM2203 2xOKIM6295
|
||||
Many Block 1991 Bee-Oh 68000 Z80 YM2203 2xOKIM6295
|
||||
Mustang 1990 UPL 68000 NMK004 YM2203 2xOKIM6295
|
||||
Bio-ship Paladin 1990 UPL 68000 NMK004 YM2203 2xOKIM6295
|
||||
Vandyke 1990 UPL 68000 NMK004 YM2203 2xOKIM6295
|
||||
Black Heart 1991 UPL 68000 NMK004 YM2203 2xOKIM6295
|
||||
Acrobat Mission 1991 UPL 68000 NMK004 YM2203 2xOKIM6295
|
||||
Strahl 1992 UPL 68000 NMK004 YM2203 2xOKIM6295
|
||||
Thunder Dragon 1991 NMK/Tecmo 68000 NMK004 YM2203 2xOKIM6295
|
||||
Hacha Mecha Fighter 1991 NMK 68000 NMK004 YM2203 2xOKIM6295
|
||||
Macross 1992 Banpresto 68000 NMK004 YM2203 2xOKIM6295
|
||||
GunNail 1993 NMK/Tecmo 68000 NMK004 YM2203 2xOKIM6295
|
||||
Macross II 1993 Banpresto 68000 Z80 YM2203 2xOKIM6295
|
||||
Thunder Dragon 2 1993 NMK 68000 Z80 YM2203 2xOKIM6295
|
||||
Arcadia / Rapid Hero 1994 NMK 68000 tmp90c841 YM2203 2xOKIM6295
|
||||
Task Force Harrier 1989 UPL 68000 Z80 YM2203 2xOKIM6295
|
||||
Many Block 1991 Bee-Oh 68000 Z80 YM2203 2xOKIM6295
|
||||
Mustang 1990 UPL 68000 NMK004 YM2203 2xOKIM6295
|
||||
Bio-ship Paladin 1990 UPL 68000 NMK004 YM2203 2xOKIM6295
|
||||
Vandyke 1990 UPL 68000 NMK004 YM2203 2xOKIM6295
|
||||
Black Heart 1991 UPL 68000 NMK004 YM2203 2xOKIM6295
|
||||
Acrobat Mission 1991 UPL 68000 NMK004 YM2203 2xOKIM6295
|
||||
Strahl 1992 UPL 68000 NMK004 YM2203 2xOKIM6295
|
||||
Thunder Dragon 1991 NMK/Tecmo 68000 NMK004 YM2203 2xOKIM6295
|
||||
Hacha Mecha Fighter 1991 NMK 68000 NMK004 YM2203 2xOKIM6295
|
||||
Macross 1992 Banpresto 68000 NMK004 YM2203 2xOKIM6295
|
||||
GunNail 1993 NMK/Tecmo 68000 NMK004 YM2203 2xOKIM6295
|
||||
Macross II 1993 Banpresto 68000 Z80 YM2203 2xOKIM6295
|
||||
Thunder Dragon 2 1993 NMK 68000 Z80 YM2203 2xOKIM6295
|
||||
Arcadia / Rapid Hero 1994 NMK 68000 tmp90c841 YM2203 2xOKIM6295
|
||||
|
||||
S.S. Mission 1992 Comad 68000 Z80 OKIM6295 (hack of Thunder Dragon)
|
||||
Air Attack 1996 Comad 68000 Z80 OKIM6295 (hack of Thunder Dragon)
|
||||
S.S. Mission 1992 Comad 68000 Z80 OKIM6295 (hack of Thunder Dragon)
|
||||
Air Attack 1996 Comad 68000 Z80 OKIM6295 (hack of Thunder Dragon)
|
||||
|
||||
Mustang (bootleg) 68000 Z80 YM3812 OKIM6295
|
||||
Thunder Dragon (bootleg) 68000 Z80 YM3812 OKIM6295
|
||||
Mustang (bootleg) 68000 Z80 YM3812 OKIM6295
|
||||
Thunder Dragon (bootleg) 68000 Z80 YM3812 OKIM6295
|
||||
|
||||
Saboten Bombers 1992 NMK/Tecmo 68000 2xOKIM6295
|
||||
Bombjack Twin 1993 NMK 68000 2xOKIM6295
|
||||
Nouryoku Koujou Iinkai 1995 Tecmo 68000 2xOKIM6295
|
||||
Thunder Dragon 3 (bootleg) 1996 Conny 68000 Z80 (Unknown, Single OKIM6295 identified)
|
||||
|
||||
Saboten Bombers 1992 NMK/Tecmo 68000 2xOKIM6295
|
||||
Bombjack Twin 1993 NMK 68000 2xOKIM6295
|
||||
Nouryoku Koujou Iinkai 1995 Tecmo 68000 2xOKIM6295
|
||||
|
||||
driver by Mirko Buffoni, Richard Bush, Nicola Salmoria, Bryan McPhail,
|
||||
David Haywood, R. Belmont, Alex Marshal and Luca Elia.
|
||||
@ -65,6 +67,9 @@ TODO:
|
||||
it doesn't matter if this is drawn with the TX layer (some sets) or the sprites (others)
|
||||
so it's probably something else funky with the memory access.
|
||||
|
||||
- Thunder Dragon 3 (bootleg of Thunder Dragon 2) :
|
||||
Sound System isn't hooked up correctly for this set.
|
||||
|
||||
NOT BUGS:
|
||||
- Hacha Mecha Fighter: (BTANB) the bomb graphics are pretty weird when the game
|
||||
is in japanese mode, but it's like this on the original game.
|
||||
@ -222,20 +227,9 @@ WRITE16_MEMBER(nmk16_state::nmk16_mainram_strange_w)
|
||||
}
|
||||
|
||||
|
||||
WRITE16_MEMBER(nmk16_state::ssmissin_sound_w)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
m_soundlatch->write(space, 0, data & 0xff);
|
||||
m_audiocpu->set_input_line(0, HOLD_LINE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
WRITE8_MEMBER(nmk16_state::ssmissin_soundbank_w)
|
||||
{
|
||||
membank("okibank1")->set_entry(data & 0x3);
|
||||
m_okibank[0]->set_entry(data & 0x3);
|
||||
}
|
||||
|
||||
|
||||
@ -285,40 +279,45 @@ WRITE16_MEMBER(nmk16_state::macross2_sound_reset_w)
|
||||
m_audiocpu->set_input_line(INPUT_LINE_RESET, data ? CLEAR_LINE : ASSERT_LINE);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(nmk16_state::macross2_sound_command_w)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
m_soundlatch->write(space,0,data & 0xff);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(nmk16_state::macross2_sound_bank_w)
|
||||
{
|
||||
membank("bank1")->set_entry(data & 0x07);
|
||||
m_audiobank->set_entry(data & 0x07);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(nmk16_state::tharrier_oki6295_bankswitch_0_w)
|
||||
template<int Chip>
|
||||
WRITE8_MEMBER(nmk16_state::tharrier_oki6295_bankswitch_w)
|
||||
{
|
||||
data &= 3;
|
||||
if (data != 3)
|
||||
membank("okibank1")->set_entry(data);
|
||||
m_okibank[Chip]->set_entry(data);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(nmk16_state::tharrier_oki6295_bankswitch_1_w)
|
||||
/***************************************************************************
|
||||
|
||||
VRAM handlers
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
template<int Bank>
|
||||
WRITE16_MEMBER(nmk16_state::nmk_bgvideoram_w)
|
||||
{
|
||||
data &= 3;
|
||||
if (data != 3)
|
||||
membank("okibank2")->set_entry(data);
|
||||
COMBINE_DATA(&m_nmk_bgvideoram[Bank][offset]);
|
||||
m_bg_tilemap[Bank]->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(nmk16_state::afega_soundlatch_w)
|
||||
WRITE16_MEMBER(nmk16_state::nmk_fgvideoram_w)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
m_soundlatch->write(space, 0, data&0xff);
|
||||
m_audiocpu->set_input_line(0, HOLD_LINE);
|
||||
}
|
||||
COMBINE_DATA(&m_nmk_fgvideoram[offset]);
|
||||
m_fg_tilemap->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(nmk16_state::nmk_txvideoram_w)
|
||||
{
|
||||
COMBINE_DATA(&m_nmk_txvideoram[offset]);
|
||||
m_tx_tilemap->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************/
|
||||
|
||||
ADDRESS_MAP_START(nmk16_state::vandyke_map)
|
||||
@ -333,7 +332,7 @@ ADDRESS_MAP_START(nmk16_state::vandyke_map)
|
||||
AM_RANGE(0x08001e, 0x08001f) AM_DEVWRITE8("nmk004", nmk004_device, write, 0x00ff)
|
||||
AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
|
||||
AM_RANGE(0x08c000, 0x08c007) AM_WRITE(vandyke_scroll_w)
|
||||
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0")
|
||||
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram_w<0>) AM_SHARE("nmk_bgvideoram0")
|
||||
AM_RANGE(0x094000, 0x097fff) AM_RAM /* what is this? */
|
||||
AM_RANGE(0x09d000, 0x09d7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram")
|
||||
AM_RANGE(0x0f0000, 0x0fffff) AM_RAM AM_SHARE("mainram")
|
||||
@ -352,7 +351,7 @@ ADDRESS_MAP_START(nmk16_state::vandykeb_map)
|
||||
// AM_RANGE(0x08001e, 0x08001f) AM_DEVWRITE8("nmk004", nmk004_device, write, 0x00ff)
|
||||
AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
|
||||
AM_RANGE(0x08c000, 0x08c007) AM_WRITENOP /* just in case... */
|
||||
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0")
|
||||
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram_w<0>) AM_SHARE("nmk_bgvideoram0")
|
||||
AM_RANGE(0x094000, 0x097fff) AM_RAM /* what is this? */
|
||||
AM_RANGE(0x09d000, 0x09d7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram")
|
||||
AM_RANGE(0x0f0000, 0x0fffff) AM_RAM AM_SHARE("mainram")
|
||||
@ -369,7 +368,7 @@ ADDRESS_MAP_START(nmk16_state::manybloc_map)
|
||||
AM_RANGE(0x08001c, 0x08001d) AM_WRITENOP /* See notes at the top of the driver */
|
||||
AM_RANGE(0x08001e, 0x08001f) AM_DEVREAD8("soundlatch2", generic_latch_8_device, read, 0x00ff) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0x00ff)
|
||||
AM_RANGE(0x088000, 0x0883ff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
|
||||
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0")
|
||||
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram_w<0>) AM_SHARE("nmk_bgvideoram0")
|
||||
AM_RANGE(0x09c000, 0x09cfff) AM_RAM_WRITE(manybloc_scroll_w) AM_SHARE("scrollram")
|
||||
AM_RANGE(0x09d000, 0x09d7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram")
|
||||
AM_RANGE(0x0f0000, 0x0fffff) AM_RAM AM_SHARE("mainram")
|
||||
@ -389,7 +388,7 @@ ADDRESS_MAP_START(nmk16_state::tharrier_map)
|
||||
AM_RANGE(0x080202, 0x080203) AM_READ_PORT("IN2")
|
||||
AM_RANGE(0x088000, 0x0883ff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
|
||||
// AM_RANGE(0x08c000, 0x08c007) AM_WRITE(nmk_scroll_w)
|
||||
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0")
|
||||
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram_w<0>) AM_SHARE("nmk_bgvideoram0")
|
||||
AM_RANGE(0x09c000, 0x09c7ff) AM_RAM /* Unused txvideoram area? */
|
||||
AM_RANGE(0x09d000, 0x09d7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram")
|
||||
AM_RANGE(0x0f0000, 0x0fffff) AM_RAM_WRITE(nmk16_mainram_strange_w) AM_SHARE("mainram")
|
||||
@ -401,8 +400,8 @@ ADDRESS_MAP_START(nmk16_state::tharrier_sound_map)
|
||||
AM_RANGE(0xf000, 0xf000) AM_DEVREAD("soundlatch", generic_latch_8_device, read) AM_DEVWRITE("soundlatch2", generic_latch_8_device, write)
|
||||
AM_RANGE(0xf400, 0xf400) AM_DEVREADWRITE("oki1", okim6295_device, read, write)
|
||||
AM_RANGE(0xf500, 0xf500) AM_DEVREADWRITE("oki2", okim6295_device, read, write)
|
||||
AM_RANGE(0xf600, 0xf600) AM_WRITE(tharrier_oki6295_bankswitch_0_w)
|
||||
AM_RANGE(0xf700, 0xf700) AM_WRITE(tharrier_oki6295_bankswitch_1_w)
|
||||
AM_RANGE(0xf600, 0xf600) AM_WRITE(tharrier_oki6295_bankswitch_w<0>)
|
||||
AM_RANGE(0xf700, 0xf700) AM_WRITE(tharrier_oki6295_bankswitch_w<1>)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
ADDRESS_MAP_START(nmk16_state::tharrier_sound_io_map)
|
||||
@ -425,7 +424,7 @@ ADDRESS_MAP_START(nmk16_state::mustang_map)
|
||||
AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
|
||||
AM_RANGE(0x08c000, 0x08c001) AM_WRITE(mustang_scroll_w)
|
||||
AM_RANGE(0x08c002, 0x08c087) AM_WRITENOP // ??
|
||||
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0")
|
||||
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram_w<0>) AM_SHARE("nmk_bgvideoram0")
|
||||
AM_RANGE(0x09c000, 0x09c7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram")
|
||||
AM_RANGE(0x0f0000, 0x0fffff) AM_RAM_WRITE(nmk16_mainram_strange_w) AM_SHARE("mainram")
|
||||
ADDRESS_MAP_END
|
||||
@ -442,7 +441,7 @@ ADDRESS_MAP_START(nmk16_state::mustangb_map)
|
||||
AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
|
||||
AM_RANGE(0x08c000, 0x08c001) AM_WRITE(mustang_scroll_w)
|
||||
AM_RANGE(0x08c002, 0x08c087) AM_WRITENOP // ??
|
||||
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0")
|
||||
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram_w<0>) AM_SHARE("nmk_bgvideoram0")
|
||||
AM_RANGE(0x09c000, 0x09c7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram")
|
||||
AM_RANGE(0x0f0000, 0x0fffff) AM_RAM_WRITE(nmk16_mainram_strange_w) AM_SHARE("mainram")
|
||||
ADDRESS_MAP_END
|
||||
@ -456,11 +455,11 @@ ADDRESS_MAP_START(nmk16_state::twinactn_map)
|
||||
AM_RANGE(0x08000e, 0x08000f) AM_NOP
|
||||
AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w)
|
||||
AM_RANGE(0x080016, 0x080017) AM_WRITENOP // frame number?
|
||||
AM_RANGE(0x08001e, 0x08001f) AM_WRITE(afega_soundlatch_w)
|
||||
AM_RANGE(0x08001e, 0x08001f) AM_DEVWRITE("soundlatch", generic_latch_8_device, write, 0x00ff)
|
||||
AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
|
||||
AM_RANGE(0x08c000, 0x08c001) AM_WRITE(mustang_scroll_w)
|
||||
AM_RANGE(0x08c002, 0x08c087) AM_WRITENOP // ??
|
||||
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0")
|
||||
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram_w<0>) AM_SHARE("nmk_bgvideoram0")
|
||||
AM_RANGE(0x09c000, 0x09c7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram")
|
||||
AM_RANGE(0x0f0000, 0x0fffff) AM_RAM_WRITE(nmk16_mainram_strange_w) AM_SHARE("mainram")
|
||||
ADDRESS_MAP_END
|
||||
@ -480,7 +479,7 @@ ADDRESS_MAP_START(nmk16_state::acrobatm_map)
|
||||
AM_RANGE(0xc001e, 0xc001f) AM_DEVWRITE8("nmk004", nmk004_device, write, 0x00ff)
|
||||
AM_RANGE(0xc4000, 0xc45ff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
|
||||
AM_RANGE(0xc8000, 0xc8007) AM_RAM_WRITE(nmk_scroll_w)
|
||||
AM_RANGE(0xcc000, 0xcffff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0")
|
||||
AM_RANGE(0xcc000, 0xcffff) AM_RAM_WRITE(nmk_bgvideoram_w<0>) AM_SHARE("nmk_bgvideoram0")
|
||||
AM_RANGE(0xd4000, 0xd47ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -498,7 +497,7 @@ ADDRESS_MAP_START(nmk16_state::bioship_map)
|
||||
AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
|
||||
AM_RANGE(0x08c000, 0x08c007) AM_RAM_WRITE(bioshipbg_scroll_w)
|
||||
AM_RANGE(0x08c010, 0x08c017) AM_RAM_WRITE(bioship_scroll_w)
|
||||
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0")
|
||||
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram_w<0>) AM_SHARE("nmk_bgvideoram0")
|
||||
AM_RANGE(0x09c000, 0x09c7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram")
|
||||
AM_RANGE(0x0f0000, 0x0fffff) AM_RAM AM_SHARE("mainram")
|
||||
ADDRESS_MAP_END
|
||||
@ -677,7 +676,7 @@ ADDRESS_MAP_START(nmk16_state::hachamf_map)
|
||||
/* Video Region */
|
||||
AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
|
||||
AM_RANGE(0x08c000, 0x08c007) AM_WRITE(nmk_scroll_w)
|
||||
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0")
|
||||
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram_w<0>) AM_SHARE("nmk_bgvideoram0")
|
||||
AM_RANGE(0x09c000, 0x09c7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram")
|
||||
/* Main RAM, inc sprites, shared with MCU */
|
||||
AM_RANGE(0x0f0000, 0x0fffff) AM_RAM AM_SHARE("mainram") // ram is shared with MCU
|
||||
@ -909,7 +908,7 @@ ADDRESS_MAP_START(nmk16_state::tdragon_map)
|
||||
AM_RANGE(0x0c001e, 0x0c001f) AM_DEVWRITE8("nmk004", nmk004_device, write, 0x00ff)
|
||||
AM_RANGE(0x0c4000, 0x0c4007) AM_RAM_WRITE(nmk_scroll_w)
|
||||
AM_RANGE(0x0c8000, 0x0c87ff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
|
||||
AM_RANGE(0x0cc000, 0x0cffff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0")
|
||||
AM_RANGE(0x0cc000, 0x0cffff) AM_RAM_WRITE(nmk_bgvideoram_w<0>) AM_SHARE("nmk_bgvideoram0")
|
||||
AM_RANGE(0x0d0000, 0x0d07ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -932,7 +931,7 @@ ADDRESS_MAP_START(nmk16_state::tdragonb_map)
|
||||
AM_RANGE(0x0c001e, 0x0c001f) AM_DEVWRITE("seibu_sound", seibu_sound_device, main_mustb_w)
|
||||
AM_RANGE(0x0c4000, 0x0c4007) AM_RAM_WRITE(nmk_scroll_w)
|
||||
AM_RANGE(0x0c8000, 0x0c87ff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
|
||||
AM_RANGE(0x0cc000, 0x0cffff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0")
|
||||
AM_RANGE(0x0cc000, 0x0cffff) AM_RAM_WRITE(nmk_bgvideoram_w<0>) AM_SHARE("nmk_bgvideoram0")
|
||||
AM_RANGE(0x0d0000, 0x0d07ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -945,10 +944,10 @@ ADDRESS_MAP_START(nmk16_state::ssmissin_map)
|
||||
// AM_RANGE(0x0c000e, 0x0c000f) AM_READ(??)
|
||||
AM_RANGE(0x0c0014, 0x0c0015) AM_WRITE(nmk_flipscreen_w) /* Maybe */
|
||||
AM_RANGE(0x0c0018, 0x0c0019) AM_WRITE(nmk_tilebank_w) /* Tile Bank ? */
|
||||
AM_RANGE(0x0c001e, 0x0c001f) AM_WRITE(ssmissin_sound_w)
|
||||
AM_RANGE(0x0c001e, 0x0c001f) AM_DEVWRITE("soundlatch", generic_latch_8_device, write, 0x00ff)
|
||||
AM_RANGE(0x0c4000, 0x0c4007) AM_RAM_WRITE(nmk_scroll_w)
|
||||
AM_RANGE(0x0c8000, 0x0c87ff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
|
||||
AM_RANGE(0x0cc000, 0x0cffff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0")
|
||||
AM_RANGE(0x0cc000, 0x0cffff) AM_RAM_WRITE(nmk_bgvideoram_w<0>) AM_SHARE("nmk_bgvideoram0")
|
||||
AM_RANGE(0x0d0000, 0x0d07ff) AM_MIRROR(0x1800) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram") //mirror for airattck
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -983,7 +982,7 @@ ADDRESS_MAP_START(nmk16_state::strahl_map)
|
||||
AM_RANGE(0x84000, 0x84007) AM_RAM_WRITE(nmk_scroll_w)
|
||||
AM_RANGE(0x88000, 0x88007) AM_RAM_WRITE(nmk_scroll_2_w)
|
||||
AM_RANGE(0x8c000, 0x8c7ff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
|
||||
AM_RANGE(0x90000, 0x93fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0")
|
||||
AM_RANGE(0x90000, 0x93fff) AM_RAM_WRITE(nmk_bgvideoram_w<0>) AM_SHARE("nmk_bgvideoram0")
|
||||
AM_RANGE(0x94000, 0x97fff) AM_RAM_WRITE(nmk_fgvideoram_w) AM_SHARE("nmk_fgvideoram")
|
||||
AM_RANGE(0x9c000, 0x9c7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram")
|
||||
AM_RANGE(0xf0000, 0xfffff) AM_RAM AM_SHARE("mainram")
|
||||
@ -1002,7 +1001,7 @@ ADDRESS_MAP_START(nmk16_state::macross_map)
|
||||
AM_RANGE(0x08001e, 0x08001f) AM_DEVWRITE8("nmk004", nmk004_device, write, 0x00ff)
|
||||
AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
|
||||
AM_RANGE(0x08c000, 0x08c007) AM_RAM_WRITE(nmk_scroll_w)
|
||||
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0")
|
||||
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram_w<0>) AM_SHARE("nmk_bgvideoram0")
|
||||
AM_RANGE(0x09c000, 0x09c7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram")
|
||||
AM_RANGE(0x0f0000, 0x0fffff) AM_RAM_WRITE(nmk16_mainram_strange_w) AM_SHARE("mainram")
|
||||
ADDRESS_MAP_END
|
||||
@ -1022,7 +1021,7 @@ ADDRESS_MAP_START(nmk16_state::gunnail_map)
|
||||
AM_RANGE(0x08c000, 0x08c1ff) AM_WRITEONLY AM_SHARE("scrollram")
|
||||
AM_RANGE(0x08c200, 0x08c3ff) AM_WRITEONLY AM_SHARE("scrollramy")
|
||||
AM_RANGE(0x08c400, 0x08c7ff) AM_WRITEONLY // unknown
|
||||
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0")
|
||||
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram_w<0>) AM_SHARE("nmk_bgvideoram0")
|
||||
AM_RANGE(0x09c000, 0x09cfff) AM_MIRROR(0x001000) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram")
|
||||
AM_RANGE(0x0f0000, 0x0fffff) AM_RAM AM_SHARE("mainram")
|
||||
ADDRESS_MAP_END
|
||||
@ -1037,17 +1036,17 @@ ADDRESS_MAP_START(nmk16_state::macross2_map)
|
||||
AM_RANGE(0x100014, 0x100015) AM_WRITE(nmk_flipscreen_w)
|
||||
AM_RANGE(0x100016, 0x100017) AM_WRITE(macross2_sound_reset_w) /* Z80 reset */
|
||||
AM_RANGE(0x100018, 0x100019) AM_WRITE(nmk_tilebank_w)
|
||||
AM_RANGE(0x10001e, 0x10001f) AM_WRITE(macross2_sound_command_w) /* to Z80 */
|
||||
AM_RANGE(0x10001e, 0x10001f) AM_DEVWRITE("soundlatch", generic_latch_8_device, write, 0x00ff) /* to Z80 */
|
||||
AM_RANGE(0x120000, 0x1207ff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
|
||||
|
||||
AM_RANGE(0x130000, 0x1301ff) AM_RAM AM_SHARE("scrollram")
|
||||
AM_RANGE(0x130200, 0x1303ff) AM_RAM AM_SHARE("scrollramy")
|
||||
AM_RANGE(0x130400, 0x1307ff) AM_RAM
|
||||
|
||||
AM_RANGE(0x140000, 0x143fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0")
|
||||
AM_RANGE(0x144000, 0x147fff) AM_RAM_WRITE(nmk_bgvideoram1_w) AM_SHARE("nmk_bgvideoram1")
|
||||
AM_RANGE(0x148000, 0x14bfff) AM_RAM_WRITE(nmk_bgvideoram2_w) AM_SHARE("nmk_bgvideoram2")
|
||||
AM_RANGE(0x14c000, 0x14ffff) AM_RAM_WRITE(nmk_bgvideoram3_w) AM_SHARE("nmk_bgvideoram3")
|
||||
AM_RANGE(0x140000, 0x143fff) AM_RAM_WRITE(nmk_bgvideoram_w<0>) AM_SHARE("nmk_bgvideoram0")
|
||||
AM_RANGE(0x144000, 0x147fff) AM_RAM_WRITE(nmk_bgvideoram_w<1>) AM_SHARE("nmk_bgvideoram1")
|
||||
AM_RANGE(0x148000, 0x14bfff) AM_RAM_WRITE(nmk_bgvideoram_w<2>) AM_SHARE("nmk_bgvideoram2")
|
||||
AM_RANGE(0x14c000, 0x14ffff) AM_RAM_WRITE(nmk_bgvideoram_w<3>) AM_SHARE("nmk_bgvideoram3")
|
||||
|
||||
AM_RANGE(0x170000, 0x170fff) AM_MIRROR(0x1000) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram")
|
||||
AM_RANGE(0x1f0000, 0x1fffff) AM_RAM AM_SHARE("mainram")
|
||||
@ -1069,17 +1068,17 @@ ADDRESS_MAP_START(nmk16_state::raphero_map)
|
||||
AM_RANGE(0x100014, 0x100015) AM_WRITE(nmk_flipscreen_w)
|
||||
AM_RANGE(0x100016, 0x100017) AM_WRITENOP /* IRQ enable or z80 sound reset like in Macross 2? */
|
||||
AM_RANGE(0x100018, 0x100019) AM_WRITE(nmk_tilebank_w)
|
||||
AM_RANGE(0x10001e, 0x10001f) AM_WRITE(macross2_sound_command_w) /* to Z80 */
|
||||
AM_RANGE(0x10001e, 0x10001f) AM_DEVWRITE("soundlatch", generic_latch_8_device, write, 0x00ff) /* to Z80 */
|
||||
AM_RANGE(0x120000, 0x1207ff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
|
||||
|
||||
AM_RANGE(0x130000, 0x1301ff) AM_RAM AM_SHARE("scrollram")
|
||||
AM_RANGE(0x130200, 0x1303ff) AM_RAM AM_SHARE("scrollramy")
|
||||
AM_RANGE(0x130400, 0x1307ff) AM_RAM
|
||||
|
||||
AM_RANGE(0x140000, 0x143fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0")
|
||||
AM_RANGE(0x144000, 0x147fff) AM_RAM_WRITE(nmk_bgvideoram1_w) AM_SHARE("nmk_bgvideoram1")
|
||||
AM_RANGE(0x148000, 0x14bfff) AM_RAM_WRITE(nmk_bgvideoram2_w) AM_SHARE("nmk_bgvideoram2")
|
||||
AM_RANGE(0x14c000, 0x14ffff) AM_RAM_WRITE(nmk_bgvideoram3_w) AM_SHARE("nmk_bgvideoram3")
|
||||
AM_RANGE(0x140000, 0x143fff) AM_RAM_WRITE(nmk_bgvideoram_w<0>) AM_SHARE("nmk_bgvideoram0")
|
||||
AM_RANGE(0x144000, 0x147fff) AM_RAM_WRITE(nmk_bgvideoram_w<1>) AM_SHARE("nmk_bgvideoram1")
|
||||
AM_RANGE(0x148000, 0x14bfff) AM_RAM_WRITE(nmk_bgvideoram_w<2>) AM_SHARE("nmk_bgvideoram2")
|
||||
AM_RANGE(0x14c000, 0x14ffff) AM_RAM_WRITE(nmk_bgvideoram_w<3>) AM_SHARE("nmk_bgvideoram3")
|
||||
|
||||
|
||||
AM_RANGE(0x170000, 0x170fff) AM_MIRROR(0x1000) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram")
|
||||
@ -1088,7 +1087,7 @@ ADDRESS_MAP_END
|
||||
|
||||
ADDRESS_MAP_START(nmk16_state::raphero_sound_mem_map)
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
|
||||
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("audiobank")
|
||||
AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE("ymsnd", ym2203_device, read, write)
|
||||
AM_RANGE(0xc800, 0xc800) AM_DEVREADWRITE("oki1", okim6295_device, read, write)
|
||||
AM_RANGE(0xc808, 0xc808) AM_DEVREADWRITE("oki2", okim6295_device, read, write)
|
||||
@ -1100,7 +1099,7 @@ ADDRESS_MAP_END
|
||||
|
||||
ADDRESS_MAP_START(nmk16_state::macross2_sound_map)
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") /* banked ROM */
|
||||
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("audiobank") /* banked ROM */
|
||||
AM_RANGE(0xa000, 0xa000) AM_READNOP /* IRQ ack? watchdog? */
|
||||
AM_RANGE(0xc000, 0xdfff) AM_RAM
|
||||
AM_RANGE(0xe001, 0xe001) AM_WRITE(macross2_sound_bank_w)
|
||||
@ -1128,7 +1127,7 @@ ADDRESS_MAP_START(nmk16_state::bjtwin_map)
|
||||
AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
|
||||
AM_RANGE(0x094000, 0x094001) AM_WRITE(nmk_tilebank_w)
|
||||
AM_RANGE(0x094002, 0x094003) AM_WRITENOP /* IRQ enable? */
|
||||
AM_RANGE(0x09c000, 0x09cfff) AM_MIRROR(0x1000) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0")
|
||||
AM_RANGE(0x09c000, 0x09cfff) AM_MIRROR(0x1000) AM_RAM_WRITE(nmk_bgvideoram_w<0>) AM_SHARE("nmk_bgvideoram0")
|
||||
AM_RANGE(0x0f0000, 0x0fffff) AM_RAM AM_SHARE("mainram")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -1138,7 +1137,7 @@ ADDRESS_MAP_START(nmk16_state::atombjt_map)
|
||||
AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
|
||||
AM_RANGE(0x094000, 0x094001) AM_WRITE(nmk_tilebank_w)
|
||||
AM_RANGE(0x094002, 0x094003) AM_WRITENOP /* IRQ enable? */
|
||||
AM_RANGE(0x09c000, 0x09cfff) AM_MIRROR(0x1000) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0")
|
||||
AM_RANGE(0x09c000, 0x09cfff) AM_MIRROR(0x1000) AM_RAM_WRITE(nmk_bgvideoram_w<0>) AM_SHARE("nmk_bgvideoram0")
|
||||
AM_RANGE(0x0c2010, 0x0c2011) AM_READ_PORT("IN0")
|
||||
AM_RANGE(0x0c2012, 0x0c2013) AM_READ_PORT("IN1")
|
||||
AM_RANGE(0x0c2014, 0x0c2015) AM_READ(atombjt_unkr_r)
|
||||
@ -4106,8 +4105,9 @@ MACHINE_CONFIG_START(nmk16_state::vandykeb)
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
MCFG_OKIM6295_ADD("oki1", 16000000/4, PIN7_LOW)
|
||||
MCFG_OKIM6295_ADD("oki1", 16000000/16, PIN7_LOW)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)
|
||||
MCFG_DEVICE_ADDRESS_MAP(0, oki1_map)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(nmk16_state::acrobatm)
|
||||
@ -4259,6 +4259,7 @@ MACHINE_CONFIG_START(nmk16_state::ssmissin)
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
|
||||
MCFG_GENERIC_LATCH_DATA_PENDING_CB(INPUTLINE("audiocpu", 0))
|
||||
|
||||
MCFG_OKIM6295_ADD("oki1", 8000000/8, PIN7_HIGH) /* 1 Mhz, pin 7 high */
|
||||
MCFG_DEVICE_ADDRESS_MAP(0, oki1_map)
|
||||
@ -4562,6 +4563,7 @@ MACHINE_CONFIG_START(nmk16_state::tdragon2)
|
||||
MCFG_NMK112_ROM1("oki2")
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
// TODO : Sound system is different
|
||||
MACHINE_CONFIG_START(nmk16_state::tdragon3h)
|
||||
tdragon2(config);
|
||||
MCFG_CPU_MODIFY("maincpu")
|
||||
@ -4672,6 +4674,7 @@ MACHINE_CONFIG_START(nmk16_state::atombjt)
|
||||
|
||||
MCFG_OKIM6295_ADD("oki1", 10000000/8, PIN7_LOW) // divider and pin not verified
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)
|
||||
MCFG_DEVICE_ADDRESS_MAP(0, oki1_map)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
@ -4912,13 +4915,13 @@ DRIVER_INIT_MEMBER(nmk16_state,nmk)
|
||||
|
||||
DRIVER_INIT_MEMBER(nmk16_state,banked_audiocpu)
|
||||
{
|
||||
membank("bank1")->configure_entries(0, 8, memregion("audiocpu")->base(), 0x4000);
|
||||
m_audiobank->configure_entries(0, 8, memregion("audiocpu")->base(), 0x4000);
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(nmk16_state,tharrier)
|
||||
{
|
||||
membank("okibank1")->configure_entries(0, 4, memregion("oki1")->base() + 0x20000, 0x20000);
|
||||
membank("okibank2")->configure_entries(0, 4, memregion("oki2")->base() + 0x20000, 0x20000);
|
||||
m_okibank[0]->configure_entries(0, 4, memregion("oki1")->base() + 0x20000, 0x20000);
|
||||
m_okibank[1]->configure_entries(0, 4, memregion("oki2")->base() + 0x20000, 0x20000);
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(nmk16_state,hachamf_prot)
|
||||
@ -4957,7 +4960,7 @@ DRIVER_INIT_MEMBER(nmk16_state,ssmissin)
|
||||
{
|
||||
decode_ssmissin();
|
||||
|
||||
membank("okibank1")->configure_entries(0, 4, memregion("oki1")->base() + 0x80000, 0x20000);
|
||||
m_okibank[0]->configure_entries(0, 4, memregion("oki1")->base() + 0x80000, 0x20000);
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(nmk16_state,bjtwin)
|
||||
@ -4987,10 +4990,16 @@ DRIVER_INIT_MEMBER(nmk16_state,bjtwin)
|
||||
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(nmk16_state,atombjt)
|
||||
{
|
||||
m_okibank[0]->configure_entries(0, 4, memregion("oki1")->base() + 0x20000, 0x20000);
|
||||
}
|
||||
|
||||
/* NO NMK004, it has a PIC instead */
|
||||
READ16_MEMBER(nmk16_state::vandykeb_r){ return 0x0000; }
|
||||
DRIVER_INIT_MEMBER(nmk16_state,vandykeb)
|
||||
{
|
||||
m_okibank[0]->configure_entries(0, 4, memregion("oki1")->base() + 0x20000, 0x20000);
|
||||
m_maincpu->space(AS_PROGRAM).install_read_handler(0x08000e, 0x08000f, read16_delegate(FUNC(nmk16_state::vandykeb_r),this));
|
||||
m_maincpu->space(AS_PROGRAM).nop_write(0x08001e, 0x08001f);
|
||||
}
|
||||
@ -5011,15 +5020,10 @@ READ16_MEMBER(nmk16_state::afega_unknown_r)
|
||||
}
|
||||
|
||||
|
||||
|
||||
WRITE16_MEMBER(nmk16_state::afega_scroll0_w)
|
||||
template<int Scroll>
|
||||
WRITE16_MEMBER(nmk16_state::afega_scroll_w)
|
||||
{
|
||||
COMBINE_DATA(&m_afega_scroll_0[offset]);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(nmk16_state::afega_scroll1_w)
|
||||
{
|
||||
COMBINE_DATA(&m_afega_scroll_1[offset]);
|
||||
COMBINE_DATA(&m_afega_scroll[Scroll][offset]);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -5037,17 +5041,17 @@ ADDRESS_MAP_START(nmk16_state::afega_map)
|
||||
AM_RANGE(0x080004, 0x080005) AM_READ_PORT("DSW1") // 2 x DSW
|
||||
AM_RANGE(0x080012, 0x080013) AM_READ(afega_unknown_r)
|
||||
AM_RANGE(0x080000, 0x08001d) AM_WRITEONLY //
|
||||
AM_RANGE(0x08001e, 0x08001f) AM_WRITE(afega_soundlatch_w) // To Sound CPU
|
||||
AM_RANGE(0x08001e, 0x08001f) AM_DEVWRITE("soundlatch", generic_latch_8_device, write, 0x00ff) // To Sound CPU
|
||||
AM_RANGE(0x080020, 0x087fff) AM_WRITEONLY //
|
||||
/**/AM_RANGE(0x084000, 0x084003) AM_RAM_WRITE(afega_scroll0_w) // Scroll on redhawkb (mirror or changed?..)
|
||||
/**/AM_RANGE(0x084004, 0x084007) AM_RAM_WRITE(afega_scroll1_w) // Scroll on redhawkb (mirror or changed?..)
|
||||
/**/AM_RANGE(0x088000, 0x0885ff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette") // Palette
|
||||
AM_RANGE(0x084000, 0x084003) AM_RAM_WRITE(afega_scroll_w<0>) // Scroll on redhawkb (mirror or changed?..)
|
||||
AM_RANGE(0x084004, 0x084007) AM_RAM_WRITE(afega_scroll_w<1>) // Scroll on redhawkb (mirror or changed?..)
|
||||
AM_RANGE(0x088000, 0x0885ff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette") // Palette
|
||||
AM_RANGE(0x088600, 0x08bfff) AM_WRITEONLY //
|
||||
/**/AM_RANGE(0x08c000, 0x08c003) AM_RAM_WRITE(afega_scroll0_w) AM_SHARE("afega_scroll_0") // Scroll
|
||||
/**/AM_RANGE(0x08c004, 0x08c007) AM_RAM_WRITE(afega_scroll1_w) AM_SHARE("afega_scroll_1") //
|
||||
AM_RANGE(0x08c000, 0x08c003) AM_RAM_WRITE(afega_scroll_w<0>) AM_SHARE("afega_scroll_0") // Scroll
|
||||
AM_RANGE(0x08c004, 0x08c007) AM_RAM_WRITE(afega_scroll_w<1>) AM_SHARE("afega_scroll_1") //
|
||||
AM_RANGE(0x08c008, 0x08ffff) AM_WRITEONLY //
|
||||
/**/AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0") // Layer 0 // ?
|
||||
/**/AM_RANGE(0x09c000, 0x09c7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram") // Layer 1
|
||||
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram_w<0>) AM_SHARE("nmk_bgvideoram0") // Layer 0 // ?
|
||||
AM_RANGE(0x09c000, 0x09c7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram") // Layer 1
|
||||
|
||||
AM_RANGE(0x0c0000, 0x0cffff) AM_RAM_WRITE(nmk16_mainram_strange_w) AM_SHARE("mainram")
|
||||
AM_RANGE(0x0f0000, 0x0fffff) AM_RAM_WRITE(nmk16_mainram_strange_w) AM_SHARE("mainram")
|
||||
@ -5062,17 +5066,17 @@ ADDRESS_MAP_START(nmk16_state::firehawk_map)
|
||||
AM_RANGE(0x280004, 0x280005) AM_READ_PORT("DSW1") // 2 x DSW
|
||||
AM_RANGE(0x280012, 0x280013) AM_READ(afega_unknown_r)
|
||||
AM_RANGE(0x280000, 0x28001d) AM_WRITEONLY //
|
||||
AM_RANGE(0x28001e, 0x28001f) AM_WRITE(afega_soundlatch_w) // To Sound CPU
|
||||
AM_RANGE(0x28001e, 0x28001f) AM_DEVWRITE("soundlatch", generic_latch_8_device, write, 0x00ff) // To Sound CPU
|
||||
AM_RANGE(0x280020, 0x287fff) AM_WRITEONLY //
|
||||
/**/AM_RANGE(0x284000, 0x284003) AM_RAM_WRITE(afega_scroll0_w) // Scroll on redhawkb (mirror or changed?..)
|
||||
/**/AM_RANGE(0x284004, 0x284007) AM_RAM_WRITE(afega_scroll1_w) // Scroll on redhawkb (mirror or changed?..)
|
||||
/**/AM_RANGE(0x288000, 0x2885ff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette") // Palette
|
||||
AM_RANGE(0x284000, 0x284003) AM_RAM_WRITE(afega_scroll_w<0>) // Scroll on redhawkb (mirror or changed?..)
|
||||
AM_RANGE(0x284004, 0x284007) AM_RAM_WRITE(afega_scroll_w<1>) // Scroll on redhawkb (mirror or changed?..)
|
||||
AM_RANGE(0x288000, 0x2885ff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette") // Palette
|
||||
AM_RANGE(0x288600, 0x28bfff) AM_WRITEONLY //
|
||||
/**/AM_RANGE(0x28c000, 0x28c003) AM_RAM_WRITE(afega_scroll0_w) AM_SHARE("afega_scroll_0") // Scroll
|
||||
/**/AM_RANGE(0x28c004, 0x28c007) AM_RAM_WRITE(afega_scroll1_w) AM_SHARE("afega_scroll_1") //
|
||||
AM_RANGE(0x28c000, 0x28c003) AM_RAM_WRITE(afega_scroll_w<0>) AM_SHARE("afega_scroll_0") // Scroll
|
||||
AM_RANGE(0x28c004, 0x28c007) AM_RAM_WRITE(afega_scroll_w<1>) AM_SHARE("afega_scroll_1") //
|
||||
AM_RANGE(0x28c008, 0x28ffff) AM_WRITEONLY //
|
||||
/**/AM_RANGE(0x290000, 0x293fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0") // Layer 0 // ?
|
||||
/**/AM_RANGE(0x29c000, 0x29c7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram") // Layer 1
|
||||
AM_RANGE(0x290000, 0x293fff) AM_RAM_WRITE(nmk_bgvideoram_w<0>) AM_SHARE("nmk_bgvideoram0") // Layer 0 // ?
|
||||
AM_RANGE(0x29c000, 0x29c7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram") // Layer 1
|
||||
|
||||
AM_RANGE(0x3c0000, 0x3cffff) AM_RAM_WRITE(nmk16_mainram_strange_w) AM_SHARE("mainram")
|
||||
AM_RANGE(0x3f0000, 0x3fffff) AM_RAM_WRITE(nmk16_mainram_strange_w) AM_SHARE("mainram")
|
||||
@ -5238,6 +5242,7 @@ MACHINE_CONFIG_START(nmk16_state::stagger1)
|
||||
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
|
||||
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
|
||||
MCFG_GENERIC_LATCH_DATA_PENDING_CB(INPUTLINE("audiocpu", 0))
|
||||
|
||||
MCFG_YM2151_ADD("ymsnd", XTAL(4'000'000)) /* verified on pcb */
|
||||
MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
|
||||
@ -5327,6 +5332,7 @@ MACHINE_CONFIG_START(nmk16_state::firehawk)
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
|
||||
MCFG_GENERIC_LATCH_DATA_PENDING_CB(INPUTLINE("audiocpu", 0))
|
||||
|
||||
MCFG_OKIM6295_ADD("oki1", 1000000, PIN7_HIGH)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
@ -5367,6 +5373,7 @@ MACHINE_CONFIG_START(nmk16_state::twinactn)
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
|
||||
MCFG_GENERIC_LATCH_DATA_PENDING_CB(INPUTLINE("audiocpu", 0))
|
||||
|
||||
MCFG_OKIM6295_ADD("oki1", 1000000, PIN7_HIGH)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
@ -5519,11 +5526,11 @@ ROM_START( vandykeb )
|
||||
ROM_LOAD16_BYTE( "10.bin", 0x140000, 0x020000, CRC(388b1abc) SHA1(9d1c43070130672a5e1a41807d796c944b0676ae) ) /* Sprites */
|
||||
ROM_LOAD16_BYTE( "14.bin", 0x140001, 0x020000, CRC(32eeba37) SHA1(0d0218e864ed647bd33bbe379f0ef76ccefbd06c) ) /* Sprites */
|
||||
|
||||
ROM_REGION( 0x0a0000, "oki1", 0 ) /* OKIM6295 samples */
|
||||
ROM_REGION( 0x080000, "oki1", 0 ) /* OKIM6295 samples */
|
||||
ROM_LOAD( "9.bin", 0x000000, 0x020000, CRC(56bf774f) SHA1(5ece618fff22483adb5dff062dd4ec212aab0f01) )
|
||||
ROM_LOAD( "8.bin", 0x000000, 0x020000, CRC(89851fcf) SHA1(7b6284cb929059371dd2b5410cd18373834ba76b) )
|
||||
ROM_LOAD( "7.bin", 0x000000, 0x020000, CRC(d7bf0f6a) SHA1(413713576692676a831949e0d4dc5574da338380) )
|
||||
ROM_LOAD( "6.bin", 0x000000, 0x020000, CRC(a7fcf709) SHA1(dc6298b43a472e92e99b8286bd4d26f7e72fd278) )
|
||||
ROM_LOAD( "8.bin", 0x020000, 0x020000, CRC(89851fcf) SHA1(7b6284cb929059371dd2b5410cd18373834ba76b) )
|
||||
ROM_LOAD( "7.bin", 0x040000, 0x020000, CRC(d7bf0f6a) SHA1(413713576692676a831949e0d4dc5574da338380) )
|
||||
ROM_LOAD( "6.bin", 0x060000, 0x020000, CRC(a7fcf709) SHA1(dc6298b43a472e92e99b8286bd4d26f7e72fd278) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( tharrier )
|
||||
@ -5800,7 +5807,7 @@ ROM_START( bioship )
|
||||
ROM_REGION( 0x80000, "gfx4", 0 )
|
||||
ROM_LOAD( "sbs-g_02.ic4", 0x000000, 0x80000, CRC(f31eb668) SHA1(67d6d56ea203edfbae4db658399bf61f14134206) ) /* Background */
|
||||
|
||||
ROM_REGION16_BE(0x20000, "gfx5", 0 ) /* Background tilemaps (used at runtime) */
|
||||
ROM_REGION16_BE(0x20000, "tilerom", 0 ) /* Background tilemaps (used at runtime) */
|
||||
ROM_LOAD16_BYTE( "8.ic27", 0x00000, 0x10000, CRC(75a46fea) SHA1(3d78cfc482b42779bb5aedb722c4a39cbc71bd10) )
|
||||
ROM_LOAD16_BYTE( "9.ic26", 0x00001, 0x10000, CRC(d91448ee) SHA1(7f84ca3605edcab4bf226dab8dd7218cd5c3e5a4) )
|
||||
|
||||
@ -5836,7 +5843,7 @@ ROM_START( sbsgomo )
|
||||
ROM_REGION( 0x80000, "gfx4", 0 )
|
||||
ROM_LOAD( "sbs-g_02.ic4", 0x000000, 0x80000, CRC(f31eb668) SHA1(67d6d56ea203edfbae4db658399bf61f14134206) ) /* Background */
|
||||
|
||||
ROM_REGION16_BE(0x20000, "gfx5", 0 ) /* Background tilemaps (used at runtime) */
|
||||
ROM_REGION16_BE(0x20000, "tilerom", 0 ) /* Background tilemaps (used at runtime) */
|
||||
ROM_LOAD16_BYTE( "8.ic27", 0x00000, 0x10000, CRC(75a46fea) SHA1(3d78cfc482b42779bb5aedb722c4a39cbc71bd10) )
|
||||
ROM_LOAD16_BYTE( "9.ic26", 0x00001, 0x10000, CRC(d91448ee) SHA1(7f84ca3605edcab4bf226dab8dd7218cd5c3e5a4) )
|
||||
|
||||
@ -6466,6 +6473,7 @@ ROM_START( tdragon3h )
|
||||
ROM_LOAD16_BYTE( "H.27C2001", 0x00000, 0x40000, CRC(0091f4a3) SHA1(025e5f7ff12eaa90c5cfe757c71d58ba7040cba7) )
|
||||
ROM_LOAD16_BYTE( "L.27C020", 0x00001, 0x40000, CRC(4699c313) SHA1(1851a4b5ad9c2bac230126d195e239a5ebe827f9) )
|
||||
|
||||
// Not from this PCB
|
||||
ROM_REGION( 0x20000, "audiocpu", 0 ) /* Z80 code */
|
||||
ROM_LOAD( "1.27C1000", 0x00000, 0x20000, CRC(b870be61) SHA1(ea5d45c3a3ab805e55806967f00167cf6366212e) ) /* banked */
|
||||
|
||||
@ -6480,7 +6488,8 @@ ROM_START( tdragon3h )
|
||||
ROM_REGION( 0x400000, "sprites", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "ww930917.7", 0x000000, 0x200000, CRC(b98873cb) SHA1(cc19200865176e940ff68e12de81f029b51c2084) ) /* Sprites */
|
||||
ROM_LOAD16_WORD_SWAP( "ww930918.8", 0x200000, 0x200000, CRC(baee84b2) SHA1(b325b00e6147266dbdc840e03556004531dc2038) )
|
||||
|
||||
|
||||
// Not from this PCB
|
||||
ROM_REGION( 0x240000, "oki1", 0 ) /* OKIM6295 samples */
|
||||
ROM_LOAD( "ww930916.4", 0x040000, 0x200000, CRC(07c35fe6) SHA1(33547bd88764704310f2ef8cf3bfe21ceb56d5b7) ) /* all banked */
|
||||
|
||||
@ -8062,7 +8071,7 @@ GAME( 1993, macross2k, macross2, macross2, macross2, nmk16_state, bank
|
||||
GAME( 1993, tdragon2, 0, tdragon2, tdragon2, nmk16_state, banked_audiocpu, ROT270, "NMK", "Thunder Dragon 2 (9th Nov. 1993)", MACHINE_NO_COCKTAIL )
|
||||
GAME( 1993, tdragon2a, tdragon2, tdragon2, tdragon2, nmk16_state, banked_audiocpu, ROT270, "NMK", "Thunder Dragon 2 (1st Oct. 1993)", MACHINE_NO_COCKTAIL )
|
||||
GAME( 1993, bigbang, tdragon2, tdragon2, tdragon2, nmk16_state, banked_audiocpu, ROT270, "NMK", "Big Bang (9th Nov. 1993)", MACHINE_NO_COCKTAIL )
|
||||
GAME( 1996, tdragon3h, tdragon2, tdragon3h, tdragon2, nmk16_state, banked_audiocpu, ROT270, "bootleg (Conny Co Ltd.)", "Thunder Dragon 3 (bootleg of Thunder Dragon 2)", MACHINE_NO_COCKTAIL ) // based on 1st Oct. 1993 set
|
||||
GAME( 1996, tdragon3h, tdragon2, tdragon3h, tdragon2, nmk16_state, banked_audiocpu, ROT270, "bootleg (Conny Co Ltd.)", "Thunder Dragon 3 (bootleg of Thunder Dragon 2)", MACHINE_IMPERFECT_SOUND | MACHINE_NO_COCKTAIL ) // based on 1st Oct. 1993 set, Sound system isn't hooked up correctly for this set
|
||||
|
||||
/* arcadia was a name conflict to the Emerson Arcadia 2001 in mess */
|
||||
GAME( 1994, arcadian, 0, raphero, raphero, nmk16_state, banked_audiocpu, ROT270, "NMK", "Arcadia (NMK)", 0 ) // 23rd July 1993 in test mode, (c)1994 on title screen
|
||||
@ -8077,7 +8086,7 @@ GAME( 1993, bjtwin, 0, bjtwin, bjtwin, nmk16_state, bjtwin, ROT27
|
||||
GAME( 1993, bjtwina, bjtwin, bjtwin, bjtwin, nmk16_state, bjtwin, ROT270, "NMK", "Bombjack Twin (set 2)", MACHINE_NO_COCKTAIL )
|
||||
GAME( 1993, bjtwinp, bjtwin, bjtwin, bjtwin, nmk16_state, 0, ROT270, "NMK", "Bombjack Twin (prototype? with adult pictures, set 1)", MACHINE_NO_COCKTAIL ) // Cheap looking PCB, but Genuine NMK PCB, GFX aren't encrypted (maybe Korean version not proto?)
|
||||
GAME( 1993, bjtwinpa, bjtwin, bjtwin, bjtwin, nmk16_state, bjtwin, ROT270, "NMK", "Bombjack Twin (prototype? with adult pictures, set 2)", MACHINE_NO_COCKTAIL ) // same PCB as above, different program revision, GFX are encrypted
|
||||
GAME( 1993, atombjt, bjtwin, atombjt, atombjt, nmk16_state, 0, ROT270, "bootleg (Kyon K.)", "Atom (bootleg of Bombjack Twin)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // some non-trivial mods to the gfx and sound hw (playmark hardware?)
|
||||
GAME( 1993, atombjt, bjtwin, atombjt, atombjt, nmk16_state, atombjt, ROT270, "bootleg (Kyon K.)", "Atom (bootleg of Bombjack Twin)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // some non-trivial mods to the gfx and sound hw (playmark hardware?)
|
||||
|
||||
|
||||
GAME( 1995, nouryoku, 0, bjtwin, nouryoku, nmk16_state, nmk, ROT0, "Tecmo", "Nouryoku Koujou Iinkai", MACHINE_NO_COCKTAIL )
|
||||
|
@ -22,18 +22,17 @@ public:
|
||||
m_palette(*this, "palette"),
|
||||
m_nmk004(*this, "nmk004"),
|
||||
m_soundlatch(*this, "soundlatch"),
|
||||
m_nmk_bgvideoram0(*this, "nmk_bgvideoram0"),
|
||||
m_nmk_bgvideoram(*this, "nmk_bgvideoram%u", 0),
|
||||
m_nmk_txvideoram(*this, "nmk_txvideoram"),
|
||||
m_mainram(*this, "mainram"),
|
||||
m_gunnail_scrollram(*this, "scrollram"),
|
||||
m_spriteram(*this, "spriteram"),
|
||||
m_nmk_fgvideoram(*this, "nmk_fgvideoram"),
|
||||
m_gunnail_scrollramy(*this, "scrollramy"),
|
||||
m_nmk_bgvideoram1(*this, "nmk_bgvideoram1"),
|
||||
m_nmk_bgvideoram2(*this, "nmk_bgvideoram2"),
|
||||
m_nmk_bgvideoram3(*this, "nmk_bgvideoram3"),
|
||||
m_afega_scroll_0(*this, "afega_scroll_0"),
|
||||
m_afega_scroll_1(*this, "afega_scroll_1"),
|
||||
m_afega_scroll(*this, "afega_scroll_%u", 0),
|
||||
m_tilemap_rom(*this, "tilerom"),
|
||||
m_audiobank(*this, "audiobank"),
|
||||
m_okibank(*this, "okibank%u", 1),
|
||||
m_sprdma_base(0x8000)
|
||||
{}
|
||||
|
||||
@ -46,19 +45,18 @@ public:
|
||||
optional_device<nmk004_device> m_nmk004;
|
||||
optional_device<generic_latch_8_device> m_soundlatch;
|
||||
|
||||
required_shared_ptr<uint16_t> m_nmk_bgvideoram0;
|
||||
optional_shared_ptr_array<uint16_t, 4> m_nmk_bgvideoram;
|
||||
optional_shared_ptr<uint16_t> m_nmk_txvideoram;
|
||||
required_shared_ptr<uint16_t> m_mainram;
|
||||
optional_shared_ptr<uint16_t> m_gunnail_scrollram;
|
||||
optional_shared_ptr<uint8_t> m_spriteram;
|
||||
optional_shared_ptr<uint16_t> m_nmk_fgvideoram;
|
||||
optional_shared_ptr<uint16_t> m_gunnail_scrollramy;
|
||||
optional_shared_ptr<uint16_t> m_nmk_bgvideoram1;
|
||||
optional_shared_ptr<uint16_t> m_nmk_bgvideoram2;
|
||||
optional_shared_ptr<uint16_t> m_nmk_bgvideoram3;
|
||||
optional_shared_ptr<uint16_t> m_afega_scroll_0;
|
||||
optional_shared_ptr<uint16_t> m_afega_scroll_1;
|
||||
|
||||
optional_shared_ptr_array<uint16_t, 2> m_afega_scroll;
|
||||
|
||||
optional_region_ptr<uint16_t> m_tilemap_rom;
|
||||
optional_memory_bank m_audiobank;
|
||||
optional_memory_bank_array<2> m_okibank;
|
||||
|
||||
int m_sprdma_base;
|
||||
int mask[4*2];
|
||||
@ -70,10 +68,7 @@ public:
|
||||
int m_videoshift;
|
||||
int m_bioship_background_bank;
|
||||
uint8_t m_bioship_scroll[4];
|
||||
tilemap_t *m_bg_tilemap0;
|
||||
tilemap_t *m_bg_tilemap1;
|
||||
tilemap_t *m_bg_tilemap2;
|
||||
tilemap_t *m_bg_tilemap3;
|
||||
tilemap_t *m_bg_tilemap[4];
|
||||
tilemap_t *m_tx_tilemap;
|
||||
tilemap_t *m_fg_tilemap;
|
||||
std::unique_ptr<bitmap_ind16> m_background_bitmap;
|
||||
@ -87,27 +82,19 @@ public:
|
||||
uint8_t m_coin_count[2];
|
||||
uint8_t m_coin_count_frac[2];
|
||||
DECLARE_WRITE16_MEMBER(nmk16_mainram_strange_w);
|
||||
DECLARE_WRITE16_MEMBER(ssmissin_sound_w);
|
||||
DECLARE_WRITE8_MEMBER(ssmissin_soundbank_w);
|
||||
DECLARE_WRITE16_MEMBER(tharrier_mcu_control_w);
|
||||
DECLARE_READ16_MEMBER(tharrier_mcu_r);
|
||||
DECLARE_WRITE16_MEMBER(macross2_sound_reset_w);
|
||||
DECLARE_WRITE16_MEMBER(macross2_sound_command_w);
|
||||
DECLARE_WRITE8_MEMBER(macross2_sound_bank_w);
|
||||
DECLARE_WRITE8_MEMBER(tharrier_oki6295_bankswitch_0_w);
|
||||
DECLARE_WRITE8_MEMBER(tharrier_oki6295_bankswitch_1_w);
|
||||
DECLARE_WRITE16_MEMBER(afega_soundlatch_w);
|
||||
template<int Chip> DECLARE_WRITE8_MEMBER(tharrier_oki6295_bankswitch_w);
|
||||
DECLARE_WRITE16_MEMBER(hachamf_mainram_w);
|
||||
DECLARE_WRITE16_MEMBER(tdragon_mainram_w);
|
||||
DECLARE_READ16_MEMBER(vandykeb_r);
|
||||
DECLARE_READ16_MEMBER(tdragonb_prot_r);
|
||||
DECLARE_READ16_MEMBER(afega_unknown_r);
|
||||
DECLARE_WRITE16_MEMBER(afega_scroll0_w);
|
||||
DECLARE_WRITE16_MEMBER(afega_scroll1_w);
|
||||
DECLARE_WRITE16_MEMBER(nmk_bgvideoram0_w);
|
||||
DECLARE_WRITE16_MEMBER(nmk_bgvideoram1_w);
|
||||
DECLARE_WRITE16_MEMBER(nmk_bgvideoram2_w);
|
||||
DECLARE_WRITE16_MEMBER(nmk_bgvideoram3_w);
|
||||
template<int Scroll> DECLARE_WRITE16_MEMBER(afega_scroll_w);
|
||||
template<int Bank> DECLARE_WRITE16_MEMBER(nmk_bgvideoram_w);
|
||||
DECLARE_WRITE16_MEMBER(nmk_fgvideoram_w);
|
||||
DECLARE_WRITE16_MEMBER(nmk_txvideoram_w);
|
||||
DECLARE_WRITE16_MEMBER(mustang_scroll_w);
|
||||
@ -141,13 +128,11 @@ public:
|
||||
DECLARE_DRIVER_INIT(redfoxwp2a);
|
||||
DECLARE_DRIVER_INIT(grdnstrmg);
|
||||
DECLARE_DRIVER_INIT(bjtwin);
|
||||
TILEMAP_MAPPER_MEMBER(afega_tilemap_scan_pages);
|
||||
TILE_GET_INFO_MEMBER(macross_get_bg0_tile_info);
|
||||
TILE_GET_INFO_MEMBER(macross_get_bg1_tile_info);
|
||||
TILE_GET_INFO_MEMBER(macross_get_bg2_tile_info);
|
||||
TILE_GET_INFO_MEMBER(macross_get_bg3_tile_info);
|
||||
DECLARE_DRIVER_INIT(atombjt);
|
||||
TILEMAP_MAPPER_MEMBER(tilemap_scan_pages);
|
||||
template<int Bank> TILE_GET_INFO_MEMBER(common_get_bg_tile_info);
|
||||
TILE_GET_INFO_MEMBER(strahl_get_fg_tile_info);
|
||||
TILE_GET_INFO_MEMBER(macross_get_tx_tile_info);
|
||||
TILE_GET_INFO_MEMBER(common_get_tx_tile_info);
|
||||
TILE_GET_INFO_MEMBER(bjtwin_get_bg_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_tile_info_0_8bit);
|
||||
DECLARE_VIDEO_START(macross);
|
||||
|
@ -29,7 +29,7 @@
|
||||
#define PAGES_PER_TMAP_X (0x10)
|
||||
#define PAGES_PER_TMAP_Y (0x02)
|
||||
|
||||
TILEMAP_MAPPER_MEMBER(nmk16_state::afega_tilemap_scan_pages)
|
||||
TILEMAP_MAPPER_MEMBER(nmk16_state::tilemap_scan_pages)
|
||||
{
|
||||
return (row / TILES_PER_PAGE_Y) * TILES_PER_PAGE_X * TILES_PER_PAGE_Y * PAGES_PER_TMAP_X +
|
||||
(row % TILES_PER_PAGE_Y) +
|
||||
@ -38,27 +38,10 @@ TILEMAP_MAPPER_MEMBER(nmk16_state::afega_tilemap_scan_pages)
|
||||
(col % TILES_PER_PAGE_X) * TILES_PER_PAGE_Y;
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(nmk16_state::macross_get_bg0_tile_info)
|
||||
template<int Bank>
|
||||
TILE_GET_INFO_MEMBER(nmk16_state::common_get_bg_tile_info)
|
||||
{
|
||||
int code = m_nmk_bgvideoram0[tile_index];
|
||||
SET_TILE_INFO_MEMBER(1,(code & 0xfff) + (m_bgbank << 12),code >> 12,0);
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(nmk16_state::macross_get_bg1_tile_info)
|
||||
{
|
||||
int code = m_nmk_bgvideoram1[tile_index];
|
||||
SET_TILE_INFO_MEMBER(1,(code & 0xfff) + (m_bgbank << 12),code >> 12,0);
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(nmk16_state::macross_get_bg2_tile_info)
|
||||
{
|
||||
int code = m_nmk_bgvideoram2[tile_index];
|
||||
SET_TILE_INFO_MEMBER(1,(code & 0xfff) + (m_bgbank << 12),code >> 12,0);
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(nmk16_state::macross_get_bg3_tile_info)
|
||||
{
|
||||
int code = m_nmk_bgvideoram3[tile_index];
|
||||
int code = m_nmk_bgvideoram[Bank][tile_index];
|
||||
SET_TILE_INFO_MEMBER(1,(code & 0xfff) + (m_bgbank << 12),code >> 12,0);
|
||||
}
|
||||
|
||||
@ -72,7 +55,7 @@ TILE_GET_INFO_MEMBER(nmk16_state::strahl_get_fg_tile_info)
|
||||
0);
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(nmk16_state::macross_get_tx_tile_info)
|
||||
TILE_GET_INFO_MEMBER(nmk16_state::common_get_tx_tile_info)
|
||||
{
|
||||
int code = m_nmk_txvideoram[tile_index];
|
||||
SET_TILE_INFO_MEMBER(0,
|
||||
@ -83,7 +66,7 @@ TILE_GET_INFO_MEMBER(nmk16_state::macross_get_tx_tile_info)
|
||||
|
||||
TILE_GET_INFO_MEMBER(nmk16_state::bjtwin_get_bg_tile_info)
|
||||
{
|
||||
int code = m_nmk_bgvideoram0[tile_index];
|
||||
int code = m_nmk_bgvideoram[0][tile_index];
|
||||
int bank = (code & 0x800) ? 1 : 0;
|
||||
SET_TILE_INFO_MEMBER(bank,
|
||||
(code & 0x7ff) + ((bank) ? (m_bgbank << 11) : 0),
|
||||
@ -93,7 +76,7 @@ TILE_GET_INFO_MEMBER(nmk16_state::bjtwin_get_bg_tile_info)
|
||||
|
||||
TILE_GET_INFO_MEMBER(nmk16_state::get_tile_info_0_8bit)
|
||||
{
|
||||
uint16_t code = m_nmk_bgvideoram0[tile_index];
|
||||
uint16_t code = m_nmk_bgvideoram[0][tile_index];
|
||||
SET_TILE_INFO_MEMBER(1,
|
||||
code,
|
||||
0,
|
||||
@ -120,10 +103,10 @@ void nmk16_state::nmk16_video_init()
|
||||
|
||||
VIDEO_START_MEMBER(nmk16_state,bioship)
|
||||
{
|
||||
m_bg_tilemap0 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_bg0_tile_info),this), tilemap_mapper_delegate(FUNC(nmk16_state::afega_tilemap_scan_pages),this),16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y);
|
||||
m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_tx_tile_info),this),TILEMAP_SCAN_COLS,8,8,32,32);
|
||||
m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::common_get_bg_tile_info<0>),this), tilemap_mapper_delegate(FUNC(nmk16_state::tilemap_scan_pages),this),16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y);
|
||||
m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::common_get_tx_tile_info),this),TILEMAP_SCAN_COLS,8,8,32,32);
|
||||
|
||||
m_bg_tilemap0->set_transparent_pen(15);
|
||||
m_bg_tilemap[0]->set_transparent_pen(15);
|
||||
m_tx_tilemap->set_transparent_pen(15);
|
||||
|
||||
nmk16_video_init();
|
||||
@ -135,9 +118,9 @@ VIDEO_START_MEMBER(nmk16_state,bioship)
|
||||
|
||||
VIDEO_START_MEMBER(nmk16_state,strahl)
|
||||
{
|
||||
m_bg_tilemap0 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_bg0_tile_info),this), tilemap_mapper_delegate(FUNC(nmk16_state::afega_tilemap_scan_pages),this),16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y);
|
||||
m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::strahl_get_fg_tile_info),this), tilemap_mapper_delegate(FUNC(nmk16_state::afega_tilemap_scan_pages),this),16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y);
|
||||
m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_tx_tile_info),this),TILEMAP_SCAN_COLS,8,8,32,32);
|
||||
m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::common_get_bg_tile_info<0>),this), tilemap_mapper_delegate(FUNC(nmk16_state::tilemap_scan_pages),this),16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y);
|
||||
m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::strahl_get_fg_tile_info),this), tilemap_mapper_delegate(FUNC(nmk16_state::tilemap_scan_pages),this),16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y);
|
||||
m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::common_get_tx_tile_info),this),TILEMAP_SCAN_COLS,8,8,32,32);
|
||||
|
||||
m_fg_tilemap->set_transparent_pen(15);
|
||||
m_tx_tilemap->set_transparent_pen(15);
|
||||
@ -149,8 +132,8 @@ VIDEO_START_MEMBER(nmk16_state,strahl)
|
||||
|
||||
VIDEO_START_MEMBER(nmk16_state,macross)
|
||||
{
|
||||
m_bg_tilemap0 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_bg0_tile_info),this), tilemap_mapper_delegate(FUNC(nmk16_state::afega_tilemap_scan_pages),this),16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y);
|
||||
m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_tx_tile_info),this),TILEMAP_SCAN_COLS,8,8,32,32);
|
||||
m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::common_get_bg_tile_info<0>),this), tilemap_mapper_delegate(FUNC(nmk16_state::tilemap_scan_pages),this),16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y);
|
||||
m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::common_get_tx_tile_info),this),TILEMAP_SCAN_COLS,8,8,32,32);
|
||||
|
||||
m_tx_tilemap->set_transparent_pen(15);
|
||||
|
||||
@ -159,11 +142,11 @@ VIDEO_START_MEMBER(nmk16_state,macross)
|
||||
|
||||
VIDEO_START_MEMBER(nmk16_state,gunnail)
|
||||
{
|
||||
m_bg_tilemap0 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_bg0_tile_info),this), tilemap_mapper_delegate(FUNC(nmk16_state::afega_tilemap_scan_pages),this),16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y);
|
||||
m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_tx_tile_info),this),TILEMAP_SCAN_COLS,8,8,64,32);
|
||||
m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::common_get_bg_tile_info<0>),this), tilemap_mapper_delegate(FUNC(nmk16_state::tilemap_scan_pages),this),16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y);
|
||||
m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::common_get_tx_tile_info),this),TILEMAP_SCAN_COLS,8,8,64,32);
|
||||
|
||||
m_tx_tilemap->set_transparent_pen(15);
|
||||
m_bg_tilemap0->set_scroll_rows(512);
|
||||
m_bg_tilemap[0]->set_scroll_rows(512);
|
||||
|
||||
nmk16_video_init();
|
||||
m_videoshift = 64; /* 384x224 screen, leftmost 64 pixels have to be retrieved */
|
||||
@ -173,12 +156,12 @@ VIDEO_START_MEMBER(nmk16_state,gunnail)
|
||||
|
||||
VIDEO_START_MEMBER(nmk16_state,macross2)
|
||||
{
|
||||
m_bg_tilemap0 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_bg0_tile_info),this), tilemap_mapper_delegate(FUNC(nmk16_state::afega_tilemap_scan_pages),this),16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y);
|
||||
m_bg_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_bg1_tile_info),this), tilemap_mapper_delegate(FUNC(nmk16_state::afega_tilemap_scan_pages),this),16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y);
|
||||
m_bg_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_bg2_tile_info),this), tilemap_mapper_delegate(FUNC(nmk16_state::afega_tilemap_scan_pages),this),16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y);
|
||||
m_bg_tilemap3 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_bg3_tile_info),this), tilemap_mapper_delegate(FUNC(nmk16_state::afega_tilemap_scan_pages),this),16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y);
|
||||
m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::common_get_bg_tile_info<0>),this), tilemap_mapper_delegate(FUNC(nmk16_state::tilemap_scan_pages),this),16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y);
|
||||
m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::common_get_bg_tile_info<1>),this), tilemap_mapper_delegate(FUNC(nmk16_state::tilemap_scan_pages),this),16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y);
|
||||
m_bg_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::common_get_bg_tile_info<2>),this), tilemap_mapper_delegate(FUNC(nmk16_state::tilemap_scan_pages),this),16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y);
|
||||
m_bg_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::common_get_bg_tile_info<3>),this), tilemap_mapper_delegate(FUNC(nmk16_state::tilemap_scan_pages),this),16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y);
|
||||
|
||||
m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_tx_tile_info),this),TILEMAP_SCAN_COLS,8,8,64,32);
|
||||
m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::common_get_tx_tile_info),this),TILEMAP_SCAN_COLS,8,8,64,32);
|
||||
|
||||
m_tx_tilemap->set_transparent_pen(15);
|
||||
|
||||
@ -195,7 +178,7 @@ VIDEO_START_MEMBER(nmk16_state,raphero)
|
||||
|
||||
VIDEO_START_MEMBER(nmk16_state,bjtwin)
|
||||
{
|
||||
m_bg_tilemap0 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::bjtwin_get_bg_tile_info),this),TILEMAP_SCAN_COLS,8,8,64,32);
|
||||
m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::bjtwin_get_bg_tile_info),this),TILEMAP_SCAN_COLS,8,8,64,32);
|
||||
|
||||
nmk16_video_init();
|
||||
m_videoshift = 64; /* 384x224 screen, leftmost 64 pixels have to be retrieved */
|
||||
@ -203,50 +186,6 @@ VIDEO_START_MEMBER(nmk16_state,bjtwin)
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Memory handlers
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
WRITE16_MEMBER(nmk16_state::nmk_bgvideoram0_w)
|
||||
{
|
||||
COMBINE_DATA(&m_nmk_bgvideoram0[offset]);
|
||||
m_bg_tilemap0->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(nmk16_state::nmk_bgvideoram1_w)
|
||||
{
|
||||
COMBINE_DATA(&m_nmk_bgvideoram1[offset]);
|
||||
m_bg_tilemap1->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(nmk16_state::nmk_bgvideoram2_w)
|
||||
{
|
||||
COMBINE_DATA(&m_nmk_bgvideoram2[offset]);
|
||||
m_bg_tilemap2->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(nmk16_state::nmk_bgvideoram3_w)
|
||||
{
|
||||
COMBINE_DATA(&m_nmk_bgvideoram3[offset]);
|
||||
m_bg_tilemap3->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(nmk16_state::nmk_fgvideoram_w)
|
||||
{
|
||||
COMBINE_DATA(&m_nmk_fgvideoram[offset]);
|
||||
m_fg_tilemap->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(nmk16_state::nmk_txvideoram_w)
|
||||
{
|
||||
COMBINE_DATA(&m_nmk_txvideoram[offset]);
|
||||
m_tx_tilemap->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
|
||||
WRITE16_MEMBER(nmk16_state::mustang_scroll_w)
|
||||
{
|
||||
// osd_printf_debug("mustang %04x %04x %04x\n",offset,data,mem_mask);
|
||||
@ -271,7 +210,7 @@ WRITE16_MEMBER(nmk16_state::mustang_scroll_w)
|
||||
break;
|
||||
}
|
||||
|
||||
m_bg_tilemap0->set_scrollx(0,m_mustang_bg_xscroll - m_videoshift);
|
||||
m_bg_tilemap[0]->set_scrollx(0,m_mustang_bg_xscroll - m_videoshift);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(nmk16_state::bioshipbg_scroll_w)
|
||||
@ -281,9 +220,9 @@ WRITE16_MEMBER(nmk16_state::bioshipbg_scroll_w)
|
||||
m_scroll[offset] = (data >> 8) & 0xff;
|
||||
|
||||
if (offset & 2)
|
||||
m_bg_tilemap0->set_scrolly(0,m_scroll[2] * 256 + m_scroll[3]);
|
||||
m_bg_tilemap[0]->set_scrolly(0,m_scroll[2] * 256 + m_scroll[3]);
|
||||
else
|
||||
m_bg_tilemap0->set_scrollx(0,m_scroll[0] * 256 + m_scroll[1] - m_videoshift);
|
||||
m_bg_tilemap[0]->set_scrollx(0,m_scroll[0] * 256 + m_scroll[1] - m_videoshift);
|
||||
}
|
||||
}
|
||||
|
||||
@ -294,9 +233,9 @@ WRITE16_MEMBER(nmk16_state::nmk_scroll_w)
|
||||
m_scroll[offset] = data & 0xff;
|
||||
|
||||
if (offset & 2)
|
||||
m_bg_tilemap0->set_scrolly(0,m_scroll[2] * 256 + m_scroll[3]);
|
||||
m_bg_tilemap[0]->set_scrolly(0,m_scroll[2] * 256 + m_scroll[3]);
|
||||
else
|
||||
m_bg_tilemap0->set_scrollx(0,m_scroll[0] * 256 + m_scroll[1] - m_videoshift);
|
||||
m_bg_tilemap[0]->set_scrollx(0,m_scroll[0] * 256 + m_scroll[1] - m_videoshift);
|
||||
}
|
||||
}
|
||||
|
||||
@ -317,8 +256,8 @@ WRITE16_MEMBER(nmk16_state::vandyke_scroll_w)
|
||||
{
|
||||
m_vscroll[offset] = data;
|
||||
|
||||
m_bg_tilemap0->set_scrollx(0,m_vscroll[0] * 256 + (m_vscroll[1] >> 8));
|
||||
m_bg_tilemap0->set_scrolly(0,m_vscroll[2] * 256 + (m_vscroll[3] >> 8));
|
||||
m_bg_tilemap[0]->set_scrollx(0,m_vscroll[0] * 256 + (m_vscroll[1] >> 8));
|
||||
m_bg_tilemap[0]->set_scrolly(0,m_vscroll[2] * 256 + (m_vscroll[3] >> 8));
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(nmk16_state::vandykeb_scroll_w)
|
||||
@ -331,16 +270,16 @@ WRITE16_MEMBER(nmk16_state::vandykeb_scroll_w)
|
||||
case 6: COMBINE_DATA(&m_vscroll[0]); break;
|
||||
}
|
||||
|
||||
m_bg_tilemap0->set_scrollx(0,m_vscroll[0] * 256 + (m_vscroll[1] >> 8));
|
||||
m_bg_tilemap0->set_scrolly(0,m_vscroll[2] * 256 + (m_vscroll[3] >> 8));
|
||||
m_bg_tilemap[0]->set_scrollx(0,m_vscroll[0] * 256 + (m_vscroll[1] >> 8));
|
||||
m_bg_tilemap[0]->set_scrolly(0,m_vscroll[2] * 256 + (m_vscroll[3] >> 8));
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(nmk16_state::manybloc_scroll_w)
|
||||
{
|
||||
COMBINE_DATA(&m_gunnail_scrollram[offset]);
|
||||
|
||||
m_bg_tilemap0->set_scrollx(0,m_gunnail_scrollram[0x82/2]-m_videoshift);
|
||||
m_bg_tilemap0->set_scrolly(0,m_gunnail_scrollram[0xc2/2]);
|
||||
m_bg_tilemap[0]->set_scrollx(0,m_gunnail_scrollram[0x82/2]-m_videoshift);
|
||||
m_bg_tilemap[0]->set_scrolly(0,m_gunnail_scrollram[0xc2/2]);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(nmk16_state::nmk_flipscreen_w)
|
||||
@ -356,10 +295,9 @@ WRITE16_MEMBER(nmk16_state::nmk_tilebank_w)
|
||||
if (m_bgbank != (data & 0xff))
|
||||
{
|
||||
m_bgbank = data & 0xff;
|
||||
if (m_bg_tilemap0) m_bg_tilemap0->mark_all_dirty();
|
||||
if (m_bg_tilemap1) m_bg_tilemap1->mark_all_dirty();
|
||||
if (m_bg_tilemap2) m_bg_tilemap2->mark_all_dirty();
|
||||
if (m_bg_tilemap3) m_bg_tilemap3->mark_all_dirty();
|
||||
for (int bank = 0; bank < 4; bank++)
|
||||
if (m_bg_tilemap[bank]) m_bg_tilemap[bank]->mark_all_dirty();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -397,12 +335,12 @@ inline void nmk16_state::nmk16_draw_sprite(bitmap_ind16 &bitmap, const rectangle
|
||||
if(!(spr[0] & 0x0001))
|
||||
return;
|
||||
|
||||
int sx = (spr[4] & 0x1FF) + m_videoshift;
|
||||
int sy = spr[6] & 0x1FF;
|
||||
int sx = (spr[4] & 0x1ff) + m_videoshift;
|
||||
int sy = spr[6] & 0x1ff;
|
||||
int code = spr[3];
|
||||
int color = spr[7];
|
||||
int w = spr[1] & 0x00F;
|
||||
int h = (spr[1] & 0x0F0) >> 4;
|
||||
int w = spr[1] & 0x00f;
|
||||
int h = (spr[1] & 0x0f0) >> 4;
|
||||
int xx,yy,x;
|
||||
int delta = 16;
|
||||
|
||||
@ -424,7 +362,7 @@ inline void nmk16_state::nmk16_draw_sprite(bitmap_ind16 &bitmap, const rectangle
|
||||
code,
|
||||
color,
|
||||
flip_screen(), flip_screen(),
|
||||
((x + 16) & 0x1FF) - 16,sy & 0x1FF,15);
|
||||
((x + 16) & 0x1ff) - 16,sy & 0x1ff,15);
|
||||
code++;
|
||||
x += delta;
|
||||
} while (--xx >= 0);
|
||||
@ -438,12 +376,12 @@ inline void nmk16_state::nmk16_draw_sprite_flipsupported(bitmap_ind16 &bitmap, c
|
||||
if(!(spr[0] & 0x0001))
|
||||
return;
|
||||
|
||||
int sx = (spr[4] & 0x1FF) + m_videoshift;
|
||||
int sy = spr[6] & 0x1FF;
|
||||
int sx = (spr[4] & 0x1ff) + m_videoshift;
|
||||
int sy = spr[6] & 0x1ff;
|
||||
int code = spr[3];
|
||||
int color = spr[7];
|
||||
int w = spr[1] & 0x00F;
|
||||
int h = (spr[1] & 0x0F0) >> 4;
|
||||
int w = spr[1] & 0x00f;
|
||||
int h = (spr[1] & 0x0f0) >> 4;
|
||||
int flipy = (spr[1] & 0x200) >> 9;
|
||||
int flipx = (spr[1] & 0x100) >> 8;
|
||||
|
||||
@ -472,7 +410,7 @@ inline void nmk16_state::nmk16_draw_sprite_flipsupported(bitmap_ind16 &bitmap, c
|
||||
code,
|
||||
color,
|
||||
flipx, flipy,
|
||||
((x + 16) & 0x1FF) - 16,sy & 0x1FF,15);
|
||||
((x + 16) & 0x1ff) - 16,sy & 0x1ff,15);
|
||||
code++;
|
||||
x += delta * (flipx ? -1 : 1);
|
||||
} while (--xx >= 0);
|
||||
@ -532,9 +470,9 @@ void nmk16_state::nmk16_draw_sprites_flipsupported(bitmap_ind16 &bitmap, const r
|
||||
|
||||
int nmk16_state::nmk16_bg_spr_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
m_bg_tilemap0->set_scrollx(0,-m_videoshift);
|
||||
m_bg_tilemap[0]->set_scrollx(0,-m_videoshift);
|
||||
|
||||
m_bg_tilemap0->draw(screen, bitmap, cliprect, 0,0);
|
||||
m_bg_tilemap[0]->draw(screen, bitmap, cliprect, 0,0);
|
||||
|
||||
nmk16_draw_sprites(bitmap,cliprect);
|
||||
return 0;
|
||||
@ -544,7 +482,7 @@ int nmk16_state::nmk16_bg_fg_spr_tx_update(screen_device &screen, bitmap_ind16 &
|
||||
{
|
||||
m_tx_tilemap->set_scrollx(0,-m_videoshift);
|
||||
|
||||
m_bg_tilemap0->draw(screen, bitmap, cliprect, 0,0);
|
||||
m_bg_tilemap[0]->draw(screen, bitmap, cliprect, 0,0);
|
||||
m_fg_tilemap->draw(screen, bitmap, cliprect, 0,0);
|
||||
|
||||
nmk16_draw_sprites(bitmap,cliprect);
|
||||
@ -557,7 +495,7 @@ int nmk16_state::nmk16_bg_spr_tx_update(screen_device &screen, bitmap_ind16 &bit
|
||||
{
|
||||
m_tx_tilemap->set_scrollx(0,-m_videoshift);
|
||||
|
||||
m_bg_tilemap0->draw(screen, bitmap, cliprect, 0,0);
|
||||
m_bg_tilemap[0]->draw(screen, bitmap, cliprect, 0,0);
|
||||
|
||||
nmk16_draw_sprites(bitmap,cliprect);
|
||||
|
||||
@ -569,7 +507,7 @@ int nmk16_state::nmk16_bg_sprflip_tx_update(screen_device &screen, bitmap_ind16
|
||||
{
|
||||
m_tx_tilemap->set_scrollx(0,-m_videoshift);
|
||||
|
||||
m_bg_tilemap0->draw(screen, bitmap, cliprect, 0,0);
|
||||
m_bg_tilemap[0]->draw(screen, bitmap, cliprect, 0,0);
|
||||
|
||||
nmk16_draw_sprites_flipsupported(bitmap,cliprect);
|
||||
|
||||
@ -579,7 +517,6 @@ int nmk16_state::nmk16_bg_sprflip_tx_update(screen_device &screen, bitmap_ind16
|
||||
|
||||
int nmk16_state::nmk16_bioshipbg_sprflip_tx_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
uint16_t *tilerom = (uint16_t *)memregion("gfx5")->base();
|
||||
int scrollx=-(m_bioship_scroll[1] + m_bioship_scroll[0]*256);
|
||||
int scrolly=-(m_bioship_scroll[3] + m_bioship_scroll[2]*256);
|
||||
|
||||
@ -593,7 +530,7 @@ int nmk16_state::nmk16_bioshipbg_sprflip_tx_update(screen_device &screen, bitmap
|
||||
|
||||
/* Draw background from tile rom */
|
||||
for (offs = 0;offs <0x1000;offs++) {
|
||||
uint16_t data = tilerom[offs+bank];
|
||||
uint16_t data = m_tilemap_rom[offs+bank];
|
||||
int numtile = data&0xfff;
|
||||
int color = (data&0xf000)>>12;
|
||||
|
||||
@ -603,7 +540,7 @@ int nmk16_state::nmk16_bioshipbg_sprflip_tx_update(screen_device &screen, bitmap
|
||||
0,0, /* no flip */
|
||||
16*sx,16*sy);
|
||||
|
||||
data = tilerom[offs+0x1000+bank];
|
||||
data = m_tilemap_rom[offs+0x1000+bank];
|
||||
numtile = data&0xfff;
|
||||
color = (data&0xf000)>>12;
|
||||
m_gfxdecode->gfx(3)->opaque(*m_background_bitmap,m_background_bitmap->cliprect(),
|
||||
@ -618,7 +555,7 @@ int nmk16_state::nmk16_bioshipbg_sprflip_tx_update(screen_device &screen, bitmap
|
||||
}
|
||||
|
||||
copyscrollbitmap(bitmap,*m_background_bitmap,1,&scrollx,1,&scrolly,cliprect);
|
||||
m_bg_tilemap0->draw(screen, bitmap, cliprect, 0,0);
|
||||
m_bg_tilemap[0]->draw(screen, bitmap, cliprect, 0,0);
|
||||
|
||||
nmk16_draw_sprites(bitmap,cliprect);
|
||||
|
||||
@ -630,7 +567,7 @@ int nmk16_state::nmk16_bg_sprswap_tx_update(screen_device &screen, bitmap_ind16
|
||||
{
|
||||
m_tx_tilemap->set_scrollx(0,-m_videoshift);
|
||||
|
||||
m_bg_tilemap0->draw(screen, bitmap, cliprect, 0,0);
|
||||
m_bg_tilemap[0]->draw(screen, bitmap, cliprect, 0,0);
|
||||
|
||||
nmk16_draw_sprites_swap(bitmap,cliprect, bittbl);
|
||||
|
||||
@ -642,7 +579,7 @@ int nmk16_state::nmk16_bg_sprswapflip_tx_update(screen_device &screen, bitmap_in
|
||||
{
|
||||
m_tx_tilemap->set_scrollx(0,-m_videoshift);
|
||||
|
||||
m_bg_tilemap0->draw(screen, bitmap, cliprect, 0,0);
|
||||
m_bg_tilemap[0]->draw(screen, bitmap, cliprect, 0,0);
|
||||
|
||||
nmk16_draw_sprites_swap_flipsupported(bitmap,cliprect, bittbl);
|
||||
|
||||
@ -665,20 +602,15 @@ int nmk16_state::nmk16_complexbg_sprswap_tx_update(screen_device &screen, bitmap
|
||||
while (y1 <= cliprect.max_y)
|
||||
{
|
||||
int const yscroll = m_gunnail_scrollramy[0] + m_gunnail_scrollramy[y1];
|
||||
int tilemap_bank_select;
|
||||
tilemap_t* bg_tilemap = m_bg_tilemap0;
|
||||
tilemap_t* bg_tilemap = m_bg_tilemap[0];
|
||||
|
||||
bgclip.min_y = y1;
|
||||
bgclip.max_y = y1;
|
||||
|
||||
|
||||
tilemap_bank_select = (m_gunnail_scrollram[0]&0x3000)>>12;
|
||||
switch (tilemap_bank_select)
|
||||
if (m_bg_tilemap[1] && m_bg_tilemap[2] && m_bg_tilemap[3])
|
||||
{
|
||||
case 0: if (m_bg_tilemap0) bg_tilemap = m_bg_tilemap0; break;
|
||||
case 1: if (m_bg_tilemap1) bg_tilemap = m_bg_tilemap1; break;
|
||||
case 2: if (m_bg_tilemap2) bg_tilemap = m_bg_tilemap2; break;
|
||||
case 3: if (m_bg_tilemap3) bg_tilemap = m_bg_tilemap3; break;
|
||||
int tilemap_bank_select = (m_gunnail_scrollram[0]&0x3000)>>12;
|
||||
bg_tilemap = m_bg_tilemap[tilemap_bank_select];
|
||||
}
|
||||
|
||||
bg_tilemap->set_scroll_rows(512);
|
||||
@ -696,18 +628,14 @@ int nmk16_state::nmk16_complexbg_sprswap_tx_update(screen_device &screen, bitmap
|
||||
{
|
||||
uint16_t yscroll = ((m_gunnail_scrollram[2]&0xff)<<8) | ((m_gunnail_scrollram[3]&0xff)<<0);
|
||||
uint16_t xscroll = ((m_gunnail_scrollram[0]&0xff)<<8) | ((m_gunnail_scrollram[1]&0xff)<<0);
|
||||
int tilemap_bank_select;
|
||||
tilemap_t* bg_tilemap = m_bg_tilemap0;
|
||||
tilemap_t* bg_tilemap = m_bg_tilemap[0];
|
||||
|
||||
//popmessage( "scroll %04x, %04x", yscroll,xscroll);
|
||||
|
||||
tilemap_bank_select = (xscroll&0x3000)>>12;
|
||||
switch (tilemap_bank_select)
|
||||
if (m_bg_tilemap[1] && m_bg_tilemap[2] && m_bg_tilemap[3])
|
||||
{
|
||||
case 0: if (m_bg_tilemap0) bg_tilemap = m_bg_tilemap0; break;
|
||||
case 1: if (m_bg_tilemap1) bg_tilemap = m_bg_tilemap1; break;
|
||||
case 2: if (m_bg_tilemap2) bg_tilemap = m_bg_tilemap2; break;
|
||||
case 3: if (m_bg_tilemap3) bg_tilemap = m_bg_tilemap3; break;
|
||||
int tilemap_bank_select = (m_gunnail_scrollram[0]&0x3000)>>12;
|
||||
bg_tilemap = m_bg_tilemap[tilemap_bank_select];
|
||||
}
|
||||
|
||||
bg_tilemap->set_scroll_rows(1);
|
||||
@ -747,7 +675,7 @@ uint32_t nmk16_state::screen_update_tharrier(screen_device &screen, bitmap_ind16
|
||||
/* I think the protection device probably copies this to the regs... */
|
||||
uint16_t tharrier_scroll = m_mainram[0x9f00/2];
|
||||
|
||||
m_bg_tilemap0->set_scrollx(0,tharrier_scroll);
|
||||
m_bg_tilemap[0]->set_scrollx(0,tharrier_scroll);
|
||||
|
||||
return nmk16_bg_sprflip_tx_update(screen, bitmap, cliprect);
|
||||
}
|
||||
@ -799,15 +727,15 @@ VIDEO_START_MEMBER(nmk16_state,afega)
|
||||
m_spriteram_old = make_unique_clear<uint16_t[]>(0x1000/2);
|
||||
m_spriteram_old2 = make_unique_clear<uint16_t[]>(0x1000/2);
|
||||
|
||||
m_bg_tilemap0 = &machine().tilemap().create(
|
||||
m_bg_tilemap[0] = &machine().tilemap().create(
|
||||
*m_gfxdecode,
|
||||
tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_bg0_tile_info),this),
|
||||
tilemap_mapper_delegate(FUNC(nmk16_state::afega_tilemap_scan_pages),this),
|
||||
tilemap_get_info_delegate(FUNC(nmk16_state::common_get_bg_tile_info<0>),this),
|
||||
tilemap_mapper_delegate(FUNC(nmk16_state::tilemap_scan_pages),this),
|
||||
16,16, TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y);
|
||||
|
||||
m_tx_tilemap = &machine().tilemap().create(
|
||||
*m_gfxdecode,
|
||||
tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_tx_tile_info),this),
|
||||
tilemap_get_info_delegate(FUNC(nmk16_state::common_get_tx_tile_info),this),
|
||||
TILEMAP_SCAN_COLS,
|
||||
8,8, 32,32);
|
||||
|
||||
@ -821,15 +749,15 @@ VIDEO_START_MEMBER(nmk16_state,grdnstrm)
|
||||
m_spriteram_old2 = make_unique_clear<uint16_t[]>(0x1000/2);
|
||||
|
||||
|
||||
m_bg_tilemap0 = &machine().tilemap().create(
|
||||
m_bg_tilemap[0] = &machine().tilemap().create(
|
||||
*m_gfxdecode,
|
||||
tilemap_get_info_delegate(FUNC(nmk16_state::get_tile_info_0_8bit),this),
|
||||
tilemap_mapper_delegate(FUNC(nmk16_state::afega_tilemap_scan_pages),this),
|
||||
tilemap_mapper_delegate(FUNC(nmk16_state::tilemap_scan_pages),this),
|
||||
16,16, TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y);
|
||||
|
||||
m_tx_tilemap = &machine().tilemap().create(
|
||||
*m_gfxdecode,
|
||||
tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_tx_tile_info),this),
|
||||
tilemap_get_info_delegate(FUNC(nmk16_state::common_get_tx_tile_info),this),
|
||||
TILEMAP_SCAN_COLS,
|
||||
8,8, 32,32);
|
||||
|
||||
@ -843,15 +771,15 @@ VIDEO_START_MEMBER(nmk16_state,firehawk)
|
||||
m_spriteram_old2 = make_unique_clear<uint16_t[]>(0x1000/2);
|
||||
|
||||
|
||||
m_bg_tilemap0 = &machine().tilemap().create(
|
||||
m_bg_tilemap[0] = &machine().tilemap().create(
|
||||
*m_gfxdecode,
|
||||
tilemap_get_info_delegate(FUNC(nmk16_state::get_tile_info_0_8bit),this),
|
||||
tilemap_mapper_delegate(FUNC(nmk16_state::afega_tilemap_scan_pages),this),
|
||||
tilemap_mapper_delegate(FUNC(nmk16_state::tilemap_scan_pages),this),
|
||||
16,16, TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y);
|
||||
|
||||
m_tx_tilemap = &machine().tilemap().create(
|
||||
*m_gfxdecode,
|
||||
tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_tx_tile_info),this),
|
||||
tilemap_get_info_delegate(FUNC(nmk16_state::common_get_tx_tile_info),this),
|
||||
TILEMAP_SCAN_COLS,
|
||||
8,8, 32,32);
|
||||
|
||||
@ -880,14 +808,14 @@ void nmk16_state::video_update(screen_device &screen, bitmap_ind16 &bitmap, cons
|
||||
}
|
||||
|
||||
|
||||
m_bg_tilemap0->set_scrollx(0, m_afega_scroll_0[1] + xoffset);
|
||||
m_bg_tilemap0->set_scrolly(0, m_afega_scroll_0[0] + yoffset);
|
||||
m_bg_tilemap[0]->set_scrollx(0, m_afega_scroll[0][1] + xoffset);
|
||||
m_bg_tilemap[0]->set_scrolly(0, m_afega_scroll[0][0] + yoffset);
|
||||
|
||||
m_tx_tilemap->set_scrollx(0, m_afega_scroll_1[1]);
|
||||
m_tx_tilemap->set_scrolly(0, m_afega_scroll_1[0]);
|
||||
m_tx_tilemap->set_scrollx(0, m_afega_scroll[1][1]);
|
||||
m_tx_tilemap->set_scrolly(0, m_afega_scroll[1][0]);
|
||||
|
||||
|
||||
m_bg_tilemap0->draw(screen, bitmap, cliprect, 0,0);
|
||||
m_bg_tilemap[0]->draw(screen, bitmap, cliprect, 0,0);
|
||||
|
||||
nmk16_draw_sprites_flipsupported(bitmap,cliprect);
|
||||
|
||||
@ -896,10 +824,10 @@ void nmk16_state::video_update(screen_device &screen, bitmap_ind16 &bitmap, cons
|
||||
|
||||
void nmk16_state::redhawki_video_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect )
|
||||
{
|
||||
m_bg_tilemap0->set_scrollx(0, m_afega_scroll_1[0]&0xff);
|
||||
m_bg_tilemap0->set_scrolly(0, m_afega_scroll_1[1]&0xff);
|
||||
m_bg_tilemap[0]->set_scrollx(0, m_afega_scroll[1][0]&0xff);
|
||||
m_bg_tilemap[0]->set_scrolly(0, m_afega_scroll[1][1]&0xff);
|
||||
|
||||
m_bg_tilemap0->draw(screen, bitmap, cliprect, 0,0);
|
||||
m_bg_tilemap[0]->draw(screen, bitmap, cliprect, 0,0);
|
||||
|
||||
nmk16_draw_sprites_flipsupported(bitmap,cliprect);
|
||||
}
|
||||
@ -911,10 +839,10 @@ uint32_t nmk16_state::screen_update_redhawki(screen_device &screen, bitmap_ind16
|
||||
|
||||
uint32_t nmk16_state::screen_update_firehawk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
m_bg_tilemap0->set_scrolly(0, m_afega_scroll_1[1] + 0x100);
|
||||
m_bg_tilemap0->set_scrollx(0, m_afega_scroll_0[1] - 0x100);
|
||||
m_bg_tilemap[0]->set_scrolly(0, m_afega_scroll[1][1] + 0x100);
|
||||
m_bg_tilemap[0]->set_scrollx(0, m_afega_scroll[0][1] - 0x100);
|
||||
|
||||
m_bg_tilemap0->draw(screen, bitmap, cliprect, 0,0);
|
||||
m_bg_tilemap[0]->draw(screen, bitmap, cliprect, 0,0);
|
||||
|
||||
nmk16_draw_sprites_flipsupported(bitmap,cliprect);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user