diff --git a/src/mame/seibu/legionna.cpp b/src/mame/seibu/legionna.cpp index cf4d167270f1f..650fceecbb6f2 100644 --- a/src/mame/seibu/legionna.cpp +++ b/src/mame/seibu/legionna.cpp @@ -1700,7 +1700,7 @@ ROM_START( heatbrl ) ROM_REGION( 0x200, "proms", 0 ) /* Priority */ ROM_LOAD( "heat07.u0910", 0x000000, 0x000200, CRC(265eccc8) SHA1(cf650c69f97b887251b5079e5518497721692af3) ) /* N82S147N type BPROM */ - ROM_REGION( 0x080000, "user1", 0 ) /* SEI300 data rom */ + ROM_REGION( 0x080000, "copx", 0 ) /* SEI300 data rom */ ROM_LOAD( "copx-d2.u0339", 0x000000, 0x080000, CRC(7c52581b) SHA1(7e668476f886806b0c06fa0bcf4bbc955878c87c) ) /* not dumped from this PCB assumed to be the same */ ROM_END @@ -1739,7 +1739,7 @@ ROM_START( heatbrl2 ) ROM_REGION( 0x200, "proms", 0 ) /* Priority */ ROM_LOAD( "heat07.u0910", 0x000000, 0x000200, CRC(265eccc8) SHA1(cf650c69f97b887251b5079e5518497721692af3) ) /* N82S147N type BPROM */ - ROM_REGION( 0x080000, "user1", 0 ) /* SEI300 data rom */ + ROM_REGION( 0x080000, "copx", 0 ) /* SEI300 data rom */ ROM_LOAD( "copx-d2.u0339", 0x000000, 0x080000, CRC(7c52581b) SHA1(7e668476f886806b0c06fa0bcf4bbc955878c87c) ) /* not dumped from this PCB assumed to be the same */ ROM_END @@ -1778,7 +1778,7 @@ ROM_START( heatbrl3 ) // only the maincpu and audiocpu ROMs were provided for th ROM_REGION( 0x200, "proms", 0 ) /* Priority */ ROM_LOAD( "heat07.u0910", 0x000000, 0x000200, CRC(265eccc8) SHA1(cf650c69f97b887251b5079e5518497721692af3) ) /* N82S147N type BPROM */ - ROM_REGION( 0x080000, "user1", 0 ) /* SEI300 data rom */ + ROM_REGION( 0x080000, "copx", 0 ) /* SEI300 data rom */ ROM_LOAD( "copx-d2.u0339", 0x000000, 0x080000, CRC(7c52581b) SHA1(7e668476f886806b0c06fa0bcf4bbc955878c87c) ) /* not dumped from this PCB assumed to be the same */ ROM_END @@ -1822,7 +1822,7 @@ barrel1,2,3,4.BG */ ROM_REGION( 0x200, "proms", 0 ) /* Priority */ ROM_LOAD( "heat07.u0910", 0x000000, 0x000200, CRC(265eccc8) SHA1(cf650c69f97b887251b5079e5518497721692af3) ) /* N82S147N type BPROM */ - ROM_REGION( 0x080000, "user1", 0 ) /* SEI300 data rom */ + ROM_REGION( 0x080000, "copx", 0 ) /* SEI300 data rom */ ROM_LOAD( "copx-d2.u0339", 0x000000, 0x080000, CRC(7c52581b) SHA1(7e668476f886806b0c06fa0bcf4bbc955878c87c) ) /* not dumped from this PCB assumed to be the same */ ROM_END @@ -1861,7 +1861,7 @@ ROM_START( heatbrlu ) ROM_REGION( 0x200, "proms", 0 ) /* Priority */ ROM_LOAD( "heat07.u0910", 0x000000, 0x000200, CRC(265eccc8) SHA1(cf650c69f97b887251b5079e5518497721692af3) ) /* N82S147N type BPROM */ - ROM_REGION( 0x080000, "user1", 0 ) /* SEI300 data rom */ + ROM_REGION( 0x080000, "copx", 0 ) /* SEI300 data rom */ ROM_LOAD( "copx-d2.u0339", 0x000000, 0x080000, CRC(7c52581b) SHA1(7e668476f886806b0c06fa0bcf4bbc955878c87c) ) /* not dumped from this PCB assumed to be the same */ ROM_END @@ -1904,7 +1904,7 @@ ROM_START( heatbrle ) ROM_REGION( 0x200, "proms", 0 ) /* Priority */ ROM_LOAD( "heat07.u0910", 0x000000, 0x000200, CRC(265eccc8) SHA1(cf650c69f97b887251b5079e5518497721692af3) ) /* N82S147N type BPROM */ - ROM_REGION( 0x080000, "user1", 0 ) /* SEI300 data rom */ + ROM_REGION( 0x080000, "copx", 0 ) /* SEI300 data rom */ ROM_LOAD( "copx-d2.u0339", 0x000000, 0x080000, CRC(7c52581b) SHA1(7e668476f886806b0c06fa0bcf4bbc955878c87c) ) /* not dumped from this PCB assumed to be the same */ ROM_END @@ -1993,7 +1993,7 @@ ROM_START( godzilla ) ROM_REGION( 0x200, "proms", 0 ) ROM_LOAD( "s68e08.844", 0x000000, 0x000200, CRC(96f7646e) SHA1(400a831b83d6ac4d2a46ef95b97b1ee237099e44) ) /* Priority */ - ROM_REGION( 0x080000, "user1", 0 ) + ROM_REGION( 0x080000, "copx", 0 ) ROM_LOAD( "copx-d2.313", 0x000000, 0x080000, CRC(7c52581b) SHA1(7e668476f886806b0c06fa0bcf4bbc955878c87c) ) ROM_END @@ -2042,7 +2042,7 @@ ROM_START( denjinmk ) ROM_REGION( 0x200, "proms", 0 ) ROM_LOAD( "s68e08.844", 0x000000, 0x000200, CRC(96f7646e) SHA1(400a831b83d6ac4d2a46ef95b97b1ee237099e44) ) /* Priority */ - ROM_REGION( 0x080000, "user1", 0 ) + ROM_REGION( 0x080000, "copx", 0 ) ROM_LOAD( "copx-d2.313", 0x000000, 0x080000, CRC(7c52581b) SHA1(7e668476f886806b0c06fa0bcf4bbc955878c87c) ) ROM_END @@ -2157,7 +2157,7 @@ ROM_START( denjinmka ) ROM_REGION( 0x200, "proms", 0 ) ROM_LOAD( "s68e08.844", 0x000000, 0x000200, CRC(96f7646e) SHA1(400a831b83d6ac4d2a46ef95b97b1ee237099e44) ) /* Priority */ - ROM_REGION( 0x080000, "user1", 0 ) + ROM_REGION( 0x080000, "copx", 0 ) ROM_LOAD( "copx-d2.313", 0x000000, 0x080000, CRC(7c52581b) SHA1(7e668476f886806b0c06fa0bcf4bbc955878c87c) ) ROM_END @@ -2308,7 +2308,7 @@ ROM_START( cupsoc ) ROM_REGION( 0x040000, "oki", 0 ) /* ADPCM samples */ ROM_LOAD( "seibu8.7a", 0x000000, 0x040000, CRC(6f594808) SHA1(218aa12068aa587c7656355f6a6b86d97c868774) ) - ROM_REGION( 0x080000, "user1", 0 ) + ROM_REGION( 0x080000, "copx", 0 ) ROM_LOAD( "copx-d1.bin", 0x000000, 0x080000, CRC(029bc402) SHA1(0f64e4c32d95abfa3920b39ed3cf0cc6eb50191b) ) ROM_REGION( 0x200, "proms", 0 ) @@ -2343,7 +2343,7 @@ ROM_START( cupsoca ) ROM_REGION( 0x040000, "oki", 0 ) /* ADPCM samples */ ROM_LOAD( "seibu8.7a", 0x000000, 0x040000, CRC(6f594808) SHA1(218aa12068aa587c7656355f6a6b86d97c868774) ) - ROM_REGION( 0x080000, "user1", 0 ) + ROM_REGION( 0x080000, "copx", 0 ) ROM_LOAD( "copx-d1.bin", 0x000000, 0x080000, CRC(029bc402) SHA1(0f64e4c32d95abfa3920b39ed3cf0cc6eb50191b) ) ROM_REGION( 0x200, "proms", 0 ) @@ -2378,7 +2378,7 @@ ROM_START( cupsocb ) ROM_REGION( 0x040000, "oki", 0 ) /* ADPCM samples */ ROM_LOAD( "seibu8.7a", 0x000000, 0x040000, CRC(6f594808) SHA1(218aa12068aa587c7656355f6a6b86d97c868774) ) - ROM_REGION( 0x080000, "user1", 0 ) + ROM_REGION( 0x080000, "copx", 0 ) ROM_LOAD( "copx-d1.bin", 0x000000, 0x080000, CRC(029bc402) SHA1(0f64e4c32d95abfa3920b39ed3cf0cc6eb50191b) ) ROM_REGION( 0x200, "proms", 0 ) @@ -2413,7 +2413,7 @@ ROM_START( cupsocs ) ROM_REGION( 0x040000, "oki", 0 ) /* ADPCM samples */ ROM_LOAD( "8_7a.bin", 0x000000, 0x040000, CRC(6f594808) SHA1(218aa12068aa587c7656355f6a6b86d97c868774) ) - ROM_REGION( 0x080000, "user1", 0 ) + ROM_REGION( 0x080000, "copx", 0 ) ROM_LOAD( "copx-d1.bin", 0x000000, 0x080000, CRC(029bc402) SHA1(0f64e4c32d95abfa3920b39ed3cf0cc6eb50191b) ) ROM_REGION( 0x200, "proms", 0 ) @@ -2450,7 +2450,7 @@ ROM_START( cupsocs2 ) ROM_REGION( 0x040000, "oki", 0 ) /* ADPCM samples */ ROM_LOAD( "seibu8.7a", 0x000000, 0x040000, CRC(6f594808) SHA1(218aa12068aa587c7656355f6a6b86d97c868774) ) - ROM_REGION( 0x080000, "user1", 0 ) + ROM_REGION( 0x080000, "copx", 0 ) ROM_LOAD( "copx-d1.bin", 0x000000, 0x080000, CRC(029bc402) SHA1(0f64e4c32d95abfa3920b39ed3cf0cc6eb50191b) ) ROM_REGION( 0x200, "proms", 0 ) @@ -2485,7 +2485,7 @@ ROM_START( olysoc92 ) ROM_REGION( 0x040000, "oki", 0 ) /* ADPCM samples */ ROM_LOAD( "seibu8.7a", 0x000000, 0x040000, CRC(6f594808) SHA1(218aa12068aa587c7656355f6a6b86d97c868774) ) - ROM_REGION( 0x080000, "user1", 0 ) + ROM_REGION( 0x080000, "copx", 0 ) ROM_LOAD( "copx-d1.bin", 0x000000, 0x080000, CRC(029bc402) SHA1(0f64e4c32d95abfa3920b39ed3cf0cc6eb50191b) ) ROM_REGION( 0x200, "proms", 0 ) @@ -2520,7 +2520,7 @@ ROM_START( olysoc92a ) ROM_REGION( 0x040000, "oki", 0 ) /* ADPCM samples */ ROM_LOAD( "seibu8.7a", 0x000000, 0x040000, CRC(6f594808) SHA1(218aa12068aa587c7656355f6a6b86d97c868774) ) - ROM_REGION( 0x080000, "user1", 0 ) + ROM_REGION( 0x080000, "copx", 0 ) ROM_LOAD( "copx-d1.bin", 0x000000, 0x080000, CRC(029bc402) SHA1(0f64e4c32d95abfa3920b39ed3cf0cc6eb50191b) ) ROM_REGION( 0x200, "proms", 0 ) @@ -2556,7 +2556,7 @@ ROM_START( olysoc92b ) ROM_REGION( 0x040000, "oki", 0 ) /* ADPCM samples */ ROM_LOAD( "8", 0x000000, 0x040000, CRC(6f594808) SHA1(218aa12068aa587c7656355f6a6b86d97c868774) ) - ROM_REGION( 0x080000, "user1", 0 ) + ROM_REGION( 0x080000, "copx", 0 ) ROM_LOAD( "copx-d1.bin", 0x000000, 0x080000, CRC(029bc402) SHA1(0f64e4c32d95abfa3920b39ed3cf0cc6eb50191b) ) ROM_REGION( 0x200, "proms", 0 ) diff --git a/src/mame/seibu/r2crypt.cpp b/src/mame/seibu/r2crypt.cpp index 23f434c8fa731..b6149b33fa8ed 100644 --- a/src/mame/seibu/r2crypt.cpp +++ b/src/mame/seibu/r2crypt.cpp @@ -3,8 +3,7 @@ /* Raiden 2 Sprite Decryption */ #include "emu.h" -#include "raiden2.h" -#include "seibuspi_m.h" +#include "seibu_helper.h" /* @@ -193,12 +192,12 @@ static const uint16_t x11_zt[512] = { static uint16_t gm(int i4) { - uint16_t x=0; + uint16_t x = 0; - for (int i=0; i<4; ++i) + for (int i = 0; i < 4; ++i) { - if (BIT(i4,i)) - x ^= 0xf << (i<<2); + if (BIT(i4, i)) + x ^= 0xf << (i << 2); } return x; @@ -207,24 +206,23 @@ static uint16_t gm(int i4) static uint32_t core_decrypt(uint32_t ciphertext, int i1, int i2, int i3, int i4, const uint8_t *rotate, const uint8_t *x5, const uint16_t *x11, uint32_t preXor, uint32_t carryMask, uint32_t postXor) { - uint32_t v1 = bitswap<32>(rotl_32(ciphertext, rotate[i1]), 25,28,15,19, 6,0,3,24, 11,1,2,30, 16,7,22,17, 31,14,23,9, 27,18,4,10, 13,20,5,12, 8,29,26,21); + const uint32_t v1 = bitswap<32>(rotl_32(ciphertext, rotate[i1]), 25,28,15,19, 6,0,3,24, 11,1,2,30, 16,7,22,17, 31,14,23,9, 27,18,4,10, 13,20,5,12, 8,29,26,21); - uint16_t x1Low = (x5[i2]<<11) ^ x11[i3] ^ gm(i4); - uint32_t x1 = x1Low | (bitswap<16>(x1Low, 0,8,1,9, 2,10,3,11, 4,12,5,13, 6,14,7,15)<<16); + const uint16_t x1Low = (x5[i2]<<11) ^ x11[i3] ^ gm(i4); + const uint32_t x1 = x1Low | (bitswap<16>(x1Low, 0,8,1,9, 2,10,3,11, 4,12,5,13, 6,14,7,15)<<16); - return partial_carry_sum32(v1, x1^preXor, carryMask) ^ postXor; + return partial_carry_sum32(v1, x1 ^ preXor, carryMask) ^ postXor; } -void raiden2_decrypt_sprites(running_machine &machine) +void raiden2_decrypt_sprites(uint32_t *data, uint32_t size) { - uint32_t *data = (uint32_t *)machine.root_device().memregion("gfx3")->base(); - for(int i=0; i<0x800000/4; i++) + for (uint32_t i = 0; i < size; i++) { data[i] = core_decrypt(data[i], - (i&0xff) ^ BIT(i,15) ^ (BIT(i,20)<<8), - (i&0xff) ^ BIT(i,15), - (i>>8) & 0xff, - (i>>16) & 0xf, + (i & 0xff) ^ BIT(i, 15) ^ (BIT(i, 20) << 8), + (i & 0xff) ^ BIT(i, 15), + (i >> 8) & 0xff, + (i >> 16) & 0xf, rotate_r2, x5_r2, x11_r2, @@ -235,16 +233,15 @@ void raiden2_decrypt_sprites(running_machine &machine) } } -void zeroteam_decrypt_sprites(running_machine &machine) +void zeroteam_decrypt_sprites(uint32_t *data, uint32_t size) { - uint32_t *data = (uint32_t *)machine.root_device().memregion("gfx3")->base(); - for(int i=0; i<0x400000/4; i++) + for (uint32_t i = 0; i < size; i++) { data[i] = core_decrypt(data[i], i & 0xff, i & 0xff, - (i>>7) & 0x1ff, - (i>>16) & 0xf, + (i >> 7) & 0x1ff, + (i >> 16) & 0xf, rotate_zt, x5_zt, x11_zt, diff --git a/src/mame/seibu/r2crypt.h b/src/mame/seibu/r2crypt.h index 8e2957a76e922..0d37c9b44689b 100644 --- a/src/mame/seibu/r2crypt.h +++ b/src/mame/seibu/r2crypt.h @@ -1,7 +1,5 @@ // license:LGPL-2.1+ // copyright-holders:Olivier Galibert, Angelo Salese, David Haywood, Tomasz Slanina -#include "seibuspi_m.h" - -void raiden2_decrypt_sprites(running_machine &machine); -void zeroteam_decrypt_sprites(running_machine &machine); +void raiden2_decrypt_sprites(uint32_t *data, uint32_t size); +void zeroteam_decrypt_sprites(uint32_t *data, uint32_t size); diff --git a/src/mame/seibu/r2dx_v33.cpp b/src/mame/seibu/r2dx_v33.cpp index 831ea5fead727..740b1a7da5784 100644 --- a/src/mame/seibu/r2dx_v33.cpp +++ b/src/mame/seibu/r2dx_v33.cpp @@ -65,40 +65,45 @@ Then it puts settings at 0x9e08 and 0x9e0a (bp 91acb) #include "emu.h" #include "raiden2.h" +#include "r2crypt.h" + #include "cpu/nec/nec.h" #include "cpu/z80/z80.h" #include "machine/eepromser.h" #include "sound/okim6295.h" #include "sound/ymopl.h" -#include "r2crypt.h" #include "speaker.h" +#define LOG_MCU (1 << 1) +#define LOG_BANK (1 << 2) +#define LOG_EEPROM (1 << 3) + +#define VERBOSE (0) + +#include "logmacro.h" + + namespace { -class r2dx_v33_state : public raiden2_state +// base state +class nzeroteam_state : public raiden2_state { public: - r2dx_v33_state(const machine_config &mconfig, device_type type, const char *tag) : + nzeroteam_state(const machine_config &mconfig, device_type type, const char *tag) : raiden2_state(mconfig, type, tag), - m_r2dxbank(0), - m_r2dxgameselect(0), - m_eeprom(*this, "eeprom"), - m_math(*this, "math"), - m_okibank(*this, "okibank") + m_math(*this, "math") { } - void nzerotea(machine_config &config); - void rdx_v33(machine_config &config); - void zerotm2k(machine_config &config); + void nzerotea(machine_config &config) ATTR_COLD; - void init_rdx_v33(); - void init_nzerotea(); - void init_zerotm2k(); + void init_nzerotea() ATTR_COLD; -private: +protected: + virtual void machine_start() override ATTR_COLD; + virtual void machine_reset() override ATTR_COLD; void angle_w(offs_t offset, u16 data, u16 mem_mask); void dx_w(offs_t offset, u16 data, u16 mem_mask); @@ -110,7 +115,6 @@ class r2dx_v33_state : public raiden2_state u16 sin_r(); u16 cos_r(); - void tile_bank_w(u8 data); [[maybe_unused]] u16 rdx_v33_unknown_r(); [[maybe_unused]] void mcu_xval_w(u16 data); [[maybe_unused]] void mcu_yval_w(u16 data); @@ -119,49 +123,88 @@ class r2dx_v33_state : public raiden2_state void mcu_prog_w(u16 data); void mcu_prog_w2(u16 data); void mcu_prog_offs_w(u16 data); - void rdx_v33_eeprom_w(u8 data); - void zerotm2k_eeprom_w(u16 data); - void r2dx_rom_bank_w(u16 data); void tilemapdma_w(address_space &space, u16 data); void paldma_w(address_space &space, u16 data); - u16 r2dx_debug_r(); - - DECLARE_MACHINE_RESET(r2dx_v33); - DECLARE_MACHINE_RESET(nzeroteam); void nzerotea_map(address_map &map) ATTR_COLD; void nzeroteam_base_map(address_map &map) ATTR_COLD; - void r2dx_oki_map(address_map &map) ATTR_COLD; - void rdx_v33_map(address_map &map) ATTR_COLD; + + u16 m_dx = 0, m_dy = 0, m_angle = 0; + u32 m_sdist = 0; + u16 m_mcu_prog[0x800]{}; + u16 m_mcu_prog_offs = 0; + u16 m_mcu_xval = 0, m_mcu_yval = 0; + u16 m_mcu_data[9]{}; + + required_region_ptr m_math; +}; + +// with EEPROM +class nzeroteam_eeprom_state : public nzeroteam_state +{ +public: + nzeroteam_eeprom_state(const machine_config &mconfig, device_type type, const char *tag) : + nzeroteam_state(mconfig, type, tag), + m_eeprom(*this, "eeprom") + { + } + + void zerotm2k(machine_config &config) ATTR_COLD; + + void init_zerotm2k() ATTR_COLD; + +protected: + void zerotm2k_eeprom_w(u16 data); + void zerotm2k_map(address_map &map) ATTR_COLD; + required_device m_eeprom; +}; + +// with bankswitching, weaker sound hardware +class r2dx_v33_state : public nzeroteam_eeprom_state +{ +public: + r2dx_v33_state(const machine_config &mconfig, device_type type, const char *tag) : + nzeroteam_eeprom_state(mconfig, type, tag), + m_r2dxbank(0), + m_r2dxgameselect(0), + m_gamebank(*this, "gamebank"), + m_okibank(*this, "okibank") + { + } + + void rdx_v33(machine_config &config) ATTR_COLD; + + void init_rdx_v33() ATTR_COLD; + +protected: virtual void machine_start() override ATTR_COLD; + virtual void machine_reset() override ATTR_COLD; - void r2dx_setbanking(); +private: + void tile_bank_w(u8 data); + void rdx_v33_eeprom_w(u8 data); + void r2dx_rom_bank_w(u16 data); + u16 r2dx_debug_r(); - int m_r2dxbank; - int m_r2dxgameselect; + void r2dx_oki_map(address_map &map) ATTR_COLD; + void rdx_v33_map(address_map &map) ATTR_COLD; - u16 m_dx, m_dy, m_angle; - u32 m_sdist; - u16 m_mcu_prog[0x800]; - int m_mcu_prog_offs; - u16 m_mcu_xval, m_mcu_yval; - u16 m_mcu_data[9]; + void r2dx_setbanking(); - optional_device m_eeprom; - required_region_ptr m_math; + u8 m_r2dxbank; + u8 m_r2dxgameselect; - optional_memory_bank m_okibank; + required_memory_bank m_gamebank; + required_memory_bank m_okibank; }; -void r2dx_v33_state::machine_start() +void nzeroteam_state::machine_start() { common_save_state(); - save_item(NAME(m_r2dxbank)); - save_item(NAME(m_r2dxgameselect)); save_item(NAME(m_dx)); save_item(NAME(m_dy)); save_item(NAME(m_angle)); @@ -173,17 +216,25 @@ void r2dx_v33_state::machine_start() save_item(NAME(m_mcu_data)); } +void r2dx_v33_state::machine_start() +{ + nzeroteam_state::machine_start(); + + save_item(NAME(m_r2dxbank)); + save_item(NAME(m_r2dxgameselect)); +} + void r2dx_v33_state::tile_bank_w(u8 data) { int new_bank; - new_bank = ((data & 0x10)>>4); + new_bank = BIT(data, 4); if (new_bank != m_bg_bank) { m_bg_bank = new_bank; m_background_layer->mark_all_dirty(); } - new_bank = 2 + ((data & 0x20)>>5); + new_bank = 2 + BIT(data, 5); if (new_bank != m_mid_bank) { m_mid_bank = new_bank; @@ -200,41 +251,44 @@ void r2dx_v33_state::tile_bank_w(u8 data) void r2dx_v33_state::r2dx_setbanking() { - m_mainbank[0]->set_entry(m_r2dxgameselect*0x10 + m_r2dxbank); - m_mainbank[1]->set_entry(m_r2dxgameselect); + m_mainbank->set_entry((m_r2dxgameselect << 4) | m_r2dxbank); + m_gamebank->set_entry(m_r2dxgameselect); } void r2dx_v33_state::rdx_v33_eeprom_w(u8 data) { - m_eeprom->clk_write((data & 0x10) ? ASSERT_LINE : CLEAR_LINE); - m_eeprom->di_write((data & 0x20) >> 5); - m_eeprom->cs_write((data & 0x08) ? ASSERT_LINE : CLEAR_LINE); + m_eeprom->clk_write(BIT(data, 4) ? ASSERT_LINE : CLEAR_LINE); + m_eeprom->di_write(BIT(data, 5)); + m_eeprom->cs_write(BIT(data, 3) ? ASSERT_LINE : CLEAR_LINE); // 0x40 - coin counter 1? // 0x80 - coin counter 2? // 0x04 is active in Raiden DX mode, it could be part of the rom bank (which half of the rom to use) or the FG tile bank (or both?) // the bit gets set if it reads RAIDENDX from the EEPROM - m_r2dxgameselect = (data & 0x04) >> 2; + m_r2dxgameselect = BIT(data, 2); - m_tx_bank = m_r2dxgameselect; - m_text_layer->mark_all_dirty(); + if (m_tx_bank != m_r2dxgameselect) + { + m_tx_bank = m_r2dxgameselect; + m_text_layer->mark_all_dirty(); + } r2dx_setbanking(); - m_okibank->set_entry(data&3); + m_okibank->set_entry(data & 3); } /* new zero team uses the copd3 protection... and uploads a 0x400 byte table, probably the mcu code, encrypted */ -void r2dx_v33_state::mcu_prog_w(u16 data) +void nzeroteam_state::mcu_prog_w(u16 data) { - m_mcu_prog[m_mcu_prog_offs*2] = data; + m_mcu_prog[m_mcu_prog_offs * 2] = data; } -void r2dx_v33_state::mcu_prog_w2(u16 data) +void nzeroteam_state::mcu_prog_w2(u16 data) { - m_mcu_prog[m_mcu_prog_offs*2+1] = data; + m_mcu_prog[m_mcu_prog_offs * 2 + 1] = data; // both new zero team and raiden2/dx v33 version upload the same table.. #if 0 @@ -253,125 +307,122 @@ void r2dx_v33_state::mcu_prog_w2(u16 data) #endif } -void r2dx_v33_state::mcu_prog_offs_w(u16 data) +void nzeroteam_state::mcu_prog_offs_w(u16 data) { m_mcu_prog_offs = data; } -u16 r2dx_v33_state::rdx_v33_unknown_r() +u16 nzeroteam_state::rdx_v33_unknown_r() { return machine().rand(); } /* something sent to the MCU for X/Y global screen calculating ... */ -void r2dx_v33_state::mcu_xval_w(u16 data) +void nzeroteam_state::mcu_xval_w(u16 data) { m_mcu_xval = data; - //popmessage("%04x %04x",m_mcu_xval,m_mcu_yval); + //popmessage("%04x %04x", m_mcu_xval, m_mcu_yval); } -void r2dx_v33_state::mcu_yval_w(u16 data) +void nzeroteam_state::mcu_yval_w(u16 data) { m_mcu_yval = data; - //popmessage("%04x %04x",m_mcu_xval,m_mcu_yval); + //popmessage("%04x %04x", m_mcu_xval, m_mcu_yval); } /* 0x400-0x407 seems some DMA hook-up, 0x420-0x427 looks like some x/y sprite calculation routine */ -void r2dx_v33_state::mcu_table_w(offs_t offset, u16 data) +void nzeroteam_state::mcu_table_w(offs_t offset, u16 data) { m_mcu_data[offset] = data; - //popmessage("%04x %04x %04x %04x | %04x %04x %04x %04x",m_mcu_data[0/2],m_mcu_data[2/2],m_mcu_data[4/2],m_mcu_data[6/2],m_mcu_data[8/2],m_mcu_data[0xa/2],m_mcu_data[0xc/2],m_mcu_data[0xe/2]); + //popmessage("%04x %04x %04x %04x | %04x %04x %04x %04x", m_mcu_data[0/2], m_mcu_data[2/2], m_mcu_data[4/2], m_mcu_data[6/2], m_mcu_data[8/2], m_mcu_data[0xa/2], m_mcu_data[0xc/2], m_mcu_data[0xe/2]); } -void r2dx_v33_state::mcu_table2_w(offs_t offset, u16 data) +void nzeroteam_state::mcu_table2_w(offs_t offset, u16 data) { -// printf("mcu_table2_w %04x\n", data); + LOGMASKED(LOG_MCU, "%s: mcu_table2_w %04x = %04x\n", machine().describe_context(), offset, data); - m_mcu_data[offset+4] = data; + m_mcu_data[offset + 4] = data; - //popmessage("%04x %04x %04x %04x | %04x %04x %04x %04x",m_mcu_data[0/2],m_mcu_data[2/2],m_mcu_data[4/2],m_mcu_data[6/2],m_mcu_data[8/2],m_mcu_data[0xa/2],m_mcu_data[0xc/2],m_mcu_data[0xe/2]); + //popmessage("%04x %04x %04x %04x | %04x %04x %04x %04x",m_mcu_data[0/2], m_mcu_data[2/2], m_mcu_data[4/2], m_mcu_data[6/2], m_mcu_data[8/2], m_mcu_data[0xa/2], m_mcu_data[0xc/2], m_mcu_data[0xe/2]); } void r2dx_v33_state::r2dx_rom_bank_w(u16 data) { - //printf("rom bank %04x\n", data); + LOGMASKED(LOG_BANK, "%s: rom bank %04x\n", machine().describe_context(), data); m_r2dxbank = data & 0xf; r2dx_setbanking(); - } -void r2dx_v33_state::angle_w(offs_t offset, u16 data, u16 mem_mask) +void nzeroteam_state::angle_w(offs_t offset, u16 data, u16 mem_mask) { COMBINE_DATA(&m_angle); } -void r2dx_v33_state::dx_w(offs_t offset, u16 data, u16 mem_mask) +void nzeroteam_state::dx_w(offs_t offset, u16 data, u16 mem_mask) { COMBINE_DATA(&m_dx); } -void r2dx_v33_state::dy_w(offs_t offset, u16 data, u16 mem_mask) +void nzeroteam_state::dy_w(offs_t offset, u16 data, u16 mem_mask) { COMBINE_DATA(&m_dy); } -u16 r2dx_v33_state::angle_r() +u16 nzeroteam_state::angle_r() { return m_math[((m_dy & 0xff) << 8) | (m_dx & 0xff)]; } -u16 r2dx_v33_state::dist_r() +u16 nzeroteam_state::dist_r() { return sqrt(double(m_sdist)); } -u16 r2dx_v33_state::sin_r() +u16 nzeroteam_state::sin_r() { - int off = 65536 + (m_angle & 0xff)*4; - return (m_math[off+0]) | (m_math[off+1] << 8); + const int off = 0x10000 + (m_angle & 0xff) * 4; + return (m_math[off + 0]) | (m_math[off + 1] << 8); } -u16 r2dx_v33_state::cos_r() +u16 nzeroteam_state::cos_r() { - int off = 65536 + (m_angle & 0xff)*4; - return (m_math[off+2]) | (m_math[off+3] << 8); + const int off = 0x10000 + (m_angle & 0xff) * 4; + return (m_math[off + 2]) | (m_math[off+3] << 8); } -void r2dx_v33_state::sdistl_w(offs_t offset, u16 data, u16 mem_mask) +void nzeroteam_state::sdistl_w(offs_t offset, u16 data, u16 mem_mask) { m_sdist = (m_sdist & (0xffff0000 | u16(~mem_mask))) | (data & mem_mask); } -void r2dx_v33_state::sdisth_w(offs_t offset, u16 data, u16 mem_mask) +void nzeroteam_state::sdisth_w(offs_t offset, u16 data, u16 mem_mask) { m_sdist = (m_sdist & (0x0000ffff | (u16(~mem_mask)) << 16)) | ((data & mem_mask) << 16); } // these DMA operations seem to use hardcoded addresses on this hardware -void r2dx_v33_state::tilemapdma_w(address_space &space, u16 data) +void nzeroteam_state::tilemapdma_w(address_space &space, u16 data) { int src = 0xd000; for (int i = 0; i < 0x2800 / 2; i++) { - u16 tileval = space.read_word(src); + m_videoram_private_w(i, space.read_word(src)); src += 2; - m_videoram_private_w(i, tileval); } } -void r2dx_v33_state::paldma_w(address_space &space, u16 data) +void nzeroteam_state::paldma_w(address_space &space, u16 data) { int src = 0x1f000; for (int i = 0; i < 0x1000 / 2; i++) { - u16 palval = space.read_word(src); + m_palette->write16(i, space.read_word(src)); src += 2; - m_palette->write16(i, palval); } } @@ -442,47 +493,47 @@ void r2dx_v33_state::rdx_v33_map(address_map &map) map(0x10000, 0x1efff).ram(); map(0x1f000, 0x1ffff).ram(); //.w(m_palette, FUNC(palette_device::write16)).share("palette"); - map(0x20000, 0x2ffff).bankr("mainbank1").nopw(); - map(0x30000, 0xfffff).bankr("mainbank2").nopw(); + map(0x20000, 0x2ffff).bankr(m_mainbank).nopw(); + map(0x30000, 0xfffff).bankr(m_gamebank).nopw(); } -void r2dx_v33_state::nzeroteam_base_map(address_map &map) +void nzeroteam_state::nzeroteam_base_map(address_map &map) { map(0x00000, 0x003ff).ram(); //stack area - map(0x00400, 0x00401).w(FUNC(r2dx_v33_state::tilemapdma_w)); // tilemaps to private buffer - map(0x00402, 0x00403).w(FUNC(r2dx_v33_state::paldma_w)); // palettes to private buffer + map(0x00400, 0x00401).w(FUNC(nzeroteam_state::tilemapdma_w)); // tilemaps to private buffer + map(0x00402, 0x00403).w(FUNC(nzeroteam_state::paldma_w)); // palettes to private buffer // 0x404 is bank on r2dx, this doesn't need it - // map(0x00406, 0x00406).w(FUNC(r2dx_v33_state::tile_bank_w)); // not the same? + // map(0x00406, 0x00406).w(FUNC(nzeroteam_state::tile_bank_w)); // not the same? map(0x00406, 0x00407).noprw(); // always 6022, supposed to be the tile bank but ignores the actual value??? - map(0x00420, 0x00421).w(FUNC(r2dx_v33_state::dx_w)); - map(0x00422, 0x00423).w(FUNC(r2dx_v33_state::dy_w)); - map(0x00424, 0x00425).w(FUNC(r2dx_v33_state::sdistl_w)); - map(0x00426, 0x00427).w(FUNC(r2dx_v33_state::sdisth_w)); - map(0x00428, 0x00429).w(FUNC(r2dx_v33_state::angle_w)); + map(0x00420, 0x00421).w(FUNC(nzeroteam_state::dx_w)); + map(0x00422, 0x00423).w(FUNC(nzeroteam_state::dy_w)); + map(0x00424, 0x00425).w(FUNC(nzeroteam_state::sdistl_w)); + map(0x00426, 0x00427).w(FUNC(nzeroteam_state::sdisth_w)); + map(0x00428, 0x00429).w(FUNC(nzeroteam_state::angle_w)); - map(0x00430, 0x00431).r(FUNC(r2dx_v33_state::angle_r)); - map(0x00432, 0x00433).r(FUNC(r2dx_v33_state::dist_r)); - map(0x00434, 0x00435).r(FUNC(r2dx_v33_state::sin_r)); - map(0x00436, 0x00437).r(FUNC(r2dx_v33_state::cos_r)); + map(0x00430, 0x00431).r(FUNC(nzeroteam_state::angle_r)); + map(0x00432, 0x00433).r(FUNC(nzeroteam_state::dist_r)); + map(0x00434, 0x00435).r(FUNC(nzeroteam_state::sin_r)); + map(0x00436, 0x00437).r(FUNC(nzeroteam_state::cos_r)); map(0x00600, 0x0063f).rw("crtc", FUNC(seibu_crtc_device::read), FUNC(seibu_crtc_device::write)); //map(0x00640, 0x006bf)rw("obj", FUNC(seibu_encrypted_sprite_device::read), FUNC(seibu_encrypted_sprite_device::write)); map(0x0068e, 0x0068f).w(m_spriteram, FUNC(buffered_spriteram16_device::write)); - map(0x006b0, 0x006b1).w(FUNC(r2dx_v33_state::mcu_prog_w)); - map(0x006b2, 0x006b3).w(FUNC(r2dx_v33_state::mcu_prog_w2)); + map(0x006b0, 0x006b1).w(FUNC(nzeroteam_state::mcu_prog_w)); + map(0x006b2, 0x006b3).w(FUNC(nzeroteam_state::mcu_prog_w2)); // map(0x006b4, 0x006b5).nopw(); // map(0x006b6, 0x006b7).nopw(); - map(0x006bc, 0x006bd).w(FUNC(r2dx_v33_state::mcu_prog_offs_w)); -// map(0x006d8, 0x006d9).w(FUNC(r2dx_v33_state::bbbbll_w)); // scroll? -// map(0x006dc, 0x006dd).r(FUNC(r2dx_v33_state::nzerotea_unknown_r)); -// map(0x006de, 0x006df).w(FUNC(r2dx_v33_state::mcu_unkaa_w)); // mcu command related? -// map(0x00700, 0x00700).w(FUNC(r2dx_v33_state::rdx_v33_eeprom_w)); + map(0x006bc, 0x006bd).w(FUNC(nzeroteam_state::mcu_prog_offs_w)); +// map(0x006d8, 0x006d9).w(FUNC(nzeroteam_state::bbbbll_w)); // scroll? +// map(0x006dc, 0x006dd).r(FUNC(nzeroteam_state::nzerotea_unknown_r)); +// map(0x006de, 0x006df).w(FUNC(nzeroteam_state::mcu_unkaa_w)); // mcu command related? +// map(0x00700, 0x00700).w(FUNC(nzeroteam_state::rdx_v33_eeprom_w)); -// map(0x00762, 0x00763).r(FUNC(r2dx_v33_state::nzerotea_unknown_r)); +// map(0x00762, 0x00763).r(FUNC(nzeroteam_state::nzerotea_unknown_r)); map(0x00780, 0x0079f).lrw8( NAME([this] (offs_t offset) { return m_seibu_sound->main_r(offset >> 1); }), @@ -492,10 +543,10 @@ void r2dx_v33_state::nzeroteam_base_map(address_map &map) map(0x01000, 0x0bfff).ram(); map(0x0c000, 0x0cfff).ram().share("spriteram"); - map(0x0d000, 0x0d7ff).ram(); //.w(FUNC(r2dx_v33_state::background_w)).share("back_data"); - map(0x0d800, 0x0dfff).ram(); //.w(FUNC(r2dx_v33_state::foreground_w)).share("fore_data"); - map(0x0e000, 0x0e7ff).ram(); //.w(FUNC(r2dx_v33_state::midground_w)).share("mid_data"); - map(0x0e800, 0x0f7ff).ram(); //.w(FUNC(r2dx_v33_state::text_w)).share("text_data"); + map(0x0d000, 0x0d7ff).ram(); //.w(FUNC(nzeroteam_state::background_w)).share("back_data"); + map(0x0d800, 0x0dfff).ram(); //.w(FUNC(nzeroteam_state::foreground_w)).share("fore_data"); + map(0x0e000, 0x0e7ff).ram(); //.w(FUNC(nzeroteam_state::midground_w)).share("mid_data"); + map(0x0e800, 0x0f7ff).ram(); //.w(FUNC(nzeroteam_state::text_w)).share("text_data"); map(0x0f800, 0x0ffff).ram(); /* Stack area */ map(0x10000, 0x1efff).ram(); map(0x1f000, 0x1ffff).ram(); //.w("palette", FUNC(palette_device::write)).share("palette"); @@ -503,7 +554,7 @@ void r2dx_v33_state::nzeroteam_base_map(address_map &map) map(0x20000, 0xfffff).rom().region("maincpu", 0x20000); } -void r2dx_v33_state::nzerotea_map(address_map &map) +void nzeroteam_state::nzerotea_map(address_map &map) { nzeroteam_base_map(map); map(0x00740, 0x00741).portr("DSW"); @@ -511,22 +562,22 @@ void r2dx_v33_state::nzerotea_map(address_map &map) map(0x0074c, 0x0074d).portr("SYSTEM"); } -void r2dx_v33_state::zerotm2k_eeprom_w(u16 data) +void nzeroteam_eeprom_state::zerotm2k_eeprom_w(u16 data) { -// printf("zerotm2k_eeprom_w %04x\n", data); + LOGMASKED(LOG_EEPROM, "%s: zerotm2k_eeprom_w %04x\n", machine().describe_context(), data); - m_eeprom->clk_write((data & 0x02) ? ASSERT_LINE : CLEAR_LINE); - m_eeprom->di_write((data & 0x04) >> 2); - m_eeprom->cs_write((data & 0x01) ? ASSERT_LINE : CLEAR_LINE); + m_eeprom->clk_write(BIT(data, 1) ? ASSERT_LINE : CLEAR_LINE); + m_eeprom->di_write(BIT(data, 2)); + m_eeprom->cs_write(BIT(data, 0) ? ASSERT_LINE : CLEAR_LINE); } -void r2dx_v33_state::zerotm2k_map(address_map &map) +void nzeroteam_eeprom_state::zerotm2k_map(address_map &map) { nzeroteam_base_map(map); map(0x00740, 0x00741).portr("P3_P4"); map(0x00744, 0x00745).portr("INPUT"); + map(0x00748, 0x00749).w(FUNC(nzeroteam_eeprom_state::zerotm2k_eeprom_w)); map(0x0074c, 0x0074d).portr("SYSTEM"); - map(0x00748, 0x00749).w(FUNC(r2dx_v33_state::zerotm2k_eeprom_w)); } @@ -705,19 +756,23 @@ static INPUT_PORTS_START( zerotm2k ) INPUT_PORTS_END -MACHINE_RESET_MEMBER(r2dx_v33_state,r2dx_v33) +void r2dx_v33_state::machine_reset() { bank_reset(0,6,2,0); + + m_r2dxbank = 0; + m_r2dxgameselect = 0; + r2dx_setbanking(); } -MACHINE_RESET_MEMBER(r2dx_v33_state,nzeroteam) +void nzeroteam_state::machine_reset() { bank_reset(0,2,1,0); } void r2dx_v33_state::r2dx_oki_map(address_map &map) { - map(0x00000, 0x3ffff).bankr("okibank"); + map(0x00000, 0x3ffff).bankr(m_okibank); } void r2dx_v33_state::rdx_v33(machine_config &config) @@ -727,8 +782,6 @@ void r2dx_v33_state::rdx_v33(machine_config &config) m_maincpu->set_addrmap(AS_PROGRAM, &r2dx_v33_state::rdx_v33_map); m_maincpu->set_vblank_int("screen", FUNC(r2dx_v33_state::interrupt)); - MCFG_MACHINE_RESET_OVERRIDE(r2dx_v33_state,r2dx_v33) - EEPROM_93C46_16BIT(config, m_eeprom); screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); @@ -756,17 +809,15 @@ void r2dx_v33_state::rdx_v33(machine_config &config) oki.add_route(ALL_OUTPUTS, "mono", 0.5); } -void r2dx_v33_state::nzerotea(machine_config &config) +void nzeroteam_state::nzerotea(machine_config &config) { /* basic machine hardware */ V33A(config, m_maincpu, XTAL(32'000'000)/2); /* verified on pcb */ - m_maincpu->set_addrmap(AS_PROGRAM, &r2dx_v33_state::nzerotea_map); - m_maincpu->set_vblank_int("screen", FUNC(r2dx_v33_state::interrupt)); - - MCFG_MACHINE_RESET_OVERRIDE(r2dx_v33_state,nzeroteam) + m_maincpu->set_addrmap(AS_PROGRAM, &nzeroteam_state::nzerotea_map); + m_maincpu->set_vblank_int("screen", FUNC(nzeroteam_state::interrupt)); z80_device &audiocpu(Z80(config, "audiocpu", XTAL(28'636'363)/8)); - audiocpu.set_addrmap(AS_PROGRAM, &r2dx_v33_state::zeroteam_sound_map); + audiocpu.set_addrmap(AS_PROGRAM, &nzeroteam_state::zeroteam_sound_map); audiocpu.set_irq_acknowledge_callback("seibu_sound", FUNC(seibu_sound_device::im0_vector_cb)); screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); @@ -775,14 +826,14 @@ void r2dx_v33_state::nzerotea(machine_config &config) screen.set_vblank_time(ATTOSECONDS_IN_USEC(500)); /* not accurate */ screen.set_size(44*8, 34*8); screen.set_visarea(0*8, 40*8-1, 0, 32*8-1); - screen.set_screen_update(FUNC(r2dx_v33_state::screen_update)); + screen.set_screen_update(FUNC(nzeroteam_state::screen_update)); - GFXDECODE(config, m_gfxdecode, m_palette, r2dx_v33_state::gfx_raiden2); + GFXDECODE(config, m_gfxdecode, m_palette, nzeroteam_state::gfx_raiden2); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 2048); seibu_crtc_device &crtc(SEIBU_CRTC(config, "crtc", 0)); - crtc.layer_en_callback().set(FUNC(r2dx_v33_state::tilemap_enable_w)); - crtc.layer_scroll_callback().set(FUNC(r2dx_v33_state::tile_scroll_w)); + crtc.layer_en_callback().set(FUNC(nzeroteam_state::tilemap_enable_w)); + crtc.layer_scroll_callback().set(FUNC(nzeroteam_state::tile_scroll_w)); BUFFERED_SPRITERAM16(config, m_spriteram); @@ -805,10 +856,10 @@ void r2dx_v33_state::nzerotea(machine_config &config) m_seibu_sound->ym_write_callback().set("ymsnd", FUNC(ym3812_device::write)); } -void r2dx_v33_state::zerotm2k(machine_config &config) +void nzeroteam_eeprom_state::zerotm2k(machine_config &config) { nzerotea(config); - m_maincpu->set_addrmap(AS_PROGRAM, &r2dx_v33_state::zerotm2k_map); + m_maincpu->set_addrmap(AS_PROGRAM, &nzeroteam_eeprom_state::zerotm2k_map); EEPROM_93C46_16BIT(config, m_eeprom); } @@ -816,43 +867,43 @@ void r2dx_v33_state::zerotm2k(machine_config &config) void r2dx_v33_state::init_rdx_v33() { init_blending(raiden_blended_colors); - static const int spri[5] = { 0, 1, 2, 3, -1 }; + static const s32 spri[5] = { 0, 1, 2, 3, -1 }; m_cur_spri = spri; - m_mainbank[0]->configure_entries( 0, 0x10, memregion("maincpu")->base() + 0x100000, 0x010000); // 0x20000 - 0x2ffff bank for Raiden 2 - m_mainbank[0]->configure_entries(0x10, 0x10, memregion("maincpu")->base() + 0x300000, 0x010000); // 0x20000 - 0x2ffff bank for Raiden DX - m_mainbank[1]->configure_entries( 0, 2, memregion("maincpu")->base() + 0x030000, 0x200000); + m_mainbank->configure_entries( 0, 0x10, memregion("maincpu")->base() + 0x100000, 0x010000); // 0x20000 - 0x2ffff bank for Raiden 2 + m_mainbank->configure_entries(0x10, 0x10, memregion("maincpu")->base() + 0x300000, 0x010000); // 0x20000 - 0x2ffff bank for Raiden DX + m_gamebank->configure_entries( 0, 2, memregion("maincpu")->base() + 0x030000, 0x200000); - raiden2_decrypt_sprites(machine()); + raiden2_decrypt_sprites((u32*)memregion("sprites")->base(), memregion("sprites")->bytes() / 4); // sensible defaults if booting as R2 - m_mainbank[0]->set_entry(0); - m_mainbank[1]->set_entry(0); + m_mainbank->set_entry(0); + m_gamebank->set_entry(0); m_okibank->configure_entries(0, 4, memregion("oki")->base(), 0x40000); m_okibank->set_entry(0); } -void r2dx_v33_state::init_nzerotea() +void nzeroteam_state::init_nzerotea() { init_blending(zeroteam_blended_colors); - static const int spri[5] = { -1, 0, 1, 2, 3 }; + static const s32 spri[5] = { -1, 0, 1, 2, 3 }; m_cur_spri = spri; - zeroteam_decrypt_sprites(machine()); + zeroteam_decrypt_sprites((u32*)memregion("sprites")->base(), 0x400000 / 4); } -void r2dx_v33_state::init_zerotm2k() +void nzeroteam_eeprom_state::init_zerotm2k() { init_blending(zeroteam_blended_colors); - static const int spri[5] = { -1, 0, 1, 2, 3 }; + static const s32 spri[5] = { -1, 0, 1, 2, 3 }; m_cur_spri = spri; // no sprite encryption(!) // BG tile rom has 2 lines swapped - u8 *src = memregion("gfx2")->base()+0x100000; + u8 *src = memregion("tiles")->base() + 0x100000; const int len = 0x080000; std::vector buffer(len); @@ -930,13 +981,13 @@ ROM_START( r2dx_v33 ) ROM_REGION( 0x400000, "maincpu", 0 ) /* v33 main cpu */ ROM_LOAD("prg.223", 0x000000, 0x400000, CRC(b3dbcf98) SHA1(30d6ec2090531c8c579dff74c4898889902d7d87) ) - ROM_REGION( 0x040000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x040000, "chars", 0 ) /* chars */ ROM_LOAD( "fix.613", 0x000000, 0x040000, CRC(3da27e39) SHA1(3d446990bf36dd0a3f8fadb68b15bed54904c8b5) ) - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "bg.612", 0x000000, 0x400000, CRC(162c61e9) SHA1(bd0a6a29804b84196ba6bf3402e9f30a25da9269) ) - ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */ + ROM_REGION32_LE( 0x800000, "sprites", 0 ) /* sprite gfx (encrypted) */ ROM_LOAD32_WORD( "obj1.724", 0x000000, 0x400000, CRC(7d218985) SHA1(777241a533defcbea3d7e735f309478d260bad52) ) ROM_LOAD32_WORD( "obj2.725", 0x000002, 0x400000, CRC(891b24d6) SHA1(74f89b47b1ba6b84ddd96d1fae92fddad0ace342) ) @@ -954,13 +1005,13 @@ ROM_START( r2dx_v33_r2 ) ROM_REGION( 0x400000, "maincpu", 0 ) /* v33 main cpu */ ROM_LOAD("prg.223", 0x000000, 0x400000, CRC(b3dbcf98) SHA1(30d6ec2090531c8c579dff74c4898889902d7d87) ) - ROM_REGION( 0x040000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x040000, "chars", 0 ) /* chars */ ROM_LOAD( "fix.613", 0x000000, 0x040000, CRC(3da27e39) SHA1(3d446990bf36dd0a3f8fadb68b15bed54904c8b5) ) - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "bg.612", 0x000000, 0x400000, CRC(162c61e9) SHA1(bd0a6a29804b84196ba6bf3402e9f30a25da9269) ) - ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */ + ROM_REGION32_LE( 0x800000, "sprites", 0 ) /* sprite gfx (encrypted) */ ROM_LOAD32_WORD( "obj1.724", 0x000000, 0x400000, CRC(7d218985) SHA1(777241a533defcbea3d7e735f309478d260bad52) ) ROM_LOAD32_WORD( "obj2.725", 0x000002, 0x400000, CRC(891b24d6) SHA1(74f89b47b1ba6b84ddd96d1fae92fddad0ace342) ) @@ -988,15 +1039,15 @@ ROM_START( nzeroteam ) /* V33 SYSTEM TYPE_B hardware, uses SEI333 (AKA COPX-D3) ROM_CONTINUE( 0x010000, 0x08000 ) /* banked stuff */ ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD16_BYTE( "seibu_5.u0616", 0x000000, 0x010000, CRC(ce68ba3c) SHA1(52830533711ec906bf4fe9d06e065ec80b25b4da) ) ROM_LOAD16_BYTE( "seibu_6.u0617", 0x000001, 0x010000, CRC(cf44aea7) SHA1(e8d622fd5c10133fa563402daf0690fdff297f94) ) - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", ROMREGION_ERASEFF ) /* background gfx */ ROM_LOAD( "back-1", 0x000000, 0x100000, CRC(8b7f9219) SHA1(3412b6f8a4fe245e521ddcf185a53f2f4520eb57) ) /* Same as "MUSHA BACK-1" of other Zero Team sets */ ROM_LOAD( "back-2", 0x100000, 0x080000, CRC(ce61c952) SHA1(52a843c8ba428b121fab933dd3b313b2894d80ac) ) /* Same as "MUSHA BACK-2" of other Zero Team sets */ - ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */ + ROM_REGION32_LE( 0x800000, "sprites", ROMREGION_ERASEFF ) /* sprite gfx (encrypted) */ ROM_LOAD32_WORD( "obj-1", 0x000000, 0x200000, CRC(45be8029) SHA1(adc164f9dede9a86b96a4d709e9cba7d2ad0e564) ) /* Same as "MUSHA OBJ-1" of other Zero Team sets */ ROM_LOAD32_WORD( "obj-2", 0x000002, 0x200000, CRC(cb61c19d) SHA1(151a2ce9c32f3321a974819e9b165dddc31c8153) ) /* Same as "MUSHA OBJ-2" of other Zero Team sets */ @@ -1021,15 +1072,15 @@ ROM_START( nzeroteama ) /* V33 SYSTEM TYPE_B hardware, uses SEI333 (AKA COPX-D3) ROM_CONTINUE( 0x010000, 0x08000 ) /* banked stuff */ ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD16_BYTE( "seibu_5.u0616", 0x000000, 0x010000, CRC(ce68ba3c) SHA1(52830533711ec906bf4fe9d06e065ec80b25b4da) ) ROM_LOAD16_BYTE( "seibu_6.u0617", 0x000001, 0x010000, CRC(cf44aea7) SHA1(e8d622fd5c10133fa563402daf0690fdff297f94) ) - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", ROMREGION_ERASEFF ) /* background gfx */ ROM_LOAD( "back-1", 0x000000, 0x100000, CRC(8b7f9219) SHA1(3412b6f8a4fe245e521ddcf185a53f2f4520eb57) ) /* Same as "MUSHA BACK-1" of other Zero Team sets */ ROM_LOAD( "back-2", 0x100000, 0x080000, CRC(ce61c952) SHA1(52a843c8ba428b121fab933dd3b313b2894d80ac) ) /* Same as "MUSHA BACK-2" of other Zero Team sets */ - ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */ + ROM_REGION32_LE( 0x800000, "sprites", ROMREGION_ERASEFF ) /* sprite gfx (encrypted) */ ROM_LOAD32_WORD( "obj-1", 0x000000, 0x200000, CRC(45be8029) SHA1(adc164f9dede9a86b96a4d709e9cba7d2ad0e564) ) /* Same as "MUSHA OBJ-1" of other Zero Team sets */ ROM_LOAD32_WORD( "obj-2", 0x000002, 0x200000, CRC(cb61c19d) SHA1(151a2ce9c32f3321a974819e9b165dddc31c8153) ) /* Same as "MUSHA OBJ-2" of other Zero Team sets */ @@ -1054,15 +1105,15 @@ ROM_START( nzeroteamb ) /* V33 SYSTEM TYPE_B hardware, uses SEI333 (AKA COPX-D3) ROM_CONTINUE( 0x010000, 0x08000 ) /* banked stuff */ ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD16_BYTE( "fix1", 0x000000, 0x010000, CRC(0c4895b0) SHA1(f595dbe5a19edb8a06ea60105ee26b95db4a2619) ) ROM_LOAD16_BYTE( "fix2", 0x000001, 0x010000, CRC(07d8e387) SHA1(52f54a6a4830592784cdf643a5f255aa3db53e50) ) - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", ROMREGION_ERASEFF ) /* background gfx */ ROM_LOAD( "back-1", 0x000000, 0x100000, CRC(8b7f9219) SHA1(3412b6f8a4fe245e521ddcf185a53f2f4520eb57) ) /* Same as "MUSHA BACK-1" of other Zero Team sets */ ROM_LOAD( "back-2", 0x100000, 0x080000, CRC(ce61c952) SHA1(52a843c8ba428b121fab933dd3b313b2894d80ac) ) /* Same as "MUSHA BACK-2" of other Zero Team sets */ - ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */ + ROM_REGION32_LE( 0x800000, "sprites", ROMREGION_ERASEFF ) /* sprite gfx (encrypted) */ ROM_LOAD32_WORD( "obj-1", 0x000000, 0x200000, CRC(45be8029) SHA1(adc164f9dede9a86b96a4d709e9cba7d2ad0e564) ) /* Same as "MUSHA OBJ-1" of other Zero Team sets */ ROM_LOAD32_WORD( "obj-2", 0x000002, 0x200000, CRC(cb61c19d) SHA1(151a2ce9c32f3321a974819e9b165dddc31c8153) ) /* Same as "MUSHA OBJ-2" of other Zero Team sets */ @@ -1089,16 +1140,16 @@ ROM_START( zerotm2k ) /* V33 SYSTEM TYPE_C VER2 hardware, uses SEI333 (AKA COPX- ROM_CONTINUE( 0x010000, 0x08000 ) /* banked stuff */ ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD16_BYTE( "syz-04.u0616", 0x000000, 0x010000, CRC(3515a45f) SHA1(a25a7e23a5d9cf5a95a0d0e828848a8d223bdf51) ) /* PCB silkscreened FIX E */ ROM_LOAD16_BYTE( "syz-03.u0617", 0x000001, 0x010000, CRC(02fbf9d7) SHA1(6eb4db1f89c9b003e7eed7bf39e6065b1c99447f) ) /* PCB silkscreened FIX O */ - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", ROMREGION_ERASEFF ) /* background gfx */ ROM_LOAD( "szy-05.u0614", 0x000000, 0x100000, CRC(8b7f9219) SHA1(3412b6f8a4fe245e521ddcf185a53f2f4520eb57) ) /* PCB silkscreened BG12, Same as "MUSHA BACK-1" */ ROM_LOAD( "mt28f400b1.u0619", 0x100000, 0x080000, CRC(266acee6) SHA1(2a9da66c313a7536c7fb393134b9df0bb122cb2b) ) /* SMT rom, PCB silkscreened BG3 */ /* PCB has an unpopulated socket rom space for a LH535A00D at u0615 for alt BG3 location */ - ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (NOT encrypted) */ + ROM_REGION32_LE( 0x800000, "sprites", ROMREGION_ERASEFF ) /* sprite gfx (NOT encrypted) */ ROM_LOAD32_WORD( "musha_obj-1a.u0729", 0x000000, 0x200000, CRC(9b2cf68c) SHA1(cd8cb277091bfa125fd0f68410de39f72f1c7047) ) /* PCB silkscreened OBJ1 */ ROM_LOAD32_WORD( "musha_obj-2a.u0730", 0x000002, 0x200000, CRC(fcabee05) SHA1(b2220c0311b3bd2fd44fb56fff7c27bed0816fe9) ) /* PCB silkscreened OBJ2 */ /* PCB has unpopulated rom space for two SMT roms at u0734 & u0736 for alt OBJ1 & OBJ2 locations) */ @@ -1112,19 +1163,19 @@ ROM_END // newer PCB, with V33A CPU and COPD3 protection, but weak sound hardware. - was marked as Raiden DX New in the rom dump, but boots as Raiden 2 New version, the rom contains both // is there a switching method? for now I've split it into 2 sets with different EEPROM, the game checks that on startup and runs different code depending on what it finds -GAME( 1996, r2dx_v33, 0, rdx_v33, rdx_v33, r2dx_v33_state, init_rdx_v33, ROT270, "Seibu Kaihatsu", "Raiden II New / Raiden DX (newer V33 PCB) (Raiden DX EEPROM)", MACHINE_SUPPORTS_SAVE) -GAME( 1996, r2dx_v33_r2, r2dx_v33, rdx_v33, rdx_v33, r2dx_v33_state, init_rdx_v33, ROT270, "Seibu Kaihatsu", "Raiden II New / Raiden DX (newer V33 PCB) (Raiden II EEPROM)", MACHINE_SUPPORTS_SAVE) +GAME( 1996, r2dx_v33, 0, rdx_v33, rdx_v33, r2dx_v33_state, init_rdx_v33, ROT270, "Seibu Kaihatsu", "Raiden II New / Raiden DX (newer V33 PCB) (Raiden DX EEPROM)", MACHINE_SUPPORTS_SAVE) +GAME( 1996, r2dx_v33_r2, r2dx_v33, rdx_v33, rdx_v33, r2dx_v33_state, init_rdx_v33, ROT270, "Seibu Kaihatsu", "Raiden II New / Raiden DX (newer V33 PCB) (Raiden II EEPROM)", MACHINE_SUPPORTS_SAVE) // 'V33 system type_b' - uses V33A CPU, COPX-D3 external protection rom, but still has the proper sound system, DSW for settings -GAME( 1997, nzeroteam, zeroteam, nzerotea, nzerotea, r2dx_v33_state, init_nzerotea, ROT0, "Seibu Kaihatsu", "New Zero Team (V33 SYSTEM TYPE_B hardware)", MACHINE_SUPPORTS_SAVE) -GAME( 1997, nzeroteama, zeroteam, nzerotea, nzerotea, r2dx_v33_state, init_nzerotea, ROT0, "Seibu Kaihatsu (Zhongguo Shantou Yihuang license)", "New Zero Team (V33 SYSTEM TYPE_B hardware, Zhongguo Shantou Yihuang license)", MACHINE_SUPPORTS_SAVE) // license text translated from title screen -GAME( 1997, nzeroteamb, zeroteam, nzerotea, nzerotea, r2dx_v33_state, init_nzerotea, ROT0, "Seibu Kaihatsu (Haoyunlai Trading Company license)", "New Zero Team (V33 SYSTEM TYPE_B hardware, Haoyunlai Trading Company license)", MACHINE_SUPPORTS_SAVE) // license text translated from title screen +GAME( 1997, nzeroteam, zeroteam, nzerotea, nzerotea, nzeroteam_state, init_nzerotea, ROT0, "Seibu Kaihatsu", "New Zero Team (V33 SYSTEM TYPE_B hardware)", MACHINE_SUPPORTS_SAVE) +GAME( 1997, nzeroteama, zeroteam, nzerotea, nzerotea, nzeroteam_state, init_nzerotea, ROT0, "Seibu Kaihatsu (Zhongguo Shantou Yihuang license)", "New Zero Team (V33 SYSTEM TYPE_B hardware, Zhongguo Shantou Yihuang license)", MACHINE_SUPPORTS_SAVE) // license text translated from title screen +GAME( 1997, nzeroteamb, zeroteam, nzerotea, nzerotea, nzeroteam_state, init_nzerotea, ROT0, "Seibu Kaihatsu (Haoyunlai Trading Company license)", "New Zero Team (V33 SYSTEM TYPE_B hardware, Haoyunlai Trading Company license)", MACHINE_SUPPORTS_SAVE) // license text translated from title screen // 'V33 SYSTEM TYPE_C' - uses V33A CPU, basically the same board as TYPE_C VER2 // there is a version of New Zero Team on "V33 SYSTEM TYPE_C" board with EEPROM rather than dipswitches like Zero Team 2000 // 1998 release of New Zero team on this hardware also exists, but not dumped: https://youtu.be/8mnFjXCc9BI // 'V33 SYSTEM TYPE_C VER2' - uses V33A CPU, COPX-D3 external protection rom, but still has the proper sound system, unencrypted sprites, EEPROM for settings. PCB also seen without 'VER2', looks the same -GAME( 2000, zerotm2k, zeroteam, zerotm2k, zerotm2k, r2dx_v33_state, init_zerotm2k, ROT0, "Seibu Kaihatsu", "Zero Team 2000", MACHINE_SUPPORTS_SAVE) +GAME( 2000, zerotm2k, zeroteam, zerotm2k, zerotm2k, nzeroteam_eeprom_state, init_zerotm2k, ROT0, "Seibu Kaihatsu", "Zero Team 2000", MACHINE_SUPPORTS_SAVE) // there is also a 'Raiden 2 2000' on unknown hardware. diff --git a/src/mame/seibu/raiden2.cpp b/src/mame/seibu/raiden2.cpp index 5bef565805eb8..db61695f1cc3e 100644 --- a/src/mame/seibu/raiden2.cpp +++ b/src/mame/seibu/raiden2.cpp @@ -9,7 +9,7 @@ * xsedae - it does an "8-liner"-style scroll during attract, doesn't work too well. - * sprite chip is the same as seibuspi.cpp and feversoc.cpp, needs device-ification and merging. + * sprite chip is the same as seibu/seibuspi.cpp and seibu/feversoc.cpp, needs device-ification and merging. * sprite chip also uses first entry for "something" that isn't sprite, some of them looks clipping regions (150 - ff in zeroteam, 150 - 0 and 150 - 80 in raiden2). Latter probably do double buffering @@ -164,7 +164,7 @@ Protection Notes: to be the actual MCU which is probably internal to one of the Seibu customs. - The games in legionna.cpp use (almost?) the same protection chips. + The games in seibu/legionna.cpp use (almost?) the same protection chips. ********************************************************************************************************/ @@ -183,6 +183,14 @@ Protection Notes: #include "speaker.h" +#define LOG_SPRCRPT (1 << 1) +#define LOG_BANK (1 << 2) + +#define VERBOSE (0) + +#include "logmacro.h" + + void raiden2_state::common_save_state() { save_item(NAME(m_bg_bank)); @@ -247,7 +255,7 @@ void raiden2_state::combine32(u32 *val, offs_t offset, u16 data, u16 mem_mask) INTERRUPT_GEN_MEMBER(raiden2_state::interrupt) { - device.execute().set_input_line_and_vector(0, HOLD_LINE, 0xc0/4); /* V30 - VBL */ + device.execute().set_input_line_and_vector(0, HOLD_LINE, 0xc0 / 4); /* V30 - VBL */ } @@ -272,20 +280,20 @@ void raiden2_state::sprcpt_adr_w(offs_t offset, u16 data, u16 mem_mask) void raiden2_state::sprcpt_data_1_w(offs_t offset, u16 data, u16 mem_mask) { - combine32(m_sprcpt_data_1+m_sprcpt_adr, offset, data, mem_mask); + combine32(m_sprcpt_data_1 + m_sprcpt_adr, offset, data, mem_mask); } void raiden2_state::sprcpt_data_2_w(offs_t offset, u16 data, u16 mem_mask) { - combine32(m_sprcpt_data_2+m_sprcpt_adr, offset, data, mem_mask); + combine32(m_sprcpt_data_2 + m_sprcpt_adr, offset, data, mem_mask); } void raiden2_state::sprcpt_data_3_w(offs_t offset, u16 data, u16 mem_mask) { - combine32(m_sprcpt_data_3+m_sprcpt_idx, offset, data, mem_mask); + combine32(m_sprcpt_data_3 + m_sprcpt_idx, offset, data, mem_mask); if (offset == 1) { - m_sprcpt_idx ++; + m_sprcpt_idx++; if (m_sprcpt_idx == 6) m_sprcpt_idx = 0; } @@ -293,10 +301,10 @@ void raiden2_state::sprcpt_data_3_w(offs_t offset, u16 data, u16 mem_mask) void raiden2_state::sprcpt_data_4_w(offs_t offset, u16 data, u16 mem_mask) { - combine32(m_sprcpt_data_4+m_sprcpt_idx, offset, data, mem_mask); + combine32(m_sprcpt_data_4 + m_sprcpt_idx, offset, data, mem_mask); if (offset == 1) { - m_sprcpt_idx ++; + m_sprcpt_idx++; if (m_sprcpt_idx == 4) m_sprcpt_idx = 0; } @@ -304,12 +312,12 @@ void raiden2_state::sprcpt_data_4_w(offs_t offset, u16 data, u16 mem_mask) void raiden2_state::sprcpt_val_1_w(offs_t offset, u16 data, u16 mem_mask) { - combine32(m_sprcpt_val+0, offset, data, mem_mask); + combine32(m_sprcpt_val + 0, offset, data, mem_mask); } void raiden2_state::sprcpt_val_2_w(offs_t offset, u16 data, u16 mem_mask) { - combine32(m_sprcpt_val+1, offset, data, mem_mask); + combine32(m_sprcpt_val + 1, offset, data, mem_mask); } void raiden2_state::sprcpt_flags_1_w(offs_t offset, u16 data, u16 mem_mask) @@ -319,26 +327,26 @@ void raiden2_state::sprcpt_flags_1_w(offs_t offset, u16 data, u16 mem_mask) { // bit 31: 1 = allow write on sprcpt data - if (!(m_sprcpt_flags1 & 0x80000000U)) + if (BIT(~m_sprcpt_flags1, 31)) { // Upload finished - if (1) + if (VERBOSE & LOG_SPRCRPT) { - int i; + logerror("%s: \n", machine().describe_context()); logerror("sprcpt_val 1: %08x\n", m_sprcpt_val[0]); logerror("sprcpt_val 2: %08x\n", m_sprcpt_val[1]); logerror("sprcpt_data 1:\n"); - for (i=0; i<0x100; i++) + for (int i = 0; i < 0x100; i++) { logerror(" %08x", m_sprcpt_data_1[i]); - if (!((i+1) & 7)) + if (!((i + 1) & 7)) logerror("\n"); } logerror("sprcpt_data 2:\n"); - for (i=0; i<0x40; i++) + for (int i = 0; i < 0x40; i++) { logerror(" %08x", m_sprcpt_data_2[i]); - if (!((i+1) & 7)) + if (!((i + 1) & 7)) logerror("\n"); } } @@ -351,7 +359,7 @@ void raiden2_state::sprcpt_flags_2_w(offs_t offset, u16 data, u16 mem_mask) COMBINE_DATA(&m_sprcpt_flags2); if (offset == 0) { - if (m_sprcpt_flags2 & 0x8000) + if (BIT(m_sprcpt_flags2, 15)) { // Reset decryption -> redo it } @@ -361,10 +369,26 @@ void raiden2_state::sprcpt_flags_2_w(offs_t offset, u16 data, u16 mem_mask) void raiden2_state::bank_reset(int bgbank, int fgbank, int midbank, int txbank) { - m_bg_bank = bgbank; - m_fg_bank = fgbank; - m_mid_bank = midbank; - m_tx_bank = txbank; + if (m_bg_bank != bgbank) + { + m_bg_bank = bgbank; + m_background_layer->mark_all_dirty(); + } + if (m_fg_bank != fgbank) + { + m_fg_bank = fgbank; + m_foreground_layer->mark_all_dirty(); + } + if (m_mid_bank != midbank) + { + m_mid_bank = midbank; + m_midground_layer->mark_all_dirty(); + } + if (m_tx_bank != txbank) + { + m_tx_bank = txbank; + m_text_layer->mark_all_dirty(); + } } MACHINE_RESET_MEMBER(raiden2_state,raiden2) @@ -372,8 +396,7 @@ MACHINE_RESET_MEMBER(raiden2_state,raiden2) bank_reset(0,6,1,0); sprcpt_init(); - m_mainbank[0]->set_entry(2); - m_mainbank[1]->set_entry(3); + m_mainbank->set_entry(1); m_prg_bank = 0; //cop_init(); @@ -384,10 +407,9 @@ MACHINE_RESET_MEMBER(raiden2_state,raidendx) bank_reset(0,6,1,0); sprcpt_init(); - m_mainbank[0]->set_entry(16); - m_mainbank[1]->set_entry(3); + m_mainbank->set_entry(0); - m_prg_bank = 0x08; + m_prg_bank = 0; //cop_init(); } @@ -397,8 +419,7 @@ MACHINE_RESET_MEMBER(raiden2_state,zeroteam) bank_reset(0,2,1,0); sprcpt_init(); - m_mainbank[0]->set_entry(2); - m_mainbank[1]->set_entry(3); + m_mainbank->set_entry(1); m_prg_bank = 0; //cop_init(); @@ -412,11 +433,10 @@ MACHINE_RESET_MEMBER(raiden2_state,xsedae) void raiden2_state::raiden2_bank_w(u8 data) { - int bb = (~data >> 7) & 1; - logerror("select bank %d %04x\n", (data >> 7) & 1, data); - m_mainbank[0]->set_entry(bb*2); - m_mainbank[1]->set_entry(bb*2+1); - m_prg_bank = ((data >> 7) & 1); + const u8 bb = BIT(~data, 7); + LOGMASKED(LOG_BANK, "%s: select bank %d %04x\n", machine().describe_context(), BIT(data, 7), data); + m_mainbank->set_entry(bb); + m_prg_bank = BIT(data, 7); } @@ -445,28 +465,28 @@ u16 raiden2_state::sprite_prot_src_seg_r() void raiden2_state::sprite_prot_src_w(address_space &space, u16 data) { m_sprite_prot_src_addr[1] = data; - u32 src = (m_sprite_prot_src_addr[0]<<4)+m_sprite_prot_src_addr[1]; + const u32 src = (m_sprite_prot_src_addr[0] << 4) + m_sprite_prot_src_addr[1]; - int x = int16_t((space.read_dword(src+0x08) >> 16) - (m_sprite_prot_x)); - int y = int16_t((space.read_dword(src+0x04) >> 16) - (m_sprite_prot_y)); + const int x = int16_t((space.read_dword(src + 0x08) >> 16) - (m_sprite_prot_x)); + const int y = int16_t((space.read_dword(src + 0x04) >> 16) - (m_sprite_prot_y)); - u16 head1 = space.read_word(src+m_cop_spr_off); - u16 head2 = space.read_word(src+m_cop_spr_off+2); + const u16 head1 = space.read_word(src + m_cop_spr_off); + const u16 head2 = space.read_word(src + m_cop_spr_off + 2); - int w = (((head1 >> 8 ) & 7) + 1) << 4; - int h = (((head1 >> 12) & 7) + 1) << 4; + const int w = (((head1 >> 8 ) & 7) + 1) << 4; + const int h = (((head1 >> 12) & 7) + 1) << 4; u16 flag = x-w/2 > -w && x-w/2 < m_cop_spr_maxx+w && y-h/2 > -h && y-h/2 < 256+h ? 1 : 0; flag = (space.read_word(src) & 0xfffe) | flag; space.write_word(src, flag); - if (flag & 1) + if (BIT(flag, 0)) { - space.write_word(m_dst1, head1); - space.write_word(m_dst1+2, head2); - space.write_word(m_dst1+4, x-w/2); - space.write_word(m_dst1+6, y-h/2); + space.write_word(m_dst1, head1); + space.write_word(m_dst1 + 2, head2); + space.write_word(m_dst1 + 4, x-w/2); + space.write_word(m_dst1 + 6, y-h/2); m_dst1 += 8; } @@ -605,8 +625,7 @@ void raiden2_state::raiden2_mem(address_map &map) map(0x10000, 0x1efff).ram(); map(0x1f000, 0x1ffff).ram(); //.w("palette", palette_device, write).share("palette"); - map(0x20000, 0x2ffff).bankr("mainbank1"); - map(0x30000, 0x3ffff).bankr("mainbank2"); + map(0x20000, 0x3ffff).bankr(m_mainbank); map(0x40000, 0xfffff).rom().region("maincpu", 0x40000); } @@ -617,6 +636,10 @@ void raiden2_state::raidendx_mem(address_map &map) map(0x004d0, 0x004d7).ram(); //??? map(0x00600, 0x0063f).rw("crtc", FUNC(seibu_crtc_device::read_alt), FUNC(seibu_crtc_device::write_alt)); // map(0x006ca, 0x006cb).nopw(); + + // different bank arrangements + map(0x20000, 0x2ffff).bankr(m_mainbank); + map(0x30000, 0xfffff).rom().region("maincpu", 0x30000); } void raiden2_state::zeroteam_mem(address_map &map) @@ -648,8 +671,7 @@ void raiden2_state::zeroteam_mem(address_map &map) map(0x0f000, 0x0ffff).ram().share("spriteram"); map(0x10000, 0x1ffff).ram(); - map(0x20000, 0x2ffff).bankr("mainbank1"); - map(0x30000, 0x3ffff).bankr("mainbank2"); + map(0x20000, 0x3ffff).bankr(m_mainbank); map(0x40000, 0xfffff).rom().region("maincpu", 0x40000); } @@ -1014,21 +1036,10 @@ static const gfx_layout tilelayout = 128*8 }; -static const gfx_layout spritelayout = -{ - 16, 16, - RGN_FRAC(1,1), - 4, - { STEP4(0,1) }, - { 4, 0, 12, 8, 20, 16, 28, 24, 36, 32, 44, 40, 52, 48, 60, 56 }, - { STEP16(0,64) }, - 16*16*4 -}; - GFXDECODE_START( raiden2_state::gfx_raiden2 ) - GFXDECODE_ENTRY( "gfx1", 0x00000, charlayout, 0x700, 0x10 ) - GFXDECODE_ENTRY( "gfx2", 0x00000, tilelayout, 0x400, 0x30 ) - GFXDECODE_ENTRY( "gfx3", 0x00000, spritelayout, 0x000, 0x40 ) // really 128, but using the top bits for priority + GFXDECODE_ENTRY( "chars", 0, charlayout, 0x700, 0x10 ) + GFXDECODE_ENTRY( "tiles", 0, tilelayout, 0x400, 0x30 ) + GFXDECODE_ENTRY( "sprites", 0, gfx_16x16x4_packed_lsb, 0x000, 0x40 ) // really 64, but using the top bits for priority GFXDECODE_END @@ -1289,18 +1300,16 @@ differences amongst SND/u1110 ROMs: */ ROM_START( raiden2 ) - ROM_REGION( 0x200000, "maincpu", 0 ) /* v30 main cpu */ + ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */ ROM_LOAD16_BYTE("prg0.u0211", 0x000000, 0x80000, CRC(09475ec4) SHA1(05027f2d8f9e11fcbd485659eda68ada286dae32) ) - ROM_RELOAD(0x100000, 0x80000) ROM_LOAD16_BYTE("prg1.u0212", 0x000001, 0x80000, CRC(4609b5f2) SHA1(272d2aa75b8ea4d133daddf42c4fc9089093df2e) ) - ROM_RELOAD(0x100001, 0x80000) ROM_REGION( 0x20000, "audiocpu", ROMREGION_ERASEFF ) /* 64k code for sound Z80 */ ROM_LOAD( "snd.u1110", 0x000000, 0x08000, CRC(f51a28f9) SHA1(7ae2e2ba0c8159a544a8fd2bb0c2c694ba849302) ) ROM_CONTINUE(0x10000,0x8000) ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD( "seibu7.u0724", 0x000000, 0x020000, CRC(c9ec9469) SHA1(a29f480a1bee073be7a177096ef58e1887a5af24) ) /* PCB silkscreened FX0 */ ROM_REGION( 0x100000, "oki1", 0 ) /* ADPCM samples */ @@ -1312,14 +1321,14 @@ ROM_START( raiden2 ) ROM_LOAD( "jj4b01__mmipal16l8bcn.u0341", 0x0000, 0x117, CRC(20931f21) SHA1(95ce9cfbfb280dfc6a326e378684eff3c6f54701) ) // Common Raiden II soldered mask ROMs below - ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ + ROM_REGION( 0x40000, "copx", 0 ) /* COPX */ ROM_LOAD( "copx-d2.u0313", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "raiden_2_seibu_bg-1.u075", 0x000000, 0x200000, CRC(e61ad38e) SHA1(63b06cd38db946ad3fc5c1482dc863ef80b58fec) ) ROM_LOAD( "raiden_2_seibu_bg-2.u0714", 0x200000, 0x200000, CRC(a694a4bb) SHA1(39c2614d0effc899fe58f735604283097769df77) ) - ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */ + ROM_REGION32_LE( 0x800000, "sprites", 0 ) /* sprite gfx (encrypted) */ ROM_LOAD32_WORD( "raiden_2_seibu_obj-1.u0811", 0x000000, 0x200000, CRC(ff08ef0b) SHA1(a1858430e8171ca8bab785457ef60e151b5e5cf1) ) ROM_LOAD32_WORD( "raiden_2_seibu_obj-2.u082", 0x000002, 0x200000, CRC(638eb771) SHA1(9774cc070e71668d7d1d20795502dccd21ca557b) ) ROM_LOAD32_WORD( "raiden_2_seibu_obj-3.u0837", 0x400000, 0x200000, CRC(897a0322) SHA1(abb2737a2446da5b364fc2d96524b43d808f4126) ) @@ -1330,18 +1339,16 @@ ROM_START( raiden2 ) ROM_END ROM_START( raiden2g ) - ROM_REGION( 0x200000, "maincpu", 0 ) /* v30 main cpu */ + ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */ ROM_LOAD16_BYTE("prg0.u0211", 0x000000, 0x80000, CRC(09475ec4) SHA1(05027f2d8f9e11fcbd485659eda68ada286dae32) ) // rom1 - same code base as raiden2 - ROM_RELOAD(0x100000, 0x80000) - ROM_LOAD16_BYTE("prg1g.u0212", 0x000001, 0x80000, CRC(41001d2e) SHA1(06bece44c081ecbb3b8dac5c515e30c5a5ffc1bf) ) - ROM_RELOAD(0x100001, 0x80000) + ROM_LOAD16_BYTE("prg1g.u0212", 0x000001, 0x80000, CRC(41001d2e) SHA1(06bece44c081ecbb3b8dac5c515e30c5a5ffc1bf) ) ROM_REGION( 0x20000, "audiocpu", ROMREGION_ERASEFF ) /* 64k code for sound Z80 */ ROM_LOAD( "snd.u1110", 0x000000, 0x08000, CRC(f51a28f9) SHA1(7ae2e2ba0c8159a544a8fd2bb0c2c694ba849302) ) ROM_CONTINUE(0x10000,0x8000) ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD( "seibu7.u0724", 0x000000, 0x020000, CRC(c9ec9469) SHA1(a29f480a1bee073be7a177096ef58e1887a5af24) ) /* PCB silkscreened FX0 - sldh w/raiden2u */ ROM_REGION( 0x100000, "oki1", 0 ) /* ADPCM samples */ @@ -1353,14 +1360,14 @@ ROM_START( raiden2g ) ROM_LOAD( "jj4b01__mmipal16l8bcn.u0341", 0x0000, 0x117, CRC(20931f21) SHA1(95ce9cfbfb280dfc6a326e378684eff3c6f54701) ) // Common Raiden II soldered mask ROMs below - ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ + ROM_REGION( 0x40000, "copx", 0 ) /* COPX */ ROM_LOAD( "copx-d2.u0313", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "raiden_2_seibu_bg-1.u075", 0x000000, 0x200000, CRC(e61ad38e) SHA1(63b06cd38db946ad3fc5c1482dc863ef80b58fec) ) ROM_LOAD( "raiden_2_seibu_bg-2.u0714", 0x200000, 0x200000, CRC(a694a4bb) SHA1(39c2614d0effc899fe58f735604283097769df77) ) - ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */ + ROM_REGION32_LE( 0x800000, "sprites", 0 ) /* sprite gfx (encrypted) */ ROM_LOAD32_WORD( "raiden_2_seibu_obj-1.u0811", 0x000000, 0x200000, CRC(ff08ef0b) SHA1(a1858430e8171ca8bab785457ef60e151b5e5cf1) ) ROM_LOAD32_WORD( "raiden_2_seibu_obj-2.u082", 0x000002, 0x200000, CRC(638eb771) SHA1(9774cc070e71668d7d1d20795502dccd21ca557b) ) ROM_LOAD32_WORD( "raiden_2_seibu_obj-3.u0837", 0x400000, 0x200000, CRC(897a0322) SHA1(abb2737a2446da5b364fc2d96524b43d808f4126) ) @@ -1371,18 +1378,16 @@ ROM_START( raiden2g ) ROM_END ROM_START( raiden2gb ) // original board with serial number on sticker on u0212 - ROM_REGION( 0x200000, "maincpu", 0 ) /* v30 main cpu */ + ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */ ROM_LOAD16_BYTE("prg0.u0211", 0x000000, 0x80000, CRC(09475ec4) SHA1(05027f2d8f9e11fcbd485659eda68ada286dae32) ) - ROM_RELOAD(0x100000, 0x80000) ROM_LOAD16_BYTE("prg1.u0212", 0x000001, 0x80000, CRC(4b9e3024) SHA1(10f0384cff6acac5823c77277b3c75e83d34589c) ) - ROM_RELOAD(0x100001, 0x80000) ROM_REGION( 0x20000, "audiocpu", ROMREGION_ERASEFF ) /* 64k code for sound Z80 */ ROM_LOAD( "snd.u1110", 0x000000, 0x08000, CRC(f51a28f9) SHA1(7ae2e2ba0c8159a544a8fd2bb0c2c694ba849302) ) ROM_CONTINUE(0x10000,0x8000) ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD( "seibu7.u0724", 0x000000, 0x020000, CRC(c9ec9469) SHA1(a29f480a1bee073be7a177096ef58e1887a5af24) ) /* PCB silkscreened FX0 */ ROM_REGION( 0x100000, "oki1", 0 ) /* ADPCM samples */ @@ -1394,14 +1399,14 @@ ROM_START( raiden2gb ) // original board with serial number on sticker on u0212 ROM_LOAD( "jj4b01__mmipal16l8bcn.u0341", 0x0000, 0x117, CRC(20931f21) SHA1(95ce9cfbfb280dfc6a326e378684eff3c6f54701) ) // Common Raiden II soldered mask ROMs below - ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ + ROM_REGION( 0x40000, "copx", 0 ) /* COPX */ ROM_LOAD( "copx-d2.u0313", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "raiden_2_seibu_bg-1.u075", 0x000000, 0x200000, CRC(e61ad38e) SHA1(63b06cd38db946ad3fc5c1482dc863ef80b58fec) ) ROM_LOAD( "raiden_2_seibu_bg-2.u0714", 0x200000, 0x200000, CRC(a694a4bb) SHA1(39c2614d0effc899fe58f735604283097769df77) ) - ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */ + ROM_REGION32_LE( 0x800000, "sprites", 0 ) /* sprite gfx (encrypted) */ ROM_LOAD32_WORD( "raiden_2_seibu_obj-1.u0811", 0x000000, 0x200000, CRC(ff08ef0b) SHA1(a1858430e8171ca8bab785457ef60e151b5e5cf1) ) ROM_LOAD32_WORD( "raiden_2_seibu_obj-2.u082", 0x000002, 0x200000, CRC(638eb771) SHA1(9774cc070e71668d7d1d20795502dccd21ca557b) ) ROM_LOAD32_WORD( "raiden_2_seibu_obj-3.u0837", 0x400000, 0x200000, CRC(897a0322) SHA1(abb2737a2446da5b364fc2d96524b43d808f4126) ) @@ -1430,19 +1435,16 @@ S5 U0724 27C1024 ROM7 966D */ ROM_START( raiden2hk ) - ROM_REGION( 0x200000, "maincpu", 0 ) /* v30 main cpu */ + ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */ ROM_LOAD16_BYTE("prg0.u0211", 0x000000, 0x80000, CRC(09475ec4) SHA1(05027f2d8f9e11fcbd485659eda68ada286dae32) ) // rom1 - same code base as raiden2 - ROM_RELOAD(0x100000, 0x80000) ROM_LOAD16_BYTE("rom2e.u0212", 0x000001, 0x80000, CRC(458d619c) SHA1(842bf0eeb5d192a6b188f4560793db8dad697683) ) - ROM_RELOAD(0x100001, 0x80000) - ROM_REGION( 0x20000, "audiocpu", ROMREGION_ERASEFF ) /* 64k code for sound Z80 */ ROM_LOAD( "seibu5.u1110", 0x000000, 0x08000, CRC(8f130589) SHA1(e58c8beaf9f27f063ffbcb0ab4600123c25ce6f3) ) // sldh w/raiden2u ROM_CONTINUE(0x10000,0x8000) ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD( "seibu7.u0724", 0x000000, 0x020000, CRC(c9ec9469) SHA1(a29f480a1bee073be7a177096ef58e1887a5af24) ) /* PCB silkscreened FX0 */ ROM_REGION( 0x100000, "oki1", 0 ) /* ADPCM samples */ @@ -1454,14 +1456,14 @@ ROM_START( raiden2hk ) ROM_LOAD( "jj4b01__mmipal16l8bcn.u0341", 0x0000, 0x117, CRC(20931f21) SHA1(95ce9cfbfb280dfc6a326e378684eff3c6f54701) ) // Common Raiden II soldered mask ROMs below - ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ + ROM_REGION( 0x40000, "copx", 0 ) /* COPX */ ROM_LOAD( "copx-d2.u0313", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "raiden_2_seibu_bg-1.u075", 0x000000, 0x200000, CRC(e61ad38e) SHA1(63b06cd38db946ad3fc5c1482dc863ef80b58fec) ) ROM_LOAD( "raiden_2_seibu_bg-2.u0714", 0x200000, 0x200000, CRC(a694a4bb) SHA1(39c2614d0effc899fe58f735604283097769df77) ) - ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */ + ROM_REGION32_LE( 0x800000, "sprites", 0 ) /* sprite gfx (encrypted) */ ROM_LOAD32_WORD( "raiden_2_seibu_obj-1.u0811", 0x000000, 0x200000, CRC(ff08ef0b) SHA1(a1858430e8171ca8bab785457ef60e151b5e5cf1) ) ROM_LOAD32_WORD( "raiden_2_seibu_obj-2.u082", 0x000002, 0x200000, CRC(638eb771) SHA1(9774cc070e71668d7d1d20795502dccd21ca557b) ) ROM_LOAD32_WORD( "raiden_2_seibu_obj-3.u0837", 0x400000, 0x200000, CRC(897a0322) SHA1(abb2737a2446da5b364fc2d96524b43d808f4126) ) @@ -1507,18 +1509,16 @@ CUSTOM: SEI150 */ ROM_START( raiden2j ) - ROM_REGION( 0x200000, "maincpu", 0 ) /* v30 main cpu */ + ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */ ROM_LOAD16_BYTE("prg0.u0211", 0x000000, 0x80000, CRC(09475ec4) SHA1(05027f2d8f9e11fcbd485659eda68ada286dae32) ) // rom1 - same code base as raiden2 - ROM_RELOAD(0x100000, 0x80000) ROM_LOAD16_BYTE("rom2j.u0212", 0x000001, 0x80000, CRC(e4e4fb4c) SHA1(7ccf33fe9a1cddf0c7e80d7ed66d615a828b3bb9) ) - ROM_RELOAD(0x100001, 0x80000) ROM_REGION( 0x20000, "audiocpu", ROMREGION_ERASEFF ) /* 64k code for sound Z80 */ ROM_LOAD( "seibu5.u1110", 0x000000, 0x08000, CRC(8f130589) SHA1(e58c8beaf9f27f063ffbcb0ab4600123c25ce6f3) ) ROM_CONTINUE(0x10000,0x8000) ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD( "seibu7.u0724", 0x000000, 0x020000, CRC(c9ec9469) SHA1(a29f480a1bee073be7a177096ef58e1887a5af24) ) /* PCB silkscreened FX0 */ ROM_REGION( 0x100000, "oki1", 0 ) /* ADPCM samples */ @@ -1530,14 +1530,14 @@ ROM_START( raiden2j ) ROM_LOAD( "jj4b01__mmipal16l8bcn.u0341", 0x0000, 0x117, CRC(20931f21) SHA1(95ce9cfbfb280dfc6a326e378684eff3c6f54701) ) // Common Raiden II soldered mask ROMs below - ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ + ROM_REGION( 0x40000, "copx", 0 ) /* COPX */ ROM_LOAD( "copx-d2.u0313", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "raiden_2_seibu_bg-1.u075", 0x000000, 0x200000, CRC(e61ad38e) SHA1(63b06cd38db946ad3fc5c1482dc863ef80b58fec) ) ROM_LOAD( "raiden_2_seibu_bg-2.u0714", 0x200000, 0x200000, CRC(a694a4bb) SHA1(39c2614d0effc899fe58f735604283097769df77) ) - ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */ + ROM_REGION32_LE( 0x800000, "sprites", 0 ) /* sprite gfx (encrypted) */ ROM_LOAD32_WORD( "raiden_2_seibu_obj-1.u0811", 0x000000, 0x200000, CRC(ff08ef0b) SHA1(a1858430e8171ca8bab785457ef60e151b5e5cf1) ) ROM_LOAD32_WORD( "raiden_2_seibu_obj-2.u082", 0x000002, 0x200000, CRC(638eb771) SHA1(9774cc070e71668d7d1d20795502dccd21ca557b) ) ROM_LOAD32_WORD( "raiden_2_seibu_obj-3.u0837", 0x400000, 0x200000, CRC(897a0322) SHA1(abb2737a2446da5b364fc2d96524b43d808f4126) ) @@ -1548,18 +1548,16 @@ ROM_START( raiden2j ) ROM_END ROM_START( raiden2sw ) // original board with serial # 0008307 - ROM_REGION( 0x200000, "maincpu", 0 ) /* v30 main cpu */ + ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */ ROM_LOAD16_BYTE("seibu_1.u0211", 0x000000, 0x80000, CRC(09475ec4) SHA1(05027f2d8f9e11fcbd485659eda68ada286dae32) ) // rom1 - same code base as raiden2 - sldh w/raiden2eu - ROM_RELOAD(0x100000, 0x80000) ROM_LOAD16_BYTE("seibu_2.u0212", 0x000001, 0x80000, CRC(59abc2ec) SHA1(45f2dbd2dd46f5da07dae0dc486772f8e61f4c43) ) // sldh w/raiden2eu - ROM_RELOAD(0x100001, 0x80000) ROM_REGION( 0x20000, "audiocpu", ROMREGION_ERASEFF ) /* 64k code for sound Z80 */ ROM_LOAD( "seibu_5.u1110", 0x000000, 0x08000, CRC(c2028ba2) SHA1(f6a9322b669ff82dea6ecf52ad3bd5d0901cce1b) ) // 99.993896% match ROM_CONTINUE(0x10000,0x8000) ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD( "seibu_7.u0724", 0x000000, 0x020000, CRC(c9ec9469) SHA1(a29f480a1bee073be7a177096ef58e1887a5af24) ) /* PCB silkscreened FX0 */ ROM_REGION( 0x100000, "oki1", 0 ) /* ADPCM samples */ @@ -1571,14 +1569,14 @@ ROM_START( raiden2sw ) // original board with serial # 0008307 ROM_LOAD( "jj4b01__mmipal16l8bcn.u0341", 0x0000, 0x117, CRC(20931f21) SHA1(95ce9cfbfb280dfc6a326e378684eff3c6f54701) ) // Common Raiden II soldered mask ROMs below - ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ + ROM_REGION( 0x40000, "copx", 0 ) /* COPX */ ROM_LOAD( "copx-d2.u0313", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "raiden_2_seibu_bg-1.u075", 0x000000, 0x200000, CRC(e61ad38e) SHA1(63b06cd38db946ad3fc5c1482dc863ef80b58fec) ) ROM_LOAD( "raiden_2_seibu_bg-2.u0714", 0x200000, 0x200000, CRC(a694a4bb) SHA1(39c2614d0effc899fe58f735604283097769df77) ) - ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */ + ROM_REGION32_LE( 0x800000, "sprites", 0 ) /* sprite gfx (encrypted) */ ROM_LOAD32_WORD( "raiden_2_seibu_obj-1.u0811", 0x000000, 0x200000, CRC(ff08ef0b) SHA1(a1858430e8171ca8bab785457ef60e151b5e5cf1) ) ROM_LOAD32_WORD( "raiden_2_seibu_obj-2.u082", 0x000002, 0x200000, CRC(638eb771) SHA1(9774cc070e71668d7d1d20795502dccd21ca557b) ) ROM_LOAD32_WORD( "raiden_2_seibu_obj-3.u0837", 0x400000, 0x200000, CRC(897a0322) SHA1(abb2737a2446da5b364fc2d96524b43d808f4126) ) @@ -1589,18 +1587,16 @@ ROM_START( raiden2sw ) // original board with serial # 0008307 ROM_END ROM_START( raiden2f ) // original board with serial # 12476 that matches raiden2nl set except the region and Audio CPU - ROM_REGION( 0x200000, "maincpu", 0 ) /* v30 main cpu */ - ROM_LOAD16_BYTE("1_u0211.bin", 0x000000, 0x80000, CRC(53be3dd0) SHA1(304d118423e4085eea3b883bd625d90d21bb2054) ) // same code base as raiden2nl & raiden2es - ROM_RELOAD(0x100000, 0x80000) + ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */ + ROM_LOAD16_BYTE("1_u0211.bin", 0x000000, 0x80000, CRC(53be3dd0) SHA1(304d118423e4085eea3b883bd625d90d21bb2054) ) // same code base as raiden2nl & raiden2es ROM_LOAD16_BYTE("seibu2_u0212.bin", 0x000001, 0x80000, CRC(8dcd8a8d) SHA1(be0681d5867d8b4f5fb78946a896d89827a71e8e) ) - ROM_RELOAD(0x100001, 0x80000) ROM_REGION( 0x20000, "audiocpu", ROMREGION_ERASEFF ) /* 64k code for sound Z80 */ ROM_LOAD( "seibu5_u1110.bin", 0x000000, 0x08000, CRC(f51a28f9) SHA1(7ae2e2ba0c8159a544a8fd2bb0c2c694ba849302) ) // == raiden2 ROM_CONTINUE(0x10000,0x8000) ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD( "7_u0724.bin", 0x000000, 0x020000, CRC(c9ec9469) SHA1(a29f480a1bee073be7a177096ef58e1887a5af24) ) /* PCB silkscreened FX0 */ ROM_REGION( 0x100000, "oki1", 0 ) /* ADPCM samples */ @@ -1612,14 +1608,14 @@ ROM_START( raiden2f ) // original board with serial # 12476 that matches raiden2 ROM_LOAD( "jj4b01__mmipal16l8bcn.u0341", 0x0000, 0x117, CRC(20931f21) SHA1(95ce9cfbfb280dfc6a326e378684eff3c6f54701) ) // Common Raiden II soldered mask ROMs below - ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ + ROM_REGION( 0x40000, "copx", 0 ) /* COPX */ ROM_LOAD( "copx-d2.u0313", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "raiden_2_seibu_bg-1.u075", 0x000000, 0x200000, CRC(e61ad38e) SHA1(63b06cd38db946ad3fc5c1482dc863ef80b58fec) ) ROM_LOAD( "raiden_2_seibu_bg-2.u0714", 0x200000, 0x200000, CRC(a694a4bb) SHA1(39c2614d0effc899fe58f735604283097769df77) ) - ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */ + ROM_REGION32_LE( 0x800000, "sprites", 0 ) /* sprite gfx (encrypted) */ ROM_LOAD32_WORD( "raiden_2_seibu_obj-1.u0811", 0x000000, 0x200000, CRC(ff08ef0b) SHA1(a1858430e8171ca8bab785457ef60e151b5e5cf1) ) ROM_LOAD32_WORD( "raiden_2_seibu_obj-2.u082", 0x000002, 0x200000, CRC(638eb771) SHA1(9774cc070e71668d7d1d20795502dccd21ca557b) ) ROM_LOAD32_WORD( "raiden_2_seibu_obj-3.u0837", 0x400000, 0x200000, CRC(897a0322) SHA1(abb2737a2446da5b364fc2d96524b43d808f4126) ) @@ -1630,18 +1626,16 @@ ROM_START( raiden2f ) // original board with serial # 12476 that matches raiden2 ROM_END ROM_START( raiden2nl ) - ROM_REGION( 0x200000, "maincpu", 0 ) /* v30 main cpu */ - ROM_LOAD16_BYTE("1_u0211.bin", 0x000000, 0x80000, CRC(53be3dd0) SHA1(304d118423e4085eea3b883bd625d90d21bb2054) ) // same code base as raiden2f & raiden2es - ROM_RELOAD(0x100000, 0x80000) + ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */ + ROM_LOAD16_BYTE("1_u0211.bin", 0x000000, 0x80000, CRC(53be3dd0) SHA1(304d118423e4085eea3b883bd625d90d21bb2054) ) // same code base as raiden2f & raiden2es ROM_LOAD16_BYTE("2_u0212.bin", 0x000001, 0x80000, CRC(88829c08) SHA1(ecdfbafeeffcd009bbc4cf5bf797bcd4b5bfcf50) ) - ROM_RELOAD(0x100001, 0x80000) ROM_REGION( 0x20000, "audiocpu", ROMREGION_ERASEFF ) /* 64k code for sound Z80 */ ROM_LOAD( "5_u1110.bin", 0x000000, 0x08000, CRC(8f130589) SHA1(e58c8beaf9f27f063ffbcb0ab4600123c25ce6f3) ) ROM_CONTINUE(0x10000,0x8000) ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD( "7_u0724.bin", 0x000000, 0x020000, CRC(c9ec9469) SHA1(a29f480a1bee073be7a177096ef58e1887a5af24) ) /* PCB silkscreened FX0 */ ROM_REGION( 0x100000, "oki1", 0 ) /* ADPCM samples */ @@ -1653,14 +1647,14 @@ ROM_START( raiden2nl ) ROM_LOAD( "jj4b01__mmipal16l8bcn.u0341", 0x0000, 0x117, CRC(20931f21) SHA1(95ce9cfbfb280dfc6a326e378684eff3c6f54701) ) // Common Raiden II soldered mask ROMs below - ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ + ROM_REGION( 0x40000, "copx", 0 ) /* COPX */ ROM_LOAD( "copx-d2.u0313", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "raiden_2_seibu_bg-1.u075", 0x000000, 0x200000, CRC(e61ad38e) SHA1(63b06cd38db946ad3fc5c1482dc863ef80b58fec) ) ROM_LOAD( "raiden_2_seibu_bg-2.u0714", 0x200000, 0x200000, CRC(a694a4bb) SHA1(39c2614d0effc899fe58f735604283097769df77) ) - ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */ + ROM_REGION32_LE( 0x800000, "sprites", 0 ) /* sprite gfx (encrypted) */ ROM_LOAD32_WORD( "raiden_2_seibu_obj-1.u0811", 0x000000, 0x200000, CRC(ff08ef0b) SHA1(a1858430e8171ca8bab785457ef60e151b5e5cf1) ) ROM_LOAD32_WORD( "raiden_2_seibu_obj-2.u082", 0x000002, 0x200000, CRC(638eb771) SHA1(9774cc070e71668d7d1d20795502dccd21ca557b) ) ROM_LOAD32_WORD( "raiden_2_seibu_obj-3.u0837", 0x400000, 0x200000, CRC(897a0322) SHA1(abb2737a2446da5b364fc2d96524b43d808f4126) ) @@ -1671,18 +1665,16 @@ ROM_START( raiden2nl ) ROM_END ROM_START( raiden2es ) - ROM_REGION( 0x200000, "maincpu", 0 ) /* v30 main cpu */ - ROM_LOAD16_BYTE("1_u0211.bin", 0x000000, 0x80000, CRC(53be3dd0) SHA1(304d118423e4085eea3b883bd625d90d21bb2054) ) // same code base as raiden2f & raiden2nl - ROM_RELOAD(0x100000, 0x80000) + ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */ + ROM_LOAD16_BYTE("1_u0211.bin", 0x000000, 0x80000, CRC(53be3dd0) SHA1(304d118423e4085eea3b883bd625d90d21bb2054) ) // same code base as raiden2f & raiden2nl ROM_LOAD16_BYTE("2_u0212.rom", 0x000001, 0x80000, CRC(9dbec61c) SHA1(59ed06d9f97d93486dec2c0d8c0f42f59fb19db0) ) - ROM_RELOAD(0x100001, 0x80000) ROM_REGION( 0x20000, "audiocpu", ROMREGION_ERASEFF ) /* 64k code for sound Z80 */ ROM_LOAD( "5_u1110.bin", 0x000000, 0x08000, CRC(8f130589) SHA1(e58c8beaf9f27f063ffbcb0ab4600123c25ce6f3) ) ROM_CONTINUE(0x10000,0x8000) ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD( "7_u0724.bin", 0x000000, 0x020000, CRC(c9ec9469) SHA1(a29f480a1bee073be7a177096ef58e1887a5af24) ) /* PCB silkscreened FX0 */ ROM_REGION( 0x100000, "oki1", 0 ) /* ADPCM samples */ @@ -1694,14 +1686,14 @@ ROM_START( raiden2es ) ROM_LOAD( "jj4b01__mmipal16l8bcn.u0341", 0x0000, 0x117, CRC(20931f21) SHA1(95ce9cfbfb280dfc6a326e378684eff3c6f54701) ) // Common Raiden II soldered mask ROMs below - ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ + ROM_REGION( 0x40000, "copx", 0 ) /* COPX */ ROM_LOAD( "copx-d2.u0313", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "raiden_2_seibu_bg-1.u075", 0x000000, 0x200000, CRC(e61ad38e) SHA1(63b06cd38db946ad3fc5c1482dc863ef80b58fec) ) ROM_LOAD( "raiden_2_seibu_bg-2.u0714", 0x200000, 0x200000, CRC(a694a4bb) SHA1(39c2614d0effc899fe58f735604283097769df77) ) - ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */ + ROM_REGION32_LE( 0x800000, "sprites", 0 ) /* sprite gfx (encrypted) */ ROM_LOAD32_WORD( "raiden_2_seibu_obj-1.u0811", 0x000000, 0x200000, CRC(ff08ef0b) SHA1(a1858430e8171ca8bab785457ef60e151b5e5cf1) ) ROM_LOAD32_WORD( "raiden_2_seibu_obj-2.u082", 0x000002, 0x200000, CRC(638eb771) SHA1(9774cc070e71668d7d1d20795502dccd21ca557b) ) ROM_LOAD32_WORD( "raiden_2_seibu_obj-3.u0837", 0x400000, 0x200000, CRC(897a0322) SHA1(abb2737a2446da5b364fc2d96524b43d808f4126) ) @@ -1712,18 +1704,16 @@ ROM_START( raiden2es ) ROM_END ROM_START( raiden2u ) - ROM_REGION( 0x200000, "maincpu", 0 ) /* v30 main cpu */ + ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */ ROM_LOAD16_BYTE("1.u0211", 0x000000, 0x80000, CRC(b16df955) SHA1(9b7fd85cf2f2c9fea657f3c38abafa93673b3933) ) // unique unknown code base - ROM_RELOAD(0x100000, 0x80000) ROM_LOAD16_BYTE("2.u0212", 0x000001, 0x80000, CRC(2a14b112) SHA1(84cd9891b5be0b71b2bae3487ad38bed3045305e) ) - ROM_RELOAD(0x100001, 0x80000) ROM_REGION( 0x20000, "audiocpu", 0 ) /* 64k code for sound Z80 */ ROM_LOAD( "seibu5.u1110", 0x000000, 0x08000, CRC(6d362472) SHA1(a362e500bb9492affde1f7a4da7e08dd16e755df) ) // sldh w/raiden2hk ROM_CONTINUE(0x10000,0x8000) ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD( "seibu7.u0724", 0x000000, 0x020000, CRC(c7aa4d00) SHA1(9ad99d3891598c1ea3f12318400ee67666da56dd) ) // sldh w/raiden2g ROM_REGION( 0x100000, "oki1", 0 ) /* ADPCM samples */ @@ -1735,14 +1725,14 @@ ROM_START( raiden2u ) ROM_LOAD( "jj4b01__mmipal16l8bcn.u0341", 0x0000, 0x117, CRC(20931f21) SHA1(95ce9cfbfb280dfc6a326e378684eff3c6f54701) ) // Common Raiden II soldered mask ROMs below - ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ + ROM_REGION( 0x40000, "copx", 0 ) /* COPX */ ROM_LOAD( "copx-d2.u0313", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "raiden_2_seibu_bg-1.u075", 0x000000, 0x200000, CRC(e61ad38e) SHA1(63b06cd38db946ad3fc5c1482dc863ef80b58fec) ) ROM_LOAD( "raiden_2_seibu_bg-2.u0714", 0x200000, 0x200000, CRC(a694a4bb) SHA1(39c2614d0effc899fe58f735604283097769df77) ) - ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */ + ROM_REGION32_LE( 0x800000, "sprites", 0 ) /* sprite gfx (encrypted) */ ROM_LOAD32_WORD( "raiden_2_seibu_obj-1.u0811", 0x000000, 0x200000, CRC(ff08ef0b) SHA1(a1858430e8171ca8bab785457ef60e151b5e5cf1) ) ROM_LOAD32_WORD( "raiden_2_seibu_obj-2.u082", 0x000002, 0x200000, CRC(638eb771) SHA1(9774cc070e71668d7d1d20795502dccd21ca557b) ) ROM_LOAD32_WORD( "raiden_2_seibu_obj-3.u0837", 0x400000, 0x200000, CRC(897a0322) SHA1(abb2737a2446da5b364fc2d96524b43d808f4126) ) @@ -1753,18 +1743,16 @@ ROM_START( raiden2u ) ROM_END ROM_START( raiden2i ) - ROM_REGION( 0x200000, "maincpu", 0 ) /* v30 main cpu */ + ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */ ROM_LOAD16_BYTE("seibu1.u0211", 0x000000, 0x80000, CRC(c1fc70f5) SHA1(a054f5ae9583972c406d9cf871340d5e072d71a3) ) /* Italian set - unique unknown code base */ - ROM_RELOAD(0x100000, 0x80000) ROM_LOAD16_BYTE("seibu2.u0212", 0x000001, 0x80000, CRC(28d5365f) SHA1(21efe29c2d373229c2ff302d86e59c2c94fa6d03) ) - ROM_RELOAD(0x100001, 0x80000) ROM_REGION( 0x20000, "audiocpu", ROMREGION_ERASEFF ) /* 64k code for sound Z80 */ ROM_LOAD( "seibu5.c.u1110", 0x000000, 0x08000, CRC(5db9f922) SHA1(8257aab98657fe44df19d2a48d85fcf65b3d98c6) ) ROM_CONTINUE(0x10000,0x8000) ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD( "seibu7.u0724", 0x000000, 0x020000, CRC(c9ec9469) SHA1(a29f480a1bee073be7a177096ef58e1887a5af24) ) /* PCB silkscreened FX0 */ ROM_REGION( 0x100000, "oki1", 0 ) /* ADPCM samples */ @@ -1776,14 +1764,14 @@ ROM_START( raiden2i ) ROM_LOAD( "jj4b01__mmipal16l8bcn.u0341", 0x0000, 0x117, CRC(20931f21) SHA1(95ce9cfbfb280dfc6a326e378684eff3c6f54701) ) // Common Raiden II soldered mask ROMs below - ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ + ROM_REGION( 0x40000, "copx", 0 ) /* COPX */ ROM_LOAD( "copx-d2.u0313", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "raiden_2_seibu_bg-1.u075", 0x000000, 0x200000, CRC(e61ad38e) SHA1(63b06cd38db946ad3fc5c1482dc863ef80b58fec) ) ROM_LOAD( "raiden_2_seibu_bg-2.u0714", 0x200000, 0x200000, CRC(a694a4bb) SHA1(39c2614d0effc899fe58f735604283097769df77) ) - ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */ + ROM_REGION32_LE( 0x800000, "sprites", 0 ) /* sprite gfx (encrypted) */ ROM_LOAD32_WORD( "raiden_2_seibu_obj-1.u0811", 0x000000, 0x200000, CRC(ff08ef0b) SHA1(a1858430e8171ca8bab785457ef60e151b5e5cf1) ) ROM_LOAD32_WORD( "raiden_2_seibu_obj-2.u082", 0x000002, 0x200000, CRC(638eb771) SHA1(9774cc070e71668d7d1d20795502dccd21ca557b) ) ROM_LOAD32_WORD( "raiden_2_seibu_obj-3.u0837", 0x400000, 0x200000, CRC(897a0322) SHA1(abb2737a2446da5b364fc2d96524b43d808f4126) ) @@ -1795,18 +1783,16 @@ ROM_END ROM_START( raiden2au ) - ROM_REGION( 0x200000, "maincpu", 0 ) /* v30 main cpu */ + ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */ ROM_LOAD16_BYTE("1.u0211", 0x000000, 0x80000, CRC(c1fc70f5) SHA1(a054f5ae9583972c406d9cf871340d5e072d71a3) ) - ROM_RELOAD( 0x100000, 0x80000) ROM_LOAD16_BYTE("2.u0212", 0x000001, 0x80000, CRC(396410f9) SHA1(a3f737ae1fb6229388d3ebec93e880218d09fed5) ) // Australian set - ROM_RELOAD( 0x100001, 0x80000) ROM_REGION( 0x20000, "audiocpu", ROMREGION_ERASEFF ) ROM_LOAD( "5.u1110", 0x000000, 0x08000, CRC(c2028ba2) SHA1(f6a9322b669ff82dea6ecf52ad3bd5d0901cce1b) ) ROM_CONTINUE(0x10000,0x8000) ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD( "7.u0724", 0x000000, 0x020000, CRC(c9ec9469) SHA1(a29f480a1bee073be7a177096ef58e1887a5af24) ) ROM_REGION( 0x100000, "oki1", 0 ) /* ADPCM samples */ @@ -1818,14 +1804,14 @@ ROM_START( raiden2au ) ROM_LOAD( "jj4b01__mmipal16l8bcn.u0341", 0x0000, 0x117, CRC(20931f21) SHA1(95ce9cfbfb280dfc6a326e378684eff3c6f54701) ) // Common Raiden II soldered mask ROMs below - ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ + ROM_REGION( 0x40000, "copx", 0 ) /* COPX */ ROM_LOAD( "copx-d2.u0313", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "raiden_2_seibu_bg-1.u075", 0x000000, 0x200000, CRC(e61ad38e) SHA1(63b06cd38db946ad3fc5c1482dc863ef80b58fec) ) ROM_LOAD( "raiden_2_seibu_bg-2.u0714", 0x200000, 0x200000, CRC(a694a4bb) SHA1(39c2614d0effc899fe58f735604283097769df77) ) - ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */ + ROM_REGION32_LE( 0x800000, "sprites", 0 ) /* sprite gfx (encrypted) */ ROM_LOAD32_WORD( "raiden_2_seibu_obj-1.u0811", 0x000000, 0x200000, CRC(ff08ef0b) SHA1(a1858430e8171ca8bab785457ef60e151b5e5cf1) ) ROM_LOAD32_WORD( "raiden_2_seibu_obj-2.u082", 0x000002, 0x200000, CRC(638eb771) SHA1(9774cc070e71668d7d1d20795502dccd21ca557b) ) ROM_LOAD32_WORD( "raiden_2_seibu_obj-3.u0837", 0x400000, 0x200000, CRC(897a0322) SHA1(abb2737a2446da5b364fc2d96524b43d808f4126) ) @@ -1837,18 +1823,16 @@ ROM_END ROM_START( raiden2k ) - ROM_REGION( 0x200000, "maincpu", 0 ) /* v30 main cpu */ + ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */ ROM_LOAD16_BYTE("k1.u0211", 0x000000, 0x80000, CRC(1fcc08cf) SHA1(bff7076ced189120166217d71e2762bb98aad7c8) ) // hand-written - ROM_RELOAD(0x100000, 0x80000) ROM_LOAD16_BYTE("k2.u0212", 0x000001, 0x80000, CRC(59a744ca) SHA1(5fdd7dd4049f944df23371e2e2d3133b10c66ab8) ) // hand-written - ROM_RELOAD(0x100001, 0x80000) ROM_REGION( 0x20000, "audiocpu", ROMREGION_ERASEFF ) /* 64k code for sound Z80 */ ROM_LOAD( "snd.u1110", 0x000000, 0x08000, CRC(f51a28f9) SHA1(7ae2e2ba0c8159a544a8fd2bb0c2c694ba849302) ) ROM_CONTINUE(0x10000,0x8000) ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD( "seibu7.u0724", 0x000000, 0x020000, CRC(c9ec9469) SHA1(a29f480a1bee073be7a177096ef58e1887a5af24) ) /* PCB silkscreened FX0 */ ROM_REGION( 0x100000, "oki1", 0 ) /* ADPCM samples */ @@ -1860,14 +1844,14 @@ ROM_START( raiden2k ) ROM_LOAD( "jj4b01__mmipal16l8bcn.u0341", 0x0000, 0x117, CRC(20931f21) SHA1(95ce9cfbfb280dfc6a326e378684eff3c6f54701) ) // Common Raiden II soldered mask ROMs below - ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ + ROM_REGION( 0x40000, "copx", 0 ) /* COPX */ ROM_LOAD( "copx-d2.u0313", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "raiden_2_seibu_bg-1.u075", 0x000000, 0x200000, CRC(e61ad38e) SHA1(63b06cd38db946ad3fc5c1482dc863ef80b58fec) ) ROM_LOAD( "raiden_2_seibu_bg-2.u0714", 0x200000, 0x200000, CRC(a694a4bb) SHA1(39c2614d0effc899fe58f735604283097769df77) ) - ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */ + ROM_REGION32_LE( 0x800000, "sprites", 0 ) /* sprite gfx (encrypted) */ ROM_LOAD32_WORD( "raiden_2_seibu_obj-1.u0811", 0x000000, 0x200000, CRC(ff08ef0b) SHA1(a1858430e8171ca8bab785457ef60e151b5e5cf1) ) ROM_LOAD32_WORD( "raiden_2_seibu_obj-2.u082", 0x000002, 0x200000, CRC(638eb771) SHA1(9774cc070e71668d7d1d20795502dccd21ca557b) ) ROM_LOAD32_WORD( "raiden_2_seibu_obj-3.u0837", 0x400000, 0x200000, CRC(897a0322) SHA1(abb2737a2446da5b364fc2d96524b43d808f4126) ) @@ -1895,18 +1879,16 @@ The entire FAQ is available here: */ ROM_START( raiden2e ) - ROM_REGION( 0x200000, "maincpu", 0 ) /* v30 main cpu */ + ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */ ROM_LOAD16_BYTE("r2_prg_0.u0211", 0x000000, 0x80000, CRC(2abc848c) SHA1(1df4276d0074fcf1267757fa0b525a980a520f3d) ) - ROM_RELOAD(0x100000, 0x80000) ROM_LOAD16_BYTE("r2_prg_1.u0212", 0x000001, 0x80000, CRC(509ade43) SHA1(7cdee7bb00a6a1c7899d10b96385d54c261f6f5a) ) - ROM_RELOAD(0x100001, 0x80000) ROM_REGION( 0x20000, "audiocpu", ROMREGION_ERASEFF ) /* 64k code for sound Z80 */ ROM_LOAD( "r2_snd.u1110", 0x000000, 0x08000, CRC(6bad0a3e) SHA1(eb7ae42353e1984cd60b569c26cdbc3b025a7da6) ) ROM_CONTINUE(0x10000,0x8000) ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD( "r2_fx0.u0724", 0x000000, 0x020000, CRC(c709bdf6) SHA1(0468d90412b7590d67eaadc0a5e3537cd5e73943) ) ROM_REGION( 0x100000, "oki1", 0 ) /* ADPCM samples */ @@ -1918,14 +1900,14 @@ ROM_START( raiden2e ) ROM_LOAD( "jj4b01__mmipal16l8bcn.u0341", 0x0000, 0x117, CRC(20931f21) SHA1(95ce9cfbfb280dfc6a326e378684eff3c6f54701) ) // Common Raiden II soldered mask ROMs below - ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ + ROM_REGION( 0x40000, "copx", 0 ) /* COPX */ ROM_LOAD( "copx-d2.u0313", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "raiden_2_seibu_bg-1.u075", 0x000000, 0x200000, CRC(e61ad38e) SHA1(63b06cd38db946ad3fc5c1482dc863ef80b58fec) ) ROM_LOAD( "raiden_2_seibu_bg-2.u0714", 0x200000, 0x200000, CRC(a694a4bb) SHA1(39c2614d0effc899fe58f735604283097769df77) ) - ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */ + ROM_REGION32_LE( 0x800000, "sprites", 0 ) /* sprite gfx (encrypted) */ ROM_LOAD32_WORD( "raiden_2_seibu_obj-1.u0811", 0x000000, 0x200000, CRC(ff08ef0b) SHA1(a1858430e8171ca8bab785457ef60e151b5e5cf1) ) ROM_LOAD32_WORD( "raiden_2_seibu_obj-2.u082", 0x000002, 0x200000, CRC(638eb771) SHA1(9774cc070e71668d7d1d20795502dccd21ca557b) ) ROM_LOAD32_WORD( "raiden_2_seibu_obj-3.u0837", 0x400000, 0x200000, CRC(897a0322) SHA1(abb2737a2446da5b364fc2d96524b43d808f4126) ) @@ -1936,18 +1918,16 @@ ROM_START( raiden2e ) ROM_END ROM_START( raiden2ea ) - ROM_REGION( 0x200000, "maincpu", 0 ) /* v30 main cpu */ + ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */ ROM_LOAD16_BYTE("r2.1.u0211", 0x000000, 0x80000, CRC(d7041be4) SHA1(3cf97132fba6f7b00c9059265f4e9f0bf1505b71) ) - ROM_RELOAD(0x100000, 0x80000) ROM_LOAD16_BYTE("r2.2.u0212", 0x000001, 0x80000, CRC(bf7577ec) SHA1(98576af78760b8aef1ef3efe1ba963977c89d225) ) - ROM_RELOAD(0x100001, 0x80000) ROM_REGION( 0x20000, "audiocpu", 0 ) /* 64k code for sound Z80 */ ROM_LOAD( "r2.5.u1110", 0x000000, 0x08000, CRC(f5f835af) SHA1(5be82ebc582d0da919e9ae1b9e64528bb295efc7) ) ROM_CONTINUE(0x10000,0x8000) ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD( "r2.7.u0724", 0x000000, 0x020000, CRC(c7aa4d00) SHA1(9ad99d3891598c1ea3f12318400ee67666da56dd) ) ROM_REGION( 0x100000, "oki1", 0 ) /* ADPCM samples */ @@ -1959,14 +1939,14 @@ ROM_START( raiden2ea ) ROM_LOAD( "jj4b01__mmipal16l8bcn.u0341", 0x0000, 0x117, CRC(20931f21) SHA1(95ce9cfbfb280dfc6a326e378684eff3c6f54701) ) // Common Raiden II soldered mask ROMs below - ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ + ROM_REGION( 0x40000, "copx", 0 ) /* COPX */ ROM_LOAD( "copx-d2.u0313", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "raiden_2_seibu_bg-1.u075", 0x000000, 0x200000, CRC(e61ad38e) SHA1(63b06cd38db946ad3fc5c1482dc863ef80b58fec) ) ROM_LOAD( "raiden_2_seibu_bg-2.u0714", 0x200000, 0x200000, CRC(a694a4bb) SHA1(39c2614d0effc899fe58f735604283097769df77) ) - ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */ + ROM_REGION32_LE( 0x800000, "sprites", 0 ) /* sprite gfx (encrypted) */ ROM_LOAD32_WORD( "raiden_2_seibu_obj-1.u0811", 0x000000, 0x200000, CRC(ff08ef0b) SHA1(a1858430e8171ca8bab785457ef60e151b5e5cf1) ) ROM_LOAD32_WORD( "raiden_2_seibu_obj-2.u082", 0x000002, 0x200000, CRC(638eb771) SHA1(9774cc070e71668d7d1d20795502dccd21ca557b) ) ROM_LOAD32_WORD( "raiden_2_seibu_obj-3.u0837", 0x400000, 0x200000, CRC(897a0322) SHA1(abb2737a2446da5b364fc2d96524b43d808f4126) ) @@ -1977,18 +1957,16 @@ ROM_START( raiden2ea ) ROM_END ROM_START( raiden2eu ) // same as raiden2ea, different region - ROM_REGION( 0x200000, "maincpu", 0 ) /* v30 main cpu */ + ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */ ROM_LOAD16_BYTE("seibu_1.u0211", 0x000000, 0x80000, CRC(d7041be4) SHA1(3cf97132fba6f7b00c9059265f4e9f0bf1505b71) ) // sldh w/raiden2sw - ROM_RELOAD(0x100000, 0x80000) ROM_LOAD16_BYTE("seibu_2.u0212", 0x000001, 0x80000, CRC(beb71ddb) SHA1(471399ead1cdc27ac2a1139f9616f828efd14626) ) // sldh w/raiden2sw - ROM_RELOAD(0x100001, 0x80000) ROM_REGION( 0x20000, "audiocpu", 0 ) /* 64k code for sound Z80 */ ROM_LOAD( "r2.5.u1110", 0x000000, 0x08000, CRC(f5f835af) SHA1(5be82ebc582d0da919e9ae1b9e64528bb295efc7) ) ROM_CONTINUE(0x10000,0x8000) ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD( "r2.7.u0724", 0x000000, 0x020000, CRC(c7aa4d00) SHA1(9ad99d3891598c1ea3f12318400ee67666da56dd) ) ROM_REGION( 0x100000, "oki1", 0 ) /* ADPCM samples */ @@ -2000,14 +1978,14 @@ ROM_START( raiden2eu ) // same as raiden2ea, different region ROM_LOAD( "jj4b01__mmipal16l8bcn.u0341", 0x0000, 0x117, CRC(20931f21) SHA1(95ce9cfbfb280dfc6a326e378684eff3c6f54701) ) // Common Raiden II soldered mask ROMs below - ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ + ROM_REGION( 0x40000, "copx", 0 ) /* COPX */ ROM_LOAD( "copx-d2.u0313", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "raiden_2_seibu_bg-1.u075", 0x000000, 0x200000, CRC(e61ad38e) SHA1(63b06cd38db946ad3fc5c1482dc863ef80b58fec) ) ROM_LOAD( "raiden_2_seibu_bg-2.u0714", 0x200000, 0x200000, CRC(a694a4bb) SHA1(39c2614d0effc899fe58f735604283097769df77) ) - ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */ + ROM_REGION32_LE( 0x800000, "sprites", 0 ) /* sprite gfx (encrypted) */ ROM_LOAD32_WORD( "raiden_2_seibu_obj-1.u0811", 0x000000, 0x200000, CRC(ff08ef0b) SHA1(a1858430e8171ca8bab785457ef60e151b5e5cf1) ) ROM_LOAD32_WORD( "raiden_2_seibu_obj-2.u082", 0x000002, 0x200000, CRC(638eb771) SHA1(9774cc070e71668d7d1d20795502dccd21ca557b) ) ROM_LOAD32_WORD( "raiden_2_seibu_obj-3.u0837", 0x400000, 0x200000, CRC(897a0322) SHA1(abb2737a2446da5b364fc2d96524b43d808f4126) ) @@ -2018,22 +1996,18 @@ ROM_START( raiden2eu ) // same as raiden2ea, different region ROM_END ROM_START( raiden2eua ) // sort of a mixture of raiden2e easy set with voice ROM of raiden2ea and 2f and a unique sound ROM - ROM_REGION( 0x200000, "maincpu", 0 ) /* v30 main cpu */ + ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */ ROM_LOAD32_BYTE("seibu__1.27c020j.u1210", 0x000000, 0x40000, CRC(ed1514e3) SHA1(296125bfe3c4f3033f7aa319dd8554bc978c4a00) ) - ROM_RELOAD(0x100000, 0x40000) ROM_LOAD32_BYTE("seibu__2.27c2001.u1211", 0x000001, 0x40000, CRC(bb6ecf2a) SHA1(d4f628e9d0ed2897654f05a8a2541e1ed3faf8dd) ) - ROM_RELOAD(0x100001, 0x40000) ROM_LOAD32_BYTE("seibu__3.27c2001.u129", 0x000002, 0x40000, CRC(6a01d52c) SHA1(983b914592ab9d9c058bebb5bccf5c882e2b82de) ) - ROM_RELOAD(0x100002, 0x40000) ROM_LOAD32_BYTE("seibu__4.27c2001.u1212", 0x000003, 0x40000, CRC(e54bfa37) SHA1(4fabb23503fd9245a10cded15a6880415ca5ffd7) ) - ROM_RELOAD(0x100003, 0x40000) ROM_REGION( 0x20000, "audiocpu", 0 ) /* 64k code for sound Z80 */ ROM_LOAD( "seibu__5.27c512.u1110", 0x000000, 0x08000, CRC(6d362472) SHA1(a362e500bb9492affde1f7a4da7e08dd16e755df) ) ROM_CONTINUE(0x10000,0x8000) ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD( "seibu__7.fx0.27c210.u0724", 0x000000, 0x020000, CRC(c7aa4d00) SHA1(9ad99d3891598c1ea3f12318400ee67666da56dd) ) ROM_REGION( 0x100000, "oki1", 0 ) /* ADPCM samples */ @@ -2045,14 +2019,14 @@ ROM_START( raiden2eua ) // sort of a mixture of raiden2e easy set with voice ROM ROM_LOAD( "jj4b01__mmipal16l8bcn.u0341", 0x0000, 0x117, CRC(20931f21) SHA1(95ce9cfbfb280dfc6a326e378684eff3c6f54701) ) // Common Raiden II soldered mask ROMs below - ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ + ROM_REGION( 0x40000, "copx", 0 ) /* COPX */ ROM_LOAD( "copx-d2.u0313", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "raiden_2_seibu_bg-1.u075", 0x000000, 0x200000, CRC(e61ad38e) SHA1(63b06cd38db946ad3fc5c1482dc863ef80b58fec) ) ROM_LOAD( "raiden_2_seibu_bg-2.u0714", 0x200000, 0x200000, CRC(a694a4bb) SHA1(39c2614d0effc899fe58f735604283097769df77) ) - ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */ + ROM_REGION32_LE( 0x800000, "sprites", 0 ) /* sprite gfx (encrypted) */ ROM_LOAD32_WORD( "raiden_2_seibu_obj-1.u0811", 0x000000, 0x200000, CRC(ff08ef0b) SHA1(a1858430e8171ca8bab785457ef60e151b5e5cf1) ) ROM_LOAD32_WORD( "raiden_2_seibu_obj-2.u082", 0x000002, 0x200000, CRC(638eb771) SHA1(9774cc070e71668d7d1d20795502dccd21ca557b) ) ROM_LOAD32_WORD( "raiden_2_seibu_obj-3.u0837", 0x400000, 0x200000, CRC(897a0322) SHA1(abb2737a2446da5b364fc2d96524b43d808f4126) ) @@ -2063,22 +2037,18 @@ ROM_START( raiden2eua ) // sort of a mixture of raiden2e easy set with voice ROM ROM_END ROM_START( raiden2eg ) // this is the same code revision as raiden2eua but a german region - ROM_REGION( 0x200000, "maincpu", 0 ) /* v30 main cpu */ + ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */ ROM_LOAD32_BYTE("raiden_2_1.u1210", 0x000000, 0x40000, CRC(ed1514e3) SHA1(296125bfe3c4f3033f7aa319dd8554bc978c4a00) ) - ROM_RELOAD(0x100000, 0x40000) ROM_LOAD32_BYTE("raiden_2_2.u1211", 0x000001, 0x40000, CRC(bb6ecf2a) SHA1(d4f628e9d0ed2897654f05a8a2541e1ed3faf8dd) ) - ROM_RELOAD(0x100001, 0x40000) ROM_LOAD32_BYTE("raiden_2_3.u129", 0x000002, 0x40000, CRC(6a01d52c) SHA1(983b914592ab9d9c058bebb5bccf5c882e2b82de) ) - ROM_RELOAD(0x100002, 0x40000) ROM_LOAD32_BYTE("raiden_2_4.u1212", 0x000003, 0x40000, CRC(81273f33) SHA1(074cedf44cc5286649cc101bce0b48d40234e472) ) - ROM_RELOAD(0x100003, 0x40000) ROM_REGION( 0x20000, "audiocpu", 0 ) /* 64k code for sound Z80 */ ROM_LOAD( "raiden_2_5.bin", 0x000000, 0x08000, CRC(6d362472) SHA1(a362e500bb9492affde1f7a4da7e08dd16e755df) ) ROM_CONTINUE(0x10000,0x8000) ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD( "raiden_2_7.bin", 0x000000, 0x020000, CRC(c7aa4d00) SHA1(9ad99d3891598c1ea3f12318400ee67666da56dd) ) ROM_REGION( 0x100000, "oki1", 0 ) /* ADPCM samples */ @@ -2090,14 +2060,14 @@ ROM_START( raiden2eg ) // this is the same code revision as raiden2eua but a ger ROM_LOAD( "jj4b01__mmipal16l8bcn.u0341", 0x0000, 0x117, CRC(20931f21) SHA1(95ce9cfbfb280dfc6a326e378684eff3c6f54701) ) // Common Raiden II soldered mask ROMs below - ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ + ROM_REGION( 0x40000, "copx", 0 ) /* COPX */ ROM_LOAD( "copx-d2.u0313", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "raiden_2_seibu_bg-1.u075", 0x000000, 0x200000, CRC(e61ad38e) SHA1(63b06cd38db946ad3fc5c1482dc863ef80b58fec) ) ROM_LOAD( "raiden_2_seibu_bg-2.u0714", 0x200000, 0x200000, CRC(a694a4bb) SHA1(39c2614d0effc899fe58f735604283097769df77) ) - ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */ + ROM_REGION32_LE( 0x800000, "sprites", 0 ) /* sprite gfx (encrypted) */ ROM_LOAD32_WORD( "raiden_2_seibu_obj-1.u0811", 0x000000, 0x200000, CRC(ff08ef0b) SHA1(a1858430e8171ca8bab785457ef60e151b5e5cf1) ) ROM_LOAD32_WORD( "raiden_2_seibu_obj-2.u082", 0x000002, 0x200000, CRC(638eb771) SHA1(9774cc070e71668d7d1d20795502dccd21ca557b) ) ROM_LOAD32_WORD( "raiden_2_seibu_obj-3.u0837", 0x400000, 0x200000, CRC(897a0322) SHA1(abb2737a2446da5b364fc2d96524b43d808f4126) ) @@ -2108,22 +2078,18 @@ ROM_START( raiden2eg ) // this is the same code revision as raiden2eua but a ger ROM_END ROM_START( raiden2eup ) - ROM_REGION( 0x200000, "maincpu", 0 ) /* v30 main cpu */ + ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */ ROM_LOAD32_BYTE("prg0 11-16.u1210", 0x000000, 0x40000, CRC(0a68a400) SHA1(7b3baae086ea9604af29eabde358da358d43591f) ) - ROM_RELOAD(0x100000, 0x40000) ROM_LOAD32_BYTE("prg1 11-16.u1211", 0x000001, 0x40000, CRC(45a01ebe) SHA1(8b114198130ead8a70cc64b195fba5a3507ff6cb) ) - ROM_RELOAD(0x100001, 0x40000) ROM_LOAD32_BYTE("prg2 11-16.u129", 0x000002, 0x40000, CRC(9a6e33d7) SHA1(fadaec486cd4163d4b8f41aac171baaac3505e30) ) - ROM_RELOAD(0x100002, 0x40000) ROM_LOAD32_BYTE("prg3a 11-16.u1212", 0x000003, 0x40000, CRC(42ce511b) SHA1(59f199cb52cb315ddea0373b978541b8efeb57a3) ) - ROM_RELOAD(0x100003, 0x40000) ROM_REGION( 0x20000, "audiocpu", 0 ) /* 64k code for sound Z80 */ ROM_LOAD( "sound 11-12.bin", 0x000000, 0x08000, CRC(4fac206c) SHA1(47b78b2efe88729df07033a8674ba203cdf2e44c) ) ROM_CONTINUE(0x10000,0x8000) ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD( "fix.bin", 0x000000, 0x020000, CRC(6a6fa0de) SHA1(4e2ba9e84f5f5684b480e6d7f86bfc08ac9f5337) ) ROM_REGION( 0x100000, "oki1", 0 ) /* ADPCM samples */ @@ -2135,14 +2101,14 @@ ROM_START( raiden2eup ) ROM_LOAD( "jj4b01__mmipal16l8bcn.u0341", 0x0000, 0x117, CRC(20931f21) SHA1(95ce9cfbfb280dfc6a326e378684eff3c6f54701) ) // Common Raiden II soldered mask ROMs below - ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ + ROM_REGION( 0x40000, "copx", 0 ) /* COPX */ ROM_LOAD( "copx-d2.u0313", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "raiden_2_seibu_bg-1.u075", 0x000000, 0x200000, CRC(e61ad38e) SHA1(63b06cd38db946ad3fc5c1482dc863ef80b58fec) ) ROM_LOAD( "raiden_2_seibu_bg-2.u0714", 0x200000, 0x200000, CRC(a694a4bb) SHA1(39c2614d0effc899fe58f735604283097769df77) ) - ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */ + ROM_REGION32_LE( 0x800000, "sprites", 0 ) /* sprite gfx (encrypted) */ ROM_LOAD32_WORD( "raiden_2_seibu_obj-1.u0811", 0x000000, 0x200000, CRC(ff08ef0b) SHA1(a1858430e8171ca8bab785457ef60e151b5e5cf1) ) ROM_LOAD32_WORD( "raiden_2_seibu_obj-2.u082", 0x000002, 0x200000, CRC(638eb771) SHA1(9774cc070e71668d7d1d20795502dccd21ca557b) ) ROM_LOAD32_WORD( "raiden_2_seibu_obj-3.u0837", 0x400000, 0x200000, CRC(897a0322) SHA1(abb2737a2446da5b364fc2d96524b43d808f4126) ) @@ -2153,18 +2119,16 @@ ROM_START( raiden2eup ) ROM_END ROM_START( raiden2eub ) - ROM_REGION( 0x200000, "maincpu", 0 ) /* v30 main cpu */ + ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */ ROM_LOAD16_BYTE("r2_prg_0.u0211", 0x000000, 0x80000, CRC(2abc848c) SHA1(1df4276d0074fcf1267757fa0b525a980a520f3d) ) - ROM_RELOAD(0x100000, 0x80000) ROM_LOAD16_BYTE("r2_prg_1.u0212", 0x000001, 0x80000, CRC(56511ca8) SHA1(1073f9a5dab185b161306d1f0db44ae84865294b) ) - ROM_RELOAD(0x100001, 0x80000) ROM_REGION( 0x20000, "audiocpu", ROMREGION_ERASEFF ) /* 64k code for sound Z80 */ ROM_LOAD( "r2_snd.u1110", 0x000000, 0x08000, CRC(6d362472) SHA1(a362e500bb9492affde1f7a4da7e08dd16e755df) ) ROM_CONTINUE(0x10000,0x8000) ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD( "r2.7.u0724", 0x000000, 0x020000, CRC(c7aa4d00) SHA1(9ad99d3891598c1ea3f12318400ee67666da56dd) ) ROM_REGION( 0x100000, "oki1", 0 ) /* ADPCM samples */ @@ -2176,14 +2140,14 @@ ROM_START( raiden2eub ) ROM_LOAD( "jj4b01__mmipal16l8bcn.u0341", 0x0000, 0x117, CRC(20931f21) SHA1(95ce9cfbfb280dfc6a326e378684eff3c6f54701) ) // Common Raiden II soldered mask ROMs below - ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ + ROM_REGION( 0x40000, "copx", 0 ) /* COPX */ ROM_LOAD( "copx-d2.u0313", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "raiden_2_seibu_bg-1.u075", 0x000000, 0x200000, CRC(e61ad38e) SHA1(63b06cd38db946ad3fc5c1482dc863ef80b58fec) ) ROM_LOAD( "raiden_2_seibu_bg-2.u0714", 0x200000, 0x200000, CRC(a694a4bb) SHA1(39c2614d0effc899fe58f735604283097769df77) ) - ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */ + ROM_REGION32_LE( 0x800000, "sprites", 0 ) /* sprite gfx (encrypted) */ ROM_LOAD32_WORD( "raiden_2_seibu_obj-1.u0811", 0x000000, 0x200000, CRC(ff08ef0b) SHA1(a1858430e8171ca8bab785457ef60e151b5e5cf1) ) ROM_LOAD32_WORD( "raiden_2_seibu_obj-2.u082", 0x000002, 0x200000, CRC(638eb771) SHA1(9774cc070e71668d7d1d20795502dccd21ca557b) ) ROM_LOAD32_WORD( "raiden_2_seibu_obj-3.u0837", 0x400000, 0x200000, CRC(897a0322) SHA1(abb2737a2446da5b364fc2d96524b43d808f4126) ) @@ -2205,7 +2169,7 @@ ROM_START( raiden2dx ) // this set is very weird, it's Raiden II on a Raiden DX ROM_CONTINUE(0x10000,0x8000) ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ //ROM_LOAD( "fx0_u0724.bin", 0x000000, 0x020000, CRC(ded3c718) SHA1(c722ec45cd1b2dab23aac14e9113e0e9697830d3) ) // bad dump ROM_LOAD( "7_u0724.bin", 0x000000, 0x020000, CRC(c9ec9469) SHA1(a29f480a1bee073be7a177096ef58e1887a5af24) ) /* PCB silkscreened FX0 */ @@ -2213,14 +2177,14 @@ ROM_START( raiden2dx ) // this set is very weird, it's Raiden II on a Raiden DX ROM_LOAD( "dx_6.3b", 0x00000, 0x40000, CRC(9a9196da) SHA1(3d1ee67fb0d40a231ce04d10718f07ffb76db455) ) // Common Raiden DX(!) soldered mask ROMs below - ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ + ROM_REGION( 0x40000, "copx", 0 ) /* COPX */ ROM_LOAD( "copx-d2.6s", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) /* Shared with original Raiden 2 */ - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "dx_back1.1s", 0x000000, 0x200000, CRC(90970355) SHA1(d71d57cd550a800f583550365102adb7b1b779fc) ) ROM_LOAD( "dx_back2.2s", 0x200000, 0x200000, CRC(5799af3e) SHA1(85d6532abd769da77bcba70bd2e77915af40f987) ) - ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */ + ROM_REGION32_LE( 0x800000, "sprites", 0 ) /* sprite gfx (encrypted) */ ROM_LOAD32_WORD( "obj1", 0x000000, 0x200000, CRC(ff08ef0b) SHA1(a1858430e8171ca8bab785457ef60e151b5e5cf1) ) /* Shared with original Raiden 2 */ ROM_LOAD32_WORD( "obj2", 0x000002, 0x200000, CRC(638eb771) SHA1(9774cc070e71668d7d1d20795502dccd21ca557b) ) /* Shared with original Raiden 2 */ ROM_LOAD32_WORD( "dx_obj3.4k", 0x400000, 0x200000, CRC(ba381227) SHA1(dfc4d659aca1722a981fa56a31afabe66f444d5d) ) @@ -2244,21 +2208,21 @@ ROM_START( raidendx ) ROM_CONTINUE(0x10000,0x8000) ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD( "seibu_7.u0724", 0x000000, 0x020000, CRC(c73986d4) SHA1(d29345077753bda53560dedc95dd23f329e521d9) ) ROM_REGION( 0x100000, "oki1", 0 ) /* ADPCM samples */ ROM_LOAD( "seibu_6.u1017", 0x00000, 0x40000, CRC(9a9196da) SHA1(3d1ee67fb0d40a231ce04d10718f07ffb76db455) ) // Common Raiden DX soldered mask ROMs below - ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ + ROM_REGION( 0x40000, "copx", 0 ) /* COPX */ ROM_LOAD( "copx-d2.u0313", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) /* Shared with original Raiden 2 */ - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "dx_back-1.u075", 0x000000, 0x200000, CRC(90970355) SHA1(d71d57cd550a800f583550365102adb7b1b779fc) ) ROM_LOAD( "dx_back-2.u0714", 0x200000, 0x200000, CRC(5799af3e) SHA1(85d6532abd769da77bcba70bd2e77915af40f987) ) - ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */ + ROM_REGION32_LE( 0x800000, "sprites", 0 ) /* sprite gfx (encrypted) */ ROM_LOAD32_WORD( "raiden_2_obj-1.u0811", 0x000000, 0x200000, CRC(ff08ef0b) SHA1(a1858430e8171ca8bab785457ef60e151b5e5cf1) ) /* Shared with original Raiden 2 */ ROM_LOAD32_WORD( "raiden_2_obj-2.u082", 0x000002, 0x200000, CRC(638eb771) SHA1(9774cc070e71668d7d1d20795502dccd21ca557b) ) /* Shared with original Raiden 2 */ ROM_LOAD32_WORD( "dx_obj-3.u0837", 0x400000, 0x200000, CRC(ba381227) SHA1(dfc4d659aca1722a981fa56a31afabe66f444d5d) ) @@ -2280,21 +2244,21 @@ ROM_START( raidendxg ) ROM_CONTINUE(0x10000,0x8000) ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD( "seibu_7.u0724", 0x000000, 0x020000, CRC(c73986d4) SHA1(d29345077753bda53560dedc95dd23f329e521d9) ) ROM_REGION( 0x100000, "oki1", 0 ) /* ADPCM samples */ ROM_LOAD( "seibu_6.u1017", 0x00000, 0x40000, CRC(9a9196da) SHA1(3d1ee67fb0d40a231ce04d10718f07ffb76db455) ) // Common Raiden DX soldered mask ROMs below - ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ + ROM_REGION( 0x40000, "copx", 0 ) /* COPX */ ROM_LOAD( "copx-d2.u0313", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) /* Shared with original Raiden 2 */ - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "dx_back-1.u075", 0x000000, 0x200000, CRC(90970355) SHA1(d71d57cd550a800f583550365102adb7b1b779fc) ) ROM_LOAD( "dx_back-2.u0714", 0x200000, 0x200000, CRC(5799af3e) SHA1(85d6532abd769da77bcba70bd2e77915af40f987) ) - ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */ + ROM_REGION32_LE( 0x800000, "sprites", 0 ) /* sprite gfx (encrypted) */ ROM_LOAD32_WORD( "raiden_2_obj-1.u0811", 0x000000, 0x200000, CRC(ff08ef0b) SHA1(a1858430e8171ca8bab785457ef60e151b5e5cf1) ) /* Shared with original Raiden 2 */ ROM_LOAD32_WORD( "raiden_2_obj-2.u082", 0x000002, 0x200000, CRC(638eb771) SHA1(9774cc070e71668d7d1d20795502dccd21ca557b) ) /* Shared with original Raiden 2 */ ROM_LOAD32_WORD( "dx_obj-3.u0837", 0x400000, 0x200000, CRC(ba381227) SHA1(dfc4d659aca1722a981fa56a31afabe66f444d5d) ) @@ -2316,21 +2280,21 @@ ROM_START( raidendxpt ) ROM_CONTINUE(0x10000,0x8000) ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD( "seibu_7.u0724", 0x000000, 0x020000, CRC(c73986d4) SHA1(d29345077753bda53560dedc95dd23f329e521d9) ) ROM_REGION( 0x100000, "oki1", 0 ) /* ADPCM samples */ ROM_LOAD( "seibu_6.u1017", 0x00000, 0x40000, CRC(9a9196da) SHA1(3d1ee67fb0d40a231ce04d10718f07ffb76db455) ) // Common Raiden DX soldered mask ROMs below - ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ + ROM_REGION( 0x40000, "copx", 0 ) /* COPX */ ROM_LOAD( "copx-d2.u0313", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) /* Shared with original Raiden 2 */ - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "dx_back-1.u075", 0x000000, 0x200000, CRC(90970355) SHA1(d71d57cd550a800f583550365102adb7b1b779fc) ) ROM_LOAD( "dx_back-2.u0714", 0x200000, 0x200000, CRC(5799af3e) SHA1(85d6532abd769da77bcba70bd2e77915af40f987) ) - ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */ + ROM_REGION32_LE( 0x800000, "sprites", 0 ) /* sprite gfx (encrypted) */ ROM_LOAD32_WORD( "raiden_2_obj-1.u0811", 0x000000, 0x200000, CRC(ff08ef0b) SHA1(a1858430e8171ca8bab785457ef60e151b5e5cf1) ) /* Shared with original Raiden 2 */ ROM_LOAD32_WORD( "raiden_2_obj-2.u082", 0x000002, 0x200000, CRC(638eb771) SHA1(9774cc070e71668d7d1d20795502dccd21ca557b) ) /* Shared with original Raiden 2 */ ROM_LOAD32_WORD( "dx_obj-3.u0837", 0x400000, 0x200000, CRC(ba381227) SHA1(dfc4d659aca1722a981fa56a31afabe66f444d5d) ) @@ -2352,21 +2316,21 @@ ROM_START( raidendxa1 ) ROM_CONTINUE(0x10000,0x8000) ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD( "seibu_7.u0724", 0x000000, 0x020000, CRC(c73986d4) SHA1(d29345077753bda53560dedc95dd23f329e521d9) ) ROM_REGION( 0x100000, "oki1", 0 ) /* ADPCM samples */ ROM_LOAD( "seibu_6.u1017", 0x00000, 0x40000, CRC(9a9196da) SHA1(3d1ee67fb0d40a231ce04d10718f07ffb76db455) ) // Common Raiden DX soldered mask ROMs below - ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ + ROM_REGION( 0x40000, "copx", 0 ) /* COPX */ ROM_LOAD( "copx-d2.u0313", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) /* Shared with original Raiden 2 */ - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "dx_back-1.u075", 0x000000, 0x200000, CRC(90970355) SHA1(d71d57cd550a800f583550365102adb7b1b779fc) ) ROM_LOAD( "dx_back-2.u0714", 0x200000, 0x200000, CRC(5799af3e) SHA1(85d6532abd769da77bcba70bd2e77915af40f987) ) - ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */ + ROM_REGION32_LE( 0x800000, "sprites", 0 ) /* sprite gfx (encrypted) */ ROM_LOAD32_WORD( "raiden_2_obj-1.u0811", 0x000000, 0x200000, CRC(ff08ef0b) SHA1(a1858430e8171ca8bab785457ef60e151b5e5cf1) ) /* Shared with original Raiden 2 */ ROM_LOAD32_WORD( "raiden_2_obj-2.u082", 0x000002, 0x200000, CRC(638eb771) SHA1(9774cc070e71668d7d1d20795502dccd21ca557b) ) /* Shared with original Raiden 2 */ ROM_LOAD32_WORD( "dx_obj-3.u0837", 0x400000, 0x200000, CRC(ba381227) SHA1(dfc4d659aca1722a981fa56a31afabe66f444d5d) ) @@ -2388,21 +2352,21 @@ ROM_START( raidendxa2 ) ROM_CONTINUE(0x10000,0x8000) ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD( "seibu_7.u0724", 0x000000, 0x020000, CRC(c73986d4) SHA1(d29345077753bda53560dedc95dd23f329e521d9) ) ROM_REGION( 0x100000, "oki1", 0 ) /* ADPCM samples */ ROM_LOAD( "seibu_6.u1017", 0x00000, 0x40000, CRC(9a9196da) SHA1(3d1ee67fb0d40a231ce04d10718f07ffb76db455) ) // Common Raiden DX soldered mask ROMs below - ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ + ROM_REGION( 0x40000, "copx", 0 ) /* COPX */ ROM_LOAD( "copx-d2.u0313", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) /* Shared with original Raiden 2 */ - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "dx_back-1.u075", 0x000000, 0x200000, CRC(90970355) SHA1(d71d57cd550a800f583550365102adb7b1b779fc) ) ROM_LOAD( "dx_back-2.u0714", 0x200000, 0x200000, CRC(5799af3e) SHA1(85d6532abd769da77bcba70bd2e77915af40f987) ) - ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */ + ROM_REGION32_LE( 0x800000, "sprites", 0 ) /* sprite gfx (encrypted) */ ROM_LOAD32_WORD( "raiden_2_obj-1.u0811", 0x000000, 0x200000, CRC(ff08ef0b) SHA1(a1858430e8171ca8bab785457ef60e151b5e5cf1) ) /* Shared with original Raiden 2 */ ROM_LOAD32_WORD( "raiden_2_obj-2.u082", 0x000002, 0x200000, CRC(638eb771) SHA1(9774cc070e71668d7d1d20795502dccd21ca557b) ) /* Shared with original Raiden 2 */ ROM_LOAD32_WORD( "dx_obj-3.u0837", 0x400000, 0x200000, CRC(ba381227) SHA1(dfc4d659aca1722a981fa56a31afabe66f444d5d) ) @@ -2424,21 +2388,21 @@ ROM_START( raidendxk ) ROM_CONTINUE(0x10000,0x8000) ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD( "seibu_7.u0724", 0x000000, 0x020000, CRC(c73986d4) SHA1(d29345077753bda53560dedc95dd23f329e521d9) ) ROM_REGION( 0x100000, "oki1", 0 ) /* ADPCM samples */ ROM_LOAD( "seibu_6.u1017", 0x00000, 0x40000, CRC(9a9196da) SHA1(3d1ee67fb0d40a231ce04d10718f07ffb76db455) ) // Common Raiden DX soldered mask ROMs below - ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ + ROM_REGION( 0x40000, "copx", 0 ) /* COPX */ ROM_LOAD( "copx-d2.u0313", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) /* Shared with original Raiden 2 */ - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "dx_back-1.u075", 0x000000, 0x200000, CRC(90970355) SHA1(d71d57cd550a800f583550365102adb7b1b779fc) ) ROM_LOAD( "dx_back-2.u0714", 0x200000, 0x200000, CRC(5799af3e) SHA1(85d6532abd769da77bcba70bd2e77915af40f987) ) - ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */ + ROM_REGION32_LE( 0x800000, "sprites", 0 ) /* sprite gfx (encrypted) */ ROM_LOAD32_WORD( "raiden_2_obj-1.u0811", 0x000000, 0x200000, CRC(ff08ef0b) SHA1(a1858430e8171ca8bab785457ef60e151b5e5cf1) ) /* Shared with original Raiden 2 */ ROM_LOAD32_WORD( "raiden_2_obj-2.u082", 0x000002, 0x200000, CRC(638eb771) SHA1(9774cc070e71668d7d1d20795502dccd21ca557b) ) /* Shared with original Raiden 2 */ ROM_LOAD32_WORD( "dx_obj-3.u0837", 0x400000, 0x200000, CRC(ba381227) SHA1(dfc4d659aca1722a981fa56a31afabe66f444d5d) ) @@ -2460,21 +2424,21 @@ ROM_START( raidendxu ) ROM_CONTINUE(0x10000,0x8000) ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD( "seibu_7.u0724", 0x000000, 0x020000, CRC(c73986d4) SHA1(d29345077753bda53560dedc95dd23f329e521d9) ) ROM_REGION( 0x100000, "oki1", 0 ) /* ADPCM samples */ ROM_LOAD( "seibu_6.u1017", 0x00000, 0x40000, CRC(9a9196da) SHA1(3d1ee67fb0d40a231ce04d10718f07ffb76db455) ) // Common Raiden DX soldered mask ROMs below - ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ + ROM_REGION( 0x40000, "copx", 0 ) /* COPX */ ROM_LOAD( "copx-d2.u0313", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) /* Shared with original Raiden 2 */ - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "dx_back-1.u075", 0x000000, 0x200000, CRC(90970355) SHA1(d71d57cd550a800f583550365102adb7b1b779fc) ) ROM_LOAD( "dx_back-2.u0714", 0x200000, 0x200000, CRC(5799af3e) SHA1(85d6532abd769da77bcba70bd2e77915af40f987) ) - ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */ + ROM_REGION32_LE( 0x800000, "sprites", 0 ) /* sprite gfx (encrypted) */ ROM_LOAD32_WORD( "raiden_2_obj-1.u0811", 0x000000, 0x200000, CRC(ff08ef0b) SHA1(a1858430e8171ca8bab785457ef60e151b5e5cf1) ) /* Shared with original Raiden 2 */ ROM_LOAD32_WORD( "raiden_2_obj-2.u082", 0x000002, 0x200000, CRC(638eb771) SHA1(9774cc070e71668d7d1d20795502dccd21ca557b) ) /* Shared with original Raiden 2 */ ROM_LOAD32_WORD( "dx_obj-3.u0837", 0x400000, 0x200000, CRC(ba381227) SHA1(dfc4d659aca1722a981fa56a31afabe66f444d5d) ) @@ -2496,21 +2460,21 @@ ROM_START( raidendxnl ) ROM_CONTINUE(0x10000,0x8000) ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD( "seibu_7.u0724", 0x000000, 0x020000, CRC(c73986d4) SHA1(d29345077753bda53560dedc95dd23f329e521d9) ) ROM_REGION( 0x100000, "oki1", 0 ) /* ADPCM samples */ ROM_LOAD( "seibu_6.u1017", 0x00000, 0x40000, CRC(9a9196da) SHA1(3d1ee67fb0d40a231ce04d10718f07ffb76db455) ) // Common Raiden DX soldered mask ROMs below - ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ + ROM_REGION( 0x40000, "copx", 0 ) /* COPX */ ROM_LOAD( "copx-d2.u0313", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) /* Shared with original Raiden 2 */ - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "dx_back-1.u075", 0x000000, 0x200000, CRC(90970355) SHA1(d71d57cd550a800f583550365102adb7b1b779fc) ) ROM_LOAD( "dx_back-2.u0714", 0x200000, 0x200000, CRC(5799af3e) SHA1(85d6532abd769da77bcba70bd2e77915af40f987) ) - ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */ + ROM_REGION32_LE( 0x800000, "sprites", 0 ) /* sprite gfx (encrypted) */ ROM_LOAD32_WORD( "raiden_2_obj-1.u0811", 0x000000, 0x200000, CRC(ff08ef0b) SHA1(a1858430e8171ca8bab785457ef60e151b5e5cf1) ) /* Shared with original Raiden 2 */ ROM_LOAD32_WORD( "raiden_2_obj-2.u082", 0x000002, 0x200000, CRC(638eb771) SHA1(9774cc070e71668d7d1d20795502dccd21ca557b) ) /* Shared with original Raiden 2 */ ROM_LOAD32_WORD( "dx_obj-3.u0837", 0x400000, 0x200000, CRC(ba381227) SHA1(dfc4d659aca1722a981fa56a31afabe66f444d5d) ) @@ -2532,21 +2496,21 @@ ROM_START( raidendxj ) ROM_CONTINUE(0x10000,0x8000) ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD( "rdxj_7.u0724", 0x000000, 0x020000, CRC(ec31fa10) SHA1(e39c9d95699dbeb21e3661d863eee503c9011bbc) ) ROM_REGION( 0x100000, "oki1", 0 ) /* ADPCM samples */ ROM_LOAD( "seibu_6.u1017", 0x00000, 0x40000, CRC(9a9196da) SHA1(3d1ee67fb0d40a231ce04d10718f07ffb76db455) ) // Common Raiden DX soldered mask ROMs below - ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ + ROM_REGION( 0x40000, "copx", 0 ) /* COPX */ ROM_LOAD( "copx-d2.u0313", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) /* Shared with original Raiden 2 */ - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "dx_back-1.u075", 0x000000, 0x200000, CRC(90970355) SHA1(d71d57cd550a800f583550365102adb7b1b779fc) ) ROM_LOAD( "dx_back-2.u0714", 0x200000, 0x200000, CRC(5799af3e) SHA1(85d6532abd769da77bcba70bd2e77915af40f987) ) - ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */ + ROM_REGION32_LE( 0x800000, "sprites", 0 ) /* sprite gfx (encrypted) */ ROM_LOAD32_WORD( "raiden_2_obj-1.u0811", 0x000000, 0x200000, CRC(ff08ef0b) SHA1(a1858430e8171ca8bab785457ef60e151b5e5cf1) ) /* Shared with original Raiden 2 */ ROM_LOAD32_WORD( "raiden_2_obj-2.u082", 0x000002, 0x200000, CRC(638eb771) SHA1(9774cc070e71668d7d1d20795502dccd21ca557b) ) /* Shared with original Raiden 2 */ ROM_LOAD32_WORD( "dx_obj-3.u0837", 0x400000, 0x200000, CRC(ba381227) SHA1(dfc4d659aca1722a981fa56a31afabe66f444d5d) ) @@ -2568,21 +2532,21 @@ ROM_START( raidendxja ) ROM_CONTINUE(0x10000,0x8000) ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD( "rdxj_7.u0724", 0x000000, 0x020000, CRC(ec31fa10) SHA1(e39c9d95699dbeb21e3661d863eee503c9011bbc) ) ROM_REGION( 0x100000, "oki1", 0 ) /* ADPCM samples */ ROM_LOAD( "seibu_6.u1017", 0x00000, 0x40000, CRC(9a9196da) SHA1(3d1ee67fb0d40a231ce04d10718f07ffb76db455) ) // Common Raiden DX soldered mask ROMs below - ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ + ROM_REGION( 0x40000, "copx", 0 ) /* COPX */ ROM_LOAD( "copx-d2.u0313", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) /* Shared with original Raiden 2 */ - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "dx_back-1.u075", 0x000000, 0x200000, CRC(90970355) SHA1(d71d57cd550a800f583550365102adb7b1b779fc) ) ROM_LOAD( "dx_back-2.u0714", 0x200000, 0x200000, CRC(5799af3e) SHA1(85d6532abd769da77bcba70bd2e77915af40f987) ) - ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */ + ROM_REGION32_LE( 0x800000, "sprites", 0 ) /* sprite gfx (encrypted) */ ROM_LOAD32_WORD( "raiden_2_obj-1.u0811", 0x000000, 0x200000, CRC(ff08ef0b) SHA1(a1858430e8171ca8bab785457ef60e151b5e5cf1) ) /* Shared with original Raiden 2 */ ROM_LOAD32_WORD( "raiden_2_obj-2.u082", 0x000002, 0x200000, CRC(638eb771) SHA1(9774cc070e71668d7d1d20795502dccd21ca557b) ) /* Shared with original Raiden 2 */ ROM_LOAD32_WORD( "dx_obj-3.u0837", 0x400000, 0x200000, CRC(ba381227) SHA1(dfc4d659aca1722a981fa56a31afabe66f444d5d) ) @@ -2605,21 +2569,21 @@ ROM_START( raidendxch ) ROM_CONTINUE(0x10000,0x8000) ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD( "seibu_7.u0724", 0x000000, 0x020000, CRC(c73986d4) SHA1(d29345077753bda53560dedc95dd23f329e521d9) ) ROM_REGION( 0x100000, "oki1", 0 ) /* ADPCM samples */ ROM_LOAD( "seibu_6.u1017", 0x00000, 0x40000, CRC(9a9196da) SHA1(3d1ee67fb0d40a231ce04d10718f07ffb76db455) ) // Common Raiden DX soldered mask ROMs below - ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ + ROM_REGION( 0x40000, "copx", 0 ) /* COPX */ ROM_LOAD( "copx-d2.u0313", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) /* Shared with original Raiden 2 */ - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "dx_back-1.u075", 0x000000, 0x200000, CRC(90970355) SHA1(d71d57cd550a800f583550365102adb7b1b779fc) ) ROM_LOAD( "dx_back-2.u0714", 0x200000, 0x200000, CRC(5799af3e) SHA1(85d6532abd769da77bcba70bd2e77915af40f987) ) - ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */ + ROM_REGION32_LE( 0x800000, "sprites", 0 ) /* sprite gfx (encrypted) */ ROM_LOAD32_WORD( "raiden_2_obj-1.u0811", 0x000000, 0x200000, CRC(ff08ef0b) SHA1(a1858430e8171ca8bab785457ef60e151b5e5cf1) ) /* Shared with original Raiden 2 */ ROM_LOAD32_WORD( "raiden_2_obj-2.u082", 0x000002, 0x200000, CRC(638eb771) SHA1(9774cc070e71668d7d1d20795502dccd21ca557b) ) /* Shared with original Raiden 2 */ ROM_LOAD32_WORD( "dx_obj-3.u0837", 0x400000, 0x200000, CRC(ba381227) SHA1(dfc4d659aca1722a981fa56a31afabe66f444d5d) ) @@ -2723,13 +2687,13 @@ YM3812 plus Y3014 YM2151 plus Y3012 plus NJM4550 (some older pcbs h ROM_START( zeroteam ) // Fabtek, US licensee, displays 'USA' under zero team logo, board had serial 'Seibu Kaihatsu No. 0001468' on it, as well as AAMA 0458657 - ROM_REGION( 0x200000, "maincpu", 0 ) /* v30 main cpu */ + ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */ ROM_LOAD32_BYTE("seibu__1.u024.5k", 0x000000, 0x40000, CRC(25aa5ba4) SHA1(40e6047620fbd195c87ac3763569af099096eff9) ) // alternate label "1" ROM_LOAD32_BYTE("seibu__3.u023.6k", 0x000002, 0x40000, CRC(ec79a12b) SHA1(515026a2fca92555284ac49818499af7395783d3) ) // alternate label "3" ROM_LOAD32_BYTE("seibu__2.u025.6l", 0x000001, 0x40000, CRC(54f3d359) SHA1(869744185746d55c60d2f48eabe384a8499e00fd) ) // alternate label "2" ROM_LOAD32_BYTE("seibu__4.u026.5l", 0x000003, 0x40000, CRC(a017b8d0) SHA1(4a93ff1ab18f4b61c7ef580995f64840c19ce6b9) ) // alternate label "4" - ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ + ROM_REGION( 0x40000, "copx", 0 ) /* COPX */ ROM_LOAD( "copx-d2.u0313.6n", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) ROM_REGION( 0x20000, "audiocpu", ROMREGION_ERASEFF ) /* 64k code for sound Z80 */ @@ -2737,15 +2701,15 @@ ROM_START( zeroteam ) // Fabtek, US licensee, displays 'USA' under zero team log ROM_CONTINUE(0x10000,0x8000) ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD16_BYTE( "seibu__7.u072.5s", 0x000000, 0x010000, CRC(9f6aa0f0) SHA1(1caad7092c07723d12a07aa363ae2aa69cb6be0d) ) // alternate label "7" ROM_LOAD16_BYTE( "seibu__8.u077.5r", 0x000001, 0x010000, CRC(68f7dddc) SHA1(6938fa974c6ef028751982fdabd6a3820b0d30a8) ) // alternate label "8" - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "musha_back-1.u075.4s", 0x000000, 0x100000, CRC(8b7f9219) SHA1(3412b6f8a4fe245e521ddcf185a53f2f4520eb57) ) ROM_LOAD( "musha_back-2.u0714.2s", 0x100000, 0x080000, CRC(ce61c952) SHA1(52a843c8ba428b121fab933dd3b313b2894d80ac) ) - ROM_REGION32_LE( 0x800000, "gfx3", ROMREGION_ERASEFF ) /* sprite gfx (encrypted) (diff encrypt to raiden2? ) */ + ROM_REGION32_LE( 0x800000, "sprites", ROMREGION_ERASEFF ) /* sprite gfx (encrypted) (diff encrypt to raiden2? ) */ ROM_LOAD32_WORD( "musha_obj-1.u0811.6f", 0x000000, 0x200000, CRC(45be8029) SHA1(adc164f9dede9a86b96a4d709e9cba7d2ad0e564) ) ROM_LOAD32_WORD( "musha_obj-2.u082.5f", 0x000002, 0x200000, CRC(cb61c19d) SHA1(151a2ce9c32f3321a974819e9b165dddc31c8153) ) @@ -2760,13 +2724,13 @@ ROM_START( zeroteam ) // Fabtek, US licensee, displays 'USA' under zero team log ROM_END ROM_START( zeroteama ) // No licensee, original japan? - ROM_REGION( 0x200000, "maincpu", 0 ) /* v30 main cpu */ + ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */ ROM_LOAD32_BYTE("1.u024.5k", 0x000000, 0x40000, CRC(bd7b3f3a) SHA1(896413901a429d0efa3290f61920063c81730e9b) ) ROM_LOAD32_BYTE("3.u023.6k", 0x000002, 0x40000, CRC(19e02822) SHA1(36c9b887eaa9b9b67d65c55e8f7eefd08fe0be15) ) ROM_LOAD32_BYTE("2.u025.6l", 0x000001, 0x40000, CRC(0580b7e8) SHA1(d4416264aa5acdaa781ebcf51f128b3e665cc903) ) ROM_LOAD32_BYTE("4.u026.5l", 0x000003, 0x40000, CRC(cc666385) SHA1(23a8878315b6009dcc1f27e49572e5be29f6a1a6) ) - ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ + ROM_REGION( 0x40000, "copx", 0 ) /* COPX */ ROM_LOAD( "copx-d2.u0313.6n", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) ROM_REGION( 0x20000, "audiocpu", ROMREGION_ERASEFF ) /* 64k code for sound Z80 */ @@ -2774,15 +2738,15 @@ ROM_START( zeroteama ) // No licensee, original japan? ROM_CONTINUE(0x10000,0x8000) ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD16_BYTE( "7.a.u072.5s", 0x000000, 0x010000, CRC(eb10467f) SHA1(fc7d576dc41bc878ff20f0370e669e19d54fcefb) ) ROM_LOAD16_BYTE( "8.a.u077.5r", 0x000001, 0x010000, CRC(a0b2a09a) SHA1(9b1f6c732000b84b1ad635f332ebead5d65cc491) ) - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "musha_back-1.u075.4s", 0x000000, 0x100000, CRC(8b7f9219) SHA1(3412b6f8a4fe245e521ddcf185a53f2f4520eb57) ) ROM_LOAD( "musha_back-2.u0714.2s", 0x100000, 0x080000, CRC(ce61c952) SHA1(52a843c8ba428b121fab933dd3b313b2894d80ac) ) - ROM_REGION32_LE( 0x800000, "gfx3", ROMREGION_ERASEFF ) /* sprite gfx (encrypted) (diff encrypt to raiden2? ) */ + ROM_REGION32_LE( 0x800000, "sprites", ROMREGION_ERASEFF ) /* sprite gfx (encrypted) (diff encrypt to raiden2? ) */ ROM_LOAD32_WORD( "musha_obj-1.u0811.6f", 0x000000, 0x200000, CRC(45be8029) SHA1(adc164f9dede9a86b96a4d709e9cba7d2ad0e564) ) ROM_LOAD32_WORD( "musha_obj-2.u082.5f", 0x000002, 0x200000, CRC(cb61c19d) SHA1(151a2ce9c32f3321a974819e9b165dddc31c8153) ) @@ -2804,13 +2768,13 @@ problem of the 3.6v lithium battery dying and the missing keys to cause the spri // sets, using the sound and char ROMs from us set and code from later japan set. This would make sense if it was dumped // from a 'fixed, suicide free' modified us board where someone swapped in the later suicideless japan code ROMs. ROM_START( zeroteamb ) // No licensee, later japan? - ROM_REGION( 0x200000, "maincpu", 0 ) /* v30 main cpu */ + ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */ ROM_LOAD32_BYTE("1b.u024.5k", 0x000000, 0x40000, CRC(157743d0) SHA1(f9c84c9025319f76807ef0e79f1ee1599f915b45) ) ROM_LOAD32_BYTE("3b.u023.6k", 0x000002, 0x40000, CRC(fea7e4e8) SHA1(08c4bdff82362ae4bcf86fa56fcfc384bbf82b71) ) ROM_LOAD32_BYTE("2b.u025.6l", 0x000001, 0x40000, CRC(21d68f62) SHA1(8aa85b38e8f36057ef6c7dce5a2878958ce93ce8) ) ROM_LOAD32_BYTE("4b.u026.5l", 0x000003, 0x40000, CRC(ce8fe6c2) SHA1(69627867c7866e43e771ab85014553117044d18d) ) - ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ + ROM_REGION( 0x40000, "copx", 0 ) /* COPX */ ROM_LOAD( "copx-d2.u0313.6n", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) ROM_REGION( 0x20000, "audiocpu", ROMREGION_ERASEFF ) /* 64k code for sound Z80 */ @@ -2818,15 +2782,15 @@ ROM_START( zeroteamb ) // No licensee, later japan? ROM_CONTINUE(0x10000,0x8000) ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD16_BYTE( "7.u072.5s", 0x000000, 0x010000, CRC(9f6aa0f0) SHA1(1caad7092c07723d12a07aa363ae2aa69cb6be0d) ) ROM_LOAD16_BYTE( "8.u077.5r", 0x000001, 0x010000, CRC(68f7dddc) SHA1(6938fa974c6ef028751982fdabd6a3820b0d30a8) ) - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "musha_back-1.u075.4s", 0x000000, 0x100000, CRC(8b7f9219) SHA1(3412b6f8a4fe245e521ddcf185a53f2f4520eb57) ) ROM_LOAD( "musha_back-2.u0714.2s", 0x100000, 0x080000, CRC(ce61c952) SHA1(52a843c8ba428b121fab933dd3b313b2894d80ac) ) - ROM_REGION32_LE( 0x800000, "gfx3", ROMREGION_ERASEFF ) /* sprite gfx (encrypted) (diff encrypt to raiden2? ) */ + ROM_REGION32_LE( 0x800000, "sprites", ROMREGION_ERASEFF ) /* sprite gfx (encrypted) (diff encrypt to raiden2? ) */ ROM_LOAD32_WORD( "musha_obj-1.u0811.6f", 0x000000, 0x200000, CRC(45be8029) SHA1(adc164f9dede9a86b96a4d709e9cba7d2ad0e564) ) ROM_LOAD32_WORD( "musha_obj-2.u082.5f", 0x000002, 0x200000, CRC(cb61c19d) SHA1(151a2ce9c32f3321a974819e9b165dddc31c8153) ) @@ -2841,13 +2805,13 @@ ROM_START( zeroteamb ) // No licensee, later japan? ROM_END ROM_START( zeroteamc ) // Liang Hwa, Taiwan licensee, no special word under logo on title - ROM_REGION( 0x200000, "maincpu", 0 ) /* v30 main cpu */ + ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */ ROM_LOAD32_BYTE("b1.u024.5k", 0x000000, 0x40000, CRC(528de3b9) SHA1(9ca8cdc0212f2540e852d20ab4c04f68b967d024) ) ROM_LOAD32_BYTE("b3.u023.6k", 0x000002, 0x40000, CRC(3688739a) SHA1(f98f461fb8e7804b3b4020a5e3762d36d6458a62) ) ROM_LOAD32_BYTE("b2.u025.6l", 0x000001, 0x40000, CRC(5176015e) SHA1(6b372564b2f1b1f56cae0c98f4ca588b784bfa3d) ) ROM_LOAD32_BYTE("b4.u026.5l", 0x000003, 0x40000, CRC(c79925cb) SHA1(aaff9f626ec61bc0ff038ebd722fe361dccc49fb) ) - ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ + ROM_REGION( 0x40000, "copx", 0 ) /* COPX */ ROM_LOAD( "copx-d2.u0313.6n", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) ROM_REGION( 0x20000, "audiocpu", ROMREGION_ERASEFF ) /* 64k code for sound Z80 */ @@ -2855,15 +2819,15 @@ ROM_START( zeroteamc ) // Liang Hwa, Taiwan licensee, no special word under logo ROM_CONTINUE(0x10000,0x8000) ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD16_BYTE( "b7.u072.5s", 0x000000, 0x010000, CRC(30ec0241) SHA1(a0d0be9458bf97cb9764fb85c988bb816710475e) ) ROM_LOAD16_BYTE( "b8.u077.5r", 0x000001, 0x010000, CRC(e18b3a75) SHA1(3d52bba8d47d0d9108ee79014fd64d6e856a3fde) ) - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "musha_back-1.u075.4s", 0x000000, 0x100000, CRC(8b7f9219) SHA1(3412b6f8a4fe245e521ddcf185a53f2f4520eb57) ) ROM_LOAD( "musha_back-2.u0714.2s", 0x100000, 0x080000, CRC(ce61c952) SHA1(52a843c8ba428b121fab933dd3b313b2894d80ac) ) - ROM_REGION32_LE( 0x800000, "gfx3", ROMREGION_ERASEFF ) /* sprite gfx (encrypted) (diff encrypt to raiden2? ) */ + ROM_REGION32_LE( 0x800000, "sprites", ROMREGION_ERASEFF ) /* sprite gfx (encrypted) (diff encrypt to raiden2? ) */ ROM_LOAD32_WORD( "musha_obj-1.u0811.6f", 0x000000, 0x200000, CRC(45be8029) SHA1(adc164f9dede9a86b96a4d709e9cba7d2ad0e564) ) ROM_LOAD32_WORD( "musha_obj-2.u082.5f", 0x000002, 0x200000, CRC(cb61c19d) SHA1(151a2ce9c32f3321a974819e9b165dddc31c8153) ) @@ -2879,13 +2843,13 @@ ROM_END ROM_START( zeroteamd ) // Dream Soft, Korea licensee, no special word under logo on title; board had serial 'no 1041' on it. // this is weird, on other zt sets the ROM order is 1 3 2 4, but this one is 1 3 4 2. blame seibu or whoever marked the ROMs, which were labeled in pen - ROM_REGION( 0x200000, "maincpu", 0 ) /* v30 main cpu */ + ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */ ROM_LOAD32_BYTE("1.d.u024.5k", 0x000000, 0x40000, CRC(6cc279be) SHA1(63143ba3105d24d133e60ffdb3edc2ceb2d5dc5b) ) ROM_LOAD32_BYTE("3.d.u023.6k", 0x000002, 0x40000, CRC(0212400d) SHA1(28f77b5fddb9d724b735c3ff2255bd518b166e67) ) ROM_LOAD32_BYTE("4.d.u025.6l", 0x000001, 0x40000, CRC(08813ebb) SHA1(454779cec2fd0e71b72f7161e7d9334893ee42de) ) ROM_LOAD32_BYTE("2.d.u026.5l", 0x000003, 0x40000, CRC(9236129d) SHA1(8561ab62e3593cd9353d9ffddedbdb77e9ae2c45) ) - ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ + ROM_REGION( 0x40000, "copx", 0 ) /* COPX */ ROM_LOAD( "copx-d2.u0313.6n", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) ROM_REGION( 0x20000, "audiocpu", ROMREGION_ERASEFF ) /* 64k code for sound Z80 */ @@ -2893,15 +2857,15 @@ ROM_START( zeroteamd ) // Dream Soft, Korea licensee, no special word under logo ROM_CONTINUE(0x10000,0x8000) ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD16_BYTE( "512kb.u072.5s", 0x000000, 0x010000, CRC(30ec0241) SHA1(a0d0be9458bf97cb9764fb85c988bb816710475e) ) // this is a soldered mask ROM on this pcb version! the contents match the taiwan version EPROM; the mask ROM has no label ROM_LOAD16_BYTE( "512kb.u077.5r", 0x000001, 0x010000, CRC(e18b3a75) SHA1(3d52bba8d47d0d9108ee79014fd64d6e856a3fde) ) // this is a soldered mask ROM on this pcb version! the contents match the taiwan version EPROM; the mask ROM has no label - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "musha_back-1.u075.4s", 0x000000, 0x100000, CRC(8b7f9219) SHA1(3412b6f8a4fe245e521ddcf185a53f2f4520eb57) ) ROM_LOAD( "musha_back-2.u0714.2s", 0x100000, 0x080000, CRC(ce61c952) SHA1(52a843c8ba428b121fab933dd3b313b2894d80ac) ) - ROM_REGION32_LE( 0x800000, "gfx3", ROMREGION_ERASEFF ) /* sprite gfx (encrypted) (diff encrypt to raiden2? ) */ + ROM_REGION32_LE( 0x800000, "sprites", ROMREGION_ERASEFF ) /* sprite gfx (encrypted) (diff encrypt to raiden2? ) */ ROM_LOAD32_WORD( "musha_obj-1.u0811.6f", 0x000000, 0x200000, CRC(45be8029) SHA1(adc164f9dede9a86b96a4d709e9cba7d2ad0e564) ) ROM_LOAD32_WORD( "musha_obj-2.u082.5f", 0x000002, 0x200000, CRC(cb61c19d) SHA1(151a2ce9c32f3321a974819e9b165dddc31c8153) ) @@ -2917,13 +2881,13 @@ ROM_END // A version of the above exists (which dr.kitty used to own) which DOES have 'Korea' under the logo on title, needs dumping ROM_START( zeroteame ) // shares chars ROMs with zeroteama - ROM_REGION( 0x200000, "maincpu", 0 ) /* v30 main cpu */ + ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */ ROM_LOAD32_BYTE("seibu_1_u024.5k", 0x000000, 0x40000, CRC(76e69af5) SHA1(c5a4b2491cee3f4f9694e454f3828fda33fff3ab) ) ROM_LOAD32_BYTE("seibu_3_u023.6k", 0x000002, 0x40000, CRC(4a904880) SHA1(4a85a62446ea11d57369dfd65f143475063abc31) ) ROM_LOAD32_BYTE("seibu_2_u025.6l", 0x000001, 0x40000, CRC(b97ab448) SHA1(82d9e7aa6b69c214ad82e5ff30a049cecab607c0) ) ROM_LOAD32_BYTE("seibu_4_u026.5l", 0x000003, 0x40000, CRC(1d43b9c1) SHA1(b1144d49f8fddf416fe2e3eae4040b369eb212cf) ) - ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ + ROM_REGION( 0x40000, "copx", 0 ) /* COPX */ ROM_LOAD( "copx-d2.u0313.6n", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) ROM_REGION( 0x20000, "audiocpu", ROMREGION_ERASEFF ) /* 64k code for sound Z80 */ @@ -2931,15 +2895,15 @@ ROM_START( zeroteame ) // shares chars ROMs with zeroteama ROM_CONTINUE(0x10000,0x8000) ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD16_BYTE( "seibu_7_u072.5s", 0x000000, 0x010000, CRC(eb10467f) SHA1(fc7d576dc41bc878ff20f0370e669e19d54fcefb) ) ROM_LOAD16_BYTE( "seibu_8_u077.5r", 0x000001, 0x010000, CRC(a0b2a09a) SHA1(9b1f6c732000b84b1ad635f332ebead5d65cc491) ) - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "musha_back-1.u075.4s", 0x000000, 0x100000, CRC(8b7f9219) SHA1(3412b6f8a4fe245e521ddcf185a53f2f4520eb57) ) ROM_LOAD( "musha_back-2.u0714.2s", 0x100000, 0x080000, CRC(ce61c952) SHA1(52a843c8ba428b121fab933dd3b313b2894d80ac) ) - ROM_REGION32_LE( 0x800000, "gfx3", ROMREGION_ERASEFF ) /* sprite gfx (encrypted) (diff encrypt to raiden2? ) */ + ROM_REGION32_LE( 0x800000, "sprites", ROMREGION_ERASEFF ) /* sprite gfx (encrypted) (diff encrypt to raiden2? ) */ ROM_LOAD32_WORD( "musha_obj-1.u0811.6f", 0x000000, 0x200000, CRC(45be8029) SHA1(adc164f9dede9a86b96a4d709e9cba7d2ad0e564) ) ROM_LOAD32_WORD( "musha_obj-2.u082.5f", 0x000002, 0x200000, CRC(cb61c19d) SHA1(151a2ce9c32f3321a974819e9b165dddc31c8153) ) @@ -2954,13 +2918,13 @@ ROM_START( zeroteame ) // shares chars ROMs with zeroteama ROM_END ROM_START( zeroteams ) // No license, displays 'Selection' under logo - ROM_REGION( 0x200000, "maincpu", 0 ) /* v30 main cpu */ + ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */ ROM_LOAD32_BYTE("1_sel.bin", 0x000000, 0x40000, CRC(d99d6273) SHA1(21dccd5d71c720b8364406835812b3c9defaff6c) ) ROM_LOAD32_BYTE("3_sel.bin", 0x000002, 0x40000, CRC(0a9fe0b1) SHA1(3588fe19788f77d07e9b5ab8182b94362ffd0024) ) ROM_LOAD32_BYTE("2_sel.bin", 0x000001, 0x40000, CRC(4e114e74) SHA1(fcccbb68c6b7ffe8d109ed3a1ec9120d338398f9) ) ROM_LOAD32_BYTE("4_sel.bin", 0x000003, 0x40000, CRC(0df8ba94) SHA1(e07dce6cf3c3cfe1ea3b7f01e18833c1da5ed1dc) ) - ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ + ROM_REGION( 0x40000, "copx", 0 ) /* COPX */ ROM_LOAD( "copx-d2.u0313.6n", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) ROM_REGION( 0x20000, "audiocpu", ROMREGION_ERASEFF ) /* 64k code for sound Z80 */ @@ -2968,15 +2932,15 @@ ROM_START( zeroteams ) // No license, displays 'Selection' under logo ROM_CONTINUE(0x10000,0x8000) ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD16_BYTE( "7.u072.5s", 0x000000, 0x010000, CRC(9f6aa0f0) SHA1(1caad7092c07723d12a07aa363ae2aa69cb6be0d) ) ROM_LOAD16_BYTE( "8.u077.5r", 0x000001, 0x010000, CRC(68f7dddc) SHA1(6938fa974c6ef028751982fdabd6a3820b0d30a8) ) - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "musha_back-1.u075.4s", 0x000000, 0x100000, CRC(8b7f9219) SHA1(3412b6f8a4fe245e521ddcf185a53f2f4520eb57) ) ROM_LOAD( "musha_back-2.u0714.2s", 0x100000, 0x080000, CRC(ce61c952) SHA1(52a843c8ba428b121fab933dd3b313b2894d80ac) ) - ROM_REGION32_LE( 0x800000, "gfx3", ROMREGION_ERASEFF ) /* sprite gfx (encrypted) (diff encrypt to raiden2? ) */ + ROM_REGION32_LE( 0x800000, "sprites", ROMREGION_ERASEFF ) /* sprite gfx (encrypted) (diff encrypt to raiden2? ) */ ROM_LOAD32_WORD( "musha_obj-1.u0811.6f", 0x000000, 0x200000, CRC(45be8029) SHA1(adc164f9dede9a86b96a4d709e9cba7d2ad0e564) ) ROM_LOAD32_WORD( "musha_obj-2.u082.5f", 0x000002, 0x200000, CRC(cb61c19d) SHA1(151a2ce9c32f3321a974819e9b165dddc31c8153) ) @@ -3003,13 +2967,13 @@ Next, turn off power and reinsert the old code ROMs, and the pcb should now have */ ROM_START( zeroteamsr ) - ROM_REGION( 0x200000, "maincpu", 0 ) /* v30 main cpu */ + ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */ ROM_LOAD32_BYTE("zteam1.u24", 0x000000, 0x40000, CRC(c531e009) SHA1(731881fca3dc0a8269ecdd295ba7119d93c892e7) ) ROM_LOAD32_BYTE("zteam3.u23", 0x000002, 0x40000, CRC(1f988808) SHA1(b1fcb8c96e57c4942bc032d42408d7289c6a3681) ) ROM_LOAD32_BYTE("zteam2.u25", 0x000001, 0x40000, CRC(b7234b93) SHA1(35bc093e8ad4bce1d2130a392ed1b9487a5642a1) ) ROM_LOAD32_BYTE("zteam4.u26", 0x000003, 0x40000, CRC(c2d26708) SHA1(d65191b40f5dd7cdbbc004e2de10134db6092fd1) ) - ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ + ROM_REGION( 0x40000, "copx", 0 ) /* COPX */ ROM_LOAD( "copx-d2.u0313.6n", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) ROM_REGION( 0x20000, "audiocpu", ROMREGION_ERASEFF ) /* 64k code for sound Z80 */ @@ -3017,15 +2981,15 @@ ROM_START( zeroteamsr ) ROM_CONTINUE(0x10000,0x8000) ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD16_BYTE( "7.u072.5s", 0x000000, 0x010000, CRC(9f6aa0f0) SHA1(1caad7092c07723d12a07aa363ae2aa69cb6be0d) ) ROM_LOAD16_BYTE( "8.u077.5r", 0x000001, 0x010000, CRC(68f7dddc) SHA1(6938fa974c6ef028751982fdabd6a3820b0d30a8) ) - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "musha_back-1.u075.4s", 0x000000, 0x100000, CRC(8b7f9219) SHA1(3412b6f8a4fe245e521ddcf185a53f2f4520eb57) ) ROM_LOAD( "musha_back-2.u0714.2s", 0x100000, 0x080000, CRC(ce61c952) SHA1(52a843c8ba428b121fab933dd3b313b2894d80ac) ) - ROM_REGION32_LE( 0x800000, "gfx3", ROMREGION_ERASEFF ) /* sprite gfx (encrypted) (diff encrypt to raiden2? ) */ + ROM_REGION32_LE( 0x800000, "sprites", ROMREGION_ERASEFF ) /* sprite gfx (encrypted) (diff encrypt to raiden2? ) */ ROM_LOAD32_WORD( "musha_obj-1.u0811.6f", 0x000000, 0x200000, CRC(45be8029) SHA1(adc164f9dede9a86b96a4d709e9cba7d2ad0e564) ) ROM_LOAD32_WORD( "musha_obj-2.u082.5f", 0x000002, 0x200000, CRC(cb61c19d) SHA1(151a2ce9c32f3321a974819e9b165dddc31c8153) ) @@ -3078,13 +3042,13 @@ ZERO TEAM-V2 SEIBU KAIHATSU INC. */ ROM_START( xsedae ) - ROM_REGION( 0x200000, "maincpu", 0 ) /* v30 main cpu */ + ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */ ROM_LOAD32_BYTE("1.u024", 0x000000, 0x40000, CRC(185437f9) SHA1(e46950b6a549d11dc57105dd7d9cb512a8ecbe70) ) ROM_LOAD32_BYTE("2.u025", 0x000001, 0x40000, CRC(a2b052df) SHA1(e8bf9ab3d5d4e601ea9386e1f2d4e017b025407e) ) ROM_LOAD32_BYTE("3.u023", 0x000002, 0x40000, CRC(293fd6c1) SHA1(8b1a231f4bedbf9c0f347330e13fdf092b9888b4) ) ROM_LOAD32_BYTE("4.u026", 0x000003, 0x40000, CRC(5adf20bf) SHA1(42a0bb5a460c656675b2c432c043fc61a9049276) ) - ROM_REGION( 0x40000, "user2", ROMREGION_ERASEFF ) /* COPX */ + ROM_REGION( 0x40000, "copx", ROMREGION_ERASEFF ) /* COPX */ /* Not populated */ ROM_REGION( 0x30000, "audiocpu", ROMREGION_ERASEFF ) /* 64k code for sound Z80 */ @@ -3093,15 +3057,15 @@ ROM_START( xsedae ) ROM_CONTINUE(0x20000,0x10000) // TODO ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 ) - ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x020000, "chars", 0 ) /* chars */ ROM_LOAD16_BYTE( "6.u072.5s", 0x000000, 0x010000, CRC(a788402d) SHA1(8a1ac4760cf75cd2e32c1d15f36ad15cce3d411b) ) ROM_LOAD16_BYTE( "5.u077.5r", 0x000001, 0x010000, CRC(478deced) SHA1(88cd72cb76bbc1c4255c3dfae4b9a10af9b050b2) ) - ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ + ROM_REGION( 0x400000, "tiles", 0 ) /* background gfx */ ROM_LOAD( "bg-1.u075", 0x000000, 0x100000, CRC(ac087560) SHA1(b6473b20c55ec090961cfc46a024b3c5b707ec25) ) ROM_LOAD( "7.u0714", 0x100000, 0x080000, CRC(296105dc) SHA1(c2b80d681646f504b03c2dde13e37b1d820f82d2) ) - ROM_REGION32_LE( 0x800000, "gfx3", ROMREGION_ERASEFF ) /* sprite gfx (not encrypted) */ + ROM_REGION32_LE( 0x800000, "sprites", ROMREGION_ERASEFF ) /* sprite gfx (not encrypted) */ ROM_LOAD32_WORD( "obj-1.u0811", 0x000000, 0x200000, CRC(6ae993eb) SHA1(d9713c79eacb4b3ce5e82dd3ce39003e3a433d8f) ) ROM_LOAD32_WORD( "obj-2.u082", 0x000002, 0x200000, CRC(26c806ee) SHA1(899a76a1b3f933c6f5cb6b5dcdf5b58e1b7e49c6) ) @@ -3168,21 +3132,19 @@ void raiden2_state::init_blending(const u16 *table) void raiden2_state::init_raiden2() { init_blending(raiden_blended_colors); - static const int spri[5] = { 0, 1, 2, 3, -1 }; + static const s32 spri[5] = { 0, 1, 2, 3, -1 }; m_cur_spri = spri; - m_mainbank[0]->configure_entries(0, 4, memregion("maincpu")->base(), 0x10000); - m_mainbank[1]->configure_entries(0, 4, memregion("maincpu")->base(), 0x10000); - raiden2_decrypt_sprites(machine()); + m_mainbank->configure_entries(0, 2, memregion("maincpu")->base(), 0x20000); + raiden2_decrypt_sprites((u32*)memregion("sprites")->base(), memregion("sprites")->bytes() / 4); } void raiden2_state::init_raidendx() { init_blending(raiden_blended_colors); - static const int spri[5] = { 0, 1, 2, 3, -1 }; + static const s32 spri[5] = { 0, 1, 2, 3, -1 }; m_cur_spri = spri; - m_mainbank[0]->configure_entries(0, 0x20, memregion("maincpu")->base(), 0x10000); - m_mainbank[1]->configure_entries(0, 0x20, memregion("maincpu")->base(), 0x10000); - raiden2_decrypt_sprites(machine()); + m_mainbank->configure_entries(0, 0x10, memregion("maincpu")->base() + 0x100000, 0x10000); + raiden2_decrypt_sprites((u32*)memregion("sprites")->base(), memregion("sprites")->bytes() / 4); } const u16 raiden2_state::xsedae_blended_colors[] = { @@ -3192,7 +3154,7 @@ const u16 raiden2_state::xsedae_blended_colors[] = { void raiden2_state::init_xsedae() { init_blending(xsedae_blended_colors); - static const int spri[5] = { -1, 0, 1, 2, 3 }; + static const s32 spri[5] = { -1, 0, 1, 2, 3 }; m_cur_spri = spri; /* doesn't have banking */ } @@ -3214,11 +3176,10 @@ const u16 raiden2_state::zeroteam_blended_colors[] = { void raiden2_state::init_zeroteam() { init_blending(zeroteam_blended_colors); - static const int spri[5] = { -1, 0, 1, 2, 3 }; + static const s32 spri[5] = { -1, 0, 1, 2, 3 }; m_cur_spri = spri; - m_mainbank[0]->configure_entries(0, 4, memregion("maincpu")->base(), 0x10000); - m_mainbank[1]->configure_entries(0, 4, memregion("maincpu")->base(), 0x10000); - zeroteam_decrypt_sprites(machine()); + m_mainbank->configure_entries(0, 2, memregion("maincpu")->base(), 0x20000); + zeroteam_decrypt_sprites((u32*)memregion("sprites")->base(), 0x400000 / 4); } /* GAME DRIVERS */ diff --git a/src/mame/seibu/raiden2.h b/src/mame/seibu/raiden2.h index 2aa5d28a64352..a63d1921a9498 100644 --- a/src/mame/seibu/raiden2.h +++ b/src/mame/seibu/raiden2.h @@ -29,7 +29,7 @@ class raiden2_state : public driver_device , m_gfxdecode(*this, "gfxdecode") , m_palette(*this, "palette") , m_screen(*this, "screen") - , m_mainbank(*this, "mainbank%u", 1U) + , m_mainbank(*this, "mainbank") , m_raiden2cop(*this, "raiden2cop") , m_sprite_prot_x(0) @@ -62,6 +62,9 @@ class raiden2_state : public driver_device void init_raiden2(); protected: + virtual void machine_start() override ATTR_COLD; + virtual void video_start() override ATTR_COLD; + std::unique_ptr m_back_data; std::unique_ptr m_fore_data; std::unique_ptr m_mid_data; @@ -73,9 +76,32 @@ class raiden2_state : public driver_device required_device m_gfxdecode; required_device m_palette; required_device m_screen; - optional_memory_bank_array<2> m_mainbank; + optional_memory_bank m_mainbank; optional_device m_raiden2cop; + u16 m_sprite_prot_x,m_sprite_prot_y,m_dst1,m_cop_spr_maxx,m_cop_spr_off; + u16 m_sprite_prot_src_addr[2]; + + static u16 const raiden_blended_colors[]; + static u16 const xsedae_blended_colors[]; + static u16 const zeroteam_blended_colors[]; + + bool m_blend_active[0x800]; // cfg + + tilemap_t *m_background_layer = nullptr; + tilemap_t *m_midground_layer = nullptr; + tilemap_t *m_foreground_layer = nullptr; + tilemap_t *m_text_layer = nullptr; + + u32 m_bg_bank, m_fg_bank, m_mid_bank, m_tx_bank; + u16 m_tilemap_enable; + + u16 m_scrollvals[6]; + + const s32 *m_cur_spri = nullptr; // cfg + + bitmap_ind16 m_tile_bitmap, m_sprite_bitmap; + void sprite_prot_x_w(u16 data); void sprite_prot_y_w(u16 data); void sprite_prot_src_seg_w(u16 data); @@ -88,12 +114,8 @@ class raiden2_state : public driver_device void sprite_prot_maxx_w(u16 data); void sprite_prot_off_w(u16 data); - u16 m_sprite_prot_x,m_sprite_prot_y,m_dst1,m_cop_spr_maxx,m_cop_spr_off; - u16 m_sprite_prot_src_addr[2]; - INTERRUPT_GEN_MEMBER(interrupt); void common_save_state(); - virtual void video_start() override ATTR_COLD; void tilemap_enable_w(offs_t offset, u16 data, u16 mem_mask = ~0); void tile_scroll_w(offs_t offset, u16 data, u16 mem_mask = ~0); @@ -101,30 +123,12 @@ class raiden2_state : public driver_device void foreground_w(offs_t offset, u16 data); void midground_w(offs_t offset, u16 data); void text_w(offs_t offset, u16 data); - void m_videoram_private_w(offs_t offset, uint16_t data); + void m_videoram_private_w(offs_t offset, u16 data); void bank_reset(int bgbank, int fgbank, int midbank, int txbank); - static u16 const raiden_blended_colors[]; - static u16 const xsedae_blended_colors[]; - static u16 const zeroteam_blended_colors[]; - - bool m_blend_active[0x800]; // cfg - - tilemap_t *m_background_layer = nullptr; - tilemap_t *m_midground_layer = nullptr; - tilemap_t *m_foreground_layer = nullptr; - tilemap_t *m_text_layer = nullptr; - - int m_bg_bank, m_fg_bank, m_mid_bank, m_tx_bank; - u16 m_tilemap_enable; - - u16 m_scrollvals[6]; - void draw_sprites(const rectangle &cliprect); - const int *m_cur_spri = nullptr; // cfg - DECLARE_GFXDECODE_MEMBER(gfx_raiden2); TILE_GET_INFO_MEMBER(get_back_tile_info); TILE_GET_INFO_MEMBER(get_mid_tile_info); @@ -137,20 +141,24 @@ class raiden2_state : public driver_device void init_blending(const u16 *table); - bitmap_ind16 m_tile_bitmap, m_sprite_bitmap; - void zeroteam_sound_map(address_map &map) ATTR_COLD; private: + u8 m_prg_bank; + u16 m_cop_bank; + + u32 m_sprcpt_adr = 0, m_sprcpt_idx = 0; + + u32 m_sprcpt_val[2], m_sprcpt_flags1 = 0; + u16 m_sprcpt_flags2 = 0; + u32 m_sprcpt_data_1[0x100]{}, m_sprcpt_data_2[0x40]{}, m_sprcpt_data_3[6]{}, m_sprcpt_data_4[4]{}; + void raiden2_bank_w(u8 data); void tile_bank_01_w(u8 data); u16 cop_tile_bank_2_r(); void cop_tile_bank_2_w(offs_t offset, u16 data, u16 mem_mask = ~0); void raidendx_cop_bank_2_w(offs_t offset, u16 data, u16 mem_mask = ~0); - uint8_t m_prg_bank; - u16 m_cop_bank; - void sprcpt_val_1_w(offs_t offset, u16 data, u16 mem_mask = ~0); void sprcpt_val_2_w(offs_t offset, u16 data, u16 mem_mask = ~0); void sprcpt_data_1_w(offs_t offset, u16 data, u16 mem_mask = ~0); @@ -161,13 +169,6 @@ class raiden2_state : public driver_device void sprcpt_flags_1_w(offs_t offset, u16 data, u16 mem_mask = ~0); void sprcpt_flags_2_w(offs_t offset, u16 data, u16 mem_mask = ~0); - u32 m_sprcpt_adr = 0, m_sprcpt_idx = 0; - - u32 m_sprcpt_val[2], m_sprcpt_flags1 = 0; - u16 m_sprcpt_flags2 = 0; - u32 m_sprcpt_data_1[0x100], m_sprcpt_data_2[0x40], m_sprcpt_data_3[6], m_sprcpt_data_4[4]; - - virtual void machine_start() override ATTR_COLD; DECLARE_MACHINE_RESET(raiden2); DECLARE_MACHINE_RESET(zeroteam); DECLARE_MACHINE_RESET(xsedae); @@ -175,6 +176,7 @@ class raiden2_state : public driver_device void combine32(u32 *val, offs_t offset, u16 data, u16 mem_mask); void sprcpt_init(); + void raiden2_cop_mem(address_map &map) ATTR_COLD; void raiden2_mem(address_map &map) ATTR_COLD; void raiden2_sound_map(address_map &map) ATTR_COLD; diff --git a/src/mame/seibu/raiden2_v.cpp b/src/mame/seibu/raiden2_v.cpp index 09e7376ec2196..730a887ffaa21 100644 --- a/src/mame/seibu/raiden2_v.cpp +++ b/src/mame/seibu/raiden2_v.cpp @@ -9,7 +9,7 @@ #include "emu.h" #include "raiden2.h" -void raiden2_state::m_videoram_private_w(offs_t offset, uint16_t data) +void raiden2_state::m_videoram_private_w(offs_t offset, u16 data) { // map(0x0d000, 0x0d7ff).ram().w(FUNC(raiden2_state::background_w)).share("back_data"); // map(0x0d800, 0x0dfff).ram().w(FUNC(raiden2_state::foreground_w).share("fore_data"); @@ -40,6 +40,10 @@ void raiden2_state::m_videoram_private_w(offs_t offset, uint16_t data) void raiden2_state::draw_sprites(const rectangle &cliprect) { + // causes a blank square in the corner of zero team, but otherwise the thrusters of the ship in the r2 intro are clipped, using 0x8000 as a sign bit instead of this logic works for r2, but not zero team + static constexpr s32 ZEROTEAM_MASK_X = 0x1ff; + static constexpr s32 ZEROTEAM_MASK_Y = 0x1ff; + m_sprite_bitmap.fill(0xf, cliprect); gfx_element *gfx = m_gfxdecode->gfx(2); @@ -51,61 +55,47 @@ void raiden2_state::draw_sprites(const rectangle &cliprect) 06 yyyy yyyy yyyy yyyy y = ypos */ - for (int srcindex = (m_spriteram->bytes()/2)-4; srcindex >= 0; srcindex -= 4) + for (int srcindex = (m_spriteram->bytes() / 2) - 4; srcindex >= 0; srcindex -= 4) { - u16 *source = &m_spriteram->buffer()[srcindex]; - int tile_number = source[1]; - int sx = source[2]; - int sy = source[3]; - int colr; - int xtiles, ytiles; - int ytlim, xtlim; - int xflip, yflip; - int xstep, ystep; - int pri; + u16 const *const source = &m_spriteram->buffer()[srcindex]; + u32 tile_number = source[1]; // TODO: bit 15 is unknown (but used) in zeroteam, since it's sprite tile is 0x8000. + s32 sx = source[2]; + s32 sy = source[3]; - ytlim = (source[0] >> 12) & 0x7; - xtlim = (source[0] >> 8 ) & 0x7; + const u8 ytlim = ((source[0] >> 12) & 0x7) + 1; + const u8 xtlim = ((source[0] >> 8 ) & 0x7) + 1; - xflip = (source[0] >> 15) & 0x1; - yflip = (source[0] >> 11) & 0x1; + const bool xflip = BIT(source[0], 15); + const bool yflip = BIT(source[0], 11); - colr = source[0] & 0x3f; + u32 colr = source[0] & 0x3f; - pri = (source[0] >> 6) & 3; + const u32 pri = (source[0] >> 6) & 3; colr |= pri << (14-4); - ytlim += 1; - xtlim += 1; - - xstep = 16; - ystep = 16; + s32 xstep = 16; + s32 ystep = 16; if (xflip) { ystep = -16; - sy += ytlim*16-16; + sy += ytlim * 16 - 16; } if (yflip) { xstep = -16; - sx += xtlim*16-16; + sx += xtlim * 16 - 16; } - for (xtiles = 0; xtiles < xtlim; xtiles++) + for (int xtiles = 0; xtiles < xtlim; xtiles++) { - for (ytiles = 0; ytiles < ytlim; ytiles++) + for (int ytiles = 0; ytiles < ytlim; ytiles++) { /* note this wraparound handling could be wrong if some of the COP maths is wrong */ -#define ZEROTEAM_MASK_X (0x1ff) // causes a blank square in the corner of zero team, but otherwise the thrusters of the ship in the r2 intro are clipped, using 0x8000 as a sign bit instead of this logic works for r2, but not zero team -#define ZEROTEAM_MASK_Y (0x1ff) - - - - gfx->transpen_raw( + gfx->transpen_raw( m_sprite_bitmap, cliprect, tile_number, @@ -113,8 +103,7 @@ void raiden2_state::draw_sprites(const rectangle &cliprect) yflip,xflip, (sx+xstep*xtiles)&ZEROTEAM_MASK_X,(sy+ystep*ytiles)&ZEROTEAM_MASK_Y, 15); - - gfx->transpen_raw( + gfx->transpen_raw( m_sprite_bitmap, cliprect, tile_number, @@ -122,8 +111,7 @@ void raiden2_state::draw_sprites(const rectangle &cliprect) yflip,xflip, ((sx+xstep*xtiles)&ZEROTEAM_MASK_X)-0x200,(sy+ystep*ytiles)&ZEROTEAM_MASK_Y, 15); - - gfx->transpen_raw( + gfx->transpen_raw( m_sprite_bitmap, cliprect, tile_number, @@ -131,8 +119,7 @@ void raiden2_state::draw_sprites(const rectangle &cliprect) yflip,xflip, (sx+xstep*xtiles)&ZEROTEAM_MASK_X,((sy+ystep*ytiles)&ZEROTEAM_MASK_Y)-0x200, 15); - - gfx->transpen_raw( + gfx->transpen_raw( m_sprite_bitmap, cliprect, tile_number, @@ -140,7 +127,6 @@ void raiden2_state::draw_sprites(const rectangle &cliprect) yflip,xflip, ((sx+xstep*xtiles)&ZEROTEAM_MASK_X)-0x200,((sy+ystep*ytiles)&ZEROTEAM_MASK_Y)-0x200, 15); - tile_number++; } } @@ -192,12 +178,12 @@ void raiden2_state::tilemap_enable_w(offs_t offset, u16 data, u16 mem_mask) void raiden2_state::tile_scroll_w(offs_t offset, u16 data, u16 mem_mask) { tilemap_t *tm = nullptr; - switch (offset/2) + switch (offset / 2) { - case 0: tm = m_background_layer; break; - case 1: tm = m_midground_layer; break; - case 2: tm = m_foreground_layer; break; - default: assert(0); break; + case 0: tm = m_background_layer; break; + case 1: tm = m_midground_layer; break; + case 2: tm = m_foreground_layer; break; + default: assert(0); break; } COMBINE_DATA(&m_scrollvals[offset]); @@ -212,7 +198,7 @@ void raiden2_state::tile_scroll_w(offs_t offset, u16 data, u16 mem_mask) void raiden2_state::tile_bank_01_w(u8 data) { int new_bank; - new_bank = 0 | ((data & 1)<<1); + new_bank = 0 | ((data & 1) << 1); if (new_bank != m_bg_bank) { m_bg_bank = new_bank; @@ -238,7 +224,7 @@ void raiden2_state::cop_tile_bank_2_w(offs_t offset, u16 data, u16 mem_mask) if (ACCESSING_BITS_8_15) { - int new_bank = 4 | (data >> 14); + const int new_bank = 4 | (data >> 14); if (new_bank != m_fg_bank) { m_fg_bank = new_bank; @@ -251,7 +237,7 @@ void raiden2_state::raidendx_cop_bank_2_w(offs_t offset, u16 data, u16 mem_mask) { COMBINE_DATA(&m_cop_bank); - int new_bank = 4 | ((m_cop_bank >> 4) & 3); + const int new_bank = 4 | ((m_cop_bank >> 4) & 3); if (new_bank != m_fg_bank) { m_fg_bank = new_bank; @@ -259,50 +245,49 @@ void raiden2_state::raidendx_cop_bank_2_w(offs_t offset, u16 data, u16 mem_mask) } /* mainbank2 coming from 6c9 ? */ - int bb = m_cop_bank >> 12; - m_mainbank[0]->set_entry(bb + 16); - m_mainbank[1]->set_entry(3); + const int bb = m_cop_bank >> 12; + m_mainbank->set_entry(bb); } TILE_GET_INFO_MEMBER(raiden2_state::get_back_tile_info) { - int tile = m_back_data[tile_index]; - int color = (tile >> 12) | (0 << 4); + u32 tile = m_back_data[tile_index]; + const u32 color = (tile >> 12) | (0 << 4); tile = (tile & 0xfff) | (m_bg_bank << 12); - tileinfo.set(1,tile+0x0000,color,0); + tileinfo.set(1, tile, color, 0); } TILE_GET_INFO_MEMBER(raiden2_state::get_mid_tile_info) { - int tile = m_mid_data[tile_index]; - int color = (tile >> 12) | (2 << 4); + u32 tile = m_mid_data[tile_index]; + const u32 color = (tile >> 12) | (2 << 4); tile = (tile & 0xfff) | (m_mid_bank << 12); - tileinfo.set(1,tile,color,0); + tileinfo.set(1, tile, color, 0); } TILE_GET_INFO_MEMBER(raiden2_state::get_fore_tile_info) { - int tile = m_fore_data[tile_index]; - int color = (tile >> 12) | (1 << 4); + u32 tile = m_fore_data[tile_index]; + const u32 color = (tile >> 12) | (1 << 4); tile = (tile & 0xfff) | (m_fg_bank << 12); - tileinfo.set(1,tile,color,0); + tileinfo.set(1, tile, color, 0); } TILE_GET_INFO_MEMBER(raiden2_state::get_text_tile_info) { - int tile = m_text_data[tile_index]; - int color = (tile>>12)&0xf; + u32 tile = m_text_data[tile_index]; + const u32 color = (tile >> 12) & 0xf; - tile &= 0xfff; + tile = (tile & 0xfff) | (m_tx_bank << 12); - tileinfo.set(0,tile + m_tx_bank * 0x1000,color,0); + tileinfo.set(0, tile, color, 0); } void raiden2_state::video_start() @@ -366,35 +351,35 @@ void raiden2_state::tilemap_draw_and_blend(screen_device &screen, bitmap_rgb32 & u32 raiden2_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { bitmap.fill(m_palette->black_pen(), cliprect); - if (!(m_tilemap_enable & 16)) + if (BIT(~m_tilemap_enable, 4)) { draw_sprites(cliprect); blend_layer(bitmap, cliprect, m_sprite_bitmap, m_cur_spri[0]); } - if (!(m_tilemap_enable & 1)) + if (BIT(~m_tilemap_enable, 0)) tilemap_draw_and_blend(screen, bitmap, cliprect, m_background_layer); - if (!(m_tilemap_enable & 16)) + if (BIT(~m_tilemap_enable, 4)) blend_layer(bitmap, cliprect, m_sprite_bitmap, m_cur_spri[1]); - if (!(m_tilemap_enable & 2)) + if (BIT(~m_tilemap_enable, 1)) tilemap_draw_and_blend(screen, bitmap, cliprect, m_midground_layer); - if (!(m_tilemap_enable & 16)) + if (BIT(~m_tilemap_enable, 4)) blend_layer(bitmap, cliprect, m_sprite_bitmap, m_cur_spri[2]); - if (!(m_tilemap_enable & 4)) + if (BIT(~m_tilemap_enable, 2)) tilemap_draw_and_blend(screen, bitmap, cliprect, m_foreground_layer); - if (!(m_tilemap_enable & 16)) + if (BIT(~m_tilemap_enable, 4)) blend_layer(bitmap, cliprect, m_sprite_bitmap, m_cur_spri[3]); - if (!(m_tilemap_enable & 8)) + if (BIT(~m_tilemap_enable, 3)) tilemap_draw_and_blend(screen, bitmap, cliprect, m_text_layer); - if (!(m_tilemap_enable & 16)) + if (BIT(~m_tilemap_enable, 4)) blend_layer(bitmap, cliprect, m_sprite_bitmap, m_cur_spri[4]); if (machine().input().code_pressed_once(KEYCODE_Z)) diff --git a/src/mame/seibu/seibu_helper.cpp b/src/mame/seibu/seibu_helper.cpp new file mode 100644 index 0000000000000..b081e2cce63ab --- /dev/null +++ b/src/mame/seibu/seibu_helper.cpp @@ -0,0 +1,44 @@ +// license:BSD-3-Clause +// copyright-holders:Ville Linde, Nicola Salmoria +/* + Helper for common decryption method in Seibu Kaihatsu hardwares. +*/ + +#include "emu.h" +#include "seibu_helper.h" + +// add two numbers generating carry from one bit to the next only if +// the corresponding bit in carry_mask is 1 +u32 partial_carry_sum(u32 add1, u32 add2, u32 carry_mask, int bits) +{ + int res = 0; + int carry = 0; + for (int i = 0; i < bits; i++) + { + const int bit = BIT(add1, i) + BIT(add2, i) + carry; + + res += BIT(bit, 0) << i; + + // generate carry only if the corresponding bit in carry_mask is 1 + if (BIT(carry_mask, i)) + carry = bit >> 1; + else + carry = 0; + } + + // wrap around carry from top bit to bit 0 + if (carry) + res ^= 1; + + return res; +} + +u32 partial_carry_sum32(u32 add1, u32 add2, u32 carry_mask) +{ + return partial_carry_sum(add1, add2, carry_mask, 32); +} + +u32 partial_carry_sum24(u32 add1, u32 add2, u32 carry_mask) +{ + return partial_carry_sum(add1, add2, carry_mask, 24); +} diff --git a/src/mame/seibu/seibu_helper.h b/src/mame/seibu/seibu_helper.h new file mode 100644 index 0000000000000..4b5a407c32b6b --- /dev/null +++ b/src/mame/seibu/seibu_helper.h @@ -0,0 +1,13 @@ +// license:BSD-3-Clause +// copyright-holders:Ville Linde, Nicola Salmoria +#ifndef MAME_SEIBU_SEIBU_HELPER_H +#define MAME_SEIBU_SEIBU_HELPER_H + +#pragma once + +u32 partial_carry_sum(u32 add1, u32 add2, u32 carry_mask, int bits); + +u32 partial_carry_sum32(u32 add1, u32 add2, u32 carry_mask); +u32 partial_carry_sum24(u32 add1, u32 add2, u32 carry_mask); + +#endif // MAME_SEIBU_SEIBU_HELPER_H diff --git a/src/mame/seibu/seibuspi_m.cpp b/src/mame/seibu/seibuspi_m.cpp index 715c50c90864c..7b8b07f6b2bb8 100644 --- a/src/mame/seibu/seibuspi_m.cpp +++ b/src/mame/seibu/seibuspi_m.cpp @@ -2,47 +2,12 @@ // copyright-holders:Ville Linde, Nicola Salmoria #include "emu.h" +#include "seibu_helper.h" #include "seibuspi_m.h" -// add two numbers generating carry from one bit to the next only if -// the corresponding bit in carry_mask is 1 -static u32 partial_carry_sum(u32 add1,u32 add2,u32 carry_mask,int bits) +static u32 partial_carry_sum16(u32 add1, u32 add2, u32 carry_mask) { - int res = 0; - int carry = 0; - for (int i = 0; i < bits; i++) - { - int bit = BIT(add1,i) + BIT(add2,i) + carry; - - res += (bit & 1) << i; - - // generate carry only if the corresponding bit in carry_mask is 1 - if (BIT(carry_mask,i)) - carry = bit >> 1; - else - carry = 0; - } - - // wrap around carry from top bit to bit 0 - if (carry) - res ^=1; - - return res; -} - -u32 partial_carry_sum32(u32 add1,u32 add2,u32 carry_mask) -{ - return partial_carry_sum(add1,add2,carry_mask,32); -} - -u32 partial_carry_sum24(u32 add1,u32 add2,u32 carry_mask) -{ - return partial_carry_sum(add1,add2,carry_mask,24); -} - -static u32 partial_carry_sum16(u32 add1,u32 add2,u32 carry_mask) -{ - return partial_carry_sum(add1,add2,carry_mask,16); + return partial_carry_sum(add1, add2, carry_mask, 16); } @@ -266,8 +231,8 @@ void seibuspi_sprite_decrypt(u8 *src, int rom_size) (key( 8,addr) << 30) | (key( 0,addr) << 31); - s1 = partial_carry_sum( s1, add1, 0x3a59, 16 ) ^ 0x843a; - s2 = partial_carry_sum( s2, add2, 0x28d49cac, 32 ) ^ 0xc8e29f84; + s1 = partial_carry_sum(s1, add1, 0x3a59, 16) ^ 0x843a; + s2 = partial_carry_sum(s2, add2, 0x28d49cac, 32) ^ 0xc8e29f84; // reorder the bits in the order MAME expects to decode the graphics @@ -312,8 +277,8 @@ CPU 'main' (PC=002A0709): unmapped program memory dword write to 0000054C = 0000 CPU 'main' (PC=002A0709): unmapped program memory dword write to 0000054C = 00005237 & 0000FFFF // okok CPU 'main' (PC=002A0709): unmapped program memory dword write to 0000054C = 0000A948 & 0000FFFF // okok - plane54 = partial_carry_sum16( plane54, 0xabcb, 0x55aa ) ^ 0x6699; - plane3210 = partial_carry_sum32( plane3210, 0x654321d9 ^ 0x42, 0x1d463748 ) ^ 0x0ca352a9; + plane54 = partial_carry_sum16(plane54, 0xabcb, 0x55aa) ^ 0x6699; + plane3210 = partial_carry_sum32(plane3210, 0x654321d9 ^ 0x42, 0x1d463748) ^ 0x0ca352a9; ******************************************************************************************/ @@ -342,8 +307,8 @@ void seibuspi_rise10_sprite_decrypt(u8 *rom, int size) 27,6,15,21,1,28,10,20, 7,31,26,0,18,9,19,8); - plane54 = partial_carry_sum16( plane54, 0xabcb, 0x55aa ) ^ 0x6699; - plane3210 = partial_carry_sum32( plane3210, 0x654321d9 ^ 0x42, 0x1d463748 ) ^ 0x0ca352a9; + plane54 = partial_carry_sum16(plane54, 0xabcb, 0x55aa) ^ 0x6699; + plane3210 = partial_carry_sum32(plane3210, 0x654321d9 ^ 0x42, 0x1d463748) ^ 0x0ca352a9; rom[0 * size + 2 * i] = plane54 >> 8; rom[0 * size + 2 * i + 1] = plane54 >> 0; @@ -402,9 +367,9 @@ CPU 'main' (PC=00021C74): unmapped program memory dword write to 0601004C = EAAE CPU 'main' (PC=00021C74): unmapped program memory dword write to 0601004C = D5AC0000 & FFFF0000 // okok CPU 'main' (PC=00021C74): unmapped program memory dword write to 0601004C = 03000000 & FFFF0000 - plane543 = partial_carry_sum32( plane543, 0x9df5b2, 0x9ae999 ) ^ 0x4a32e9; - plane210 = partial_carry_sum24( plane210, i, 0x968bd5 ) ^ 0x1d97ac; - plane210 = partial_carry_sum24( plane210, 1, 0x000001 ); + plane543 = partial_carry_sum32(plane543, 0x9df5b2, 0x9ae999) ^ 0x4a32e9; + plane210 = partial_carry_sum24(plane210, i, 0x968bd5) ^ 0x1d97ac; + plane210 = partial_carry_sum24(plane210, 1, 0x000001); ******************************************************************************************/ @@ -468,10 +433,10 @@ static void seibuspi_rise11_sprite_decrypt(u8 *rom, int size, (BIT(b1, 5)<<22) | (BIT(b3,15)<<23); - plane543 = partial_carry_sum32( plane543, k1, k2 ) ^ k3; - plane210 = partial_carry_sum24( plane210, i, k4 ) ^ k5; + plane543 = partial_carry_sum32(plane543, k1, k2) ^ k3; + plane210 = partial_carry_sum24(plane210, i, k4) ^ k5; if (feversoc_kludge) - plane210 = partial_carry_sum24( plane210, 1, 0x000001 ); + plane210 = partial_carry_sum24(plane210, 1, 0x000001); rom[0 * size + 2 * i] = plane543 >> 16; rom[0 * size + 2 * i + 1] = plane543 >> 8; diff --git a/src/mame/seibu/seibuspi_m.h b/src/mame/seibu/seibuspi_m.h index eaa752de3f31f..6f0664fc4ec29 100644 --- a/src/mame/seibu/seibuspi_m.h +++ b/src/mame/seibu/seibuspi_m.h @@ -3,9 +3,6 @@ // TODO: modernize code -u32 partial_carry_sum32(u32 add1,u32 add2,u32 carry_mask); -u32 partial_carry_sum24(u32 add1,u32 add2,u32 carry_mask); - void seibuspi_sprite_decrypt(u8 *src, int romsize); void seibuspi_rise10_sprite_decrypt(u8 *rom, int romsize); void seibuspi_rise11_sprite_decrypt_rfjet(u8 *rom, int romsize); diff --git a/src/mame/seibu/seibuspi_v.cpp b/src/mame/seibu/seibuspi_v.cpp index bce277f41644f..35e32c74f9b32 100644 --- a/src/mame/seibu/seibuspi_v.cpp +++ b/src/mame/seibu/seibuspi_v.cpp @@ -9,8 +9,8 @@ ******************************************************************************/ #include "emu.h" +#include "seibu_helper.h" #include "seibuspi.h" -#include "seibuspi_m.h" #include "screen.h" #include @@ -43,7 +43,7 @@ static u32 decrypt_tile(u32 val, int tileno, u32 key1, u32 key2, u32 key3) { val = bitswap<24>(val, 18,19,9,5, 10,17,16,20, 21,22,6,11, 15,14,4,23, 0,1,7,8, 13,12,3,2); - return partial_carry_sum24( val, tileno + key1, key2 ) ^ key3; + return partial_carry_sum24(val, tileno + key1, key2) ^ key3; } static void decrypt_text(u8 *rom, u32 key1, u32 key2, u32 key3) @@ -89,12 +89,12 @@ cpu #0 (PC=0033B2EB): unmapped program memory dword write to 00000414 = 06DC0000 void seibuspi_state::text_decrypt(u8 *rom) { - decrypt_text( rom, 0x5a3845, 0x77cf5b, 0x1378df); + decrypt_text(rom, 0x5a3845, 0x77cf5b, 0x1378df); } void seibuspi_state::bg_decrypt(u8 *rom, int size) { - decrypt_bg( rom, size, 0x5a3845, 0x77cf5b, 0x1378df); + decrypt_bg(rom, size, 0x5a3845, 0x77cf5b, 0x1378df); } /****************************************************************************************** @@ -109,12 +109,12 @@ cpu #0 (PC=002A097D): unmapped program memory dword write to 00000414 = 3EDC0000 void seibuspi_state::rdft2_text_decrypt(u8 *rom) { - decrypt_text( rom, 0x823146, 0x4de2f8, 0x157adc); + decrypt_text(rom, 0x823146, 0x4de2f8, 0x157adc); } void seibuspi_state::rdft2_bg_decrypt(u8 *rom, int size) { - decrypt_bg( rom, size, 0x823146, 0x4de2f8, 0x157adc); + decrypt_bg(rom, size, 0x823146, 0x4de2f8, 0x157adc); } /****************************************************************************************** @@ -129,12 +129,12 @@ cpu #0 (PC=002C40F9): unmapped program memory dword write to 00000414 = 3EDC0000 void seibuspi_state::rfjet_text_decrypt(u8 *rom) { - decrypt_text( rom, 0xaea754, 0xfe8530, 0xccb666); + decrypt_text(rom, 0xaea754, 0xfe8530, 0xccb666); } void seibuspi_state::rfjet_bg_decrypt(u8 *rom, int size) { - decrypt_bg( rom, size, 0xaea754, 0xfe8530, 0xccb666); + decrypt_bg(rom, size, 0xaea754, 0xfe8530, 0xccb666); } void seibuspi_state::tile_decrypt_key_w(u16 data)