From 748b1197b6beb229506385fedf092f130d2b27e9 Mon Sep 17 00:00:00 2001 From: MetalliC <0vetal0@gmail.com> Date: Sat, 25 Oct 2014 19:53:59 +0300 Subject: [PATCH 1/2] endings --- src/emu/cpu/powerpc/ppc.h | 84 ++++++------- src/emu/cpu/powerpc/ppccom.c | 226 ++++++++++++++++----------------- src/mame/drivers/cobra.c | 238 +++++++++++++++++------------------ src/mame/drivers/firebeat.c | 50 ++++---- src/mame/drivers/hornet.c | 72 +++++------ 5 files changed, 335 insertions(+), 335 deletions(-) diff --git a/src/emu/cpu/powerpc/ppc.h b/src/emu/cpu/powerpc/ppc.h index f21b6a78046..ccab255971f 100644 --- a/src/emu/cpu/powerpc/ppc.h +++ b/src/emu/cpu/powerpc/ppc.h @@ -159,12 +159,12 @@ enum #define PPCDRC_COMPATIBLE_OPTIONS (PPCDRC_STRICT_VERIFY | PPCDRC_FLUSH_PC | PPCDRC_ACCURATE_SINGLES) #define PPCDRC_FASTEST_OPTIONS (0) - - -/*************************************************************************** - PUBLIC FUNCTIONS -***************************************************************************/ - + + +/*************************************************************************** + PUBLIC FUNCTIONS +***************************************************************************/ + #define MCFG_PPC_BUS_FREQUENCY(_frequency) \ ppc_device::set_bus_frequency(*device, _frequency); @@ -213,14 +213,14 @@ protected: public: // construction/destruction ppc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, int address_bits, int data_bits, powerpc_flavor flavor, UINT32 cap, UINT32 tb_divisor, address_map_constructor internal_map); - - static void set_bus_frequency(device_t &device, UINT32 bus_frequency) { downcast(device).c_bus_frequency = bus_frequency; } - - void ppc_set_dcstore_callback(write32_delegate callback); - - void ppcdrc_set_options(UINT32 options); - void ppcdrc_add_fastram(offs_t start, offs_t end, UINT8 readonly, void *base); - void ppcdrc_add_hotspot(offs_t pc, UINT32 opcode, UINT32 cycles); + + static void set_bus_frequency(device_t &device, UINT32 bus_frequency) { downcast(device).c_bus_frequency = bus_frequency; } + + void ppc_set_dcstore_callback(write32_delegate callback); + + void ppcdrc_set_options(UINT32 options); + void ppcdrc_add_fastram(offs_t start, offs_t end, UINT8 readonly, void *base); + void ppcdrc_add_hotspot(offs_t pc, UINT32 opcode, UINT32 cycles); TIMER_CALLBACK_MEMBER(decrementer_int_callback); TIMER_CALLBACK_MEMBER(ppc4xx_buffered_dma_callback); @@ -479,13 +479,13 @@ protected: UINT8 regs[9]; UINT8 txbuf; UINT8 rxbuf; - emu_timer * timer; - UINT8 rxbuffer[256]; - UINT32 rxin, rxout; - write8_delegate tx_cb; - }; - - ppc4xx_spu_state m_spu; + emu_timer * timer; + UINT8 rxbuffer[256]; + UINT32 rxin, rxout; + write8_delegate tx_cb; + }; + + ppc4xx_spu_state m_spu; emu_timer * m_fit_timer; emu_timer * m_pit_timer; emu_timer * m_wdog_timer; @@ -503,16 +503,16 @@ protected: UINT64 m_dec_zero_cycles; emu_timer * m_decrementer_int_timer; - read32_delegate m_dcr_read_func; - write32_delegate m_dcr_write_func; - - write32_delegate m_dcstore_cb; - - read32_delegate m_ext_dma_read_cb[4]; - write32_delegate m_ext_dma_write_cb[4]; - - /* PowerPC function pointers for memory accesses/exceptions */ - jmp_buf m_exception_jmpbuf; + read32_delegate m_dcr_read_func; + write32_delegate m_dcr_write_func; + + write32_delegate m_dcstore_cb; + + read32_delegate m_ext_dma_read_cb[4]; + write32_delegate m_ext_dma_write_cb[4]; + + /* PowerPC function pointers for memory accesses/exceptions */ + jmp_buf m_exception_jmpbuf; UINT8 (*m_ppcread8)(address_space &space, offs_t address); UINT16 (*m_ppcread16)(address_space &space, offs_t address); UINT32 (*m_ppcread32)(address_space &space, offs_t address); @@ -751,17 +751,17 @@ public: class ppc4xx_device : public ppc_device { -public: - ppc4xx_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, powerpc_flavor flavor, UINT32 cap, UINT32 tb_divisor); - - void ppc4xx_spu_set_tx_handler(write8_delegate callback); - void ppc4xx_spu_receive_byte(UINT8 byteval); - - void ppc4xx_set_dma_read_handler(int channel, read32_delegate callback, int rate); - void ppc4xx_set_dma_write_handler(int channel, write32_delegate callback, int rate); - void ppc4xx_set_dcr_read_handler(read32_delegate dcr_read_func); - void ppc4xx_set_dcr_write_handler(write32_delegate dcr_write_func); - +public: + ppc4xx_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, powerpc_flavor flavor, UINT32 cap, UINT32 tb_divisor); + + void ppc4xx_spu_set_tx_handler(write8_delegate callback); + void ppc4xx_spu_receive_byte(UINT8 byteval); + + void ppc4xx_set_dma_read_handler(int channel, read32_delegate callback, int rate); + void ppc4xx_set_dma_write_handler(int channel, write32_delegate callback, int rate); + void ppc4xx_set_dcr_read_handler(read32_delegate dcr_read_func); + void ppc4xx_set_dcr_write_handler(write32_delegate dcr_write_func); + DECLARE_READ8_MEMBER( ppc4xx_spu_r ); DECLARE_WRITE8_MEMBER( ppc4xx_spu_w ); diff --git a/src/emu/cpu/powerpc/ppccom.c b/src/emu/cpu/powerpc/ppccom.c index 1b41c2c0c22..384c039b9bd 100644 --- a/src/emu/cpu/powerpc/ppccom.c +++ b/src/emu/cpu/powerpc/ppccom.c @@ -214,19 +214,19 @@ ppc_device::ppc_device(const machine_config &mconfig, device_type type, const ch , m_core(NULL) , m_bus_freq_multiplier(1) , m_vtlb(NULL) - , m_flavor(flavor) - , m_cap(cap) - , m_tb_divisor(tb_divisor) - , m_cache(CACHE_SIZE + sizeof(internal_ppc_state)) - , m_drcuml(NULL) - , m_drcfe(NULL) + , m_flavor(flavor) + , m_cap(cap) + , m_tb_divisor(tb_divisor) + , m_cache(CACHE_SIZE + sizeof(internal_ppc_state)) + , m_drcuml(NULL) + , m_drcfe(NULL) , m_drcoptions(0) -{ - m_program_config.m_logaddr_width = 32; - m_program_config.m_page_shift = POWERPC_MIN_PAGE_SHIFT; -} - -//ppc403_device::ppc403_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) +{ + m_program_config.m_logaddr_width = 32; + m_program_config.m_page_shift = POWERPC_MIN_PAGE_SHIFT; +} + +//ppc403_device::ppc403_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) // : ppc_device(mconfig, PPC403, "PPC403", tag, owner, clock, "ppc403", 32?, 64?) //{ //} @@ -1238,15 +1238,15 @@ offs_t ppc_device::disasm_disassemble(char *buffer, offs_t pc, const UINT8 *opro ppccom_dcstore_callback - call the dcstore callback if installed -------------------------------------------------*/ - -void ppc_device::ppccom_dcstore_callback() -{ - if (!m_dcstore_cb.isnull()) - { - m_dcstore_cb(*m_program, m_core->param0, 0, 0xffffffff); - } -} - + +void ppc_device::ppccom_dcstore_callback() +{ + if (!m_dcstore_cb.isnull()) + { + m_dcstore_cb(*m_program, m_core->param0, 0, 0xffffffff); + } +} + /*************************************************************************** TLB HANDLING @@ -2058,15 +2058,15 @@ TIMER_CALLBACK_MEMBER( ppc_device::decrementer_int_callback ) /*------------------------------------------------- ppc_set_dcstore_callback - installs a callback - for detecting datacache stores with dcbst --------------------------------------------------*/ - -void ppc_device::ppc_set_dcstore_callback(write32_delegate callback) -{ - m_dcstore_cb = callback; -} - - + for detecting datacache stores with dcbst +-------------------------------------------------*/ + +void ppc_device::ppc_set_dcstore_callback(write32_delegate callback) +{ + m_dcstore_cb = callback; +} + + void ppc_device::execute_set_input(int inputnum, int state) { switch (inputnum) @@ -2285,38 +2285,38 @@ TIMER_CALLBACK_MEMBER( ppc_device::ppc4xx_buffered_dma_callback ) { /* byte transfer */ case 1: - do - { - UINT8 data = 0; - if (!m_ext_dma_read_cb[dmachan].isnull()) - data = (m_ext_dma_read_cb[dmachan])(*m_program, 1, 0xffffffff); - m_program->write_byte(dmaregs[DCR4XX_DMADA0], data); - dmaregs[DCR4XX_DMADA0] += destinc; - } while (!ppc4xx_dma_decrement_count(dmachan)); + do + { + UINT8 data = 0; + if (!m_ext_dma_read_cb[dmachan].isnull()) + data = (m_ext_dma_read_cb[dmachan])(*m_program, 1, 0xffffffff); + m_program->write_byte(dmaregs[DCR4XX_DMADA0], data); + dmaregs[DCR4XX_DMADA0] += destinc; + } while (!ppc4xx_dma_decrement_count(dmachan)); break; /* word transfer */ case 2: - do - { - UINT16 data = 0; - if (!m_ext_dma_read_cb[dmachan].isnull()) - data = (m_ext_dma_read_cb[dmachan])(*m_program, 2, 0xffffffff); - m_program->write_word(dmaregs[DCR4XX_DMADA0], data); - dmaregs[DCR4XX_DMADA0] += destinc; - } while (!ppc4xx_dma_decrement_count(dmachan)); + do + { + UINT16 data = 0; + if (!m_ext_dma_read_cb[dmachan].isnull()) + data = (m_ext_dma_read_cb[dmachan])(*m_program, 2, 0xffffffff); + m_program->write_word(dmaregs[DCR4XX_DMADA0], data); + dmaregs[DCR4XX_DMADA0] += destinc; + } while (!ppc4xx_dma_decrement_count(dmachan)); break; /* dword transfer */ case 4: - do - { - UINT32 data = 0; - if (!m_ext_dma_read_cb[dmachan].isnull()) - data = (m_ext_dma_read_cb[dmachan])(*m_program, 4, 0xffffffff); - m_program->write_dword(dmaregs[DCR4XX_DMADA0], data); - dmaregs[DCR4XX_DMADA0] += destinc; - } while (!ppc4xx_dma_decrement_count(dmachan)); + do + { + UINT32 data = 0; + if (!m_ext_dma_read_cb[dmachan].isnull()) + data = (m_ext_dma_read_cb[dmachan])(*m_program, 4, 0xffffffff); + m_program->write_dword(dmaregs[DCR4XX_DMADA0], data); + dmaregs[DCR4XX_DMADA0] += destinc; + } while (!ppc4xx_dma_decrement_count(dmachan)); break; } } @@ -2329,36 +2329,36 @@ TIMER_CALLBACK_MEMBER( ppc_device::ppc4xx_buffered_dma_callback ) { /* byte transfer */ case 1: - do - { - UINT8 data = m_program->read_byte(dmaregs[DCR4XX_DMADA0]); - if (!m_ext_dma_write_cb[dmachan].isnull()) - (m_ext_dma_write_cb[dmachan])(*m_program, 1, data, 0xffffffff); - dmaregs[DCR4XX_DMADA0] += destinc; - } while (!ppc4xx_dma_decrement_count(dmachan)); - break; + do + { + UINT8 data = m_program->read_byte(dmaregs[DCR4XX_DMADA0]); + if (!m_ext_dma_write_cb[dmachan].isnull()) + (m_ext_dma_write_cb[dmachan])(*m_program, 1, data, 0xffffffff); + dmaregs[DCR4XX_DMADA0] += destinc; + } while (!ppc4xx_dma_decrement_count(dmachan)); + break; /* word transfer */ case 2: - do - { - UINT16 data = m_program->read_word(dmaregs[DCR4XX_DMADA0]); - if (!m_ext_dma_write_cb[dmachan].isnull()) - (m_ext_dma_write_cb[dmachan])(*m_program, 2, data, 0xffffffff); - dmaregs[DCR4XX_DMADA0] += destinc; - } while (!ppc4xx_dma_decrement_count(dmachan)); - break; + do + { + UINT16 data = m_program->read_word(dmaregs[DCR4XX_DMADA0]); + if (!m_ext_dma_write_cb[dmachan].isnull()) + (m_ext_dma_write_cb[dmachan])(*m_program, 2, data, 0xffffffff); + dmaregs[DCR4XX_DMADA0] += destinc; + } while (!ppc4xx_dma_decrement_count(dmachan)); + break; /* dword transfer */ case 4: - do - { - UINT32 data = m_program->read_dword(dmaregs[DCR4XX_DMADA0]); - if (!m_ext_dma_write_cb[dmachan].isnull()) - (m_ext_dma_write_cb[dmachan])(*m_program, 4, data, 0xffffffff); - dmaregs[DCR4XX_DMADA0] += destinc; - } while (!ppc4xx_dma_decrement_count(dmachan)); - break; + do + { + UINT32 data = m_program->read_dword(dmaregs[DCR4XX_DMADA0]); + if (!m_ext_dma_write_cb[dmachan].isnull()) + (m_ext_dma_write_cb[dmachan])(*m_program, 4, data, 0xffffffff); + dmaregs[DCR4XX_DMADA0] += destinc; + } while (!ppc4xx_dma_decrement_count(dmachan)); + break; } } } @@ -2674,14 +2674,14 @@ TIMER_CALLBACK_MEMBER( ppc_device::ppc4xx_spu_callback ) int operation = (m_spu.regs[SPU4XX_TX_COMMAND] >> 5) & 3; /* if we have data to transmit, do it now */ - if (!(m_spu.regs[SPU4XX_LINE_STATUS] & 0x04)) - { - /* if we have a transmit handler, send it that way */ - if (!m_spu.tx_cb.isnull()) - (m_spu.tx_cb)(*m_program, 0, m_spu.txbuf, 0xff); - - /* indicate that we have moved it to the shift register */ - m_spu.regs[SPU4XX_LINE_STATUS] |= 0x04; + if (!(m_spu.regs[SPU4XX_LINE_STATUS] & 0x04)) + { + /* if we have a transmit handler, send it that way */ + if (!m_spu.tx_cb.isnull()) + (m_spu.tx_cb)(*m_program, 0, m_spu.txbuf, 0xff); + + /* indicate that we have moved it to the shift register */ + m_spu.regs[SPU4XX_LINE_STATUS] |= 0x04; m_spu.regs[SPU4XX_LINE_STATUS] &= ~0x02; } @@ -2820,15 +2820,15 @@ WRITE8_MEMBER( ppc4xx_device::ppc4xx_spu_w ) /*------------------------------------------------- ppc4xx_spu_set_tx_handler - PowerPC 4XX- - specific TX handler configuration --------------------------------------------------*/ - -void ppc4xx_device::ppc4xx_spu_set_tx_handler(write8_delegate callback) -{ - m_spu.tx_cb = callback; -} - - + specific TX handler configuration +-------------------------------------------------*/ + +void ppc4xx_device::ppc4xx_spu_set_tx_handler(write8_delegate callback) +{ + m_spu.tx_cb = callback; +} + + /*------------------------------------------------- ppc4xx_spu_receive_byte - PowerPC 4XX- specific serial byte receive @@ -2841,26 +2841,26 @@ void ppc4xx_device::ppc4xx_spu_receive_byte(UINT8 byteval) /*------------------------------------------------- ppc4xx_set_dma_read_handler - PowerPC 4XX- - specific external DMA read handler configuration --------------------------------------------------*/ - -void ppc4xx_device::ppc4xx_set_dma_read_handler(int channel, read32_delegate callback, int rate) -{ - m_ext_dma_read_cb[channel] = callback; - m_buffered_dma_rate[channel] = rate; -} - + specific external DMA read handler configuration +-------------------------------------------------*/ + +void ppc4xx_device::ppc4xx_set_dma_read_handler(int channel, read32_delegate callback, int rate) +{ + m_ext_dma_read_cb[channel] = callback; + m_buffered_dma_rate[channel] = rate; +} + /*------------------------------------------------- ppc4xx_set_dma_write_handler - PowerPC 4XX- - specific external DMA write handler configuration --------------------------------------------------*/ - -void ppc4xx_device::ppc4xx_set_dma_write_handler(int channel, write32_delegate callback, int rate) -{ - m_ext_dma_write_cb[channel] = callback; - m_buffered_dma_rate[channel] = rate; -} - + specific external DMA write handler configuration +-------------------------------------------------*/ + +void ppc4xx_device::ppc4xx_set_dma_write_handler(int channel, write32_delegate callback, int rate) +{ + m_ext_dma_write_cb[channel] = callback; + m_buffered_dma_rate[channel] = rate; +} + /*------------------------------------------------- ppc4xx_set_dcr_read_handler -------------------------------------------------*/ diff --git a/src/mame/drivers/cobra.c b/src/mame/drivers/cobra.c index c6a1a45e8d4..2dc25d4bc10 100644 --- a/src/mame/drivers/cobra.c +++ b/src/mame/drivers/cobra.c @@ -630,14 +630,14 @@ public: DECLARE_READ64_MEMBER(main_comram_r); DECLARE_WRITE64_MEMBER(main_comram_w); DECLARE_READ64_MEMBER(main_fifo_r); - DECLARE_WRITE64_MEMBER(main_fifo_w); - DECLARE_READ64_MEMBER(main_mpc106_r); - DECLARE_WRITE64_MEMBER(main_mpc106_w); - DECLARE_WRITE32_MEMBER(main_cpu_dc_store); - - DECLARE_READ32_MEMBER(sub_comram_r); - DECLARE_WRITE32_MEMBER(sub_comram_w); - DECLARE_READ32_MEMBER(sub_sound_r); + DECLARE_WRITE64_MEMBER(main_fifo_w); + DECLARE_READ64_MEMBER(main_mpc106_r); + DECLARE_WRITE64_MEMBER(main_mpc106_w); + DECLARE_WRITE32_MEMBER(main_cpu_dc_store); + + DECLARE_READ32_MEMBER(sub_comram_r); + DECLARE_WRITE32_MEMBER(sub_comram_w); + DECLARE_READ32_MEMBER(sub_sound_r); DECLARE_WRITE32_MEMBER(sub_sound_w); DECLARE_READ32_MEMBER(sub_unk7e_r); DECLARE_WRITE32_MEMBER(sub_debug_w); @@ -651,25 +651,25 @@ public: DECLARE_WRITE16_MEMBER(sub_ata0_w); DECLARE_READ16_MEMBER(sub_ata1_r); DECLARE_WRITE16_MEMBER(sub_ata1_w); - DECLARE_READ32_MEMBER(sub_psac2_r); - DECLARE_WRITE32_MEMBER(sub_psac2_w); - DECLARE_WRITE32_MEMBER(sub_psac_palette_w); - DECLARE_WRITE32_MEMBER(sub_sound_dma_w); - - DECLARE_WRITE64_MEMBER(gfx_fifo0_w); - DECLARE_WRITE64_MEMBER(gfx_fifo1_w); + DECLARE_READ32_MEMBER(sub_psac2_r); + DECLARE_WRITE32_MEMBER(sub_psac2_w); + DECLARE_WRITE32_MEMBER(sub_psac_palette_w); + DECLARE_WRITE32_MEMBER(sub_sound_dma_w); + + DECLARE_WRITE64_MEMBER(gfx_fifo0_w); + DECLARE_WRITE64_MEMBER(gfx_fifo1_w); DECLARE_WRITE64_MEMBER(gfx_fifo2_w); DECLARE_WRITE64_MEMBER(gfx_debug_state_w); DECLARE_READ64_MEMBER(gfx_unk1_r); - DECLARE_WRITE64_MEMBER(gfx_unk1_w); - DECLARE_READ64_MEMBER(gfx_fifo_r); - DECLARE_WRITE64_MEMBER(gfx_buf_w); - DECLARE_WRITE32_MEMBER(gfx_cpu_dc_store); - - DECLARE_WRITE8_MEMBER(sub_jvs_w); - - DECLARE_WRITE_LINE_MEMBER(ide_interrupt); - + DECLARE_WRITE64_MEMBER(gfx_unk1_w); + DECLARE_READ64_MEMBER(gfx_fifo_r); + DECLARE_WRITE64_MEMBER(gfx_buf_w); + DECLARE_WRITE32_MEMBER(gfx_cpu_dc_store); + + DECLARE_WRITE8_MEMBER(sub_jvs_w); + + DECLARE_WRITE_LINE_MEMBER(ide_interrupt); + cobra_renderer *m_renderer; cobra_fifo *m_gfxfifo_in; @@ -1601,18 +1601,18 @@ WRITE64_MEMBER(cobra_state::main_comram_w) UINT32 m2 = (UINT32)(mem_mask); m_comram[page][(offset << 1) + 0] = (w1 & ~m1) | (d1 & m1); - m_comram[page][(offset << 1) + 1] = (w2 & ~m2) | (d2 & m2); -} - -WRITE32_MEMBER(cobra_state::main_cpu_dc_store) -{ - if ((offset & 0xf0000000) == 0xc0000000) - { - // force sync when writing to GFX board main ram - m_maincpu->spin_until_time(attotime::from_usec(80)); - } -} - + m_comram[page][(offset << 1) + 1] = (w2 & ~m2) | (d2 & m2); +} + +WRITE32_MEMBER(cobra_state::main_cpu_dc_store) +{ + if ((offset & 0xf0000000) == 0xc0000000) + { + // force sync when writing to GFX board main ram + m_maincpu->spin_until_time(attotime::from_usec(80)); + } +} + static ADDRESS_MAP_START( cobra_main_map, AS_PROGRAM, 64, cobra_state ) AM_RANGE(0x00000000, 0x003fffff) AM_RAM AM_RANGE(0x07c00000, 0x07ffffff) AM_RAM @@ -1888,46 +1888,46 @@ READ32_MEMBER(cobra_state::sub_psac2_r) } WRITE32_MEMBER(cobra_state::sub_psac2_w) -{ -} - -WRITE32_MEMBER(cobra_state::sub_sound_dma_w) -{ - //printf("DMA write to unknown: size %d, data %08X\n", address, data); - - /* - static FILE *out; +{ +} + +WRITE32_MEMBER(cobra_state::sub_sound_dma_w) +{ + //printf("DMA write to unknown: size %d, data %08X\n", address, data); + + /* + static FILE *out; if (out == NULL) out = fopen("sound.bin", "wb"); fputc((data >> 24) & 0xff, out); fputc((data >> 16) & 0xff, out); fputc((data >> 8) & 0xff, out); - fputc((data >> 0) & 0xff, out); - */ - - INT16 ldata = (INT16)(data >> 16); - INT16 rdata = (INT16)(data); - - m_sound_dma_buffer_l[m_sound_dma_ptr] = ldata; - m_sound_dma_buffer_r[m_sound_dma_ptr] = rdata; - m_sound_dma_ptr++; - - if (m_sound_dma_ptr >= DMA_SOUND_BUFFER_SIZE) - { - m_sound_dma_ptr = 0; - - dmadac_transfer(&m_dmadac[0], 1, 0, 1, DMA_SOUND_BUFFER_SIZE, m_sound_dma_buffer_l); - dmadac_transfer(&m_dmadac[1], 1, 0, 1, DMA_SOUND_BUFFER_SIZE, m_sound_dma_buffer_r); - } -} - -WRITE8_MEMBER(cobra_state::sub_jvs_w) -{ - cobra_jvs_host *jvs = machine().device("cobra_jvs_host"); - -#if LOG_JVS - printf("sub_jvs_w: %02X\n", data); + fputc((data >> 0) & 0xff, out); + */ + + INT16 ldata = (INT16)(data >> 16); + INT16 rdata = (INT16)(data); + + m_sound_dma_buffer_l[m_sound_dma_ptr] = ldata; + m_sound_dma_buffer_r[m_sound_dma_ptr] = rdata; + m_sound_dma_ptr++; + + if (m_sound_dma_ptr >= DMA_SOUND_BUFFER_SIZE) + { + m_sound_dma_ptr = 0; + + dmadac_transfer(&m_dmadac[0], 1, 0, 1, DMA_SOUND_BUFFER_SIZE, m_sound_dma_buffer_l); + dmadac_transfer(&m_dmadac[1], 1, 0, 1, DMA_SOUND_BUFFER_SIZE, m_sound_dma_buffer_r); + } +} + +WRITE8_MEMBER(cobra_state::sub_jvs_w) +{ + cobra_jvs_host *jvs = machine().device("cobra_jvs_host"); + +#if LOG_JVS + printf("sub_jvs_w: %02X\n", data); #endif const UINT8 *rec_data; @@ -1945,13 +1945,13 @@ WRITE8_MEMBER(cobra_state::sub_jvs_w) } printf("\n"); #endif - - for (int i=0; i < rec_size; i++) - { - m_subcpu->ppc4xx_spu_receive_byte(rec_data[i]); - } - } -} + + for (int i=0; i < rec_size; i++) + { + m_subcpu->ppc4xx_spu_receive_byte(rec_data[i]); + } + } +} static ADDRESS_MAP_START( cobra_sub_map, AS_PROGRAM, 32, cobra_state ) AM_RANGE(0x00000000, 0x003fffff) AM_MIRROR(0x80000000) AM_RAM // Main RAM @@ -2988,36 +2988,36 @@ WRITE64_MEMBER(cobra_state::gfx_buf_w) // prc_read always expects a value... m_gfxfifo_out->push(&space.device(), 0); - } -} - -WRITE32_MEMBER(cobra_state::gfx_cpu_dc_store) -{ - UINT32 addr = offset >> 24; - if (addr == 0x10 || addr == 0x18 || addr == 0x1e) - { - UINT64 i = (UINT64)(m_gfx_fifo_cache_addr) << 32; - cobra_fifo *fifo_in = m_gfxfifo_in; - - UINT32 a = (offset / 8) & 0xff; - - fifo_in->push(&space.device(), (UINT32)(m_gfx_fifo_mem[a+0] >> 32) | i); - fifo_in->push(&space.device(), (UINT32)(m_gfx_fifo_mem[a+0] >> 0) | i); - fifo_in->push(&space.device(), (UINT32)(m_gfx_fifo_mem[a+1] >> 32) | i); - fifo_in->push(&space.device(), (UINT32)(m_gfx_fifo_mem[a+1] >> 0) | i); - fifo_in->push(&space.device(), (UINT32)(m_gfx_fifo_mem[a+2] >> 32) | i); - fifo_in->push(&space.device(), (UINT32)(m_gfx_fifo_mem[a+2] >> 0) | i); - fifo_in->push(&space.device(), (UINT32)(m_gfx_fifo_mem[a+3] >> 32) | i); - fifo_in->push(&space.device(), (UINT32)(m_gfx_fifo_mem[a+3] >> 0) | i); - - m_renderer->gfx_fifo_exec(); - } - else - { - logerror("gfx: data cache store at %08X\n", offset); - } -} - + } +} + +WRITE32_MEMBER(cobra_state::gfx_cpu_dc_store) +{ + UINT32 addr = offset >> 24; + if (addr == 0x10 || addr == 0x18 || addr == 0x1e) + { + UINT64 i = (UINT64)(m_gfx_fifo_cache_addr) << 32; + cobra_fifo *fifo_in = m_gfxfifo_in; + + UINT32 a = (offset / 8) & 0xff; + + fifo_in->push(&space.device(), (UINT32)(m_gfx_fifo_mem[a+0] >> 32) | i); + fifo_in->push(&space.device(), (UINT32)(m_gfx_fifo_mem[a+0] >> 0) | i); + fifo_in->push(&space.device(), (UINT32)(m_gfx_fifo_mem[a+1] >> 32) | i); + fifo_in->push(&space.device(), (UINT32)(m_gfx_fifo_mem[a+1] >> 0) | i); + fifo_in->push(&space.device(), (UINT32)(m_gfx_fifo_mem[a+2] >> 32) | i); + fifo_in->push(&space.device(), (UINT32)(m_gfx_fifo_mem[a+2] >> 0) | i); + fifo_in->push(&space.device(), (UINT32)(m_gfx_fifo_mem[a+3] >> 32) | i); + fifo_in->push(&space.device(), (UINT32)(m_gfx_fifo_mem[a+3] >> 0) | i); + + m_renderer->gfx_fifo_exec(); + } + else + { + logerror("gfx: data cache store at %08X\n", offset); + } +} + WRITE64_MEMBER(cobra_state::gfx_debug_state_w) { if (ACCESSING_BITS_40_47) @@ -3258,18 +3258,18 @@ DRIVER_INIT_MEMBER(cobra_state, cobra) 2048, "S2MFIFO", S2MFIFO_VERBOSE != 0, - cobra_fifo::event_delegate(FUNC(cobra_state::s2mfifo_event_callback), this)) - ); - - m_maincpu->ppc_set_dcstore_callback(write32_delegate(FUNC(cobra_state::main_cpu_dc_store),this)); - - m_gfxcpu->ppc_set_dcstore_callback(write32_delegate(FUNC(cobra_state::gfx_cpu_dc_store), this)); - - m_subcpu->ppc4xx_set_dma_write_handler(0, write32_delegate(FUNC(cobra_state::sub_sound_dma_w), this), 44100); - m_subcpu->ppc4xx_spu_set_tx_handler(write8_delegate(FUNC(cobra_state::sub_jvs_w), this)); - - - m_comram[0] = auto_alloc_array(machine(), UINT32, 0x40000/4); + cobra_fifo::event_delegate(FUNC(cobra_state::s2mfifo_event_callback), this)) + ); + + m_maincpu->ppc_set_dcstore_callback(write32_delegate(FUNC(cobra_state::main_cpu_dc_store),this)); + + m_gfxcpu->ppc_set_dcstore_callback(write32_delegate(FUNC(cobra_state::gfx_cpu_dc_store), this)); + + m_subcpu->ppc4xx_set_dma_write_handler(0, write32_delegate(FUNC(cobra_state::sub_sound_dma_w), this), 44100); + m_subcpu->ppc4xx_spu_set_tx_handler(write8_delegate(FUNC(cobra_state::sub_jvs_w), this)); + + + m_comram[0] = auto_alloc_array(machine(), UINT32, 0x40000/4); m_comram[1] = auto_alloc_array(machine(), UINT32, 0x40000/4); m_comram_page = 0; diff --git a/src/mame/drivers/firebeat.c b/src/mame/drivers/firebeat.c index 4db31758e89..6cbc0d785a9 100644 --- a/src/mame/drivers/firebeat.c +++ b/src/mame/drivers/firebeat.c @@ -256,13 +256,13 @@ public: void gcu_exec_display_list(bitmap_ind16 &bitmap, const rectangle &cliprect, int chip, UINT32 address); UINT32 update_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int chip); UINT32 GCU_r(int chip, UINT32 offset, UINT32 mem_mask); - void GCU_w(int chip, UINT32 offset, UINT32 data, UINT32 mem_mask); - void set_ibutton(UINT8 *data); - int ibutton_w(UINT8 data); - DECLARE_WRITE8_MEMBER(security_w); - void init_lights(write32_delegate out1, write32_delegate out2, write32_delegate out3); - void init_firebeat(); - void init_keyboard(); + void GCU_w(int chip, UINT32 offset, UINT32 data, UINT32 mem_mask); + void set_ibutton(UINT8 *data); + int ibutton_w(UINT8 data); + DECLARE_WRITE8_MEMBER(security_w); + void init_lights(write32_delegate out1, write32_delegate out2, write32_delegate out3); + void init_firebeat(); + void init_keyboard(); DECLARE_WRITE_LINE_MEMBER(sound_irq_callback); DECLARE_WRITE_LINE_MEMBER(midi_uart_ch0_irq_callback); DECLARE_WRITE_LINE_MEMBER(midi_uart_ch1_irq_callback); @@ -1947,17 +1947,17 @@ int firebeat_state::ibutton_w(UINT8 data) } } - return r; -} - -WRITE8_MEMBER(firebeat_state::security_w) -{ - int r = ibutton_w(data); - if (r >= 0) - m_maincpu->ppc4xx_spu_receive_byte(r); -} - -/*****************************************************************************/ + return r; +} + +WRITE8_MEMBER(firebeat_state::security_w) +{ + int r = ibutton_w(data); + if (r >= 0) + m_maincpu->ppc4xx_spu_receive_byte(r); +} + +/*****************************************************************************/ void firebeat_state::init_lights(write32_delegate out1, write32_delegate out2, write32_delegate out3) { @@ -1979,13 +1979,13 @@ void firebeat_state::init_firebeat() m_extend_board_irq_enable = 0x3f; m_extend_board_irq_active = 0x00; - - m_cur_cab_data = cab_data; - - m_maincpu->ppc4xx_spu_set_tx_handler(write8_delegate(FUNC(firebeat_state::security_w), this)); - - set_ibutton(rom); - + + m_cur_cab_data = cab_data; + + m_maincpu->ppc4xx_spu_set_tx_handler(write8_delegate(FUNC(firebeat_state::security_w), this)); + + set_ibutton(rom); + init_lights(write32_delegate(), write32_delegate(), write32_delegate()); } diff --git a/src/mame/drivers/hornet.c b/src/mame/drivers/hornet.c index 61f950b5084..f507d8f49d9 100644 --- a/src/mame/drivers/hornet.c +++ b/src/mame/drivers/hornet.c @@ -402,13 +402,13 @@ public: DECLARE_WRITE32_MEMBER(dsp_dataram1_w); DECLARE_WRITE_LINE_MEMBER(voodoo_vblank_0); DECLARE_WRITE_LINE_MEMBER(voodoo_vblank_1); - DECLARE_WRITE16_MEMBER(soundtimer_en_w); - DECLARE_WRITE16_MEMBER(soundtimer_count_w); - ADC12138_IPT_CONVERT_CB(adc12138_input_callback); - DECLARE_WRITE8_MEMBER(jamma_jvs_w); - - DECLARE_DRIVER_INIT(hornet); - DECLARE_DRIVER_INIT(hornet_2board); + DECLARE_WRITE16_MEMBER(soundtimer_en_w); + DECLARE_WRITE16_MEMBER(soundtimer_count_w); + ADC12138_IPT_CONVERT_CB(adc12138_input_callback); + DECLARE_WRITE8_MEMBER(jamma_jvs_w); + + DECLARE_DRIVER_INIT(hornet); + DECLARE_DRIVER_INIT(hornet_2board); virtual void machine_start(); virtual void machine_reset(); DECLARE_MACHINE_RESET(hornet_2board); @@ -1136,21 +1136,21 @@ static MACHINE_CONFIG_DERIVED( sscope2, hornet_2board_v2) MCFG_EEPROM_SERIAL_93C46_ADD("lan_eeprom") MACHINE_CONFIG_END - -/*****************************************************************************/ - -WRITE8_MEMBER(hornet_state::jamma_jvs_w) -{ - if (m_jvs_sdata_ptr == 0 && data != 0xe0) - return; - m_jvs_sdata[m_jvs_sdata_ptr] = data; - m_jvs_sdata_ptr++; - - if (m_jvs_sdata_ptr >= 3 && m_jvs_sdata_ptr >= 3 + m_jvs_sdata[2]) - jamma_jvs_cmd_exec(); -} - -int hornet_state::jvs_encode_data(UINT8 *in, int length) + +/*****************************************************************************/ + +WRITE8_MEMBER(hornet_state::jamma_jvs_w) +{ + if (m_jvs_sdata_ptr == 0 && data != 0xe0) + return; + m_jvs_sdata[m_jvs_sdata_ptr] = data; + m_jvs_sdata_ptr++; + + if (m_jvs_sdata_ptr >= 3 && m_jvs_sdata_ptr >= 3 + m_jvs_sdata[2]) + jamma_jvs_cmd_exec(); +} + +int hornet_state::jvs_encode_data(UINT8 *in, int length) { int inptr = 0; int sum = 0; @@ -1280,22 +1280,22 @@ void hornet_state::jamma_jvs_cmd_exec() DRIVER_INIT_MEMBER(hornet_state,hornet) { - m_konppc->set_cgboard_texture_bank(0, "bank5", memregion("user5")->base()); - m_led_reg0 = m_led_reg1 = 0x7f; - - m_maincpu->ppc4xx_spu_set_tx_handler(write8_delegate(FUNC(hornet_state::jamma_jvs_w), this)); -} - -DRIVER_INIT_MEMBER(hornet_state,hornet_2board) + m_konppc->set_cgboard_texture_bank(0, "bank5", memregion("user5")->base()); + m_led_reg0 = m_led_reg1 = 0x7f; + + m_maincpu->ppc4xx_spu_set_tx_handler(write8_delegate(FUNC(hornet_state::jamma_jvs_w), this)); +} + +DRIVER_INIT_MEMBER(hornet_state,hornet_2board) { m_konppc->set_cgboard_texture_bank(0, "bank5", memregion("user5")->base()); - m_konppc->set_cgboard_texture_bank(1, "bank6", memregion("user5")->base()); - m_led_reg0 = m_led_reg1 = 0x7f; - - m_maincpu->ppc4xx_spu_set_tx_handler(write8_delegate(FUNC(hornet_state::jamma_jvs_w), this)); -} - -/*****************************************************************************/ + m_konppc->set_cgboard_texture_bank(1, "bank6", memregion("user5")->base()); + m_led_reg0 = m_led_reg1 = 0x7f; + + m_maincpu->ppc4xx_spu_set_tx_handler(write8_delegate(FUNC(hornet_state::jamma_jvs_w), this)); +} + +/*****************************************************************************/ ROM_START(sscope) ROM_REGION32_BE(0x400000, "user1", 0) /* PowerPC program */ From e7b0770093ec76f6fae8b90c78e4f25ff5463fea Mon Sep 17 00:00:00 2001 From: MetalliC <0vetal0@gmail.com> Date: Sun, 26 Oct 2014 11:51:23 +0200 Subject: [PATCH 2/2] New Game Added --------------------------------------- Windjammer (021216) [MetalliC] --- src/mame/drivers/multfish.c | 18 ++++++++++++++++++ src/mame/mame.lst | 3 +++ 2 files changed, 21 insertions(+) diff --git a/src/mame/drivers/multfish.c b/src/mame/drivers/multfish.c index 2076ef5ae2a..7c574a773c8 100644 --- a/src/mame/drivers/multfish.c +++ b/src/mame/drivers/multfish.c @@ -1201,6 +1201,22 @@ ROM_START( mfish_13 ) // 040316 ROM_END +/********************************************************* + Windjammer +**********************************************************/ + +ROM_START( windjamr ) // 021216 possibly patched for use banking port F9 + ROM_REGION( 0x40000, "maincpu", 0 ) // z80 code, banked + ROM_LOAD( "wj_021216_f9.rom", 0x00000, 0x40000, CRC(8ad9357d) SHA1(b6daf44a35075b771350145772d7c701049b0d28) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROM_LOAD( "windjammer.001", 0x000000, 0x80000, CRC(84067a47) SHA1(de98a2ff35034565c98f6493ccc945abd97cb2a8) ) + ROM_LOAD( "windjammer.002", 0x100000, 0x80000, CRC(c03939ce) SHA1(18e18987813eb996ad0a33089210653fe4c0c8ce) ) + ROM_LOAD( "windjammer.003", 0x200000, 0x80000, CRC(209b8a30) SHA1(f85b3af92f11b0beefe275a74279ea7978f85998) ) + ROM_LOAD( "windjammer.004", 0x300000, 0x80000, CRC(04f3a1f3) SHA1(6f3a267619c010395ff4c00d1dab3efb3202e591) ) +ROM_END + + /********************************************************* Crazy Monkey @@ -2691,6 +2707,8 @@ GAME( 2002, mfish_11, mfish_parent, igrosoft_gamble, igrosoft_gamble, driv GAME( 2002, mfish_12, mfish_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Multi Fish (040308)", GAME_SUPPORTS_SAVE ) /* World */ GAME( 2002, mfish_13, 0, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Multi Fish (040316)", GAME_SUPPORTS_SAVE ) /* World */ +GAME( 2002, windjamr, 0, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Windjammer (021216)", GAME_SUPPORTS_SAVE ) /* World */ + GAME( 2003, czmon_5, czmon_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Crazy Monkey (030421 World)", GAME_SUPPORTS_SAVE ) /* World */ GAME( 2003, czmon_7, czmon_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Crazy Monkey (031110 World)", GAME_SUPPORTS_SAVE ) /* World */ GAME( 2003, czmon_8, czmon_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Crazy Monkey (050120 World)", GAME_SUPPORTS_SAVE ) /* World */ diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 21c7e488514..585c872f9ca 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -11990,6 +11990,9 @@ mfish_11 // (c) 2002 mfish_12 // (c) 2002 mfish_13 // (c) 2002 +// Windjammer +windjamr // (c) 2002 + // Crazy Monkey //crzmon // (c) 2003 //czmon_2 // (c) 2003