mirror of
https://github.com/holub/mame
synced 2025-04-26 18:23:08 +03:00
Kuru Kuru Pyon Pyon: Fixed YM2149 sound, fixed some memory map offsets,
Added some port mirrors, and added/corrected some technical documentation. [Roberto Fresca, Charles MacDonald]
This commit is contained in:
parent
f4b7f17a41
commit
2be3aae598
@ -125,10 +125,6 @@
|
|||||||
will be cleared).
|
will be cleared).
|
||||||
|
|
||||||
|
|
||||||
DSW2 bits 5 & 6 (maybe 4 too) seems to change the YM2149 sound quality, as a
|
|
||||||
side effect. Need to investigate more about...
|
|
||||||
|
|
||||||
|
|
||||||
*******************************************************************************
|
*******************************************************************************
|
||||||
|
|
||||||
* How to play...
|
* How to play...
|
||||||
@ -195,10 +191,8 @@
|
|||||||
|
|
||||||
TODO:
|
TODO:
|
||||||
|
|
||||||
- Hopper emulation.
|
- Out latch (Hopper emulation?).
|
||||||
- Find why the use of payout always jam. Hopper related?
|
- Find why the use of payout always jam. Hopper related?
|
||||||
- Default DIP Switches, once the YM sound degrade issues were solved...
|
|
||||||
(see general notes about)
|
|
||||||
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
@ -224,7 +218,7 @@ public:
|
|||||||
UINT8 m_sound_irq_cause;
|
UINT8 m_sound_irq_cause;
|
||||||
UINT8 m_adpcm_data;
|
UINT8 m_adpcm_data;
|
||||||
|
|
||||||
DECLARE_WRITE8_MEMBER(kurukuru_hopper_w);
|
DECLARE_WRITE8_MEMBER(kurukuru_out_latch_w);
|
||||||
DECLARE_WRITE8_MEMBER(kurukuru_bankswitch_w);
|
DECLARE_WRITE8_MEMBER(kurukuru_bankswitch_w);
|
||||||
DECLARE_WRITE8_MEMBER(kurukuru_soundlatch_w);
|
DECLARE_WRITE8_MEMBER(kurukuru_soundlatch_w);
|
||||||
DECLARE_READ8_MEMBER(kurukuru_soundlatch_r);
|
DECLARE_READ8_MEMBER(kurukuru_soundlatch_r);
|
||||||
@ -306,15 +300,19 @@ static void kurukuru_msm5205_vck(device_t *device)
|
|||||||
|
|
||||||
// Main CPU
|
// Main CPU
|
||||||
|
|
||||||
WRITE8_MEMBER(kurukuru_state::kurukuru_hopper_w)
|
WRITE8_MEMBER(kurukuru_state::kurukuru_out_latch_w)
|
||||||
{
|
{
|
||||||
/* assume hopper related.
|
/*
|
||||||
$01 when coin 1 (jams)
|
00-0f is output latch (controls jamma output pins)
|
||||||
|
|
||||||
|
assume hopper related:
|
||||||
|
$01 when coin 1
|
||||||
$20 when coin 2
|
$20 when coin 2
|
||||||
$40 when payout (jams) ...check
|
$40 when payout (jams) ...to check
|
||||||
|
|
||||||
*/
|
*/
|
||||||
if (data)
|
if (data)
|
||||||
logerror("kurukuru_hopper_w %02X @ %04X\n", data, space.device().safe_pc());
|
logerror("kurukuru_out_latch_w %02X @ %04X\n", data, space.device().safe_pc());
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE8_MEMBER(kurukuru_state::kurukuru_bankswitch_w)
|
WRITE8_MEMBER(kurukuru_state::kurukuru_bankswitch_w)
|
||||||
@ -332,31 +330,33 @@ WRITE8_MEMBER(kurukuru_state::kurukuru_soundlatch_w)
|
|||||||
|
|
||||||
|
|
||||||
static ADDRESS_MAP_START( kurukuru_map, AS_PROGRAM, 8, kurukuru_state )
|
static ADDRESS_MAP_START( kurukuru_map, AS_PROGRAM, 8, kurukuru_state )
|
||||||
AM_RANGE(0x0000, 0x3fff) AM_ROM
|
AM_RANGE(0x0000, 0x5fff) AM_ROM
|
||||||
AM_RANGE(0x6000, 0xdfff) AM_ROMBANK("bank1")
|
AM_RANGE(0x6000, 0xdfff) AM_ROMBANK("bank1")
|
||||||
AM_RANGE(0xe000, 0xffff) AM_RAM AM_SHARE("nvram")
|
AM_RANGE(0xe000, 0xffff) AM_RAM AM_SHARE("nvram")
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
static ADDRESS_MAP_START( kurukuru_io, AS_IO, 8, kurukuru_state )
|
static ADDRESS_MAP_START( kurukuru_io, AS_IO, 8, kurukuru_state )
|
||||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||||
AM_RANGE(0x00, 0x00) AM_WRITE(kurukuru_hopper_w)
|
AM_RANGE(0x00, 0x00) AM_MIRROR(0x0f) AM_WRITE(kurukuru_out_latch_w)
|
||||||
AM_RANGE(0x10, 0x10) AM_READ_PORT("DSW1")
|
AM_RANGE(0x10, 0x10) AM_MIRROR(0x0f) AM_READ_PORT("DSW1")
|
||||||
AM_RANGE(0x20, 0x20) AM_WRITE(kurukuru_soundlatch_w)
|
AM_RANGE(0x20, 0x20) AM_MIRROR(0x0f) AM_WRITE(kurukuru_soundlatch_w)
|
||||||
AM_RANGE(0x80, 0x83) AM_DEVREADWRITE( "v9938", v9938_device, read, write )
|
AM_RANGE(0x80, 0x83) AM_DEVREADWRITE( "v9938", v9938_device, read, write )
|
||||||
AM_RANGE(0x90, 0x90) AM_WRITE(kurukuru_bankswitch_w)
|
AM_RANGE(0x90, 0x90) AM_WRITE(kurukuru_bankswitch_w)
|
||||||
AM_RANGE(0xa0, 0xa0) AM_READ_PORT("IN0")
|
AM_RANGE(0xa0, 0xa0) AM_MIRROR(0x0f) AM_READ_PORT("IN0") // need mirror confirmation
|
||||||
AM_RANGE(0xb0, 0xb0) AM_READ_PORT("IN1")
|
AM_RANGE(0xb0, 0xb0) AM_MIRROR(0x0f) AM_READ_PORT("IN1")
|
||||||
AM_RANGE(0xc0, 0xc0) AM_DEVWRITE_LEGACY("ym2149", ay8910_address_w)
|
AM_RANGE(0xc0, 0xc0) AM_MIRROR(0x0f) AM_DEVREADWRITE_LEGACY("ym2149", ay8910_r, ay8910_address_w)
|
||||||
AM_RANGE(0xc8, 0xc8) AM_DEVREAD_LEGACY("ym2149", ay8910_r)
|
AM_RANGE(0xd0, 0xd0) AM_MIRROR(0x0f) AM_DEVWRITE_LEGACY("ym2149", ay8910_data_w)
|
||||||
AM_RANGE(0xd0, 0xd0) AM_DEVWRITE_LEGACY("ym2149", ay8910_data_w)
|
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Audio CPU
|
// Audio CPU
|
||||||
|
|
||||||
WRITE8_MEMBER(kurukuru_state::kurukuru_adpcm_data_w)
|
WRITE8_MEMBER(kurukuru_state::kurukuru_adpcm_data_w)
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
|
6-bit latch. only 4 connected...
|
||||||
|
bit 0-3 = MSM5205 data.
|
||||||
|
*/
|
||||||
m_adpcm_data = data & 0xf;
|
m_adpcm_data = data & 0xf;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -364,6 +364,7 @@ WRITE8_MEMBER(kurukuru_state::kurukuru_adpcm_reset_w)
|
|||||||
{
|
{
|
||||||
device_t *device = machine().device("adpcm");
|
device_t *device = machine().device("adpcm");
|
||||||
/*
|
/*
|
||||||
|
6-bit latch. only 4 connected...
|
||||||
bit 0 = RESET
|
bit 0 = RESET
|
||||||
bit 1 = 4B/3B
|
bit 1 = 4B/3B
|
||||||
bit 2 = S2
|
bit 2 = S2
|
||||||
|
Loading…
Reference in New Issue
Block a user