summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/suna8.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/suna8.cpp')
-rw-r--r--src/mame/drivers/suna8.cpp666
1 files changed, 342 insertions, 324 deletions
diff --git a/src/mame/drivers/suna8.cpp b/src/mame/drivers/suna8.cpp
index 697f7c96482..5fb069b75d1 100644
--- a/src/mame/drivers/suna8.cpp
+++ b/src/mame/drivers/suna8.cpp
@@ -47,7 +47,15 @@ Notes:
#include "speaker.h"
-#define SUNA8_MASTER_CLOCK XTAL(24'000'000)
+void suna8_state::machine_start()
+{
+ m_leds.resolve();
+
+ m_rombank = 0;
+
+ save_item(NAME(m_rombank));
+}
+
/***************************************************************************
@@ -76,30 +84,33 @@ void suna8_state::init_hardhead()
rom[i] = bitswap<8>(rom[i], 7,6,5,3,4,2,1,0) ^ 0x58;
}
- m_bank0d->set_base(memregion("maincpu")->base());
- m_bank1->configure_entries(0, 16, memregion("maincpu")->base() + 0x10000, 0x4000);
+ m_decrypted_opcodes_low->set_base(memregion("maincpu")->base());
+ m_mainbank->configure_entries(0, 16, memregion("maincpu")->base() + 0x10000, 0x4000);
+
+ save_item(NAME(m_protection_val));
}
-/* Non encrypted bootleg */
+// Non encrypted bootleg
void suna8_state::init_hardhedb()
{
- m_bank0d->set_base(memregion("maincpu")->base() + 0x48000);
- m_bank1->configure_entries(0, 16, memregion("maincpu")->base() + 0x10000, 0x4000);
+ m_decrypted_opcodes_low->set_base(memregion("maincpu")->base() + 0x48000);
+ m_mainbank->configure_entries(0, 16, memregion("maincpu")->base() + 0x10000, 0x4000);
+
+ save_item(NAME(m_protection_val));
}
/***************************************************************************
Brick Zone
***************************************************************************/
-uint8_t *suna8_state::brickzn_decrypt()
+void suna8_state::brickzn_decrypt()
{
- uint8_t *RAM = memregion("maincpu")->base();
- size_t size = memregion("maincpu")->bytes();
- uint8_t *decrypt = auto_alloc_array(machine(), uint8_t, size);
- int i;
+ uint8_t *rom = memregion("maincpu")->base();
+ size_t size = memregion("maincpu")->bytes();
+ m_decrypt = std::make_unique<uint8_t[]>(size);
- /* Opcodes and data */
- for (i = 0; i < 0x50000; i++)
+ // Opcodes and data
+ for (int i = 0; i < 0x50000; i++)
{
static const uint8_t opcode_swaptable[8] =
{
@@ -111,12 +122,12 @@ uint8_t *suna8_state::brickzn_decrypt()
};
int opcode_swap = opcode_swaptable[((i & 0x00c) >> 2) | ((i & 0x040) >> 4)];
int data_swap = (i >= 0x8000) ? 0 : data_swaptable[(i & 0x003) | ((i & 0x008) >> 1) | ((i & 0x400) >> 7)];
- uint8_t x = RAM[i];
+ uint8_t x = rom[i];
if (data_swap)
{
x = bitswap<8>(x, 7,6,5,4,3,2,0,1);
- RAM[i] = bitswap<8>(x, 7,2,3,4,5,6,1,0) ^ 0x10;
+ rom[i] = bitswap<8>(x, 7,2,3,4,5,6,1,0) ^ 0x10;
}
if (opcode_swap)
@@ -125,28 +136,36 @@ uint8_t *suna8_state::brickzn_decrypt()
if (opcode_swap || data_swap)
x = bitswap<8>(x, 7,2,3,4,5,6,1,0) ^ 0x10;
- decrypt[i] = x;
+ m_decrypt[i] = x;
// Alternate data decryption, activated at run-time. Store in higher banks.
if (i >= 0x10000)
- RAM[i+0x40000] = RAM[i] ^ 0x44;
+ rom[i + 0x40000] = rom[i] ^ 0x44;
}
-
- return decrypt;
}
void suna8_state::init_brickzn_common()
{
- m_decrypt = brickzn_decrypt();
+ brickzn_decrypt();
// Non-banked opcodes
- m_bank0d->set_base(m_decrypt);
+ m_decrypted_opcodes_low->configure_entry(0, m_decrypt.get());
+ m_decrypted_opcodes_low->configure_entry(1, memregion("maincpu")->base());
+ m_decrypted_opcodes_low->set_entry(0);
// Data banks: 00-0f normal data decryption, 10-1f alternate data decryption:
- m_bank1->configure_entries(0, 16*2, memregion("maincpu")->base() + 0x10000, 0x4000);
+ m_mainbank->configure_entries(0, 16*2, memregion("maincpu")->base() + 0x10000, 0x4000);
// Opcode banks: 00-1f normal opcode decryption:
- m_bank1d->configure_entries(0, 16, m_decrypt + 0x10000, 0x4000);
- m_bank1d->configure_entries(16, 16, m_decrypt + 0x10000, 0x4000);
+ m_decrypted_opcodes_high->configure_entries(0, 16, m_decrypt.get() + 0x10000, 0x4000);
+ m_decrypted_opcodes_high->configure_entries(16, 16, m_decrypt.get() + 0x10000, 0x4000);
+
+ save_item(NAME(m_palettebank));
+ save_item(NAME(m_paletteram_enab));
+ save_item(NAME(m_protection_val));
+ save_item(NAME(m_prot2));
+ save_item(NAME(m_prot2_prev));
+ save_item(NAME(m_prot_opcode_toggle));
+ save_item(NAME(m_remap_sound));
}
void suna8_state::init_brickzn()
@@ -205,7 +224,9 @@ void suna8_state::init_brickznv4()
void suna8_state::init_brickzn11()
{
- m_bank1->configure_entries(0, 16*2, memregion("maincpu")->base() + 0x10000, 0x4000);
+ m_mainbank->configure_entries(0, 16*2, memregion("maincpu")->base() + 0x10000, 0x4000);
+
+ save_item(NAME(m_palettebank));
}
@@ -215,14 +236,14 @@ void suna8_state::init_brickzn11()
void suna8_state::init_hardhea2()
{
- uint8_t *RAM = memregion("maincpu")->base();
- size_t size = memregion("maincpu")->bytes();
- uint8_t *decrypt = auto_alloc_array(machine(), uint8_t, size);
+ uint8_t *rom = memregion("maincpu")->base();
+ size_t size = memregion("maincpu")->bytes();
+ m_decrypt = std::make_unique<uint8_t[]>(size);
- m_bank0d->set_base(decrypt);
+ m_decrypted_opcodes_low->set_base(m_decrypt.get());
- /* Address lines scrambling */
- memcpy(decrypt, RAM, size);
+ // Address lines scrambling
+ memcpy(m_decrypt.get(), rom, size);
for (int i = 0x00000; i < 0x50000; i++)
{
/*
@@ -252,10 +273,10 @@ rom13: 0?, 1y, 2n, 3n ?,?,?,? (palettes)
if (swaptable[(i & 0xff000) >> 12])
addr = (addr & 0xf0000) | bitswap<16>(addr, 15,14,13,12,11,10,9,8,6,7,5,4,3,2,1,0);
- RAM[i] = decrypt[addr];
+ rom[i] = m_decrypt[addr];
}
- /* Opcodes */
+ // Opcodes
for (int i = 0; i < 0x8000; i++)
{
static constexpr uint8_t swaptable[32] =
@@ -270,26 +291,28 @@ rom13: 0?, 1y, 2n, 3n ?,?,?,? (palettes)
};
int table = (i & 1) | ((i & 0x400) >> 9) | ((i & 0x7000) >> 10);
- uint8_t x = RAM[i];
+ uint8_t x = rom[i];
x = bitswap<8>(x, 7,6,5,3,4,2,1,0) ^ 0x41 ^ xortable[table];
if (swaptable[table])
x = bitswap<8>(x, 5,6,7,4,3,2,1,0);
- decrypt[i] = x;
+ m_decrypt[i] = x;
}
- /* Data */
+ // Data
for (int i = 0; i < 0x8000; i++)
{
static constexpr uint8_t swaptable[8] = { 1,1,0,1,0,1,1,0 };
if (swaptable[(i & 0x7000) >> 12])
- RAM[i] = bitswap<8>(RAM[i], 5,6,7,4,3,2,1,0) ^ 0x41;
+ rom[i] = bitswap<8>(rom[i], 5,6,7,4,3,2,1,0) ^ 0x41;
}
- m_bank1->configure_entries(0, 16, memregion("maincpu")->base() + 0x10000, 0x4000);
- membank("bank2")->configure_entries(0, 2, auto_alloc_array(machine(), uint8_t, 0x2000 * 2), 0x2000);
+ m_mainbank->configure_entries(0, 16, memregion("maincpu")->base() + 0x10000, 0x4000);
+ m_hardhea2_rambank->configure_entries(0, 2, m_hardhea2_banked_protram, 0x2000);
+
+ save_item(NAME(m_nmi_enable));
}
void suna8_state::init_hardhea2b()
@@ -297,8 +320,10 @@ void suna8_state::init_hardhea2b()
// no address scramble?
// code/data split in first ROM?
- m_bank1->configure_entries(0, 16, memregion("maincpu")->base() + 0x10000, 0x4000);
- membank("bank2")->configure_entries(0, 2, auto_alloc_array(machine(), uint8_t, 0x2000 * 2), 0x2000);
+ m_mainbank->configure_entries(0, 16, memregion("maincpu")->base() + 0x10000, 0x4000);
+ m_hardhea2_rambank->configure_entries(0, 2, m_hardhea2_banked_protram, 0x2000);
+
+ save_item(NAME(m_nmi_enable));
}
/***************************************************************************
@@ -307,14 +332,14 @@ void suna8_state::init_hardhea2b()
void suna8_state::init_starfigh()
{
- uint8_t *RAM = memregion("maincpu")->base();
- size_t size = memregion("maincpu")->bytes();
- uint8_t *decrypt = auto_alloc_array(machine(), uint8_t, size);
+ uint8_t *rom = memregion("maincpu")->base();
+ size_t size = memregion("maincpu")->bytes();
+ m_decrypt = std::make_unique<uint8_t[]>(size);
- m_bank0d->set_base(decrypt);
+ m_decrypted_opcodes_low->set_base(m_decrypt.get());
- /* Address lines scrambling */
- memcpy(decrypt, RAM, size);
+ // Address lines scrambling
+ memcpy(m_decrypt.get(), rom, size);
for (int i = 0; i < 0x50000; i++)
{
static constexpr uint8_t swaptable[0x50] =
@@ -330,10 +355,10 @@ void suna8_state::init_starfigh()
if (swaptable[(i & 0xff000) >> 12])
addr = bitswap<24>(addr, 23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,6,7,5,4,3,2,1,0);
- RAM[i] = decrypt[addr];
+ rom[i] = m_decrypt[addr];
}
- /* Opcodes */
+ // Opcodes
for (int i = 0; i < 0x8000; i++)
{
static constexpr uint8_t swaptable[32] =
@@ -348,39 +373,44 @@ void suna8_state::init_starfigh()
};
int table = (i & 0x7c00) >> 10;
- uint8_t x = RAM[i];
+ uint8_t x = rom[i];
x = bitswap<8>(x, 5,6,7,3,4,2,1,0) ^ 0x45 ^ xortable[table];
if (swaptable[table])
x = bitswap<8>(x, 5,6,7,4,3,2,1,0) ^ 0x04;
- decrypt[i] = x;
+ m_decrypt[i] = x;
}
- /* Data */
+ // Data
for (int i = 0; i < 0x8000; i++)
{
static constexpr uint8_t swaptable[8] = { 1,1,0,1,0,1,1,0 };
if (swaptable[(i & 0x7000) >> 12])
- RAM[i] = bitswap<8>(RAM[i], 5,6,7,4,3,2,1,0) ^ 0x45;
+ rom[i] = bitswap<8>(rom[i], 5,6,7,4,3,2,1,0) ^ 0x45;
}
// !!!!!! PATCHES !!!!!!
- decrypt[0x07c0] = 0xc9; // c080 bit 7 protection check
+ m_decrypt[0x07c0] = 0xc9; // c080 bit 7 protection check
+
+// m_decrypt[0x083e] = 0x00; // sound latch disabling
+// m_decrypt[0x083f] = 0x00; // ""
+// m_decrypt[0x0840] = 0x00; // ""
-// decrypt[0x083e] = 0x00; // sound latch disabling
-// decrypt[0x083f] = 0x00; // ""
-// decrypt[0x0840] = 0x00; // ""
+// m_decrypt[0x0cef] = 0xc9; // rombank latch check, corrupt d12d
-// decrypt[0x0cef] = 0xc9; // rombank latch check, corrupt d12d
+ m_decrypt[0x2696] = 0xc9; // work ram writes disable, corrupt next routine
+ m_decrypt[0x4e9a] = 0x00; // work ram writes disable, flip background sprite
- decrypt[0x2696] = 0xc9; // work ram writes disable, corrupt next routine
- decrypt[0x4e9a] = 0x00; // work ram writes disable, flip background sprite
+ m_mainbank->configure_entries(0, 16, memregion("maincpu")->base() + 0x10000, 0x4000);
- m_bank1->configure_entries(0, 16, memregion("maincpu")->base() + 0x10000, 0x4000);
+ save_item(NAME(m_gfxbank));
+ save_item(NAME(m_rombank_latch));
+ save_item(NAME(m_spritebank_latch));
+ save_item(NAME(m_nmi_enable));
}
@@ -390,14 +420,14 @@ void suna8_state::init_starfigh()
void suna8_state::init_sparkman()
{
- uint8_t *RAM = memregion("maincpu")->base();
- size_t size = memregion("maincpu")->bytes();
- uint8_t *decrypt = auto_alloc_array(machine(), uint8_t, size);
+ uint8_t *rom = memregion("maincpu")->base();
+ size_t size = memregion("maincpu")->bytes();
+ m_decrypt = std::make_unique<uint8_t[]>(size);
- m_bank0d->set_base(decrypt);
+ m_decrypted_opcodes_low->set_base(m_decrypt.get());
- /* Address lines scrambling */
- memcpy(decrypt, RAM, size);
+ // Address lines scrambling
+ memcpy(m_decrypt.get(), rom, size);
for (int i = 0; i < 0x50000; i++)
{
static constexpr uint8_t swaptable[0x50] =
@@ -413,10 +443,10 @@ void suna8_state::init_sparkman()
if (swaptable[(i & 0xff000) >> 12])
addr = bitswap<24>(addr, 23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,7,8,6,5,4,3,2,1,0);
- RAM[i] = decrypt[addr];
+ rom[i] = m_decrypt[addr];
}
- /* Opcodes */
+ // Opcodes
for (int i = 0; i < 0x8000; i++)
{
static constexpr uint8_t swaptable[32] =
@@ -431,37 +461,42 @@ void suna8_state::init_sparkman()
};
int table = (i & 0x7c00) >> 10;
- uint8_t x = RAM[i];
+ uint8_t x = rom[i];
x = bitswap<8>(x, 5,6,7,3,4,2,1,0) ^ 0x44 ^ xortable[table];
if (swaptable[table])
x = bitswap<8>(x, 5,6,7,4,3,2,1,0) ^ 0x04;
- decrypt[i] = x;
+ m_decrypt[i] = x;
}
- /* Data */
+ // Data
for (int i = 0; i < 0x8000; i++)
{
static constexpr uint8_t swaptable[8] = { 1,1,1,0,1,1,0,1 };
if (swaptable[(i & 0x7000) >> 12])
- RAM[i] = bitswap<8>(RAM[i], 5,6,7,4,3,2,1,0) ^ 0x44;
+ rom[i] = bitswap<8>(rom[i], 5,6,7,4,3,2,1,0) ^ 0x44;
}
// !!!!!! PATCHES !!!!!!
// c083 bit 7 protection
- decrypt[0x0ee0] = 0x00;
- decrypt[0x0ee1] = 0x00;
- decrypt[0x0ee2] = 0x00;
+ m_decrypt[0x0ee0] = 0x00;
+ m_decrypt[0x0ee1] = 0x00;
+ m_decrypt[0x0ee2] = 0x00;
// c083 bit 7 protection
- decrypt[0x1ac3] = 0x00;
- decrypt[0x1ac4] = 0x00;
- decrypt[0x1ac5] = 0x00;
+ m_decrypt[0x1ac3] = 0x00;
+ m_decrypt[0x1ac4] = 0x00;
+ m_decrypt[0x1ac5] = 0x00;
+
+ m_mainbank->configure_entries(0, 16, memregion("maincpu")->base() + 0x10000, 0x4000);
- m_bank1->configure_entries(0, 16, memregion("maincpu")->base() + 0x10000, 0x4000);
+ save_item(NAME(m_write_disable));
+ save_item(NAME(m_rombank_latch));
+ save_item(NAME(m_spritebank_latch));
+ save_item(NAME(m_nmi_enable));
}
/***************************************************************************
@@ -512,10 +547,10 @@ uint8_t suna8_state::hardhead_ip_r()
{
switch (*m_hardhead_ip)
{
- case 0: return ioport("P1")->read();
- case 1: return ioport("P2")->read();
- case 2: return ioport("DSW1")->read();
- case 3: return ioport("DSW2")->read();
+ case 0: return m_inputs[0]->read();
+ case 1: return m_inputs[1]->read();
+ case 2: return m_inputs[2]->read();
+ case 3: return m_inputs[3]->read();
default:
logerror("CPU #0 - PC %04X: Unknown IP read: %02X\n", m_maincpu->pc(), *m_hardhead_ip);
return 0xff;
@@ -532,7 +567,7 @@ void suna8_state::hardhead_bankswitch_w(uint8_t data)
int bank = data & 0x0f;
if (data & ~0xef) logerror("CPU #0 - PC %04X: unknown bank bits: %02X\n",m_maincpu->pc(),data);
- m_bank1->set_entry(bank);
+ m_mainbank->set_entry(bank);
}
@@ -552,10 +587,10 @@ void suna8_state::hardhead_flipscreen_w(uint8_t data)
void suna8_state::hardhead_map(address_map &map)
{
map(0x0000, 0x7fff).rom(); // ROM
- map(0x8000, 0xbfff).bankr("bank1"); // Banked ROM
+ map(0x8000, 0xbfff).bankr(m_mainbank); // Banked ROM
map(0xc000, 0xd7ff).ram(); // RAM
map(0xd800, 0xd9ff).ram().w(m_palette, FUNC(palette_device::write8)).share("palette"); // Palette
- map(0xda00, 0xda00).ram().r(FUNC(suna8_state::hardhead_ip_r)).share("hardhead_ip"); // Input Port Select
+ map(0xda00, 0xda00).ram().r(FUNC(suna8_state::hardhead_ip_r)).share(m_hardhead_ip); // Input Port Select
map(0xda80, 0xda80).r(m_soundlatch2, FUNC(generic_latch_8_device::read)).w(FUNC(suna8_state::hardhead_bankswitch_w)); // ROM Banking
map(0xdb00, 0xdb00).w(m_soundlatch, FUNC(generic_latch_8_device::write)); // To Sound CPU
map(0xdb80, 0xdb80).w(FUNC(suna8_state::hardhead_flipscreen_w)); // Flip Screen + Coin Lockout
@@ -563,7 +598,7 @@ void suna8_state::hardhead_map(address_map &map)
map(0xdc80, 0xdc80).noprw(); // <- R (after bank select)
map(0xdd00, 0xdd00).noprw(); // <- R (after ip select)
map(0xdd80, 0xddff).rw(FUNC(suna8_state::hardhead_protection_r), FUNC(suna8_state::hardhead_protection_w)); // Protection
- map(0xe000, 0xffff).ram().w(FUNC(suna8_state::suna8_spriteram_w)).share("spriteram"); // Sprites
+ map(0xe000, 0xffff).ram().share(m_spriteram); // Sprites
}
void suna8_state::hardhead_io_map(address_map &map)
@@ -590,7 +625,7 @@ void suna8_state::rranger_bankswitch_w(uint8_t data)
if (data & ~0xf7) logerror("CPU #0 - PC %04X: unknown bank bits: %02X\n",m_maincpu->pc(),data);
- m_bank1->set_entry(bank);
+ m_mainbank->set_entry(bank);
flip_screen_set(data & 0x20);
machine().bookkeeping().coin_lockout_w(0, data & 0x40);
@@ -614,14 +649,14 @@ uint8_t suna8_state::rranger_soundstatus_r()
void suna8_state::sranger_prot_w(uint8_t data)
{
/* check code at 0x2ce2 (in sranger), protection is so dire that I can't even exactly
- estabilish if what I'm doing can be considered or not a kludge... -AS */
+ establish if what I'm doing can be considered or not a kludge... -AS */
m_maincpu->space(AS_PROGRAM).write_byte(0xcd99,0xff);
}
void suna8_state::rranger_map(address_map &map)
{
map(0x0000, 0x7fff).rom(); // ROM
- map(0x8000, 0xbfff).bankr("bank1"); // Banked ROM
+ map(0x8000, 0xbfff).bankr(m_mainbank); // Banked ROM
map(0xc000, 0xc000).r("watchdog", FUNC(watchdog_timer_device::reset_r)).w(m_soundlatch, FUNC(generic_latch_8_device::write)); // To Sound CPU
map(0xc002, 0xc002).w(FUNC(suna8_state::rranger_bankswitch_w)); // ROM Banking
map(0xc002, 0xc002).portr("P1"); // P1 (Inputs)
@@ -633,7 +668,7 @@ void suna8_state::rranger_map(address_map &map)
map(0xc2c0, 0xc2c0).portr("DSW2"); // DSW 2
map(0xc600, 0xc7ff).ram().w(m_palette, FUNC(palette_device::write8)).share("palette"); // Palette
map(0xc800, 0xdfff).ram(); // Work RAM
- map(0xe000, 0xffff).ram().w(FUNC(suna8_state::suna8_spriteram_w)).share("spriteram"); // Sprites
+ map(0xe000, 0xffff).ram().share(m_spriteram); // Sprites
}
@@ -659,7 +694,7 @@ uint8_t suna8_state::brickzn_cheats_r()
static uint8_t bit2 = 0;
bit2 = 1 - bit2; // see code at 2b48
return
- (ioport("CHEATS")->read() & (~(1 << 2))) |
+ (m_cheats->read() & (~(1 << 2))) |
(bit2 << 2);
}
@@ -691,9 +726,9 @@ void suna8_state::brickzn_rombank_w(uint8_t data)
if (data & ~0x0f) logerror("CPU #0 - PC %04X: unknown rom bank bits: %02X\n",m_maincpu->pc(),data);
- m_bank1->set_entry(bank + (m_bank1->entry() & 0x10));
- if(m_bank1d)
- m_bank1d->set_entry(m_bank1->entry());
+ m_mainbank->set_entry(bank + (m_mainbank->entry() & 0x10));
+ if(m_decrypted_opcodes_high)
+ m_decrypted_opcodes_high->set_entry(m_mainbank->entry());
m_rombank = data;
}
@@ -730,7 +765,7 @@ void suna8_state::brickzn_palbank_w(uint8_t data)
void suna8_state::brickzn11_map(address_map &map)
{
map(0x0000, 0x7fff).rom(); // ROM
- map(0x8000, 0xbfff).bankr("bank1"); // Banked ROM
+ map(0x8000, 0xbfff).bankr(m_mainbank); // Banked ROM
map(0xc000, 0xc000).w(m_soundlatch, FUNC(generic_latch_8_device::write)); // To Sound CPU
map(0xc040, 0xc040).w(FUNC(suna8_state::brickzn_sprbank_w)); // Sprite RAM Bank + Flip Screen + Protection
@@ -749,8 +784,8 @@ void suna8_state::brickzn11_map(address_map &map)
map(0xc140, 0xc140).r(FUNC(suna8_state::brickzn_cheats_r)); // Cheats / Debugging Inputs
map(0xc600, 0xc7ff).rw(FUNC(suna8_state::banked_paletteram_r), FUNC(suna8_state::brickzn_banked_paletteram_w)); // Palette (Banked)
- map(0xc800, 0xdfff).ram().share("wram"); // Work RAM
- map(0xe000, 0xffff).rw(FUNC(suna8_state::suna8_banked_spriteram_r), FUNC(suna8_state::suna8_banked_spriteram_w)); // Sprites (Banked)
+ map(0xc800, 0xdfff).ram().share(m_wram); // Work RAM
+ map(0xe000, 0xffff).rw(FUNC(suna8_state::banked_spriteram_r), FUNC(suna8_state::banked_spriteram_w)); // Sprites (Banked)
}
/*
@@ -812,11 +847,11 @@ void suna8_state::brickzn_multi_w(uint8_t data)
if (m_prot_opcode_toggle == 0)
{
- m_bank0d->set_base(m_decrypt);
+ m_decrypted_opcodes_low->set_entry(0);
}
else
{
- m_bank0d->set_base(memregion("maincpu")->base());
+ m_decrypted_opcodes_low->set_entry(1);
}
}
}
@@ -836,9 +871,9 @@ void suna8_state::brickzn_prot2_w(uint8_t data)
m_remap_sound = ((m_prot2 ^ data) == 0xf8) ? 1 : 0;
// Select alternate data decryption, see code at 787e:
- m_bank1->set_entry((m_bank1->entry() & 0x0f) + ((m_prot2 == (data | 0xdc)) ? 0x10 : 0));
- if(m_bank1d)
- m_bank1d->set_entry(m_bank1->entry());
+ m_mainbank->set_entry((m_mainbank->entry() & 0x0f) + ((m_prot2 == (data | 0xdc)) ? 0x10 : 0));
+ if(m_decrypted_opcodes_high)
+ m_decrypted_opcodes_high->set_entry(m_mainbank->entry());
m_prot2_prev = m_prot2;
m_prot2 = data;
@@ -859,7 +894,7 @@ void suna8_state::brickzn_disab_palram_w(uint8_t data)
void suna8_state::brickzn_map(address_map &map)
{
map(0x0000, 0x7fff).rom(); // ROM
- map(0x8000, 0xbfff).bankr("bank1"); // Banked ROM
+ map(0x8000, 0xbfff).bankr(m_mainbank); // Banked ROM
// c000 writes before reading buttons
// c010 writes?
@@ -882,14 +917,14 @@ void suna8_state::brickzn_map(address_map &map)
// c14a reads?
map(0xc600, 0xc7ff).rw(FUNC(suna8_state::banked_paletteram_r), FUNC(suna8_state::brickzn_banked_paletteram_w)); // Palette (Banked)
- map(0xc800, 0xdfff).ram().share("wram"); // Work RAM
- map(0xe000, 0xffff).rw(FUNC(suna8_state::suna8_banked_spriteram_r), FUNC(suna8_state::suna8_banked_spriteram_w)); // Sprites (Banked)
+ map(0xc800, 0xdfff).ram().share(m_wram); // Work RAM
+ map(0xe000, 0xffff).rw(FUNC(suna8_state::banked_spriteram_r), FUNC(suna8_state::banked_spriteram_w)); // Sprites (Banked)
}
void suna8_state::decrypted_opcodes_map(address_map &map)
{
- map(0x0000, 0x7fff).bankr("bank0d");
- map(0x8000, 0xbfff).bankr("bank1d");
+ map(0x0000, 0x7fff).bankr(m_decrypted_opcodes_low);
+ map(0x8000, 0xbfff).bankr(m_decrypted_opcodes_high);
}
void suna8_state::brickzn_io_map(address_map &map)
@@ -902,7 +937,7 @@ void suna8_state::brickzn_io_map(address_map &map)
Hard Head 2
***************************************************************************/
-/* Probably wrong: */
+// Probably wrong:
void suna8_state::hardhea2_nmi_w(uint8_t data)
{
m_nmi_enable = data & 0x01;
@@ -948,35 +983,27 @@ void suna8_state::hardhea2_rombank_w(uint8_t data)
if (data & ~0x0f) logerror("CPU #0 - PC %04X: unknown rom bank bits: %02X\n",m_maincpu->pc(),data);
- m_bank1->set_entry(bank);
+ m_mainbank->set_entry(bank);
m_rombank = data;
}
-void suna8_state::hardhea2_spritebank_0_w(uint8_t data)
+template <uint8_t Which>
+void suna8_state::hardhea2_prot_spritebank_w(uint8_t data)
{
- m_spritebank = 0;
-}
-void suna8_state::hardhea2_spritebank_1_w(uint8_t data)
-{
- m_spritebank = 1;
+ m_spritebank = Which;
}
-void suna8_state::hardhea2_rambank_0_w(uint8_t data)
+template <uint8_t Which>
+void suna8_state::hardhea2_prot_rambank_w(uint8_t data)
{
- membank("bank2")->set_entry(0);
+ m_hardhea2_rambank->set_entry(Which);
}
-void suna8_state::hardhea2_rambank_1_w(uint8_t data)
-{
- membank("bank2")->set_entry(1);
-}
-
-
void suna8_state::hardhea2_map(address_map &map)
{
map(0x0000, 0x7fff).rom(); // ROM
- map(0x8000, 0xbfff).bankr("bank1"); // Banked ROM
+ map(0x8000, 0xbfff).bankr(m_mainbank); // Banked ROM
map(0xc000, 0xc000).portr("P1"); // P1 (Inputs)
map(0xc001, 0xc001).portr("P2"); // P2
map(0xc002, 0xc002).portr("DSW1"); // DSW 1
@@ -996,22 +1023,22 @@ void suna8_state::hardhea2_map(address_map &map)
map(0xc500, 0xc500).w(m_soundlatch, FUNC(generic_latch_8_device::write)); // To Sound CPU
// *** Protection
- map(0xc50f, 0xc50f).w(FUNC(suna8_state::hardhea2_spritebank_1_w));
- map(0xc508, 0xc508).w(FUNC(suna8_state::hardhea2_spritebank_0_w));
+ map(0xc50f, 0xc50f).w(FUNC(suna8_state::hardhea2_prot_spritebank_w<1>));
+ map(0xc508, 0xc508).w(FUNC(suna8_state::hardhea2_prot_spritebank_w<0>));
- map(0xc507, 0xc507).w(FUNC(suna8_state::hardhea2_rambank_1_w));
- map(0xc522, 0xc522).w(FUNC(suna8_state::hardhea2_rambank_0_w));
+ map(0xc507, 0xc507).w(FUNC(suna8_state::hardhea2_prot_rambank_w<1>));
+ map(0xc522, 0xc522).w(FUNC(suna8_state::hardhea2_prot_rambank_w<0>));
- map(0xc556, 0xc556).w(FUNC(suna8_state::hardhea2_rambank_1_w));
- map(0xc528, 0xc528).w(FUNC(suna8_state::hardhea2_rambank_0_w));
+ map(0xc556, 0xc556).w(FUNC(suna8_state::hardhea2_prot_rambank_w<1>));
+ map(0xc528, 0xc528).w(FUNC(suna8_state::hardhea2_prot_rambank_w<0>));
- map(0xc560, 0xc560).w(FUNC(suna8_state::hardhea2_rambank_1_w));
- map(0xc533, 0xc533).w(FUNC(suna8_state::hardhea2_rambank_0_w));
+ map(0xc560, 0xc560).w(FUNC(suna8_state::hardhea2_prot_rambank_w<1>));
+ map(0xc533, 0xc533).w(FUNC(suna8_state::hardhea2_prot_rambank_w<0>));
// Protection ***
map(0xc600, 0xc7ff).ram().w(m_palette, FUNC(palette_device::write8)).share("palette"); // Palette
- map(0xc800, 0xdfff).bankrw("bank2"); // Work RAM (Banked)
- map(0xe000, 0xffff).rw(FUNC(suna8_state::suna8_banked_spriteram_r), FUNC(suna8_state::suna8_banked_spriteram_w)); // Sprites (Banked)
+ map(0xc800, 0xdfff).bankrw(m_hardhea2_rambank); // Work RAM (Banked)
+ map(0xe000, 0xffff).rw(FUNC(suna8_state::banked_spriteram_r), FUNC(suna8_state::banked_spriteram_w)); // Sprites (Banked)
}
@@ -1054,14 +1081,6 @@ void suna8_state::starfigh_sound_latch_w(uint8_t data)
}
/*
- C080:
-*/
-uint8_t suna8_state::starfigh_cheats_r()
-{
- return ioport("CHEATS")->read();
-}
-
-/*
C380-C3FF:
*/
void suna8_state::starfigh_spritebank_latch_w(uint8_t data)
@@ -1101,7 +1120,7 @@ void suna8_state::starfigh_leds_w(uint8_t data)
int bank = m_rombank_latch & 0x0f;
- m_bank1->set_entry(bank);
+ m_mainbank->set_entry(bank);
m_rombank = m_rombank_latch;
logerror("CPU #0 - PC %04X: rom bank = %02X\n",m_maincpu->pc(), m_rombank);
@@ -1110,13 +1129,13 @@ void suna8_state::starfigh_leds_w(uint8_t data)
void suna8_state::starfigh_map(address_map &map)
{
map(0x0000, 0x7fff).rom(); // ROM
- map(0x8000, 0xbfff).bankr("bank1"); // Banked ROM
+ map(0x8000, 0xbfff).bankr(m_mainbank); // Banked ROM
map(0xc000, 0xc000).portr("P1"); // P1 (Inputs)
map(0xc001, 0xc001).portr("P2"); // P2
map(0xc002, 0xc002).portr("DSW1"); // DSW 1
map(0xc003, 0xc003).portr("DSW2"); // DSW 2
- map(0xc080, 0xc080).r(FUNC(suna8_state::starfigh_cheats_r)); // Cheats?
+ map(0xc080, 0xc080).portr("CHEATS"); // Cheats?
map(0xc200, 0xc200).w(FUNC(suna8_state::starfigh_spritebank_w)); // Sprite RAM Bank
map(0xc280, 0xc2ff).w(FUNC(suna8_state::starfigh_rombank_latch_w)); // ROM Bank Latch (?mirrored up to c2ff?)
@@ -1129,7 +1148,7 @@ void suna8_state::starfigh_map(address_map &map)
map(0xc600, 0xc7ff).ram().w(m_palette, FUNC(palette_device::write8)).share("palette"); // Palette
map(0xc800, 0xdfff).ram(); // Work RAM
- map(0xe000, 0xffff).rw(FUNC(suna8_state::suna8_banked_spriteram_r), FUNC(suna8_state::suna8_banked_spriteram_w)); // Sprites (Banked)
+ map(0xe000, 0xffff).rw(FUNC(suna8_state::banked_spriteram_r), FUNC(suna8_state::banked_spriteram_w)); // Sprites (Banked)
}
@@ -1191,7 +1210,7 @@ void suna8_state::sparkman_write_disable_w(uint8_t data)
}
// RAM writes can be disabled
-void suna8_state::suna8_wram_w(offs_t offset, uint8_t data)
+void suna8_state::wram_w(offs_t offset, uint8_t data)
{
if (!m_write_disable)
m_wram[offset] = data;
@@ -1215,7 +1234,7 @@ void suna8_state::sparkman_rombank_w(uint8_t data)
int bank = m_rombank_latch & 0x0f;
- m_bank1->set_entry(bank);
+ m_mainbank->set_entry(bank);
m_rombank = m_rombank_latch;
logerror("CPU #0 - PC %04X: rom bank = %02X\n",m_maincpu->pc(), m_rombank);
@@ -1239,7 +1258,7 @@ uint8_t suna8_state::sparkman_c0a3_r()
void suna8_state::sparkman_map(address_map &map)
{
map(0x0000, 0x7fff).rom(); // ROM
- map(0x8000, 0xbfff).bankr("bank1"); // Banked ROM
+ map(0x8000, 0xbfff).bankr(m_mainbank); // Banked ROM
map(0xc000, 0xc000).portr("P1"); // P1 (Inputs)
map(0xc001, 0xc001).portr("P2"); // P2
@@ -1257,8 +1276,8 @@ void suna8_state::sparkman_map(address_map &map)
map(0xc500, 0xc57f).w(FUNC(suna8_state::starfigh_sound_latch_w)); // To Sound CPU (can be disabled)
map(0xc600, 0xc7ff).ram().w(m_palette, FUNC(palette_device::write8)).share("palette"); // Palette
- map(0xc800, 0xdfff).ram().w(FUNC(suna8_state::suna8_wram_w)).share("wram"); // RAM
- map(0xe000, 0xffff).rw(FUNC(suna8_state::suna8_banked_spriteram_r), FUNC(suna8_state::suna8_banked_spriteram_w)); // Sprites (Banked)
+ map(0xc800, 0xdfff).ram().w(FUNC(suna8_state::wram_w)).share(m_wram); // RAM
+ map(0xe000, 0xffff).rw(FUNC(suna8_state::banked_spriteram_r), FUNC(suna8_state::banked_spriteram_w)); // Sprites (Banked)
}
@@ -1323,7 +1342,7 @@ void suna8_state::brickzn_sound_map(address_map &map)
}
-/* PCM Z80, 4 DACs (4 bits per sample), NO RAM !! */
+// PCM Z80, 4 DACs (4 bits per sample), NO RAM !!
void suna8_state::brickzn_pcm_map(address_map &map)
{
@@ -1846,7 +1865,7 @@ INPUT_PORTS_END
***************************************************************************/
-/* 8x8x4 tiles (2 bitplanes per ROM) */
+// 8x8x4 tiles (2 bitplanes per ROM)
static const gfx_layout layout_8x8x4 =
{
8,8,
@@ -1877,56 +1896,55 @@ GFXDECODE_END
***************************************************************************/
-/* In games with only 2 CPUs, port A&B of the AY8910 are used
- for sample playing. */
+// In games with only 2 CPUs, port A&B of the AY8910 are used for sample playing.
/***************************************************************************
Hard Head
***************************************************************************/
-/* 1 x 24 MHz crystal */
+// 1 x 24 MHz crystal
void suna8_state::hardhead(machine_config &config)
{
- /* basic machine hardware */
- Z80(config, m_maincpu, SUNA8_MASTER_CLOCK / 4); /* verified on pcb */
+ // basic machine hardware
+ Z80(config, m_maincpu, XTAL(24'000'000) / 4); // verified on pcb
m_maincpu->set_addrmap(AS_PROGRAM, &suna8_state::hardhead_map);
m_maincpu->set_addrmap(AS_IO, &suna8_state::hardhead_io_map);
m_maincpu->set_addrmap(AS_OPCODES, &suna8_state::decrypted_opcodes_map);
- m_maincpu->set_vblank_int("screen", FUNC(suna8_state::irq0_line_hold)); /* No NMI */
+ m_maincpu->set_vblank_int("screen", FUNC(suna8_state::irq0_line_hold)); // No NMI
- Z80(config, m_audiocpu, SUNA8_MASTER_CLOCK / 8); /* verified on pcb */
+ Z80(config, m_audiocpu, XTAL(24'000'000) / 8); // verified on pcb
m_audiocpu->set_addrmap(AS_PROGRAM, &suna8_state::hardhead_sound_map);
m_audiocpu->set_addrmap(AS_IO, &suna8_state::hardhead_sound_io_map);
- m_audiocpu->set_periodic_int(FUNC(suna8_state::irq0_line_hold), attotime::from_hz(4*60)); /* No NMI */
+ m_audiocpu->set_periodic_int(FUNC(suna8_state::irq0_line_hold), attotime::from_hz(4*60)); // No NMI
- /* video hardware */
+ // video hardware
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
- m_screen->set_refresh_hz(59.10); /* verified on pcb */
+ m_screen->set_refresh_hz(59.10); // verified on pcb
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
m_screen->set_size(256, 256);
m_screen->set_visarea(0, 256-1, 0+16, 256-16-1);
- m_screen->set_screen_update(FUNC(suna8_state::screen_update_suna8));
+ m_screen->set_screen_update(FUNC(suna8_state::screen_update));
m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_suna8);
PALETTE(config, m_palette).set_format(palette_device::RGBx_444, 256);
m_palette->set_endianness(ENDIANNESS_BIG);
- MCFG_VIDEO_START_OVERRIDE(suna8_state,suna8_text)
+ MCFG_VIDEO_START_OVERRIDE(suna8_state,text)
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "speaker").front_center();
GENERIC_LATCH_8(config, m_soundlatch);
GENERIC_LATCH_8(config, m_soundlatch2);
- YM3812(config, "ymsnd", SUNA8_MASTER_CLOCK / 8).add_route(ALL_OUTPUTS, "speaker", 1.0); /* clock verified on pcb */
+ YM3812(config, "ymsnd", XTAL(24'000'000) / 8).add_route(ALL_OUTPUTS, "speaker", 1.0); // clock verified on pcb
- ay8910_device &aysnd(AY8910(config, "aysnd", SUNA8_MASTER_CLOCK / 16)); /* clock verified on pcb */
- aysnd.port_a_write_callback().set(FUNC(suna8_state::suna8_play_samples_w));
- aysnd.port_b_write_callback().set(FUNC(suna8_state::suna8_samples_number_w));
+ ay8910_device &aysnd(AY8910(config, "aysnd", XTAL(24'000'000) / 16)); // clock verified on pcb
+ aysnd.port_a_write_callback().set(FUNC(suna8_state::play_samples_w));
+ aysnd.port_b_write_callback().set(FUNC(suna8_state::samples_number_w));
aysnd.add_route(ALL_OUTPUTS, "speaker", 0.3);
SAMPLES(config, m_samples);
@@ -1940,50 +1958,50 @@ void suna8_state::hardhead(machine_config &config)
Rough Ranger
***************************************************************************/
-/* 1 x 24 MHz crystal */
+// 1 x 24 MHz crystal
-/* 2203 + 8910 */
+// 2203 + 8910
void suna8_state::rranger(machine_config &config)
{
- /* basic machine hardware */
- Z80(config, m_maincpu, SUNA8_MASTER_CLOCK / 4); /* ? */
+ // basic machine hardware
+ Z80(config, m_maincpu, XTAL(24'000'000) / 4); // ?
m_maincpu->set_addrmap(AS_PROGRAM, &suna8_state::rranger_map);
m_maincpu->set_addrmap(AS_IO, &suna8_state::rranger_io_map);
- m_maincpu->set_vblank_int("screen", FUNC(suna8_state::irq0_line_hold)); /* IRQ & NMI ! */
+ m_maincpu->set_vblank_int("screen", FUNC(suna8_state::irq0_line_hold)); // IRQ & NMI !
- Z80(config, m_audiocpu, SUNA8_MASTER_CLOCK / 8); /* clock verified on pcb */
+ Z80(config, m_audiocpu, XTAL(24'000'000) / 8); // clock verified on pcb
m_audiocpu->set_addrmap(AS_PROGRAM, &suna8_state::rranger_sound_map);
- m_audiocpu->set_periodic_int(FUNC(suna8_state::irq0_line_hold), attotime::from_hz(4*60)); /* NMI = retn */
+ m_audiocpu->set_periodic_int(FUNC(suna8_state::irq0_line_hold), attotime::from_hz(4*60)); // NMI = retn
WATCHDOG_TIMER(config, "watchdog");
- /* video hardware */
+ // video hardware
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
m_screen->set_refresh_hz(59.1);
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
m_screen->set_size(256, 256);
m_screen->set_visarea(0, 256-1, 0+16, 256-16-1);
- m_screen->set_screen_update(FUNC(suna8_state::screen_update_suna8));
+ m_screen->set_screen_update(FUNC(suna8_state::screen_update));
m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_suna8);
PALETTE(config, m_palette).set_format(palette_device::RGBx_444, 256);
m_palette->set_endianness(ENDIANNESS_BIG);
- MCFG_VIDEO_START_OVERRIDE(suna8_state,suna8_text)
+ MCFG_VIDEO_START_OVERRIDE(suna8_state,text)
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "speaker").front_center();
GENERIC_LATCH_8(config, m_soundlatch);
GENERIC_LATCH_8(config, m_soundlatch2);
- ym2203_device &ym1(YM2203(config, "ym1", SUNA8_MASTER_CLOCK / 16)); /* verified on pcb */
+ ym2203_device &ym1(YM2203(config, "ym1", XTAL(24'000'000) / 16)); // verified on pcb
ym1.port_a_write_callback().set(FUNC(suna8_state::rranger_play_samples_w));
- ym1.port_b_write_callback().set(FUNC(suna8_state::suna8_samples_number_w));
+ ym1.port_b_write_callback().set(FUNC(suna8_state::samples_number_w));
ym1.add_route(ALL_OUTPUTS, "speaker", 0.9);
- YM2203(config, "ym2", SUNA8_MASTER_CLOCK / 16).add_route(ALL_OUTPUTS, "speaker", 0.9); /* verified on pcb */
+ YM2203(config, "ym2", XTAL(24'000'000) / 16).add_route(ALL_OUTPUTS, "speaker", 0.9); // verified on pcb
SAMPLES(config, m_samples);
m_samples->set_channels(1);
@@ -1996,60 +2014,60 @@ void suna8_state::rranger(machine_config &config)
Brick Zone
***************************************************************************/
-/* 1 x 24 MHz crystal */
+// 1 x 24 MHz crystal
MACHINE_RESET_MEMBER(suna8_state,brickzn)
{
m_protection_val = m_prot2 = m_prot2_prev = 0xff;
m_paletteram_enab = 1; // for brickzn11
- m_remap_sound = 0;
- m_bank1->set_entry(0);
- if(m_bank1d)
- m_bank1d->set_entry(0);
+ m_remap_sound = m_prot_opcode_toggle = 0;
+ m_mainbank->set_entry(0);
+ if(m_decrypted_opcodes_high)
+ m_decrypted_opcodes_high->set_entry(0);
}
void suna8_state::brickzn11(machine_config &config)
{
- /* basic machine hardware */
- Z80(config, m_maincpu, SUNA8_MASTER_CLOCK / 4); /* SUNA PROTECTION BLOCK */
+ // basic machine hardware
+ Z80(config, m_maincpu, XTAL(24'000'000) / 4); // SUNA PROTECTION BLOCK
m_maincpu->set_addrmap(AS_PROGRAM, &suna8_state::brickzn11_map);
m_maincpu->set_vblank_int("screen", FUNC(suna8_state::irq0_line_hold)); // nmi breaks ramtest but is needed!
- Z80(config, m_audiocpu, SUNA8_MASTER_CLOCK / 4); /* Z0840006PSC - 6MHz (measured) */
+ Z80(config, m_audiocpu, XTAL(24'000'000) / 4); // Z0840006PSC - 6MHz (measured)
m_audiocpu->set_addrmap(AS_PROGRAM, &suna8_state::brickzn_sound_map);
- z80_device &pcm(Z80(config, "pcm", SUNA8_MASTER_CLOCK / 4)); /* Z0840006PSC - 6MHz (measured) */
+ z80_device &pcm(Z80(config, "pcm", XTAL(24'000'000) / 4)); // Z0840006PSC - 6MHz (measured)
pcm.set_addrmap(AS_PROGRAM, &suna8_state::brickzn_pcm_map);
pcm.set_addrmap(AS_IO, &suna8_state::brickzn_pcm_io_map);
MCFG_MACHINE_RESET_OVERRIDE(suna8_state, brickzn )
- /* video hardware */
+ // video hardware
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
m_screen->set_refresh_hz(60);
- m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ // we're using PORT_VBLANK
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // not accurate, we're using PORT_VBLANK
m_screen->set_size(256, 256);
m_screen->set_visarea(0, 256-1, 0+16, 256-16-1);
- m_screen->set_screen_update(FUNC(suna8_state::screen_update_suna8));
+ m_screen->set_screen_update(FUNC(suna8_state::screen_update));
m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_suna8);
PALETTE(config, m_palette).set_format(palette_device::RGBx_444, 256 * 2); // 2 x palette RAM
m_palette->set_endianness(ENDIANNESS_BIG);
- MCFG_VIDEO_START_OVERRIDE(suna8_state,suna8_brickzn)
+ MCFG_VIDEO_START_OVERRIDE(suna8_state,brickzn)
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "speaker").front_center();
GENERIC_LATCH_8(config, m_soundlatch);
GENERIC_LATCH_8(config, m_soundlatch2);
- ym3812_device &ymsnd(YM3812(config, "ymsnd", SUNA8_MASTER_CLOCK / 8)); // 3MHz (measured)
+ ym3812_device &ymsnd(YM3812(config, "ymsnd", XTAL(24'000'000) / 8)); // 3MHz (measured)
ymsnd.irq_handler().set_inputline("audiocpu", 0);
ymsnd.add_route(ALL_OUTPUTS, "speaker", 1.0);
- AY8910(config, "aysnd", SUNA8_MASTER_CLOCK / 16).add_route(ALL_OUTPUTS, "speaker", 0.33); // 1.5MHz (measured)
+ AY8910(config, "aysnd", XTAL(24'000'000) / 16).add_route(ALL_OUTPUTS, "speaker", 0.33); // 1.5MHz (measured)
DAC_4BIT_R2R(config, "ldac", 0).add_route(ALL_OUTPUTS, "speaker", 0.17); // unknown DAC
DAC_4BIT_R2R(config, "rdac", 0).add_route(ALL_OUTPUTS, "speaker", 0.17); // unknown DAC
@@ -2070,7 +2088,7 @@ void suna8_state::brickzn(machine_config &config)
Hard Head 2
***************************************************************************/
-/* 1 x 24 MHz crystal */
+// 1 x 24 MHz crystal
TIMER_DEVICE_CALLBACK_MEMBER(suna8_state::hardhea2_interrupt)
{
@@ -2084,13 +2102,13 @@ TIMER_DEVICE_CALLBACK_MEMBER(suna8_state::hardhea2_interrupt)
MACHINE_RESET_MEMBER(suna8_state,hardhea2)
{
- hardhea2_rambank_0_w(0);
+ hardhea2_prot_rambank_w<0>(0);
}
void suna8_state::hardhea2(machine_config &config)
{
brickzn(config);
- Z80(config.replace(), m_maincpu, SUNA8_MASTER_CLOCK / 4); /* SUNA T568009 */
+ Z80(config.replace(), m_maincpu, XTAL(24'000'000) / 4); // SUNA T568009
m_maincpu->set_addrmap(AS_PROGRAM, &suna8_state::hardhea2_map);
m_maincpu->set_addrmap(AS_OPCODES, &suna8_state::decrypted_opcodes_map);
TIMER(config, "scantimer").configure_scanline(FUNC(suna8_state::hardhea2_interrupt), "screen", 0, 1);
@@ -2104,7 +2122,7 @@ void suna8_state::hardhea2(machine_config &config)
void suna8_state::hardhea2b(machine_config &config)
{
hardhea2(config);
- Z80(config.replace(), m_maincpu, SUNA8_MASTER_CLOCK / 4); //bootleg clock not verified (?)
+ Z80(config.replace(), m_maincpu, XTAL(24'000'000) / 4); //bootleg clock not verified (?)
m_maincpu->set_addrmap(AS_PROGRAM, &suna8_state::hardhea2b_map);
m_maincpu->set_addrmap(AS_OPCODES, &suna8_state::hardhea2b_decrypted_opcodes_map);
}
@@ -2116,44 +2134,44 @@ void suna8_state::hardhea2b(machine_config &config)
void suna8_state::starfigh(machine_config &config)
{
- /* basic machine hardware */
- Z80(config, m_maincpu, SUNA8_MASTER_CLOCK / 4); /* ? */
+ // basic machine hardware
+ Z80(config, m_maincpu, XTAL(24'000'000) / 4); // ?
m_maincpu->set_addrmap(AS_PROGRAM, &suna8_state::starfigh_map);
m_maincpu->set_addrmap(AS_OPCODES, &suna8_state::decrypted_opcodes_map);
TIMER(config, "scantimer").configure_scanline(FUNC(suna8_state::hardhea2_interrupt), "screen", 0, 1);
- /* The sound section is identical to that of hardhead */
- Z80(config, m_audiocpu, SUNA8_MASTER_CLOCK / 4); /* ? */
+ // The sound section is identical to that of hardhead
+ Z80(config, m_audiocpu, XTAL(24'000'000) / 4); // ?
m_audiocpu->set_addrmap(AS_PROGRAM, &suna8_state::hardhead_sound_map);
m_audiocpu->set_addrmap(AS_IO, &suna8_state::hardhead_sound_io_map);
- m_audiocpu->set_periodic_int(FUNC(suna8_state::irq0_line_hold), attotime::from_hz(4*60)); /* No NMI */
+ m_audiocpu->set_periodic_int(FUNC(suna8_state::irq0_line_hold), attotime::from_hz(4*60)); // No NMI
- /* video hardware */
+ // video hardware
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
m_screen->set_refresh_hz(60);
- m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // not accurate
m_screen->set_size(256, 256);
m_screen->set_visarea(0, 256-1, 0+16, 256-16-1);
- m_screen->set_screen_update(FUNC(suna8_state::screen_update_suna8));
+ m_screen->set_screen_update(FUNC(suna8_state::screen_update));
m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_suna8);
PALETTE(config, m_palette).set_format(palette_device::RGBx_444, 256);
m_palette->set_endianness(ENDIANNESS_BIG);
- MCFG_VIDEO_START_OVERRIDE(suna8_state,suna8_starfigh)
+ MCFG_VIDEO_START_OVERRIDE(suna8_state,starfigh)
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "speaker").front_center();
GENERIC_LATCH_8(config, m_soundlatch);
GENERIC_LATCH_8(config, m_soundlatch2);
- YM3812(config, "ymsnd", SUNA8_MASTER_CLOCK / 8).add_route(ALL_OUTPUTS, "speaker", 1.0);
+ YM3812(config, "ymsnd", XTAL(24'000'000) / 8).add_route(ALL_OUTPUTS, "speaker", 1.0);
- ay8910_device &aysnd(AY8910(config, "aysnd", SUNA8_MASTER_CLOCK / 16));
- aysnd.port_a_write_callback().set(FUNC(suna8_state::suna8_play_samples_w));
- aysnd.port_b_write_callback().set(FUNC(suna8_state::suna8_samples_number_w));
+ ay8910_device &aysnd(AY8910(config, "aysnd", XTAL(24'000'000) / 16));
+ aysnd.port_a_write_callback().set(FUNC(suna8_state::play_samples_w));
+ aysnd.port_b_write_callback().set(FUNC(suna8_state::samples_number_w));
aysnd.add_route(ALL_OUTPUTS, "speaker", 0.5);
SAMPLES(config, m_samples);
@@ -2169,43 +2187,43 @@ void suna8_state::starfigh(machine_config &config)
void suna8_state::sparkman(machine_config &config)
{
- /* basic machine hardware */
- Z80(config, m_maincpu, SUNA8_MASTER_CLOCK / 4); /* ? */
+ // basic machine hardware
+ Z80(config, m_maincpu, XTAL(24'000'000) / 4); // ?
m_maincpu->set_addrmap(AS_PROGRAM, &suna8_state::sparkman_map);
m_maincpu->set_addrmap(AS_OPCODES, &suna8_state::decrypted_opcodes_map);
TIMER(config, "scantimer").configure_scanline(FUNC(suna8_state::hardhea2_interrupt), "screen", 0, 1);
- Z80(config, m_audiocpu, SUNA8_MASTER_CLOCK / 4); /* ? */
+ Z80(config, m_audiocpu, XTAL(24'000'000) / 4); // ?
m_audiocpu->set_addrmap(AS_PROGRAM, &suna8_state::hardhead_sound_map);
m_audiocpu->set_addrmap(AS_IO, &suna8_state::hardhead_sound_io_map);
- m_audiocpu->set_periodic_int(FUNC(suna8_state::irq0_line_hold), attotime::from_hz(4*60)); /* No NMI */
+ m_audiocpu->set_periodic_int(FUNC(suna8_state::irq0_line_hold), attotime::from_hz(4*60)); // No NMI
- /* video hardware */
+ // video hardware
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
m_screen->set_refresh_hz(60);
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
m_screen->set_size(256, 256);
m_screen->set_visarea(0, 256-1, 0+16, 256-16-1);
- m_screen->set_screen_update(FUNC(suna8_state::screen_update_suna8));
+ m_screen->set_screen_update(FUNC(suna8_state::screen_update));
m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_suna8_x2); // 2 sprite "chips"
PALETTE(config, m_palette).set_format(palette_device::RGBx_444, 512);
m_palette->set_endianness(ENDIANNESS_BIG);
- MCFG_VIDEO_START_OVERRIDE(suna8_state,suna8_sparkman)
+ MCFG_VIDEO_START_OVERRIDE(suna8_state,sparkman)
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "speaker").front_center();
GENERIC_LATCH_8(config, m_soundlatch);
GENERIC_LATCH_8(config, m_soundlatch2);
- YM3812(config, "ymsnd", SUNA8_MASTER_CLOCK / 8).add_route(ALL_OUTPUTS, "speaker", 1.0);
+ YM3812(config, "ymsnd", XTAL(24'000'000) / 8).add_route(ALL_OUTPUTS, "speaker", 1.0);
- ay8910_device &aysnd(AY8910(config, "aysnd", SUNA8_MASTER_CLOCK / 16));
- aysnd.port_a_write_callback().set(FUNC(suna8_state::suna8_play_samples_w)); // two sample roms
- aysnd.port_b_write_callback().set(FUNC(suna8_state::suna8_samples_number_w));
+ ay8910_device &aysnd(AY8910(config, "aysnd", XTAL(24'000'000) / 16));
+ aysnd.port_a_write_callback().set(FUNC(suna8_state::play_samples_w)); // two sample roms
+ aysnd.port_b_write_callback().set(FUNC(suna8_state::samples_number_w));
aysnd.add_route(ALL_OUTPUTS, "speaker", 0.3);
SAMPLES(config, m_samples);
@@ -2261,7 +2279,7 @@ Sound processor - Z80
// (laugh sound used when scoring a goal at the end of level 1)
ROM_START( hardhead )
- ROM_REGION( 0x48000, "maincpu", 0 ) /* Main Z80 Code */
+ ROM_REGION( 0x48000, "maincpu", 0 ) // Main Z80 Code
ROM_LOAD( "p1", 0x00000, 0x8000, CRC(c6147926) SHA1(8d1609aaeac344c6aec102e92d34caab22a8ec64) ) // 1988,9,14
ROM_LOAD( "p2", 0x10000, 0x8000, CRC(faa2cf9a) SHA1(5987f146b58fcbc3aaa9c010d86022b5172bcfb4) )
ROM_LOAD( "p3", 0x18000, 0x8000, CRC(3d24755e) SHA1(519a179594956f7c3ddfaca362c42b453c928e25) )
@@ -2271,10 +2289,10 @@ ROM_START( hardhead )
ROM_LOAD( "p9", 0x38000, 0x8000, CRC(2ad430c4) SHA1(286a5b1042e077c3ae741d01311d4c91f8f87054) )
ROM_LOAD( "p10", 0x40000, 0x8000, CRC(b6894517) SHA1(e114a5f92b83d98215aab6e2cd943a110d118f56) )
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound Z80 Code */
+ ROM_REGION( 0x10000, "audiocpu", 0 ) // Sound Z80 Code
ROM_LOAD( "p13", 0x0000, 0x8000, CRC(493c0b41) SHA1(994a334253e905c39ec912765e8b0f4b1be900bc) )
- ROM_REGION( 0x40000, "gfx1", ROMREGION_INVERT ) /* Sprites */
+ ROM_REGION( 0x40000, "gfx1", ROMREGION_INVERT ) // Sprites
ROM_LOAD( "p5", 0x00000, 0x8000, CRC(e9aa6fba) SHA1(f286727541f08b136a7d45e13975652bdc8fd663) )
ROM_RELOAD( 0x08000, 0x8000 )
ROM_LOAD( "p6", 0x10000, 0x8000, CRC(15d5f5dd) SHA1(4441344701fcdb2be55bdd76a8a5fd59f5de813c) )
@@ -2284,12 +2302,12 @@ ROM_START( hardhead )
ROM_LOAD( "p12", 0x30000, 0x8000, CRC(9582e6db) SHA1(a2b34d740e07bd35a3184365e7f3ab7476075d70) )
ROM_RELOAD( 0x38000, 0x8000 )
- ROM_REGION( 0x8000, "samples", 0 ) /* Samples */
+ ROM_REGION( 0x8000, "samples", 0 ) // Samples
ROM_LOAD( "p14", 0x0000, 0x8000, CRC(41314ac1) SHA1(1ac9213b0ac4ce9fe6256e93875672e128a5d069) )
ROM_END
ROM_START( hardheadb )
- ROM_REGION( 0x48000+0x8000, "maincpu", 0 ) /* Main Z80 Code */
+ ROM_REGION( 0x48000+0x8000, "maincpu", 0 ) // Main Z80 Code
ROM_LOAD( "1_27512.l6", 0x48000, 0x8000, CRC(bb4aa9ac) SHA1(da6310a1034cf610139d74fc30dd13e5fbd1d8dd) ) // 1988,9,14 (already decrypted)
ROM_CONTINUE( 0x00000, 0x8000 )
ROM_LOAD( "p2", 0x10000, 0x8000, CRC(faa2cf9a) SHA1(5987f146b58fcbc3aaa9c010d86022b5172bcfb4) )
@@ -2300,11 +2318,11 @@ ROM_START( hardheadb )
ROM_LOAD( "p9", 0x38000, 0x8000, CRC(2ad430c4) SHA1(286a5b1042e077c3ae741d01311d4c91f8f87054) )
ROM_LOAD( "p10", 0x40000, 0x8000, CRC(b6894517) SHA1(e114a5f92b83d98215aab6e2cd943a110d118f56) )
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound Z80 Code */
+ ROM_REGION( 0x10000, "audiocpu", 0 ) // Sound Z80 Code
ROM_LOAD( "p13", 0x0000, 0x8000, CRC(493c0b41) SHA1(994a334253e905c39ec912765e8b0f4b1be900bc) )
// ROM_LOAD( "2_13_9h.rom", 0x00000, 0x8000, CRC(1b20e5ec) )
- ROM_REGION( 0x40000, "gfx1", ROMREGION_INVERT ) /* Sprites */
+ ROM_REGION( 0x40000, "gfx1", ROMREGION_INVERT ) // Sprites
ROM_LOAD( "p5", 0x00000, 0x8000, CRC(e9aa6fba) SHA1(f286727541f08b136a7d45e13975652bdc8fd663) )
ROM_RELOAD( 0x08000, 0x8000 )
ROM_LOAD( "p6", 0x10000, 0x8000, CRC(15d5f5dd) SHA1(4441344701fcdb2be55bdd76a8a5fd59f5de813c) )
@@ -2314,7 +2332,7 @@ ROM_START( hardheadb )
ROM_LOAD( "p12", 0x30000, 0x8000, CRC(9582e6db) SHA1(a2b34d740e07bd35a3184365e7f3ab7476075d70) )
ROM_RELOAD( 0x38000, 0x8000 )
- ROM_REGION( 0x8000, "samples", 0 ) /* Samples */
+ ROM_REGION( 0x8000, "samples", 0 ) // Samples
ROM_LOAD( "p14", 0x0000, 0x8000, CRC(41314ac1) SHA1(1ac9213b0ac4ce9fe6256e93875672e128a5d069) )
ROM_END
@@ -2356,7 +2374,7 @@ Look at the daughter board:
***************************************************************************/
ROM_START( hardheadb2 )
- ROM_REGION( 0x48000+0x8000, "maincpu", 0 ) /* Main Z80 Code */
+ ROM_REGION( 0x48000+0x8000, "maincpu", 0 ) // Main Z80 Code
ROM_LOAD( "9_1.6l", 0x00000, 0x8000, CRC(750e6aee) SHA1(ec8f61a1a3d95ef0e3748968f6da73e972763493) ) // = 1_27512.l6 [1/2] (hardheadb) 1988,9,14 (already decrypted)
ROM_RELOAD( 0x48000, 0x8000 ) // remove protection patches at 83a, 85c, 881 (79 c9 -> b9 c8) to pass rom test
ROM_LOAD( "10_2.6k", 0x10000, 0x8000, CRC(8fcc1248) SHA1(5da0b7dc63f7bc00e81e9e5bac02ee6b0076ffaa) ) // = 2_27256.k6 (pop_hh)
@@ -2367,10 +2385,10 @@ ROM_START( hardheadb2 )
ROM_LOAD( "5_9.7j", 0x38000, 0x8000, CRC(e4eea730) SHA1(be0a05cc31c55aa84f393024fe08a7cae1554db7) )
ROM_LOAD( "6_10.7h", 0x40000, 0x8000, CRC(84fc6574) SHA1(ab33e6c656f25e65bb08d0a2689693df83cab43d) ) // = 10_27256.i8 (pop_hh)
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound Z80 Code */
+ ROM_REGION( 0x10000, "audiocpu", 0 ) // Sound Z80 Code
ROM_LOAD( "2_13.9h", 0x00000, 0x8000, CRC(1b20e5ec) SHA1(b943a9666536b357434f3e7140df959d3c78908b) ) // ~ p13 79.528809%
- ROM_REGION( 0x40000, "gfx1", ROMREGION_INVERT ) /* Sprites */
+ ROM_REGION( 0x40000, "gfx1", ROMREGION_INVERT ) // Sprites
ROM_LOAD( "13_5.6d", 0x00000, 0x8000, CRC(e9aa6fba) SHA1(f286727541f08b136a7d45e13975652bdc8fd663) ) // = p5
ROM_RELOAD( 0x08000, 0x8000 )
ROM_LOAD( "14_6.6a", 0x10000, 0x8000, CRC(ae24b92a) SHA1(8f7b1180b8762548853ca0c53d7913cfe17acc48) )
@@ -2380,12 +2398,12 @@ ROM_START( hardheadb2 )
ROM_LOAD( "8_12.7a", 0x30000, 0x8000, CRC(9582e6db) SHA1(a2b34d740e07bd35a3184365e7f3ab7476075d70) ) // = p12
ROM_RELOAD( 0x38000, 0x8000 )
- ROM_REGION( 0x8000, "samples", 0 ) /* Samples */
+ ROM_REGION( 0x8000, "samples", 0 ) // Samples
ROM_LOAD( "1_14.11m", 0x00000, 0x8000, CRC(41314ac1) SHA1(1ac9213b0ac4ce9fe6256e93875672e128a5d069) ) // = p14
ROM_END
ROM_START( hardheadb3 ) // almost identical to pop_hh, only unique ROM is p8
- ROM_REGION( 0x48000+0x8000, "maincpu", 0 ) /* Main Z80 Code */
+ ROM_REGION( 0x48000+0x8000, "maincpu", 0 ) // Main Z80 Code
ROM_LOAD( "1_27512.l6", 0x48000, 0x8000, CRC(bb4aa9ac) SHA1(da6310a1034cf610139d74fc30dd13e5fbd1d8dd) )
ROM_CONTINUE( 0x00000, 0x8000 )
ROM_LOAD( "2_27256.k6", 0x10000, 0x8000, CRC(8fcc1248) SHA1(5da0b7dc63f7bc00e81e9e5bac02ee6b0076ffaa) )
@@ -2396,10 +2414,10 @@ ROM_START( hardheadb3 ) // almost identical to pop_hh, only unique ROM is p8
ROM_LOAD( "p9", 0x38000, 0x8000, CRC(2ad430c4) SHA1(286a5b1042e077c3ae741d01311d4c91f8f87054) )
ROM_LOAD( "10_27256.i8", 0x40000, 0x8000, CRC(84fc6574) SHA1(ab33e6c656f25e65bb08d0a2689693df83cab43d) )
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound Z80 Code */
+ ROM_REGION( 0x10000, "audiocpu", 0 ) // Sound Z80 Code
ROM_LOAD( "p13", 0x0000, 0x8000, CRC(493c0b41) SHA1(994a334253e905c39ec912765e8b0f4b1be900bc) )
- ROM_REGION( 0x40000, "gfx1", ROMREGION_INVERT ) /* Sprites */
+ ROM_REGION( 0x40000, "gfx1", ROMREGION_INVERT ) // Sprites
ROM_LOAD( "p5", 0x00000, 0x8000, CRC(e9aa6fba) SHA1(f286727541f08b136a7d45e13975652bdc8fd663) )
ROM_RELOAD( 0x08000, 0x8000 )
ROM_LOAD( "p6", 0x10000, 0x8000, CRC(15d5f5dd) SHA1(4441344701fcdb2be55bdd76a8a5fd59f5de813c) )
@@ -2409,7 +2427,7 @@ ROM_START( hardheadb3 ) // almost identical to pop_hh, only unique ROM is p8
ROM_LOAD( "p12", 0x30000, 0x8000, CRC(9582e6db) SHA1(a2b34d740e07bd35a3184365e7f3ab7476075d70) )
ROM_RELOAD( 0x38000, 0x8000 )
- ROM_REGION( 0x8000, "samples", 0 ) /* Samples */
+ ROM_REGION( 0x8000, "samples", 0 ) // Samples
ROM_LOAD( "p14", 0x0000, 0x8000, CRC(41314ac1) SHA1(1ac9213b0ac4ce9fe6256e93875672e128a5d069) )
ROM_REGION( 0x600, "plds", 0 )
@@ -2419,7 +2437,7 @@ ROM_START( hardheadb3 ) // almost identical to pop_hh, only unique ROM is p8
ROM_END
ROM_START( pop_hh )
- ROM_REGION( 0x48000+0x8000, "maincpu", 0 ) /* Main Z80 Code */
+ ROM_REGION( 0x48000+0x8000, "maincpu", 0 ) // Main Z80 Code
ROM_LOAD( "1_27512.l6", 0x48000, 0x8000, CRC(bb4aa9ac) SHA1(da6310a1034cf610139d74fc30dd13e5fbd1d8dd) ) // 1988,9,14 (already decrypted)
ROM_CONTINUE( 0x00000, 0x8000 )
ROM_LOAD( "2_27256.k6", 0x10000, 0x8000, CRC(8fcc1248) SHA1(5da0b7dc63f7bc00e81e9e5bac02ee6b0076ffaa) )
@@ -2430,10 +2448,10 @@ ROM_START( pop_hh )
ROM_LOAD( "p9", 0x38000, 0x8000, CRC(2ad430c4) SHA1(286a5b1042e077c3ae741d01311d4c91f8f87054) ) // 9_27256.j8
ROM_LOAD( "10_27256.i8", 0x40000, 0x8000, CRC(84fc6574) SHA1(ab33e6c656f25e65bb08d0a2689693df83cab43d) )
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound Z80 Code */
+ ROM_REGION( 0x10000, "audiocpu", 0 ) // Sound Z80 Code
ROM_LOAD( "p13", 0x0000, 0x8000, CRC(493c0b41) SHA1(994a334253e905c39ec912765e8b0f4b1be900bc) ) // 13_27256.i10
- ROM_REGION( 0x40000, "gfx1", ROMREGION_INVERT ) /* Sprites */
+ ROM_REGION( 0x40000, "gfx1", ROMREGION_INVERT ) // Sprites
ROM_LOAD( "p5", 0x00000, 0x8000, CRC(e9aa6fba) SHA1(f286727541f08b136a7d45e13975652bdc8fd663) ) // 5_27256.d6
ROM_RELOAD( 0x08000, 0x8000 )
ROM_LOAD( "p6", 0x10000, 0x8000, CRC(15d5f5dd) SHA1(4441344701fcdb2be55bdd76a8a5fd59f5de813c) ) // 6_27256.a6
@@ -2443,7 +2461,7 @@ ROM_START( pop_hh )
ROM_LOAD( "p12", 0x30000, 0x8000, CRC(9582e6db) SHA1(a2b34d740e07bd35a3184365e7f3ab7476075d70) ) // 12_27256.a8
ROM_RELOAD( 0x38000, 0x8000 )
- ROM_REGION( 0x8000, "samples", 0 ) /* Samples */
+ ROM_REGION( 0x8000, "samples", 0 ) // Samples
ROM_LOAD( "p14", 0x0000, 0x8000, CRC(41314ac1) SHA1(1ac9213b0ac4ce9fe6256e93875672e128a5d069) ) // 14_27256.m11
ROM_END
@@ -2511,7 +2529,7 @@ All versions come with roms simply numbered 1 through 15 even if the data
ROM_START( rranger )
// Sharp Image License but distributed by CAPCOM U.S.A. Inc. PCB came with ROM 1 labeled as 01 CAPCOM
// PCB have been see with ROM 1 simply labled as 1 in either RED and BLUE print.
- ROM_REGION( 0x48000, "maincpu", 0 ) /* Main Z80 Code */
+ ROM_REGION( 0x48000, "maincpu", 0 ) // Main Z80 Code
ROM_LOAD( "01_capcom.e2", 0x00000, 0x8000, CRC(ff1868cf) SHA1(54175111d8e39894ff11a779057f0bc061d63912) ) // V 2.0 1988,4,15
ROM_LOAD( "2.f2", 0x10000, 0x8000, CRC(ff65af29) SHA1(90f9a0c862e2a9da0343446a325961ab29d26b4b) )
ROM_LOAD( "3.h2", 0x18000, 0x8000, CRC(64e09436) SHA1(077f0d38d489562532d5f7678434a85ca04d373c) )
@@ -2520,13 +2538,13 @@ ROM_START( rranger )
ROM_LOAD( "5.j2", 0x38000, 0x8000, CRC(6a7ca1c3) SHA1(0f0b508e9b20909e9efa07b42d67732082b6940b) )
ROM_CONTINUE( 0x28000, 0x8000 )
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound Z80 Code */
+ ROM_REGION( 0x10000, "audiocpu", 0 ) // Sound Z80 Code
ROM_LOAD( "14.j13", 0x0000, 0x8000, CRC(11c83aa1) SHA1(d1f75096528b220a3f858eac62e3b4111fa013de) )
- ROM_REGION( 0x8000, "samples", 0 ) /* Samples */
+ ROM_REGION( 0x8000, "samples", 0 ) // Samples
ROM_LOAD( "15.e13", 0x0000, 0x8000, CRC(28c2c87e) SHA1(ec0d92140ef44df822f2229e79b915e051caa033) )
- ROM_REGION( 0x40000, "gfx1", ROMREGION_INVERT ) /* Sprites */
+ ROM_REGION( 0x40000, "gfx1", ROMREGION_INVERT ) // Sprites
ROM_LOAD( "6.p5", 0x00000, 0x8000, CRC(57543643) SHA1(59c7717321314678e61b50767e168eb2a73147d3) ) // sldh - Sharp Image license
ROM_LOAD( "7.p6", 0x08000, 0x8000, CRC(9f35dbfa) SHA1(8a8f158ad7f0bc6b43eaa95959af3ab58cf14d6d) )
ROM_LOAD( "8.p7", 0x10000, 0x8000, CRC(f400db89) SHA1(a07b226af40cac5a20739bb8f4226909724fda86) )
@@ -2538,7 +2556,7 @@ ROM_START( rranger )
ROM_END
ROM_START( rrangerb ) // protection is patched out in this set.
- ROM_REGION( 0x48000, "maincpu", 0 ) /* Main Z80 Code */
+ ROM_REGION( 0x48000, "maincpu", 0 ) // Main Z80 Code
ROM_LOAD( "1.e2", 0x00000, 0x8000, CRC(4fb4f096) SHA1(c5ac3e04080cdcf570769918587e8cf8d455fc30) ) // sldh - V 2.0 1988,4,15
ROM_LOAD( "2.f2", 0x10000, 0x8000, CRC(ff65af29) SHA1(90f9a0c862e2a9da0343446a325961ab29d26b4b) )
ROM_LOAD( "3.h2", 0x18000, 0x8000, CRC(64e09436) SHA1(077f0d38d489562532d5f7678434a85ca04d373c) )
@@ -2547,13 +2565,13 @@ ROM_START( rrangerb ) // protection is patched out in this set.
ROM_LOAD( "5.j2", 0x38000, 0x8000, CRC(6a7ca1c3) SHA1(0f0b508e9b20909e9efa07b42d67732082b6940b) )
ROM_CONTINUE( 0x28000, 0x8000 )
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound Z80 Code */
+ ROM_REGION( 0x10000, "audiocpu", 0 ) // Sound Z80 Code
ROM_LOAD( "14.j13", 0x0000, 0x8000, CRC(11c83aa1) SHA1(d1f75096528b220a3f858eac62e3b4111fa013de) )
- ROM_REGION( 0x8000, "samples", 0 ) /* Samples */
+ ROM_REGION( 0x8000, "samples", 0 ) // Samples
ROM_LOAD( "15.e13", 0x0000, 0x8000, CRC(28c2c87e) SHA1(ec0d92140ef44df822f2229e79b915e051caa033) )
- ROM_REGION( 0x40000, "gfx1", ROMREGION_INVERT ) /* Sprites */
+ ROM_REGION( 0x40000, "gfx1", ROMREGION_INVERT ) // Sprites
ROM_LOAD( "6.p5", 0x00000, 0x8000, CRC(57543643) SHA1(59c7717321314678e61b50767e168eb2a73147d3) ) // sldh - Sharp Image license
ROM_LOAD( "7.p6", 0x08000, 0x8000, CRC(9f35dbfa) SHA1(8a8f158ad7f0bc6b43eaa95959af3ab58cf14d6d) )
ROM_LOAD( "8.p7", 0x10000, 0x8000, CRC(f400db89) SHA1(a07b226af40cac5a20739bb8f4226909724fda86) )
@@ -2565,7 +2583,7 @@ ROM_START( rrangerb ) // protection is patched out in this set.
ROM_END
ROM_START( sranger )
- ROM_REGION( 0x48000, "maincpu", 0 ) /* Main Z80 Code */
+ ROM_REGION( 0x48000, "maincpu", 0 ) // Main Z80 Code
ROM_LOAD( "1.e2", 0x00000, 0x8000, CRC(4eef1ede) SHA1(713074400e27f6983f97ce73e522a1d687961317) ) // sldh - V 2.0 1988,4,15
ROM_LOAD( "2.f2", 0x10000, 0x8000, CRC(ff65af29) SHA1(90f9a0c862e2a9da0343446a325961ab29d26b4b) )
ROM_LOAD( "3.h2", 0x18000, 0x8000, CRC(64e09436) SHA1(077f0d38d489562532d5f7678434a85ca04d373c) )
@@ -2574,13 +2592,13 @@ ROM_START( sranger )
ROM_LOAD( "5.j2", 0x38000, 0x8000, CRC(6a7ca1c3) SHA1(0f0b508e9b20909e9efa07b42d67732082b6940b) )
ROM_CONTINUE( 0x28000, 0x8000 )
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound Z80 Code */
+ ROM_REGION( 0x10000, "audiocpu", 0 ) // Sound Z80 Code
ROM_LOAD( "14.j13", 0x0000, 0x8000, CRC(11c83aa1) SHA1(d1f75096528b220a3f858eac62e3b4111fa013de) )
- ROM_REGION( 0x8000, "samples", 0 ) /* Samples */
+ ROM_REGION( 0x8000, "samples", 0 ) // Samples
ROM_LOAD( "15.e13", 0x0000, 0x8000, CRC(28c2c87e) SHA1(ec0d92140ef44df822f2229e79b915e051caa033) )
- ROM_REGION( 0x40000, "gfx1", ROMREGION_INVERT ) /* Sprites */
+ ROM_REGION( 0x40000, "gfx1", ROMREGION_INVERT ) // Sprites
ROM_LOAD( "6.p5", 0x00000, 0x8000, CRC(4f11fef3) SHA1(f48f3051a5ab681da0fd0a7107ea0c833993247a) ) // sldh - Newer / updated graphics ??
ROM_LOAD( "7.p6", 0x08000, 0x8000, CRC(9f35dbfa) SHA1(8a8f158ad7f0bc6b43eaa95959af3ab58cf14d6d) )
ROM_LOAD( "8.p7", 0x10000, 0x8000, CRC(f400db89) SHA1(a07b226af40cac5a20739bb8f4226909724fda86) )
@@ -2592,7 +2610,7 @@ ROM_START( sranger )
ROM_END
ROM_START( srangerb )
- ROM_REGION( 0x48000, "maincpu", 0 ) /* Main Z80 Code */
+ ROM_REGION( 0x48000, "maincpu", 0 ) // Main Z80 Code
ROM_LOAD( "r1bt", 0x00000, 0x8000, CRC(40635e7c) SHA1(741290ad640e941774d496a329cd29198ab83463) ) // NYWACORPORATION LTD 88-1-07
ROM_LOAD( "2.f2", 0x10000, 0x8000, CRC(ff65af29) SHA1(90f9a0c862e2a9da0343446a325961ab29d26b4b) )
ROM_LOAD( "3.h2", 0x18000, 0x8000, CRC(64e09436) SHA1(077f0d38d489562532d5f7678434a85ca04d373c) )
@@ -2602,13 +2620,13 @@ ROM_START( srangerb )
ROM_CONTINUE( 0x28000, 0x8000 )
ROM_LOAD( "r5bt", 0x28000, 0x8000, BAD_DUMP CRC(f7f391b5) SHA1(a0a8de1d9d7876f5c4b26e34d5e54ec79529c2da) ) // wrong length
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound Z80 Code */
+ ROM_REGION( 0x10000, "audiocpu", 0 ) // Sound Z80 Code
ROM_LOAD( "14.j13", 0x0000, 0x8000, CRC(11c83aa1) SHA1(d1f75096528b220a3f858eac62e3b4111fa013de) )
- ROM_REGION( 0x8000, "samples", 0 ) /* Samples */
+ ROM_REGION( 0x8000, "samples", 0 ) // Samples
ROM_LOAD( "15.e13", 0x0000, 0x8000, CRC(28c2c87e) SHA1(ec0d92140ef44df822f2229e79b915e051caa033) )
- ROM_REGION( 0x40000, "gfx1", ROMREGION_INVERT ) /* Sprites */
+ ROM_REGION( 0x40000, "gfx1", ROMREGION_INVERT ) // Sprites
ROM_LOAD( "6.p5", 0x00000, 0x8000, CRC(4f11fef3) SHA1(f48f3051a5ab681da0fd0a7107ea0c833993247a) ) // sldh - Newer / updated graphics ??
ROM_LOAD( "7.p6", 0x08000, 0x8000, CRC(9f35dbfa) SHA1(8a8f158ad7f0bc6b43eaa95959af3ab58cf14d6d) )
ROM_LOAD( "8.p7", 0x10000, 0x8000, CRC(f400db89) SHA1(a07b226af40cac5a20739bb8f4226909724fda86) )
@@ -2620,7 +2638,7 @@ ROM_START( srangerb )
ROM_END
ROM_START( srangero )
- ROM_REGION( 0x48000, "maincpu", 0 ) /* Main Z80 Code */
+ ROM_REGION( 0x48000, "maincpu", 0 ) // Main Z80 Code
ROM_LOAD( "1.e2", 0x00000, 0x8000, CRC(2287d3fc) SHA1(cc2dab587ca50fc4371d2861ac842cd81370f868) ) // 88,2,28 RANGER
ROM_LOAD( "2.f2", 0x10000, 0x8000, CRC(ff65af29) SHA1(90f9a0c862e2a9da0343446a325961ab29d26b4b) )
ROM_LOAD( "3.h2", 0x18000, 0x8000, CRC(64e09436) SHA1(077f0d38d489562532d5f7678434a85ca04d373c) )
@@ -2629,13 +2647,13 @@ ROM_START( srangero )
ROM_LOAD( "5.j2", 0x38000, 0x8000, CRC(6a7ca1c3) SHA1(0f0b508e9b20909e9efa07b42d67732082b6940b) )
ROM_CONTINUE( 0x28000, 0x8000 )
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound Z80 Code */
+ ROM_REGION( 0x10000, "audiocpu", 0 ) // Sound Z80 Code
ROM_LOAD( "14.j13", 0x0000, 0x8000, CRC(11c83aa1) SHA1(d1f75096528b220a3f858eac62e3b4111fa013de) )
- ROM_REGION( 0x8000, "samples", 0 ) /* Samples */
+ ROM_REGION( 0x8000, "samples", 0 ) // Samples
ROM_LOAD( "15.e13", 0x0000, 0x8000, CRC(28c2c87e) SHA1(ec0d92140ef44df822f2229e79b915e051caa033) )
- ROM_REGION( 0x40000, "gfx1", ROMREGION_INVERT ) /* Sprites */
+ ROM_REGION( 0x40000, "gfx1", ROMREGION_INVERT ) // Sprites
ROM_LOAD( "6.p5", 0x00000, 0x8000, CRC(ffe13cc4) SHA1(811a749fcb4f9a575374af593b79d3927f74d301) )
ROM_LOAD( "7.p6", 0x08000, 0x8000, CRC(9f35dbfa) SHA1(8a8f158ad7f0bc6b43eaa95959af3ab58cf14d6d) )
ROM_LOAD( "8.p7", 0x10000, 0x8000, CRC(f400db89) SHA1(a07b226af40cac5a20739bb8f4226909724fda86) )
@@ -2647,7 +2665,7 @@ ROM_START( srangero )
ROM_END
ROM_START( srangerw ) // same program as srangero, 2 different gfx roms
- ROM_REGION( 0x48000, "maincpu", 0 ) /* Main Z80 Code */
+ ROM_REGION( 0x48000, "maincpu", 0 ) // Main Z80 Code
ROM_LOAD( "1.e2", 0x00000, 0x8000, CRC(2287d3fc) SHA1(cc2dab587ca50fc4371d2861ac842cd81370f868) ) // 88,2,28 RANGER
ROM_LOAD( "2.f2", 0x10000, 0x8000, CRC(ff65af29) SHA1(90f9a0c862e2a9da0343446a325961ab29d26b4b) )
ROM_LOAD( "3.h2", 0x18000, 0x8000, CRC(64e09436) SHA1(077f0d38d489562532d5f7678434a85ca04d373c) )
@@ -2656,13 +2674,13 @@ ROM_START( srangerw ) // same program as srangero, 2 different gfx roms
ROM_LOAD( "5.j2", 0x38000, 0x8000, CRC(6a7ca1c3) SHA1(0f0b508e9b20909e9efa07b42d67732082b6940b) )
ROM_CONTINUE( 0x28000, 0x8000 )
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound Z80 Code */
+ ROM_REGION( 0x10000, "audiocpu", 0 ) // Sound Z80 Code
ROM_LOAD( "14.j13", 0x0000, 0x8000, CRC(11c83aa1) SHA1(d1f75096528b220a3f858eac62e3b4111fa013de) )
- ROM_REGION( 0x8000, "samples", 0 ) /* Samples */
+ ROM_REGION( 0x8000, "samples", 0 ) // Samples
ROM_LOAD( "15.e13", 0x0000, 0x8000, CRC(28c2c87e) SHA1(ec0d92140ef44df822f2229e79b915e051caa033) )
- ROM_REGION( 0x40000, "gfx1", ROMREGION_INVERT ) /* Sprites */
+ ROM_REGION( 0x40000, "gfx1", ROMREGION_INVERT ) // Sprites
ROM_LOAD( "6.p5", 0x00000, 0x8000, CRC(312ecda6) SHA1(db11259e10da5f7f2b7b306482a08835597dbde4) ) // sldh - WDK license
ROM_LOAD( "7.p6", 0x08000, 0x8000, CRC(9f35dbfa) SHA1(8a8f158ad7f0bc6b43eaa95959af3ab58cf14d6d) )
ROM_LOAD( "8.p7", 0x10000, 0x8000, CRC(f400db89) SHA1(a07b226af40cac5a20739bb8f4226909724fda86) )
@@ -2674,7 +2692,7 @@ ROM_START( srangerw ) // same program as srangero, 2 different gfx roms
ROM_END
ROM_START( srangern ) // same program as srangero, 2 different gfx roms
- ROM_REGION( 0x48000, "maincpu", 0 ) /* Main Z80 Code */
+ ROM_REGION( 0x48000, "maincpu", 0 ) // Main Z80 Code
ROM_LOAD( "1.e2", 0x00000, 0x8000, CRC(2287d3fc) SHA1(cc2dab587ca50fc4371d2861ac842cd81370f868) ) // 88,2,28 RANGER
ROM_LOAD( "2.f2", 0x10000, 0x8000, CRC(ff65af29) SHA1(90f9a0c862e2a9da0343446a325961ab29d26b4b) )
ROM_LOAD( "3.h2", 0x18000, 0x8000, CRC(64e09436) SHA1(077f0d38d489562532d5f7678434a85ca04d373c) )
@@ -2683,13 +2701,13 @@ ROM_START( srangern ) // same program as srangero, 2 different gfx roms
ROM_LOAD( "5.j2", 0x38000, 0x8000, CRC(6a7ca1c3) SHA1(0f0b508e9b20909e9efa07b42d67732082b6940b) )
ROM_CONTINUE( 0x28000, 0x8000 )
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound Z80 Code */
+ ROM_REGION( 0x10000, "audiocpu", 0 ) // Sound Z80 Code
ROM_LOAD( "14.j13", 0x0000, 0x8000, CRC(11c83aa1) SHA1(d1f75096528b220a3f858eac62e3b4111fa013de) )
- ROM_REGION( 0x8000, "samples", 0 ) /* Samples */
+ ROM_REGION( 0x8000, "samples", 0 ) // Samples
ROM_LOAD( "15.e13", 0x0000, 0x8000, CRC(28c2c87e) SHA1(ec0d92140ef44df822f2229e79b915e051caa033) )
- ROM_REGION( 0x40000, "gfx1", ROMREGION_INVERT ) /* Sprites */
+ ROM_REGION( 0x40000, "gfx1", ROMREGION_INVERT ) // Sprites
ROM_LOAD( "6.p5", 0x00000, 0x8000, CRC(af534075) SHA1(ce6e927702666d2588d6cdb3991463065a4e8084) ) // sldh - NOVA license
ROM_LOAD( "7.p6", 0x08000, 0x8000, CRC(9f35dbfa) SHA1(8a8f158ad7f0bc6b43eaa95959af3ab58cf14d6d) )
ROM_LOAD( "8.p7", 0x10000, 0x8000, CRC(f400db89) SHA1(a07b226af40cac5a20739bb8f4226909724fda86) )
@@ -2710,7 +2728,7 @@ SUNA ELECTRONICS IND CO., LTD
CPU Z0840006PSC (ZILOG)
-Chrystal : 24.000 MHz
+Crystal : 24.000 MHz
Sound CPU : Z084006PSC (ZILOG) + AY3-8910A
@@ -2732,18 +2750,18 @@ Large epoxy(?) module near the cpu's.
***************************************************************************/
ROM_START( brickzn )
- ROM_REGION( 0x50000 + 0x40000, "maincpu", 0 ) /* Main Z80 Code */
+ ROM_REGION( 0x50000 + 0x40000, "maincpu", 0 ) // Main Z80 Code
ROM_LOAD( "p9.m7", 0x00000, 0x08000, CRC(bd7a3c01) SHA1(05fb2836f1c8d8818847ccb76e7b477f13a9929b) ) // V6.0 1992,3,16
ROM_LOAD( "p8.k7", 0x10000, 0x20000, CRC(ec3e266d) SHA1(4441a5ae88e51353f6d1eb22c00becb0a7ecea6e) )
ROM_LOAD( "p7.i7", 0x30000, 0x20000, CRC(4dd88631) SHA1(0dbcaf3420dad82c3ed94d231948fe69b044b786) )
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Music Z80 Code */
+ ROM_REGION( 0x10000, "audiocpu", 0 ) // Music Z80 Code
ROM_LOAD( "10.o8", 0x00000, 0x10000, CRC(4eba8178) SHA1(9a214a1acacdc124529bc9dde73a8e884fc70293) ) // BRICK MUSIC XILINX PROGRAM 3020 1991,11,14 MUSIC PROGRAM V 2,0 1990.12.14
- ROM_REGION( 0x10000, "pcm", 0 ) /* PCM Z80 Code */
+ ROM_REGION( 0x10000, "pcm", 0 ) // PCM Z80 Code
ROM_LOAD( "11.n10", 0x00000, 0x10000, CRC(6c54161a) SHA1(ea216d9f45b441acd56b9fed81a83e3bfe299fbd) )
- ROM_REGION( 0xc0000, "gfx1", ROMREGION_INVERT ) /* Sprites */
+ ROM_REGION( 0xc0000, "gfx1", ROMREGION_INVERT ) // Sprites
ROM_LOAD( "p5.m5", 0x00000, 0x20000, CRC(ca59e2f7) SHA1(dbb9f2b316a44f760768f0430798e0c4e9e8f3ff) )
ROM_LOAD( "p4.l5", 0x20000, 0x20000, CRC(cc8fb330) SHA1(fd263f65b81acbfc00fe339c461068ab160c04af) )
ROM_LOAD( "p3.k5", 0x40000, 0x20000, CRC(2e4f194b) SHA1(86da1a582ea274f2af96d3e3e2ac72bcaf3638cb) )
@@ -2754,18 +2772,18 @@ ROM_END
ROM_START( brickznv5 )
- ROM_REGION( 0x50000 + 0x40000, "maincpu", 0 ) /* Main Z80 Code */
+ ROM_REGION( 0x50000 + 0x40000, "maincpu", 0 ) // Main Z80 Code
ROM_LOAD( "brickzon.009", 0x00000, 0x08000, CRC(1ea68dea) SHA1(427152a26b062c5e77089de49c1da69369d4d557) ) // V5.0 1992,3,3
ROM_LOAD( "brickzon.008", 0x10000, 0x20000, CRC(c61540ba) SHA1(08c0ede591b229427b910ca6bb904a6146110be8) )
ROM_LOAD( "brickzon.007", 0x30000, 0x20000, CRC(ceed12f1) SHA1(9006726b75a65455afb1194298bade8fa2207b4a) )
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Music Z80 Code */
+ ROM_REGION( 0x10000, "audiocpu", 0 ) // Music Z80 Code
ROM_LOAD( "brickzon.010", 0x00000, 0x10000, CRC(4eba8178) SHA1(9a214a1acacdc124529bc9dde73a8e884fc70293) ) // BRICK MUSIC XILINX PROGRAM 3020 1991,11,14 MUSIC PROGRAM V 2,0 1990.12.14
- ROM_REGION( 0x10000, "pcm", 0 ) /* PCM Z80 Code */
+ ROM_REGION( 0x10000, "pcm", 0 ) // PCM Z80 Code
ROM_LOAD( "brickzon.011", 0x00000, 0x10000, CRC(6c54161a) SHA1(ea216d9f45b441acd56b9fed81a83e3bfe299fbd) )
- ROM_REGION( 0xc0000, "gfx1", ROMREGION_INVERT ) /* Sprites */
+ ROM_REGION( 0xc0000, "gfx1", ROMREGION_INVERT ) // Sprites
ROM_LOAD( "brickzon.005", 0x00000, 0x20000, CRC(118f8392) SHA1(598fa4df3ae348ec9796cd6d90c3045bec546da3) )
ROM_LOAD( "brickzon.004", 0x20000, 0x20000, CRC(2be5f335) SHA1(dc870a3c5303cb2ea1fea4a25f53db016ed5ecee) )
ROM_LOAD( "brickzon.003", 0x40000, 0x20000, CRC(2e4f194b) SHA1(86da1a582ea274f2af96d3e3e2ac72bcaf3638cb) )
@@ -2776,18 +2794,18 @@ ROM_END
ROM_START( brickznv4 )
- ROM_REGION( 0x50000 + 0x40000, "maincpu", 0 ) /* Main Z80 Code */
+ ROM_REGION( 0x50000 + 0x40000, "maincpu", 0 ) // Main Z80 Code
ROM_LOAD( "39", 0x00000, 0x08000, CRC(043380bd) SHA1(7eea7cc7d754815df233879b4a9d3d88eac5b28d) ) // V3.0 1992,1,23
ROM_LOAD( "38", 0x10000, 0x20000, CRC(e16216e8) SHA1(e88ae97e8a632823d5f1fe500954b6f6542407d5) )
ROM_LOAD( "brickzon.007", 0x30000, 0x20000, CRC(ceed12f1) SHA1(9006726b75a65455afb1194298bade8fa2207b4a) )
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Music Z80 Code */
+ ROM_REGION( 0x10000, "audiocpu", 0 ) // Music Z80 Code
ROM_LOAD( "brickzon.010", 0x00000, 0x10000, CRC(4eba8178) SHA1(9a214a1acacdc124529bc9dde73a8e884fc70293) ) // BRICK MUSIC XILINX PROGRAM 3020 1991,11,14 MUSIC PROGRAM V 2,0 1990.12.14
- ROM_REGION( 0x10000, "pcm", 0 ) /* PCM Z80 Code */
+ ROM_REGION( 0x10000, "pcm", 0 ) // PCM Z80 Code
ROM_LOAD( "brickzon.011", 0x00000, 0x10000, CRC(6c54161a) SHA1(ea216d9f45b441acd56b9fed81a83e3bfe299fbd) )
- ROM_REGION( 0xc0000, "gfx1", ROMREGION_INVERT ) /* Sprites */
+ ROM_REGION( 0xc0000, "gfx1", ROMREGION_INVERT ) // Sprites
ROM_LOAD( "35", 0x00000, 0x20000, CRC(b463dfcf) SHA1(35c8a4a0c5b62a087a2cb70bc5b7815f5bb2d973) )
ROM_LOAD( "brickzon.004", 0x20000, 0x20000, CRC(2be5f335) SHA1(dc870a3c5303cb2ea1fea4a25f53db016ed5ecee) )
ROM_LOAD( "brickzon.003", 0x40000, 0x20000, CRC(2e4f194b) SHA1(86da1a582ea274f2af96d3e3e2ac72bcaf3638cb) )
@@ -2797,18 +2815,18 @@ ROM_START( brickznv4 )
ROM_END
ROM_START( brickzn11 )
- ROM_REGION( 0x50000 + 0x40000, "maincpu", 0 ) /* Main Z80 Code */
+ ROM_REGION( 0x50000 + 0x40000, "maincpu", 0 ) // Main Z80 Code
ROM_LOAD( "9.bin", 0x00000, 0x08000, CRC(24f88cfd) SHA1(dfa7313ab6696042bab2e6cc8ff97b331d526c6b) ) // V1.1 1992,1,13
ROM_LOAD( "8.bin", 0x10000, 0x20000, CRC(e2c7f7ac) SHA1(43377daf6957829ef9bb7a81708c2f18f5d7ced6) )
ROM_LOAD( "7.bin", 0x30000, 0x20000, CRC(7af5b25c) SHA1(9e98e99bdc5be1602144c83f40b2ccf6b90a729a) )
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Music Z80 Code */
+ ROM_REGION( 0x10000, "audiocpu", 0 ) // Music Z80 Code
ROM_LOAD( "10.bin", 0x00000, 0x10000, CRC(494adf0f) SHA1(eb28ccf0c5f38c2299f55e379ff73ba84bb793c6) ) // NO PROGRAM MUSIC PROGRAM V 2.4 1990.12.14
- ROM_REGION( 0x10000, "pcm", 0 ) /* PCM Z80 Code */
+ ROM_REGION( 0x10000, "pcm", 0 ) // PCM Z80 Code
ROM_LOAD( "11.bin", 0x00000, 0x10000, CRC(6c54161a) SHA1(ea216d9f45b441acd56b9fed81a83e3bfe299fbd) )
- ROM_REGION( 0xc0000, "gfx1", ROMREGION_INVERT ) /* Sprites */
+ ROM_REGION( 0xc0000, "gfx1", ROMREGION_INVERT ) // Sprites
ROM_LOAD( "5.bin", 0x00000, 0x20000, CRC(e9f73ba1) SHA1(4b5e294ae160ba3ca28b8956a797330234ace576) )
ROM_LOAD( "4.bin", 0x20000, 0x20000, CRC(2be5f335) SHA1(dc870a3c5303cb2ea1fea4a25f53db016ed5ecee) )
ROM_LOAD( "3.bin", 0x40000, 0x20000, CRC(2e4f194b) SHA1(86da1a582ea274f2af96d3e3e2ac72bcaf3638cb) )
@@ -2854,20 +2872,20 @@ Sound is a Yamaha YM3812 and a AY-3-8910A
***************************************************************************/
ROM_START( hardhea2 )
- ROM_REGION( 0x50000, "maincpu", 0 ) /* Main Z80 Code */
+ ROM_REGION( 0x50000, "maincpu", 0 ) // Main Z80 Code
ROM_LOAD( "hrd-hd9", 0x00000, 0x08000, CRC(69c4c307) SHA1(0dfde1dcda51b5b1740aff9e96cb877a428a3e04) ) // V 2.0 1991,2,12
ROM_LOAD( "hrd-hd10", 0x10000, 0x10000, CRC(77ec5b0a) SHA1(2d3e24c208904a7884e585e08e5818fd9f8b5391) )
ROM_LOAD( "hrd-hd11", 0x20000, 0x10000, CRC(12af8f8e) SHA1(1b33a060b70900042fdae00f7dec325228d566f5) )
ROM_LOAD( "hrd-hd12", 0x30000, 0x10000, CRC(35d13212) SHA1(2fd03077b89ec9e55d2758b7f9cada970f0bdd91) )
ROM_LOAD( "hrd-hd13", 0x40000, 0x10000, CRC(3225e7d7) SHA1(2da9d1ce182dab8d9e09772e6899676b84c7458c) )
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Music Z80 Code */
+ ROM_REGION( 0x10000, "audiocpu", 0 ) // Music Z80 Code
ROM_LOAD( "hrd-hd14", 0x00000, 0x08000, CRC(79a3be51) SHA1(30bc67cd3a936615c6931f8e15953425dff59611) ) // NO PROGRAM + MUSIC PROGRAM V 2.4
- ROM_REGION( 0x10000, "pcm", 0 ) /* PCM Z80 Code */
+ ROM_REGION( 0x10000, "pcm", 0 ) // PCM Z80 Code
ROM_LOAD( "hrd-hd15", 0x00000, 0x10000, CRC(bcbd88c3) SHA1(79782d598d9d764de70c54fc07ff9bf0f7d13d62) )
- ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT ) /* Sprites */
+ ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT ) // Sprites
ROM_LOAD( "hrd-hd1", 0x00000, 0x10000, CRC(7e7b7a58) SHA1(1a74260dda64aafcb046c8add92a54655bbc74e4) )
ROM_LOAD( "hrd-hd2", 0x10000, 0x10000, CRC(303ec802) SHA1(533c29d9bb54415410c5d3c5af234b8b040190de) )
ROM_LOAD( "hrd-hd3", 0x20000, 0x10000, CRC(3353b2c7) SHA1(a3ec0fc2a97e7e0bc72fafd5897cb1dd4cd32197) )
@@ -2879,20 +2897,20 @@ ROM_START( hardhea2 )
ROM_END
ROM_START( hardhea2a )
- ROM_REGION( 0x50000, "maincpu", 0 ) /* Main Z80 Code */
+ ROM_REGION( 0x50000, "maincpu", 0 ) // Main Z80 Code
ROM_LOAD( "p9.f6", 0x00000, 0x08000, CRC(69c4c307) SHA1(0dfde1dcda51b5b1740aff9e96cb877a428a3e04) ) // V 2.0 1991,2,12
ROM_LOAD( "10.h6", 0x10000, 0x10000, CRC(77ec5b0a) SHA1(2d3e24c208904a7884e585e08e5818fd9f8b5391) )
ROM_LOAD( "11.i6", 0x20000, 0x10000, CRC(12af8f8e) SHA1(1b33a060b70900042fdae00f7dec325228d566f5) )
ROM_LOAD( "12.f7", 0x30000, 0x10000, CRC(35d13212) SHA1(2fd03077b89ec9e55d2758b7f9cada970f0bdd91) )
ROM_LOAD( "13.h7", 0x40000, 0x10000, CRC(3225e7d7) SHA1(2da9d1ce182dab8d9e09772e6899676b84c7458c) )
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Music Z80 Code */
+ ROM_REGION( 0x10000, "audiocpu", 0 ) // Music Z80 Code
ROM_LOAD( "14.c9", 0x00000, 0x08000, CRC(92e1ae81) SHA1(002125d152e84baf347245952b3f4d8637753b13) ) // 1991,2,10 ALL O.K V3.0 HARD HEAD2 MUSIC + MUSIC PROGRAM V 2,0 1990.12.14 SUNA ELECTRONICS KHT
- ROM_REGION( 0x10000, "pcm", 0 ) /* PCM Z80 Code */
+ ROM_REGION( 0x10000, "pcm", 0 ) // PCM Z80 Code
ROM_LOAD( "15.m10", 0x00000, 0x10000, CRC(bcbd88c3) SHA1(79782d598d9d764de70c54fc07ff9bf0f7d13d62) )
- ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT ) /* Sprites */
+ ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT ) // Sprites
ROM_LOAD( "p1.n1", 0x00000, 0x10000, CRC(7e7b7a58) SHA1(1a74260dda64aafcb046c8add92a54655bbc74e4) )
ROM_LOAD( "p2.o1", 0x10000, 0x10000, CRC(303ec802) SHA1(533c29d9bb54415410c5d3c5af234b8b040190de) )
ROM_LOAD( "p3.q1", 0x20000, 0x10000, CRC(3353b2c7) SHA1(a3ec0fc2a97e7e0bc72fafd5897cb1dd4cd32197) )
@@ -2904,20 +2922,20 @@ ROM_START( hardhea2a )
ROM_END
ROM_START( hardhea2b )
- ROM_REGION( 0x50000, "maincpu", 0 ) /* Main Z80 Code */
+ ROM_REGION( 0x50000, "maincpu", 0 ) // Main Z80 Code
ROM_LOAD( "9.f5", 0x00000, 0x10000, CRC(3f31ece3) SHA1(224e9bc60a71ede9d194e9c696c2259a55f16e7d) )
ROM_LOAD( "10.h5", 0x10000, 0x10000, CRC(98b34813) SHA1(8aa9cab73480e4526d30880f99332e7cb716ce81) )
ROM_LOAD( "11.i5", 0x20000, 0x10000, CRC(12af8f8e) SHA1(1b33a060b70900042fdae00f7dec325228d566f5) )
ROM_LOAD( "12.f7", 0x30000, 0x10000, CRC(35d13212) SHA1(2fd03077b89ec9e55d2758b7f9cada970f0bdd91) )
ROM_LOAD( "13.h7", 0x40000, 0x10000, CRC(044f956f) SHA1(9361d383b14fc0f4f718d46db7fcac56647405a6) )
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Music Z80 Code */
+ ROM_REGION( 0x10000, "audiocpu", 0 ) // Music Z80 Code
ROM_LOAD( "14.c6", 0x00000, 0x08000, CRC(79a3be51) SHA1(30bc67cd3a936615c6931f8e15953425dff59611) )
- ROM_REGION( 0x10000, "pcm", 0 ) /* PCM Z80 Code */
+ ROM_REGION( 0x10000, "pcm", 0 ) // PCM Z80 Code
ROM_LOAD( "15.m10", 0x00000, 0x10000, CRC(bcbd88c3) SHA1(79782d598d9d764de70c54fc07ff9bf0f7d13d62) )
- ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT ) /* Sprites */
+ ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT ) // Sprites
ROM_LOAD( "1.n1", 0x00000, 0x10000, CRC(7e7b7a58) SHA1(1a74260dda64aafcb046c8add92a54655bbc74e4) )
ROM_LOAD( "2.o1", 0x10000, 0x10000, CRC(303ec802) SHA1(533c29d9bb54415410c5d3c5af234b8b040190de) )
ROM_LOAD( "3.q1", 0x20000, 0x10000, CRC(3353b2c7) SHA1(a3ec0fc2a97e7e0bc72fafd5897cb1dd4cd32197) )
@@ -2938,20 +2956,20 @@ ROM_END
***************************************************************************/
ROM_START( starfigh )
- ROM_REGION( 0x50000, "maincpu", 0 ) /* Main Z80 Code */
+ ROM_REGION( 0x50000, "maincpu", 0 ) // Main Z80 Code
ROM_LOAD( "starfgtr.l1", 0x00000, 0x08000, CRC(f93802c6) SHA1(4005b06b69dd440dfb6385766386a1168e73288f) ) // V.1
ROM_LOAD( "starfgtr.j1", 0x10000, 0x10000, CRC(fcfcf08a) SHA1(65fe1666aa5092f820b337bcbcbed7accdec440d) )
ROM_LOAD( "starfgtr.i1", 0x20000, 0x10000, CRC(6935fcdb) SHA1(f47812f6716ccf52dd7ab8522c29e059f1e38f31) )
ROM_LOAD( "starfgtr.l3", 0x30000, 0x10000, CRC(50c072a4) SHA1(e48ec5a786ef245e5b2b72390824b6b7c449a74b) ) // 0xxxxxxxxxxxxxxx = 0xFF (ROM Test: OK)
ROM_LOAD( "starfgtr.j3", 0x40000, 0x10000, CRC(3fe3c714) SHA1(ccc9a33cf29c0e43ae8ab91f08438a89c777c186) ) // clear text here
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Music Z80 Code */
+ ROM_REGION( 0x10000, "audiocpu", 0 ) // Music Z80 Code
ROM_LOAD( "starfgtr.m8", 0x0000, 0x8000, CRC(ae3b0691) SHA1(41e004d09522cf7ddce6e4adc68841ad5553264a) )
- ROM_REGION( 0x8000, "samples", 0 ) /* Samples */
+ ROM_REGION( 0x8000, "samples", 0 ) // Samples
ROM_LOAD( "starfgtr.q10", 0x0000, 0x8000, CRC(fa510e94) SHA1(e2742385a4ba152dbc89534e4350d1d9ad49730f) )
- ROM_REGION( 0x100000, "gfx1", ROMREGION_INVERT ) /* Sprites */
+ ROM_REGION( 0x100000, "gfx1", ROMREGION_INVERT ) // Sprites
// bitplanes 0-1
ROM_LOAD( "starfgtr.e4", 0x00000, 0x10000, CRC(54c0ca3d) SHA1(87f785502beb8a52d47bd48275d695ee303054f8) ) // banks 00-03
ROM_LOAD( "starfgtr.d4", 0x10000, 0x10000, CRC(4313ba40) SHA1(3c41f99dc40136517f172b3525987d8909f877c3) ) // banks 04-07
@@ -2985,17 +3003,17 @@ Sound is a Yamaha YM3812 and a AY-3-8910A
***************************************************************************/
ROM_START( sparkman )
- ROM_REGION( 0x50000, "maincpu", 0 ) /* Main Z80 Code */
+ ROM_REGION( 0x50000, "maincpu", 0 ) // Main Z80 Code
ROM_LOAD( "sparkman.e7", 0x00000, 0x08000, CRC(d89c5780) SHA1(177f0ae21c00575a7eb078e86f3a790fc95211e4) ) // "SPARK MAN MAIN PROGRAM 1989,8,12 K.H.T (SUNA ELECTRPNICS) V 2.0 SOULE KOREA"
ROM_LOAD( "10.g7", 0x10000, 0x10000, CRC(48b4a31e) SHA1(771d1f1a2ce950ce2b661a4081471e98a7a7d53e) )
ROM_LOAD( "12.g8", 0x20000, 0x10000, CRC(b8a4a557) SHA1(10251b49fb44fb1e7c71fde8fe9544df29d27346) )
ROM_LOAD( "11.i7", 0x30000, 0x10000, CRC(f5f38e1f) SHA1(25f0abbac1298fad1f8e7202db05e48c3598bc88) )
ROM_LOAD( "13.i8", 0x40000, 0x10000, CRC(e54eea25) SHA1(b8ea884ee1a24953b6406f2d1edf103700f542d2) )
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Music Z80 Code */
+ ROM_REGION( 0x10000, "audiocpu", 0 ) // Music Z80 Code
ROM_LOAD( "14.h11", 0x00000, 0x08000, CRC(06822f3d) SHA1(d30592cecbcd4dbf67e5a8d9c151d60b3232a54d) )
- ROM_REGION( 0x100000, "gfx1", ROMREGION_INVERT | ROMREGION_ERASEFF) /* Sprites (0) */
+ ROM_REGION( 0x100000, "gfx1", ROMREGION_INVERT | ROMREGION_ERASEFF) // Sprites (0)
// bitplanes 0-1
ROM_LOAD( "p3.u1", 0x00000, 0x10000, CRC(39dbd414) SHA1(03fe938ed1191329b6a2f7ed54c6ef69273998df) ) // banks 00-03
ROM_LOAD( "p2.t1", 0x10000, 0x10000, CRC(2e474203) SHA1(a407126d92e529568129d5246f89d51330ff5d32) ) // banks 04-07
@@ -3015,7 +3033,7 @@ ROM_START( sparkman )
ROM_FILL( 0xe0000, 0x10000, 0xFF )
ROM_FILL( 0xf0000, 0x10000, 0xFF )
- ROM_REGION( 0x100000, "gfx2", ROMREGION_INVERT | ROMREGION_ERASEFF) /* Sprites (1) */
+ ROM_REGION( 0x100000, "gfx2", ROMREGION_INVERT | ROMREGION_ERASEFF) // Sprites (1)
// bitplanes 0-1
ROM_LOAD( "p7.u4", 0x00000, 0x10000, CRC(17c16ce4) SHA1(b4127e9aedab69193bef1d85e68003e225913417) ) // banks 00-03 (alt gfx)
ROM_COPY( "gfx2", 0x00000, 0x10000, 0x10000 )
@@ -3035,23 +3053,23 @@ ROM_START( sparkman )
ROM_COPY( "gfx2", 0x80000, 0xe0000, 0x10000 )
ROM_COPY( "gfx2", 0x80000, 0xf0000, 0x10000 )
- ROM_REGION( 0x8000 * 2, "samples", 0 ) /* Samples */
+ ROM_REGION( 0x8000 * 2, "samples", 0 ) // Samples
ROM_LOAD( "15.b10", 0x0000, 0x8000, CRC(46c7d4d8) SHA1(99f38cc044390ee4646498667ad2bf536ce91e8f) )
ROM_LOAD( "16.b11", 0x8000, 0x8000, CRC(d6823a62) SHA1(f8ce748aa7bdc9c95799dd111fd872717e46d416) )
ROM_END
ROM_START( sparkmana )
- ROM_REGION( 0x50000, "maincpu", 0 ) /* Main Z80 Code */
+ ROM_REGION( 0x50000, "maincpu", 0 ) // Main Z80 Code
ROM_LOAD( "p9.7f", 0x00000, 0x08000, CRC(b114cb2b) SHA1(4f79bf65ef17147004f7a8d1d6a58dac0293cdc7) ) // sparkman.e7 99.972534% (9 bytes differ, version string is the same)
ROM_LOAD( "10.g7", 0x10000, 0x10000, CRC(48b4a31e) SHA1(771d1f1a2ce950ce2b661a4081471e98a7a7d53e) )
ROM_LOAD( "12.g8", 0x20000, 0x10000, CRC(b8a4a557) SHA1(10251b49fb44fb1e7c71fde8fe9544df29d27346) )
ROM_LOAD( "11.i7", 0x30000, 0x10000, CRC(f5f38e1f) SHA1(25f0abbac1298fad1f8e7202db05e48c3598bc88) )
ROM_LOAD( "13.i8", 0x40000, 0x10000, CRC(e54eea25) SHA1(b8ea884ee1a24953b6406f2d1edf103700f542d2) )
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Music Z80 Code */
+ ROM_REGION( 0x10000, "audiocpu", 0 ) // Music Z80 Code
ROM_LOAD( "14.h11", 0x00000, 0x08000, CRC(06822f3d) SHA1(d30592cecbcd4dbf67e5a8d9c151d60b3232a54d) )
- ROM_REGION( 0x100000, "gfx1", ROMREGION_INVERT | ROMREGION_ERASEFF) /* Sprites (0) */
+ ROM_REGION( 0x100000, "gfx1", ROMREGION_INVERT | ROMREGION_ERASEFF) // Sprites (0)
// bitplanes 0-1
ROM_LOAD( "p3.u1", 0x00000, 0x10000, CRC(39dbd414) SHA1(03fe938ed1191329b6a2f7ed54c6ef69273998df) ) // banks 00-03
ROM_LOAD( "p2.t1", 0x10000, 0x10000, CRC(2e474203) SHA1(a407126d92e529568129d5246f89d51330ff5d32) ) // banks 04-07
@@ -3071,7 +3089,7 @@ ROM_START( sparkmana )
ROM_FILL( 0xe0000, 0x10000, 0xFF )
ROM_FILL( 0xf0000, 0x10000, 0xFF )
- ROM_REGION( 0x100000, "gfx2", ROMREGION_INVERT | ROMREGION_ERASEFF) /* Sprites (1) */
+ ROM_REGION( 0x100000, "gfx2", ROMREGION_INVERT | ROMREGION_ERASEFF) // Sprites (1)
// bitplanes 0-1
ROM_LOAD( "p7.u4", 0x00000, 0x10000, CRC(17c16ce4) SHA1(b4127e9aedab69193bef1d85e68003e225913417) ) // banks 00-03 (alt gfx)
ROM_COPY( "gfx2", 0x00000, 0x10000, 0x10000 )
@@ -3091,7 +3109,7 @@ ROM_START( sparkmana )
ROM_COPY( "gfx2", 0x80000, 0xe0000, 0x10000 )
ROM_COPY( "gfx2", 0x80000, 0xf0000, 0x10000 )
- ROM_REGION( 0x8000 * 2, "samples", 0 ) /* Samples */
+ ROM_REGION( 0x8000 * 2, "samples", 0 ) // Samples
ROM_LOAD( "15.b10", 0x0000, 0x8000, CRC(46c7d4d8) SHA1(99f38cc044390ee4646498667ad2bf536ce91e8f) )
ROM_LOAD( "16.b11", 0x8000, 0x8000, CRC(d6823a62) SHA1(f8ce748aa7bdc9c95799dd111fd872717e46d416) )
ROM_END
@@ -3106,7 +3124,7 @@ ROM_END
void suna8_state::init_suna8()
{
- m_bank1->configure_entries(0, 16, memregion("maincpu")->base() + 0x10000, 0x4000);
+ m_mainbank->configure_entries(0, 16, memregion("maincpu")->base() + 0x10000, 0x4000);
}
GAME( 1988, sranger, 0, rranger, rranger, suna8_state, init_suna8, ROT0, "SunA", "Super Ranger (v2.0)", MACHINE_IMPERFECT_GRAPHICS )