Previous 199869 Revisions Next

r36099 Wednesday 25th February, 2015 at 00:12:54 UTC by Alex W. Jackson
toki.c: use configured banks, modernize gfx layouts (nw)
[/branches/kale/src/mame/drivers]toki.c

branches/kale/src/mame/drivers/toki.c
r244610r244611
6767
6868WRITE8_MEMBER(toki_state::tokib_adpcm_control_w)
6969{
70   int bankaddress;
71   UINT8 *RAM = memregion("audiocpu")->base();
72
73
7470   /* the code writes either 2 or 3 in the bottom two bits */
75   bankaddress = 0x10000 + (data & 0x01) * 0x4000;
76   membank("bank1")->set_base(&RAM[bankaddress]);
71   membank("bank1")->set_entry(data & 1);
7772
7873   m_msm->reset_w(data & 0x08);
7974}
r244610r244611
312307static const gfx_layout toki_charlayout =
313308{
314309   8,8,
315   4096,
310   RGN_FRAC(1,2),
316311   4,
317   { 4096*16*8+0, 4096*16*8+4, 0, 4 },
312   { RGN_FRAC(1,2), RGN_FRAC(1,2)+4, 0, 4 },
318313   { 3, 2, 1, 0, 8+3, 8+2, 8+1, 8+0 },
319314   { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 },
320315   16*8
r244610r244611
323318static const gfx_layout toki_tilelayout =
324319{
325320   16,16,
326   4096,
321   RGN_FRAC(1,1),
327322   4,
328323   { 2*4, 3*4, 0*4, 1*4 },
329324   { 3, 2, 1, 0, 16+3, 16+2, 16+1, 16+0,
r244610r244611
333328   128*8
334329};
335330
336static const gfx_layout toki_spritelayout =
337{
338   16,16,
339   8192,
340   4,
341   { 2*4, 3*4, 0*4, 1*4 },
342   { 3, 2, 1, 0, 16+3, 16+2, 16+1, 16+0,
343         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 },
344   { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32,
345         8*32, 9*32, 10*32, 11*32, 12*32, 13*32, 14*32, 15*32 },
346   128*8
347};
348
349331static GFXDECODE_START( toki )
350   GFXDECODE_ENTRY( "gfx1", 0, toki_charlayout,  16*16, 16 )
351   GFXDECODE_ENTRY( "gfx2", 0, toki_spritelayout, 0*16, 16 )
352   GFXDECODE_ENTRY( "gfx3", 0, toki_tilelayout,  32*16, 16 )
353   GFXDECODE_ENTRY( "gfx4", 0, toki_tilelayout,  48*16, 16 )
332   GFXDECODE_ENTRY( "gfx1", 0, toki_charlayout, 16*16, 16 )
333   GFXDECODE_ENTRY( "gfx2", 0, toki_tilelayout,  0*16, 16 )
334   GFXDECODE_ENTRY( "gfx3", 0, toki_tilelayout, 32*16, 16 )
335   GFXDECODE_ENTRY( "gfx4", 0, toki_tilelayout, 48*16, 16 )
354336GFXDECODE_END
355337
356static const gfx_layout tokib_charlayout =
357{
358   8,8,    /* 8 by 8 */
359   4096,   /* 4096 characters */
360   4,  /* 4 bits per pixel */
361   {4096*8*8*3,4096*8*8*2,4096*8*8*1,4096*8*8*0 }, /* planes */
362   { 0, 1,  2,  3,  4,  5,  6,  7},        /* x bit */
363   { 0, 8, 16, 24, 32, 40, 48, 56},        /* y bit */
364   8*8
365};
366
367338static const gfx_layout tokib_tilelayout =
368339{
369340   16,16,  /* 16 by 16 */
r244610r244611
382353
383354static const gfx_layout tokib_spriteslayout =
384355{
385   16,16,  /* 16 by 16 */
386   8192,   /* 8192 sprites */
387   4,  /* 4 bits per pixel */
388   { 8192*16*16*3,8192*16*16*2,8192*16*16*1,8192*16*16*0 },    /* planes */
356   16,16,
357   RGN_FRAC(1,4),
358   4,
359   { RGN_FRAC(3,4), RGN_FRAC(2,4), RGN_FRAC(1,4), RGN_FRAC(0,4) },
389360   {    0,     1,     2,     3,     4,     5,     6,     7,
390      128+0, 128+1, 128+2, 128+3, 128+4, 128+5, 128+6, 128+7 },   /* x bit */
391   { 0,8,16,24,32,40,48,56,64,72,80,88,96,104,112,120 },       /* y bit */
361      128+0, 128+1, 128+2, 128+3, 128+4, 128+5, 128+6, 128+7 },
362   { 0,8,16,24,32,40,48,56,64,72,80,88,96,104,112,120 },
392363   16*16
393364};
394365
395366static GFXDECODE_START( tokib )
396   GFXDECODE_ENTRY( "gfx1", 0, tokib_charlayout,   16*16, 16 )
367   GFXDECODE_ENTRY( "gfx1", 0, gfx_8x8x4_planar,   16*16, 16 )
397368   GFXDECODE_ENTRY( "gfx2", 0, tokib_spriteslayout,  0*16, 16 )
398369   GFXDECODE_ENTRY( "gfx3", 0, tokib_tilelayout,   32*16, 16 )
399370   GFXDECODE_ENTRY( "gfx4", 0, tokib_tilelayout,   48*16, 16 )
r244610r244611
683654   ROM_LOAD16_BYTE( "tokijp.005",   0x40000, 0x10000, CRC(d6a82808) SHA1(9fcd3e97f7eaada5374347383dc8a6cea2378f7f) )
684655   ROM_LOAD16_BYTE( "tokijp.003",   0x40001, 0x10000, CRC(a01a5b10) SHA1(76d6da114105402aab9dd5167c0c00a0bddc3bba) )
685656
686   ROM_REGION( 0x18000, "audiocpu", 0 )    /* 64k for code + 32k for banked data */
687   ROM_LOAD( "toki.e1",      0x00000, 0x8000, CRC(2832ef75) SHA1(c15dc67a1251230fe79625b582c255678f3714d8) )
688   ROM_CONTINUE(             0x10000, 0x8000 ) /* banked at 8000-bfff */
657   ROM_REGION( 0x10000, "audiocpu", 0 )    /* 64k for code + banked data */
658   ROM_LOAD( "toki.e1",      0x00000, 0x10000, CRC(2832ef75) SHA1(c15dc67a1251230fe79625b582c255678f3714d8) )
689659
690660   ROM_REGION( 0x020000, "gfx1", 0 )
691661   ROM_LOAD( "toki.e21",     0x000000, 0x08000, CRC(bb8cacbd) SHA1(05cdd2efe63de30dec2e5d2948567cee22e82a63) )   /* chars */
r244610r244611
732702   ROM_LOAD16_BYTE( "tokijp.005",   0x40000, 0x10000, CRC(d6a82808) SHA1(9fcd3e97f7eaada5374347383dc8a6cea2378f7f) )
733703   ROM_LOAD16_BYTE( "tokijp.003",   0x40001, 0x10000, CRC(a01a5b10) SHA1(76d6da114105402aab9dd5167c0c00a0bddc3bba) )
734704
735   ROM_REGION( 0x18000, "audiocpu", 0 )    /* 64k for code + 32k for banked data */
736   ROM_LOAD( "toki.e1",      0x00000, 0x8000, CRC(2832ef75) SHA1(c15dc67a1251230fe79625b582c255678f3714d8) )
737   ROM_CONTINUE(             0x10000, 0x8000 ) /* banked at 8000-bfff */
705   ROM_REGION( 0x10000, "audiocpu", 0 )    /* 64k for code + banked data */
706   ROM_LOAD( "toki.e1",      0x00000, 0x10000, CRC(2832ef75) SHA1(c15dc67a1251230fe79625b582c255678f3714d8) )
738707
739708   ROM_REGION( 0x020000, "gfx1", 0 )
740709   ROM_LOAD( "toki.e21",     0x000000, 0x08000, CRC(bb8cacbd) SHA1(05cdd2efe63de30dec2e5d2948567cee22e82a63) )   /* chars */
r244610r244611
826795         memcpy (&base[0x18000 + i * 0x800], &temp[0x1800 + i * 0x2000], 0x800);
827796      }
828797   }
829   
798
799   membank("bank1")->configure_entries(0, 2, memregion("audiocpu")->base() + 0x8000, 0x4000);
830800   save_item(NAME(m_msm5205next));
831801   save_item(NAME(m_toggle));
832802}


Previous 199869 Revisions Next


© 1997-2024 The MAME Team