77
static READ16_HANDLER( dbzcontrol_r )
77
READ16_MEMBER(dbz_state::dbzcontrol_r)
79
dbz_state *state = space->machine().driver_data<dbz_state>();
80
return state->m_control;
84
static WRITE16_HANDLER( dbzcontrol_w )
83
WRITE16_MEMBER(dbz_state::dbzcontrol_w)
86
dbz_state *state = space->machine().driver_data<dbz_state>();
87
85
/* bit 10 = enable '246 readback */
89
COMBINE_DATA(&state->m_control);
87
COMBINE_DATA(&m_control);
92
k053246_set_objcha_line(state->m_k053246, ASSERT_LINE);
90
k053246_set_objcha_line(m_k053246, ASSERT_LINE);
94
k053246_set_objcha_line(state->m_k053246, CLEAR_LINE);
96
coin_counter_w(space->machine(), 0, data & 1);
97
coin_counter_w(space->machine(), 1, data & 2);
100
static WRITE16_HANDLER( dbz_sound_command_w )
102
soundlatch_w(space, 0, data >> 8);
105
static WRITE16_HANDLER( dbz_sound_cause_nmi )
107
dbz_state *state = space->machine().driver_data<dbz_state>();
108
device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
92
k053246_set_objcha_line(m_k053246, CLEAR_LINE);
94
coin_counter_w(machine(), 0, data & 1);
95
coin_counter_w(machine(), 1, data & 2);
98
WRITE16_MEMBER(dbz_state::dbz_sound_command_w)
100
soundlatch_byte_w(space, 0, data >> 8);
103
WRITE16_MEMBER(dbz_state::dbz_sound_cause_nmi)
105
device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
111
108
static void dbz_sound_irq( device_t *device, int irq )
115
112
device_set_input_line(state->m_audiocpu, 0, (irq) ? ASSERT_LINE : CLEAR_LINE);
118
static ADDRESS_MAP_START( dbz_map, AS_PROGRAM, 16 )
115
static ADDRESS_MAP_START( dbz_map, AS_PROGRAM, 16, dbz_state )
119
116
AM_RANGE(0x000000, 0x0fffff) AM_ROM
120
117
AM_RANGE(0x480000, 0x48ffff) AM_RAM
121
AM_RANGE(0x490000, 0x491fff) AM_DEVREADWRITE("k056832", k056832_ram_word_r, k056832_ram_word_w) // '157 RAM is mirrored twice
122
AM_RANGE(0x492000, 0x493fff) AM_DEVREADWRITE("k056832", k056832_ram_word_r, k056832_ram_word_w)
123
AM_RANGE(0x498000, 0x49ffff) AM_DEVREAD("k056832", k056832_rom_word_8000_r) // code near a60 in dbz2, subroutine at 730 in dbz
124
AM_RANGE(0x4a0000, 0x4a0fff) AM_DEVREADWRITE("k053246", k053247_word_r, k053247_word_w)
118
AM_RANGE(0x490000, 0x491fff) AM_DEVREADWRITE_LEGACY("k056832", k056832_ram_word_r, k056832_ram_word_w) // '157 RAM is mirrored twice
119
AM_RANGE(0x492000, 0x493fff) AM_DEVREADWRITE_LEGACY("k056832", k056832_ram_word_r, k056832_ram_word_w)
120
AM_RANGE(0x498000, 0x49ffff) AM_DEVREAD_LEGACY("k056832", k056832_rom_word_8000_r) // code near a60 in dbz2, subroutine at 730 in dbz
121
AM_RANGE(0x4a0000, 0x4a0fff) AM_DEVREADWRITE_LEGACY("k053246", k053247_word_r, k053247_word_w)
125
122
AM_RANGE(0x4a1000, 0x4a3fff) AM_RAM
126
AM_RANGE(0x4a8000, 0x4abfff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram) // palette
127
AM_RANGE(0x4c0000, 0x4c0001) AM_DEVREAD("k053246", k053246_word_r)
128
AM_RANGE(0x4c0000, 0x4c0007) AM_DEVWRITE("k053246", k053246_word_w)
129
AM_RANGE(0x4c4000, 0x4c4007) AM_DEVWRITE("k053246", k053246_word_w)
130
AM_RANGE(0x4c8000, 0x4c8007) AM_DEVWRITE("k056832", k056832_b_word_w)
131
AM_RANGE(0x4cc000, 0x4cc03f) AM_DEVWRITE("k056832", k056832_word_w)
132
AM_RANGE(0x4d0000, 0x4d001f) AM_DEVWRITE("k053936_1", k053936_ctrl_w)
133
AM_RANGE(0x4d4000, 0x4d401f) AM_DEVWRITE("k053936_2", k053936_ctrl_w)
123
AM_RANGE(0x4a8000, 0x4abfff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") // palette
124
AM_RANGE(0x4c0000, 0x4c0001) AM_DEVREAD_LEGACY("k053246", k053246_word_r)
125
AM_RANGE(0x4c0000, 0x4c0007) AM_DEVWRITE_LEGACY("k053246", k053246_word_w)
126
AM_RANGE(0x4c4000, 0x4c4007) AM_DEVWRITE_LEGACY("k053246", k053246_word_w)
127
AM_RANGE(0x4c8000, 0x4c8007) AM_DEVWRITE_LEGACY("k056832", k056832_b_word_w)
128
AM_RANGE(0x4cc000, 0x4cc03f) AM_DEVWRITE_LEGACY("k056832", k056832_word_w)
129
AM_RANGE(0x4d0000, 0x4d001f) AM_DEVWRITE_LEGACY("k053936_1", k053936_ctrl_w)
130
AM_RANGE(0x4d4000, 0x4d401f) AM_DEVWRITE_LEGACY("k053936_2", k053936_ctrl_w)
134
131
AM_RANGE(0x4e0000, 0x4e0001) AM_READ_PORT("P1_P2")
135
132
AM_RANGE(0x4e0002, 0x4e0003) AM_READ_PORT("SYSTEM_DSW1")
136
133
AM_RANGE(0x4e4000, 0x4e4001) AM_READ_PORT("DSW2")
138
135
AM_RANGE(0x4ec000, 0x4ec001) AM_WRITE(dbzcontrol_w)
139
136
AM_RANGE(0x4f0000, 0x4f0001) AM_WRITE(dbz_sound_command_w)
140
137
AM_RANGE(0x4f4000, 0x4f4001) AM_WRITE(dbz_sound_cause_nmi)
141
AM_RANGE(0x4f8000, 0x4f801f) AM_DEVREADWRITE8("k053252",k053252_r,k053252_w,0xff00) // 251 #1
142
AM_RANGE(0x4fc000, 0x4fc01f) AM_DEVWRITE("k053251", k053251_lsb_w) // 251 #2
138
AM_RANGE(0x4f8000, 0x4f801f) AM_DEVREADWRITE8_LEGACY("k053252",k053252_r,k053252_w,0xff00) // 251 #1
139
AM_RANGE(0x4fc000, 0x4fc01f) AM_DEVWRITE_LEGACY("k053251", k053251_lsb_w) // 251 #2
144
AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(dbz_bg2_videoram_w) AM_BASE_MEMBER(dbz_state, m_bg2_videoram)
145
AM_RANGE(0x508000, 0x509fff) AM_RAM_WRITE(dbz_bg1_videoram_w) AM_BASE_MEMBER(dbz_state, m_bg1_videoram)
146
AM_RANGE(0x510000, 0x513fff) AM_DEVREADWRITE("k053936_1", k053936_linectrl_r, k053936_linectrl_w) // ?? guess, it might not be
147
AM_RANGE(0x518000, 0x51bfff) AM_DEVREADWRITE("k053936_2", k053936_linectrl_r, k053936_linectrl_w) // ?? guess, it might not be
141
AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(dbz_bg2_videoram_w) AM_SHARE("bg2_videoram")
142
AM_RANGE(0x508000, 0x509fff) AM_RAM_WRITE(dbz_bg1_videoram_w) AM_SHARE("bg1_videoram")
143
AM_RANGE(0x510000, 0x513fff) AM_DEVREADWRITE_LEGACY("k053936_1", k053936_linectrl_r, k053936_linectrl_w) // ?? guess, it might not be
144
AM_RANGE(0x518000, 0x51bfff) AM_DEVREADWRITE_LEGACY("k053936_2", k053936_linectrl_r, k053936_linectrl_w) // ?? guess, it might not be
148
145
AM_RANGE(0x600000, 0x6fffff) AM_READNOP // PSAC 1 ROM readback window
149
146
AM_RANGE(0x700000, 0x7fffff) AM_READNOP // PSAC 2 ROM readback window
153
150
/* IRQ: from YM2151. NMI: from 68000. Port 0: write to ack NMI */
155
static ADDRESS_MAP_START( dbz_sound_map, AS_PROGRAM, 8 )
152
static ADDRESS_MAP_START( dbz_sound_map, AS_PROGRAM, 8, dbz_state )
156
153
AM_RANGE(0x0000, 0x7fff) AM_ROM
157
154
AM_RANGE(0x8000, 0xbfff) AM_RAM
158
AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
159
AM_RANGE(0xd000, 0xd002) AM_DEVREADWRITE_MODERN("oki", okim6295_device, read, write)
160
AM_RANGE(0xe000, 0xe001) AM_READ(soundlatch_r)
155
AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
156
AM_RANGE(0xd000, 0xd002) AM_DEVREADWRITE("oki", okim6295_device, read, write)
157
AM_RANGE(0xe000, 0xe001) AM_READ(soundlatch_byte_r)
163
static ADDRESS_MAP_START( dbz_sound_io_map, AS_IO, 8 )
160
static ADDRESS_MAP_START( dbz_sound_io_map, AS_IO, 8, dbz_state )
164
161
ADDRESS_MAP_GLOBAL_MASK(0xff)
165
162
AM_RANGE(0x00, 0x00) AM_WRITENOP
217
214
PORT_DIPSETTING( 0x8000, DEF_STR( On ) )
219
216
PORT_START("DSW2")
220
PORT_BIT( 0x00ff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(custom_port_read, "FAKE")
221
PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(custom_port_read, "FAKE")
217
PORT_BIT( 0x00ff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, driver_device,custom_port_read, "FAKE")
218
PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, driver_device,custom_port_read, "FAKE")
223
220
PORT_START("FAKE")
224
221
PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )