diff options
author | davidhay <davidhay@localhost> | 2008-04-14 18:26:27 +0000 |
---|---|---|
committer | davidhay <davidhay@localhost> | 2008-04-14 18:26:27 +0000 |
commit | a8209dd70df7861ca291c92b40f916347eeb9cfe (patch) | |
tree | 38f368c4457a4682c944aa8efc0a9c0ed48d9797 | |
parent | e7cfe56749251ce4ffc2ff1670653995737ec055 (diff) |
adds good denjinmk graphic rom (thanks to Guru)
-rw-r--r-- | src/mame/drivers/legionna.c | 13 | ||||
-rw-r--r-- | src/mame/machine/seicop.c | 2 | ||||
-rw-r--r-- | src/mame/video/legionna.c | 5 |
3 files changed, 17 insertions, 3 deletions
diff --git a/src/mame/drivers/legionna.c b/src/mame/drivers/legionna.c index ddc4b4aa6be..2305a69e804 100644 --- a/src/mame/drivers/legionna.c +++ b/src/mame/drivers/legionna.c @@ -166,6 +166,14 @@ static ADDRESS_MAP_START( godzilla_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x108000, 0x11ffff) AM_RAM ADDRESS_MAP_END +/* did they swap the lines, or does the protection device swap the words during the DMA?? */ +WRITE16_HANDLER( denjin_paletteram16_xBBBBBGGGGGRRRRR_word_w ) +{ + offset^=1; + COMBINE_DATA(&paletteram16[offset]); + paletteram16_xBBBBBGGGGGRRRRR_word_w(machine,offset,data,mem_mask); +} + static ADDRESS_MAP_START( denjinmk_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x000000, 0x0fffff) AM_ROM AM_RANGE(0x100000, 0x1003ff) AM_RAM @@ -179,7 +187,7 @@ static ADDRESS_MAP_START( denjinmk_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x105000, 0x105fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) AM_RANGE(0x106000, 0x107fff) AM_RAM AM_RANGE(0x108000, 0x11dfff) AM_RAM - AM_RANGE(0x11e000, 0x11efff) AM_RAM AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) + AM_RANGE(0x11e000, 0x11efff) AM_RAM AM_WRITE(denjin_paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) AM_RANGE(0x11f000, 0x11ffff) AM_RAM ADDRESS_MAP_END @@ -1655,8 +1663,7 @@ ROM_START( denjinmk ) ROM_LOAD16_BYTE( "rom8.615", 0x000001, 0x010000, CRC(cc36af0d) SHA1(69c2ae38f03be79be4d138fcc73a6a86407eb285) ) ROM_REGION( 0x500000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "obj-0-3.748", 0x000000, 0x100000, BAD_DUMP CRC(3dcc7b04) SHA1(3c3ad5ddc18a42046348dcb54e65f6173c003d72) ) /* half size?# 0,1 */ - /* the graphics for this region are missing, the previous rom should probably be twice the size, note the filename 0-3 */ + ROM_LOAD( "obj-0-3.748", 0x000000, 0x200000, CRC(67c26a67) SHA1(20543ca9dcf3fed0884968b5249b34b59a14b791) ) /* banks 0,1,2,3 */ ROM_LOAD( "obj-4-5.756", 0x200000, 0x100000, CRC(01f8d4e6) SHA1(25b69da693be8c3404f750b419c330a7a56e88ec) ) /* 4,5 */ ROM_LOAD( "obj-6-7.743", 0x300000, 0x100000, CRC(e5805757) SHA1(9d392c27eef7c1fcda560dac17ba9d7ae2287ac8) ) /* 6,7 */ ROM_LOAD( "obj-8-9.757", 0x400000, 0x100000, CRC(c8f7e1c9) SHA1(a746d187b50a0ecdd5a7f687a2601e5dc8bfe272) ) /* 8,9 */ diff --git a/src/mame/machine/seicop.c b/src/mame/machine/seicop.c index 6cd27a6d5ae..14f40748e3b 100644 --- a/src/mame/machine/seicop.c +++ b/src/mame/machine/seicop.c @@ -1645,6 +1645,8 @@ WRITE16_HANDLER( denjinmk_mcu_w ) generic_cop_w(machine, offset, data, mem_mask); break; + case (0x070/2): { denjinmk_setgfxbank(cop_mcu_ram[offset]); break; } + case (0x220/2): { legionna_scrollram16[0] = cop_mcu_ram[offset]; break; } case (0x222/2): { legionna_scrollram16[1] = cop_mcu_ram[offset]; break; } case (0x224/2): { legionna_scrollram16[2] = cop_mcu_ram[offset]; break; } diff --git a/src/mame/video/legionna.c b/src/mame/video/legionna.c index 82147b71f41..285743ff55e 100644 --- a/src/mame/video/legionna.c +++ b/src/mame/video/legionna.c @@ -27,6 +27,11 @@ void denjinmk_setgfxbank(UINT16 data) fore_gfx_bank = (data &0x2000) >> 1;//??? back_gfx_bank = (data &0x4000) >> 2; mid_gfx_bank = (data &0x8000) >> 3;//??? + + tilemap_mark_all_tiles_dirty (background_layer); + tilemap_mark_all_tiles_dirty (foreground_layer); + tilemap_mark_all_tiles_dirty (midground_layer); + tilemap_mark_all_tiles_dirty (text_layer); } #ifdef UNUSED_FUNCTION |