diff options
Diffstat (limited to 'src/mame/drivers/cobra.c')
-rw-r--r-- | src/mame/drivers/cobra.c | 238 |
1 files changed, 119 insertions, 119 deletions
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>("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>("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; |