mirror of
https://github.com/holub/mame
synced 2025-05-06 22:35:43 +03:00
Kuru Kuru Pyon Pyon: Added technical and general notes.
Added a brief 'how to play' and bookkeeping instructions. Hooked the YM2149 output ports and logged the writes for testing purposes. Defined any clock used. Cleaned up a bit the driver. [Roberto Fresca]
This commit is contained in:
parent
9986bf0f20
commit
886412243b
@ -1,4 +1,4 @@
|
|||||||
/**************************************************************************
|
/******************************************************************************
|
||||||
|
|
||||||
KURU KURU PYON PYON
|
KURU KURU PYON PYON
|
||||||
Taiyo Jidoki / Success
|
Taiyo Jidoki / Success
|
||||||
@ -9,15 +9,11 @@
|
|||||||
|
|
||||||
This hardware seems to be a derivative of MSX2 'on steroids'.
|
This hardware seems to be a derivative of MSX2 'on steroids'.
|
||||||
|
|
||||||
Depending how complex is turning the emulation, this driver
|
|
||||||
could be merged later with tonton.c, since the platforms are
|
|
||||||
sharing the hardware base...
|
|
||||||
|
|
||||||
|
*******************************************************************************
|
||||||
|
|
||||||
***************************************************************************
|
Technical Notes....
|
||||||
|
|
||||||
KURU KURU PYON PYON
|
|
||||||
(c)SUCCESS / CABINET :TAIYO JIDOKI
|
|
||||||
|
|
||||||
CPU : 2x Sharp LH0080A Z80A
|
CPU : 2x Sharp LH0080A Z80A
|
||||||
|
|
||||||
@ -42,8 +38,6 @@
|
|||||||
1x PAL12L6 (IC32)
|
1x PAL12L6 (IC32)
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
|
||||||
|
|
||||||
PCB Layout...
|
PCB Layout...
|
||||||
|
|
||||||
.--------------------------------------------------------------------------------------------------.
|
.--------------------------------------------------------------------------------------------------.
|
||||||
@ -114,74 +108,94 @@
|
|||||||
AB = NEC C1663C 8926B.
|
AB = NEC C1663C 8926B.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
*******************************************************************************
|
||||||
|
|
||||||
Notes....
|
General Notes....
|
||||||
|
|
||||||
The game name could be translated as "Croak Croak Hop Hop"
|
The game name could be translated as "Croak Croak Hop Hop"
|
||||||
Kuru is the frog sound, and Pyon is the sound of jumps.
|
Kuru is the frog sound, and Pyon is the sound of jumps.
|
||||||
|
|
||||||
The game is playable, even when you can't hear all sounds.
|
|
||||||
|
|
||||||
Coin 1 (key 5) is not working properly and could hang the system.
|
Coin 1 (key 5) is not working properly and could hang the system.
|
||||||
Once pressed, the game spits a message that means "Jammed Medal".
|
Once pressed, the game spits a message that means "Jammed Medal".
|
||||||
For now, use Coin 2 (key 6) and Service (key 8) for credits...
|
For now, use Coin 2 (key 6) and Service (key 8) for credits...
|
||||||
|
|
||||||
If you pressed Coin 1 and the game is not responding anymore, press RESET
|
If you pressed Coin 1 and the game is not responding anymore, press RESET
|
||||||
(key 0) and the game will reset to default values.
|
(key 0), and the game will reset to default values (even all counters will
|
||||||
|
be cleared).
|
||||||
|
|
||||||
|
|
||||||
In the Book Keeping, you can find the statistics...
|
*******************************************************************************
|
||||||
|
|
||||||
|
* How to play...
|
||||||
|
|
||||||
|
Insert tokens (medals)...
|
||||||
|
|
||||||
|
You can bet to any (or all) of the following 5 characters: Bote, Oume, Pyoko,
|
||||||
|
Kunio, and Pyon Pyon. Press start, and the reels start to roll. You'll win if
|
||||||
|
you can get 3 of the choosen character(s) in a row, column or diagonal.
|
||||||
|
|
||||||
|
The black tadpoles behave just like jokers... If you have 2 choosen characters
|
||||||
|
in a row and the remaining one is a black tadpole, it will transform into another
|
||||||
|
character to complete the 3 in a row, allowing you to win.
|
||||||
|
|
||||||
|
Red tadpoles are a bonus. Once you get one, it will go to the right panel,
|
||||||
|
revealing a number. This number represents the extra credits you won.
|
||||||
|
|
||||||
|
|
||||||
|
* Bookkeeping...
|
||||||
|
|
||||||
|
Pressing Bookkeeping key (key 9), you enter the Bookkeeping Mode. There are
|
||||||
|
2 screens with all the game information like DIP switches and statistics...
|
||||||
|
|
||||||
1st screen...
|
1st screen...
|
||||||
|
|
||||||
- OMAKE: Extra/Bonus.
|
- [Left panel]: All the DIP switches parameters.
|
||||||
|
|
||||||
2nd screen...
|
- [Right panel]: Bet and Win totals, 100Y/10Y/medal IN/OUT, total of games,
|
||||||
|
won, loss, won by paid range, and 'omake' (extra/bonus).
|
||||||
|
|
||||||
- TATE: Vertical.
|
2nd screen (press Bookkeeping key again)...
|
||||||
- YOKO: Horizontal.
|
|
||||||
- NANAME: Diagonal.
|
|
||||||
|
|
||||||
...for each character (BOTE, OUME, PYOKO, KUNIO & PP).
|
- Tate (vertical), Yoko (horizontal) and Naname (diagonal),
|
||||||
|
for each character (Bote, Oume, Pyoko, Kunio and Pyon Pyon).
|
||||||
|
|
||||||
Also...
|
Also Aka (red) and Kuro (black).
|
||||||
|
|
||||||
- AKA: Red.
|
Pressing the Bookkeeping key once more, you exit the mode and go back to the game.
|
||||||
- KURO: Black.
|
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
*******************************************************************************
|
||||||
|
|
||||||
Samples....
|
ADPCM Samples....
|
||||||
|
|
||||||
There are 14 samples in the system.
|
There are 14 samples in the system.
|
||||||
|
|
||||||
00: "boterin" (?)
|
00: "Boterin"
|
||||||
01:
|
01:
|
||||||
02: "hakase" ("professor")
|
02: "Hakase" ("professor")
|
||||||
03: "pyokorin"
|
03: "Pyokorin"
|
||||||
04: "kunio"
|
04: "Kunio"
|
||||||
05: "pyon pyon"
|
05: "Pyon Pyon"
|
||||||
06:
|
06:
|
||||||
07:
|
07:
|
||||||
08: "oume"
|
08: "Oume"
|
||||||
09: "haipaa" ("hyper")
|
09: "Haipaa" ("hyper")
|
||||||
10: "ichi ni tsuite" ("on your marks")
|
10: "Ichi ni tsuite" ("on your marks")
|
||||||
11: "youi" ("get ready")
|
11: "Youi" ("get ready")
|
||||||
12: bang sound for the tadpoles landing in the right panel
|
12: Bang sound for the tadpoles landing in the right panel.
|
||||||
13: sound for reels when running
|
13: Sound effect for reels when running.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
*******************************************************************************
|
||||||
|
|
||||||
TODO:
|
TODO:
|
||||||
|
|
||||||
- Hook up AY8910 output ports. Or unused?
|
- Hopper emulation.
|
||||||
- Find why the use of coin 1 always jams. Hopper?
|
- Find why the use of coin 1 / payout always jam. Hopper related?
|
||||||
|
- Default DIP Switches, once the hopper/coin jam issues were solved...
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/z80/z80.h"
|
#include "cpu/z80/z80.h"
|
||||||
@ -212,6 +226,8 @@ public:
|
|||||||
DECLARE_WRITE8_MEMBER(kurukuru_adpcm_reset_w);
|
DECLARE_WRITE8_MEMBER(kurukuru_adpcm_reset_w);
|
||||||
DECLARE_READ8_MEMBER(kurukuru_adpcm_timer_irqack_r);
|
DECLARE_READ8_MEMBER(kurukuru_adpcm_timer_irqack_r);
|
||||||
DECLARE_WRITE8_MEMBER(kurukuru_adpcm_data_w);
|
DECLARE_WRITE8_MEMBER(kurukuru_adpcm_data_w);
|
||||||
|
DECLARE_WRITE8_MEMBER(ym2149_aout_w);
|
||||||
|
DECLARE_WRITE8_MEMBER(ym2149_bout_w);
|
||||||
|
|
||||||
void update_sound_irq(UINT8 cause);
|
void update_sound_irq(UINT8 cause);
|
||||||
virtual void machine_start();
|
virtual void machine_start();
|
||||||
@ -220,6 +236,8 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
#define MAIN_CLOCK XTAL_21_4772MHz
|
#define MAIN_CLOCK XTAL_21_4772MHz
|
||||||
|
#define CPU_CLOCK MAIN_CLOCK/6
|
||||||
|
#define YM2149_CLOCK MAIN_CLOCK/12
|
||||||
#define M5205_CLOCK XTAL_384kHz
|
#define M5205_CLOCK XTAL_384kHz
|
||||||
|
|
||||||
#define VDP_MEM 0x30000
|
#define VDP_MEM 0x30000
|
||||||
@ -323,9 +341,9 @@ static ADDRESS_MAP_START( kurukuru_io, AS_IO, 8, kurukuru_state )
|
|||||||
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_READ_PORT("IN0")
|
||||||
AM_RANGE(0xb0, 0xb0) AM_READ_PORT("IN1")
|
AM_RANGE(0xb0, 0xb0) AM_READ_PORT("IN1")
|
||||||
AM_RANGE(0xc0, 0xc0) AM_DEVWRITE_LEGACY("aysnd", ay8910_address_w)
|
AM_RANGE(0xc0, 0xc0) AM_DEVWRITE_LEGACY("ym2149", ay8910_address_w)
|
||||||
AM_RANGE(0xc8, 0xc8) AM_READ_PORT("DSW2")
|
AM_RANGE(0xc8, 0xc8) AM_READ_PORT("DSW2")
|
||||||
AM_RANGE(0xd0, 0xd0) AM_DEVWRITE_LEGACY("aysnd", ay8910_data_w)
|
AM_RANGE(0xd0, 0xd0) AM_DEVWRITE_LEGACY("ym2149", ay8910_data_w)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
|
|
||||||
@ -372,6 +390,18 @@ static ADDRESS_MAP_START( audio_io, AS_IO, 8, kurukuru_state )
|
|||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
|
|
||||||
|
/* YM2149 ports */
|
||||||
|
WRITE8_MEMBER(kurukuru_state::ym2149_aout_w)
|
||||||
|
{
|
||||||
|
logerror("YM2149: Port A out: %02X\n", data);
|
||||||
|
}
|
||||||
|
|
||||||
|
WRITE8_MEMBER(kurukuru_state::ym2149_bout_w)
|
||||||
|
{
|
||||||
|
logerror("YM2149: Port B out: %02X\n", data);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*************************************************
|
/*************************************************
|
||||||
* Input Ports Definitions *
|
* Input Ports Definitions *
|
||||||
*************************************************/
|
*************************************************/
|
||||||
@ -389,7 +419,7 @@ static INPUT_PORTS_START( kurukuru )
|
|||||||
|
|
||||||
PORT_START("IN1")
|
PORT_START("IN1")
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_9) PORT_NAME("Bookkeeping")
|
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_9) PORT_NAME("Bookkeeping")
|
||||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_8) PORT_NAME("Service")
|
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_8) PORT_NAME("Service") // add credits without contabilize them
|
||||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_0) PORT_NAME("Reset Button")
|
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_0) PORT_NAME("Reset Button")
|
||||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
|
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
|
||||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_A) PORT_NAME("Unknown 1")
|
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_A) PORT_NAME("Unknown 1")
|
||||||
@ -469,14 +499,14 @@ void kurukuru_state::machine_reset()
|
|||||||
* Sound Interfaces *
|
* Sound Interfaces *
|
||||||
*************************************************/
|
*************************************************/
|
||||||
|
|
||||||
static const ay8910_interface ay8910_intf =
|
static const ay8910_interface ym2149_intf =
|
||||||
{
|
{
|
||||||
AY8910_LEGACY_OUTPUT,
|
AY8910_LEGACY_OUTPUT,
|
||||||
AY8910_DEFAULT_LOADS,
|
AY8910_DEFAULT_LOADS,
|
||||||
DEVCB_UNMAPPED,
|
DEVCB_UNMAPPED,
|
||||||
DEVCB_UNMAPPED,
|
DEVCB_UNMAPPED,
|
||||||
DEVCB_UNMAPPED, // some writes...
|
DEVCB_DRIVER_MEMBER(kurukuru_state, ym2149_aout_w),
|
||||||
DEVCB_UNMAPPED // some writes...
|
DEVCB_DRIVER_MEMBER(kurukuru_state, ym2149_bout_w)
|
||||||
};
|
};
|
||||||
|
|
||||||
static const msm5205_interface msm5205_config =
|
static const msm5205_interface msm5205_config =
|
||||||
@ -493,12 +523,12 @@ static const msm5205_interface msm5205_config =
|
|||||||
static MACHINE_CONFIG_START( kurukuru, kurukuru_state )
|
static MACHINE_CONFIG_START( kurukuru, kurukuru_state )
|
||||||
|
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
MCFG_CPU_ADD("maincpu",Z80,MAIN_CLOCK/6)
|
MCFG_CPU_ADD("maincpu",Z80, CPU_CLOCK)
|
||||||
MCFG_CPU_PROGRAM_MAP(kurukuru_map)
|
MCFG_CPU_PROGRAM_MAP(kurukuru_map)
|
||||||
MCFG_CPU_IO_MAP(kurukuru_io)
|
MCFG_CPU_IO_MAP(kurukuru_io)
|
||||||
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", kurukuru_state, kurukuru_vdp_scanline, "screen", 0, 1)
|
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", kurukuru_state, kurukuru_vdp_scanline, "screen", 0, 1)
|
||||||
|
|
||||||
MCFG_CPU_ADD("audiocpu", Z80, MAIN_CLOCK/6)
|
MCFG_CPU_ADD("audiocpu", Z80, CPU_CLOCK)
|
||||||
MCFG_CPU_PROGRAM_MAP(audio_map)
|
MCFG_CPU_PROGRAM_MAP(audio_map)
|
||||||
MCFG_CPU_IO_MAP(audio_io)
|
MCFG_CPU_IO_MAP(audio_io)
|
||||||
|
|
||||||
@ -523,11 +553,11 @@ static MACHINE_CONFIG_START( kurukuru, kurukuru_state )
|
|||||||
|
|
||||||
/* sound hardware */
|
/* sound hardware */
|
||||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||||
MCFG_SOUND_ADD("aysnd", YM2149, MAIN_CLOCK/12)
|
MCFG_SOUND_ADD("ym2149", YM2149, YM2149_CLOCK)
|
||||||
MCFG_SOUND_CONFIG(ay8910_intf)
|
MCFG_SOUND_CONFIG(ym2149_intf)
|
||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
|
||||||
|
|
||||||
MCFG_SOUND_ADD("adpcm", MSM5205, XTAL_384kHz)
|
MCFG_SOUND_ADD("adpcm", MSM5205, M5205_CLOCK)
|
||||||
MCFG_SOUND_CONFIG(msm5205_config)
|
MCFG_SOUND_CONFIG(msm5205_config)
|
||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
Loading…
Reference in New Issue
Block a user