45
48
#include "includes/niyanpai.h"
48
#define SIGNED_DAC 0 // 0:unsigned DAC, 1:signed DAC
50
#define DAC_WRITE dac_signed_w
52
#define DAC_WRITE dac_w
56
51
static void niyanpai_soundbank_w(running_machine &machine, int data)
58
UINT8 *SNDROM = machine.region("audiocpu")->base();
60
memory_set_bankptr(machine, "bank1", &SNDROM[0x08000 + (0x8000 * (data & 0x03))]);
63
static READ8_HANDLER( niyanpai_sound_r )
65
return soundlatch_r(space, 0);
68
static WRITE16_HANDLER( niyanpai_sound_w )
70
soundlatch_w(space, 0, ((data >> 8) & 0xff));
73
static WRITE8_HANDLER( niyanpai_soundclr_w )
75
soundlatch_clear_w(space, 0, 0);
53
UINT8 *SNDROM = machine.root_device().memregion("audiocpu")->base();
55
machine.root_device().membank("bank1")->set_base(&SNDROM[0x08000 + (0x8000 * (data & 0x03))]);
58
READ8_MEMBER(niyanpai_state::niyanpai_sound_r)
60
return soundlatch_byte_r(space, 0);
63
WRITE16_MEMBER(niyanpai_state::niyanpai_sound_w)
65
soundlatch_byte_w(space, 0, ((data >> 8) & 0xff));
68
WRITE8_MEMBER(niyanpai_state::niyanpai_soundclr_w)
70
soundlatch_clear_byte_w(space, 0, 0);
79
74
/* TMPZ84C011 PIO emulation */
81
static READ8_HANDLER( tmpz84c011_pio_r )
76
READ8_MEMBER(niyanpai_state::tmpz84c011_pio_r)
132
logerror("%s: TMPZ84C011_PIO Unknown Port Write %02X, %02X\n", space->machine().describe_context(), offset, data);
127
logerror("%s: TMPZ84C011_PIO Unknown Port Write %02X, %02X\n", machine().describe_context(), offset, data);
137
132
/* CPU interface */
138
static READ8_HANDLER( tmpz84c011_0_pa_r )
140
niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
141
return (tmpz84c011_pio_r(space,0) & ~state->m_pio_dir[0]) | (state->m_pio_latch[0] & state->m_pio_dir[0]);
144
static READ8_HANDLER( tmpz84c011_0_pb_r )
146
niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
147
return (tmpz84c011_pio_r(space,1) & ~state->m_pio_dir[1]) | (state->m_pio_latch[1] & state->m_pio_dir[1]);
150
static READ8_HANDLER( tmpz84c011_0_pc_r )
152
niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
153
return (tmpz84c011_pio_r(space,2) & ~state->m_pio_dir[2]) | (state->m_pio_latch[2] & state->m_pio_dir[2]);
156
static READ8_HANDLER( tmpz84c011_0_pd_r )
158
niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
159
return (tmpz84c011_pio_r(space,3) & ~state->m_pio_dir[3]) | (state->m_pio_latch[3] & state->m_pio_dir[3]);
162
static READ8_HANDLER( tmpz84c011_0_pe_r )
164
niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
165
return (tmpz84c011_pio_r(space,4) & ~state->m_pio_dir[4]) | (state->m_pio_latch[4] & state->m_pio_dir[4]);
168
static WRITE8_HANDLER( tmpz84c011_0_pa_w )
170
niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
171
state->m_pio_latch[0] = data;
133
READ8_MEMBER(niyanpai_state::tmpz84c011_0_pa_r)
135
return (tmpz84c011_pio_r(space,0) & ~m_pio_dir[0]) | (m_pio_latch[0] & m_pio_dir[0]);
138
READ8_MEMBER(niyanpai_state::tmpz84c011_0_pb_r)
140
return (tmpz84c011_pio_r(space,1) & ~m_pio_dir[1]) | (m_pio_latch[1] & m_pio_dir[1]);
143
READ8_MEMBER(niyanpai_state::tmpz84c011_0_pc_r)
145
return (tmpz84c011_pio_r(space,2) & ~m_pio_dir[2]) | (m_pio_latch[2] & m_pio_dir[2]);
148
READ8_MEMBER(niyanpai_state::tmpz84c011_0_pd_r)
150
return (tmpz84c011_pio_r(space,3) & ~m_pio_dir[3]) | (m_pio_latch[3] & m_pio_dir[3]);
153
READ8_MEMBER(niyanpai_state::tmpz84c011_0_pe_r)
155
return (tmpz84c011_pio_r(space,4) & ~m_pio_dir[4]) | (m_pio_latch[4] & m_pio_dir[4]);
158
WRITE8_MEMBER(niyanpai_state::tmpz84c011_0_pa_w)
160
m_pio_latch[0] = data;
172
161
tmpz84c011_pio_w(space, 0, data);
175
static WRITE8_HANDLER( tmpz84c011_0_pb_w )
164
WRITE8_MEMBER(niyanpai_state::tmpz84c011_0_pb_w)
177
niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
178
state->m_pio_latch[1] = data;
166
m_pio_latch[1] = data;
179
167
tmpz84c011_pio_w(space, 1, data);
181
static WRITE8_HANDLER( tmpz84c011_0_pc_w )
169
WRITE8_MEMBER(niyanpai_state::tmpz84c011_0_pc_w)
183
niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
184
state->m_pio_latch[2] = data;
171
m_pio_latch[2] = data;
185
172
tmpz84c011_pio_w(space, 2, data);
188
static WRITE8_HANDLER( tmpz84c011_0_pd_w )
175
WRITE8_MEMBER(niyanpai_state::tmpz84c011_0_pd_w)
190
niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
191
state->m_pio_latch[3] = data;
177
m_pio_latch[3] = data;
192
178
tmpz84c011_pio_w(space, 3, data);
195
static WRITE8_HANDLER( tmpz84c011_0_pe_w )
181
WRITE8_MEMBER(niyanpai_state::tmpz84c011_0_pe_w)
197
niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
198
state->m_pio_latch[4] = data;
183
m_pio_latch[4] = data;
199
184
tmpz84c011_pio_w(space, 4, data);
202
static READ8_HANDLER( tmpz84c011_0_dir_pa_r )
204
niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
205
return state->m_pio_dir[0];
208
static READ8_HANDLER( tmpz84c011_0_dir_pb_r )
210
niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
211
return state->m_pio_dir[1];
214
static READ8_HANDLER( tmpz84c011_0_dir_pc_r )
216
niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
217
return state->m_pio_dir[2];
220
static READ8_HANDLER( tmpz84c011_0_dir_pd_r )
222
niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
223
return state->m_pio_dir[3];
226
static READ8_HANDLER( tmpz84c011_0_dir_pe_r )
228
niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
229
return state->m_pio_dir[4];
232
static WRITE8_HANDLER( tmpz84c011_0_dir_pa_w )
234
niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
235
state->m_pio_dir[0] = data;
238
static WRITE8_HANDLER( tmpz84c011_0_dir_pb_w )
240
niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
241
state->m_pio_dir[1] = data;
244
static WRITE8_HANDLER( tmpz84c011_0_dir_pc_w )
246
niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
247
state->m_pio_dir[2] = data;
250
static WRITE8_HANDLER( tmpz84c011_0_dir_pd_w )
252
niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
253
state->m_pio_dir[3] = data;
256
static WRITE8_HANDLER( tmpz84c011_0_dir_pe_w )
258
niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
259
state->m_pio_dir[4] = data;
187
READ8_MEMBER(niyanpai_state::tmpz84c011_0_dir_pa_r)
192
READ8_MEMBER(niyanpai_state::tmpz84c011_0_dir_pb_r)
197
READ8_MEMBER(niyanpai_state::tmpz84c011_0_dir_pc_r)
202
READ8_MEMBER(niyanpai_state::tmpz84c011_0_dir_pd_r)
207
READ8_MEMBER(niyanpai_state::tmpz84c011_0_dir_pe_r)
212
WRITE8_MEMBER(niyanpai_state::tmpz84c011_0_dir_pa_w)
217
WRITE8_MEMBER(niyanpai_state::tmpz84c011_0_dir_pb_w)
222
WRITE8_MEMBER(niyanpai_state::tmpz84c011_0_dir_pc_w)
227
WRITE8_MEMBER(niyanpai_state::tmpz84c011_0_dir_pd_w)
232
WRITE8_MEMBER(niyanpai_state::tmpz84c011_0_dir_pe_w)
302
static READ16_HANDLER( niyanpai_dipsw_r )
277
READ16_MEMBER(niyanpai_state::niyanpai_dipsw_r)
304
279
UINT8 dipsw_a, dipsw_b;
306
dipsw_a = (((input_port_read(space->machine(), "DSWA") & 0x01) << 7) | ((input_port_read(space->machine(), "DSWA") & 0x02) << 5) |
307
((input_port_read(space->machine(), "DSWA") & 0x04) << 3) | ((input_port_read(space->machine(), "DSWA") & 0x08) << 1) |
308
((input_port_read(space->machine(), "DSWA") & 0x10) >> 1) | ((input_port_read(space->machine(), "DSWA") & 0x20) >> 3) |
309
((input_port_read(space->machine(), "DSWA") & 0x40) >> 5) | ((input_port_read(space->machine(), "DSWA") & 0x80) >> 7));
281
dipsw_a = (((ioport("DSWA")->read() & 0x01) << 7) | ((ioport("DSWA")->read() & 0x02) << 5) |
282
((ioport("DSWA")->read() & 0x04) << 3) | ((ioport("DSWA")->read() & 0x08) << 1) |
283
((ioport("DSWA")->read() & 0x10) >> 1) | ((ioport("DSWA")->read() & 0x20) >> 3) |
284
((ioport("DSWA")->read() & 0x40) >> 5) | ((ioport("DSWA")->read() & 0x80) >> 7));
311
dipsw_b = (((input_port_read(space->machine(), "DSWB") & 0x01) << 7) | ((input_port_read(space->machine(), "DSWB") & 0x02) << 5) |
312
((input_port_read(space->machine(), "DSWB") & 0x04) << 3) | ((input_port_read(space->machine(), "DSWB") & 0x08) << 1) |
313
((input_port_read(space->machine(), "DSWB") & 0x10) >> 1) | ((input_port_read(space->machine(), "DSWB") & 0x20) >> 3) |
314
((input_port_read(space->machine(), "DSWB") & 0x40) >> 5) | ((input_port_read(space->machine(), "DSWB") & 0x80) >> 7));
286
dipsw_b = (((ioport("DSWB")->read() & 0x01) << 7) | ((ioport("DSWB")->read() & 0x02) << 5) |
287
((ioport("DSWB")->read() & 0x04) << 3) | ((ioport("DSWB")->read() & 0x08) << 1) |
288
((ioport("DSWB")->read() & 0x10) >> 1) | ((ioport("DSWB")->read() & 0x20) >> 3) |
289
((ioport("DSWB")->read() & 0x40) >> 5) | ((ioport("DSWB")->read() & 0x80) >> 7));
316
291
return ((dipsw_a << 8) | dipsw_b);
319
static READ16_HANDLER( musobana_inputport_0_r )
294
READ16_MEMBER(niyanpai_state::musobana_inputport_0_r)
321
niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
324
switch ((state->m_musobana_inputport ^ 0xff00) >> 8)
298
switch ((m_musobana_inputport ^ 0xff00) >> 8)
326
case 0x01: portdata = input_port_read(space->machine(), "KEY0"); break;
327
case 0x02: portdata = input_port_read(space->machine(), "KEY1"); break;
328
case 0x04: portdata = input_port_read(space->machine(), "KEY2"); break;
329
case 0x08: portdata = input_port_read(space->machine(), "KEY3"); break;
330
case 0x10: portdata = input_port_read(space->machine(), "KEY4"); break;
331
default: portdata = input_port_read(space->machine(), "KEY0") & input_port_read(space->machine(), "KEY1") & input_port_read(space->machine(), "KEY2")
332
& input_port_read(space->machine(), "KEY3") & input_port_read(space->machine(), "KEY4"); break;
300
case 0x01: portdata = ioport("KEY0")->read(); break;
301
case 0x02: portdata = ioport("KEY1")->read(); break;
302
case 0x04: portdata = ioport("KEY2")->read(); break;
303
case 0x08: portdata = ioport("KEY3")->read(); break;
304
case 0x10: portdata = ioport("KEY4")->read(); break;
305
default: portdata = ioport("KEY0")->read() & ioport("KEY1")->read() & ioport("KEY2")->read()
306
& ioport("KEY3")->read() & ioport("KEY4")->read(); break;
335
309
return (portdata);
338
static CUSTOM_INPUT( musobana_outcoin_flag_r )
312
CUSTOM_INPUT_MEMBER(niyanpai_state::musobana_outcoin_flag_r)
340
niyanpai_state *state = field.machine().driver_data<niyanpai_state>();
341
address_space *space = field.machine().device("maincpu")->memory().space(AS_PROGRAM);
314
address_space *space = machine().device("maincpu")->memory().space(AS_PROGRAM);
342
315
// tmp68301_parallel_interface[0x05]
343
316
// bit 0 coin counter
344
317
// bit 2 motor on
345
318
// bit 3 coin lock
347
if (tmp68301_parallel_interface_r(space, 0x0005, 0x00ff) & 0x0004) state->m_musobana_outcoin_flag ^= 1;
348
else state->m_musobana_outcoin_flag = 1;
320
if (tmp68301_parallel_interface_r(space, 0x0005, 0x00ff) & 0x0004) m_musobana_outcoin_flag ^= 1;
321
else m_musobana_outcoin_flag = 1;
350
return state->m_musobana_outcoin_flag & 0x01;
323
return m_musobana_outcoin_flag & 0x01;
353
static WRITE16_HANDLER ( musobana_inputport_w )
326
WRITE16_MEMBER(niyanpai_state::musobana_inputport_w)
355
niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
356
state->m_musobana_inputport = data;
328
m_musobana_inputport = data;
359
static ADDRESS_MAP_START( tmp68301_regs, AS_PROGRAM, 16 )
360
AM_RANGE(0xfffc00, 0xfffc0f) AM_READWRITE(tmp68301_address_decoder_r,tmp68301_address_decoder_w)
361
AM_RANGE(0xfffc80, 0xfffc9f) AM_READWRITE(tmp68301_interrupt_controller_r,tmp68301_interrupt_controller_w)
362
AM_RANGE(0xfffd00, 0xfffd0f) AM_READWRITE(tmp68301_parallel_interface_r,tmp68301_parallel_interface_w)
363
AM_RANGE(0xfffd80, 0xfffdaf) AM_READWRITE(tmp68301_serial_interface_r,tmp68301_serial_interface_w)
364
AM_RANGE(0xfffe00, 0xfffe4f) AM_READWRITE(tmp68301_timer_r,tmp68301_timer_w)
331
static ADDRESS_MAP_START( tmp68301_regs, AS_PROGRAM, 16, niyanpai_state )
332
AM_RANGE(0xfffc00, 0xfffc0f) AM_READWRITE_LEGACY(tmp68301_address_decoder_r,tmp68301_address_decoder_w)
333
AM_RANGE(0xfffc80, 0xfffc9f) AM_READWRITE_LEGACY(tmp68301_interrupt_controller_r,tmp68301_interrupt_controller_w)
334
AM_RANGE(0xfffd00, 0xfffd0f) AM_READWRITE_LEGACY(tmp68301_parallel_interface_r,tmp68301_parallel_interface_w)
335
AM_RANGE(0xfffd80, 0xfffdaf) AM_READWRITE_LEGACY(tmp68301_serial_interface_r,tmp68301_serial_interface_w)
336
AM_RANGE(0xfffe00, 0xfffe4f) AM_READWRITE_LEGACY(tmp68301_timer_r,tmp68301_timer_w)
367
static ADDRESS_MAP_START( niyanpai_map, AS_PROGRAM, 16 )
339
static ADDRESS_MAP_START( niyanpai_map, AS_PROGRAM, 16, niyanpai_state )
368
340
AM_RANGE(0x000000, 0x03ffff) AM_ROM
369
341
AM_RANGE(0x040000, 0x040fff) AM_RAM AM_SHARE("nvram")
477
449
AM_IMPORT_FROM( tmp68301_regs )
481
static ADDRESS_MAP_START( niyanpai_sound_map, AS_PROGRAM, 8 )
452
static ADDRESS_MAP_START( zokumahj_map, AS_PROGRAM, 16, niyanpai_state )
453
AM_RANGE(0x000000, 0x03ffff) AM_ROM
454
AM_RANGE(0x0ff000, 0x0fffff) AM_RAM
456
AM_RANGE(0x0e0000, 0x0e08ff) AM_READWRITE(niyanpai_palette_r,niyanpai_palette_w)
457
AM_RANGE(0x0e0900, 0x0e11ff) AM_RAM // palette work ram?
459
AM_RANGE(0x0a8000, 0x0a87ff) AM_RAM AM_SHARE("nvram")
460
AM_RANGE(0x0c0000, 0x0cffff) AM_RAM
462
AM_RANGE(0x200000, 0x200001) AM_WRITE(niyanpai_sound_w)
464
AM_RANGE(0x200200, 0x200201) AM_WRITE(musobana_inputport_w) // inputport select
465
AM_RANGE(0x240000, 0x240009) AM_WRITENOP // unknown
466
AM_RANGE(0x240200, 0x2403ff) AM_WRITENOP // unknown
468
AM_RANGE(0x240400, 0x240403) AM_READ(niyanpai_blitter_0_r)
469
AM_RANGE(0x240400, 0x24041f) AM_WRITE(niyanpai_blitter_0_w)
470
AM_RANGE(0x240420, 0x24043f) AM_WRITE(niyanpai_clut_0_w)
472
AM_RANGE(0x240600, 0x240603) AM_READ(niyanpai_blitter_1_r)
473
AM_RANGE(0x240600, 0x24061f) AM_WRITE(niyanpai_blitter_1_w)
474
AM_RANGE(0x240620, 0x24063f) AM_WRITE(niyanpai_clut_1_w)
476
AM_RANGE(0x240800, 0x240803) AM_READ(niyanpai_blitter_2_r)
477
AM_RANGE(0x240800, 0x24081f) AM_WRITE(niyanpai_blitter_2_w)
478
AM_RANGE(0x240820, 0x24083f) AM_WRITE(niyanpai_clut_2_w)
480
AM_RANGE(0x240a00, 0x240a01) AM_WRITE(niyanpai_clutsel_0_w)
481
AM_RANGE(0x240c00, 0x240c01) AM_WRITE(niyanpai_clutsel_1_w)
482
AM_RANGE(0x240e00, 0x240e01) AM_WRITE(niyanpai_clutsel_2_w)
484
AM_RANGE(0x280000, 0x280001) AM_READ(niyanpai_dipsw_r)
485
AM_RANGE(0x280200, 0x280201) AM_READ(musobana_inputport_0_r)
486
AM_RANGE(0x280400, 0x280401) AM_READ_PORT("SYSTEM")
488
AM_IMPORT_FROM( tmp68301_regs )
492
static ADDRESS_MAP_START( niyanpai_sound_map, AS_PROGRAM, 8, niyanpai_state )
482
493
AM_RANGE(0x0000, 0x77ff) AM_ROM
483
494
AM_RANGE(0x7800, 0x7fff) AM_RAM
484
495
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1")
487
static ADDRESS_MAP_START( niyanpai_sound_io_map, AS_IO, 8 )
498
static ADDRESS_MAP_START( niyanpai_sound_io_map, AS_IO, 8, niyanpai_state )
488
499
ADDRESS_MAP_GLOBAL_MASK(0xff)
489
AM_RANGE(0x10, 0x13) AM_DEVREADWRITE("ctc", z80ctc_r, z80ctc_w)
500
AM_RANGE(0x10, 0x13) AM_DEVREADWRITE_LEGACY("ctc", z80ctc_r, z80ctc_w)
490
501
AM_RANGE(0x50, 0x50) AM_READWRITE(tmpz84c011_0_pa_r, tmpz84c011_0_pa_w)
491
502
AM_RANGE(0x51, 0x51) AM_READWRITE(tmpz84c011_0_pb_r, tmpz84c011_0_pb_w)
492
503
AM_RANGE(0x52, 0x52) AM_READWRITE(tmpz84c011_0_pc_r, tmpz84c011_0_pc_w)
844
855
PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START3 ) // CREDIT CLEAR
845
856
PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET
846
857
PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER
847
PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(musobana_outcoin_flag_r, NULL) // OUT COIN
858
PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, niyanpai_state,musobana_outcoin_flag_r, NULL) // OUT COIN
859
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
860
PORT_SERVICE( 0x8000, IP_ACTIVE_LOW ) // TEST
862
PORT_INCLUDE( nbmjctrl_16 )
865
static INPUT_PORTS_START( zokumahj ) // I don't have manual for this game.
867
PORT_DIPNAME( 0x01, 0x01, "DIPSW 1-1" )
868
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
869
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
870
PORT_DIPNAME( 0x02, 0x02, "DIPSW 1-2" )
871
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
872
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
873
PORT_DIPNAME( 0x04, 0x04, "DIPSW 1-3" )
874
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
875
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
876
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Coinage ) )
877
PORT_DIPSETTING( 0x08, DEF_STR( 1C_1C ) )
878
PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) )
879
PORT_DIPNAME( 0x10, 0x10, "DIPSW 1-5" )
880
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
881
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
882
PORT_DIPNAME( 0x20, 0x00, DEF_STR( Flip_Screen ) )
883
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
884
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
885
PORT_DIPNAME( 0x40, 0x40, "DIPSW 1-7" )
886
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
887
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
888
PORT_DIPNAME( 0x80, 0x80, "DIPSW 1-8" )
889
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
890
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
893
PORT_DIPNAME( 0x01, 0x01, "DIPSW 2-1" )
894
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
895
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
896
PORT_DIPNAME( 0x02, 0x02, "DIPSW 2-2" )
897
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
898
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
899
PORT_DIPNAME( 0x04, 0x04, "DIPSW 2-3" )
900
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
901
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
902
PORT_DIPNAME( 0x08, 0x08, "DIPSW 2-4" )
903
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
904
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
905
PORT_DIPNAME( 0x10, 0x10, "DIPSW 2-5" )
906
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
907
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
908
PORT_DIPNAME( 0x20, 0x20, "DIPSW 2-6" )
909
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
910
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
911
PORT_DIPNAME( 0x40, 0x40, "DIPSW 2-7" )
912
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
913
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
914
PORT_DIPNAME( 0x80, 0x80, "Option Test" )
915
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
916
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
919
PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 ) // COIN1
920
PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_COIN2 ) // COIN2
921
PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START3 ) // CREDIT CLEAR
922
PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET
923
PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER
924
PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, niyanpai_state,musobana_outcoin_flag_r, NULL) // OUT COIN
848
925
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
849
926
PORT_SERVICE( 0x8000, IP_ACTIVE_LOW ) // TEST
997
1081
ROM_LOAD( "u107.bin", 0x280000, 0x80000, CRC(efc85912) SHA1(b9d523fd5f9ce879e2ed6916c89940be1d738a1c) )
1001
GAME( 1996, niyanpai, 0, niyanpai, niyanpai, niyanpai, ROT0, "Nichibutsu", "Niyanpai (Japan)", 0 )
1002
GAME( 1995, musobana, 0, musobana, musobana, niyanpai, ROT0, "Nichibutsu / Yubis", "Musoubana (Japan)", 0 )
1003
GAME( 1994, 4psimasy, 0, musobana, 4psimasy, niyanpai, ROT0, "Sphinx / AV Japan", "Mahjong 4P Simasyo (Japan)", 0 )
1004
GAME( 199?, mhhonban, 0, mhhonban, mhhonban, niyanpai, ROT0, "Nichibutsu?", "Mahjong Housoukyoku Honbanchuu (Japan)", 0 )
1084
ROM_START( zokumahj )
1085
ROM_REGION( 0x40000, "maincpu", 0 ) /* TMP68301 main program */
1086
ROM_LOAD16_BYTE( "1.bin", 0x00000, 0x20000, CRC(53ca34a9) SHA1(5a1e2660442665efd529ec6c98ffc994c6103419) )
1087
ROM_LOAD16_BYTE( "2.bin", 0x00001, 0x20000, CRC(474f9303) SHA1(4b03e3b6b6ee864dfcce3978f19bf329e39b3fe7) )
1089
ROM_REGION( 0x20000, "audiocpu", 0 ) /* TMPZ84C011 sound program */
1090
ROM_LOAD( "3.bin", 0x000000, 0x20000, CRC(48407507) SHA1(afd24d16d487fd2b6548d967e2f1ae122e2633a2) )
1092
ROM_REGION( 0x300000, "gfx1", 0 ) /* gfx */
1093
ROM_LOAD( "4.bin", 0x000000, 0x80000, CRC(2b3e88b4) SHA1(d49a81f1bc6ac5b56df36caf7ee7188a917d947f) )
1094
ROM_LOAD( "5.bin", 0x080000, 0x80000, CRC(cfe9477a) SHA1(9d08f5b1d638cef7d8dc97bdd9d98627f9af1ef9) )
1095
ROM_LOAD( "6.bin", 0x100000, 0x80000, CRC(2d62df76) SHA1(83fe8e0a853c0137e7c77ecde762617c082774e5) )
1096
ROM_LOAD( "7.bin", 0x180000, 0x80000, CRC(75922e76) SHA1(4ad23e241a1a223e0fcd4fd26bd695b1a68c258a) )
1097
ROM_LOAD( "8.bin", 0x200000, 0x80000, CRC(22b3befa) SHA1(e44635e021962ce29b4e129ae394c794038aef39) )
1098
ROM_LOAD( "9.bin", 0x280000, 0x80000, CRC(f72d83af) SHA1(4b897b40765084fd9483065fd0eb0e29cbcfa5ac) )
1102
GAME( 1996, niyanpai, 0, niyanpai, niyanpai, niyanpai, ROT0, "Nichibutsu", "Niyanpai (Japan)", 0 )
1103
GAME( 1995, musobana, 0, musobana, musobana, niyanpai, ROT0, "Nichibutsu / Yubis", "Musoubana (Japan)", 0 )
1104
GAME( 1994, 4psimasy, 0, musobana, 4psimasy, niyanpai, ROT0, "Sphinx / AV Japan", "Mahjong 4P Simasyo (Japan)", 0 )
1105
GAME( 199?, mhhonban, 0, mhhonban, mhhonban, niyanpai, ROT0, "Nichibutsu?", "Mahjong Housoukyoku Honbanchuu (Japan)", 0 )
1106
GAME( 199?, zokumahj, mhhonban, zokumahj, zokumahj, niyanpai, ROT0, "Nichibutsu?", "Zoku Mahjong Housoukyoku (Japan)", 0 )