summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author cam900 <dbtlrchl@naver.com>2022-02-17 12:26:52 +0900
committer GitHub <noreply@github.com>2022-02-16 22:26:52 -0500
commit9017b004ab0cffde58286b55da132615a6eae809 (patch)
tree945bad43c09c43d940aba4e8aec466252c62468c /src
parent8796d74a806454de6f302659ec3a7cbdb56651cd (diff)
raiden.cpp: Use prio_* for single pass sprite draw routine, Minor cleanups, Add notes for country/game mode byte (#9044)
* raiden.cpp: Use prio_* for sprite draw routine, Minor cleanups Reduce unnecessary memory region size, Simplify gfxdecode layouts, Fix namings, Use shorter/correct type values * raiden.cpp: Add notes of country/game mode byte High nibble is respawn behavior related, only for single play. Low nibble is region/country code.
Diffstat (limited to 'src')
-rw-r--r--src/mame/drivers/raiden.cpp359
-rw-r--r--src/mame/includes/raiden.h50
-rw-r--r--src/mame/video/raiden.cpp124
3 files changed, 271 insertions, 262 deletions
diff --git a/src/mame/drivers/raiden.cpp b/src/mame/drivers/raiden.cpp
index c2b9fbe9113..4a192edd8bc 100644
--- a/src/mame/drivers/raiden.cpp
+++ b/src/mame/drivers/raiden.cpp
@@ -12,14 +12,19 @@
To access test mode, reset with both start buttons held.
- The country byte is stored at 0xffffd in the main cpu region,
+ The country/game mode byte is stored at 0xffffd in the main cpu region,
(that's 0x1fffe in program rom 4).
- 0x80 = World/Japan version? (Seibu Kaihatsu) (distributed by Tecmo?)
- 0x81 = USA version (Fabtek license)
- 0x82 = Taiwan version (Liang HWA Electronics license)
- 0x83 = Hong Kong version (Wah Yan Electronics license)
- 0x84 = Korean version (IBL Corporation license)
+ High nibble: Player respawn behavior when single playing
+ 0x0* = If single playing, Restart at checkpoint when every miss
+ 0x8* = Respawn instantly when every miss
+
+ Low nibble: country/region code
+ 0x*0 = World/Japan version? (Seibu Kaihatsu) (distributed by Tecmo?)
+ 0x*1 = USA version (Fabtek license)
+ 0x*2 = Taiwan version (Liang HWA Electronics license)
+ 0x*3 = Hong Kong version (Wah Yan Electronics license)
+ 0x*4 = Korean version (IBL Corporation license)
There are also strings for Spanish, Greece, Mexico, Middle &
South America though it's not clear if they are used.
@@ -93,26 +98,26 @@ void raiden_state::main_map(address_map &map)
map(0x07000, 0x07fff).ram().share("spriteram");
map(0x08000, 0x08fff).ram().share("shared_ram");
map(0x0a000, 0x0a00d).rw(m_seibu_sound, FUNC(seibu_sound_device::main_r), FUNC(seibu_sound_device::main_w)).umask16(0x00ff);
- map(0x0c000, 0x0c7ff).w(FUNC(raiden_state::raiden_text_w)).share("videoram");
+ map(0x0c000, 0x0c7ff).w(FUNC(raiden_state::textram_w)).share("textram");
map(0x0e000, 0x0e001).portr("P1_P2");
map(0x0e002, 0x0e003).portr("DSW");
map(0x0e004, 0x0e005).nopw(); // watchdog?
map(0x0e006, 0x0e006).w(FUNC(raiden_state::raiden_control_w));
map(0x0f000, 0x0f03f).writeonly().share("scroll_ram");
- map(0xa0000, 0xfffff).rom();
+ map(0xa0000, 0xfffff).rom().region("maincpu", 0);
}
void raiden_state::sub_map(address_map &map)
{
map(0x00000, 0x01fff).ram();
- map(0x02000, 0x027ff).ram().w(FUNC(raiden_state::raiden_background_w)).share("back_data");
- map(0x02800, 0x02fff).ram().w(FUNC(raiden_state::raiden_foreground_w)).share("fore_data");
+ map(0x02000, 0x027ff).ram().w(FUNC(raiden_state::bgram_w)).share("bgram");
+ map(0x02800, 0x02fff).ram().w(FUNC(raiden_state::fgram_w)).share("fgram");
map(0x03000, 0x03fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
map(0x04000, 0x04fff).ram().share("shared_ram");
map(0x07ffe, 0x07fff).nopw(); // ?
map(0x08000, 0x08001).nopw(); // watchdog?
map(0x0a000, 0x0a001).nopw(); // ?
- map(0xc0000, 0xfffff).rom();
+ map(0xc0000, 0xfffff).rom().region("sub", 0);
}
@@ -128,21 +133,21 @@ void raiden_state::raidenu_main_map(address_map &map)
map(0x0b002, 0x0b003).portr("DSW");
map(0x0b004, 0x0b005).nopw(); // watchdog?
map(0x0b006, 0x0b006).w(FUNC(raiden_state::raiden_control_w));
- map(0x0c000, 0x0c7ff).w(FUNC(raiden_state::raiden_text_w)).share("videoram");
+ map(0x0c000, 0x0c7ff).w(FUNC(raiden_state::textram_w)).share("textram");
map(0x0d000, 0x0d00d).rw(m_seibu_sound, FUNC(seibu_sound_device::main_r), FUNC(seibu_sound_device::main_w)).umask16(0x00ff);
- map(0xa0000, 0xfffff).rom();
+ map(0xa0000, 0xfffff).rom().region("maincpu", 0);
}
void raiden_state::raidenu_sub_map(address_map &map)
{
map(0x00000, 0x05fff).ram();
- map(0x06000, 0x067ff).ram().w(FUNC(raiden_state::raiden_background_w)).share("back_data");
- map(0x06800, 0x06fff).ram().w(FUNC(raiden_state::raiden_foreground_w)).share("fore_data");
+ map(0x06000, 0x067ff).ram().w(FUNC(raiden_state::bgram_w)).share("bgram");
+ map(0x06800, 0x06fff).ram().w(FUNC(raiden_state::fgram_w)).share("fgram");
map(0x07000, 0x07fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
map(0x08000, 0x08fff).ram().share("shared_ram");
map(0x0a000, 0x0a001).nopw(); // ?
map(0x0c000, 0x0c001).nopw(); // watchdog?
- map(0xc0000, 0xfffff).rom();
+ map(0xc0000, 0xfffff).rom().region("sub", 0);
}
@@ -157,10 +162,10 @@ void raidenb_state::raidenb_main_map(address_map &map)
map(0x0b002, 0x0b003).portr("DSW");
map(0x0b004, 0x0b005).nopw(); // watchdog?
map(0x0b006, 0x0b006).w(FUNC(raidenb_state::raidenb_control_w));
- map(0x0c000, 0x0c7ff).w(FUNC(raidenb_state::raiden_text_w)).share("videoram");
+ map(0x0c000, 0x0c7ff).w(FUNC(raidenb_state::textram_w)).share("textram");
map(0x0d000, 0x0d00d).rw(m_seibu_sound, FUNC(seibu_sound_device::main_r), FUNC(seibu_sound_device::main_w)).umask16(0x00ff);
map(0x0d040, 0x0d08f).rw("crtc", FUNC(seibu_crtc_device::read), FUNC(seibu_crtc_device::write));
- map(0xa0000, 0xfffff).rom();
+ map(0xa0000, 0xfffff).rom().region("maincpu", 0);
}
@@ -286,40 +291,33 @@ INPUT_PORTS_END
/******************************************************************************/
-static const gfx_layout raiden_charlayout =
+static const gfx_layout charlayout =
{
- 8,8, /* 8*8 characters */
- 2048, /* 512 characters */
- 4, /* 4 bits per pixel */
- { 4,0,(0x08000*8)+4,0x08000*8 },
- { 0,1,2,3,8,9,10,11 },
- { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 },
- 128
+ 8,8, /* 8*8 characters */
+ RGN_FRAC(1,1), /* 1024 characters */
+ 4, /* 4 bits per pixel */
+ { STEP4(12,-4) },
+ { STEP4(0,1), STEP4(16,1) },
+ { STEP8(0,16*2) },
+ 8*8*4
};
-static const gfx_layout raiden_spritelayout =
+static const gfx_layout tilelayout =
{
- 16,16, /* 16*16 tiles */
- 4096, /* 2048*4 tiles */
- 4, /* 4 bits per pixel */
- { 12, 8, 4, 0 },
- {
- 0,1,2,3, 16,17,18,19,
- 512+0,512+1,512+2,512+3,
- 512+8+8,512+9+8,512+10+8,512+11+8,
- },
- {
- 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32,
- 8*32, 9*32, 10*32, 11*32, 12*32, 13*32, 14*32, 15*32,
- },
- 1024
+ 16,16, /* 16*16 tiles */
+ RGN_FRAC(1,1), /* 4096 tiles */
+ 4, /* 4 bits per pixel */
+ { STEP4(12,-4) },
+ { STEP4(0,1), STEP4(16,1), STEP4(16*16*2,1), STEP4(16*16*2+16,1) },
+ { STEP16(0,16*2) },
+ 16*16*4
};
static GFXDECODE_START( gfx_raiden )
- GFXDECODE_ENTRY( "gfx1", 0, raiden_charlayout, 768, 16 )
- GFXDECODE_ENTRY( "gfx2", 0, raiden_spritelayout, 0, 16 )
- GFXDECODE_ENTRY( "gfx3", 0, raiden_spritelayout, 256, 16 )
- GFXDECODE_ENTRY( "gfx4", 0, raiden_spritelayout, 512, 16 )
+ GFXDECODE_ENTRY( "text", 0, charlayout, 768, 16 )
+ GFXDECODE_ENTRY( "bgtiles", 0, tilelayout, 0, 16 )
+ GFXDECODE_ENTRY( "fgtiles", 0, tilelayout, 256, 16 )
+ GFXDECODE_ENTRY( "sprites", 0, tilelayout, 512, 16 )
GFXDECODE_END
@@ -400,7 +398,7 @@ void raiden_state::raidenu(machine_config &config)
m_subcpu->set_addrmap(AS_PROGRAM, &raiden_state::raidenu_sub_map);
}
-void raidenb_state::raidenb_layer_scroll_w(offs_t offset, uint16_t data, uint16_t mem_mask)
+void raidenb_state::raidenb_layer_scroll_w(offs_t offset, u16 data, u16 mem_mask)
{
COMBINE_DATA(&m_raidenb_scroll_ram[offset]);
}
@@ -440,32 +438,32 @@ Note: Seibu labeled the roms simply as 1 through 10 and didn't generally
/* These versions use the same board and make use of the region byte at 0x1fffe (0x1fffd also may differ and is used for unknown purpose) */
ROM_START( raiden ) /* from a board with 2 daughter cards, no official board #s? */
- ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */
- ROM_LOAD16_BYTE( "1.u0253", 0x0a0000, 0x10000, CRC(a4b12785) SHA1(446314e82ce01315cb3e3d1f323eaa2ad6fb48dd) )
- ROM_LOAD16_BYTE( "2.u0252", 0x0a0001, 0x10000, CRC(17640bd5) SHA1(5bbc99900426b1a072b52537ae9a50220c378a0d) )
- ROM_LOAD16_BYTE( "3.u022", 0x0c0000, 0x20000, CRC(f6af09d0) SHA1(ecd49f3351359ea2d5cbd140c9962d45c5544ecd) ) /* both 3 & 4 had a red "dot" on label, 4 also had printed "J" */
- ROM_LOAD16_BYTE( "4j.u023", 0x0c0001, 0x20000, CRC(505c4c5d) SHA1(07f61fd1ff24f482a1ae2f86c4c0f32850cbd539) ) /* 0x1fffd == 0x00, 0x1fffe == 0x04 */
+ ROM_REGION( 0x060000, "maincpu", 0 ) /* v30 main cpu */
+ ROM_LOAD16_BYTE( "1.u0253", 0x000000, 0x10000, CRC(a4b12785) SHA1(446314e82ce01315cb3e3d1f323eaa2ad6fb48dd) )
+ ROM_LOAD16_BYTE( "2.u0252", 0x000001, 0x10000, CRC(17640bd5) SHA1(5bbc99900426b1a072b52537ae9a50220c378a0d) )
+ ROM_LOAD16_BYTE( "3.u022", 0x020000, 0x20000, CRC(f6af09d0) SHA1(ecd49f3351359ea2d5cbd140c9962d45c5544ecd) ) /* both 3 & 4 had a red "dot" on label, 4 also had printed "J" */
+ ROM_LOAD16_BYTE( "4j.u023", 0x020001, 0x20000, CRC(505c4c5d) SHA1(07f61fd1ff24f482a1ae2f86c4c0f32850cbd539) ) /* 0x1fffd == 0x00, 0x1fffe == 0x04 */
- ROM_REGION( 0x100000, "sub", 0 ) /* v30 sub cpu */
- ROM_LOAD16_BYTE( "5.u042", 0x0c0000, 0x20000, CRC(ed03562e) SHA1(bf6b44fb53fa2321cd52c00fcb43b8ceb6ceffff) )
- ROM_LOAD16_BYTE( "6.u043", 0x0c0001, 0x20000, CRC(a19d5b5d) SHA1(aa5e5be60b737913e5677f88ebc218302245e5af) )
+ ROM_REGION( 0x040000, "sub", 0 ) /* v30 sub cpu */
+ ROM_LOAD16_BYTE( "5.u042", 0x000000, 0x20000, CRC(ed03562e) SHA1(bf6b44fb53fa2321cd52c00fcb43b8ceb6ceffff) )
+ ROM_LOAD16_BYTE( "6.u043", 0x000001, 0x20000, CRC(a19d5b5d) SHA1(aa5e5be60b737913e5677f88ebc218302245e5af) )
ROM_REGION( 0x20000, "audiocpu", 0 ) /* 64k code for sound Z80 */
ROM_LOAD( "8.u212", 0x000000, 0x08000, CRC(cbe055c7) SHA1(34a06a541d059c621d87fdf41546c9d052a61963) )
ROM_CONTINUE( 0x010000, 0x08000 )
ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 )
- ROM_REGION( 0x010000, "gfx1", 0 ) /* Chars */
- ROM_LOAD( "9", 0x00000, 0x08000, CRC(1922b25e) SHA1(da27122dd1c43770e7385ad602ef397c64d2f754) ) /* On some PCBs there is no explicit */
- ROM_LOAD( "10", 0x08000, 0x08000, CRC(5f90786a) SHA1(4f63b07c6afbcf5196a433f3356bef984fe303ef) ) /* U location for these two roms */
+ ROM_REGION( 0x010000, "text", 0 ) /* Chars */
+ ROM_LOAD16_BYTE( "9", 0x00001, 0x08000, CRC(1922b25e) SHA1(da27122dd1c43770e7385ad602ef397c64d2f754) ) /* On some PCBs there is no explicit */
+ ROM_LOAD16_BYTE( "10", 0x00000, 0x08000, CRC(5f90786a) SHA1(4f63b07c6afbcf5196a433f3356bef984fe303ef) ) /* U location for these two roms */
- ROM_REGION( 0x080000, "gfx2", 0 ) /* tiles */
+ ROM_REGION( 0x080000, "bgtiles", 0 ) /* tiles */
ROM_LOAD( "sei420", 0x00000, 0x80000, CRC(da151f0b) SHA1(02682497caf5f058331f18c652471829fa08d54f) ) /* tiles @ U105 on this PCB */
- ROM_REGION( 0x080000, "gfx3", 0 ) /* tiles */
+ ROM_REGION( 0x080000, "fgtiles", 0 ) /* tiles */
ROM_LOAD( "sei430", 0x00000, 0x80000, CRC(ac1f57ac) SHA1(1de926a0db73b99904ef119ac816c53d1551156a) ) /* tiles @ U115 on this PCB */
- ROM_REGION( 0x090000, "gfx4", 0 ) /* sprites */
+ ROM_REGION( 0x090000, "sprites", 0 ) /* sprites */
ROM_LOAD( "sei440", 0x00000, 0x80000, CRC(946d7bde) SHA1(30e8755c2b1ca8bff6278710b8422b51f75eec10) )
ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
@@ -481,32 +479,32 @@ ROM_START( raiden ) /* from a board with 2 daughter cards, no official board #s?
ROM_END
ROM_START( raidena )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */
- ROM_LOAD16_BYTE( "1.u0253", 0x0a0000, 0x10000, CRC(a4b12785) SHA1(446314e82ce01315cb3e3d1f323eaa2ad6fb48dd) )
- ROM_LOAD16_BYTE( "2.u0252", 0x0a0001, 0x10000, CRC(17640bd5) SHA1(5bbc99900426b1a072b52537ae9a50220c378a0d) )
- ROM_LOAD16_BYTE( "3.u022", 0x0c0000, 0x20000, CRC(f6af09d0) SHA1(ecd49f3351359ea2d5cbd140c9962d45c5544ecd) )
- ROM_LOAD16_BYTE( "4.u023", 0x0c0001, 0x20000, CRC(6bdfd416) SHA1(7c3692d0c46c0fd360b9b2b5a8dc55d9217be357) ) /* 0x1fffd == 0x00, 0x1fffe == 0x84 */
+ ROM_REGION( 0x060000, "maincpu", 0 ) /* v30 main cpu */
+ ROM_LOAD16_BYTE( "1.u0253", 0x000000, 0x10000, CRC(a4b12785) SHA1(446314e82ce01315cb3e3d1f323eaa2ad6fb48dd) )
+ ROM_LOAD16_BYTE( "2.u0252", 0x000001, 0x10000, CRC(17640bd5) SHA1(5bbc99900426b1a072b52537ae9a50220c378a0d) )
+ ROM_LOAD16_BYTE( "3.u022", 0x020000, 0x20000, CRC(f6af09d0) SHA1(ecd49f3351359ea2d5cbd140c9962d45c5544ecd) )
+ ROM_LOAD16_BYTE( "4.u023", 0x020001, 0x20000, CRC(6bdfd416) SHA1(7c3692d0c46c0fd360b9b2b5a8dc55d9217be357) ) /* 0x1fffd == 0x00, 0x1fffe == 0x84 */
- ROM_REGION( 0x100000, "sub", 0 ) /* v30 sub cpu */
- ROM_LOAD16_BYTE( "5.u042", 0x0c0000, 0x20000, CRC(ed03562e) SHA1(bf6b44fb53fa2321cd52c00fcb43b8ceb6ceffff) )
- ROM_LOAD16_BYTE( "6.u043", 0x0c0001, 0x20000, CRC(a19d5b5d) SHA1(aa5e5be60b737913e5677f88ebc218302245e5af) )
+ ROM_REGION( 0x040000, "sub", 0 ) /* v30 sub cpu */
+ ROM_LOAD16_BYTE( "5.u042", 0x000000, 0x20000, CRC(ed03562e) SHA1(bf6b44fb53fa2321cd52c00fcb43b8ceb6ceffff) )
+ ROM_LOAD16_BYTE( "6.u043", 0x000001, 0x20000, CRC(a19d5b5d) SHA1(aa5e5be60b737913e5677f88ebc218302245e5af) )
ROM_REGION( 0x20000, "audiocpu", 0 ) /* 64k code for sound Z80 */
ROM_LOAD( "8.u212", 0x000000, 0x08000, CRC(cbe055c7) SHA1(34a06a541d059c621d87fdf41546c9d052a61963) )
ROM_CONTINUE( 0x010000, 0x08000 )
ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 )
- ROM_REGION( 0x010000, "gfx1", 0 ) /* Chars */
- ROM_LOAD( "9", 0x00000, 0x08000, CRC(1922b25e) SHA1(da27122dd1c43770e7385ad602ef397c64d2f754) ) /* On some PCBs there is no explicit */
- ROM_LOAD( "10", 0x08000, 0x08000, CRC(5f90786a) SHA1(4f63b07c6afbcf5196a433f3356bef984fe303ef) ) /* U location for these two roms */
+ ROM_REGION( 0x010000, "text", 0 ) /* Chars */
+ ROM_LOAD16_BYTE( "9", 0x00001, 0x08000, CRC(1922b25e) SHA1(da27122dd1c43770e7385ad602ef397c64d2f754) ) /* On some PCBs there is no explicit */
+ ROM_LOAD16_BYTE( "10", 0x00000, 0x08000, CRC(5f90786a) SHA1(4f63b07c6afbcf5196a433f3356bef984fe303ef) ) /* U location for these two roms */
- ROM_REGION( 0x080000, "gfx2", 0 ) /* tiles */
+ ROM_REGION( 0x080000, "bgtiles", 0 ) /* tiles */
ROM_LOAD( "sei420", 0x00000, 0x80000, CRC(da151f0b) SHA1(02682497caf5f058331f18c652471829fa08d54f) ) /* tiles @ U105 on this PCB */
- ROM_REGION( 0x080000, "gfx3", 0 ) /* tiles */
+ ROM_REGION( 0x080000, "fgtiles", 0 ) /* tiles */
ROM_LOAD( "sei430", 0x00000, 0x80000, CRC(ac1f57ac) SHA1(1de926a0db73b99904ef119ac816c53d1551156a) ) /* tiles @ U115 on this PCB */
- ROM_REGION( 0x090000, "gfx4", 0 ) /* sprites */
+ ROM_REGION( 0x090000, "sprites", 0 ) /* sprites */
ROM_LOAD( "sei440", 0x00000, 0x80000, CRC(946d7bde) SHA1(30e8755c2b1ca8bff6278710b8422b51f75eec10) )
ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
@@ -522,32 +520,32 @@ ROM_START( raidena )
ROM_END
ROM_START( raident )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */
- ROM_LOAD16_BYTE( "1.u0253", 0x0a0000, 0x10000, CRC(a4b12785) SHA1(446314e82ce01315cb3e3d1f323eaa2ad6fb48dd) )
- ROM_LOAD16_BYTE( "2.u0252", 0x0a0001, 0x10000, CRC(17640bd5) SHA1(5bbc99900426b1a072b52537ae9a50220c378a0d) )
- ROM_LOAD16_BYTE( "3.u022", 0x0c0000, 0x20000, CRC(f6af09d0) SHA1(ecd49f3351359ea2d5cbd140c9962d45c5544ecd) )
- ROM_LOAD16_BYTE( "4t.u023", 0x0c0001, 0x20000, CRC(61eefab1) SHA1(a886ce1eb1c6451b1cf9eb8dbdc2d484d9881ced) ) /* 0x1fffd == 0x02, 0x1fffe == 0x06 */
+ ROM_REGION( 0x060000, "maincpu", 0 ) /* v30 main cpu */
+ ROM_LOAD16_BYTE( "1.u0253", 0x000000, 0x10000, CRC(a4b12785) SHA1(446314e82ce01315cb3e3d1f323eaa2ad6fb48dd) )
+ ROM_LOAD16_BYTE( "2.u0252", 0x000001, 0x10000, CRC(17640bd5) SHA1(5bbc99900426b1a072b52537ae9a50220c378a0d) )
+ ROM_LOAD16_BYTE( "3.u022", 0x020000, 0x20000, CRC(f6af09d0) SHA1(ecd49f3351359ea2d5cbd140c9962d45c5544ecd) )
+ ROM_LOAD16_BYTE( "4t.u023", 0x020001, 0x20000, CRC(61eefab1) SHA1(a886ce1eb1c6451b1cf9eb8dbdc2d484d9881ced) ) /* 0x1fffd == 0x02, 0x1fffe == 0x06 */
- ROM_REGION( 0x100000, "sub", 0 ) /* v30 sub cpu */
- ROM_LOAD16_BYTE( "5.u042", 0x0c0000, 0x20000, CRC(ed03562e) SHA1(bf6b44fb53fa2321cd52c00fcb43b8ceb6ceffff) )
- ROM_LOAD16_BYTE( "6.u043", 0x0c0001, 0x20000, CRC(a19d5b5d) SHA1(aa5e5be60b737913e5677f88ebc218302245e5af) )
+ ROM_REGION( 0x040000, "sub", 0 ) /* v30 sub cpu */
+ ROM_LOAD16_BYTE( "5.u042", 0x000000, 0x20000, CRC(ed03562e) SHA1(bf6b44fb53fa2321cd52c00fcb43b8ceb6ceffff) )
+ ROM_LOAD16_BYTE( "6.u043", 0x000001, 0x20000, CRC(a19d5b5d) SHA1(aa5e5be60b737913e5677f88ebc218302245e5af) )
ROM_REGION( 0x20000, "audiocpu", 0 ) /* 64k code for sound Z80 */
ROM_LOAD( "8.u212", 0x000000, 0x08000, CRC(cbe055c7) SHA1(34a06a541d059c621d87fdf41546c9d052a61963) )
ROM_CONTINUE( 0x010000, 0x08000 )
ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 )
- ROM_REGION( 0x010000, "gfx1", 0 ) /* Chars */
- ROM_LOAD( "9", 0x00000, 0x08000, CRC(1922b25e) SHA1(da27122dd1c43770e7385ad602ef397c64d2f754) ) /* On some PCBs there is no explicit */
- ROM_LOAD( "10", 0x08000, 0x08000, CRC(5f90786a) SHA1(4f63b07c6afbcf5196a433f3356bef984fe303ef) ) /* U location for these two roms */
+ ROM_REGION( 0x010000, "text", 0 ) /* Chars */
+ ROM_LOAD16_BYTE( "9", 0x00001, 0x08000, CRC(1922b25e) SHA1(da27122dd1c43770e7385ad602ef397c64d2f754) ) /* On some PCBs there is no explicit */
+ ROM_LOAD16_BYTE( "10", 0x00000, 0x08000, CRC(5f90786a) SHA1(4f63b07c6afbcf5196a433f3356bef984fe303ef) ) /* U location for these two roms */
- ROM_REGION( 0x080000, "gfx2", 0 ) /* tiles */
+ ROM_REGION( 0x080000, "bgtiles", 0 ) /* tiles */
ROM_LOAD( "sei420", 0x00000, 0x80000, CRC(da151f0b) SHA1(02682497caf5f058331f18c652471829fa08d54f) ) /* tiles @ U105 on this PCB */
- ROM_REGION( 0x080000, "gfx3", 0 ) /* tiles */
+ ROM_REGION( 0x080000, "fgtiles", 0 ) /* tiles */
ROM_LOAD( "sei430", 0x00000, 0x80000, CRC(ac1f57ac) SHA1(1de926a0db73b99904ef119ac816c53d1551156a) ) /* tiles @ U115 on this PCB */
- ROM_REGION( 0x090000, "gfx4", 0 ) /* sprites */
+ ROM_REGION( 0x090000, "sprites", 0 ) /* sprites */
ROM_LOAD( "sei440", 0x00000, 0x80000, CRC(946d7bde) SHA1(30e8755c2b1ca8bff6278710b8422b51f75eec10) )
ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
@@ -563,32 +561,32 @@ ROM_START( raident )
ROM_END
ROM_START( raidenu )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */
- ROM_LOAD16_BYTE( "1.u0253", 0x0a0000, 0x10000, CRC(a4b12785) SHA1(446314e82ce01315cb3e3d1f323eaa2ad6fb48dd) )
- ROM_LOAD16_BYTE( "2.u0252", 0x0a0001, 0x10000, CRC(17640bd5) SHA1(5bbc99900426b1a072b52537ae9a50220c378a0d) )
- ROM_LOAD16_BYTE( "3a.u022", 0x0c0000, 0x20000, CRC(a8fadbdd) SHA1(a23729a51c45c1dba4e625503a37d111ae72ced0) ) /* Both 3A & 4A different for the US version */
- ROM_LOAD16_BYTE( "4a.u023", 0x0c0001, 0x20000, CRC(bafb268d) SHA1(132d3ebf9d9d5fffa3040338106fad428c54dbaa) ) /* 0x1fffd == 0x01, 0x1fffe == 0x85 */
+ ROM_REGION( 0x060000, "maincpu", 0 ) /* v30 main cpu */
+ ROM_LOAD16_BYTE( "1.u0253", 0x000000, 0x10000, CRC(a4b12785) SHA1(446314e82ce01315cb3e3d1f323eaa2ad6fb48dd) )
+ ROM_LOAD16_BYTE( "2.u0252", 0x000001, 0x10000, CRC(17640bd5) SHA1(5bbc99900426b1a072b52537ae9a50220c378a0d) )
+ ROM_LOAD16_BYTE( "3a.u022", 0x020000, 0x20000, CRC(a8fadbdd) SHA1(a23729a51c45c1dba4e625503a37d111ae72ced0) ) /* Both 3A & 4A different for the US version */
+ ROM_LOAD16_BYTE( "4a.u023", 0x020001, 0x20000, CRC(bafb268d) SHA1(132d3ebf9d9d5fffa3040338106fad428c54dbaa) ) /* 0x1fffd == 0x01, 0x1fffe == 0x85 */
- ROM_REGION( 0x100000, "sub", 0 ) /* v30 sub cpu */
- ROM_LOAD16_BYTE( "5.u042", 0x0c0000, 0x20000, CRC(ed03562e) SHA1(bf6b44fb53fa2321cd52c00fcb43b8ceb6ceffff) )
- ROM_LOAD16_BYTE( "6.u043", 0x0c0001, 0x20000, CRC(a19d5b5d) SHA1(aa5e5be60b737913e5677f88ebc218302245e5af) )
+ ROM_REGION( 0x040000, "sub", 0 ) /* v30 sub cpu */
+ ROM_LOAD16_BYTE( "5.u042", 0x000000, 0x20000, CRC(ed03562e) SHA1(bf6b44fb53fa2321cd52c00fcb43b8ceb6ceffff) )
+ ROM_LOAD16_BYTE( "6.u043", 0x000001, 0x20000, CRC(a19d5b5d) SHA1(aa5e5be60b737913e5677f88ebc218302245e5af) )
ROM_REGION( 0x20000, "audiocpu", 0 ) /* 64k code for sound Z80 */
ROM_LOAD( "8.u212", 0x000000, 0x08000, CRC(cbe055c7) SHA1(34a06a541d059c621d87fdf41546c9d052a61963) )
ROM_CONTINUE( 0x010000, 0x08000 )
ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 )
- ROM_REGION( 0x010000, "gfx1", 0 ) /* Chars */
- ROM_LOAD( "9", 0x00000, 0x08000, CRC(1922b25e) SHA1(da27122dd1c43770e7385ad602ef397c64d2f754) ) /* On some PCBs there is no explicit */
- ROM_LOAD( "10", 0x08000, 0x08000, CRC(5f90786a) SHA1(4f63b07c6afbcf5196a433f3356bef984fe303ef) ) /* U location for these two roms */
+ ROM_REGION( 0x010000, "text", 0 ) /* Chars */
+ ROM_LOAD16_BYTE( "9", 0x00001, 0x08000, CRC(1922b25e) SHA1(da27122dd1c43770e7385ad602ef397c64d2f754) ) /* On some PCBs there is no explicit */
+ ROM_LOAD16_BYTE( "10", 0x00000, 0x08000, CRC(5f90786a) SHA1(4f63b07c6afbcf5196a433f3356bef984fe303ef) ) /* U location for these two roms */
- ROM_REGION( 0x080000, "gfx2", 0 ) /* tiles */
+ ROM_REGION( 0x080000, "bgtiles", 0 ) /* tiles */
ROM_LOAD( "sei420", 0x00000, 0x80000, CRC(da151f0b) SHA1(02682497caf5f058331f18c652471829fa08d54f) ) /* tiles @ U105 on this PCB */
- ROM_REGION( 0x080000, "gfx3", 0 ) /* tiles */
+ ROM_REGION( 0x080000, "fgtiles", 0 ) /* tiles */
ROM_LOAD( "sei430", 0x00000, 0x80000, CRC(ac1f57ac) SHA1(1de926a0db73b99904ef119ac816c53d1551156a) ) /* tiles @ U115 on this PCB */
- ROM_REGION( 0x090000, "gfx4", 0 ) /* sprites */
+ ROM_REGION( 0x090000, "sprites", 0 ) /* sprites */
ROM_LOAD( "sei440", 0x00000, 0x80000, CRC(946d7bde) SHA1(30e8755c2b1ca8bff6278710b8422b51f75eec10) )
ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
@@ -604,32 +602,32 @@ ROM_START( raidenu )
ROM_END
ROM_START( raidenk ) /* Same board as above. Not sure why the sound CPU would be decrypted */
- ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */
- ROM_LOAD16_BYTE( "1.u0253", 0x0a0000, 0x10000, CRC(a4b12785) SHA1(446314e82ce01315cb3e3d1f323eaa2ad6fb48dd) )
- ROM_LOAD16_BYTE( "2.u0252", 0x0a0001, 0x10000, CRC(17640bd5) SHA1(5bbc99900426b1a072b52537ae9a50220c378a0d) )
- ROM_LOAD16_BYTE( "3.u022", 0x0c0000, 0x20000, CRC(f6af09d0) SHA1(ecd49f3351359ea2d5cbd140c9962d45c5544ecd) )
- ROM_LOAD16_BYTE( "4k.u023", 0x0c0001, 0x20000, CRC(fddf24da) SHA1(ececed0b0b96d070d85bfb6174029142bc96d5f0) ) /* 0x1fffd == 0x02, 0x1fffe == 0xA4 */
+ ROM_REGION( 0x060000, "maincpu", 0 ) /* v30 main cpu */
+ ROM_LOAD16_BYTE( "1.u0253", 0x000000, 0x10000, CRC(a4b12785) SHA1(446314e82ce01315cb3e3d1f323eaa2ad6fb48dd) )
+ ROM_LOAD16_BYTE( "2.u0252", 0x000001, 0x10000, CRC(17640bd5) SHA1(5bbc99900426b1a072b52537ae9a50220c378a0d) )
+ ROM_LOAD16_BYTE( "3.u022", 0x020000, 0x20000, CRC(f6af09d0) SHA1(ecd49f3351359ea2d5cbd140c9962d45c5544ecd) )
+ ROM_LOAD16_BYTE( "4k.u023", 0x020001, 0x20000, CRC(fddf24da) SHA1(ececed0b0b96d070d85bfb6174029142bc96d5f0) ) /* 0x1fffd == 0x02, 0x1fffe == 0xA4 */
- ROM_REGION( 0x100000, "sub", 0 ) /* v30 sub cpu */
- ROM_LOAD16_BYTE( "5.u042", 0x0c0000, 0x20000, CRC(ed03562e) SHA1(bf6b44fb53fa2321cd52c00fcb43b8ceb6ceffff) )
- ROM_LOAD16_BYTE( "6.u043", 0x0c0001, 0x20000, CRC(a19d5b5d) SHA1(aa5e5be60b737913e5677f88ebc218302245e5af) )
+ ROM_REGION( 0x040000, "sub", 0 ) /* v30 sub cpu */
+ ROM_LOAD16_BYTE( "5.u042", 0x000000, 0x20000, CRC(ed03562e) SHA1(bf6b44fb53fa2321cd52c00fcb43b8ceb6ceffff) )
+ ROM_LOAD16_BYTE( "6.u043", 0x000001, 0x20000, CRC(a19d5b5d) SHA1(aa5e5be60b737913e5677f88ebc218302245e5af) )
ROM_REGION( 0x20000, "audiocpu", 0 ) /* 64k code for sound Z80 */
ROM_LOAD( "8b.u212", 0x000000, 0x08000, CRC(99ee7505) SHA1(b97c8ee5e26e8554b5de506fba3b32cc2fde53c9) ) /* Not encrypted */
ROM_CONTINUE( 0x010000, 0x08000 )
ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 )
- ROM_REGION( 0x010000, "gfx1", 0 ) /* Chars */
- ROM_LOAD( "9", 0x00000, 0x08000, CRC(1922b25e) SHA1(da27122dd1c43770e7385ad602ef397c64d2f754) ) /* On some PCBs there is no explicit */
- ROM_LOAD( "10", 0x08000, 0x08000, CRC(5f90786a) SHA1(4f63b07c6afbcf5196a433f3356bef984fe303ef) ) /* U location for these two roms */
+ ROM_REGION( 0x010000, "text", 0 ) /* Chars */
+ ROM_LOAD16_BYTE( "9", 0x00001, 0x08000, CRC(1922b25e) SHA1(da27122dd1c43770e7385ad602ef397c64d2f754) ) /* On some PCBs there is no explicit */
+ ROM_LOAD16_BYTE( "10", 0x00000, 0x08000, CRC(5f90786a) SHA1(4f63b07c6afbcf5196a433f3356bef984fe303ef) ) /* U location for these two roms */
- ROM_REGION( 0x080000, "gfx2", 0 ) /* tiles */
+ ROM_REGION( 0x080000, "bgtiles", 0 ) /* tiles */
ROM_LOAD( "sei420", 0x00000, 0x80000, CRC(da151f0b) SHA1(02682497caf5f058331f18c652471829fa08d54f) ) /* tiles @ U105 on this PCB */
- ROM_REGION( 0x080000, "gfx3", 0 ) /* tiles */
+ ROM_REGION( 0x080000, "fgtiles", 0 ) /* tiles */
ROM_LOAD( "sei430", 0x00000, 0x80000, CRC(ac1f57ac) SHA1(1de926a0db73b99904ef119ac816c53d1551156a) ) /* tiles @ U115 on this PCB */
- ROM_REGION( 0x090000, "gfx4", 0 ) /* sprites */
+ ROM_REGION( 0x090000, "sprites", 0 ) /* sprites */
ROM_LOAD( "sei440", 0x00000, 0x80000, CRC(946d7bde) SHA1(30e8755c2b1ca8bff6278710b8422b51f75eec10) )
ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
@@ -645,39 +643,38 @@ ROM_START( raidenk ) /* Same board as above. Not sure why the sound CPU would be
ROM_END
ROM_START( raidenkb ) /* Korean bootleg board. ROMs for main, sub, audiocpu, chars and oki match raidenk, while object and tile ROMs are differently split */
- ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */
- ROM_LOAD16_BYTE( "1.u0253", 0x0a0000, 0x10000, CRC(a4b12785) SHA1(446314e82ce01315cb3e3d1f323eaa2ad6fb48dd) )
- ROM_LOAD16_BYTE( "2.u0252", 0x0a0001, 0x10000, CRC(17640bd5) SHA1(5bbc99900426b1a072b52537ae9a50220c378a0d) )
- ROM_LOAD16_BYTE( "3.u022", 0x0c0000, 0x20000, CRC(f6af09d0) SHA1(ecd49f3351359ea2d5cbd140c9962d45c5544ecd) )
- ROM_LOAD16_BYTE( "4k.u023", 0x0c0001, 0x20000, CRC(fddf24da) SHA1(ececed0b0b96d070d85bfb6174029142bc96d5f0) ) /* 0x1fffd == 0x02, 0x1fffe == 0xA4 */
+ ROM_REGION( 0x060000, "maincpu", 0 ) /* v30 main cpu */
+ ROM_LOAD16_BYTE( "1.u0253", 0x000000, 0x10000, CRC(a4b12785) SHA1(446314e82ce01315cb3e3d1f323eaa2ad6fb48dd) )
+ ROM_LOAD16_BYTE( "2.u0252", 0x000001, 0x10000, CRC(17640bd5) SHA1(5bbc99900426b1a072b52537ae9a50220c378a0d) )
+ ROM_LOAD16_BYTE( "3.u022", 0x020000, 0x20000, CRC(f6af09d0) SHA1(ecd49f3351359ea2d5cbd140c9962d45c5544ecd) )
+ ROM_LOAD16_BYTE( "4k.u023", 0x020001, 0x20000, CRC(fddf24da) SHA1(ececed0b0b96d070d85bfb6174029142bc96d5f0) ) /* 0x1fffd == 0x02, 0x1fffe == 0xA4 */
- ROM_REGION( 0x100000, "sub", 0 ) /* v30 sub cpu */
- ROM_LOAD16_BYTE( "5.u042", 0x0c0000, 0x20000, CRC(ed03562e) SHA1(bf6b44fb53fa2321cd52c00fcb43b8ceb6ceffff) )
- ROM_LOAD16_BYTE( "6.u043", 0x0c0001, 0x20000, CRC(a19d5b5d) SHA1(aa5e5be60b737913e5677f88ebc218302245e5af) )
+ ROM_REGION( 0x040000, "sub", 0 ) /* v30 sub cpu */
+ ROM_LOAD16_BYTE( "5.u042", 0x000000, 0x20000, CRC(ed03562e) SHA1(bf6b44fb53fa2321cd52c00fcb43b8ceb6ceffff) )
+ ROM_LOAD16_BYTE( "6.u043", 0x000001, 0x20000, CRC(a19d5b5d) SHA1(aa5e5be60b737913e5677f88ebc218302245e5af) )
ROM_REGION( 0x20000, "audiocpu", 0 ) /* 64k code for sound Z80 */
ROM_LOAD( "8b.u212", 0x000000, 0x08000, CRC(99ee7505) SHA1(b97c8ee5e26e8554b5de506fba3b32cc2fde53c9) ) /* Not encrypted */
ROM_CONTINUE( 0x010000, 0x08000 )
ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 )
- ROM_REGION( 0x010000, "gfx1", 0 ) /* Chars */
- ROM_LOAD( "9", 0x00000, 0x08000, CRC(1922b25e) SHA1(da27122dd1c43770e7385ad602ef397c64d2f754) ) /* On some PCBs there is no explicit */
- ROM_LOAD( "10", 0x08000, 0x08000, CRC(5f90786a) SHA1(4f63b07c6afbcf5196a433f3356bef984fe303ef) ) /* U location for these two roms */
+ ROM_REGION( 0x010000, "text", 0 ) /* Chars */
+ ROM_LOAD16_BYTE( "9", 0x00001, 0x08000, CRC(1922b25e) SHA1(da27122dd1c43770e7385ad602ef397c64d2f754) ) /* On some PCBs there is no explicit */
+ ROM_LOAD16_BYTE( "10", 0x00000, 0x08000, CRC(5f90786a) SHA1(4f63b07c6afbcf5196a433f3356bef984fe303ef) ) /* U location for these two roms */
- ROM_REGION( 0x080000, "gfx2", 0 ) /* tiles */
+ ROM_REGION( 0x080000, "bgtiles", 0 ) /* tiles */
ROM_LOAD16_BYTE( "rkb15bg.bin", 0x00000, 0x20000, CRC(13a69064) SHA1(a9fcd785e3bac7c0d39be532b3755e6dd45fc314) )
ROM_LOAD16_BYTE( "rkb17bg.bin", 0x00001, 0x20000, CRC(d7a6c649) SHA1(01d6f18af0385466e3956c3f3afc82393acee6bc) )
ROM_LOAD16_BYTE( "rkb16bg.bin", 0x40000, 0x20000, CRC(66ea8484) SHA1(f4452e1b0991bf81a60b580ba822fc43b1a443e6) )
ROM_LOAD16_BYTE( "rkb18bg.bin", 0x40001, 0x20000, CRC(42362d56) SHA1(1cad19fa3f66e34865383d9a94e9058114910365) )
- ROM_REGION( 0x080000, "gfx3", 0 ) /* tiles */
+ ROM_REGION( 0x080000, "fgtiles", 0 ) /* tiles */
ROM_LOAD16_BYTE( "rkb7bg.bin", 0x00000, 0x20000, CRC(25239711) SHA1(978cfc6487ed711cc1b513824741c347ec92889d) )
ROM_LOAD16_BYTE( "rkb9bg.bin", 0x00001, 0x20000, CRC(6ca0d7b3) SHA1(ef63657a01b07aaa0ded7b0d405b872b4d3a56a8) )
ROM_LOAD16_BYTE( "rkb8bg.bin", 0x40000, 0x20000, CRC(3cad38fc) SHA1(de2257f70c3e71905bc959f80be183c6d95fd06d) )
ROM_LOAD16_BYTE( "rkb10bg.bin", 0x40001, 0x20000, CRC(6fce95a3) SHA1(1d3beda3a4dd0a2a3afbb7b5b16d87bf3257bcb4) )
-
- ROM_REGION( 0x090000, "gfx4", 0 ) /* sprites */
+ ROM_REGION( 0x090000, "sprites", 0 ) /* sprites */
ROM_LOAD16_BYTE( "rkb19obj.bin", 0x00000, 0x20000, CRC(34fa4485) SHA1(d9893c484ee4f80e364824500c6c048f58f49752) )
ROM_LOAD16_BYTE( "rkb21obj.bin", 0x00001, 0x20000, CRC(d806395b) SHA1(7c6fc848aa40a49590e00d0b02ce21ad5414e387) )
ROM_LOAD16_BYTE( "rkb20obj.bin", 0x40000, 0x20000, CRC(8b7ca3c6) SHA1(81c3e98cbd81a39e04b5e7fb3683aba50545f774) )
@@ -691,32 +688,32 @@ ROM_START( raidenkb ) /* Korean bootleg board. ROMs for main, sub, audiocpu, cha
ROM_END
ROM_START( raidenb )/* Different hardware, Main & Sub CPU code not encrypted. */
- ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */
- ROM_LOAD16_BYTE( "1.u0253", 0x0a0000, 0x10000, CRC(a4b12785) SHA1(446314e82ce01315cb3e3d1f323eaa2ad6fb48dd) )
- ROM_LOAD16_BYTE( "2.u0252", 0x0a0001, 0x10000, CRC(17640bd5) SHA1(5bbc99900426b1a072b52537ae9a50220c378a0d) )
- ROM_LOAD16_BYTE( "3__,raidenb.u022", 0x0c0000, 0x20000, CRC(9d735bf5) SHA1(531981eac2ef0c0635f067a649899f98738d5c67) ) /* Simply labeled as 3 */
- ROM_LOAD16_BYTE( "4__,raidenb.u023", 0x0c0001, 0x20000, CRC(8d184b99) SHA1(71cd4179aa2341d2ceecbb6a9c26f5919d46ca4c) ) /* Simply labeled as 4 */
+ ROM_REGION( 0x060000, "maincpu", 0 ) /* v30 main cpu */
+ ROM_LOAD16_BYTE( "1.u0253", 0x000000, 0x10000, CRC(a4b12785) SHA1(446314e82ce01315cb3e3d1f323eaa2ad6fb48dd) )
+ ROM_LOAD16_BYTE( "2.u0252", 0x000001, 0x10000, CRC(17640bd5) SHA1(5bbc99900426b1a072b52537ae9a50220c378a0d) )
+ ROM_LOAD16_BYTE( "3__,raidenb.u022", 0x020000, 0x20000, CRC(9d735bf5) SHA1(531981eac2ef0c0635f067a649899f98738d5c67) ) /* Simply labeled as 3 */
+ ROM_LOAD16_BYTE( "4__,raidenb.u023", 0x020001, 0x20000, CRC(8d184b99) SHA1(71cd4179aa2341d2ceecbb6a9c26f5919d46ca4c) ) /* Simply labeled as 4 */
- ROM_REGION( 0x100000, "sub", 0 ) /* v30 sub cpu */
- ROM_LOAD16_BYTE( "5__,raidenb.u042", 0x0c0000, 0x20000, CRC(7aca6d61) SHA1(4d80ec87e54d7495b9bdf819b9985b1c8183c80d) ) /* Simply labeled as 5 */
- ROM_LOAD16_BYTE( "6__,raidenb.u043", 0x0c0001, 0x20000, CRC(e3d35cc2) SHA1(4329865985aaf3fb524618e2e958563c8fa6ead5) ) /* Simply labeled as 6 */
+ ROM_REGION( 0x040000, "sub", 0 ) /* v30 sub cpu */
+ ROM_LOAD16_BYTE( "5__,raidenb.u042", 0x000000, 0x20000, CRC(7aca6d61) SHA1(4d80ec87e54d7495b9bdf819b9985b1c8183c80d) ) /* Simply labeled as 5 */
+ ROM_LOAD16_BYTE( "6__,raidenb.u043", 0x000001, 0x20000, CRC(e3d35cc2) SHA1(4329865985aaf3fb524618e2e958563c8fa6ead5) ) /* Simply labeled as 6 */
ROM_REGION( 0x20000, "audiocpu", 0 ) /* 64k code for sound Z80 */
ROM_LOAD( "rai6.u212", 0x000000, 0x08000, CRC(723a483b) SHA1(50e67945e83ea1748fb748de3287d26446d4e0a0) ) /* Should be labeled "8" ??? */
ROM_CONTINUE( 0x010000, 0x08000 )
ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 )
- ROM_REGION( 0x010000, "gfx1", 0 ) /* Chars */
- ROM_LOAD( "9", 0x00000, 0x08000, CRC(1922b25e) SHA1(da27122dd1c43770e7385ad602ef397c64d2f754) ) /* On some PCBs there is no explicit */
- ROM_LOAD( "10", 0x08000, 0x08000, CRC(5f90786a) SHA1(4f63b07c6afbcf5196a433f3356bef984fe303ef) ) /* U location for these two roms */
+ ROM_REGION( 0x010000, "text", 0 ) /* Chars */
+ ROM_LOAD16_BYTE( "9", 0x00001, 0x08000, CRC(1922b25e) SHA1(da27122dd1c43770e7385ad602ef397c64d2f754) ) /* On some PCBs there is no explicit */
+ ROM_LOAD16_BYTE( "10", 0x00000, 0x08000, CRC(5f90786a) SHA1(4f63b07c6afbcf5196a433f3356bef984fe303ef) ) /* U location for these two roms */
- ROM_REGION( 0x080000, "gfx2", 0 ) /* tiles */
+ ROM_REGION( 0x080000, "bgtiles", 0 ) /* tiles */
ROM_LOAD( "sei420", 0x00000, 0x80000, CRC(da151f0b) SHA1(02682497caf5f058331f18c652471829fa08d54f) ) /* U919 on this PCB */
- ROM_REGION( 0x080000, "gfx3", 0 ) /* tiles */
+ ROM_REGION( 0x080000, "fgtiles", 0 ) /* tiles */
ROM_LOAD( "sei430", 0x00000, 0x80000, CRC(ac1f57ac) SHA1(1de926a0db73b99904ef119ac816c53d1551156a) ) /* U920 on this PCB */
- ROM_REGION( 0x090000, "gfx4", 0 ) /* Sprites */
+ ROM_REGION( 0x090000, "sprites", 0 ) /* Sprites */
ROM_LOAD( "sei440", 0x00000, 0x80000, CRC(946d7bde) SHA1(30e8755c2b1ca8bff6278710b8422b51f75eec10) ) /* U165 on this PCB */
ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
@@ -727,32 +724,32 @@ ROM_START( raidenb )/* Different hardware, Main & Sub CPU code not encrypted. */
ROM_END
ROM_START( raidenub ) // only region bits differ from raidenb
- ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */
- ROM_LOAD16_BYTE( "1.u0253", 0x0a0000, 0x10000, CRC(a4b12785) SHA1(446314e82ce01315cb3e3d1f323eaa2ad6fb48dd) )
- ROM_LOAD16_BYTE( "2.u0252", 0x0a0001, 0x10000, CRC(17640bd5) SHA1(5bbc99900426b1a072b52537ae9a50220c378a0d) )
- ROM_LOAD16_BYTE( "3u.u022", 0x0c0000, 0x20000, CRC(9d735bf5) SHA1(531981eac2ef0c0635f067a649899f98738d5c67) ) /* Simply labeled as 3u */
- ROM_LOAD16_BYTE( "4u.u023", 0x0c0001, 0x20000, CRC(95c110ef) SHA1(e6aea374ca63cdd851af66240e51461882d170e8) ) /* Simply labeled as 4u */
+ ROM_REGION( 0x060000, "maincpu", 0 ) /* v30 main cpu */
+ ROM_LOAD16_BYTE( "1.u0253", 0x000000, 0x10000, CRC(a4b12785) SHA1(446314e82ce01315cb3e3d1f323eaa2ad6fb48dd) )
+ ROM_LOAD16_BYTE( "2.u0252", 0x000001, 0x10000, CRC(17640bd5) SHA1(5bbc99900426b1a072b52537ae9a50220c378a0d) )
+ ROM_LOAD16_BYTE( "3u.u022", 0x020000, 0x20000, CRC(9d735bf5) SHA1(531981eac2ef0c0635f067a649899f98738d5c67) ) /* Simply labeled as 3u */
+ ROM_LOAD16_BYTE( "4u.u023", 0x020001, 0x20000, CRC(95c110ef) SHA1(e6aea374ca63cdd851af66240e51461882d170e8) ) /* Simply labeled as 4u */
- ROM_REGION( 0x100000, "sub", 0 ) /* v30 sub cpu */
- ROM_LOAD16_BYTE( "5__,raidenb.u042", 0x0c0000, 0x20000, CRC(7aca6d61) SHA1(4d80ec87e54d7495b9bdf819b9985b1c8183c80d) ) /* Simply labeled as 5 */
- ROM_LOAD16_BYTE( "6__,raidenb.u043", 0x0c0001, 0x20000, CRC(e3d35cc2) SHA1(4329865985aaf3fb524618e2e958563c8fa6ead5) ) /* Simply labeled as 6 */
+ ROM_REGION( 0x040000, "sub", 0 ) /* v30 sub cpu */
+ ROM_LOAD16_BYTE( "5__,raidenb.u042", 0x000000, 0x20000, CRC(7aca6d61) SHA1(4d80ec87e54d7495b9bdf819b9985b1c8183c80d) ) /* Simply labeled as 5 */
+ ROM_LOAD16_BYTE( "6__,raidenb.u043", 0x000001, 0x20000, CRC(e3d35cc2) SHA1(4329865985aaf3fb524618e2e958563c8fa6ead5) ) /* Simply labeled as 6 */
ROM_REGION( 0x20000, "audiocpu", 0 ) /* 64k code for sound Z80 */
ROM_LOAD( "rai6.u212", 0x000000, 0x08000, CRC(723a483b) SHA1(50e67945e83ea1748fb748de3287d26446d4e0a0) ) /* Should be labeled "8" ??? */
ROM_CONTINUE( 0x010000, 0x08000 )
ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 )
- ROM_REGION( 0x010000, "gfx1", 0 ) /* Chars */
- ROM_LOAD( "9", 0x00000, 0x08000, CRC(1922b25e) SHA1(da27122dd1c43770e7385ad602ef397c64d2f754) ) /* On some PCBs there is no explicit */
- ROM_LOAD( "10", 0x08000, 0x08000, CRC(5f90786a) SHA1(4f63b07c6afbcf5196a433f3356bef984fe303ef) ) /* U location for these two roms */
+ ROM_REGION( 0x010000, "text", 0 ) /* Chars */
+ ROM_LOAD16_BYTE( "9", 0x00001, 0x08000, CRC(1922b25e) SHA1(da27122dd1c43770e7385ad602ef397c64d2f754) ) /* On some PCBs there is no explicit */
+ ROM_LOAD16_BYTE( "10", 0x00000, 0x08000, CRC(5f90786a) SHA1(4f63b07c6afbcf5196a433f3356bef984fe303ef) ) /* U location for these two roms */
- ROM_REGION( 0x080000, "gfx2", 0 ) /* tiles */
+ ROM_REGION( 0x080000, "bgtiles", 0 ) /* tiles */
ROM_LOAD( "sei420", 0x00000, 0x80000, CRC(da151f0b) SHA1(02682497caf5f058331f18c652471829fa08d54f) ) /* U919 on this PCB */
- ROM_REGION( 0x080000, "gfx3", 0 ) /* tiles */
+ ROM_REGION( 0x080000, "fgtiles", 0 ) /* tiles */
ROM_LOAD( "sei430", 0x00000, 0x80000, CRC(ac1f57ac) SHA1(1de926a0db73b99904ef119ac816c53d1551156a) ) /* U920 on this PCB */
- ROM_REGION( 0x090000, "gfx4", 0 ) /* Sprites */
+ ROM_REGION( 0x090000, "sprites", 0 ) /* Sprites */
ROM_LOAD( "sei440", 0x00000, 0x80000, CRC(946d7bde) SHA1(30e8755c2b1ca8bff6278710b8422b51f75eec10) ) /* U165 on this PCB */
ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
@@ -763,32 +760,32 @@ ROM_START( raidenub ) // only region bits differ from raidenb
ROM_END
ROM_START( raidenua )/* Different hardware, Main, Sub & sound CPU code not encrypted. */
- ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */
- ROM_LOAD16_BYTE( "1.c8", 0x0a0000, 0x10000, CRC(a4b12785) SHA1(446314e82ce01315cb3e3d1f323eaa2ad6fb48dd) )
- ROM_LOAD16_BYTE( "2.c7", 0x0a0001, 0x10000, CRC(17640bd5) SHA1(5bbc99900426b1a072b52537ae9a50220c378a0d) )
- ROM_LOAD16_BYTE( "3dd.e8", 0x0c0000, 0x20000, CRC(b6f3bad2) SHA1(214474ab9fa65e2716155b77d7825951cc98148a) )
- ROM_LOAD16_BYTE( "4dd.e7", 0x0c0001, 0x20000, CRC(d294dfc1) SHA1(03606ddfa35d5cb34c447fa370495e1fbb0cad0e) )
+ ROM_REGION( 0x060000, "maincpu", 0 ) /* v30 main cpu */
+ ROM_LOAD16_BYTE( "1.c8", 0x000000, 0x10000, CRC(a4b12785) SHA1(446314e82ce01315cb3e3d1f323eaa2ad6fb48dd) )
+ ROM_LOAD16_BYTE( "2.c7", 0x000001, 0x10000, CRC(17640bd5) SHA1(5bbc99900426b1a072b52537ae9a50220c378a0d) )
+ ROM_LOAD16_BYTE( "3dd.e8", 0x020000, 0x20000, CRC(b6f3bad2) SHA1(214474ab9fa65e2716155b77d7825951cc98148a) )
+ ROM_LOAD16_BYTE( "4dd.e7", 0x020001, 0x20000, CRC(d294dfc1) SHA1(03606ddfa35d5cb34c447fa370495e1fbb0cad0e) )
- ROM_REGION( 0x100000, "sub", 0 ) /* v30 sub cpu */
- ROM_LOAD16_BYTE( "5.p8", 0x0c0000, 0x20000, CRC(15c1cf45) SHA1(daac732a1d3e8f36fa665f984e05651cbca74fef) )
- ROM_LOAD16_BYTE( "6.p7", 0x0c0001, 0x20000, CRC(261c381b) SHA1(64a9e0ea9abcba6287829cf4abb806362b62c806) )
+ ROM_REGION( 0x040000, "sub", 0 ) /* v30 sub cpu */
+ ROM_LOAD16_BYTE( "5.p8", 0x000000, 0x20000, CRC(15c1cf45) SHA1(daac732a1d3e8f36fa665f984e05651cbca74fef) )
+ ROM_LOAD16_BYTE( "6.p7", 0x000001, 0x20000, CRC(261c381b) SHA1(64a9e0ea9abcba6287829cf4abb806362b62c806) )
ROM_REGION( 0x20000, "audiocpu", 0 ) /* 64k code for sound Z80 */
ROM_LOAD( "8.w8", 0x00000, 0x08000, CRC(105b9c11) SHA1(eb142806f8410d584d914b91207361a15ab18e6f) )
ROM_CONTINUE( 0x10000, 0x08000 )
ROM_COPY( "audiocpu", 0x000000, 0x18000, 0x08000 )
- ROM_REGION( 0x010000, "gfx1", 0 ) /* Chars */
- ROM_LOAD( "9", 0x00000, 0x08000, CRC(1922b25e) SHA1(da27122dd1c43770e7385ad602ef397c64d2f754) ) /* U016 on this PCB */
- ROM_LOAD( "10", 0x08000, 0x08000, CRC(5f90786a) SHA1(4f63b07c6afbcf5196a433f3356bef984fe303ef) ) /* U017 on this PCB */
+ ROM_REGION( 0x010000, "text", 0 ) /* Chars */
+ ROM_LOAD16_BYTE( "9", 0x00001, 0x08000, CRC(1922b25e) SHA1(da27122dd1c43770e7385ad602ef397c64d2f754) ) /* U016 on this PCB */
+ ROM_LOAD16_BYTE( "10", 0x00000, 0x08000, CRC(5f90786a) SHA1(4f63b07c6afbcf5196a433f3356bef984fe303ef) ) /* U017 on this PCB */
- ROM_REGION( 0x080000, "gfx2", 0 ) /* tiles */
+ ROM_REGION( 0x080000, "bgtiles", 0 ) /* tiles */
ROM_LOAD( "sei420", 0x00000, 0x80000, CRC(da151f0b) SHA1(02682497caf5f058331f18c652471829fa08d54f) ) /* U011 on this PCB */
- ROM_REGION( 0x080000, "gfx3", 0 ) /* tiles */
+ ROM_REGION( 0x080000, "fgtiles", 0 ) /* tiles */
ROM_LOAD( "sei430", 0x00000, 0x80000, CRC(ac1f57ac) SHA1(1de926a0db73b99904ef119ac816c53d1551156a) ) /* U013 on this PCB */
- ROM_REGION( 0x090000, "gfx4", 0 ) /* Sprites */
+ ROM_REGION( 0x090000, "sprites", 0 ) /* Sprites */
ROM_LOAD( "sei440", 0x00000, 0x80000, CRC(946d7bde) SHA1(30e8755c2b1ca8bff6278710b8422b51f75eec10) ) /* U012 on this PCB */
ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
@@ -807,27 +804,27 @@ encryption method! The technique is a combination of a XOR table plus
bit-swapping */
void raiden_state::common_decrypt()
{
- uint16_t *RAM = (uint16_t *)memregion("maincpu")->base();
+ u16 *RAM = (u16 *)memregion("maincpu")->base();
int i;
for (i = 0; i < 0x20000; i++)
{
- static const uint16_t xor_table[] = { 0x200e,0x0006,0x000a,0x0002,0x240e,0x000e,0x04c2,0x00c2,0x008c,0x0004,0x0088,0x0000,0x048c,0x000c,0x04c0,0x00c0 };
- uint16_t data = RAM[0xc0000/2 + i];
+ static const u16 xor_table[] = { 0x200e,0x0006,0x000a,0x0002,0x240e,0x000e,0x04c2,0x00c2,0x008c,0x0004,0x0088,0x0000,0x048c,0x000c,0x04c0,0x00c0 };
+ u16 data = RAM[0x20000/2 + i];
data ^= xor_table[i & 0x0f];
data = bitswap<16>(data, 15,14,10,12,11,13,9,8,3,2,5,4,7,1,6,0);
- RAM[0xc0000/2 + i] = data;
+ RAM[0x20000/2 + i] = data;
}
- RAM = (uint16_t *)memregion("sub")->base();
+ RAM = (u16 *)memregion("sub")->base();
for (i = 0; i < 0x20000; i++)
{
- static const uint16_t xor_table[] = { 0x0080,0x0080,0x0244,0x0288,0x0288,0x0288,0x1041,0x1009 };
- uint16_t data = RAM[0xc0000/2 + i];
+ static const u16 xor_table[] = { 0x0080,0x0080,0x0244,0x0288,0x0288,0x0288,0x1041,0x1009 };
+ u16 data = RAM[0x00000/2 + i];
data ^= xor_table[i & 0x07];
data = bitswap<16>(data, 15,14,13,9,11,10,12,8,2,0,5,4,7,3,1,6);
- RAM[0xc0000/2 + i] = data;
+ RAM[0x00000/2 + i] = data;
}
}
diff --git a/src/mame/includes/raiden.h b/src/mame/includes/raiden.h
index d31d30558a6..4918972e131 100644
--- a/src/mame/includes/raiden.h
+++ b/src/mame/includes/raiden.h
@@ -27,10 +27,10 @@ public:
m_palette(*this, "palette"),
m_spriteram(*this, "spriteram"),
m_shared_ram(*this, "shared_ram"),
- m_videoram(*this, "videoram"),
+ m_textram(*this, "textram"),
m_scroll_ram(*this, "scroll_ram"),
- m_back_data(*this, "back_data"),
- m_fore_data(*this, "fore_data")
+ m_bgram(*this, "bgram"),
+ m_fgram(*this, "fgram")
{ }
void raidene(machine_config &config);
@@ -44,17 +44,17 @@ protected:
required_device<cpu_device> m_maincpu;
required_device<seibu_sound_device> m_seibu_sound;
- uint8_t m_bg_layer_enabled;
- uint8_t m_fg_layer_enabled;
- uint8_t m_tx_layer_enabled;
- uint8_t m_sp_layer_enabled;
- uint8_t m_flipscreen;
+ bool m_bg_layer_enabled;
+ bool m_fg_layer_enabled;
+ bool m_tx_layer_enabled;
+ bool m_sp_layer_enabled;
+ bool m_flipscreen;
virtual void video_start() override;
- uint32_t screen_update_common(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, uint16_t *scrollregs);
+ u32 screen_update_common(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, u16 *scrollregs);
- void raiden_text_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void textram_w(offs_t offset, u16 data, u16 mem_mask = ~0);
void common_video_start();
@@ -63,29 +63,29 @@ protected:
required_device<palette_device> m_palette;
required_device<buffered_spriteram16_device> m_spriteram;
- required_shared_ptr<uint16_t> m_shared_ram;
- required_shared_ptr<uint16_t> m_videoram;
- optional_shared_ptr<uint16_t> m_scroll_ram;
- required_shared_ptr<uint16_t> m_back_data;
- required_shared_ptr<uint16_t> m_fore_data;
+ required_shared_ptr<u16> m_shared_ram;
+ required_shared_ptr<u16> m_textram;
+ optional_shared_ptr<u16> m_scroll_ram;
+ required_shared_ptr<u16> m_bgram;
+ required_shared_ptr<u16> m_fgram;
tilemap_t *m_bg_layer;
tilemap_t *m_fg_layer;
tilemap_t *m_tx_layer;
- void raiden_background_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
- void raiden_foreground_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
- void raiden_control_w(uint8_t data);
+ void bgram_w(offs_t offset, u16 data, u16 mem_mask = ~0);
+ void fgram_w(offs_t offset, u16 data, u16 mem_mask = ~0);
+ void raiden_control_w(u8 data);
TILE_GET_INFO_MEMBER(get_back_tile_info);
TILE_GET_INFO_MEMBER(get_fore_tile_info);
TILE_GET_INFO_MEMBER(get_text_tile_info);
- uint32_t screen_update_raiden(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ u32 screen_update_raiden(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
DECLARE_WRITE_LINE_MEMBER(vblank_irq);
- void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int pri_mask);
+ void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &primap);
void common_decrypt();
void main_map(address_map &map);
@@ -109,13 +109,13 @@ protected:
virtual void video_start() override;
private:
- uint16_t m_raidenb_scroll_ram[6];
+ u16 m_raidenb_scroll_ram[6];
- uint32_t screen_update_raidenb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ u32 screen_update_raidenb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- void raidenb_control_w(uint8_t data);
- void raidenb_layer_enable_w(uint16_t data);
- void raidenb_layer_scroll_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void raidenb_control_w(u8 data);
+ void raidenb_layer_enable_w(u16 data);
+ void raidenb_layer_scroll_w(offs_t offset, u16 data, u16 mem_mask = ~0);
void raidenb_main_map(address_map &map);
};
diff --git a/src/mame/video/raiden.cpp b/src/mame/video/raiden.cpp
index fb0a1aa9176..f87ad823d28 100644
--- a/src/mame/video/raiden.cpp
+++ b/src/mame/video/raiden.cpp
@@ -10,30 +10,31 @@
#include "emu.h"
#include "includes/raiden.h"
+#include "screen.h"
/******************************************************************************/
-void raiden_state::raiden_background_w(offs_t offset, uint16_t data, uint16_t mem_mask)
+void raiden_state::bgram_w(offs_t offset, u16 data, u16 mem_mask)
{
- COMBINE_DATA(&m_back_data[offset]);
+ COMBINE_DATA(&m_bgram[offset]);
m_bg_layer->mark_tile_dirty(offset);
}
-void raiden_state::raiden_foreground_w(offs_t offset, uint16_t data, uint16_t mem_mask)
+void raiden_state::fgram_w(offs_t offset, u16 data, u16 mem_mask)
{
- COMBINE_DATA(&m_fore_data[offset]);
+ COMBINE_DATA(&m_fgram[offset]);
m_fg_layer->mark_tile_dirty(offset);
}
-void raiden_state::raiden_text_w(offs_t offset, uint16_t data, uint16_t mem_mask)
+void raiden_state::textram_w(offs_t offset, u16 data, u16 mem_mask)
{
- COMBINE_DATA(&m_videoram[offset]);
+ COMBINE_DATA(&m_textram[offset]);
m_tx_layer->mark_tile_dirty(offset);
}
-void raiden_state::raiden_control_w(uint8_t data)
+void raiden_state::raiden_control_w(u8 data)
{
// d0: back layer disable
// d1: fore layer disable
@@ -43,50 +44,51 @@ void raiden_state::raiden_control_w(uint8_t data)
// d5: unused
// d6: flipscreen
// d7: toggles, maybe spriteram bank? (for buffering)
- m_bg_layer_enabled = ~data & 0x01;
- m_fg_layer_enabled = ~data & 0x02;
- m_tx_layer_enabled = ~data & 0x04;
- m_sp_layer_enabled = ~data & 0x08;
+ m_bg_layer_enabled = BIT(~data, 0);
+ m_fg_layer_enabled = BIT(~data, 1);
+ m_tx_layer_enabled = BIT(~data, 2);
+ m_sp_layer_enabled = BIT(~data, 3);
- m_flipscreen = data & 0x40;
+ m_flipscreen = BIT(data, 6);
machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
}
-void raidenb_state::raidenb_control_w(uint8_t data)
+void raidenb_state::raidenb_control_w(u8 data)
{
// d1: flipscreen
// d2: toggles, maybe spriteram bank? (for buffering)
// d3: text layer disable (i guess raidenb textlayer isn't part of sei_crtc?)
// other bits: unused
- m_tx_layer_enabled = ~data & 0x08;
+ m_tx_layer_enabled = BIT(~data, 3);
- m_flipscreen = data & 0x02;
+ m_flipscreen = BIT(data, 1);
machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
}
-void raidenb_state::raidenb_layer_enable_w(uint16_t data)
+void raidenb_state::raidenb_layer_enable_w(u16 data)
{
// d0: back layer disable
// d1: fore layer disable
// d4: sprite layer disable
// other bits: unused? (d2-d3 always set, d5-d7 always clear)
- m_bg_layer_enabled = ~data & 0x01;
- m_fg_layer_enabled = ~data & 0x02;
- m_sp_layer_enabled = ~data & 0x10;
+ m_bg_layer_enabled = BIT(~data, 0);
+ m_fg_layer_enabled = BIT(~data, 1);
+ m_sp_layer_enabled = BIT(~data, 4);
}
/******************************************************************************/
-void raiden_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int pri_mask)
+void raiden_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &primap)
{
if (!m_sp_layer_enabled)
return;
- uint16_t *sprites = m_spriteram->buffer();
+ u16 *sprites = m_spriteram->buffer();
+ const u32 size = m_spriteram->bytes() / 2;
gfx_element *gfx = m_gfxdecode->gfx(3);
- for (int offs = 0x1000/2-4; offs >= 0; offs -= 4)
+ for (int offs = 0; offs < size; offs += 4)
{
/*
Word #0
@@ -110,22 +112,35 @@ void raiden_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect,
Word #3 unused
*/
- if (!(sprites[offs + 0] & 0x8000))
+ if (!BIT(sprites[offs + 0], 15))
continue;
- int priority = sprites[offs + 2] >> 14 & 0x3;
- if ((priority & pri_mask) == 0)
+ const u8 priority = BIT(sprites[offs + 2], 14, 2);
+ if (priority == 0)
continue;
- int flipy = sprites[offs + 0] & 0x4000;
- int flipx = sprites[offs + 0] & 0x2000;
- int color = (sprites[offs + 0] & 0xf00) >> 8;
- int code = sprites[offs + 1] & 0xfff;
+ u32 pri_mask = GFX_PMASK_4 | GFX_PMASK_2 | GFX_PMASK_1;
+ switch (priority)
+ {
+ case 1: // draw sprites underneath foreground
+ pri_mask = GFX_PMASK_4 | GFX_PMASK_2;
+ break;
+ case 2:
+ case 3: // rest of sprites, draw underneath text
+ default:
+ pri_mask = GFX_PMASK_4;
+ break;
+ }
+
+ bool flipy = BIT(sprites[offs + 0], 14);
+ bool flipx = BIT(sprites[offs + 0], 13);
+ const u32 color = BIT(sprites[offs + 0], 8, 4);
+ const u32 code = BIT(sprites[offs + 1], 0, 12);
- int y = sprites[offs + 0] & 0xff;
- int x = sprites[offs + 2] & 0xff;
- if (sprites[offs + 2] & 0x100)
- x = -(0x100 - x);
+ s32 y = BIT(sprites[offs + 0], 0, 8);
+ s32 x = BIT(sprites[offs + 2], 0, 9);
+ if (BIT(x, 8)) // sign bit
+ x |= ~0x1ff;
if (m_flipscreen)
{
@@ -135,11 +150,11 @@ void raiden_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect,
flipx = !flipx;
}
- gfx->transpen(bitmap,cliprect, code, color, flipx, flipy, x, y, 15);
+ gfx->prio_transpen(bitmap, cliprect, code, color, flipx, flipy, x, y, primap, pri_mask, 15);
}
}
-uint32_t raiden_state::screen_update_common(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, uint16_t *scrollregs)
+u32 raiden_state::screen_update_common(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, u16 *scrollregs)
{
// set tilemaps scroll
m_bg_layer->set_scrollx(0, scrollregs[0]);
@@ -147,30 +162,27 @@ uint32_t raiden_state::screen_update_common(screen_device &screen, bitmap_ind16
m_fg_layer->set_scrollx(0, scrollregs[2]);
m_fg_layer->set_scrolly(0, scrollregs[3]);
+ screen.priority().fill(0, cliprect);
bitmap.fill(m_palette->black_pen(), cliprect);
// back layer
if (m_bg_layer_enabled)
- m_bg_layer->draw(screen, bitmap, cliprect, 0, 0);
-
- // draw sprites underneath foreground
- draw_sprites(bitmap, cliprect, 1);
+ m_bg_layer->draw(screen, bitmap, cliprect, 0, 1);
// fore layer
if (m_fg_layer_enabled)
- m_fg_layer->draw(screen, bitmap, cliprect, 0, 0);
-
- // rest of sprites
- draw_sprites(bitmap, cliprect, 2);
+ m_fg_layer->draw(screen, bitmap, cliprect, 0, 2);
// text layer
if (m_tx_layer_enabled)
- m_tx_layer->draw(screen, bitmap, cliprect, 0, 0);
+ m_tx_layer->draw(screen, bitmap, cliprect, 0, 4);
+
+ draw_sprites(bitmap, cliprect, screen.priority());
return 0;
}
-uint32_t raiden_state::screen_update_raiden(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+u32 raiden_state::screen_update_raiden(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
// set up scrollregs
// scroll_ram is only 8 bits wide. 4 bytes per scroll, skip uneven ones
@@ -178,7 +190,7 @@ uint32_t raiden_state::screen_update_raiden(screen_device &screen, bitmap_ind16
// 08-0b: 28 *0 ** b9 - bg layer scroll x
// 10-13: 28 *0 ** ae - fg layer scroll y
// 18-1b: 28 *0 ** b9 - fg layer scroll x
- uint16_t scrollregs[4];
+ u16 scrollregs[4];
scrollregs[0] = ((m_scroll_ram[0x09] & 0xf0) << 4) | ((m_scroll_ram[0x0a] & 0x7f) << 1) | ((m_scroll_ram[0x0a] & 0x80) >> 7);
scrollregs[1] = ((m_scroll_ram[0x01] & 0xf0) << 4) | ((m_scroll_ram[0x02] & 0x7f) << 1) | ((m_scroll_ram[0x02] & 0x80) >> 7);
scrollregs[2] = ((m_scroll_ram[0x19] & 0xf0) << 4) | ((m_scroll_ram[0x1a] & 0x7f) << 1) | ((m_scroll_ram[0x1a] & 0x80) >> 7);
@@ -187,7 +199,7 @@ uint32_t raiden_state::screen_update_raiden(screen_device &screen, bitmap_ind16
return screen_update_common(screen, bitmap, cliprect, scrollregs);
}
-uint32_t raidenb_state::screen_update_raidenb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+u32 raidenb_state::screen_update_raidenb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return screen_update_common(screen, bitmap, cliprect, m_raidenb_scroll_ram);
}
@@ -197,27 +209,27 @@ uint32_t raidenb_state::screen_update_raidenb(screen_device &screen, bitmap_ind1
TILE_GET_INFO_MEMBER(raiden_state::get_back_tile_info)
{
- int tiledata = m_back_data[tile_index];
- int tile = tiledata & 0x0fff;
- int color = tiledata >> 12;
+ const u16 tiledata = m_bgram[tile_index];
+ const u32 tile = tiledata & 0x0fff;
+ const u32 color = tiledata >> 12;
tileinfo.set(1, tile, color, 0);
}
TILE_GET_INFO_MEMBER(raiden_state::get_fore_tile_info)
{
- int tiledata = m_fore_data[tile_index];
- int tile = tiledata & 0x0fff;
- int color = tiledata >> 12;
+ const u16 tiledata = m_fgram[tile_index];
+ const u32 tile = tiledata & 0x0fff;
+ const u32 color = tiledata >> 12;
tileinfo.set(2, tile, color, 0);
}
TILE_GET_INFO_MEMBER(raiden_state::get_text_tile_info)
{
- int tiledata = m_videoram[tile_index];
- int tile = (tiledata & 0xff) | ((tiledata >> 6) & 0x300);
- int color = (tiledata >> 8) & 0x0f;
+ const u16 tiledata = m_textram[tile_index];
+ const u32 tile = (tiledata & 0xff) | ((tiledata >> 6) & 0x300);
+ const u32 color = (tiledata >> 8) & 0x0f;
tileinfo.set(0, tile, color, 0);
}