trunk/src/mame/drivers/overdriv.cpp
| r253066 | r253067 | |
| 127 | 127 | |
| 128 | 128 | WRITE16_MEMBER(overdriv_state::overdriv_soundirq_w) |
| 129 | 129 | { |
| 130 | | m_audiocpu->set_input_line(M6809_IRQ_LINE, HOLD_LINE); |
| 130 | m_audiocpu->set_input_line(M6809_IRQ_LINE, ASSERT_LINE); |
| 131 | 131 | } |
| 132 | 132 | |
| 133 | |
| 133 | 134 | WRITE16_MEMBER(overdriv_state::overdriv_cpuB_irq_x_w) |
| 134 | 135 | { |
| 135 | 136 | m_subcpu->set_input_line(5, HOLD_LINE); // likely wrong |
| r253066 | r253067 | |
| 167 | 168 | AM_RANGE(0x238000, 0x238001) AM_WRITE(overdriv_cpuB_irq_x_w) |
| 168 | 169 | ADDRESS_MAP_END |
| 169 | 170 | |
| 170 | | // HACK ALERT |
| 171 | #if UNUSED_FUNCTION |
| 171 | 172 | WRITE16_MEMBER( overdriv_state::overdriv_k053246_word_w ) |
| 172 | 173 | { |
| 173 | 174 | m_k053246->k053246_word_w(space,offset,data,mem_mask); |
| r253066 | r253067 | |
| 190 | 191 | //printf("%02x %04x %04x\n", offset, data, mem_mask); |
| 191 | 192 | |
| 192 | 193 | } |
| 194 | #endif |
| 193 | 195 | |
| 194 | 196 | static ADDRESS_MAP_START( overdriv_slave_map, AS_PROGRAM, 16, overdriv_state ) |
| 195 | 197 | AM_RANGE(0x000000, 0x03ffff) AM_ROM |
| r253066 | r253067 | |
| 197 | 199 | AM_RANGE(0x0c0000, 0x0c1fff) AM_RAM //AM_DEVREADWRITE("k053250_1", k053250_device, ram_r, ram_w) |
| 198 | 200 | AM_RANGE(0x100000, 0x10000f) AM_DEVREADWRITE("k053250_1", k053250_device, reg_r, reg_w) |
| 199 | 201 | AM_RANGE(0x108000, 0x10800f) AM_DEVREADWRITE("k053250_2", k053250_device, reg_r, reg_w) |
| 200 | | AM_RANGE(0x118000, 0x118fff) AM_RAM AM_SHARE("sprram") //AM_DEVREADWRITE("k053246", k053247_device, k053247_word_r, k053247_word_w) // data gets copied to sprite chip with DMA.. |
| 202 | AM_RANGE(0x118000, 0x118fff) AM_DEVREADWRITE("k053246", k053247_device, k053247_word_r, k053247_word_w) // data gets copied to sprite chip with DMA.. |
| 201 | 203 | AM_RANGE(0x120000, 0x120001) AM_DEVREAD("k053246", k053247_device, k053246_word_r) |
| 202 | 204 | AM_RANGE(0x128000, 0x128001) AM_READWRITE(cpuB_ctrl_r, cpuB_ctrl_w) /* enable K053247 ROM reading, plus something else */ |
| 203 | | AM_RANGE(0x130000, 0x130007) AM_WRITE(overdriv_k053246_word_w) // AM_DEVWRITE("k053246", k053247_device, k053246_word_w) |
| 205 | AM_RANGE(0x130000, 0x130007) AM_DEVREADWRITE8("k053246", k053247_device, k053246_r,k053246_w,0xffff) |
| 204 | 206 | AM_RANGE(0x200000, 0x203fff) AM_RAM AM_SHARE("share1") |
| 205 | 207 | AM_RANGE(0x208000, 0x20bfff) AM_RAM |
| 206 | 208 | AM_RANGE(0x218000, 0x219fff) AM_DEVREAD("k053250_1", k053250_device, rom_r) |
| 207 | 209 | AM_RANGE(0x220000, 0x221fff) AM_DEVREAD("k053250_2", k053250_device, rom_r) |
| 208 | 210 | ADDRESS_MAP_END |
| 209 | 211 | |
| 212 | WRITE8_MEMBER(overdriv_state::sound_ack_w) |
| 213 | { |
| 214 | m_audiocpu->set_input_line(M6809_IRQ_LINE, CLEAR_LINE); |
| 215 | } |
| 216 | |
| 210 | 217 | static ADDRESS_MAP_START( overdriv_sound_map, AS_PROGRAM, 8, overdriv_state ) |
| 218 | AM_RANGE(0x0000, 0x0000) AM_WRITE(sound_ack_w) |
| 219 | // 0x180 |
| 211 | 220 | AM_RANGE(0x0200, 0x0201) AM_DEVREADWRITE("ymsnd", ym2151_device,read,write) |
| 212 | 221 | AM_RANGE(0x0400, 0x042f) AM_DEVREADWRITE("k053260_1", k053260_device, read, write) |
| 213 | 222 | AM_RANGE(0x0600, 0x062f) AM_DEVREADWRITE("k053260_2", k053260_device, read, write) |
trunk/src/mame/includes/overdriv.h
| r253066 | r253067 | |
| 24 | 24 | m_k053246(*this, "k053246"), |
| 25 | 25 | m_k053251(*this, "k053251"), |
| 26 | 26 | m_k053252(*this, "k053252"), |
| 27 | | m_sprram(*this, "sprram"), |
| 28 | 27 | m_screen(*this, "screen") |
| 29 | 28 | { } |
| 30 | 29 | |
| r253066 | r253067 | |
| 45 | 44 | required_device<k053247_device> m_k053246; |
| 46 | 45 | required_device<k053251_device> m_k053251; |
| 47 | 46 | required_device<k053252_device> m_k053252; |
| 48 | | required_shared_ptr<UINT16> m_sprram; |
| 49 | 47 | required_device<screen_device> m_screen; |
| 50 | 48 | DECLARE_WRITE16_MEMBER(eeprom_w); |
| 51 | 49 | DECLARE_WRITE16_MEMBER(cpuA_ctrl_w); |
| 52 | 50 | DECLARE_READ16_MEMBER(cpuB_ctrl_r); |
| 53 | 51 | DECLARE_WRITE16_MEMBER(cpuB_ctrl_w); |
| 54 | 52 | DECLARE_WRITE16_MEMBER(overdriv_soundirq_w); |
| 53 | DECLARE_WRITE8_MEMBER(sound_ack_w); |
| 55 | 54 | DECLARE_WRITE16_MEMBER(overdriv_cpuB_irq_x_w); |
| 56 | 55 | DECLARE_WRITE16_MEMBER(overdriv_cpuB_irq_y_w); |
| 57 | 56 | virtual void machine_start() override; |
| r253066 | r253067 | |
| 60 | 59 | INTERRUPT_GEN_MEMBER(cpuB_interrupt); |
| 61 | 60 | TIMER_DEVICE_CALLBACK_MEMBER(overdriv_cpuA_scanline); |
| 62 | 61 | |
| 63 | | DECLARE_WRITE16_MEMBER( overdriv_k053246_word_w ); |
| 64 | 62 | K051316_CB_MEMBER(zoom_callback_1); |
| 65 | 63 | K051316_CB_MEMBER(zoom_callback_2); |
| 66 | 64 | K053246_CB_MEMBER(sprite_callback); |