From ea79b463b92bb6f52678297c7ca90163da85147f Mon Sep 17 00:00:00 2001 From: cam900 Date: Sat, 18 May 2019 14:05:36 +0900 Subject: [PATCH] segaic16_road.cpp : Updates Simplify handlers, Remove hardcoded tags, Unnecessary pointer, Reduce unnecessary lines, Fix debugger issues, Use shorter / correct type values --- src/mame/drivers/segahang.cpp | 41 ++++--- src/mame/drivers/segaorun.cpp | 61 +++++------ src/mame/drivers/segaxbd.cpp | 97 ++++++++--------- src/mame/includes/segaorun.h | 4 +- src/mame/video/segahang.cpp | 2 +- src/mame/video/segaic16_road.cpp | 181 ++++++++++++++----------------- src/mame/video/segaic16_road.h | 38 +++---- src/mame/video/segaorun.cpp | 4 +- src/mame/video/segaxbd.cpp | 2 +- 9 files changed, 203 insertions(+), 227 deletions(-) diff --git a/src/mame/drivers/segahang.cpp b/src/mame/drivers/segahang.cpp index 8886942c9e5..f4ec3b19dcf 100644 --- a/src/mame/drivers/segahang.cpp +++ b/src/mame/drivers/segahang.cpp @@ -406,7 +406,7 @@ void segahang_state::hangon_map(address_map &map) map(0x600000, 0x6007ff).ram().share("sprites"); map(0xa00000, 0xa00fff).ram().w(FUNC(segahang_state::paletteram_w)).share("paletteram"); map(0xc00000, 0xc3ffff).rom().region("subcpu", 0); - map(0xc68000, 0xc68fff).ram().share("roadram"); + map(0xc68000, 0xc68fff).ram().share("segaic16road:roadram"); map(0xc7c000, 0xc7ffff).ram().share("subram"); map(0xe00000, 0xffffff).rw(FUNC(segahang_state::hangon_io_r), FUNC(segahang_state::hangon_io_w)); } @@ -428,7 +428,7 @@ void segahang_state::sharrier_map(address_map &map) map(0x124000, 0x127fff).ram().share("subram"); map(0x130000, 0x130fff).ram().share("sprites"); map(0x140000, 0x14ffff).rw(FUNC(segahang_state::sharrier_io_r), FUNC(segahang_state::sharrier_io_w)); - map(0xc68000, 0xc68fff).ram().share("roadram"); + map(0xc68000, 0xc68fff).ram().share("segaic16road:roadram"); } @@ -443,7 +443,7 @@ void segahang_state::sub_map(address_map &map) map.unmap_value_high(); map.global_mask(0x7ffff); map(0x000000, 0x03ffff).rom(); - map(0x068000, 0x068fff).ram().share("roadram"); + map(0x068000, 0x068fff).ram().share("segaic16road:roadram"); map(0x07c000, 0x07ffff).ram().share("subram"); } @@ -1058,7 +1058,7 @@ ROM_START( hangon ) ROM_LOAD16_BYTE( "epr-6845.ic18", 0x060001, 0x8000, CRC(ba08c9b8) SHA1(65ceaefa18999c468b38576c29101674d1f63e5f) ) ROM_LOAD16_BYTE( "epr-6846.ic25", 0x060000, 0x8000, CRC(f21e57a3) SHA1(92ce0723e722f446c0cef9e23080a008aa9752e7) ) - ROM_REGION( 0x8000, "gfx3", 0 ) // road gfx + ROM_REGION( 0x8000, "segaic16road", 0 ) // road gfx ROM_LOAD( "epr-6840.ic108", 0x0000, 0x8000, CRC(581230e3) SHA1(954eab35059322a12a197bba04bf85f816132f20) ) ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU @@ -1118,7 +1118,7 @@ ROM_START( hangon1 ) ROM_LOAD16_BYTE( "epr-6845.ic18", 0x060001, 0x8000, CRC(ba08c9b8) SHA1(65ceaefa18999c468b38576c29101674d1f63e5f) ) ROM_LOAD16_BYTE( "epr-6846.ic25", 0x060000, 0x8000, CRC(f21e57a3) SHA1(92ce0723e722f446c0cef9e23080a008aa9752e7) ) - ROM_REGION( 0x8000, "gfx3", 0 ) // road gfx + ROM_REGION( 0x8000, "segaic16road", 0 ) // road gfx ROM_LOAD( "epr-6840.ic108", 0x0000, 0x8000, CRC(581230e3) SHA1(954eab35059322a12a197bba04bf85f816132f20) ) ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU @@ -1190,7 +1190,7 @@ ROM_START( hangon2 ) ROM_LOAD( "epr-6831.ic5", 0x00000, 0x8000, CRC(cfef5481) SHA1(c04b302fee58f0e59a097b2be2b61e5d03df7c91) ) ROM_LOAD( "epr-6832.ic6", 0x08000, 0x8000, CRC(4165aea5) SHA1(be05c6d295807af2f396a1ff72d5a3d2a1e6054d) ) - ROM_REGION( 0x8000, "gfx3", 0 ) // road gfx + ROM_REGION( 0x8000, "segaic16road", 0 ) // road gfx ROM_LOAD( "epr-6840.ic108", 0x0000, 0x8000, CRC(581230e3) SHA1(954eab35059322a12a197bba04bf85f816132f20) ) ROM_REGION( 0x2000, "sprites:zoom", 0 ) // zoom table @@ -1254,7 +1254,7 @@ ROM_START( shangonro ) ROM_LOAD16_BYTE( "epr-10681.16", 0x0c0001, 0x010000, CRC(b176ea72) SHA1(7ec0eb0f13398d014c2e235773ded00351edb3e2) ) ROM_LOAD16_BYTE( "epr-10688.7", 0x0c0000, 0x010000, CRC(42fcd51d) SHA1(0eacb3527dc21746e5b901fcac83f2764a0f9e2c) ) - ROM_REGION( 0x8000, "gfx3", 0 ) // road gfx + ROM_REGION( 0x8000, "segaic16road", 0 ) // road gfx ROM_LOAD( "epr-10866.108", 0x0000, 0x08000, CRC(1bbe4fc8) SHA1(30f7f301e4d10d3b254d12bf3d32e5371661a566) ) ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU @@ -1308,7 +1308,7 @@ ROM_START( shangonho ) ROM_LOAD16_BYTE( "epr-10681.16", 0x0c0001, 0x010000, CRC(b176ea72) SHA1(7ec0eb0f13398d014c2e235773ded00351edb3e2) ) ROM_LOAD16_BYTE( "epr-10688.7", 0x0c0000, 0x010000, CRC(42fcd51d) SHA1(0eacb3527dc21746e5b901fcac83f2764a0f9e2c) ) - ROM_REGION( 0x8000, "gfx3", 0 ) // road gfx + ROM_REGION( 0x8000, "segaic16road", 0 ) // road gfx ROM_LOAD( "epr-10866.108", 0x0000, 0x08000, CRC(1bbe4fc8) SHA1(30f7f301e4d10d3b254d12bf3d32e5371661a566) ) ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU @@ -1360,7 +1360,7 @@ ROM_START( shangonrb ) ROM_LOAD16_BYTE( "epr-10681.16", 0x0c0001, 0x010000, CRC(b176ea72) SHA1(7ec0eb0f13398d014c2e235773ded00351edb3e2) ) ROM_LOAD16_BYTE( "epr-10688.7", 0x0c0000, 0x010000, CRC(42fcd51d) SHA1(0eacb3527dc21746e5b901fcac83f2764a0f9e2c) ) - ROM_REGION( 0x8000, "gfx3", 0 ) // road gfx + ROM_REGION( 0x8000, "segaic16road", 0 ) // road gfx ROM_LOAD( "epr-10866.108", 0x0000, 0x08000, CRC(1bbe4fc8) SHA1(30f7f301e4d10d3b254d12bf3d32e5371661a566) ) ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU @@ -1412,7 +1412,7 @@ ROM_START( shangonrb2 ) ROM_LOAD16_BYTE( "sho-philco-s-7-h2.bin", 0x0c0001, 0x010000, CRC(b176ea72) SHA1(7ec0eb0f13398d014c2e235773ded00351edb3e2) ) ROM_LOAD16_BYTE( "sho-philco-s-6-h1.bin", 0x0c0000, 0x010000, CRC(42fcd51d) SHA1(0eacb3527dc21746e5b901fcac83f2764a0f9e2c) ) - ROM_REGION( 0x8000, "gfx3", 0 ) // road gfx + ROM_REGION( 0x8000, "segaic16road", 0 ) // road gfx ROM_LOAD( "sho-philco-s-26-t1.bin", 0x0000, 0x08000, CRC(1bbe4fc8) SHA1(30f7f301e4d10d3b254d12bf3d32e5371661a566) ) ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU @@ -1491,7 +1491,7 @@ ROM_START( sharrier ) ROM_LOAD32_BYTE( "epr-7207.ic11", 0xe0002, 0x8000, CRC(a2c07741) SHA1(747c029ab399c4110dbe360b8913f5c2e57c87cc) ) ROM_LOAD32_BYTE( "epr-7199.ic1", 0xe0003, 0x8000, CRC(b191e22f) SHA1(406c7f4eed0b8fe93fa0bef370e496894f4d46a4) ) - ROM_REGION( 0x8000, "gfx3", 0 ) // road gfx + ROM_REGION( 0x8000, "segaic16road", 0 ) // road gfx ROM_LOAD( "epr-7181.ic2", 0x0000, 0x8000, CRC(b4740419) SHA1(8ece2dc85692e32d0ba0b427c260c3d10ac0b7cc) ) ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU @@ -1572,7 +1572,7 @@ ROM_START( sharrier1 ) ROM_LOAD32_BYTE( "epr-7207.ic11", 0xe0002, 0x8000, CRC(a2c07741) SHA1(747c029ab399c4110dbe360b8913f5c2e57c87cc) ) ROM_LOAD32_BYTE( "epr-7199.ic1", 0xe0003, 0x8000, CRC(b191e22f) SHA1(406c7f4eed0b8fe93fa0bef370e496894f4d46a4) ) - ROM_REGION( 0x8000, "gfx3", 0 ) // road gfx + ROM_REGION( 0x8000, "segaic16road", 0 ) // road gfx ROM_LOAD( "epr-7181.ic2", 0x0000, 0x8000, CRC(b4740419) SHA1(8ece2dc85692e32d0ba0b427c260c3d10ac0b7cc) ) ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU @@ -1655,7 +1655,7 @@ ROM_START( enduror ) ROM_LOAD32_BYTE( "epr-7655.ic11", 0xe0002, 0x8000, CRC(3433fe7b) SHA1(636449a0707d6629bf6ea503cfb52ad24af1c017) ) ROM_LOAD32_BYTE( "epr-7647.ic1", 0xe0003, 0x8000, CRC(2e7fbec0) SHA1(a59ec5fc3341833671fb948cd21b47f3a49db538) ) - ROM_REGION( 0x8000, "gfx3", 0 ) // road gfx + ROM_REGION( 0x8000, "segaic16road", 0 ) // road gfx ROM_LOAD( "epr-7633.ic1", 0x0000, 0x8000, CRC(6f146210) SHA1(2f58f0c3563b434ed02700b9ca1545a696a5716e) ) ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU @@ -1710,7 +1710,7 @@ ROM_START( endurora ) ROM_LOAD32_BYTE( "mpr-10141.ic14", 0x80002, 0x20000, CRC(560360b9) SHA1(ddae8cc2c5a35540d4a115313049b30f5d2ebeae) ) ROM_LOAD32_BYTE( "mpr-10139.ic4", 0x80003, 0x20000, CRC(863c7d9e) SHA1(a77648beeed180b3f00d66ba91b20459e32025fe) ) - ROM_REGION( 0x8000, "gfx3", 0 ) // road gfx + ROM_REGION( 0x8000, "segaic16road", 0 ) // road gfx ROM_LOAD( "epr-7633.ic1", 0x0000, 0x8000, CRC(6f146210) SHA1(2f58f0c3563b434ed02700b9ca1545a696a5716e) ) ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU @@ -1782,7 +1782,7 @@ ROM_START( endurord ) ROM_LOAD32_BYTE( "epr-7655.ic11", 0xe0002, 0x8000, CRC(3433fe7b) SHA1(636449a0707d6629bf6ea503cfb52ad24af1c017) ) ROM_LOAD32_BYTE( "epr-7647.ic1", 0xe0003, 0x8000, CRC(2e7fbec0) SHA1(a59ec5fc3341833671fb948cd21b47f3a49db538) ) - ROM_REGION( 0x8000, "gfx3", 0 ) // road gfx + ROM_REGION( 0x8000, "segaic16road", 0 ) // road gfx ROM_LOAD( "epr-7633.ic1", 0x0000, 0x8000, CRC(6f146210) SHA1(2f58f0c3563b434ed02700b9ca1545a696a5716e) ) ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU @@ -1858,7 +1858,7 @@ ROM_START( enduror1 ) ROM_LOAD32_BYTE( "epr-7655.ic11", 0xe0002, 0x8000, CRC(3433fe7b) SHA1(636449a0707d6629bf6ea503cfb52ad24af1c017) ) ROM_LOAD32_BYTE( "epr-7647.ic1", 0xe0003, 0x8000, CRC(2e7fbec0) SHA1(a59ec5fc3341833671fb948cd21b47f3a49db538) ) - ROM_REGION( 0x8000, "gfx3", 0 ) // road gfx + ROM_REGION( 0x8000, "segaic16road", 0 ) // road gfx ROM_LOAD( "epr-7633.ic1", 0x0000, 0x8000, CRC(6f146210) SHA1(2f58f0c3563b434ed02700b9ca1545a696a5716e) ) ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU @@ -1931,7 +1931,7 @@ ROM_START( enduror1d ) ROM_LOAD32_BYTE( "epr-7655.ic11", 0xe0002, 0x8000, CRC(3433fe7b) SHA1(636449a0707d6629bf6ea503cfb52ad24af1c017) ) ROM_LOAD32_BYTE( "epr-7647.ic1", 0xe0003, 0x8000, CRC(2e7fbec0) SHA1(a59ec5fc3341833671fb948cd21b47f3a49db538) ) - ROM_REGION( 0x8000, "gfx3", 0 ) // road gfx + ROM_REGION( 0x8000, "segaic16road", 0 ) // road gfx ROM_LOAD( "epr-7633.ic1", 0x0000, 0x8000, CRC(6f146210) SHA1(2f58f0c3563b434ed02700b9ca1545a696a5716e) ) ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU @@ -2005,7 +2005,7 @@ ROM_START( endurobl ) ROM_LOAD32_BYTE( "epr-7655.ic11", 0xe0002, 0x8000, CRC(3433fe7b) SHA1(636449a0707d6629bf6ea503cfb52ad24af1c017) ) ROM_LOAD32_BYTE( "epr-7647.ic1", 0xe0003, 0x8000, CRC(2e7fbec0) SHA1(a59ec5fc3341833671fb948cd21b47f3a49db538) ) - ROM_REGION( 0x8000, "gfx3", 0 ) // road gfx + ROM_REGION( 0x8000, "segaic16road", 0 ) // road gfx ROM_LOAD( "epr-7633.ic1", 0x0000, 0x8000, CRC(6f146210) SHA1(2f58f0c3563b434ed02700b9ca1545a696a5716e) ) ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU @@ -2080,7 +2080,7 @@ ROM_START( endurob2 ) ROM_LOAD32_BYTE( "epr-7655.ic11", 0xe0002, 0x8000, CRC(3433fe7b) SHA1(636449a0707d6629bf6ea503cfb52ad24af1c017) ) ROM_LOAD32_BYTE( "epr-7647.ic1", 0xe0003, 0x8000, CRC(2e7fbec0) SHA1(a59ec5fc3341833671fb948cd21b47f3a49db538) ) - ROM_REGION( 0x8000, "gfx3", 0 ) // road gfx + ROM_REGION( 0x8000, "segaic16road", 0 ) // road gfx ROM_LOAD( "epr-7633.ic1", 0x0000, 0x8000, CRC(6f146210) SHA1(2f58f0c3563b434ed02700b9ca1545a696a5716e) ) ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU @@ -2106,9 +2106,6 @@ ROM_END void segahang_state::init_generic() { - // point globals to allocated memory regions - m_segaic16road->segaic16_roadram_0 = reinterpret_cast(memshare("roadram")->ptr()); - // save states save_item(NAME(m_adc_select)); save_item(NAME(m_shadow)); diff --git a/src/mame/drivers/segaorun.cpp b/src/mame/drivers/segaorun.cpp index d4d98e218f3..2a40afa94d9 100644 --- a/src/mame/drivers/segaorun.cpp +++ b/src/mame/drivers/segaorun.cpp @@ -442,7 +442,7 @@ void segaorun_state::memory_mapper(sega_315_5195_mapper_device &mapper, uint8_t { case 5: mapper.map_as_handler(0x90000, 0x10000, 0xf00000, read16_delegate(FUNC(segaorun_state::sega_road_control_0_r), this), write16_delegate(FUNC(segaorun_state::sega_road_control_0_w), this)); - mapper.map_as_ram(0x80000, 0x01000, 0xf0f000, "roadram", write16_delegate()); + mapper.map_as_ram(0x80000, 0x01000, 0xf0f000, "segaic16road:roadram", write16_delegate()); mapper.map_as_ram(0x60000, 0x08000, 0xf18000, "cpu1ram", write16_delegate()); mapper.map_as_ram(0x00000, 0x60000, 0xf00000, "cpu1rom", write16_delegate(FUNC(segaorun_state::nop_w), this)); break; @@ -868,7 +868,7 @@ void segaorun_state::sub_map(address_map &map) map.global_mask(0xfffff); map(0x000000, 0x05ffff).rom().share("cpu1rom"); map(0x060000, 0x067fff).mirror(0x018000).ram().share("cpu1ram"); - map(0x080000, 0x080fff).mirror(0x00f000).ram().share("roadram"); + map(0x080000, 0x080fff).mirror(0x00f000).ram().share("segaic16road:roadram"); map(0x090000, 0x09ffff).rw(m_segaic16road, FUNC(segaic16_road_device::segaic16_road_control_0_r), FUNC(segaic16_road_device::segaic16_road_control_0_w)); } @@ -1321,7 +1321,7 @@ ROM_START( outrun ) ROM_LOAD32_BYTE( "mpr-10376.15", 0x80002, 0x20000, CRC(f3b8f318) SHA1(a5f2532613f33a64441e0f75443c10ba78dccc6e) ) ROM_LOAD32_BYTE( "mpr-10378.16", 0x80003, 0x20000, CRC(a1062984) SHA1(4399030a155caf71f2dec7f75c4b65531ab53576) ) - ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx (2 identical ROMs, 1 for each road) + ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx (2 identical ROMs, 1 for each road) ROM_LOAD( "opr-10186.47", 0x0000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) ) ROM_LOAD( "opr-10185.11", 0x8000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) ) @@ -1375,7 +1375,7 @@ ROM_START( outruneh ) ROM_LOAD32_BYTE( "mpr-10376.15", 0x80002, 0x20000, CRC(f3b8f318) SHA1(a5f2532613f33a64441e0f75443c10ba78dccc6e) ) ROM_LOAD32_BYTE( "mpr-10378.16", 0x80003, 0x20000, CRC(a1062984) SHA1(4399030a155caf71f2dec7f75c4b65531ab53576) ) - ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx (2 identical ROMs, 1 for each road) + ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx (2 identical ROMs, 1 for each road) ROM_LOAD( "opr-10186.47", 0x0000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) ) ROM_LOAD( "opr-10185.11", 0x8000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) ) @@ -1442,7 +1442,7 @@ ROM_START( outrunra ) ROM_LOAD32_BYTE( "mpr-10376.15", 0x80002, 0x20000, CRC(f3b8f318) SHA1(a5f2532613f33a64441e0f75443c10ba78dccc6e) ) ROM_LOAD32_BYTE( "mpr-10378.16", 0x80003, 0x20000, CRC(a1062984) SHA1(4399030a155caf71f2dec7f75c4b65531ab53576) ) - ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx (2 identical ROMs, 1 for each road) + ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx (2 identical ROMs, 1 for each road) ROM_LOAD( "opr-10186.47", 0x0000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) ) ROM_LOAD( "opr-10185.11", 0x8000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) ) @@ -1531,7 +1531,7 @@ ROM_START( outrundx ) ROM_LOAD32_BYTE( "epr-10219.59", 0xe0002, 0x08000, CRC(e73b9224) SHA1(1904a71a0c18ab2a3a5929e72b1c215dbb0fa213) ) ROM_LOAD32_BYTE( "epr-10228.73", 0xe0003, 0x08000, CRC(25803978) SHA1(1a18922aeb516e8deb026d52e3cdcc4e69385af5) ) - ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx (2 identical ROMs, 1 for each road) + ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx (2 identical ROMs, 1 for each road) ROM_LOAD( "opr-10186.47", 0x0000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) ) ROM_LOAD( "opr-10185.11", 0x8000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) ) @@ -1609,7 +1609,7 @@ ROM_START( outrundxeh ) ROM_LOAD32_BYTE( "epr-10219.59", 0xe0002, 0x08000, CRC(e73b9224) SHA1(1904a71a0c18ab2a3a5929e72b1c215dbb0fa213) ) ROM_LOAD32_BYTE( "epr-10228.73", 0xe0003, 0x08000, CRC(25803978) SHA1(1a18922aeb516e8deb026d52e3cdcc4e69385af5) ) - ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx (2 identical ROMs, 1 for each road) + ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx (2 identical ROMs, 1 for each road) ROM_LOAD( "opr-10186.47", 0x0000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) ) ROM_LOAD( "opr-10185.11", 0x8000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) ) @@ -1672,7 +1672,7 @@ ROM_START( outrundxj ) ROM_LOAD32_BYTE( "mpr-10376.15", 0x80002, 0x20000, CRC(f3b8f318) SHA1(a5f2532613f33a64441e0f75443c10ba78dccc6e) ) ROM_LOAD32_BYTE( "mpr-10378.16", 0x80003, 0x20000, CRC(a1062984) SHA1(4399030a155caf71f2dec7f75c4b65531ab53576) ) - ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx (2 identical ROMs, 1 for each road) + ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx (2 identical ROMs, 1 for each road) ROM_LOAD( "opr-10186.47", 0x0000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) ) ROM_LOAD( "opr-10185.11", 0x8000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) ) @@ -1771,7 +1771,7 @@ ROM_START( outrundxa ) ROM_LOAD32_BYTE( "epr-10219.59", 0xe0002, 0x08000, CRC(e73b9224) SHA1(1904a71a0c18ab2a3a5929e72b1c215dbb0fa213) ) ROM_LOAD32_BYTE( "epr-10228.73", 0xe0003, 0x08000, CRC(25803978) SHA1(1a18922aeb516e8deb026d52e3cdcc4e69385af5) ) - ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx (2 identical ROMs, 1 for each road) + ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx (2 identical ROMs, 1 for each road) ROM_LOAD( "opr-10186.47", 0x0000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) ) ROM_LOAD( "opr-10185.11", 0x8000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) ) @@ -1861,7 +1861,7 @@ ROM_START( outrunb ) ROM_LOAD32_BYTE( "a-31.bin", 0xc0002, 0x10000, CRC(ef7d06fe) SHA1(541b5ba45f4140e2cc29a9da2592b476d414af5d) ) ROM_LOAD32_BYTE( "a-33.bin", 0xc0003, 0x10000, CRC(1222af9f) SHA1(2364bd54cbe21dd688efff32e93bf154546c93d6) ) - ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx - correct order unknown (identical after bitswapping) + ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx - correct order unknown (identical after bitswapping) ROM_LOAD( "a-2.bin", 0x0000, 0x8000, CRC(ed5bda9c) SHA1(f09a34caf1f9f6b119700a00635ab8fa8244362d) ) ROM_LOAD( "a-3.bin", 0x8000, 0x8000, CRC(666fe754) SHA1(606090db53d658d7b04dca4748014a411e12f259) ) @@ -1916,7 +1916,7 @@ ROM_START( shangon ) ROM_LOAD16_BYTE( "mpr-10797.2", 0x0c0001, 0x020000, CRC(27f2870d) SHA1(40a34e4555885bf3c6a42e472b80d11c3bd4dcba) ) ROM_LOAD16_BYTE( "mpr-10801.10", 0x0c0000, 0x020000, CRC(12781795) SHA1(44bf6f657f32b9fab119557eb73c2fbf78700204) ) - ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx + ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx ROM_LOAD( "epr-10642.47", 0x0000, 0x8000, CRC(7836bcc3) SHA1(26f308bf96224311ddf685799d7aa29aac42dd2f) ) // socket IC11 not populated @@ -1980,7 +1980,7 @@ ROM_START( shangon3 ) ROM_LOAD16_BYTE( "epr-10681.2", 0x0c0001, 0x010000, CRC(b176ea72) SHA1(7ec0eb0f13398d014c2e235773ded00351edb3e2) ) ROM_LOAD16_BYTE( "epr-10688.10", 0x0c0000, 0x010000, CRC(42fcd51d) SHA1(0eacb3527dc21746e5b901fcac83f2764a0f9e2c) ) - ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx + ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx ROM_LOAD( "epr-10642.47", 0x0000, 0x8000, CRC(7836bcc3) SHA1(26f308bf96224311ddf685799d7aa29aac42dd2f) ) // socket IC11 not populated @@ -2035,7 +2035,7 @@ ROM_START( shangon3d ) ROM_LOAD16_BYTE( "epr-10681.2", 0x0c0001, 0x010000, CRC(b176ea72) SHA1(7ec0eb0f13398d014c2e235773ded00351edb3e2) ) ROM_LOAD16_BYTE( "epr-10688.10", 0x0c0000, 0x010000, CRC(42fcd51d) SHA1(0eacb3527dc21746e5b901fcac83f2764a0f9e2c) ) - ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx + ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx ROM_LOAD( "epr-10642.47", 0x0000, 0x8000, CRC(7836bcc3) SHA1(26f308bf96224311ddf685799d7aa29aac42dd2f) ) // socket IC11 not populated @@ -2093,7 +2093,7 @@ ROM_START( shangon2 ) ROM_LOAD16_BYTE( "epr-10681.2", 0x0c0001, 0x010000, CRC(b176ea72) SHA1(7ec0eb0f13398d014c2e235773ded00351edb3e2) ) ROM_LOAD16_BYTE( "epr-10688.10", 0x0c0000, 0x010000, CRC(42fcd51d) SHA1(0eacb3527dc21746e5b901fcac83f2764a0f9e2c) ) - ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx + ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx ROM_LOAD( "epr-10642.47", 0x0000, 0x8000, CRC(7836bcc3) SHA1(26f308bf96224311ddf685799d7aa29aac42dd2f) ) // socket IC11 not populated @@ -2154,7 +2154,7 @@ ROM_START( shangon1 ) ROM_LOAD16_BYTE( "epr-10681.2", 0x0c0001, 0x010000, CRC(b176ea72) SHA1(7ec0eb0f13398d014c2e235773ded00351edb3e2) ) ROM_LOAD16_BYTE( "epr-10688.10", 0x0c0000, 0x010000, CRC(42fcd51d) SHA1(0eacb3527dc21746e5b901fcac83f2764a0f9e2c) ) - ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx + ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx ROM_LOAD( "epr-10642.47", 0x0000, 0x8000, CRC(7836bcc3) SHA1(26f308bf96224311ddf685799d7aa29aac42dd2f) ) // socket IC11 not populated @@ -2215,7 +2215,7 @@ ROM_START( shangonle ) ROM_LOAD16_BYTE( "epr-10681.2", 0x0c0001, 0x010000, CRC(b176ea72) SHA1(7ec0eb0f13398d014c2e235773ded00351edb3e2) ) ROM_LOAD16_BYTE( "epr-10688.10", 0x0c0000, 0x010000, CRC(42fcd51d) SHA1(0eacb3527dc21746e5b901fcac83f2764a0f9e2c) ) - ROM_REGION( 0x10000, "gfx3", 0 ) // Road Graphics + ROM_REGION( 0x10000, "segaic16road", 0 ) // Road Graphics ROM_LOAD( "epr-10642.47", 0x0000, 0x8000, CRC(7836bcc3) SHA1(26f308bf96224311ddf685799d7aa29aac42dd2f) ) // socket IC11 not populated @@ -2277,7 +2277,7 @@ ROM_START( toutrun ) ROM_LOAD32_BYTE( "mpr-12366.15", 0x80002, 0x20000, CRC(385cb3ab) SHA1(fec6d80d488bfe26524fa3a48b195a45a073e481) ) ROM_LOAD32_BYTE( "mpr-12367.16", 0x80003, 0x20000, CRC(4930254a) SHA1(00f24be3bf02b143fa554f4d32e283bdac79af6a) ) - ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx (2 identical ROMs, 1 for each road) + ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx (2 identical ROMs, 1 for each road) ROM_LOAD( "epr-12299.47", 0x0000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) // Manual shows both as EPR-12298 ROM_LOAD( "epr-12298.11", 0x8000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) @@ -2324,7 +2324,7 @@ ROM_START( toutrund ) ROM_LOAD32_BYTE( "mpr-12366.15", 0x80002, 0x20000, CRC(385cb3ab) SHA1(fec6d80d488bfe26524fa3a48b195a45a073e481) ) ROM_LOAD32_BYTE( "mpr-12367.16", 0x80003, 0x20000, CRC(4930254a) SHA1(00f24be3bf02b143fa554f4d32e283bdac79af6a) ) - ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx (2 identical ROMs, 1 for each road) + ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx (2 identical ROMs, 1 for each road) ROM_LOAD( "epr-12299.47", 0x0000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) // Manual shows both as EPR-12298 ROM_LOAD( "epr-12298.11", 0x8000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) @@ -2382,7 +2382,7 @@ ROM_START( toutrunj ) ROM_LOAD32_BYTE( "mpr-12366.15", 0x80002, 0x20000, CRC(385cb3ab) SHA1(fec6d80d488bfe26524fa3a48b195a45a073e481) ) ROM_LOAD32_BYTE( "mpr-12367.16", 0x80003, 0x20000, CRC(4930254a) SHA1(00f24be3bf02b143fa554f4d32e283bdac79af6a) ) - ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx (2 identical ROMs, 1 for each road) + ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx (2 identical ROMs, 1 for each road) ROM_LOAD( "epr-12299.47", 0x0000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) // Manual shows both as EPR-12298 ROM_LOAD( "epr-12298.11", 0x8000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) @@ -2430,7 +2430,7 @@ ROM_START( toutrunjd ) ROM_LOAD32_BYTE( "mpr-12366.15", 0x80002, 0x20000, CRC(385cb3ab) SHA1(fec6d80d488bfe26524fa3a48b195a45a073e481) ) ROM_LOAD32_BYTE( "mpr-12367.16", 0x80003, 0x20000, CRC(4930254a) SHA1(00f24be3bf02b143fa554f4d32e283bdac79af6a) ) - ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx (2 identical ROMs, 1 for each road) + ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx (2 identical ROMs, 1 for each road) ROM_LOAD( "epr-12299.47", 0x0000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) // Manual shows both as EPR-12298 ROM_LOAD( "epr-12298.11", 0x8000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) @@ -2497,7 +2497,7 @@ ROM_START( toutrun3 ) ROM_LOAD32_BYTE( "opr-12321.23", 0xc0002, 0x10000, CRC(830bacd4) SHA1(5a4816969437ee1edca5845006c0b8e9ba365491) ) ROM_LOAD32_BYTE( "opr-12322.24", 0xc0003, 0x10000, CRC(8b812492) SHA1(bf1f9e059c093c0991c7caf1b01c739ed54b8357) ) - ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx (2 identical ROMs, 1 for each road) + ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx (2 identical ROMs, 1 for each road) ROM_LOAD( "epr-12299.47", 0x0000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) // Manual shows both as EPR-12298 ROM_LOAD( "epr-12298.11", 0x8000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) @@ -2551,7 +2551,7 @@ ROM_START( toutrun3d ) ROM_LOAD32_BYTE( "opr-12321.23", 0xc0002, 0x10000, CRC(830bacd4) SHA1(5a4816969437ee1edca5845006c0b8e9ba365491) ) ROM_LOAD32_BYTE( "opr-12322.24", 0xc0003, 0x10000, CRC(8b812492) SHA1(bf1f9e059c093c0991c7caf1b01c739ed54b8357) ) - ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx (2 identical ROMs, 1 for each road) + ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx (2 identical ROMs, 1 for each road) ROM_LOAD( "epr-12299.47", 0x0000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) // Manual shows both as EPR-12298 ROM_LOAD( "epr-12298.11", 0x8000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) @@ -2618,7 +2618,7 @@ ROM_START( toutrun2 ) ROM_LOAD32_BYTE( "opr-12321.23", 0xc0002, 0x10000, CRC(830bacd4) SHA1(5a4816969437ee1edca5845006c0b8e9ba365491) ) ROM_LOAD32_BYTE( "opr-12322.24", 0xc0003, 0x10000, CRC(8b812492) SHA1(bf1f9e059c093c0991c7caf1b01c739ed54b8357) ) - ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx (2 identical ROMs, 1 for each road) + ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx (2 identical ROMs, 1 for each road) ROM_LOAD( "epr-12299.47", 0x0000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) // Manual shows both as EPR-12298 ROM_LOAD( "epr-12298.11", 0x8000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) @@ -2673,7 +2673,7 @@ ROM_START( toutrun2d ) ROM_LOAD32_BYTE( "opr-12321.23", 0xc0002, 0x10000, CRC(830bacd4) SHA1(5a4816969437ee1edca5845006c0b8e9ba365491) ) ROM_LOAD32_BYTE( "opr-12322.24", 0xc0003, 0x10000, CRC(8b812492) SHA1(bf1f9e059c093c0991c7caf1b01c739ed54b8357) ) - ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx (2 identical ROMs, 1 for each road) + ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx (2 identical ROMs, 1 for each road) ROM_LOAD( "epr-12299.47", 0x0000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) // Manual shows both as EPR-12298 ROM_LOAD( "epr-12298.11", 0x8000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) @@ -2737,7 +2737,7 @@ ROM_START( toutrun1 ) ROM_LOAD32_BYTE( "opr-12321.23", 0xc0002, 0x10000, CRC(830bacd4) SHA1(5a4816969437ee1edca5845006c0b8e9ba365491) ) ROM_LOAD32_BYTE( "opr-12322.24", 0xc0003, 0x10000, CRC(8b812492) SHA1(bf1f9e059c093c0991c7caf1b01c739ed54b8357) ) - ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx (2 identical ROMs, 1 for each road) + ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx (2 identical ROMs, 1 for each road) ROM_LOAD( "epr-12299.47", 0x0000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) // Manual shows both as EPR-12298 ROM_LOAD( "epr-12298.11", 0x8000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) @@ -2806,7 +2806,7 @@ ROM_START( toutrunj1 ) ROM_LOAD32_BYTE( "epr-12321.ic23", 0xc0002, 0x10000, CRC(830bacd4) SHA1(5a4816969437ee1edca5845006c0b8e9ba365491) ) ROM_LOAD32_BYTE( "epr-12322.ic24", 0xc0003, 0x10000, CRC(8b812492) SHA1(bf1f9e059c093c0991c7caf1b01c739ed54b8357) ) - ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx (2 identical ROMs, 1 for each road) + ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx (2 identical ROMs, 1 for each road) ROM_LOAD( "epr-12298.ic47", 0x0000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) // Both are EPR-12298 ROM_LOAD( "epr-12298.ic28", 0x8000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) @@ -2861,7 +2861,7 @@ ROM_START( toutrunj1d ) ROM_LOAD32_BYTE( "epr-12321.ic23", 0xc0002, 0x10000, CRC(830bacd4) SHA1(5a4816969437ee1edca5845006c0b8e9ba365491) ) ROM_LOAD32_BYTE( "epr-12322.ic24", 0xc0003, 0x10000, CRC(8b812492) SHA1(bf1f9e059c093c0991c7caf1b01c739ed54b8357) ) - ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx (2 identical ROMs, 1 for each road) + ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx (2 identical ROMs, 1 for each road) ROM_LOAD( "epr-12298.ic47", 0x0000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) // Both are EPR-12298 ROM_LOAD( "epr-12298.ic28", 0x8000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) @@ -2896,9 +2896,6 @@ void segaorun_state::init_generic() if (m_nvram != nullptr) m_nvram->set_base(m_workram, m_workram.bytes()); - // point globals to allocated memory regions - m_segaic16road->segaic16_roadram_0 = reinterpret_cast(memshare("roadram")->ptr()); - // save state save_item(NAME(m_adc_select)); save_item(NAME(m_vblank_irq_state)); @@ -2940,8 +2937,8 @@ void segaorun_state::init_outrunb() // road gfx // ROM a-2.bin: swap bits 6,7 // ROM a-3.bin: swap bits 5,6 - uint8_t *byte = memregion("gfx3")->base(); - length = memregion("gfx3")->bytes() / 2; + uint8_t *byte = memregion("segaic16road")->base(); + length = memregion("segaic16road")->bytes() / 2; for (uint32_t i = 0; i < length; i++) { byte[i] = bitswap<8>(byte[i], 6,7,5,4,3,2,1,0); diff --git a/src/mame/drivers/segaxbd.cpp b/src/mame/drivers/segaxbd.cpp index 38452f859a1..df26cd8431d 100644 --- a/src/mame/drivers/segaxbd.cpp +++ b/src/mame/drivers/segaxbd.cpp @@ -323,15 +323,12 @@ void segaxbd_state::device_start() throw device_missing_dependencies(); m_lamps.resolve(); - // point globals to allocated memory regions - m_segaic16road->segaic16_roadram_0 = reinterpret_cast(memshare("roadram")->ptr()); video_start(); // allocate a scanline timer m_scanline_timer = timer_alloc(TID_SCANLINE); - // save state save_item(NAME(m_timer_irq_state)); save_item(NAME(m_vblank_irq_state)); @@ -951,7 +948,7 @@ void segaxbd_state::main_map(address_map &map) map(0x2e0000, 0x2e0007).mirror(0x003ff8).rw("multiplier_subx", FUNC(sega_315_5248_multiplier_device::read), FUNC(sega_315_5248_multiplier_device::write)); map(0x2e4000, 0x2e401f).mirror(0x003fe0).rw("divider_subx", FUNC(sega_315_5249_divider_device::read), FUNC(sega_315_5249_divider_device::write)); map(0x2e8000, 0x2e800f).mirror(0x003ff0).rw("cmptimer_subx", FUNC(sega_315_5250_compare_timer_device::read), FUNC(sega_315_5250_compare_timer_device::write)); - map(0x2ec000, 0x2ecfff).mirror(0x001000).ram().share("roadram"); + map(0x2ec000, 0x2ecfff).mirror(0x001000).ram().share("segaic16road:roadram"); map(0x2ee000, 0x2effff).rw("segaic16road", FUNC(segaic16_road_device::segaic16_road_control_0_r), FUNC(segaic16_road_device::segaic16_road_control_0_w)); // AM_RANGE(0x2f0000, 0x2f3fff) AM_READWRITE(excs_r, excs_w) map(0x3f8000, 0x3fbfff).ram().share("backup1"); @@ -977,7 +974,7 @@ void segaxbd_state::sub_map(address_map &map) map(0x0e0000, 0x0e0007).mirror(0x003ff8).rw("multiplier_subx", FUNC(sega_315_5248_multiplier_device::read), FUNC(sega_315_5248_multiplier_device::write)); map(0x0e4000, 0x0e401f).mirror(0x003fe0).rw("divider_subx", FUNC(sega_315_5249_divider_device::read), FUNC(sega_315_5249_divider_device::write)); map(0x0e8000, 0x0e800f).mirror(0x003ff0).rw("cmptimer_subx", FUNC(sega_315_5250_compare_timer_device::read), FUNC(sega_315_5250_compare_timer_device::write)); - map(0x0ec000, 0x0ecfff).mirror(0x001000).ram().share("roadram"); + map(0x0ec000, 0x0ecfff).mirror(0x001000).ram().share("segaic16road:roadram"); map(0x0ee000, 0x0effff).rw("segaic16road", FUNC(segaic16_road_device::segaic16_road_control_0_r), FUNC(segaic16_road_device::segaic16_road_control_0_w)); } @@ -2079,7 +2076,7 @@ ROM_START( aburner ) ROM_LOAD32_BYTE( "epr-10948.101", 0x180002, 0x20000, CRC(64284761) SHA1(9594c671900f7f49d8fb965bc17b4380ce2c68d5) ) ROM_LOAD32_BYTE( "epr-10949.105", 0x180003, 0x20000, CRC(d8437d92) SHA1(480291358c3d197645d7bd149bdfe5d41071d52d) ) - ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx + ROM_REGION( 0x10000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // road gfx ROM_LOAD( "epr-10922.40", 0x000000, 0x10000, CRC(b49183d4) SHA1(71d87bfbce858049ccde9597ab15575b3cdba892) ) ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -2130,7 +2127,7 @@ ROM_START( aburner2 ) ROM_LOAD32_BYTE( "epr-11118.101", 0x180002, 0x20000, CRC(8f38540b) SHA1(1fdfb157d1aca96cb635bd3d64f94545eb88c133) ) ROM_LOAD32_BYTE( "epr-11119.105", 0x180003, 0x20000, CRC(d0343a8e) SHA1(8c0c0addb6dfd0ea04c3900a9f7f7c731ca6e9ea) ) - ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx + ROM_REGION( 0x10000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // road gfx ROM_LOAD( "epr-10922.40", 0x000000, 0x10000, CRC(b49183d4) SHA1(71d87bfbce858049ccde9597ab15575b3cdba892) ) ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -2179,7 +2176,7 @@ ROM_START( aburner2g ) ROM_LOAD32_BYTE( "epr-11118.101", 0x180002, 0x20000, CRC(8f38540b) SHA1(1fdfb157d1aca96cb635bd3d64f94545eb88c133) ) ROM_LOAD32_BYTE( "epr-11119.105", 0x180003, 0x20000, CRC(d0343a8e) SHA1(8c0c0addb6dfd0ea04c3900a9f7f7c731ca6e9ea) ) - ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx + ROM_REGION( 0x10000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // road gfx ROM_LOAD( "epr-10922.40", 0x000000, 0x10000, CRC(b49183d4) SHA1(71d87bfbce858049ccde9597ab15575b3cdba892) ) ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -2246,7 +2243,7 @@ ROM_START( loffire ) ROM_LOAD32_BYTE( "epr-12777.101", 0x180002, 0x20000, CRC(29d5b953) SHA1(0c932a67e2aecffa7a1dbaa587c96214e1a2cc7f) ) ROM_LOAD32_BYTE( "epr-12778.105", 0x180003, 0x20000, CRC(2fb68e07) SHA1(8685e72aed115cbc9c6c7511217996a573b30d16) ) - ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx + ROM_REGION( 0x10000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // road gfx // none ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -2292,7 +2289,7 @@ ROM_START( loffired ) ROM_LOAD32_BYTE( "epr-12777.101", 0x180002, 0x20000, CRC(29d5b953) SHA1(0c932a67e2aecffa7a1dbaa587c96214e1a2cc7f) ) ROM_LOAD32_BYTE( "epr-12778.105", 0x180003, 0x20000, CRC(2fb68e07) SHA1(8685e72aed115cbc9c6c7511217996a573b30d16) ) - ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx + ROM_REGION( 0x10000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // road gfx // none ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -2346,7 +2343,7 @@ ROM_START( loffireu ) ROM_LOAD32_BYTE( "epr-12777.101", 0x180002, 0x20000, CRC(29d5b953) SHA1(0c932a67e2aecffa7a1dbaa587c96214e1a2cc7f) ) ROM_LOAD32_BYTE( "epr-12778.105", 0x180003, 0x20000, CRC(2fb68e07) SHA1(8685e72aed115cbc9c6c7511217996a573b30d16) ) - ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx + ROM_REGION( 0x10000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // road gfx // none ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -2392,7 +2389,7 @@ ROM_START( loffireud ) ROM_LOAD32_BYTE( "epr-12777.101", 0x180002, 0x20000, CRC(29d5b953) SHA1(0c932a67e2aecffa7a1dbaa587c96214e1a2cc7f) ) ROM_LOAD32_BYTE( "epr-12778.105", 0x180003, 0x20000, CRC(2fb68e07) SHA1(8685e72aed115cbc9c6c7511217996a573b30d16) ) - ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx + ROM_REGION( 0x10000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // road gfx // none ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -2449,7 +2446,7 @@ ROM_START( loffirej ) ROM_LOAD32_BYTE( "epr-12777.101", 0x180002, 0x20000, CRC(29d5b953) SHA1(0c932a67e2aecffa7a1dbaa587c96214e1a2cc7f) ) ROM_LOAD32_BYTE( "epr-12778.105", 0x180003, 0x20000, CRC(2fb68e07) SHA1(8685e72aed115cbc9c6c7511217996a573b30d16) ) - ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx + ROM_REGION( 0x10000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // road gfx // none ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -2495,7 +2492,7 @@ ROM_START( loffirejd ) ROM_LOAD32_BYTE( "epr-12777.101", 0x180002, 0x20000, CRC(29d5b953) SHA1(0c932a67e2aecffa7a1dbaa587c96214e1a2cc7f) ) ROM_LOAD32_BYTE( "epr-12778.105", 0x180003, 0x20000, CRC(2fb68e07) SHA1(8685e72aed115cbc9c6c7511217996a573b30d16) ) - ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx + ROM_REGION( 0x10000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // road gfx // none ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -2554,7 +2551,7 @@ ROM_START( thndrbld ) ROM_LOAD32_BYTE( "epr-11393.ic101", 0x180002, 0x20000, CRC(525e2e1d) SHA1(6fd09f775e7e6cad8078513d1af0a8ff40fb1360) ) // replaced from original rev? ROM_LOAD32_BYTE( "epr-11392.ic105", 0x180003, 0x20000, CRC(b4a382f7) SHA1(c03a05ba521f654db1a9c5f5717b7a15e5a29d4e) ) // - ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // Road Data + ROM_REGION( 0x10000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // Road Data ROM_LOAD( "epr-11313.ic29", 0x00000, 0x10000, CRC(6a56c4c3) SHA1(c1b8023cb2ba4e96be052031c24b6ae424225c71) ) ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -2602,7 +2599,7 @@ ROM_START( thndrbldd ) ROM_LOAD32_BYTE( "epr-11393.ic101", 0x180002, 0x20000, CRC(525e2e1d) SHA1(6fd09f775e7e6cad8078513d1af0a8ff40fb1360) ) // replaced from original rev? ROM_LOAD32_BYTE( "epr-11392.ic105", 0x180003, 0x20000, CRC(b4a382f7) SHA1(c03a05ba521f654db1a9c5f5717b7a15e5a29d4e) ) // - ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // Road Data + ROM_REGION( 0x10000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // Road Data ROM_LOAD( "epr-11313.ic29", 0x00000, 0x10000, CRC(6a56c4c3) SHA1(c1b8023cb2ba4e96be052031c24b6ae424225c71) ) ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -2656,7 +2653,7 @@ ROM_START( thndrbld1 ) ROM_LOAD32_BYTE( "epr-11333.ic101", 0x180002, 0x20000, CRC(05a2333f) SHA1(70f213945fa7fe056fe17a02558638e87f2c001e) ) ROM_LOAD32_BYTE( "epr-11332.ic105", 0x180003, 0x20000, CRC(dc089ec6) SHA1(d72390c45138a507e79af112addbc015560fc248) ) - ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // Road Data + ROM_REGION( 0x10000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // Road Data ROM_LOAD( "epr-11313.ic29", 0x00000, 0x10000, CRC(6a56c4c3) SHA1(c1b8023cb2ba4e96be052031c24b6ae424225c71) ) ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -2714,7 +2711,7 @@ ROM_START( lastsurv ) ROM_LOAD32_BYTE( "epr-12074.ic101", 0x180002, 0x20000, CRC(ee6cbb73) SHA1(c68d825ded83dd06ba7b816622db3d57631b4fcc) ) ROM_LOAD32_BYTE( "epr-12073.ic105", 0x180003, 0x20000, CRC(167e6342) SHA1(2f87074d6821a974cbb137ca2bec28fafc0df46f) ) - ROM_REGION( 0x20000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // Road Data + ROM_REGION( 0x20000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // Road Data // none ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -2762,7 +2759,7 @@ ROM_START( lastsurvd ) ROM_LOAD32_BYTE( "epr-12074.ic101", 0x180002, 0x20000, CRC(ee6cbb73) SHA1(c68d825ded83dd06ba7b816622db3d57631b4fcc) ) ROM_LOAD32_BYTE( "epr-12073.ic105", 0x180003, 0x20000, CRC(167e6342) SHA1(2f87074d6821a974cbb137ca2bec28fafc0df46f) ) - ROM_REGION( 0x20000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // Road Data + ROM_REGION( 0x20000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // Road Data // none ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -2817,7 +2814,7 @@ ROM_START( rachero ) ROM_LOAD32_BYTE( "epr-12862.ic101", 0x180002, 0x20000, CRC(7d4c3b05) SHA1(4e25a077b403549c681c5047912d0e28f4c07720) ) ROM_LOAD32_BYTE( "epr-12863.ic105", 0x180003, 0x20000, CRC(85095053) SHA1(f93194ecc0300956280cc0515b3e3ba2c9f71364) ) - ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // ground data + ROM_REGION( 0x10000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // ground data // none ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -2863,7 +2860,7 @@ ROM_START( racherod ) ROM_LOAD32_BYTE( "epr-12862.ic101", 0x180002, 0x20000, CRC(7d4c3b05) SHA1(4e25a077b403549c681c5047912d0e28f4c07720) ) ROM_LOAD32_BYTE( "epr-12863.ic105", 0x180003, 0x20000, CRC(85095053) SHA1(f93194ecc0300956280cc0515b3e3ba2c9f71364) ) - ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // ground data + ROM_REGION( 0x10000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // ground data // none ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -2958,7 +2955,7 @@ ROM_START( smgp ) ROM_LOAD32_BYTE( "epr-12611.101", 0x180002, 0x20000, CRC(bd5c6ab0) SHA1(7632dc4daa8eabe74769369856a8ba451e5bd420) ) // these differ from japan set ROM_LOAD32_BYTE( "epr-12612.105", 0x180003, 0x20000, CRC(ac86e890) SHA1(7720c1c8df6de5de50254e97772c15161b796031) ) // - ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx + ROM_REGION( 0x10000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // road gfx // none?? ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -3016,7 +3013,7 @@ ROM_START( smgpd ) ROM_LOAD32_BYTE( "epr-12611.101", 0x180002, 0x20000, CRC(bd5c6ab0) SHA1(7632dc4daa8eabe74769369856a8ba451e5bd420) ) // these differ from japan set ROM_LOAD32_BYTE( "epr-12612.105", 0x180003, 0x20000, CRC(ac86e890) SHA1(7720c1c8df6de5de50254e97772c15161b796031) ) // - ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx + ROM_REGION( 0x10000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // road gfx // none?? ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -3082,7 +3079,7 @@ ROM_START( smgp6 ) ROM_LOAD32_BYTE( "epr-12611.101", 0x180002, 0x20000, CRC(bd5c6ab0) SHA1(7632dc4daa8eabe74769369856a8ba451e5bd420) ) // these differ from japan set ROM_LOAD32_BYTE( "epr-12612.105", 0x180003, 0x20000, CRC(ac86e890) SHA1(7720c1c8df6de5de50254e97772c15161b796031) ) // - ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx + ROM_REGION( 0x10000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // road gfx // none?? ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -3140,7 +3137,7 @@ ROM_START( smgp6d ) ROM_LOAD32_BYTE( "epr-12611.101", 0x180002, 0x20000, CRC(bd5c6ab0) SHA1(7632dc4daa8eabe74769369856a8ba451e5bd420) ) // these differ from japan set ROM_LOAD32_BYTE( "epr-12612.105", 0x180003, 0x20000, CRC(ac86e890) SHA1(7720c1c8df6de5de50254e97772c15161b796031) ) // - ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx + ROM_REGION( 0x10000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // road gfx // none?? ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -3256,7 +3253,7 @@ ROM_START( smgp5 ) ROM_LOAD32_BYTE( "epr-12415.101", 0x180002, 0x20000, CRC(6080e9ed) SHA1(eb1b871453f76e6a65d20fa9d4bddc1c9f940b4d) ) ROM_LOAD32_BYTE( "epr-12416.105", 0x180003, 0x20000, CRC(6f1f2769) SHA1(d00d26cd1052d4b46c432b6b69cb2d83179d52a6) ) - ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx + ROM_REGION( 0x10000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // road gfx // none?? ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -3314,7 +3311,7 @@ ROM_START( smgp5d ) ROM_LOAD32_BYTE( "epr-12415.101", 0x180002, 0x20000, CRC(6080e9ed) SHA1(eb1b871453f76e6a65d20fa9d4bddc1c9f940b4d) ) ROM_LOAD32_BYTE( "epr-12416.105", 0x180003, 0x20000, CRC(6f1f2769) SHA1(d00d26cd1052d4b46c432b6b69cb2d83179d52a6) ) - ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx + ROM_REGION( 0x10000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // road gfx // none?? ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -3379,7 +3376,7 @@ ROM_START( smgpu ) ROM_LOAD32_BYTE( "epr-12611.101", 0x180002, 0x20000, CRC(bd5c6ab0) SHA1(7632dc4daa8eabe74769369856a8ba451e5bd420) ) // these differ from japan set ROM_LOAD32_BYTE( "epr-12612.105", 0x180003, 0x20000, CRC(ac86e890) SHA1(7720c1c8df6de5de50254e97772c15161b796031) ) // - ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx + ROM_REGION( 0x10000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // road gfx // none?? ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -3437,7 +3434,7 @@ ROM_START( smgpud ) ROM_LOAD32_BYTE( "epr-12611.101", 0x180002, 0x20000, CRC(bd5c6ab0) SHA1(7632dc4daa8eabe74769369856a8ba451e5bd420) ) // these differ from japan set ROM_LOAD32_BYTE( "epr-12612.105", 0x180003, 0x20000, CRC(ac86e890) SHA1(7720c1c8df6de5de50254e97772c15161b796031) ) // - ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx + ROM_REGION( 0x10000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // road gfx // none?? ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -3503,7 +3500,7 @@ ROM_START( smgpu1 ) ROM_LOAD32_BYTE( "epr-12611.101", 0x180002, 0x20000, CRC(bd5c6ab0) SHA1(7632dc4daa8eabe74769369856a8ba451e5bd420) ) // these differ from japan set ROM_LOAD32_BYTE( "epr-12612.105", 0x180003, 0x20000, CRC(ac86e890) SHA1(7720c1c8df6de5de50254e97772c15161b796031) ) // - ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx + ROM_REGION( 0x10000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // road gfx // none?? ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -3561,7 +3558,7 @@ ROM_START( smgpu1d ) ROM_LOAD32_BYTE( "epr-12611.101", 0x180002, 0x20000, CRC(bd5c6ab0) SHA1(7632dc4daa8eabe74769369856a8ba451e5bd420) ) // these differ from japan set ROM_LOAD32_BYTE( "epr-12612.105", 0x180003, 0x20000, CRC(ac86e890) SHA1(7720c1c8df6de5de50254e97772c15161b796031) ) // - ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx + ROM_REGION( 0x10000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // road gfx // none?? ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -3669,7 +3666,7 @@ ROM_START( smgpu2 ) ROM_LOAD32_BYTE( "epr-12611.101", 0x180002, 0x20000, CRC(bd5c6ab0) SHA1(7632dc4daa8eabe74769369856a8ba451e5bd420) ) // these differ from japan set ROM_LOAD32_BYTE( "epr-12612.105", 0x180003, 0x20000, CRC(ac86e890) SHA1(7720c1c8df6de5de50254e97772c15161b796031) ) // - ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx + ROM_REGION( 0x10000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // road gfx // none?? ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -3727,7 +3724,7 @@ ROM_START( smgpu2d ) ROM_LOAD32_BYTE( "epr-12611.101", 0x180002, 0x20000, CRC(bd5c6ab0) SHA1(7632dc4daa8eabe74769369856a8ba451e5bd420) ) // these differ from japan set ROM_LOAD32_BYTE( "epr-12612.105", 0x180003, 0x20000, CRC(ac86e890) SHA1(7720c1c8df6de5de50254e97772c15161b796031) ) // - ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx + ROM_REGION( 0x10000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // road gfx // none?? ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -3792,7 +3789,7 @@ ROM_START( smgpj ) ROM_LOAD32_BYTE( "epr-12415.101", 0x180002, 0x20000, CRC(6080e9ed) SHA1(eb1b871453f76e6a65d20fa9d4bddc1c9f940b4d) ) ROM_LOAD32_BYTE( "epr-12416.105", 0x180003, 0x20000, CRC(6f1f2769) SHA1(d00d26cd1052d4b46c432b6b69cb2d83179d52a6) ) - ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx + ROM_REGION( 0x10000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // road gfx // none?? ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -3851,7 +3848,7 @@ ROM_START( smgpjd ) ROM_LOAD32_BYTE( "epr-12415.101", 0x180002, 0x20000, CRC(6080e9ed) SHA1(eb1b871453f76e6a65d20fa9d4bddc1c9f940b4d) ) ROM_LOAD32_BYTE( "epr-12416.105", 0x180003, 0x20000, CRC(6f1f2769) SHA1(d00d26cd1052d4b46c432b6b69cb2d83179d52a6) ) - ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx + ROM_REGION( 0x10000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // road gfx // none?? ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -3917,7 +3914,7 @@ ROM_START( smgpja ) ROM_LOAD32_BYTE( "epr-12415.101", 0x180002, 0x20000, CRC(6080e9ed) SHA1(eb1b871453f76e6a65d20fa9d4bddc1c9f940b4d) ) ROM_LOAD32_BYTE( "epr-12416.105", 0x180003, 0x20000, CRC(6f1f2769) SHA1(d00d26cd1052d4b46c432b6b69cb2d83179d52a6) ) - ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx + ROM_REGION( 0x10000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // road gfx // none?? ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -3987,7 +3984,7 @@ ROM_START( abcop ) ROM_LOAD32_BYTE( "opr-13538.ic101", 0x180002, 0x20000, CRC(bf9a4586) SHA1(6013dee83375d72d262c8c04c2e668afea2e216c) ) ROM_LOAD32_BYTE( "opr-13537.ic105", 0x180003, 0x20000, CRC(fa14ed3e) SHA1(d684496ade2517696a56c1423dd4686d283c133f) ) - ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // ground data + ROM_REGION( 0x10000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // ground data ROM_LOAD( "opr-13564.ic40", 0x00000, 0x10000, CRC(e70ba138) SHA1(85eb6618f408642227056d278f10dec8dcc5a80d) ) ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -4033,7 +4030,7 @@ ROM_START( abcopd ) ROM_LOAD32_BYTE( "opr-13538.ic101", 0x180002, 0x20000, CRC(bf9a4586) SHA1(6013dee83375d72d262c8c04c2e668afea2e216c) ) ROM_LOAD32_BYTE( "opr-13537.ic105", 0x180003, 0x20000, CRC(fa14ed3e) SHA1(d684496ade2517696a56c1423dd4686d283c133f) ) - ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // ground data + ROM_REGION( 0x10000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // ground data ROM_LOAD( "opr-13564.ic40", 0x00000, 0x10000, CRC(e70ba138) SHA1(85eb6618f408642227056d278f10dec8dcc5a80d) ) ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -4086,7 +4083,7 @@ ROM_START( abcopj ) ROM_LOAD32_BYTE( "opr-13538.ic101", 0x180002, 0x20000, CRC(bf9a4586) SHA1(6013dee83375d72d262c8c04c2e668afea2e216c) ) ROM_LOAD32_BYTE( "opr-13537.ic105", 0x180003, 0x20000, CRC(fa14ed3e) SHA1(d684496ade2517696a56c1423dd4686d283c133f) ) - ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // ground data + ROM_REGION( 0x10000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // ground data ROM_LOAD( "opr-13564.ic40", 0x00000, 0x10000, CRC(e70ba138) SHA1(85eb6618f408642227056d278f10dec8dcc5a80d) ) ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -4132,7 +4129,7 @@ ROM_START( abcopjd ) ROM_LOAD32_BYTE( "opr-13538.ic101", 0x180002, 0x20000, CRC(bf9a4586) SHA1(6013dee83375d72d262c8c04c2e668afea2e216c) ) ROM_LOAD32_BYTE( "opr-13537.ic105", 0x180003, 0x20000, CRC(fa14ed3e) SHA1(d684496ade2517696a56c1423dd4686d283c133f) ) - ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // ground data + ROM_REGION( 0x10000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // ground data ROM_LOAD( "opr-13564.ic40", 0x00000, 0x10000, CRC(e70ba138) SHA1(85eb6618f408642227056d278f10dec8dcc5a80d) ) ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -4190,7 +4187,7 @@ ROM_START( gpriders ) ROM_LOAD32_BYTE( "epr-13368.ic101", 0x180002, 0x20000, CRC(0f50716c) SHA1(eb4c7f47e11c58fe0d58f67e6dafabc6291eabb8) ) ROM_LOAD32_BYTE( "epr-13367.ic105", 0x180003, 0x20000, CRC(4b1bb51f) SHA1(17fd5ac9e18dd6097a015e9d7b6815826f9c53f1) ) - ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx + ROM_REGION( 0x10000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // road gfx // none?? ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -4240,7 +4237,7 @@ ROM_START( gprider ) ROM_LOAD32_BYTE( "epr-13368.ic101", 0x180002, 0x20000, CRC(0f50716c) SHA1(eb4c7f47e11c58fe0d58f67e6dafabc6291eabb8) ) ROM_LOAD32_BYTE( "epr-13367.ic105", 0x180003, 0x20000, CRC(4b1bb51f) SHA1(17fd5ac9e18dd6097a015e9d7b6815826f9c53f1) ) - ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx + ROM_REGION( 0x10000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // road gfx // none?? ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -4287,7 +4284,7 @@ ROM_START( gprider ) ROM_LOAD32_BYTE( "epr-13368.ic101", 0x180002, 0x20000, CRC(0f50716c) SHA1(eb4c7f47e11c58fe0d58f67e6dafabc6291eabb8) ) ROM_LOAD32_BYTE( "epr-13367.ic105", 0x180003, 0x20000, CRC(4b1bb51f) SHA1(17fd5ac9e18dd6097a015e9d7b6815826f9c53f1) ) - ROM_REGION( 0x10000, "subpcb:gfx3", ROMREGION_ERASE00 ) // road gfx + ROM_REGION( 0x10000, "subpcb:segaic16road", ROMREGION_ERASE00 ) // road gfx // none?? ROM_REGION( 0x10000, "subpcb:soundcpu", 0 ) // sound CPU @@ -4343,7 +4340,7 @@ ROM_START( gpriderus ) ROM_LOAD32_BYTE( "epr-13368.ic101", 0x180002, 0x20000, CRC(0f50716c) SHA1(eb4c7f47e11c58fe0d58f67e6dafabc6291eabb8) ) ROM_LOAD32_BYTE( "epr-13367.ic105", 0x180003, 0x20000, CRC(4b1bb51f) SHA1(17fd5ac9e18dd6097a015e9d7b6815826f9c53f1) ) - ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx + ROM_REGION( 0x10000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // road gfx // none?? ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -4393,7 +4390,7 @@ ROM_START( gprideru ) ROM_LOAD32_BYTE( "epr-13368.ic101", 0x180002, 0x20000, CRC(0f50716c) SHA1(eb4c7f47e11c58fe0d58f67e6dafabc6291eabb8) ) ROM_LOAD32_BYTE( "epr-13367.ic105", 0x180003, 0x20000, CRC(4b1bb51f) SHA1(17fd5ac9e18dd6097a015e9d7b6815826f9c53f1) ) - ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx + ROM_REGION( 0x10000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // road gfx // none?? ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -4440,7 +4437,7 @@ ROM_START( gprideru ) ROM_LOAD32_BYTE( "epr-13368.ic101", 0x180002, 0x20000, CRC(0f50716c) SHA1(eb4c7f47e11c58fe0d58f67e6dafabc6291eabb8) ) ROM_LOAD32_BYTE( "epr-13367.ic105", 0x180003, 0x20000, CRC(4b1bb51f) SHA1(17fd5ac9e18dd6097a015e9d7b6815826f9c53f1) ) - ROM_REGION( 0x10000, "subpcb:gfx3", ROMREGION_ERASE00 ) // road gfx + ROM_REGION( 0x10000, "subpcb:segaic16road", ROMREGION_ERASE00 ) // road gfx // none?? ROM_REGION( 0x10000, "subpcb:soundcpu", 0 ) // sound CPU @@ -4495,7 +4492,7 @@ ROM_START( gpriderjs ) ROM_LOAD32_BYTE( "epr-13368.ic101", 0x180002, 0x20000, CRC(0f50716c) SHA1(eb4c7f47e11c58fe0d58f67e6dafabc6291eabb8) ) ROM_LOAD32_BYTE( "epr-13367.ic105", 0x180003, 0x20000, CRC(4b1bb51f) SHA1(17fd5ac9e18dd6097a015e9d7b6815826f9c53f1) ) - ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx + ROM_REGION( 0x10000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // road gfx // none?? ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -4545,7 +4542,7 @@ ROM_START( gpriderj ) ROM_LOAD32_BYTE( "epr-13368.ic101", 0x180002, 0x20000, CRC(0f50716c) SHA1(eb4c7f47e11c58fe0d58f67e6dafabc6291eabb8) ) ROM_LOAD32_BYTE( "epr-13367.ic105", 0x180003, 0x20000, CRC(4b1bb51f) SHA1(17fd5ac9e18dd6097a015e9d7b6815826f9c53f1) ) - ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx + ROM_REGION( 0x10000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // road gfx // none?? ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU @@ -4592,7 +4589,7 @@ ROM_START( gpriderj ) ROM_LOAD32_BYTE( "epr-13368.ic101", 0x180002, 0x20000, CRC(0f50716c) SHA1(eb4c7f47e11c58fe0d58f67e6dafabc6291eabb8) ) ROM_LOAD32_BYTE( "epr-13367.ic105", 0x180003, 0x20000, CRC(4b1bb51f) SHA1(17fd5ac9e18dd6097a015e9d7b6815826f9c53f1) ) - ROM_REGION( 0x10000, "subpcb:gfx3", ROMREGION_ERASE00 ) // road gfx + ROM_REGION( 0x10000, "subpcb:segaic16road", ROMREGION_ERASE00 ) // road gfx // none?? ROM_REGION( 0x10000, "subpcb:soundcpu", 0 ) // sound CPU @@ -4630,7 +4627,7 @@ ROM_START( rascot ) ROM_LOAD32_BYTE( "epr-13958", 0x000002, 0x20000, CRC(7803a027) SHA1(ff659da334e4440a6de9be43dde9dfa21dae5f14) ) ROM_LOAD32_BYTE( "epr-13957", 0x000003, 0x20000, CRC(6d50fb54) SHA1(d21462c30a5555980b964930ddef4dc1963e1d8e) ) - ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx + ROM_REGION( 0x10000, "mainpcb:segaic16road", ROMREGION_ERASE00 ) // road gfx // none?? ROM_REGION( 0x10000, "mainpcb:commcpu", 0 ) // link ROM? diff --git a/src/mame/includes/segaorun.h b/src/mame/includes/segaorun.h index bb7c29fbb04..03d21d99cc0 100644 --- a/src/mame/includes/segaorun.h +++ b/src/mame/includes/segaorun.h @@ -91,8 +91,8 @@ protected: DECLARE_WRITE16_MEMBER( tileram_w ) { m_segaic16vid->tileram_w(space,offset,data,mem_mask); }; DECLARE_WRITE16_MEMBER( textram_w ) { m_segaic16vid->textram_w(space,offset,data,mem_mask); }; - DECLARE_READ16_MEMBER( sega_road_control_0_r ) { return m_segaic16road->segaic16_road_control_0_r(space,offset,mem_mask); }; - DECLARE_WRITE16_MEMBER( sega_road_control_0_w ) { m_segaic16road->segaic16_road_control_0_w(space,offset,data,mem_mask); }; + DECLARE_READ16_MEMBER( sega_road_control_0_r ) { return m_segaic16road->segaic16_road_control_0_r(); }; + DECLARE_WRITE16_MEMBER( sega_road_control_0_w ) { m_segaic16road->segaic16_road_control_0_w(offset,data,mem_mask); }; TIMER_DEVICE_CALLBACK_MEMBER(bankmotor_update); diff --git a/src/mame/video/segahang.cpp b/src/mame/video/segahang.cpp index b875aa47fd5..bd57c17ebce 100644 --- a/src/mame/video/segahang.cpp +++ b/src/mame/video/segahang.cpp @@ -21,7 +21,7 @@ void segahang_state::video_start() m_segaic16vid->tilemap_init( 0, segaic16_video_device::TILEMAP_HANGON, 0x000, 0, 2); // initialize the road - m_segaic16road->segaic16_road_init(machine(), 0, m_sharrier_video ? segaic16_road_device::ROAD_SHARRIER : segaic16_road_device::ROAD_HANGON, 0x038, 0x7c0, 0x7c0, 0); + m_segaic16road->segaic16_road_init(0, m_sharrier_video ? segaic16_road_device::ROAD_SHARRIER : segaic16_road_device::ROAD_HANGON, 0x038, 0x7c0, 0x7c0, 0); } diff --git a/src/mame/video/segaic16_road.cpp b/src/mame/video/segaic16_road.cpp index 107ad71ef4d..290d1b15c5f 100644 --- a/src/mame/video/segaic16_road.cpp +++ b/src/mame/video/segaic16_road.cpp @@ -8,8 +8,10 @@ DEFINE_DEVICE_TYPE(SEGAIC16_ROAD, segaic16_road_device, "segaic16_road", "Sega 16-bit Road Generator") -segaic16_road_device::segaic16_road_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) +segaic16_road_device::segaic16_road_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : device_t(mconfig, SEGAIC16_ROAD, tag, owner, clock) + , m_gfx_region(*this, DEVICE_SELF) + , m_roadram(*this, "roadram") { } @@ -23,12 +25,6 @@ void segaic16_road_device::device_reset() } - - - - - - /******************************************************************************************* * * Hang On/Space Harrier-style road chip @@ -68,47 +64,41 @@ void segaic16_road_device::device_reset() *******************************************************************************************/ - -void segaic16_road_device::segaic16_road_hangon_decode(running_machine &machine, road_info *info) +void segaic16_road_device::segaic16_road_hangon_decode(road_info *info) { - int x, y; - const uint8_t *gfx = memregion("^gfx3")->base(); - int len = memregion("^gfx3")->bytes(); + const int len = m_gfx_region.length(); /* allocate memory for the unpacked road data */ - info->gfx = std::make_unique(256 * 512); + info->gfx = std::make_unique(256 * 512); /* loop over rows */ - for (y = 0; y < 256; y++) + for (int y = 0; y < 256; y++) { - const uint8_t *src = gfx + ((y & 0xff) * 0x40) % len; - uint8_t *dst = info->gfx.get() + y * 512; + const u8 *src = m_gfx_region + ((y & 0xff) * 0x40) % len; + u8 *dst = info->gfx.get() + y * 512; /* loop over columns */ - for (x = 0; x < 512; x++) - dst[x] = (((src[x/8] >> (~x & 7)) & 1) << 0) | (((src[x/8 + 0x4000] >> (~x & 7)) & 1) << 1); + for (int x = 0; x < 512; x++) + dst[x] = (((src[x >> 3] >> (~x & 7)) & 1) << 0) | (((src[(x >> 3) + 0x4000] >> (~x & 7)) & 1) << 1); } } static void segaic16_road_hangon_draw(segaic16_road_device::road_info *info, bitmap_ind16 &bitmap, const rectangle &cliprect, int priority) { - uint16_t *roadram = info->roadram; - int x, y; + const u16 *roadram = info->roadram; /* loop over scanlines */ - for (y = cliprect.min_y; y <= cliprect.max_y; y++) + for (int y = cliprect.min_y; y <= cliprect.max_y; y++) { - uint16_t *dest = &bitmap.pix16(y); - int control = roadram[0x000 + y]; + u16 *dest = &bitmap.pix16(y); + const u16 control = roadram[0x000 + y]; int hpos = roadram[0x100 + (control & 0xff)]; - int color0 = roadram[0x200 + (control & 0xff)]; - int color1 = roadram[0x300 + (control & 0xff)]; - int ff9j1, ff9j2, ctr9m, ctr9n9p, ctr9n9p_ena, ss8j, plycont; - uint8_t *src; + const u16 color0 = roadram[0x200 + (control & 0xff)]; + const u16 color1 = roadram[0x300 + (control & 0xff)]; /* the PLYCONT signal controls the road layering */ - plycont = (control >> 10) & 3; + const u16 plycont = (control >> 10) & 3; /* skip layers we aren't supposed to be drawing */ if ((plycont == 0 && priority != segaic16_road_device::ROAD_BACKGROUND) || @@ -116,32 +106,32 @@ static void segaic16_road_hangon_draw(segaic16_road_device::road_info *info, bit continue; /* compute the offset of the road graphics for this line */ - src = info->gfx.get() + (0x000 + (control & 0xff)) * 512; + u8 *src = info->gfx.get() + (0x000 + (control & 0xff)) * 512; /* initialize the 4-bit counter at 9M, which counts bits within each road byte */ - ctr9m = hpos & 7; + int ctr9m = hpos & 7; /* initialize the two 4-bit counters at 9P (low) and 9N (high), which count road data bytes */ - ctr9n9p = (hpos >> 3) & 0xff; + int ctr9n9p = (hpos >> 3) & 0xff; /* initialize the flip-flop at 9J (lower half), which controls the counting direction */ - ff9j1 = (hpos >> 11) & 1; + int ff9j1 = (hpos >> 11) & 1; /* initialize the flip-flop at 9J (upper half), which controls the background color */ - ff9j2 = 1; + int ff9j2 = 1; /* initialize the serial shifter at 8S, which delays several signals after we flip */ - ss8j = 0; + int ss8j = 0; /* draw this scanline from the beginning */ - for (x = -24; x <= cliprect.max_x; x++) + for (int x = -24; x <= cliprect.max_x; x++) { - int md, color, select; + int color; /* ---- the following logic all happens constantly ---- */ /* the enable is controlled by the value in the counter at 9M */ - ctr9n9p_ena = (ctr9m == 7); + const bool ctr9n9p_ena = (ctr9m == 7); /* if we carried out of the 9P/9N counters, we will forcibly clear the flip-flop at 9J (lower half) */ if ((ctr9n9p & 0xff) == 0xff) @@ -157,7 +147,7 @@ static void segaic16_road_hangon_draw(segaic16_road_device::road_info *info, bit ff9j2 = 1; /* ---- now process the pixel ---- */ - md = 3; + int md = 3; /* the Space Harrier/Enduro Racer hardware has a tweak that maps the control word bit 9 to the */ /* /CE line on the road ROM; use this to effectively disable the road data */ @@ -175,7 +165,7 @@ static void segaic16_road_hangon_draw(segaic16_road_device::road_info *info, bit /* "select" is a made-up signal that comes from bit 3 of the serial shifter and is */ /* used in several places for color selection */ - select = (ss8j >> 3) & 1; + int select = (ss8j >> 3) & 1; /* check the flip-flop at 9J (upper half) to determine if we should use the background color; */ /* the output of this is ANDed with M0 and M1 so it only affects pixels with a value of 3; */ @@ -234,7 +224,6 @@ static void segaic16_road_hangon_draw(segaic16_road_device::road_info *info, bit } - /******************************************************************************************* * * Out Run/X-Board-style road chip @@ -330,25 +319,23 @@ static void segaic16_road_hangon_draw(segaic16_road_device::road_info *info, bit * *******************************************************************************************/ -void segaic16_road_device::segaic16_road_outrun_decode(running_machine &machine, road_info *info) +void segaic16_road_device::segaic16_road_outrun_decode(road_info *info) { - int x, y; - const uint8_t *gfx = memregion("^gfx3")->base(); - int len = memregion("^gfx3")->bytes(); + const int len = m_gfx_region.length(); /* allocate memory for the unpacked road data */ - info->gfx = std::make_unique((256 * 2 + 1) * 512); + info->gfx = std::make_unique((256 * 2 + 1) * 512); /* loop over rows */ - for (y = 0; y < 256 * 2; y++) + for (int y = 0; y < 256 * 2; y++) { - const uint8_t *src = gfx + ((y & 0xff) * 0x40 + (y >> 8) * 0x8000) % len; - uint8_t *dst = info->gfx.get() + y * 512; + const u8 *src = m_gfx_region + ((y & 0xff) * 0x40 + (y >> 8) * 0x8000) % len; + u8 *dst = info->gfx.get() + y * 512; /* loop over columns */ - for (x = 0; x < 512; x++) + for (int x = 0; x < 512; x++) { - dst[x] = (((src[x/8] >> (~x & 7)) & 1) << 0) | (((src[x/8 + 0x4000] >> (~x & 7)) & 1) << 1); + dst[x] = (((src[x >> 3] >> (~x & 7)) & 1) << 0) | (((src[(x >> 3) + 0x4000] >> (~x & 7)) & 1) << 1); /* pre-mark road data in the "stripe" area with a high bit */ if (x >= 256-8 && x < 256 && dst[x] == 3) @@ -363,13 +350,12 @@ void segaic16_road_device::segaic16_road_outrun_decode(running_machine &machine, static void segaic16_road_outrun_draw(segaic16_road_device::road_info *info, bitmap_ind16 &bitmap, const rectangle &cliprect, int priority) { - uint16_t *roadram = info->buffer.get(); - int x, y; + const u16 *roadram = info->buffer.get(); /* loop over scanlines */ - for (y = cliprect.min_y; y <= cliprect.max_y; y++) + for (int y = cliprect.min_y; y <= cliprect.max_y; y++) { - static const uint8_t priority_map[2][8] = + static const u8 priority_map[2][8] = { { 0x80,0x81,0x81,0x87,0,0,0,0x00 }, { 0x81,0x81,0x81,0x8f,0,0,0,0x80 } @@ -378,9 +364,9 @@ static void segaic16_road_outrun_draw(segaic16_road_device::road_info *info, bit // { 0x80,0x81,0x81,0x83,0,0,0,0x00 }, // { 0x81,0x87,0x87,0x8f,0,0,0,0x00 } }; - uint16_t *dest = &bitmap.pix16(y); - int data0 = roadram[0x000 + y]; - int data1 = roadram[0x100 + y]; + u16 *dest = &bitmap.pix16(y); + const u16 data0 = roadram[0x000 + y]; + const u16 data1 = roadram[0x100 + y]; /* background case: look for solid fill scanlines */ if (priority == segaic16_road_device::ROAD_BACKGROUND) @@ -419,7 +405,7 @@ static void segaic16_road_outrun_draw(segaic16_road_device::road_info *info, bit if (color != -1) { color |= info->colorbase3; - for (x = cliprect.min_x; x <= cliprect.max_x; x++) + for (int x = cliprect.min_x; x <= cliprect.max_x; x++) dest[x] = color; } } @@ -427,31 +413,28 @@ static void segaic16_road_outrun_draw(segaic16_road_device::road_info *info, bit /* foreground case: render from ROM */ else { - int hpos0, hpos1, color0, color1; - int control = info->control & 3; - uint16_t color_table[32]; - uint8_t *src0, *src1; - uint8_t bgcolor; + const u8 control = info->control & 3; + u16 color_table[32]; /* if both roads are low priority, skip */ if ((data0 & 0x800) && (data1 & 0x800)) continue; /* get road 0 data */ - src0 = (data0 & 0x800) ? info->gfx.get() + 256 * 2 * 512 : (info->gfx.get() + (0x000 + ((data0 >> 1) & 0xff)) * 512); - hpos0 = (roadram[0x200 + ((info->control & 4) ? y : (data0 & 0x1ff))]) & 0xfff; - color0 = roadram[0x600 + ((info->control & 4) ? y : (data0 & 0x1ff))]; + u8 *src0 = (data0 & 0x800) ? info->gfx.get() + 256 * 2 * 512 : (info->gfx.get() + (0x000 + ((data0 >> 1) & 0xff)) * 512); + int hpos0 = (roadram[0x200 + ((info->control & 4) ? y : (data0 & 0x1ff))]) & 0xfff; + int color0 = roadram[0x600 + ((info->control & 4) ? y : (data0 & 0x1ff))]; /* get road 1 data */ - src1 = (data1 & 0x800) ? info->gfx.get() + 256 * 2 * 512 : (info->gfx.get() + (0x100 + ((data1 >> 1) & 0xff)) * 512); - hpos1 = (roadram[0x400 + ((info->control & 4) ? (0x100 + y) : (data1 & 0x1ff))]) & 0xfff; - color1 = roadram[0x600 + ((info->control & 4) ? (0x100 + y) : (data1 & 0x1ff))]; + u8 *src1 = (data1 & 0x800) ? info->gfx.get() + 256 * 2 * 512 : (info->gfx.get() + (0x100 + ((data1 >> 1) & 0xff)) * 512); + int hpos1 = (roadram[0x400 + ((info->control & 4) ? (0x100 + y) : (data1 & 0x1ff))]) & 0xfff; + int color1 = roadram[0x600 + ((info->control & 4) ? (0x100 + y) : (data1 & 0x1ff))]; /* determine the 5 colors for road 0 */ color_table[0x00] = info->colorbase1 ^ 0x00 ^ ((color0 >> 0) & 1); color_table[0x01] = info->colorbase1 ^ 0x02 ^ ((color0 >> 1) & 1); color_table[0x02] = info->colorbase1 ^ 0x04 ^ ((color0 >> 2) & 1); - bgcolor = (color0 >> 8) & 0xf; + u8 bgcolor = (color0 >> 8) & 0xf; color_table[0x03] = (data0 & 0x200) ? color_table[0x00] : (info->colorbase2 ^ 0x00 ^ bgcolor); color_table[0x07] = info->colorbase1 ^ 0x06 ^ ((color0 >> 3) & 1); @@ -470,9 +453,9 @@ static void segaic16_road_outrun_draw(segaic16_road_device::road_info *info, bit if (data0 & 0x800) continue; hpos0 = (hpos0 - (0x5f8 + info->xoffs)) & 0xfff; - for (x = cliprect.min_x; x <= cliprect.max_x; x++) + for (int x = cliprect.min_x; x <= cliprect.max_x; x++) { - int pix0 = (hpos0 < 0x200) ? src0[hpos0] : 3; + const int pix0 = (hpos0 < 0x200) ? src0[hpos0] : 3; dest[x] = color_table[0x00 + pix0]; hpos0 = (hpos0 + 1) & 0xfff; } @@ -481,10 +464,10 @@ static void segaic16_road_outrun_draw(segaic16_road_device::road_info *info, bit case 1: hpos0 = (hpos0 - (0x5f8 + info->xoffs)) & 0xfff; hpos1 = (hpos1 - (0x5f8 + info->xoffs)) & 0xfff; - for (x = cliprect.min_x; x <= cliprect.max_x; x++) + for (int x = cliprect.min_x; x <= cliprect.max_x; x++) { - int pix0 = (hpos0 < 0x200) ? src0[hpos0] : 3; - int pix1 = (hpos1 < 0x200) ? src1[hpos1] : 3; + const int pix0 = (hpos0 < 0x200) ? src0[hpos0] : 3; + const int pix1 = (hpos1 < 0x200) ? src1[hpos1] : 3; if ((priority_map[0][pix0] >> pix1) & 1) dest[x] = color_table[0x10 + pix1]; else @@ -497,10 +480,10 @@ static void segaic16_road_outrun_draw(segaic16_road_device::road_info *info, bit case 2: hpos0 = (hpos0 - (0x5f8 + info->xoffs)) & 0xfff; hpos1 = (hpos1 - (0x5f8 + info->xoffs)) & 0xfff; - for (x = cliprect.min_x; x <= cliprect.max_x; x++) + for (int x = cliprect.min_x; x <= cliprect.max_x; x++) { - int pix0 = (hpos0 < 0x200) ? src0[hpos0] : 3; - int pix1 = (hpos1 < 0x200) ? src1[hpos1] : 3; + const int pix0 = (hpos0 < 0x200) ? src0[hpos0] : 3; + const int pix1 = (hpos1 < 0x200) ? src1[hpos1] : 3; if ((priority_map[1][pix0] >> pix1) & 1) dest[x] = color_table[0x10 + pix1]; else @@ -514,9 +497,9 @@ static void segaic16_road_outrun_draw(segaic16_road_device::road_info *info, bit if (data1 & 0x800) continue; hpos1 = (hpos1 - (0x5f8 + info->xoffs)) & 0xfff; - for (x = cliprect.min_x; x <= cliprect.max_x; x++) + for (int x = cliprect.min_x; x <= cliprect.max_x; x++) { - int pix1 = (hpos1 < 0x200) ? src1[hpos1] : 3; + const int pix1 = (hpos1 < 0x200) ? src1[hpos1] : 3; dest[x] = color_table[0x10 + pix1]; hpos1 = (hpos1 + 1) & 0xfff; } @@ -534,7 +517,7 @@ static void segaic16_road_outrun_draw(segaic16_road_device::road_info *info, bit * *************************************/ -void segaic16_road_device::segaic16_road_init(running_machine &machine, int which, int type, int colorbase1, int colorbase2, int colorbase3, int xoffs) +void segaic16_road_device::segaic16_road_init(int which, int type, int colorbase1, int colorbase2, int colorbase3, int xoffs) { road_info *info = &segaic16_road[which]; @@ -551,7 +534,7 @@ void segaic16_road_device::segaic16_road_init(running_machine &machine, int whic switch (which) { case 0: - info->roadram = segaic16_roadram_0; + info->roadram = m_roadram.target(); break; default: @@ -564,14 +547,14 @@ void segaic16_road_device::segaic16_road_init(running_machine &machine, int whic case ROAD_HANGON: case ROAD_SHARRIER: info->draw = segaic16_road_hangon_draw; - segaic16_road_hangon_decode(machine, info); + segaic16_road_hangon_decode(info); break; case ROAD_OUTRUN: case ROAD_XBOARD: - info->buffer = std::make_unique(0x1000/2); + info->buffer = std::make_unique(0x1000/2); info->draw = segaic16_road_outrun_draw; - segaic16_road_outrun_decode(machine, info); + segaic16_road_outrun_decode(info); break; default: @@ -601,22 +584,24 @@ void segaic16_road_device::segaic16_road_draw(int which, bitmap_ind16 &bitmap, c * *************************************/ -READ16_MEMBER( segaic16_road_device::segaic16_road_control_0_r ) +u16 segaic16_road_device::segaic16_road_control_0_r() { - road_info *info = &segaic16_road[0]; - - if (info->buffer) + if (!machine().side_effects_disabled()) { - uint32_t *src = (uint32_t *)info->roadram; - uint32_t *dst = (uint32_t *)info->buffer.get(); - int i; + road_info *info = &segaic16_road[0]; - /* swap the halves of the road RAM */ - for (i = 0; i < 0x1000/4; i++) + if (info->buffer) { - uint32_t temp = *src; - *src++ = *dst; - *dst++ = temp; + u32 *src = (u32 *)info->roadram; + u32 *dst = (u32 *)info->buffer.get(); + + /* swap the halves of the road RAM */ + for (int i = 0; i < 0x1000/4; i++) + { + const u32 temp = *src; + *src++ = *dst; + *dst++ = temp; + } } } @@ -624,7 +609,7 @@ READ16_MEMBER( segaic16_road_device::segaic16_road_control_0_r ) } -WRITE16_MEMBER( segaic16_road_device::segaic16_road_control_0_w ) +void segaic16_road_device::segaic16_road_control_0_w(offs_t offset, u16 data, u16 mem_mask) { road_info *info = &segaic16_road[0]; diff --git a/src/mame/video/segaic16_road.h b/src/mame/video/segaic16_road.h index 7e50223e8a7..e0a5fdba410 100644 --- a/src/mame/video/segaic16_road.h +++ b/src/mame/video/segaic16_road.h @@ -26,34 +26,32 @@ public: struct road_info { - uint8_t index; /* index of this structure */ - uint8_t type; /* type of road system (see segaic16.h for details) */ - uint8_t control; /* control register value */ - uint16_t colorbase1; /* color base for road ROM data */ - uint16_t colorbase2; /* color base for road background data */ - uint16_t colorbase3; /* color base for sky data */ - int32_t xoffs; /* X scroll offset */ - void (*draw)(struct road_info *info, bitmap_ind16 &bitmap, const rectangle &cliprect, int priority); - uint16_t * roadram; /* pointer to roadram pointer */ - std::unique_ptr buffer; /* buffered roadram pointer */ - std::unique_ptr gfx; /* expanded road graphics */ + u8 index; /* index of this structure */ + u8 type; /* type of road system (see segaic16.h for details) */ + u8 control; /* control register value */ + u16 colorbase1; /* color base for road ROM data */ + u16 colorbase2; /* color base for road background data */ + u16 colorbase3; /* color base for sky data */ + s32 xoffs; /* X scroll offset */ + void (*draw)(struct road_info *info, bitmap_ind16 &bitmap, const rectangle &cliprect, int priority); + u16 * roadram; /* pointer to roadram pointer */ + std::unique_ptr buffer; /* buffered roadram pointer */ + std::unique_ptr gfx; /* expanded road graphics */ }; + segaic16_road_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - segaic16_road_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - uint16_t *segaic16_roadram_0; - void segaic16_road_hangon_decode(running_machine &machine, struct road_info *info); - void segaic16_road_outrun_decode(running_machine &machine, struct road_info *info); + void segaic16_road_hangon_decode(struct road_info *info); + void segaic16_road_outrun_decode(struct road_info *info); struct road_info segaic16_road[MAX_ROADS]; - void segaic16_road_init(running_machine &machine, int which, int type, int colorbase1, int colorbase2, int colorbase3, int xoffs); + void segaic16_road_init(int which, int type, int colorbase1, int colorbase2, int colorbase3, int xoffs); void segaic16_road_draw(int which, bitmap_ind16 &bitmap, const rectangle &cliprect, int priority); - DECLARE_READ16_MEMBER( segaic16_road_control_0_r ); - DECLARE_WRITE16_MEMBER( segaic16_road_control_0_w ); + u16 segaic16_road_control_0_r(); + void segaic16_road_control_0_w(offs_t offset, u16 data, u16 mem_mask = ~0); protected: @@ -63,6 +61,8 @@ protected: private: // internal state + required_region_ptr m_gfx_region; + required_shared_ptr m_roadram; }; DECLARE_DEVICE_TYPE(SEGAIC16_ROAD, segaic16_road_device) diff --git a/src/mame/video/segaorun.cpp b/src/mame/video/segaorun.cpp index 469f574a9b2..9ebca95b3ea 100644 --- a/src/mame/video/segaorun.cpp +++ b/src/mame/video/segaorun.cpp @@ -23,7 +23,7 @@ void segaorun_state::video_start() m_segaic16vid->tilemap_init(0, segaic16_video_device::TILEMAP_16B_ALT, 0x000, 0, 2); // initialize the road - m_segaic16road->segaic16_road_init(machine(), 0, segaic16_road_device::ROAD_OUTRUN, 0x7f6, 0x7c0, 0x7c0, 0); + m_segaic16road->segaic16_road_init(0, segaic16_road_device::ROAD_OUTRUN, 0x7f6, 0x7c0, 0x7c0, 0); } else { @@ -31,7 +31,7 @@ void segaorun_state::video_start() m_segaic16vid->tilemap_init(0, segaic16_video_device::TILEMAP_16B, 0x000, 0, 2); // initialize the road - m_segaic16road->segaic16_road_init(machine(), 0, segaic16_road_device::ROAD_OUTRUN, 0x400, 0x420, 0x780, 0); + m_segaic16road->segaic16_road_init(0, segaic16_road_device::ROAD_OUTRUN, 0x400, 0x420, 0x780, 0); } } diff --git a/src/mame/video/segaxbd.cpp b/src/mame/video/segaxbd.cpp index b7e06d0e311..53262caca42 100644 --- a/src/mame/video/segaxbd.cpp +++ b/src/mame/video/segaxbd.cpp @@ -26,7 +26,7 @@ void segaxbd_state::video_start() m_segaic16vid->tilemap_init( 0, segaic16_video_device::TILEMAP_16B, 0x1c00, 0, 2); // initialize the road - m_segaic16road->segaic16_road_init(machine(), 0, segaic16_road_device::ROAD_XBOARD, 0x1700, 0x1720, 0x1780, -166); + m_segaic16road->segaic16_road_init(0, segaic16_road_device::ROAD_XBOARD, 0x1700, 0x1720, 0x1780, -166); }