mirror of
https://github.com/holub/mame
synced 2025-04-24 09:20:02 +03:00
finished modernizing gp9001 [smf]
This commit is contained in:
parent
0a5ffdd5b0
commit
5e0c3eccc8
@ -1005,7 +1005,7 @@ static ADDRESS_MAP_START( tekipaki_68k_mem, AS_PROGRAM, 16, toaplan2_state )
|
||||
AM_RANGE(0x020000, 0x03ffff) AM_ROM // extra for Whoopee
|
||||
AM_RANGE(0x080000, 0x082fff) AM_RAM
|
||||
AM_RANGE(0x0c0000, 0x0c0fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
|
||||
AM_RANGE(0x140000, 0x14000d) AM_DEVREADWRITE_LEGACY("gp9001vdp0", gp9001_vdp_r, gp9001_vdp_w)
|
||||
AM_RANGE(0x140000, 0x14000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
|
||||
AM_RANGE(0x180000, 0x180001) AM_READ_PORT("DSWA")
|
||||
AM_RANGE(0x180010, 0x180011) AM_READ_PORT("DSWB")
|
||||
AM_RANGE(0x180020, 0x180021) AM_READ_PORT("SYS")
|
||||
@ -1023,7 +1023,7 @@ static ADDRESS_MAP_START( ghox_68k_mem, AS_PROGRAM, 16, toaplan2_state )
|
||||
AM_RANGE(0x080000, 0x083fff) AM_RAM
|
||||
AM_RANGE(0x0c0000, 0x0c0fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
|
||||
AM_RANGE(0x100000, 0x100001) AM_READ(ghox_p1_h_analog_r)
|
||||
AM_RANGE(0x140000, 0x14000d) AM_DEVREADWRITE_LEGACY("gp9001vdp0", gp9001_vdp_r, gp9001_vdp_w)
|
||||
AM_RANGE(0x140000, 0x14000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
|
||||
AM_RANGE(0x180000, 0x180001) AM_READWRITE(ghox_mcu_r, ghox_mcu_w) // really part of shared RAM
|
||||
AM_RANGE(0x180006, 0x180007) AM_READ_PORT("DSWA")
|
||||
AM_RANGE(0x180008, 0x180009) AM_READ_PORT("DSWB")
|
||||
@ -1044,9 +1044,9 @@ static ADDRESS_MAP_START( dogyuun_68k_mem, AS_PROGRAM, 16, toaplan2_state )
|
||||
AM_RANGE(0x200018, 0x200019) AM_READ_PORT("SYS")
|
||||
AM_RANGE(0x20001c, 0x20001d) AM_WRITE(toaplan2_v25_coin_word_w) // Coin count/lock + v25 reset line
|
||||
AM_RANGE(0x210000, 0x21ffff) AM_READWRITE(shared_ram_r, shared_ram_w )
|
||||
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE_LEGACY("gp9001vdp0", gp9001_vdp_r, gp9001_vdp_w)
|
||||
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
|
||||
AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
|
||||
AM_RANGE(0x500000, 0x50000d) AM_DEVREADWRITE_LEGACY("gp9001vdp1", gp9001_vdp_r, gp9001_vdp_w)
|
||||
AM_RANGE(0x500000, 0x50000d) AM_DEVREADWRITE("gp9001vdp1", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
|
||||
AM_RANGE(0x700000, 0x700001) AM_READ(video_count_r) // test bit 8
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -1059,7 +1059,7 @@ static ADDRESS_MAP_START( kbash_68k_mem, AS_PROGRAM, 16, toaplan2_state )
|
||||
AM_RANGE(0x208014, 0x208015) AM_READ_PORT("IN2")
|
||||
AM_RANGE(0x208018, 0x208019) AM_READ_PORT("SYS")
|
||||
AM_RANGE(0x20801c, 0x20801d) AM_WRITE(toaplan2_coin_word_w)
|
||||
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE_LEGACY("gp9001vdp0", gp9001_vdp_r, gp9001_vdp_w)
|
||||
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
|
||||
AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
|
||||
AM_RANGE(0x700000, 0x700001) AM_READ(video_count_r) // test bit 8
|
||||
ADDRESS_MAP_END
|
||||
@ -1081,7 +1081,7 @@ static ADDRESS_MAP_START( kbash2_68k_mem, AS_PROGRAM, 16, toaplan2_state )
|
||||
AM_RANGE(0x200024, 0x200025) AM_DEVREADWRITE8("oki1", okim6295_device, read, write, 0x00ff)
|
||||
AM_RANGE(0x200028, 0x200029) AM_WRITE(oki1_bankswitch_w)
|
||||
AM_RANGE(0x20002c, 0x20002d) AM_READ(video_count_r)
|
||||
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE_LEGACY("gp9001vdp0", gp9001_vdp_r, gp9001_vdp_w)
|
||||
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
|
||||
AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -1089,7 +1089,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( truxton2_68k_mem, AS_PROGRAM, 16, toaplan2_state )
|
||||
AM_RANGE(0x000000, 0x07ffff) AM_ROM
|
||||
AM_RANGE(0x100000, 0x10ffff) AM_RAM
|
||||
AM_RANGE(0x200000, 0x20000d) AM_DEVREADWRITE_LEGACY("gp9001vdp0", gp9001_vdp_r, gp9001_vdp_w)
|
||||
AM_RANGE(0x200000, 0x20000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
|
||||
AM_RANGE(0x300000, 0x300fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
|
||||
AM_RANGE(0x400000, 0x401fff) AM_RAM_WRITE(toaplan2_txvideoram16_w) AM_SHARE("txvideoram16")
|
||||
AM_RANGE(0x402000, 0x4021ff) AM_RAM_WRITE(toaplan2_txvideoram16_offs_w) AM_SHARE("txvram_offs")
|
||||
@ -1114,7 +1114,7 @@ static ADDRESS_MAP_START( pipibibs_68k_mem, AS_PROGRAM, 16, toaplan2_state )
|
||||
AM_RANGE(0x000000, 0x03ffff) AM_ROM
|
||||
AM_RANGE(0x080000, 0x082fff) AM_RAM
|
||||
AM_RANGE(0x0c0000, 0x0c0fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
|
||||
AM_RANGE(0x140000, 0x14000d) AM_DEVREADWRITE_LEGACY("gp9001vdp0", gp9001_vdp_r, gp9001_vdp_w)
|
||||
AM_RANGE(0x140000, 0x14000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
|
||||
AM_RANGE(0x190000, 0x190fff) AM_READWRITE(shared_ram_r, shared_ram_w)
|
||||
AM_RANGE(0x19c01c, 0x19c01d) AM_WRITE(toaplan2_coin_word_w)
|
||||
AM_RANGE(0x19c020, 0x19c021) AM_READ_PORT("DSWA")
|
||||
@ -1129,13 +1129,13 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( pipibibi_bootleg_68k_mem, AS_PROGRAM, 16, toaplan2_state )
|
||||
AM_RANGE(0x000000, 0x03ffff) AM_ROM
|
||||
AM_RANGE(0x080000, 0x082fff) AM_RAM
|
||||
AM_RANGE(0x083000, 0x0837ff) AM_DEVREADWRITE_LEGACY("gp9001vdp0", pipibibi_bootleg_spriteram16_r, pipibibi_bootleg_spriteram16_w) // SpriteRAM
|
||||
AM_RANGE(0x083000, 0x0837ff) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, pipibibi_bootleg_spriteram16_r, pipibibi_bootleg_spriteram16_w) // SpriteRAM
|
||||
AM_RANGE(0x083800, 0x087fff) AM_RAM // SpriteRAM (unused)
|
||||
AM_RANGE(0x0c0000, 0x0c0fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
|
||||
AM_RANGE(0x120000, 0x120fff) AM_RAM // Copy of SpriteRAM ?
|
||||
// AM_RANGE(0x13f000, 0x13f001) AM_WRITENOP // ???
|
||||
AM_RANGE(0x180000, 0x182fff) AM_DEVREADWRITE_LEGACY("gp9001vdp0", pipibibi_bootleg_videoram16_r, pipibibi_bootleg_videoram16_w) // TileRAM
|
||||
AM_RANGE(0x188000, 0x18800f) AM_DEVWRITE_LEGACY("gp9001vdp0", pipibibi_bootleg_scroll_w)
|
||||
AM_RANGE(0x180000, 0x182fff) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, pipibibi_bootleg_videoram16_r, pipibibi_bootleg_videoram16_w) // TileRAM
|
||||
AM_RANGE(0x188000, 0x18800f) AM_DEVWRITE("gp9001vdp0", gp9001vdp_device, pipibibi_bootleg_scroll_w)
|
||||
AM_RANGE(0x190002, 0x190003) AM_READ(shared_ram_r) // Z80 ready ?
|
||||
AM_RANGE(0x190010, 0x190011) AM_WRITE(shared_ram_w) // Z80 task to perform
|
||||
AM_RANGE(0x19c01c, 0x19c01d) AM_WRITE(toaplan2_coin_word_w)
|
||||
@ -1157,7 +1157,7 @@ static ADDRESS_MAP_START( fixeight_68k_mem, AS_PROGRAM, 16, toaplan2_state )
|
||||
AM_RANGE(0x200010, 0x200011) AM_READ_PORT("SYS")
|
||||
AM_RANGE(0x20001c, 0x20001d) AM_WRITE(toaplan2_coin_word_w)
|
||||
AM_RANGE(0x280000, 0x28ffff) AM_READWRITE(shared_ram_r, shared_ram_w )
|
||||
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE_LEGACY("gp9001vdp0", gp9001_vdp_r, gp9001_vdp_w)
|
||||
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
|
||||
AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
|
||||
AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(toaplan2_txvideoram16_w) AM_SHARE("txvideoram16")
|
||||
AM_RANGE(0x502000, 0x5021ff) AM_RAM_WRITE(toaplan2_txvideoram16_offs_w) AM_SHARE("txvram_offs")
|
||||
@ -1179,7 +1179,7 @@ static ADDRESS_MAP_START( fixeightbl_68k_mem, AS_PROGRAM, 16, toaplan2_state )
|
||||
AM_RANGE(0x200014, 0x200015) AM_WRITE(fixeightbl_oki_bankswitch_w) // Sound banking. Code at $4084c, $5070
|
||||
AM_RANGE(0x200018, 0x200019) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
|
||||
AM_RANGE(0x20001c, 0x20001d) AM_READ_PORT("DSWA")
|
||||
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE_LEGACY("gp9001vdp0", gp9001_vdp_r, gp9001_vdp_w)
|
||||
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
|
||||
AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
|
||||
AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(toaplan2_txvideoram16_w) AM_SHARE("txvideoram16")
|
||||
AM_RANGE(0x502000, 0x5021ff) AM_RAM_WRITE(toaplan2_txvideoram16_offs_w) AM_SHARE("txvram_offs")
|
||||
@ -1198,7 +1198,7 @@ static ADDRESS_MAP_START( vfive_68k_mem, AS_PROGRAM, 16, toaplan2_state )
|
||||
AM_RANGE(0x200018, 0x200019) AM_READ_PORT("SYS")
|
||||
AM_RANGE(0x20001c, 0x20001d) AM_WRITE(toaplan2_v25_coin_word_w) // Coin count/lock + v25 reset line
|
||||
AM_RANGE(0x210000, 0x21ffff) AM_READWRITE(shared_ram_r, shared_ram_w )
|
||||
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE_LEGACY("gp9001vdp0", gp9001_vdp_r, gp9001_vdp_w)
|
||||
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
|
||||
AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
|
||||
AM_RANGE(0x700000, 0x700001) AM_READ(video_count_r)
|
||||
ADDRESS_MAP_END
|
||||
@ -1212,9 +1212,9 @@ static ADDRESS_MAP_START( batsugun_68k_mem, AS_PROGRAM, 16, toaplan2_state )
|
||||
AM_RANGE(0x200018, 0x200019) AM_READ_PORT("SYS")
|
||||
AM_RANGE(0x20001c, 0x20001d) AM_WRITE(toaplan2_v25_coin_word_w) // Coin count/lock + v25 reset line
|
||||
AM_RANGE(0x210000, 0x21ffff) AM_READWRITE(shared_ram_r, shared_ram_w )
|
||||
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE_LEGACY("gp9001vdp0", gp9001_vdp_r, gp9001_vdp_w)
|
||||
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
|
||||
AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
|
||||
AM_RANGE(0x500000, 0x50000d) AM_DEVREADWRITE_LEGACY("gp9001vdp1", gp9001_vdp_r, gp9001_vdp_w)
|
||||
AM_RANGE(0x500000, 0x50000d) AM_DEVREADWRITE("gp9001vdp1", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
|
||||
AM_RANGE(0x700000, 0x700001) AM_READ(video_count_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -1222,7 +1222,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( snowbro2_68k_mem, AS_PROGRAM, 16, toaplan2_state )
|
||||
AM_RANGE(0x000000, 0x07ffff) AM_ROM
|
||||
AM_RANGE(0x100000, 0x10ffff) AM_RAM
|
||||
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE_LEGACY("gp9001vdp0", gp9001_vdp_r, gp9001_vdp_w)
|
||||
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
|
||||
AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
|
||||
AM_RANGE(0x500000, 0x500003) AM_DEVREADWRITE8("ymsnd", ym2151_device, read, write, 0x00ff)
|
||||
AM_RANGE(0x600000, 0x600001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
|
||||
@ -1251,7 +1251,7 @@ static ADDRESS_MAP_START( mahoudai_68k_mem, AS_PROGRAM, 16, toaplan2_state )
|
||||
AM_RANGE(0x21c030, 0x21c031) AM_READ_PORT("DSWB")
|
||||
AM_RANGE(0x21c034, 0x21c035) AM_READ_PORT("JMPR")
|
||||
AM_RANGE(0x21c03c, 0x21c03d) AM_READ(video_count_r)
|
||||
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE_LEGACY("gp9001vdp0", gp9001_vdp_r, gp9001_vdp_w)
|
||||
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
|
||||
AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
|
||||
AM_RANGE(0x401000, 0x4017ff) AM_RAM // Unused palette RAM
|
||||
AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(toaplan2_txvideoram16_w) AM_SHARE("txvideoram16")
|
||||
@ -1275,7 +1275,7 @@ static ADDRESS_MAP_START( shippumd_68k_mem, AS_PROGRAM, 16, toaplan2_state )
|
||||
AM_RANGE(0x21c030, 0x21c031) AM_READ_PORT("DSWB")
|
||||
AM_RANGE(0x21c034, 0x21c035) AM_READ_PORT("JMPR")
|
||||
AM_RANGE(0x21c03c, 0x21c03d) AM_READ(video_count_r)
|
||||
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE_LEGACY("gp9001vdp0", gp9001_vdp_r, gp9001_vdp_w)
|
||||
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
|
||||
AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
|
||||
AM_RANGE(0x401000, 0x4017ff) AM_RAM // Unused palette RAM
|
||||
AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(toaplan2_txvideoram16_w) AM_SHARE("txvideoram16")
|
||||
@ -1298,7 +1298,7 @@ static ADDRESS_MAP_START( bgaregga_68k_mem, AS_PROGRAM, 16, toaplan2_state )
|
||||
AM_RANGE(0x21c030, 0x21c031) AM_READ_PORT("DSWB")
|
||||
AM_RANGE(0x21c034, 0x21c035) AM_READ_PORT("JMPR")
|
||||
AM_RANGE(0x21c03c, 0x21c03d) AM_READ(video_count_r)
|
||||
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE_LEGACY("gp9001vdp0", gp9001_vdp_r, gp9001_vdp_w)
|
||||
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
|
||||
AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
|
||||
AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(toaplan2_txvideoram16_w) AM_SHARE("txvideoram16")
|
||||
AM_RANGE(0x502000, 0x5021ff) AM_RAM_WRITE(toaplan2_txvideoram16_offs_w) AM_SHARE("txvram_offs")
|
||||
@ -1319,7 +1319,7 @@ static ADDRESS_MAP_START( batrider_68k_mem, AS_PROGRAM, 16, toaplan2_state )
|
||||
AM_RANGE(0x203400, 0x207fff) AM_RAM AM_SHARE("mainram16")
|
||||
AM_RANGE(0x208000, 0x20ffff) AM_RAM
|
||||
AM_RANGE(0x300000, 0x37ffff) AM_READ(batrider_z80rom_r)
|
||||
AM_RANGE(0x400000, 0x40000d) AM_DEVREADWRITE_LEGACY("gp9001vdp0", gp9001_vdp_alt_r, gp9001_vdp_alt_w)
|
||||
AM_RANGE(0x400000, 0x40000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_alt_r, gp9001_vdp_alt_w)
|
||||
AM_RANGE(0x500000, 0x500001) AM_READ_PORT("IN")
|
||||
AM_RANGE(0x500002, 0x500003) AM_READ_PORT("SYS-DSW")
|
||||
AM_RANGE(0x500004, 0x500005) AM_READ_PORT("DSW")
|
||||
@ -1349,7 +1349,7 @@ static ADDRESS_MAP_START( bbakraid_68k_mem, AS_PROGRAM, 16, toaplan2_state )
|
||||
AM_RANGE(0x203400, 0x207fff) AM_RAM AM_SHARE("mainram16")
|
||||
AM_RANGE(0x208000, 0x20ffff) AM_RAM
|
||||
AM_RANGE(0x300000, 0x33ffff) AM_READ(batrider_z80rom_r)
|
||||
AM_RANGE(0x400000, 0x40000d) AM_DEVREADWRITE_LEGACY("gp9001vdp0", gp9001_vdp_alt_r, gp9001_vdp_alt_w)
|
||||
AM_RANGE(0x400000, 0x40000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_alt_r, gp9001_vdp_alt_w)
|
||||
AM_RANGE(0x500000, 0x500001) AM_READ_PORT("IN")
|
||||
AM_RANGE(0x500002, 0x500003) AM_READ_PORT("SYS-DSW")
|
||||
AM_RANGE(0x500004, 0x500005) AM_READ_PORT("DSW")
|
||||
|
@ -148,62 +148,54 @@ Pipi & Bibis | Fix Eight | V-Five | Snow Bros. 2 |
|
||||
#define GP9001_PRIMASK (0x000e)
|
||||
|
||||
|
||||
static WRITE16_DEVICE_HANDLER( gp9001_bg_tmap_w )
|
||||
WRITE16_MEMBER( gp9001vdp_device::gp9001_bg_tmap_w )
|
||||
{
|
||||
gp9001vdp_device *vdp = (gp9001vdp_device*)device;
|
||||
COMBINE_DATA(&vdp->bg.vram16[offset]);
|
||||
vdp->bg.tmap->mark_tile_dirty(offset/2);
|
||||
COMBINE_DATA(&bg.vram16[offset]);
|
||||
bg.tmap->mark_tile_dirty(offset/2);
|
||||
}
|
||||
|
||||
static WRITE16_DEVICE_HANDLER( gp9001_fg_tmap_w )
|
||||
WRITE16_MEMBER( gp9001vdp_device::gp9001_fg_tmap_w )
|
||||
{
|
||||
gp9001vdp_device *vdp = (gp9001vdp_device*)device;
|
||||
COMBINE_DATA(&vdp->fg.vram16[offset]);
|
||||
vdp->fg.tmap->mark_tile_dirty(offset/2);
|
||||
COMBINE_DATA(&fg.vram16[offset]);
|
||||
fg.tmap->mark_tile_dirty(offset/2);
|
||||
}
|
||||
|
||||
static WRITE16_DEVICE_HANDLER( gp9001_top_tmap_w )
|
||||
WRITE16_MEMBER( gp9001vdp_device::gp9001_top_tmap_w )
|
||||
{
|
||||
gp9001vdp_device *vdp = (gp9001vdp_device*)device;
|
||||
COMBINE_DATA(&vdp->top.vram16[offset]);
|
||||
vdp->top.tmap->mark_tile_dirty(offset/2);
|
||||
COMBINE_DATA(&top.vram16[offset]);
|
||||
top.tmap->mark_tile_dirty(offset/2);
|
||||
}
|
||||
|
||||
static READ16_DEVICE_HANDLER( gp9001_bg_tmap_r )
|
||||
READ16_MEMBER( gp9001vdp_device::gp9001_bg_tmap_r )
|
||||
{
|
||||
gp9001vdp_device *vdp = (gp9001vdp_device*)device;
|
||||
return vdp->bg.vram16[offset];
|
||||
return bg.vram16[offset];
|
||||
}
|
||||
|
||||
static READ16_DEVICE_HANDLER( gp9001_fg_tmap_r )
|
||||
READ16_MEMBER( gp9001vdp_device::gp9001_fg_tmap_r )
|
||||
{
|
||||
gp9001vdp_device *vdp = (gp9001vdp_device*)device;
|
||||
return vdp->fg.vram16[offset];
|
||||
return fg.vram16[offset];
|
||||
}
|
||||
|
||||
static READ16_DEVICE_HANDLER( gp9001_top_tmap_r )
|
||||
READ16_MEMBER( gp9001vdp_device::gp9001_top_tmap_r )
|
||||
{
|
||||
gp9001vdp_device *vdp = (gp9001vdp_device*)device;
|
||||
return vdp->top.vram16[offset];
|
||||
return top.vram16[offset];
|
||||
}
|
||||
|
||||
static READ16_DEVICE_HANDLER( gp9001_spram_r )
|
||||
READ16_MEMBER( gp9001vdp_device::gp9001_spram_r )
|
||||
{
|
||||
gp9001vdp_device *vdp = (gp9001vdp_device*)device;
|
||||
return vdp->sp.vram16[offset];
|
||||
return sp.vram16[offset];
|
||||
}
|
||||
|
||||
static WRITE16_DEVICE_HANDLER( gp9001_spram_w )
|
||||
WRITE16_MEMBER( gp9001vdp_device::gp9001_spram_w )
|
||||
{
|
||||
gp9001vdp_device *vdp = (gp9001vdp_device*)device;
|
||||
COMBINE_DATA(&vdp->sp.vram16[offset]);
|
||||
COMBINE_DATA(&sp.vram16[offset]);
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( gp9001vdp_map, AS_0, 16, gp9001vdp_device )
|
||||
AM_RANGE(0x0000, 0x0fff) AM_DEVREADWRITE_LEGACY(DEVICE_SELF, gp9001_bg_tmap_r, gp9001_bg_tmap_w)
|
||||
AM_RANGE(0x1000, 0x1fff) AM_DEVREADWRITE_LEGACY(DEVICE_SELF, gp9001_fg_tmap_r, gp9001_fg_tmap_w)
|
||||
AM_RANGE(0x2000, 0x2fff) AM_DEVREADWRITE_LEGACY(DEVICE_SELF, gp9001_top_tmap_r, gp9001_top_tmap_w)
|
||||
AM_RANGE(0x3000, 0x37ff) AM_DEVREADWRITE_LEGACY(DEVICE_SELF, gp9001_spram_r, gp9001_spram_w)
|
||||
AM_RANGE(0x0000, 0x0fff) AM_READWRITE(gp9001_bg_tmap_r, gp9001_bg_tmap_w)
|
||||
AM_RANGE(0x1000, 0x1fff) AM_READWRITE(gp9001_fg_tmap_r, gp9001_fg_tmap_w)
|
||||
AM_RANGE(0x2000, 0x2fff) AM_READWRITE(gp9001_top_tmap_r, gp9001_top_tmap_w)
|
||||
AM_RANGE(0x3000, 0x37ff) AM_READWRITE(gp9001_spram_r, gp9001_spram_w)
|
||||
AM_RANGE(0x3800, 0x3fff) AM_RAM // sprite mirror?
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -391,65 +383,43 @@ void gp9001vdp_device::device_reset()
|
||||
}
|
||||
|
||||
|
||||
static void gp9001_voffs_w(gp9001vdp_device *vdp, offs_t offset, UINT16 data, UINT16 mem_mask)
|
||||
void gp9001vdp_device::gp9001_voffs_w(offs_t offset, UINT16 data, UINT16 mem_mask)
|
||||
{
|
||||
COMBINE_DATA(&vdp->gp9001_voffs);
|
||||
COMBINE_DATA(&gp9001_voffs);
|
||||
}
|
||||
|
||||
static int gp9001_videoram16_r(gp9001vdp_device *vdp, offs_t offset)
|
||||
int gp9001vdp_device::gp9001_videoram16_r(offs_t offset)
|
||||
{
|
||||
int offs = vdp->gp9001_voffs;
|
||||
vdp->gp9001_voffs++;
|
||||
return vdp->space().read_word(offs*2);
|
||||
int offs = gp9001_voffs;
|
||||
gp9001_voffs++;
|
||||
return space().read_word(offs*2);
|
||||
}
|
||||
|
||||
|
||||
static void gp9001_videoram16_w(gp9001vdp_device *vdp, offs_t offset, UINT16 data, UINT16 mem_mask)
|
||||
void gp9001vdp_device::gp9001_videoram16_w(offs_t offset, UINT16 data, UINT16 mem_mask)
|
||||
{
|
||||
int offs = vdp->gp9001_voffs;
|
||||
vdp->gp9001_voffs++;
|
||||
vdp->space().write_word(offs*2, data, mem_mask);
|
||||
}
|
||||
|
||||
static WRITE16_DEVICE_HANDLER( gp9001_devvoffs_w )
|
||||
{
|
||||
gp9001vdp_device *vdp = (gp9001vdp_device *)device;
|
||||
|
||||
gp9001_voffs_w(vdp, offset, data, mem_mask);
|
||||
int offs = gp9001_voffs;
|
||||
gp9001_voffs++;
|
||||
space().write_word(offs*2, data, mem_mask);
|
||||
}
|
||||
|
||||
|
||||
static READ16_DEVICE_HANDLER( gp9001_devvideoram16_r )
|
||||
UINT16 gp9001vdp_device::gp9001_vdpstatus_r()
|
||||
{
|
||||
gp9001vdp_device *vdp = (gp9001vdp_device *)device;
|
||||
return gp9001_videoram16_r(vdp, offset);
|
||||
return ((machine().primary_screen->vpos() + 15) % 262) >= 245;
|
||||
}
|
||||
|
||||
static WRITE16_DEVICE_HANDLER( gp9001_devvideoram16_w )
|
||||
void gp9001vdp_device::gp9001_scroll_reg_select_w( offs_t offset, UINT16 data, UINT16 mem_mask )
|
||||
{
|
||||
gp9001vdp_device *vdp = (gp9001vdp_device *)device;
|
||||
gp9001_videoram16_w(vdp, offset, data, mem_mask);
|
||||
}
|
||||
|
||||
|
||||
static READ16_DEVICE_HANDLER( gp9001_vdpstatus_r )
|
||||
{
|
||||
return ((space.machine().primary_screen->vpos() + 15) % 262) >= 245;
|
||||
}
|
||||
|
||||
static WRITE16_DEVICE_HANDLER( gp9001_scroll_reg_select_w )
|
||||
{
|
||||
gp9001vdp_device *vdp = (gp9001vdp_device *)device;
|
||||
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
vdp->gp9001_scroll_reg = data & 0x8f;
|
||||
gp9001_scroll_reg = data & 0x8f;
|
||||
if (data & 0x70)
|
||||
logerror("Hmmm, selecting unknown LSB video control register (%04x) Video controller %01x \n",vdp->gp9001_scroll_reg,vdp->tile_region>>1);
|
||||
logerror("Hmmm, selecting unknown LSB video control register (%04x) Video controller %01x \n",gp9001_scroll_reg,tile_region>>1);
|
||||
}
|
||||
else
|
||||
{
|
||||
logerror("Hmmm, selecting unknown MSB video control register (%04x) Video controller %01x \n",vdp->gp9001_scroll_reg,vdp->tile_region>>1);
|
||||
logerror("Hmmm, selecting unknown MSB video control register (%04x) Video controller %01x \n",gp9001_scroll_reg,tile_region>>1);
|
||||
}
|
||||
}
|
||||
|
||||
@ -530,7 +500,7 @@ static void gp9001_set_sprite_scrolly_and_flip_reg(gp9001spritelayer* layer, UIN
|
||||
}
|
||||
}
|
||||
|
||||
static void gp9001_scroll_reg_data_w(gp9001vdp_device *vdp, offs_t offset, UINT16 data, UINT16 mem_mask)
|
||||
void gp9001vdp_device::gp9001_scroll_reg_data_w(offs_t offset, UINT16 data, UINT16 mem_mask)
|
||||
{
|
||||
/************************************************************************/
|
||||
/***** layer X and Y flips can be set independently, so emulate it ******/
|
||||
@ -539,21 +509,21 @@ static void gp9001_scroll_reg_data_w(gp9001vdp_device *vdp, offs_t offset, UINT1
|
||||
//printf("gp9001_scroll_reg_data_w %04x %04x\n", offset, data);
|
||||
|
||||
// writes with 8x set turn on flip for the specified layer / axis
|
||||
int flip = vdp->gp9001_scroll_reg & 0x80;
|
||||
int flip = gp9001_scroll_reg & 0x80;
|
||||
|
||||
switch(vdp->gp9001_scroll_reg&0x7f)
|
||||
switch(gp9001_scroll_reg&0x7f)
|
||||
{
|
||||
case 0x00: gp9001_set_scrollx_and_flip_reg(&vdp->bg, data, mem_mask, flip); break;
|
||||
case 0x01: gp9001_set_scrolly_and_flip_reg(&vdp->bg, data, mem_mask, flip); break;
|
||||
case 0x00: gp9001_set_scrollx_and_flip_reg(&bg, data, mem_mask, flip); break;
|
||||
case 0x01: gp9001_set_scrolly_and_flip_reg(&bg, data, mem_mask, flip); break;
|
||||
|
||||
case 0x02: gp9001_set_scrollx_and_flip_reg(&vdp->fg, data, mem_mask, flip); break;
|
||||
case 0x03: gp9001_set_scrolly_and_flip_reg(&vdp->fg, data, mem_mask, flip); break;
|
||||
case 0x02: gp9001_set_scrollx_and_flip_reg(&fg, data, mem_mask, flip); break;
|
||||
case 0x03: gp9001_set_scrolly_and_flip_reg(&fg, data, mem_mask, flip); break;
|
||||
|
||||
case 0x04: gp9001_set_scrollx_and_flip_reg(&vdp->top,data, mem_mask, flip); break;
|
||||
case 0x05: gp9001_set_scrolly_and_flip_reg(&vdp->top,data, mem_mask, flip); break;
|
||||
case 0x04: gp9001_set_scrollx_and_flip_reg(&top,data, mem_mask, flip); break;
|
||||
case 0x05: gp9001_set_scrolly_and_flip_reg(&top,data, mem_mask, flip); break;
|
||||
|
||||
case 0x06: gp9001_set_sprite_scrollx_and_flip_reg(&vdp->sp, data,mem_mask,flip); break;
|
||||
case 0x07: gp9001_set_sprite_scrolly_and_flip_reg(&vdp->sp, data,mem_mask,flip); break;
|
||||
case 0x06: gp9001_set_sprite_scrollx_and_flip_reg(&sp, data,mem_mask,flip); break;
|
||||
case 0x07: gp9001_set_sprite_scrolly_and_flip_reg(&sp, data,mem_mask,flip); break;
|
||||
|
||||
|
||||
case 0x0e: /******* Initialise video controller register ? *******/
|
||||
@ -561,7 +531,7 @@ static void gp9001_scroll_reg_data_w(gp9001vdp_device *vdp, offs_t offset, UINT1
|
||||
case 0x0f: break;
|
||||
|
||||
|
||||
default: logerror("Hmmm, writing %08x to unknown video control register (%08x) Video controller %01x !!!\n",data ,vdp->gp9001_scroll_reg,vdp->tile_region>>1);
|
||||
default: logerror("Hmmm, writing %08x to unknown video control register (%08x) Video controller %01x !!!\n",data ,gp9001_scroll_reg,tile_region>>1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -579,24 +549,17 @@ void gp9001vdp_device::init_scroll_regs()
|
||||
}
|
||||
|
||||
|
||||
static WRITE16_DEVICE_HANDLER( gp9001_scroll_reg_devvdata_w )
|
||||
{
|
||||
gp9001vdp_device *vdp = (gp9001vdp_device*)device;
|
||||
gp9001_scroll_reg_data_w(vdp, offset, data, mem_mask);
|
||||
}
|
||||
|
||||
|
||||
|
||||
READ16_DEVICE_HANDLER( gp9001_vdp_r )
|
||||
READ16_MEMBER( gp9001vdp_device::gp9001_vdp_r )
|
||||
{
|
||||
switch (offset)
|
||||
{
|
||||
case 0x04/2:
|
||||
case 0x06/2:
|
||||
return gp9001_devvideoram16_r(device, space, offset-0x04/2, mem_mask);
|
||||
return gp9001_videoram16_r(offset-0x04/2);
|
||||
|
||||
case 0x0c/2:
|
||||
return gp9001_vdpstatus_r(device, space, offset-0x0c/2, mem_mask);
|
||||
return gp9001_vdpstatus_r();
|
||||
|
||||
default:
|
||||
logerror("gp9001_vdp_r: read from unhandled offset %04x\n",offset*2);
|
||||
@ -605,25 +568,25 @@ READ16_DEVICE_HANDLER( gp9001_vdp_r )
|
||||
return 0xffff;
|
||||
}
|
||||
|
||||
WRITE16_DEVICE_HANDLER( gp9001_vdp_w )
|
||||
WRITE16_MEMBER( gp9001vdp_device::gp9001_vdp_w )
|
||||
{
|
||||
switch (offset)
|
||||
{
|
||||
case 0x00/2:
|
||||
gp9001_devvoffs_w(device, space, offset-0x00/2, data, mem_mask);
|
||||
gp9001_voffs_w(offset-0x00/2, data, mem_mask);
|
||||
break;
|
||||
|
||||
case 0x04/2:
|
||||
case 0x06/2:
|
||||
gp9001_devvideoram16_w(device, space, offset-0x04/2, data, mem_mask);
|
||||
gp9001_videoram16_w(offset-0x04/2, data, mem_mask);
|
||||
break;
|
||||
|
||||
case 0x08/2:
|
||||
gp9001_scroll_reg_select_w(device, space, offset-0x08/2, data, mem_mask);
|
||||
gp9001_scroll_reg_select_w(offset-0x08/2, data, mem_mask);
|
||||
break;
|
||||
|
||||
case 0x0c/2:
|
||||
gp9001_scroll_reg_devvdata_w(device, space, offset-0x0c/2, data, mem_mask);
|
||||
gp9001_scroll_reg_data_w(offset-0x0c/2, data, mem_mask);
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -633,16 +596,16 @@ WRITE16_DEVICE_HANDLER( gp9001_vdp_w )
|
||||
}
|
||||
|
||||
/* some raizing games have a different layout */
|
||||
READ16_DEVICE_HANDLER( gp9001_vdp_alt_r )
|
||||
READ16_MEMBER( gp9001vdp_device::gp9001_vdp_alt_r )
|
||||
{
|
||||
switch (offset)
|
||||
{
|
||||
case 0x00/2:
|
||||
return gp9001_vdpstatus_r(device, space, offset-0x0c/2, mem_mask);
|
||||
return gp9001_vdpstatus_r();
|
||||
|
||||
case 0x08/2:
|
||||
case 0x0a/2:
|
||||
return gp9001_devvideoram16_r(device, space, offset-0x04/2, mem_mask);
|
||||
return gp9001_videoram16_r(offset-0x04/2);
|
||||
|
||||
|
||||
default:
|
||||
@ -652,25 +615,25 @@ READ16_DEVICE_HANDLER( gp9001_vdp_alt_r )
|
||||
return 0xffff;
|
||||
}
|
||||
|
||||
WRITE16_DEVICE_HANDLER( gp9001_vdp_alt_w )
|
||||
WRITE16_MEMBER( gp9001vdp_device::gp9001_vdp_alt_w )
|
||||
{
|
||||
switch (offset)
|
||||
{
|
||||
case 0x00/2:
|
||||
gp9001_scroll_reg_devvdata_w(device, space, offset-0x0c/2, data, mem_mask);
|
||||
gp9001_scroll_reg_data_w(offset-0x0c/2, data, mem_mask);
|
||||
break;
|
||||
|
||||
case 0x04/2:
|
||||
gp9001_scroll_reg_select_w(device, space, offset-0x08/2, data, mem_mask);
|
||||
gp9001_scroll_reg_select_w(offset-0x08/2, data, mem_mask);
|
||||
break;
|
||||
|
||||
case 0x08/2:
|
||||
case 0x0a/2:
|
||||
gp9001_devvideoram16_w(device, space, offset-0x04/2, data, mem_mask);
|
||||
gp9001_videoram16_w(offset-0x04/2, data, mem_mask);
|
||||
break;
|
||||
|
||||
case 0x0c/2:
|
||||
gp9001_devvoffs_w(device, space, offset-0x00/2, data, mem_mask);
|
||||
gp9001_voffs_w(offset-0x00/2, data, mem_mask);
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -684,10 +647,8 @@ WRITE16_DEVICE_HANDLER( gp9001_vdp_alt_w )
|
||||
/***************************************************************************/
|
||||
/**************** PIPIBIBI bootleg interface into this video driver ********/
|
||||
|
||||
WRITE16_DEVICE_HANDLER( pipibibi_bootleg_scroll_w )
|
||||
WRITE16_MEMBER( gp9001vdp_device::pipibibi_bootleg_scroll_w )
|
||||
{
|
||||
gp9001vdp_device *vdp = (gp9001vdp_device *)device;
|
||||
|
||||
if (ACCESSING_BITS_8_15 && ACCESSING_BITS_0_7)
|
||||
{
|
||||
switch(offset)
|
||||
@ -703,41 +664,33 @@ WRITE16_DEVICE_HANDLER( pipibibi_bootleg_scroll_w )
|
||||
default: logerror("PIPIBIBI writing %04x to unknown scroll register %04x",data, offset);
|
||||
}
|
||||
|
||||
vdp->gp9001_scroll_reg = offset;
|
||||
gp9001_scroll_reg_data_w(vdp, offset, data, mem_mask);
|
||||
gp9001_scroll_reg = offset;
|
||||
gp9001_scroll_reg_data_w(offset, data, mem_mask);
|
||||
}
|
||||
}
|
||||
|
||||
READ16_DEVICE_HANDLER( pipibibi_bootleg_videoram16_r )
|
||||
READ16_MEMBER( gp9001vdp_device::pipibibi_bootleg_videoram16_r )
|
||||
{
|
||||
gp9001vdp_device *vdp = (gp9001vdp_device*)device;
|
||||
|
||||
gp9001_voffs_w(vdp, 0, offset, 0xffff);
|
||||
return gp9001_videoram16_r(vdp, 0);
|
||||
gp9001_voffs_w(0, offset, 0xffff);
|
||||
return gp9001_videoram16_r(0);
|
||||
}
|
||||
|
||||
WRITE16_DEVICE_HANDLER( pipibibi_bootleg_videoram16_w )
|
||||
WRITE16_MEMBER( gp9001vdp_device::pipibibi_bootleg_videoram16_w )
|
||||
{
|
||||
gp9001vdp_device *vdp = (gp9001vdp_device*)device;
|
||||
|
||||
gp9001_voffs_w(vdp, 0, offset, 0xffff);
|
||||
gp9001_videoram16_w(vdp, 0, data, mem_mask);
|
||||
gp9001_voffs_w(0, offset, 0xffff);
|
||||
gp9001_videoram16_w(0, data, mem_mask);
|
||||
}
|
||||
|
||||
READ16_DEVICE_HANDLER( pipibibi_bootleg_spriteram16_r )
|
||||
READ16_MEMBER( gp9001vdp_device::pipibibi_bootleg_spriteram16_r )
|
||||
{
|
||||
gp9001vdp_device *vdp = (gp9001vdp_device*)device;
|
||||
|
||||
gp9001_voffs_w(vdp, 0, (0x1800 + offset), 0);
|
||||
return gp9001_videoram16_r(vdp, 0);
|
||||
gp9001_voffs_w(0, (0x1800 + offset), 0);
|
||||
return gp9001_videoram16_r(0);
|
||||
}
|
||||
|
||||
WRITE16_DEVICE_HANDLER( pipibibi_bootleg_spriteram16_w )
|
||||
WRITE16_MEMBER( gp9001vdp_device::pipibibi_bootleg_spriteram16_w )
|
||||
{
|
||||
gp9001vdp_device *vdp = (gp9001vdp_device*)device;
|
||||
|
||||
gp9001_voffs_w(vdp, 0, (0x1800 + offset), mem_mask);
|
||||
gp9001_videoram16_w(vdp, 0, data, mem_mask);
|
||||
gp9001_voffs_w(0, (0x1800 + offset), mem_mask);
|
||||
gp9001_videoram16_w(0, data, mem_mask);
|
||||
}
|
||||
|
||||
/***************************************************************************
|
||||
|
@ -63,6 +63,29 @@ public:
|
||||
|
||||
bitmap_ind8 *custom_priority_bitmap;
|
||||
|
||||
// access to VDP
|
||||
DECLARE_READ16_MEMBER( gp9001_vdp_r );
|
||||
DECLARE_WRITE16_MEMBER( gp9001_vdp_w );
|
||||
DECLARE_READ16_MEMBER( gp9001_vdp_alt_r );
|
||||
DECLARE_WRITE16_MEMBER( gp9001_vdp_alt_w );
|
||||
|
||||
// this bootleg has strange access
|
||||
DECLARE_READ16_MEMBER( pipibibi_bootleg_videoram16_r );
|
||||
DECLARE_WRITE16_MEMBER( pipibibi_bootleg_videoram16_w );
|
||||
DECLARE_READ16_MEMBER( pipibibi_bootleg_spriteram16_r );
|
||||
DECLARE_WRITE16_MEMBER( pipibibi_bootleg_spriteram16_w );
|
||||
DECLARE_WRITE16_MEMBER( pipibibi_bootleg_scroll_w );
|
||||
|
||||
// internal handlers
|
||||
DECLARE_WRITE16_MEMBER( gp9001_bg_tmap_w );
|
||||
DECLARE_WRITE16_MEMBER( gp9001_fg_tmap_w );
|
||||
DECLARE_WRITE16_MEMBER( gp9001_top_tmap_w );
|
||||
DECLARE_READ16_MEMBER( gp9001_bg_tmap_r );
|
||||
DECLARE_READ16_MEMBER( gp9001_fg_tmap_r );
|
||||
DECLARE_READ16_MEMBER( gp9001_top_tmap_r );
|
||||
DECLARE_READ16_MEMBER( gp9001_spram_r );
|
||||
DECLARE_WRITE16_MEMBER( gp9001_spram_w );
|
||||
|
||||
protected:
|
||||
virtual void device_validity_check(validity_checker &valid) const;
|
||||
virtual void device_start();
|
||||
@ -76,6 +99,14 @@ protected:
|
||||
TILE_GET_INFO_MEMBER(get_top0_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_fg0_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_bg0_tile_info);
|
||||
|
||||
private:
|
||||
void gp9001_voffs_w(offs_t offset, UINT16 data, UINT16 mem_mask);
|
||||
int gp9001_videoram16_r(offs_t offset);
|
||||
void gp9001_videoram16_w(offs_t offset, UINT16 data, UINT16 mem_mask);
|
||||
UINT16 gp9001_vdpstatus_r();
|
||||
void gp9001_scroll_reg_select_w( offs_t offset, UINT16 data, UINT16 mem_mask );
|
||||
void gp9001_scroll_reg_data_w(offs_t offset, UINT16 data, UINT16 mem_mask);
|
||||
};
|
||||
|
||||
extern const device_type GP9001_VDP;
|
||||
@ -97,15 +128,3 @@ extern const device_type GP9001_VDP;
|
||||
#define MCFG_DEVICE_ADD_VDP1 \
|
||||
MCFG_DEVICE_ADD("gp9001vdp1", GP9001_VDP, 0) \
|
||||
gp9001vdp_device::static_set_gfx_region(*device, 2);
|
||||
|
||||
// access to VDP
|
||||
DECLARE_READ16_DEVICE_HANDLER( gp9001_vdp_r );
|
||||
DECLARE_WRITE16_DEVICE_HANDLER( gp9001_vdp_w );
|
||||
DECLARE_READ16_DEVICE_HANDLER( gp9001_vdp_alt_r );
|
||||
DECLARE_WRITE16_DEVICE_HANDLER( gp9001_vdp_alt_w );
|
||||
// this bootleg has strange access
|
||||
DECLARE_READ16_DEVICE_HANDLER ( pipibibi_bootleg_videoram16_r );
|
||||
DECLARE_WRITE16_DEVICE_HANDLER( pipibibi_bootleg_videoram16_w );
|
||||
DECLARE_READ16_DEVICE_HANDLER ( pipibibi_bootleg_spriteram16_r );
|
||||
DECLARE_WRITE16_DEVICE_HANDLER( pipibibi_bootleg_spriteram16_w );
|
||||
DECLARE_WRITE16_DEVICE_HANDLER( pipibibi_bootleg_scroll_w );
|
||||
|
Loading…
Reference in New Issue
Block a user