trunk/src/mame/drivers/r2dx_v33.c
| r32227 | r32228 | |
| 70 | 70 | DECLARE_DRIVER_INIT(nzerotea); |
| 71 | 71 | DECLARE_DRIVER_INIT(zerotm2k); |
| 72 | 72 | |
| 73 | DECLARE_WRITE16_MEMBER(r2dx_tilemapdma_w); |
| 74 | DECLARE_WRITE16_MEMBER(r2dx_paldma_w); |
| 75 | |
| 73 | 76 | void r2dx_setbanking(void); |
| 74 | 77 | |
| 75 | 78 | DECLARE_MACHINE_RESET(r2dx_v33); |
| r32227 | r32228 | |
| 279 | 282 | r2dx_i_sdist = (r2dx_i_sdist & (0x0000ffff | (UINT16(~mem_mask)) << 16)) | ((data & mem_mask) << 16); |
| 280 | 283 | } |
| 281 | 284 | |
| 285 | // these DMA operations seem to use hardcoded addresses on this hardware |
| 286 | WRITE16_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 | |
| 298 | WRITE16_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 | |
| 282 | 310 | static ADDRESS_MAP_START( rdx_v33_map, AS_PROGRAM, 16, r2dx_v33_state ) |
| 283 | 311 | AM_RANGE(0x00000, 0x003ff) AM_RAM // vectors copied here |
| 284 | 312 | |
| 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 |
| 287 | 315 | |
| 288 | 316 | |
| 289 | 317 | AM_RANGE(0x00404, 0x00405) AM_WRITE(r2dx_rom_bank_w) |
| r32227 | r32228 | |
| 334 | 362 | |
| 335 | 363 | AM_RANGE(0x0c000, 0x0c7ff) AM_RAM AM_SHARE("sprites") |
| 336 | 364 | 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") |
| 341 | 369 | AM_RANGE(0x0f800, 0x0ffff) AM_RAM /* Stack area */ |
| 342 | 370 | 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") |
| 344 | 372 | |
| 345 | 373 | AM_RANGE(0x20000, 0x2ffff) AM_ROM AM_ROMBANK("bank1") AM_WRITENOP |
| 346 | 374 | AM_RANGE(0x30000, 0x3ffff) AM_ROM AM_ROMBANK("bank2") AM_WRITENOP |
| r32227 | r32228 | |
| 351 | 379 | static ADDRESS_MAP_START( nzeroteam_base_map, AS_PROGRAM, 16, r2dx_v33_state ) |
| 352 | 380 | AM_RANGE(0x00000, 0x003ff) AM_RAM //stack area |
| 353 | 381 | |
| 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 |
| 356 | 384 | // 0x404 is bank on r2dx, this doesn't need it |
| 357 | 385 | // AM_RANGE(0x00406, 0x00407) AM_WRITE(tile_bank_w) // not the same? |
| 358 | 386 | |
| r32227 | r32228 | |
| 389 | 417 | |
| 390 | 418 | AM_RANGE(0x0c000, 0x0c7ff) AM_RAM AM_SHARE("sprites") |
| 391 | 419 | 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") |
| 396 | 424 | AM_RANGE(0x0f800, 0x0ffff) AM_RAM /* Stack area */ |
| 397 | 425 | 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") |
| 399 | 427 | |
| 400 | 428 | AM_RANGE(0x20000, 0xfffff) AM_ROM AM_REGION("mainprg", 0x20000 ) |
| 401 | 429 | ADDRESS_MAP_END |
| r32227 | r32228 | |
| 647 | 675 | |
| 648 | 676 | MCFG_GFXDECODE_ADD("gfxdecode", "palette", rdx_v33) |
| 649 | 677 | MCFG_PALETTE_ADD("palette", 2048) |
| 650 | | MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) |
| 678 | //MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) |
| 651 | 679 | |
| 652 | 680 | MCFG_VIDEO_START_OVERRIDE(raiden2_state,raiden2) |
| 653 | 681 | |
| r32227 | r32228 | |
| 686 | 714 | |
| 687 | 715 | MCFG_GFXDECODE_ADD("gfxdecode", "palette", rdx_v33) |
| 688 | 716 | MCFG_PALETTE_ADD("palette", 2048) |
| 689 | | MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) |
| 717 | //MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) |
| 690 | 718 | |
| 691 | 719 | MCFG_VIDEO_START_OVERRIDE(raiden2_state,raiden2) |
| 692 | 720 | |