branches/kale/src/mame/drivers/toki.c
| r244610 | r244611 | |
| 67 | 67 | |
| 68 | 68 | WRITE8_MEMBER(toki_state::tokib_adpcm_control_w) |
| 69 | 69 | { |
| 70 | | int bankaddress; |
| 71 | | UINT8 *RAM = memregion("audiocpu")->base(); |
| 72 | | |
| 73 | | |
| 74 | 70 | /* 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); |
| 77 | 72 | |
| 78 | 73 | m_msm->reset_w(data & 0x08); |
| 79 | 74 | } |
| r244610 | r244611 | |
| 312 | 307 | static const gfx_layout toki_charlayout = |
| 313 | 308 | { |
| 314 | 309 | 8,8, |
| 315 | | 4096, |
| 310 | RGN_FRAC(1,2), |
| 316 | 311 | 4, |
| 317 | | { 4096*16*8+0, 4096*16*8+4, 0, 4 }, |
| 312 | { RGN_FRAC(1,2), RGN_FRAC(1,2)+4, 0, 4 }, |
| 318 | 313 | { 3, 2, 1, 0, 8+3, 8+2, 8+1, 8+0 }, |
| 319 | 314 | { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 }, |
| 320 | 315 | 16*8 |
| r244610 | r244611 | |
| 323 | 318 | static const gfx_layout toki_tilelayout = |
| 324 | 319 | { |
| 325 | 320 | 16,16, |
| 326 | | 4096, |
| 321 | RGN_FRAC(1,1), |
| 327 | 322 | 4, |
| 328 | 323 | { 2*4, 3*4, 0*4, 1*4 }, |
| 329 | 324 | { 3, 2, 1, 0, 16+3, 16+2, 16+1, 16+0, |
| r244610 | r244611 | |
| 333 | 328 | 128*8 |
| 334 | 329 | }; |
| 335 | 330 | |
| 336 | | static 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 | | |
| 349 | 331 | static 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 ) |
| 354 | 336 | GFXDECODE_END |
| 355 | 337 | |
| 356 | | static 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 | | |
| 367 | 338 | static const gfx_layout tokib_tilelayout = |
| 368 | 339 | { |
| 369 | 340 | 16,16, /* 16 by 16 */ |
| r244610 | r244611 | |
| 382 | 353 | |
| 383 | 354 | static const gfx_layout tokib_spriteslayout = |
| 384 | 355 | { |
| 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) }, |
| 389 | 360 | { 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 }, |
| 392 | 363 | 16*16 |
| 393 | 364 | }; |
| 394 | 365 | |
| 395 | 366 | static GFXDECODE_START( tokib ) |
| 396 | | GFXDECODE_ENTRY( "gfx1", 0, tokib_charlayout, 16*16, 16 ) |
| 367 | GFXDECODE_ENTRY( "gfx1", 0, gfx_8x8x4_planar, 16*16, 16 ) |
| 397 | 368 | GFXDECODE_ENTRY( "gfx2", 0, tokib_spriteslayout, 0*16, 16 ) |
| 398 | 369 | GFXDECODE_ENTRY( "gfx3", 0, tokib_tilelayout, 32*16, 16 ) |
| 399 | 370 | GFXDECODE_ENTRY( "gfx4", 0, tokib_tilelayout, 48*16, 16 ) |
| r244610 | r244611 | |
| 683 | 654 | ROM_LOAD16_BYTE( "tokijp.005", 0x40000, 0x10000, CRC(d6a82808) SHA1(9fcd3e97f7eaada5374347383dc8a6cea2378f7f) ) |
| 684 | 655 | ROM_LOAD16_BYTE( "tokijp.003", 0x40001, 0x10000, CRC(a01a5b10) SHA1(76d6da114105402aab9dd5167c0c00a0bddc3bba) ) |
| 685 | 656 | |
| 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) ) |
| 689 | 659 | |
| 690 | 660 | ROM_REGION( 0x020000, "gfx1", 0 ) |
| 691 | 661 | ROM_LOAD( "toki.e21", 0x000000, 0x08000, CRC(bb8cacbd) SHA1(05cdd2efe63de30dec2e5d2948567cee22e82a63) ) /* chars */ |
| r244610 | r244611 | |
| 732 | 702 | ROM_LOAD16_BYTE( "tokijp.005", 0x40000, 0x10000, CRC(d6a82808) SHA1(9fcd3e97f7eaada5374347383dc8a6cea2378f7f) ) |
| 733 | 703 | ROM_LOAD16_BYTE( "tokijp.003", 0x40001, 0x10000, CRC(a01a5b10) SHA1(76d6da114105402aab9dd5167c0c00a0bddc3bba) ) |
| 734 | 704 | |
| 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) ) |
| 738 | 707 | |
| 739 | 708 | ROM_REGION( 0x020000, "gfx1", 0 ) |
| 740 | 709 | ROM_LOAD( "toki.e21", 0x000000, 0x08000, CRC(bb8cacbd) SHA1(05cdd2efe63de30dec2e5d2948567cee22e82a63) ) /* chars */ |
| r244610 | r244611 | |
| 826 | 795 | memcpy (&base[0x18000 + i * 0x800], &temp[0x1800 + i * 0x2000], 0x800); |
| 827 | 796 | } |
| 828 | 797 | } |
| 829 | | |
| 798 | |
| 799 | membank("bank1")->configure_entries(0, 2, memregion("audiocpu")->base() + 0x8000, 0x4000); |
| 830 | 800 | save_item(NAME(m_msm5205next)); |
| 831 | 801 | save_item(NAME(m_toggle)); |
| 832 | 802 | } |