From 06cdbbca4e397716075d079ebbf1dab3a9be4089 Mon Sep 17 00:00:00 2001 From: "Alex W. Jackson" Date: Tue, 24 Feb 2015 19:12:54 -0500 Subject: toki.c: use configured banks, modernize gfx layouts (nw) --- src/mame/drivers/toki.c | 72 +++++++++++++++---------------------------------- 1 file changed, 21 insertions(+), 51 deletions(-) diff --git a/src/mame/drivers/toki.c b/src/mame/drivers/toki.c index a63df4d8686..99484c38065 100644 --- a/src/mame/drivers/toki.c +++ b/src/mame/drivers/toki.c @@ -67,13 +67,8 @@ WRITE_LINE_MEMBER(toki_state::tokib_adpcm_int) WRITE8_MEMBER(toki_state::tokib_adpcm_control_w) { - int bankaddress; - UINT8 *RAM = memregion("audiocpu")->base(); - - /* the code writes either 2 or 3 in the bottom two bits */ - bankaddress = 0x10000 + (data & 0x01) * 0x4000; - membank("bank1")->set_base(&RAM[bankaddress]); + membank("bank1")->set_entry(data & 1); m_msm->reset_w(data & 0x08); } @@ -312,9 +307,9 @@ INPUT_PORTS_END static const gfx_layout toki_charlayout = { 8,8, - 4096, + RGN_FRAC(1,2), 4, - { 4096*16*8+0, 4096*16*8+4, 0, 4 }, + { RGN_FRAC(1,2), RGN_FRAC(1,2)+4, 0, 4 }, { 3, 2, 1, 0, 8+3, 8+2, 8+1, 8+0 }, { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 }, 16*8 @@ -323,20 +318,7 @@ static const gfx_layout toki_charlayout = static const gfx_layout toki_tilelayout = { 16,16, - 4096, - 4, - { 2*4, 3*4, 0*4, 1*4 }, - { 3, 2, 1, 0, 16+3, 16+2, 16+1, 16+0, - 64*8+3, 64*8+2, 64*8+1, 64*8+0, 64*8+16+3, 64*8+16+2, 64*8+16+1, 64*8+16+0 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32, - 8*32, 9*32, 10*32, 11*32, 12*32, 13*32, 14*32, 15*32 }, - 128*8 -}; - -static const gfx_layout toki_spritelayout = -{ - 16,16, - 8192, + RGN_FRAC(1,1), 4, { 2*4, 3*4, 0*4, 1*4 }, { 3, 2, 1, 0, 16+3, 16+2, 16+1, 16+0, @@ -347,23 +329,12 @@ static const gfx_layout toki_spritelayout = }; static GFXDECODE_START( toki ) - GFXDECODE_ENTRY( "gfx1", 0, toki_charlayout, 16*16, 16 ) - GFXDECODE_ENTRY( "gfx2", 0, toki_spritelayout, 0*16, 16 ) - GFXDECODE_ENTRY( "gfx3", 0, toki_tilelayout, 32*16, 16 ) - GFXDECODE_ENTRY( "gfx4", 0, toki_tilelayout, 48*16, 16 ) + GFXDECODE_ENTRY( "gfx1", 0, toki_charlayout, 16*16, 16 ) + GFXDECODE_ENTRY( "gfx2", 0, toki_tilelayout, 0*16, 16 ) + GFXDECODE_ENTRY( "gfx3", 0, toki_tilelayout, 32*16, 16 ) + GFXDECODE_ENTRY( "gfx4", 0, toki_tilelayout, 48*16, 16 ) GFXDECODE_END -static const gfx_layout tokib_charlayout = -{ - 8,8, /* 8 by 8 */ - 4096, /* 4096 characters */ - 4, /* 4 bits per pixel */ - {4096*8*8*3,4096*8*8*2,4096*8*8*1,4096*8*8*0 }, /* planes */ - { 0, 1, 2, 3, 4, 5, 6, 7}, /* x bit */ - { 0, 8, 16, 24, 32, 40, 48, 56}, /* y bit */ - 8*8 -}; - static const gfx_layout tokib_tilelayout = { 16,16, /* 16 by 16 */ @@ -382,18 +353,18 @@ static const gfx_layout tokib_tilelayout = static const gfx_layout tokib_spriteslayout = { - 16,16, /* 16 by 16 */ - 8192, /* 8192 sprites */ - 4, /* 4 bits per pixel */ - { 8192*16*16*3,8192*16*16*2,8192*16*16*1,8192*16*16*0 }, /* planes */ + 16,16, + RGN_FRAC(1,4), + 4, + { RGN_FRAC(3,4), RGN_FRAC(2,4), RGN_FRAC(1,4), RGN_FRAC(0,4) }, { 0, 1, 2, 3, 4, 5, 6, 7, - 128+0, 128+1, 128+2, 128+3, 128+4, 128+5, 128+6, 128+7 }, /* x bit */ - { 0,8,16,24,32,40,48,56,64,72,80,88,96,104,112,120 }, /* y bit */ + 128+0, 128+1, 128+2, 128+3, 128+4, 128+5, 128+6, 128+7 }, + { 0,8,16,24,32,40,48,56,64,72,80,88,96,104,112,120 }, 16*16 }; static GFXDECODE_START( tokib ) - GFXDECODE_ENTRY( "gfx1", 0, tokib_charlayout, 16*16, 16 ) + GFXDECODE_ENTRY( "gfx1", 0, gfx_8x8x4_planar, 16*16, 16 ) GFXDECODE_ENTRY( "gfx2", 0, tokib_spriteslayout, 0*16, 16 ) GFXDECODE_ENTRY( "gfx3", 0, tokib_tilelayout, 32*16, 16 ) GFXDECODE_ENTRY( "gfx4", 0, tokib_tilelayout, 48*16, 16 ) @@ -683,9 +654,8 @@ ROM_START( tokib ) ROM_LOAD16_BYTE( "tokijp.005", 0x40000, 0x10000, CRC(d6a82808) SHA1(9fcd3e97f7eaada5374347383dc8a6cea2378f7f) ) ROM_LOAD16_BYTE( "tokijp.003", 0x40001, 0x10000, CRC(a01a5b10) SHA1(76d6da114105402aab9dd5167c0c00a0bddc3bba) ) - ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for code + 32k for banked data */ - ROM_LOAD( "toki.e1", 0x00000, 0x8000, CRC(2832ef75) SHA1(c15dc67a1251230fe79625b582c255678f3714d8) ) - ROM_CONTINUE( 0x10000, 0x8000 ) /* banked at 8000-bfff */ + ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for code + banked data */ + ROM_LOAD( "toki.e1", 0x00000, 0x10000, CRC(2832ef75) SHA1(c15dc67a1251230fe79625b582c255678f3714d8) ) ROM_REGION( 0x020000, "gfx1", 0 ) ROM_LOAD( "toki.e21", 0x000000, 0x08000, CRC(bb8cacbd) SHA1(05cdd2efe63de30dec2e5d2948567cee22e82a63) ) /* chars */ @@ -732,9 +702,8 @@ ROM_START( jujub ) ROM_LOAD16_BYTE( "tokijp.005", 0x40000, 0x10000, CRC(d6a82808) SHA1(9fcd3e97f7eaada5374347383dc8a6cea2378f7f) ) ROM_LOAD16_BYTE( "tokijp.003", 0x40001, 0x10000, CRC(a01a5b10) SHA1(76d6da114105402aab9dd5167c0c00a0bddc3bba) ) - ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for code + 32k for banked data */ - ROM_LOAD( "toki.e1", 0x00000, 0x8000, CRC(2832ef75) SHA1(c15dc67a1251230fe79625b582c255678f3714d8) ) - ROM_CONTINUE( 0x10000, 0x8000 ) /* banked at 8000-bfff */ + ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for code + banked data */ + ROM_LOAD( "toki.e1", 0x00000, 0x10000, CRC(2832ef75) SHA1(c15dc67a1251230fe79625b582c255678f3714d8) ) ROM_REGION( 0x020000, "gfx1", 0 ) ROM_LOAD( "toki.e21", 0x000000, 0x08000, CRC(bb8cacbd) SHA1(05cdd2efe63de30dec2e5d2948567cee22e82a63) ) /* chars */ @@ -826,7 +795,8 @@ DRIVER_INIT_MEMBER(toki_state,tokib) memcpy (&base[0x18000 + i * 0x800], &temp[0x1800 + i * 0x2000], 0x800); } } - + + membank("bank1")->configure_entries(0, 2, memregion("audiocpu")->base() + 0x8000, 0x4000); save_item(NAME(m_msm5205next)); save_item(NAME(m_toggle)); } -- cgit v1.2.3