Previous 199869 Revisions Next

r19705 Thursday 20th December, 2012 at 19:12:37 UTC by Roberto Fresca
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]
[src/mame/drivers]kurukuru.c

trunk/src/mame/drivers/kurukuru.c
r19704r19705
1/**************************************************************************
1/******************************************************************************
22
33  KURU KURU PYON PYON
44  Taiyo Jidoki / Success
r19704r19705
99
1010  This hardware seems to be a derivative of MSX2 'on steroids'.
1111
12  Depending how complex is turning the emulation, this driver
13  could be merged later with tonton.c, since the platforms are
14  sharing the hardware base...
1512
13*******************************************************************************
1614
17***************************************************************************
15  Technical Notes....
1816
19  KURU KURU PYON PYON
20  (c)SUCCESS / CABINET :TAIYO JIDOKI
2117
2218  CPU   : 2x Sharp LH0080A Z80A
2319
r19704r19705
4238  1x PAL12L6 (IC32)
4339
4440
45***************************************************************************
46
4741  PCB Layout...
4842
4943  .--------------------------------------------------------------------------------------------------.
r19704r19705
114108  AB =  NEC C1663C 8926B.
115109
116110
117***************************************************************************
111*******************************************************************************
118112
119  Notes....
113  General Notes....
120114
121115  The game name could be translated as "Croak Croak Hop Hop"
122116  Kuru is the frog sound, and Pyon is the sound of jumps.
123117
124  The game is playable, even when you can't hear all sounds.
125
126118  Coin 1 (key 5) is not working properly and could hang the system.
127119  Once pressed, the game spits a message that means "Jammed Medal".
128120  For now, use Coin 2 (key 6) and Service (key 8) for credits...
129121
130122  If you pressed Coin 1 and the game is not responding anymore, press RESET
131  (key 0) and the game will reset to default values.
123  (key 0), and the game will reset to default values (even all counters will
124  be cleared).
132125
133126
134  In the Book Keeping, you can find the statistics...
127*******************************************************************************
135128
129  * How to play...
130
131  Insert tokens (medals)...
132
133  You can bet to any (or all) of the following 5 characters: Bote, Oume, Pyoko,
134  Kunio, and Pyon Pyon. Press start, and the reels start to roll. You'll win if
135  you can get 3 of the choosen character(s) in a row, column or diagonal.
136
137  The black tadpoles behave just like jokers... If you have 2 choosen characters
138  in a row and the remaining one is a black tadpole, it will transform into another
139  character to complete the 3 in a row, allowing you to win.
140
141  Red tadpoles are a bonus. Once you get one, it will go to the right panel,
142  revealing a number. This number represents the extra credits you won.
143
144
145  * Bookkeeping...
146
147  Pressing Bookkeeping key (key 9), you enter the Bookkeeping Mode. There are
148  2 screens with all the game information like DIP switches and statistics...
149
136150  1st screen...
137151
138  - OMAKEExtra/Bonus.
152  - [Left panel]All the DIP switches parameters.
139153
140  2nd screen...
154  - [Right panel]: Bet and Win totals, 100Y/10Y/medal IN/OUT, total of games,
155                   won, loss, won by paid range, and 'omake' (extra/bonus).
141156
142  - TATE:   Vertical.
143  - YOKO:   Horizontal.
144  - NANAME: Diagonal.
157  2nd screen (press Bookkeeping key again)...
145158
146  ...for each character (BOTE, OUME, PYOKO, KUNIO & PP).
159  - Tate (vertical), Yoko (horizontal) and Naname (diagonal),
160    for each character (Bote, Oume, Pyoko, Kunio and Pyon Pyon).
147161
148  Also...
162    Also Aka (red) and Kuro (black).
149163
150  - AKA:    Red.
151  - KURO:   Black.
164  Pressing the Bookkeeping key once more, you exit the mode and go back to the game.
152165
153166
154***************************************************************************
167*******************************************************************************
155168
156  Samples....
169  ADPCM Samples....
157170
158171  There are 14 samples in the system.
159172
160  00: "boterin" (?)
173  00: "Boterin"
161174  01:
162  02: "hakase" ("professor")
163  03: "pyokorin"
164  04: "kunio"
165  05: "pyon pyon"
175  02: "Hakase" ("professor")
176  03: "Pyokorin"
177  04: "Kunio"
178  05: "Pyon Pyon"
166179  06:
167180  07:
168  08: "oume"
169  09: "haipaa" ("hyper")
170  10: "ichi ni tsuite" ("on your marks")
171  11: "youi" ("get ready")
172  12: bang sound for the tadpoles landing in the right panel
173  13: sound for reels when running
181  08: "Oume"
182  09: "Haipaa" ("hyper")
183  10: "Ichi ni tsuite" ("on your marks")
184  11: "Youi" ("get ready")
185  12: Bang sound for the tadpoles landing in the right panel.
186  13: Sound effect for reels when running.
174187
175188
176***************************************************************************
189*******************************************************************************
177190
178191  TODO:
179192
180  - Hook up AY8910 output ports. Or unused?
181  - Find why the use of coin 1 always jams. Hopper?
193  - Hopper emulation.
194  - Find why the use of coin 1 / payout always jam. Hopper related?
195  - Default DIP Switches, once the hopper/coin jam issues were solved...
182196
183197
184***************************************************************************/
198******************************************************************************/
185199
186200#include "emu.h"
187201#include "cpu/z80/z80.h"
r19704r19705
212226   DECLARE_WRITE8_MEMBER(kurukuru_adpcm_reset_w);
213227   DECLARE_READ8_MEMBER(kurukuru_adpcm_timer_irqack_r);
214228   DECLARE_WRITE8_MEMBER(kurukuru_adpcm_data_w);
229   DECLARE_WRITE8_MEMBER(ym2149_aout_w);
230   DECLARE_WRITE8_MEMBER(ym2149_bout_w);
215231
216232   void update_sound_irq(UINT8 cause);
217233   virtual void machine_start();
r19704r19705
220236};
221237
222238#define MAIN_CLOCK      XTAL_21_4772MHz
239#define CPU_CLOCK      MAIN_CLOCK/6
240#define YM2149_CLOCK   MAIN_CLOCK/12
223241#define M5205_CLOCK      XTAL_384kHz
224242
225#define VDP_MEM            0x30000
243#define VDP_MEM         0x30000
226244
227245/* from MSX2 driver, may be not accurate for this HW */
228246#define MSX2_XBORDER_PIXELS      16
r19704r19705
323341   AM_RANGE(0x90, 0x90) AM_WRITE(kurukuru_bankswitch_w)
324342   AM_RANGE(0xa0, 0xa0) AM_READ_PORT("IN0")
325343   AM_RANGE(0xb0, 0xb0) AM_READ_PORT("IN1")
326   AM_RANGE(0xc0, 0xc0) AM_DEVWRITE_LEGACY("aysnd", ay8910_address_w)
344   AM_RANGE(0xc0, 0xc0) AM_DEVWRITE_LEGACY("ym2149", ay8910_address_w)
327345   AM_RANGE(0xc8, 0xc8) AM_READ_PORT("DSW2")
328   AM_RANGE(0xd0, 0xd0) AM_DEVWRITE_LEGACY("aysnd", ay8910_data_w)
346   AM_RANGE(0xd0, 0xd0) AM_DEVWRITE_LEGACY("ym2149", ay8910_data_w)
329347ADDRESS_MAP_END
330348
331349
r19704r19705
372390ADDRESS_MAP_END
373391
374392
393/* YM2149 ports */
394WRITE8_MEMBER(kurukuru_state::ym2149_aout_w)
395{
396   logerror("YM2149: Port A out: %02X\n", data);
397}
398
399WRITE8_MEMBER(kurukuru_state::ym2149_bout_w)
400{
401   logerror("YM2149: Port B out: %02X\n", data);
402}
403
404
375405/*************************************************
376406*            Input Ports Definitions             *
377407*************************************************/
r19704r19705
389419
390420   PORT_START("IN1")
391421   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_9) PORT_NAME("Bookkeeping")
392   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_8) PORT_NAME("Service")
422   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_8) PORT_NAME("Service")      // add credits without contabilize them
393423   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_0) PORT_NAME("Reset Button")
394424   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
395425   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER )   PORT_CODE(KEYCODE_A) PORT_NAME("Unknown 1")
r19704r19705
469499*                Sound Interfaces                *
470500*************************************************/
471501
472static const ay8910_interface ay8910_intf =
502static const ay8910_interface ym2149_intf =
473503{
474504   AY8910_LEGACY_OUTPUT,
475505   AY8910_DEFAULT_LOADS,
476506   DEVCB_UNMAPPED,
477507   DEVCB_UNMAPPED,
478   DEVCB_UNMAPPED,   // some writes...
479   DEVCB_UNMAPPED   // some writes...
508   DEVCB_DRIVER_MEMBER(kurukuru_state, ym2149_aout_w),
509   DEVCB_DRIVER_MEMBER(kurukuru_state, ym2149_bout_w)
480510};
481511
482512static const msm5205_interface msm5205_config =
r19704r19705
493523static MACHINE_CONFIG_START( kurukuru, kurukuru_state )
494524
495525   /* basic machine hardware */
496   MCFG_CPU_ADD("maincpu",Z80,MAIN_CLOCK/6)
526   MCFG_CPU_ADD("maincpu",Z80, CPU_CLOCK)
497527   MCFG_CPU_PROGRAM_MAP(kurukuru_map)
498528   MCFG_CPU_IO_MAP(kurukuru_io)
499529   MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", kurukuru_state, kurukuru_vdp_scanline, "screen", 0, 1)
500530
501   MCFG_CPU_ADD("audiocpu", Z80, MAIN_CLOCK/6)
531   MCFG_CPU_ADD("audiocpu", Z80, CPU_CLOCK)
502532   MCFG_CPU_PROGRAM_MAP(audio_map)
503533   MCFG_CPU_IO_MAP(audio_io)
504534
r19704r19705
523553
524554   /* sound hardware */
525555   MCFG_SPEAKER_STANDARD_MONO("mono")
526   MCFG_SOUND_ADD("aysnd", YM2149, MAIN_CLOCK/12)
527   MCFG_SOUND_CONFIG(ay8910_intf)
556   MCFG_SOUND_ADD("ym2149", YM2149, YM2149_CLOCK)
557   MCFG_SOUND_CONFIG(ym2149_intf)
528558   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
529559
530   MCFG_SOUND_ADD("adpcm", MSM5205, XTAL_384kHz)
560   MCFG_SOUND_ADD("adpcm", MSM5205, M5205_CLOCK)
531561   MCFG_SOUND_CONFIG(msm5205_config)
532562   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
533563MACHINE_CONFIG_END

Previous 199869 Revisions Next


© 1997-2024 The MAME Team