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:
Roberto Fresca 2012-12-20 19:12:37 +00:00
parent 9986bf0f20
commit 886412243b

View File

@ -1,4 +1,4 @@
/**************************************************************************
/******************************************************************************
KURU KURU PYON PYON
Taiyo Jidoki / Success
@ -9,15 +9,11 @@
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
@ -42,8 +38,6 @@
1x PAL12L6 (IC32)
***************************************************************************
PCB Layout...
.--------------------------------------------------------------------------------------------------.
@ -114,74 +108,94 @@
AB = NEC C1663C 8926B.
***************************************************************************
*******************************************************************************
Notes....
General Notes....
The game name could be translated as "Croak Croak Hop Hop"
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.
Once pressed, the game spits a message that means "Jammed Medal".
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
(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...
- 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.
- YOKO: Horizontal.
- NANAME: Diagonal.
2nd screen (press Bookkeeping key again)...
...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.
- KURO: Black.
Pressing the Bookkeeping key once more, you exit the mode and go back to the game.
***************************************************************************
*******************************************************************************
Samples....
ADPCM Samples....
There are 14 samples in the system.
00: "boterin" (?)
00: "Boterin"
01:
02: "hakase" ("professor")
03: "pyokorin"
04: "kunio"
05: "pyon pyon"
02: "Hakase" ("professor")
03: "Pyokorin"
04: "Kunio"
05: "Pyon Pyon"
06:
07:
08: "oume"
09: "haipaa" ("hyper")
10: "ichi ni tsuite" ("on your marks")
11: "youi" ("get ready")
12: bang sound for the tadpoles landing in the right panel
13: sound for reels when running
08: "Oume"
09: "Haipaa" ("hyper")
10: "Ichi ni tsuite" ("on your marks")
11: "Youi" ("get ready")
12: Bang sound for the tadpoles landing in the right panel.
13: Sound effect for reels when running.
***************************************************************************
*******************************************************************************
TODO:
- Hook up AY8910 output ports. Or unused?
- Find why the use of coin 1 always jams. Hopper?
- Hopper emulation.
- 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 "cpu/z80/z80.h"
@ -212,6 +226,8 @@ public:
DECLARE_WRITE8_MEMBER(kurukuru_adpcm_reset_w);
DECLARE_READ8_MEMBER(kurukuru_adpcm_timer_irqack_r);
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);
virtual void machine_start();
@ -220,9 +236,11 @@ public:
};
#define MAIN_CLOCK XTAL_21_4772MHz
#define CPU_CLOCK MAIN_CLOCK/6
#define YM2149_CLOCK MAIN_CLOCK/12
#define M5205_CLOCK XTAL_384kHz
#define VDP_MEM 0x30000
#define VDP_MEM 0x30000
/* from MSX2 driver, may be not accurate for this HW */
#define MSX2_XBORDER_PIXELS 16
@ -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(0xa0, 0xa0) AM_READ_PORT("IN0")
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(0xd0, 0xd0) AM_DEVWRITE_LEGACY("aysnd", ay8910_data_w)
AM_RANGE(0xd0, 0xd0) AM_DEVWRITE_LEGACY("ym2149", ay8910_data_w)
ADDRESS_MAP_END
@ -372,6 +390,18 @@ static ADDRESS_MAP_START( audio_io, AS_IO, 8, kurukuru_state )
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 *
*************************************************/
@ -389,7 +419,7 @@ static INPUT_PORTS_START( kurukuru )
PORT_START("IN1")
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( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
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 *
*************************************************/
static const ay8910_interface ay8910_intf =
static const ay8910_interface ym2149_intf =
{
AY8910_LEGACY_OUTPUT,
AY8910_DEFAULT_LOADS,
DEVCB_UNMAPPED,
DEVCB_UNMAPPED,
DEVCB_UNMAPPED, // some writes...
DEVCB_UNMAPPED // some writes...
DEVCB_DRIVER_MEMBER(kurukuru_state, ym2149_aout_w),
DEVCB_DRIVER_MEMBER(kurukuru_state, ym2149_bout_w)
};
static const msm5205_interface msm5205_config =
@ -493,12 +523,12 @@ static const msm5205_interface msm5205_config =
static MACHINE_CONFIG_START( kurukuru, kurukuru_state )
/* 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_IO_MAP(kurukuru_io)
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_IO_MAP(audio_io)
@ -523,11 +553,11 @@ static MACHINE_CONFIG_START( kurukuru, kurukuru_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", YM2149, MAIN_CLOCK/12)
MCFG_SOUND_CONFIG(ay8910_intf)
MCFG_SOUND_ADD("ym2149", YM2149, YM2149_CLOCK)
MCFG_SOUND_CONFIG(ym2149_intf)
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_ROUTE(ALL_OUTPUTS, "mono", 0.80)
MACHINE_CONFIG_END