Previous 199869 Revisions Next

r32228 Saturday 20th September, 2014 at 08:59:22 UTC by David Haywood
r2dx_v33 - DMA
[src/mame/drivers]r2dx_v33.c

trunk/src/mame/drivers/r2dx_v33.c
r32227r32228
7070   DECLARE_DRIVER_INIT(nzerotea);
7171   DECLARE_DRIVER_INIT(zerotm2k);
7272
73   DECLARE_WRITE16_MEMBER(r2dx_tilemapdma_w);
74   DECLARE_WRITE16_MEMBER(r2dx_paldma_w);
75
7376   void r2dx_setbanking(void);
7477
7578   DECLARE_MACHINE_RESET(r2dx_v33);
r32227r32228
279282   r2dx_i_sdist = (r2dx_i_sdist & (0x0000ffff | (UINT16(~mem_mask)) << 16)) | ((data & mem_mask) << 16);
280283}
281284
285// these DMA operations seem to use hardcoded addresses on this hardware
286WRITE16_MEMBER(r2dx_v33_state::r2dx_tilemapdma_w)
287{
288   int src = 0xd000;
289
290   for (int i = 0; i < 0x2800 / 2; i++)
291   {
292      UINT16 tileval = space.read_word(src);
293      src += 2;
294      m_videoram_private_w(space, i, tileval, 0xffff);
295   }
296}
297
298WRITE16_MEMBER(r2dx_v33_state::r2dx_paldma_w)
299{
300   int src = 0x1f000;
301
302   for (int i = 0; i < 0x1000 / 2; i++)
303   {
304      UINT16 palval = space.read_word(src);
305      src += 2;
306      m_palette->set_pen_color(i, pal5bit(palval >> 0), pal5bit(palval >> 5), pal5bit(palval >> 10));
307   }
308}
309
282310static ADDRESS_MAP_START( rdx_v33_map, AS_PROGRAM, 16, r2dx_v33_state )
283311   AM_RANGE(0x00000, 0x003ff) AM_RAM // vectors copied here
284312
285   AM_RANGE(0x00400, 0x00401) AM_WRITENOP // tilemaps to private buffer
286   AM_RANGE(0x00402, 0x00403) AM_WRITENOP // palettes to private buffer
313   AM_RANGE(0x00400, 0x00401) AM_WRITE(r2dx_tilemapdma_w) // tilemaps to private buffer
314   AM_RANGE(0x00402, 0x00403) AM_WRITE(r2dx_paldma_w)  // palettes to private buffer
287315
288316
289317   AM_RANGE(0x00404, 0x00405) AM_WRITE(r2dx_rom_bank_w)
r32227r32228
334362
335363   AM_RANGE(0x0c000, 0x0c7ff) AM_RAM AM_SHARE("sprites")
336364   AM_RANGE(0x0c800, 0x0cfff) AM_RAM
337   AM_RANGE(0x0d000, 0x0d7ff) AM_RAM_WRITE(raiden2_background_w) AM_SHARE("back_data")
338   AM_RANGE(0x0d800, 0x0dfff) AM_RAM_WRITE(raiden2_foreground_w) AM_SHARE("fore_data")
339   AM_RANGE(0x0e000, 0x0e7ff) AM_RAM_WRITE(raiden2_midground_w)  AM_SHARE("mid_data")
340   AM_RANGE(0x0e800, 0x0f7ff) AM_RAM_WRITE(raiden2_text_w) AM_SHARE("text_data")
365   AM_RANGE(0x0d000, 0x0d7ff) AM_RAM //_WRITE(raiden2_background_w) AM_SHARE("back_data")
366   AM_RANGE(0x0d800, 0x0dfff) AM_RAM //_WRITE(raiden2_foreground_w) AM_SHARE("fore_data")
367   AM_RANGE(0x0e000, 0x0e7ff) AM_RAM //_WRITE(raiden2_midground_w)  AM_SHARE("mid_data")
368   AM_RANGE(0x0e800, 0x0f7ff) AM_RAM //_WRITE(raiden2_text_w) AM_SHARE("text_data")
341369   AM_RANGE(0x0f800, 0x0ffff) AM_RAM /* Stack area */
342370   AM_RANGE(0x10000, 0x1efff) AM_RAM
343   AM_RANGE(0x1f000, 0x1ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
371   AM_RANGE(0x1f000, 0x1ffff) AM_RAM //_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
344372
345373   AM_RANGE(0x20000, 0x2ffff) AM_ROM AM_ROMBANK("bank1") AM_WRITENOP
346374   AM_RANGE(0x30000, 0x3ffff) AM_ROM AM_ROMBANK("bank2") AM_WRITENOP
r32227r32228
351379static ADDRESS_MAP_START( nzeroteam_base_map, AS_PROGRAM, 16, r2dx_v33_state )
352380   AM_RANGE(0x00000, 0x003ff) AM_RAM //stack area
353381
354   AM_RANGE(0x00400, 0x00401) AM_WRITENOP // tilemaps to private buffer
355   AM_RANGE(0x00402, 0x00403) AM_WRITENOP // palettes to private buffer
382   AM_RANGE(0x00400, 0x00401) AM_WRITE(r2dx_tilemapdma_w) // tilemaps to private buffer
383   AM_RANGE(0x00402, 0x00403) AM_WRITE(r2dx_paldma_w)  // palettes to private buffer
356384   // 0x404 is bank on r2dx, this doesn't need it
357385   // AM_RANGE(0x00406, 0x00407) AM_WRITE(tile_bank_w) // not the same?
358386
r32227r32228
389417
390418   AM_RANGE(0x0c000, 0x0c7ff) AM_RAM AM_SHARE("sprites")
391419   AM_RANGE(0x0c800, 0x0cfff) AM_RAM
392   AM_RANGE(0x0d000, 0x0d7ff) AM_RAM_WRITE(raiden2_background_w) AM_SHARE("back_data")
393   AM_RANGE(0x0d800, 0x0dfff) AM_RAM_WRITE(raiden2_foreground_w) AM_SHARE("fore_data")
394   AM_RANGE(0x0e000, 0x0e7ff) AM_RAM_WRITE(raiden2_midground_w)  AM_SHARE("mid_data")
395   AM_RANGE(0x0e800, 0x0f7ff) AM_RAM_WRITE(raiden2_text_w) AM_SHARE("text_data")
420   AM_RANGE(0x0d000, 0x0d7ff) AM_RAM //_WRITE(raiden2_background_w) AM_SHARE("back_data")
421   AM_RANGE(0x0d800, 0x0dfff) AM_RAM //_WRITE(raiden2_foreground_w) AM_SHARE("fore_data")
422   AM_RANGE(0x0e000, 0x0e7ff) AM_RAM //_WRITE(raiden2_midground_w)  AM_SHARE("mid_data")
423   AM_RANGE(0x0e800, 0x0f7ff) AM_RAM //_WRITE(raiden2_text_w) AM_SHARE("text_data")
396424   AM_RANGE(0x0f800, 0x0ffff) AM_RAM /* Stack area */
397425   AM_RANGE(0x10000, 0x1efff) AM_RAM
398   AM_RANGE(0x1f000, 0x1ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
426   AM_RANGE(0x1f000, 0x1ffff) AM_RAM //_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
399427
400428   AM_RANGE(0x20000, 0xfffff) AM_ROM AM_REGION("mainprg", 0x20000 )
401429ADDRESS_MAP_END
r32227r32228
647675
648676   MCFG_GFXDECODE_ADD("gfxdecode", "palette", rdx_v33)
649677   MCFG_PALETTE_ADD("palette", 2048)
650   MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
678   //MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
651679
652680   MCFG_VIDEO_START_OVERRIDE(raiden2_state,raiden2)
653681
r32227r32228
686714
687715   MCFG_GFXDECODE_ADD("gfxdecode", "palette", rdx_v33)
688716   MCFG_PALETTE_ADD("palette", 2048)
689   MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
717   //MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
690718
691719   MCFG_VIDEO_START_OVERRIDE(raiden2_state,raiden2)
692720

Previous 199869 Revisions Next


© 1997-2024 The MAME Team