Previous 199869 Revisions Next

r19757 Sunday 23rd December, 2012 at 20:16:28 UTC by hap
added crazy bankswitch based on findings by charlesm
[src/mame/drivers]kurukuru.c

trunk/src/mame/drivers/kurukuru.c
r19756r19757
317317
318318WRITE8_MEMBER(kurukuru_state::kurukuru_bankswitch_w)
319319{
320   // d4,d5: bank
321   // other bits: ?
322   membank("bank1")->set_entry(data >> 4 & 3);
320   membank("bank1")->set_entry(7); // remove banked rom
321/*
322   if bits 5,4 are 00,10,01 then IC10 is enabled
323   if bits 3,2 are 00,10,01 then IC18 is enabled
324   if bits 1,0 are 00,10,01 then IC23 is enabled
325   Then in addition, A15 (ROM half) is determined by the low bit.
326   Note that in theory, it can cause a conflict by enabling more than one chip,
327   but the game never does this.
328*/
329   for (int chip = 0; chip < 3; chip++)
330   {
331      if ((data & 3) != 3)
332         membank("bank1")->set_entry((chip << 1) | (~data & 1));
333      data >>= 2;
334   }
323335}
324336
325337WRITE8_MEMBER(kurukuru_state::kurukuru_soundlatch_w)
r19756r19757
399411   AM_RANGE(0x60, 0x60) AM_MIRROR(0x0f) AM_READ(kurukuru_soundlatch_r)
400412   AM_RANGE(0x70, 0x70) AM_MIRROR(0x0f) AM_READ(kurukuru_adpcm_timer_irqack_r)
401413ADDRESS_MAP_END
414/*
415   Reading _any_ I/O port on the audio CPU should return ADPCM IRQ flag on bit 3, and sound command write status flag on bit 4.
416   How does this work when reading the sound latch? The game (un)fortunately doesn't test this, I'd rather leave it unemulated then.
417*/
402418
403419
404420/* YM2149 ports */
r19756r19757
497513
498514void kurukuru_state::machine_start()
499515{
500   membank("bank1")->configure_entries(0, 4, memregion("maincpu")->base(), 0x8000);
516   membank("bank1")->configure_entries(0, 8, memregion("user1")->base(), 0x8000);
501517}
502518
503519void kurukuru_state::machine_reset()
r19756r19757
581597***************************************************************************/
582598
583599ROM_START( kurukuru )
584   ROM_REGION( 0x28000, "maincpu", 0 )
585   ROM_LOAD( "kp_17l.ic17",  0x00000, 0x08000, CRC(9b552ebc) SHA1(07d0e62b7fdad381963a345376b72ad31eb7b96d) )   // program code
586   ROM_LOAD( "10.ic10",      0x08000, 0x10000, CRC(3d6012bc) SHA1(2764f70e0e0bef3f2f71dd6c78e0a4189057beca) )   // title + text + ingame gfx
587   ROM_LOAD( "18.ic18",      0x18000, 0x10000, CRC(afb13c6a) SHA1(ac3cd40fad081f7a2b3d1fc72ea96282b9d1f4a3) )   // big frog gfx
600   ROM_REGION( 0x08000, "maincpu", 0 )
601   ROM_LOAD( "kp_17l.ic17",  0x00000, 0x08000, CRC(9b552ebc) SHA1(07d0e62b7fdad381963a345376b72ad31eb7b96d) ) // program code
588602
603   ROM_REGION( 0x40000, "user1", 0 ) // maincpu banked roms
604   ROM_FILL(                 0x00000, 0x10000, 0xff )                                                         // ic23: unpopulated
605   ROM_LOAD( "18.ic18",      0x10000, 0x10000, CRC(afb13c6a) SHA1(ac3cd40fad081f7a2b3d1fc72ea96282b9d1f4a3) ) // ic18: big frog gfx
606   ROM_LOAD( "10.ic10",      0x20000, 0x10000, CRC(3d6012bc) SHA1(2764f70e0e0bef3f2f71dd6c78e0a4189057beca) ) // ic10: title + text + ingame gfx
607   ROM_FILL(                 0x30000, 0x10000, 0xff )                                                         // dummy entry for when no romchip is selected
608
589609   ROM_REGION( 0x10000, "audiocpu", 0 )
590   ROM_LOAD( "4.ic4",    0x00000, 0x10000, CRC(85d86f32) SHA1(f2aa93d702e6577f8f2204c74c44ac26d05be699) )   // code & adpcm samples
610   ROM_LOAD( "4.ic4",        0x00000, 0x10000, CRC(85d86f32) SHA1(f2aa93d702e6577f8f2204c74c44ac26d05be699) ) // code & adpcm samples
591611
592612   ROM_REGION( 0x800, "plds", 0 )
593613   ROM_LOAD( "51.ic26",     0x0000, 0x0104, CRC(ce4a601b) SHA1(07f5bbb327b220e5846927cbb91149174dd07b36) )

Previous 199869 Revisions Next


© 1997-2024 The MAME Team