mirror of
https://github.com/holub/mame
synced 2025-04-23 08:49:55 +03:00
Replace dynamic_array with std::vector [O. Galibert]
This commit is contained in:
parent
75e8861950
commit
278cf84e55
@ -539,7 +539,7 @@ void a78_cart_slot_device::get_default_card_software(astring &result)
|
||||
int type = A78_TYPE0, mapper;
|
||||
|
||||
// Load and check the header
|
||||
core_fread(m_file, head, 128);
|
||||
core_fread(m_file, &head[0], 128);
|
||||
|
||||
// let's try to auto-fix some common errors in the header
|
||||
mapper = validate_header((head[53] << 8) | head[54], FALSE);
|
||||
|
@ -57,11 +57,11 @@ public:
|
||||
void ram_alloc(UINT32 size);
|
||||
void nvram_alloc(UINT32 size);
|
||||
UINT8* get_rom_base() { return m_rom; }
|
||||
UINT8* get_ram_base() { return m_ram; }
|
||||
UINT8* get_nvram_base() { return m_nvram; }
|
||||
UINT8* get_ram_base() { return &m_ram[0]; }
|
||||
UINT8* get_nvram_base() { return &m_nvram[0]; }
|
||||
UINT32 get_rom_size() { return m_rom_size; }
|
||||
UINT32 get_ram_size() { return m_ram.bytes(); }
|
||||
UINT32 get_nvram_size() { return m_nvram.bytes(); }
|
||||
UINT32 get_ram_size() { return m_ram.size(); }
|
||||
UINT32 get_nvram_size() { return m_nvram.size(); }
|
||||
|
||||
protected:
|
||||
// internal state
|
||||
|
@ -420,8 +420,8 @@ void a800_cart_slot_device::get_default_card_software(astring &result)
|
||||
// check whether there is an header, to identify the cart type
|
||||
if ((len % 0x1000) == 0x10)
|
||||
{
|
||||
core_fread(m_file, head, 0x10);
|
||||
type = identify_cart_type(head);
|
||||
core_fread(m_file, &head[0], 0x10);
|
||||
type = identify_cart_type(&head[0]);
|
||||
}
|
||||
else // otherwise try to guess based on size
|
||||
{
|
||||
@ -457,8 +457,8 @@ void a5200_cart_slot_device::get_default_card_software(astring &result)
|
||||
// check whether there is an header, to identify the cart type
|
||||
if ((len % 0x1000) == 0x10)
|
||||
{
|
||||
core_fread(m_file, head, 0x10);
|
||||
type = identify_cart_type(head);
|
||||
core_fread(m_file, &head[0], 0x10);
|
||||
type = identify_cart_type(&head[0]);
|
||||
|
||||
astring info;
|
||||
if (hashfile_extrainfo(*this, info) && info == "A13MIRRORING")
|
||||
@ -490,8 +490,8 @@ void xegs_cart_slot_device::get_default_card_software(astring &result)
|
||||
// check whether there is an header, to identify the cart type
|
||||
if ((len % 0x1000) == 0x10)
|
||||
{
|
||||
core_fread(m_file, head, 0x10);
|
||||
type = identify_cart_type(head);
|
||||
core_fread(m_file, &head[0], 0x10);
|
||||
type = identify_cart_type(&head[0]);
|
||||
}
|
||||
if (type != A800_XEGS)
|
||||
{
|
||||
|
@ -60,11 +60,11 @@ public:
|
||||
void ram_alloc(UINT32 size);
|
||||
void nvram_alloc(UINT32 size);
|
||||
UINT8* get_rom_base() { return m_rom; }
|
||||
UINT8* get_ram_base() { return m_ram; }
|
||||
UINT8* get_nvram_base() { return m_nvram; }
|
||||
UINT8* get_ram_base() { return &m_ram[0]; }
|
||||
UINT8* get_nvram_base() { return &m_nvram[0]; }
|
||||
UINT32 get_rom_size() { return m_rom_size; }
|
||||
UINT32 get_ram_size() { return m_ram.bytes(); }
|
||||
UINT32 get_nvram_size() { return m_nvram.bytes(); }
|
||||
UINT32 get_ram_size() { return m_ram.size(); }
|
||||
UINT32 get_nvram_size() { return m_nvram.size(); }
|
||||
|
||||
protected:
|
||||
// internal state
|
||||
|
@ -84,7 +84,7 @@ void a2052_device::autoconfig_base_address(offs_t address)
|
||||
m_slot->m_space->unmap_readwrite(0xe80000, 0xe8007f);
|
||||
|
||||
// install access to the rom space
|
||||
m_slot->m_space->install_ram(address, address + m_ram.bytes() - 1, m_ram);
|
||||
m_slot->m_space->install_ram(address, address + m_ram.size()*2 - 1, &m_ram[0]);
|
||||
|
||||
// we're done
|
||||
m_slot->cfgout_w(0);
|
||||
|
@ -43,7 +43,7 @@ protected:
|
||||
|
||||
private:
|
||||
required_ioport m_config;
|
||||
dynamic_array<UINT16> m_ram;
|
||||
std::vector<UINT16> m_ram;
|
||||
};
|
||||
|
||||
// device type definition
|
||||
|
@ -279,7 +279,7 @@ void dmac_hdc_device::resize_ram(int config)
|
||||
break;
|
||||
}
|
||||
|
||||
m_dmac->set_ram(m_ram);
|
||||
m_dmac->set_ram(&m_ram[0]);
|
||||
}
|
||||
|
||||
void a590_device::device_reset()
|
||||
|
@ -35,9 +35,9 @@ public:
|
||||
void rom_alloc(UINT32 size, const char *tag);
|
||||
void ram_alloc(UINT32 size);
|
||||
UINT8* get_rom_base() { return m_rom; }
|
||||
UINT8* get_ram_base() { return m_ram; }
|
||||
UINT8* get_ram_base() { return &m_ram[0]; }
|
||||
UINT32 get_rom_size() { return m_rom_size; }
|
||||
UINT32 get_ram_size() { return m_ram.count(); }
|
||||
UINT32 get_ram_size() { return m_ram.size(); }
|
||||
|
||||
void save_ram() { device().save_item(NAME(m_ram)); }
|
||||
|
||||
|
@ -153,7 +153,7 @@ ioport_constructor astrocade_rl64ram_device::device_input_ports() const
|
||||
// Blue RAM expansions have RAM starting at 0x6000, up to the RAM size
|
||||
READ8_MEMBER(astrocade_blueram_4k_device::read)
|
||||
{
|
||||
if (offset >= 0x1000 && offset < 0x1000 + m_ram.bytes())
|
||||
if (offset >= 0x1000 && offset < 0x1000 + m_ram.size())
|
||||
return m_ram[offset - 0x1000];
|
||||
else
|
||||
return 0;
|
||||
@ -161,7 +161,7 @@ READ8_MEMBER(astrocade_blueram_4k_device::read)
|
||||
|
||||
WRITE8_MEMBER(astrocade_blueram_4k_device::write)
|
||||
{
|
||||
if (offset >= 0x1000 && offset < 0x1000 + m_ram.bytes() && !m_write_prot->read())
|
||||
if (offset >= 0x1000 && offset < 0x1000 + m_ram.size() && !m_write_prot->read())
|
||||
m_ram[offset - 0x1000] = data;
|
||||
}
|
||||
|
||||
|
@ -200,7 +200,7 @@ void chanf_rom_device::common_write_2102(UINT32 offset, UINT8 data)
|
||||
// These are shared among Schach & Multigame cart types (not directly used by base chanf_rom_device)
|
||||
UINT8 chanf_rom_device::common_read_3853(UINT32 offset)
|
||||
{
|
||||
if (offset < m_ram.count())
|
||||
if (offset < m_ram.size())
|
||||
return m_ram[offset];
|
||||
else
|
||||
return 0xff;
|
||||
@ -208,7 +208,7 @@ UINT8 chanf_rom_device::common_read_3853(UINT32 offset)
|
||||
|
||||
void chanf_rom_device::common_write_3853(UINT32 offset, UINT8 data)
|
||||
{
|
||||
if (offset < m_ram.count())
|
||||
if (offset < m_ram.size())
|
||||
m_ram[offset] = data;
|
||||
}
|
||||
|
||||
|
@ -38,9 +38,9 @@ public:
|
||||
void rom_alloc(UINT32 size, const char *tag);
|
||||
void ram_alloc(UINT32 size);
|
||||
UINT8* get_rom_base() { return m_rom; }
|
||||
UINT8* get_ram_base() { return m_ram; }
|
||||
UINT8* get_ram_base() { return &m_ram[0]; }
|
||||
UINT32 get_rom_size() { return m_rom_size; }
|
||||
UINT32 get_ram_size() { return m_ram.count(); }
|
||||
UINT32 get_ram_size() { return m_ram.size(); }
|
||||
|
||||
void save_ram() { device().save_item(NAME(m_ram)); }
|
||||
|
||||
|
@ -102,7 +102,7 @@ void cpc_symbiface2_device::device_start()
|
||||
// 32 banks of 16kB (512kB)
|
||||
m_rom_space.resize(32*16384);
|
||||
|
||||
m_nvram->set_base(m_rom_space,m_rom_space.bytes());
|
||||
m_nvram->set_base(&m_rom_space[0],m_rom_space.size());
|
||||
save_item(NAME(m_rom_space));
|
||||
|
||||
}
|
||||
@ -275,10 +275,10 @@ READ8_MEMBER(cpc_symbiface2_device::rom_rewrite_r)
|
||||
m_4xxx_ptr_w = (UINT8*)machine().root_device().membank("bank11")->base();
|
||||
m_6xxx_ptr_r = (UINT8*)machine().root_device().membank("bank4")->base();
|
||||
m_6xxx_ptr_w = (UINT8*)machine().root_device().membank("bank12")->base();
|
||||
machine().root_device().membank("bank3")->set_base((UINT8*)m_rom_space+(bank*16384));
|
||||
machine().root_device().membank("bank4")->set_base((UINT8*)m_rom_space+(bank*16384+8192));
|
||||
machine().root_device().membank("bank11")->set_base((UINT8*)m_rom_space+(bank*16384));
|
||||
machine().root_device().membank("bank12")->set_base((UINT8*)m_rom_space+(bank*16384+8192));
|
||||
machine().root_device().membank("bank3")->set_base(&m_rom_space[bank*16384]);
|
||||
machine().root_device().membank("bank4")->set_base(&m_rom_space[bank*16384+8192]);
|
||||
machine().root_device().membank("bank11")->set_base(&m_rom_space[bank*16384]);
|
||||
machine().root_device().membank("bank12")->set_base(&m_rom_space[bank*16384+8192]);
|
||||
|
||||
return 0xff;
|
||||
}
|
||||
|
@ -609,15 +609,15 @@ void base_gb_cart_slot_device::get_default_card_software(astring &result)
|
||||
dynamic_buffer rom(len);
|
||||
int type;
|
||||
|
||||
core_fread(m_file, rom, len);
|
||||
core_fread(m_file, &rom[0], len);
|
||||
|
||||
if ((len % 0x4000) == 512)
|
||||
offset = 512;
|
||||
|
||||
if (get_mmm01_candidate(rom + offset, len - offset))
|
||||
if (get_mmm01_candidate(&rom[offset], len - offset))
|
||||
offset += (len - 0x8000);
|
||||
|
||||
type = get_cart_type(rom + offset, len - offset);
|
||||
type = get_cart_type(&rom[offset], len - offset);
|
||||
slot_string = gb_get_slot(type);
|
||||
|
||||
//printf("type: %s\n", slot_string);
|
||||
|
@ -62,9 +62,9 @@ public:
|
||||
void rom_alloc(UINT32 size, const char *tag);
|
||||
void ram_alloc(UINT32 size);
|
||||
UINT8* get_rom_base() { return m_rom; }
|
||||
UINT8* get_ram_base() { return m_ram; }
|
||||
UINT8* get_ram_base() { return &m_ram[0]; }
|
||||
UINT32 get_rom_size() { return m_rom_size; }
|
||||
UINT32 get_ram_size() { return m_ram.count(); }
|
||||
UINT32 get_ram_size() { return m_ram.size(); }
|
||||
|
||||
void rom_map_setup(UINT32 size);
|
||||
void ram_map_setup(UINT8 banks);
|
||||
|
@ -291,7 +291,7 @@ READ8_MEMBER(gb_rom_mbc_device::read_rom)
|
||||
|
||||
READ8_MEMBER(gb_rom_mbc_device::read_ram)
|
||||
{
|
||||
if (m_ram)
|
||||
if (!m_ram.empty())
|
||||
return m_ram[ram_bank_map[m_ram_bank] * 0x2000 + offset];
|
||||
else
|
||||
return 0xff;
|
||||
@ -299,7 +299,7 @@ READ8_MEMBER(gb_rom_mbc_device::read_ram)
|
||||
|
||||
WRITE8_MEMBER(gb_rom_mbc_device::write_ram)
|
||||
{
|
||||
if (m_ram)
|
||||
if (!m_ram.empty())
|
||||
m_ram[ram_bank_map[m_ram_bank] * 0x2000 + offset] = data;
|
||||
}
|
||||
|
||||
@ -342,7 +342,7 @@ WRITE8_MEMBER(gb_rom_mbc1_device::write_bank)
|
||||
|
||||
READ8_MEMBER(gb_rom_mbc1_device::read_ram)
|
||||
{
|
||||
if (m_ram && m_ram_enable)
|
||||
if (!m_ram.empty() && m_ram_enable)
|
||||
{
|
||||
int bank = (m_mode == MODE_4M_256k) ? m_ram_bank : 0;
|
||||
return m_ram[ram_bank_map[bank] * 0x2000 + offset];
|
||||
@ -353,7 +353,7 @@ READ8_MEMBER(gb_rom_mbc1_device::read_ram)
|
||||
|
||||
WRITE8_MEMBER(gb_rom_mbc1_device::write_ram)
|
||||
{
|
||||
if (m_ram && m_ram_enable)
|
||||
if (!m_ram.empty() && m_ram_enable)
|
||||
{
|
||||
int bank = (m_mode == MODE_4M_256k) ? m_ram_bank : 0;
|
||||
m_ram[ram_bank_map[bank] * 0x2000 + offset] = data;
|
||||
@ -392,7 +392,7 @@ WRITE8_MEMBER(gb_rom_mbc2_device::write_bank)
|
||||
// 1 bank only??
|
||||
READ8_MEMBER(gb_rom_mbc2_device::read_ram)
|
||||
{
|
||||
if (m_ram && m_ram_enable)
|
||||
if (!m_ram.empty() && m_ram_enable)
|
||||
return m_ram[ram_bank_map[m_ram_bank] * 0x2000 + (offset & 0x1fff)];
|
||||
else
|
||||
return 0xff;
|
||||
@ -400,7 +400,7 @@ READ8_MEMBER(gb_rom_mbc2_device::read_ram)
|
||||
|
||||
WRITE8_MEMBER(gb_rom_mbc2_device::write_ram)
|
||||
{
|
||||
if (m_ram && m_ram_enable)
|
||||
if (!m_ram.empty() && m_ram_enable)
|
||||
m_ram[ram_bank_map[m_ram_bank] * 0x2000 + (offset & 0x1fff)] = data;
|
||||
}
|
||||
|
||||
@ -451,7 +451,7 @@ READ8_MEMBER(gb_rom_mbc3_device::read_ram)
|
||||
{
|
||||
if (m_ram_bank < 4 && m_ram_enable)
|
||||
{ // RAM
|
||||
if (m_ram)
|
||||
if (!m_ram.empty())
|
||||
return m_ram[ram_bank_map[m_ram_bank] * 0x2000 + (offset & 0x1fff)];
|
||||
}
|
||||
if (m_ram_bank >= 0x8 && m_ram_bank <= 0xc)
|
||||
@ -466,7 +466,7 @@ WRITE8_MEMBER(gb_rom_mbc3_device::write_ram)
|
||||
{
|
||||
if (m_ram_bank < 4 && m_ram_enable)
|
||||
{ // RAM
|
||||
if (m_ram)
|
||||
if (!m_ram.empty())
|
||||
m_ram[ram_bank_map[m_ram_bank] * 0x2000 + (offset & 0x1fff)] = data;
|
||||
}
|
||||
if (m_ram_bank >= 0x8 && m_ram_bank <= 0xc)
|
||||
@ -515,7 +515,7 @@ WRITE8_MEMBER(gb_rom_mbc5_device::write_bank)
|
||||
|
||||
READ8_MEMBER(gb_rom_mbc5_device::read_ram)
|
||||
{
|
||||
if (m_ram && m_ram_enable)
|
||||
if (!m_ram.empty() && m_ram_enable)
|
||||
return m_ram[ram_bank_map[m_ram_bank] * 0x2000 + (offset & 0x1fff)];
|
||||
else
|
||||
return 0xff;
|
||||
@ -523,7 +523,7 @@ READ8_MEMBER(gb_rom_mbc5_device::read_ram)
|
||||
|
||||
WRITE8_MEMBER(gb_rom_mbc5_device::write_ram)
|
||||
{
|
||||
if (m_ram && m_ram_enable)
|
||||
if (!m_ram.empty() && m_ram_enable)
|
||||
m_ram[ram_bank_map[m_ram_bank] * 0x2000 + (offset & 0x1fff)] = data;
|
||||
}
|
||||
|
||||
@ -563,7 +563,7 @@ WRITE8_MEMBER(gb_rom_mbc6_device::write_bank)
|
||||
|
||||
READ8_MEMBER(gb_rom_mbc6_device::read_ram)
|
||||
{
|
||||
if (m_ram)
|
||||
if (!m_ram.empty())
|
||||
return m_ram[ram_bank_map[m_ram_bank] * 0x2000 + (offset & 0x1fff)];
|
||||
else
|
||||
return 0xff;
|
||||
@ -571,7 +571,7 @@ READ8_MEMBER(gb_rom_mbc6_device::read_ram)
|
||||
|
||||
WRITE8_MEMBER(gb_rom_mbc6_device::write_ram)
|
||||
{
|
||||
if (m_ram)
|
||||
if (!m_ram.empty())
|
||||
m_ram[ram_bank_map[m_ram_bank] * 0x2000 + (offset & 0x1fff)] = data;
|
||||
}
|
||||
|
||||
@ -620,7 +620,7 @@ WRITE8_MEMBER(gb_rom_mbc7_device::write_bank)
|
||||
|
||||
READ8_MEMBER(gb_rom_mbc7_device::read_ram)
|
||||
{
|
||||
if (m_ram)
|
||||
if (!m_ram.empty())
|
||||
return m_ram[ram_bank_map[m_ram_bank] * 0x2000 + (offset & 0x1fff)];
|
||||
else
|
||||
return 0xff;
|
||||
@ -628,7 +628,7 @@ READ8_MEMBER(gb_rom_mbc7_device::read_ram)
|
||||
|
||||
WRITE8_MEMBER(gb_rom_mbc7_device::write_ram)
|
||||
{
|
||||
if (m_ram)
|
||||
if (!m_ram.empty())
|
||||
m_ram[ram_bank_map[m_ram_bank] * 0x2000 + (offset & 0x1fff)] = data;
|
||||
}
|
||||
|
||||
@ -910,7 +910,7 @@ WRITE8_MEMBER(gb_rom_sintax_device::write_bank)
|
||||
|
||||
READ8_MEMBER(gb_rom_sintax_device::read_ram)
|
||||
{
|
||||
if (m_ram && m_ram_enable)
|
||||
if (!m_ram.empty() && m_ram_enable)
|
||||
return m_ram[ram_bank_map[m_ram_bank] * 0x2000 + (offset & 0x1fff)];
|
||||
else
|
||||
return 0xff;
|
||||
@ -918,7 +918,7 @@ READ8_MEMBER(gb_rom_sintax_device::read_ram)
|
||||
|
||||
WRITE8_MEMBER(gb_rom_sintax_device::write_ram)
|
||||
{
|
||||
if (m_ram && m_ram_enable)
|
||||
if (!m_ram.empty() && m_ram_enable)
|
||||
m_ram[ram_bank_map[m_ram_bank] * 0x2000 + (offset & 0x1fff)] = data;
|
||||
}
|
||||
|
||||
@ -977,7 +977,7 @@ WRITE8_MEMBER(gb_rom_digimon_device::write_bank)
|
||||
|
||||
READ8_MEMBER(gb_rom_digimon_device::read_ram)
|
||||
{
|
||||
if (m_ram && m_ram_enable)
|
||||
if (!m_ram.empty() && m_ram_enable)
|
||||
return m_ram[ram_bank_map[m_ram_bank] * 0x2000 + (offset & 0x1fff)];
|
||||
else
|
||||
return 0xff;
|
||||
@ -985,7 +985,7 @@ READ8_MEMBER(gb_rom_digimon_device::read_ram)
|
||||
|
||||
WRITE8_MEMBER(gb_rom_digimon_device::write_ram)
|
||||
{
|
||||
if (m_ram && m_ram_enable)
|
||||
if (!m_ram.empty() && m_ram_enable)
|
||||
m_ram[ram_bank_map[m_ram_bank] * 0x2000 + (offset & 0x1fff)] = data;
|
||||
}
|
||||
|
||||
@ -1019,7 +1019,7 @@ WRITE8_MEMBER(gb_rom_rockman8_device::write_bank)
|
||||
|
||||
READ8_MEMBER(gb_rom_rockman8_device::read_ram)
|
||||
{
|
||||
if (m_ram)
|
||||
if (!m_ram.empty())
|
||||
return m_ram[offset];
|
||||
else
|
||||
return 0xff;
|
||||
@ -1027,7 +1027,7 @@ READ8_MEMBER(gb_rom_rockman8_device::read_ram)
|
||||
|
||||
WRITE8_MEMBER(gb_rom_rockman8_device::write_ram)
|
||||
{
|
||||
if (m_ram)
|
||||
if (!m_ram.empty())
|
||||
m_ram[offset] = data;
|
||||
}
|
||||
|
||||
@ -1127,7 +1127,7 @@ WRITE8_MEMBER(gb_rom_sm3sp_device::write_bank)
|
||||
|
||||
READ8_MEMBER(gb_rom_sm3sp_device::read_ram)
|
||||
{
|
||||
if (m_ram)
|
||||
if (!m_ram.empty())
|
||||
return m_ram[offset];
|
||||
else
|
||||
return 0xff;
|
||||
@ -1135,6 +1135,6 @@ READ8_MEMBER(gb_rom_sm3sp_device::read_ram)
|
||||
|
||||
WRITE8_MEMBER(gb_rom_sm3sp_device::write_ram)
|
||||
{
|
||||
if (m_ram)
|
||||
if (!m_ram.empty())
|
||||
m_ram[offset] = data;
|
||||
}
|
||||
|
@ -153,7 +153,7 @@ READ8_MEMBER(gb_rom_device::read_rom)
|
||||
|
||||
READ8_MEMBER(gb_rom_device::read_ram)
|
||||
{
|
||||
if (m_ram)
|
||||
if (!m_ram.empty())
|
||||
return m_ram[ram_bank_map[m_ram_bank] * 0x2000 + offset];
|
||||
else
|
||||
return 0xff;
|
||||
@ -161,7 +161,7 @@ READ8_MEMBER(gb_rom_device::read_ram)
|
||||
|
||||
WRITE8_MEMBER(gb_rom_device::write_ram)
|
||||
{
|
||||
if (m_ram)
|
||||
if (!m_ram.empty())
|
||||
m_ram[ram_bank_map[m_ram_bank] * 0x2000 + offset] = data;
|
||||
}
|
||||
|
||||
|
@ -408,9 +408,9 @@ void gba_cart_slot_device::get_default_card_software(astring &result)
|
||||
dynamic_buffer rom(len);
|
||||
int type;
|
||||
|
||||
core_fread(m_file, rom, len);
|
||||
core_fread(m_file, &rom[0], len);
|
||||
|
||||
type = get_cart_type(rom, len);
|
||||
type = get_cart_type(&rom[0], len);
|
||||
slot_string = gba_get_slot(type);
|
||||
|
||||
//printf("type: %s\n", slot_string);
|
||||
|
@ -37,9 +37,9 @@ public:
|
||||
void rom_alloc(UINT32 size, const char *tag);
|
||||
void nvram_alloc(UINT32 size);
|
||||
UINT32* get_rom_base() { return m_rom; }
|
||||
UINT32* get_nvram_base() { return m_nvram; }
|
||||
UINT32* get_nvram_base() { return &m_nvram[0]; }
|
||||
UINT32 get_rom_size() { return m_rom_size; }
|
||||
UINT32 get_nvram_size() { return m_nvram.bytes(); }
|
||||
UINT32 get_nvram_size() { return m_nvram.size()*sizeof(UINT32); }
|
||||
void set_rom_size(UINT32 val) { m_rom_size = val; }
|
||||
|
||||
void save_nvram() { device().save_item(NAME(m_nvram)); }
|
||||
@ -47,7 +47,7 @@ public:
|
||||
// internal state
|
||||
UINT32 *m_rom; // this points to the cart rom region
|
||||
UINT32 m_rom_size; // this is the actual game size, not the rom region size!
|
||||
dynamic_array<UINT32> m_nvram;
|
||||
std::vector<UINT32> m_nvram;
|
||||
};
|
||||
|
||||
|
||||
|
@ -116,7 +116,7 @@ void gba_rom_eeprom64_device::device_start()
|
||||
|
||||
READ32_MEMBER(gba_rom_sram_device::read_ram)
|
||||
{
|
||||
if (m_nvram && offset < m_nvram.count())
|
||||
if (!m_nvram.empty() && offset < m_nvram.size())
|
||||
return m_nvram[offset];
|
||||
else // this cannot actually happen...
|
||||
return 0xffffffff;
|
||||
@ -124,7 +124,7 @@ READ32_MEMBER(gba_rom_sram_device::read_ram)
|
||||
|
||||
WRITE32_MEMBER(gba_rom_sram_device::write_ram)
|
||||
{
|
||||
if (m_nvram && offset < m_nvram.count())
|
||||
if (!m_nvram.empty() && offset < m_nvram.size())
|
||||
COMBINE_DATA(&m_nvram[offset]);
|
||||
}
|
||||
|
||||
|
@ -99,7 +99,7 @@ void generic_ram_linear_device::device_start()
|
||||
|
||||
READ8_MEMBER(generic_ram_plain_device::read_ram)
|
||||
{
|
||||
if (offset < m_ram.bytes())
|
||||
if (offset < m_ram.size())
|
||||
return m_ram[offset];
|
||||
else
|
||||
return 0xff;
|
||||
@ -107,17 +107,17 @@ READ8_MEMBER(generic_ram_plain_device::read_ram)
|
||||
|
||||
WRITE8_MEMBER(generic_ram_plain_device::write_ram)
|
||||
{
|
||||
if (offset < m_ram.bytes())
|
||||
if (offset < m_ram.size())
|
||||
m_ram[offset] = data;
|
||||
}
|
||||
|
||||
|
||||
READ8_MEMBER(generic_ram_linear_device::read_ram)
|
||||
{
|
||||
return m_ram[offset % m_ram.bytes()];
|
||||
return m_ram[offset % m_ram.size()];
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(generic_ram_linear_device::write_ram)
|
||||
{
|
||||
m_ram[offset % m_ram.bytes()] = data;
|
||||
m_ram[offset % m_ram.size()] = data;
|
||||
}
|
||||
|
@ -109,7 +109,7 @@ READ32_MEMBER(generic_rom_linear_device::read32_rom)
|
||||
|
||||
READ8_MEMBER(generic_romram_plain_device::read_ram)
|
||||
{
|
||||
if (offset < m_ram.bytes())
|
||||
if (offset < m_ram.size())
|
||||
return m_ram[offset];
|
||||
else
|
||||
return 0xff;
|
||||
@ -117,6 +117,6 @@ READ8_MEMBER(generic_romram_plain_device::read_ram)
|
||||
|
||||
WRITE8_MEMBER(generic_romram_plain_device::write_ram)
|
||||
{
|
||||
if (offset < m_ram.bytes())
|
||||
if (offset < m_ram.size())
|
||||
m_ram[offset] = data;
|
||||
}
|
||||
|
@ -31,8 +31,8 @@ public:
|
||||
UINT8* get_rom_base() { return m_rom; }
|
||||
UINT32 get_rom_size() { return m_rom_size; }
|
||||
|
||||
UINT8* get_ram_base() { return m_ram; }
|
||||
UINT32 get_ram_size() { return m_ram.count(); }
|
||||
UINT8* get_ram_base() { return &m_ram[0]; }
|
||||
UINT32 get_ram_size() { return m_ram.size(); }
|
||||
|
||||
void save_ram() { device().save_item(NAME(m_ram)); }
|
||||
|
||||
|
@ -57,7 +57,7 @@ void intv_ecs_device::device_start()
|
||||
astring region_tag;
|
||||
m_rom = memregion(region_tag.cpy(tag()).cat(":ecs").c_str())->base();
|
||||
}
|
||||
if (!m_ram.count())
|
||||
if (m_ram.empty())
|
||||
{
|
||||
m_ram.resize(0x800);
|
||||
}
|
||||
|
@ -31,8 +31,8 @@ public:
|
||||
virtual DECLARE_READ16_MEMBER(read_rome0);
|
||||
virtual DECLARE_READ16_MEMBER(read_romf0);
|
||||
// RAM
|
||||
virtual DECLARE_READ16_MEMBER(read_ram) { return (int)m_ram[offset & (m_ram.count() - 1)]; }
|
||||
virtual DECLARE_WRITE16_MEMBER(write_ram) { m_ram[offset & (m_ram.count() - 1)] = data & 0xff; }
|
||||
virtual DECLARE_READ16_MEMBER(read_ram) { return (int)m_ram[offset & (m_ram.size() - 1)]; }
|
||||
virtual DECLARE_WRITE16_MEMBER(write_ram) { m_ram[offset & (m_ram.size() - 1)] = data & 0xff; }
|
||||
// AY8914
|
||||
virtual DECLARE_READ16_MEMBER(read_ay);
|
||||
virtual DECLARE_WRITE16_MEMBER(write_ay);
|
||||
|
@ -45,8 +45,8 @@ public:
|
||||
intv_ram_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
|
||||
// reading and writing
|
||||
virtual DECLARE_READ16_MEMBER(read_ram) { return (int)m_ram[offset & (m_ram.count() - 1)]; }
|
||||
virtual DECLARE_WRITE16_MEMBER(write_ram) { m_ram[offset & (m_ram.count() - 1)] = data & 0xff; }
|
||||
virtual DECLARE_READ16_MEMBER(read_ram) { return (int)m_ram[offset & (m_ram.size() - 1)]; }
|
||||
virtual DECLARE_WRITE16_MEMBER(write_ram) { m_ram[offset & (m_ram.size() - 1)] = data & 0xff; }
|
||||
};
|
||||
|
||||
// ======================> intv_gfact_device
|
||||
@ -58,8 +58,8 @@ public:
|
||||
intv_gfact_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
|
||||
// reading and writing
|
||||
virtual DECLARE_READ16_MEMBER(read_ram) { return (int)m_ram[offset & (m_ram.count() - 1)]; }
|
||||
virtual DECLARE_WRITE16_MEMBER(write_ram) { m_ram[offset & (m_ram.count() - 1)] = data & 0xff; }
|
||||
virtual DECLARE_READ16_MEMBER(read_ram) { return (int)m_ram[offset & (m_ram.size() - 1)]; }
|
||||
virtual DECLARE_WRITE16_MEMBER(write_ram) { m_ram[offset & (m_ram.size() - 1)] = data & 0xff; }
|
||||
};
|
||||
|
||||
// ======================> intv_wsmlb_device
|
||||
|
@ -468,7 +468,7 @@ void intv_cart_slot_device::get_default_card_software(astring &result)
|
||||
dynamic_buffer rom(len);
|
||||
int type = INTV_STD;
|
||||
|
||||
core_fread(m_file, rom, len);
|
||||
core_fread(m_file, &rom[0], len);
|
||||
|
||||
if (rom[0] == 0xa8 && (rom[1] == (rom[2] ^ 0xff)))
|
||||
{
|
||||
|
@ -67,9 +67,9 @@ public:
|
||||
void rom_alloc(UINT32 size, const char *tag);
|
||||
void ram_alloc(UINT32 size);
|
||||
UINT8* get_rom_base() { return m_rom; }
|
||||
UINT8* get_ram_base() { return m_ram; }
|
||||
UINT8* get_ram_base() { return &m_ram[0]; }
|
||||
UINT32 get_rom_size() { return m_rom_size; }
|
||||
UINT32 get_ram_size() { return m_ram.count(); }
|
||||
UINT32 get_ram_size() { return m_ram.size(); }
|
||||
|
||||
void save_ram() { device().save_item(NAME(m_ram)); }
|
||||
virtual void late_subslot_setup() {}
|
||||
|
@ -435,14 +435,14 @@ void threecom3c505_device::data_buffer::reset()
|
||||
|
||||
void threecom3c505_device::data_buffer::copy(data_buffer *db) const
|
||||
{
|
||||
db->m_data.resize(m_data.count());
|
||||
db->m_data.resize(m_data.size());
|
||||
db->m_length = m_length;
|
||||
memcpy(db->m_data, m_data, m_data.count());
|
||||
memcpy(&db->m_data[0], &m_data[0], m_data.size());
|
||||
}
|
||||
|
||||
int threecom3c505_device::data_buffer::append(UINT8 data)
|
||||
{
|
||||
if (m_length >= m_data.count())
|
||||
if (m_length >= m_data.size())
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
@ -532,7 +532,7 @@ int threecom3c505_device::data_buffer_fifo::put(const UINT8 data[], const int le
|
||||
}
|
||||
else
|
||||
{
|
||||
memcpy(m_db[m_put_index]->m_data, data, length);
|
||||
memcpy(&m_db[m_put_index]->m_data[0], data, length);
|
||||
m_db[m_put_index]->m_length = length;
|
||||
m_put_index = next_index;
|
||||
m_count++;
|
||||
|
@ -168,10 +168,10 @@ private:
|
||||
UINT8 get(int i) { return m_data[i]; };
|
||||
UINT16 get_word(int i) { return (m_data[i*2+1] << 8) + m_data[i*2]; };
|
||||
int is_empty() {return m_length == 0; };
|
||||
int is_full() {return m_length >= m_data.count(); };
|
||||
int is_full() {return m_length >= m_data.size(); };
|
||||
UINT16 get_length() { return m_length; };
|
||||
UINT16 get_size() { return m_data.count(); };
|
||||
UINT8 *get_data() { return m_data; };
|
||||
UINT16 get_size() { return m_data.size(); };
|
||||
UINT8 *get_data() { return &m_data[0]; };
|
||||
void copy(data_buffer *db) const;
|
||||
void log(const char *title) const;
|
||||
|
||||
|
@ -339,7 +339,7 @@ void isa8_cga_device::device_start()
|
||||
set_isa_device();
|
||||
m_vram.resize(m_vram_size);
|
||||
m_isa->install_device(0x3d0, 0x3df, 0, 0, read8_delegate( FUNC(isa8_cga_device::io_read), this ), write8_delegate( FUNC(isa8_cga_device::io_write), this ) );
|
||||
m_isa->install_bank(0xb8000, 0xb8000 + MIN(0x8000,m_vram_size) - 1, 0, m_vram_size & 0x4000, "bank_cga", m_vram);
|
||||
m_isa->install_bank(0xb8000, 0xb8000 + MIN(0x8000,m_vram_size) - 1, 0, m_vram_size & 0x4000, "bank_cga", &m_vram[0]);
|
||||
|
||||
/* Initialise the cga palette */
|
||||
int i;
|
||||
@ -1552,7 +1552,7 @@ void isa8_cga_pc1512_device::device_start()
|
||||
isa8_cga_device::device_start();
|
||||
|
||||
m_isa->install_device(0x3d0, 0x3df, 0, 0, read8_delegate( FUNC(isa8_cga_pc1512_device::io_read), this ), write8_delegate( FUNC(isa8_cga_pc1512_device::io_write), this ) );
|
||||
m_isa->install_bank(0xb8000, 0xbbfff, 0, 0, "bank1", m_vram);
|
||||
m_isa->install_bank(0xb8000, 0xbbfff, 0, 0, "bank1", &m_vram[0]);
|
||||
|
||||
address_space &space = machine().firstcpu->space( AS_PROGRAM );
|
||||
|
||||
@ -1787,7 +1787,7 @@ WRITE8_MEMBER( isa8_ec1841_0002_device::io_write )
|
||||
read8_delegate( FUNC(isa8_ec1841_0002_device::char_ram_read), this),
|
||||
write8_delegate(FUNC(isa8_ec1841_0002_device::char_ram_write), this) );
|
||||
} else {
|
||||
m_isa->install_bank(0xb8000, 0xb8000 + MIN(0x8000,m_vram_size) - 1, 0, m_vram_size & 0x4000, "bank_cga", m_vram);
|
||||
m_isa->install_bank(0xb8000, 0xb8000 + MIN(0x8000,m_vram_size) - 1, 0, m_vram_size & 0x4000, "bank_cga", &m_vram[0]);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
@ -389,7 +389,8 @@ void gf1_device::device_start()
|
||||
m_nmi_handler.resolve_safe();
|
||||
|
||||
// TODO: make DRAM size configurable. Can be 256k, 512k, 768k, or 1024k
|
||||
m_wave_ram.resize_and_clear(1024*1024);
|
||||
m_wave_ram.resize(1024*1024);
|
||||
memset(&m_wave_ram[0], 0, 1024*1024);
|
||||
|
||||
m_stream = stream_alloc(0,2,44100);
|
||||
|
||||
|
@ -582,7 +582,7 @@ void isa8_hdc_device::hdc_command()
|
||||
csb = 0x00;
|
||||
error = 0;
|
||||
|
||||
buffer_ptr = buffer;
|
||||
buffer_ptr = &buffer[0];
|
||||
cmd = buffer[0];
|
||||
|
||||
get_drive();
|
||||
@ -716,7 +716,7 @@ void isa8_hdc_device::pc_hdc_data_w(int data)
|
||||
if (LOG_HDC_DATA)
|
||||
logerror("hdc_data_w $%02x: ", data);
|
||||
|
||||
buffer_ptr = buffer;
|
||||
buffer_ptr = &buffer[0];
|
||||
data_cnt = 6; /* expect 6 bytes including this one */
|
||||
status &= ~STA_READY;
|
||||
status &= ~STA_INPUT;
|
||||
@ -792,8 +792,8 @@ void isa8_hdc_device::pc_hdc_reset_w(int data)
|
||||
sector[0] = sector[1] = 0;
|
||||
csb = 0;
|
||||
status = STA_COMMAND | STA_READY;
|
||||
memset(buffer, 0, buffer.count());
|
||||
buffer_ptr = buffer;
|
||||
memset(&buffer[0], 0, buffer.size());
|
||||
buffer_ptr = &buffer[0];
|
||||
data_cnt = 0;
|
||||
}
|
||||
|
||||
|
@ -176,7 +176,7 @@ void isa8_mda_device::device_start()
|
||||
set_isa_device();
|
||||
m_videoram.resize(0x1000);
|
||||
m_isa->install_device(0x3b0, 0x3bf, 0, 0, read8_delegate( FUNC(isa8_mda_device::io_read), this ), write8_delegate( FUNC(isa8_mda_device::io_write), this ) );
|
||||
m_isa->install_bank(0xb0000, 0xb0fff, 0, 0x07000, "bank_mda", m_videoram);
|
||||
m_isa->install_bank(0xb0000, 0xb0fff, 0, 0x07000, "bank_mda", &m_videoram[0]);
|
||||
|
||||
/* Initialise the mda palette */
|
||||
for(int i = 0; i < 4; i++)
|
||||
@ -596,7 +596,7 @@ void isa8_hercules_device::device_start()
|
||||
m_videoram.resize(0x10000);
|
||||
set_isa_device();
|
||||
m_isa->install_device(0x3b0, 0x3bf, 0, 0, read8_delegate( FUNC(isa8_hercules_device::io_read), this ), write8_delegate( FUNC(isa8_hercules_device::io_write), this ) );
|
||||
m_isa->install_bank(0xb0000, 0xbffff, 0, 0, "bank_hercules", m_videoram);
|
||||
m_isa->install_bank(0xb0000, 0xbffff, 0, 0, "bank_hercules", &m_videoram[0]);
|
||||
|
||||
/* Initialise the mda palette */
|
||||
for(int i = 0; i < (sizeof(mda_palette) / 3); i++)
|
||||
|
@ -339,8 +339,8 @@ void omti8621_device::device_reset()
|
||||
// default the sector data buffer with model and status information
|
||||
// (i.e. set sector data buffer for cmd=0x0e READ SECTOR BUFFER)
|
||||
|
||||
memset(sector_buffer, 0, OMTI_DISK_SECTOR_SIZE);
|
||||
memcpy(sector_buffer, "8621VB.4060487xx", 0x10);
|
||||
memset(§or_buffer[0], 0, OMTI_DISK_SECTOR_SIZE);
|
||||
memcpy(§or_buffer[0], "8621VB.4060487xx", 0x10);
|
||||
sector_buffer[0x10] = 0; // ROM Checksum error
|
||||
sector_buffer[0x11] = 0; // Processor Register error
|
||||
sector_buffer[0x12] = 0; // Buffer RAM error
|
||||
@ -543,7 +543,7 @@ void omti8621_device::set_data_transfer(UINT8 *data, UINT16 length)
|
||||
|
||||
void omti8621_device::read_sectors_from_disk(INT32 diskaddr, UINT8 count, UINT8 lun)
|
||||
{
|
||||
UINT8 *data_buffer = sector_buffer;
|
||||
UINT8 *data_buffer = §or_buffer[0];
|
||||
device_image_interface *image = our_disks[lun]->m_image;
|
||||
|
||||
while (count-- > 0) {
|
||||
@ -563,7 +563,7 @@ void omti8621_device::read_sectors_from_disk(INT32 diskaddr, UINT8 count, UINT8
|
||||
|
||||
void omti8621_device::write_sectors_to_disk(INT32 diskaddr, UINT8 count, UINT8 lun)
|
||||
{
|
||||
UINT8 *data_buffer = sector_buffer;
|
||||
UINT8 *data_buffer = §or_buffer[0];
|
||||
device_image_interface *image = our_disks[lun]->m_image;
|
||||
|
||||
while (count-- > 0) {
|
||||
@ -594,10 +594,10 @@ void omti8621_device::copy_sectors(INT32 dst_addr, INT32 src_addr, UINT8 count,
|
||||
|
||||
while (count-- > 0) {
|
||||
image->fseek( src_addr * OMTI_DISK_SECTOR_SIZE, SEEK_SET);
|
||||
image->fread( sector_buffer, OMTI_DISK_SECTOR_SIZE);
|
||||
image->fread( §or_buffer[0], OMTI_DISK_SECTOR_SIZE);
|
||||
|
||||
image->fseek( dst_addr * OMTI_DISK_SECTOR_SIZE, SEEK_SET);
|
||||
image->fwrite( sector_buffer, OMTI_DISK_SECTOR_SIZE);
|
||||
image->fwrite( §or_buffer[0], OMTI_DISK_SECTOR_SIZE);
|
||||
|
||||
if (dst_addr == diskaddr_ecc_error) {
|
||||
// reset previous ECC error
|
||||
@ -641,7 +641,7 @@ void omti8621_device::format_track(const UINT8 * cdb)
|
||||
|
||||
if (check_disk_address(cdb) ) {
|
||||
if ((cdb[5] & 0x40) == 0) {
|
||||
memset(sector_buffer, 0x6C, OMTI_DISK_SECTOR_SIZE * our_disks[lun]->m_sectors);
|
||||
memset(§or_buffer[0], 0x6C, OMTI_DISK_SECTOR_SIZE * our_disks[lun]->m_sectors);
|
||||
}
|
||||
write_sectors_to_disk(disk_addr, our_disks[lun]->m_sectors, lun);
|
||||
}
|
||||
@ -840,7 +840,7 @@ void omti8621_device::do_command(const UINT8 cdb[], const UINT16 cdb_length)
|
||||
if (check_disk_address(cdb)) {
|
||||
// read data from controller
|
||||
read_sectors_from_disk(get_disk_address(cdb), cdb[4], lun);
|
||||
set_data_transfer(sector_buffer, OMTI_DISK_SECTOR_SIZE*cdb[4]);
|
||||
set_data_transfer(§or_buffer[0], OMTI_DISK_SECTOR_SIZE*cdb[4]);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -856,7 +856,7 @@ void omti8621_device::do_command(const UINT8 cdb[], const UINT16 cdb_length)
|
||||
break;
|
||||
|
||||
case OMTI_CMD_READ_SECTOR_BUFFER: // 0x0E
|
||||
set_data_transfer(sector_buffer, OMTI_DISK_SECTOR_SIZE*cdb[4]);
|
||||
set_data_transfer(§or_buffer[0], OMTI_DISK_SECTOR_SIZE*cdb[4]);
|
||||
break;
|
||||
|
||||
case OMTI_CMD_WRITE_SECTOR_BUFFER: // 0x0F
|
||||
@ -909,7 +909,7 @@ void omti8621_device::do_command(const UINT8 cdb[], const UINT16 cdb_length)
|
||||
if (check_disk_address(cdb)) {
|
||||
// read data from controller
|
||||
read_sectors_from_disk(get_disk_address(cdb), cdb[4], lun);
|
||||
set_data_transfer(sector_buffer, OMTI_DISK_SECTOR_SIZE+6);
|
||||
set_data_transfer(§or_buffer[0], OMTI_DISK_SECTOR_SIZE+6);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -1050,7 +1050,7 @@ WRITE8_MEMBER(omti8621_device::write8)
|
||||
// TODO: check diskaddr
|
||||
// Fall through
|
||||
case OMTI_CMD_WRITE_SECTOR_BUFFER: // 0x0F
|
||||
set_data_transfer(sector_buffer,
|
||||
set_data_transfer(§or_buffer[0],
|
||||
OMTI_DISK_SECTOR_SIZE * command_buffer[4]);
|
||||
status_port &= ~OMTI_STATUS_IO;
|
||||
break;
|
||||
@ -1062,7 +1062,7 @@ WRITE8_MEMBER(omti8621_device::write8)
|
||||
|
||||
case OMTI_CMD_WRITE_LONG: // 0xE6
|
||||
// TODO: check diskaddr
|
||||
set_data_transfer(sector_buffer,
|
||||
set_data_transfer(§or_buffer[0],
|
||||
(OMTI_DISK_SECTOR_SIZE +6) * command_buffer[4]);
|
||||
status_port &= ~OMTI_STATUS_IO;
|
||||
break;
|
||||
|
@ -60,7 +60,8 @@ void s3virge_vga_device::device_start()
|
||||
vga.svga_intf.seq_regcount = 0x1c;
|
||||
vga.svga_intf.crtc_regcount = 0x19;
|
||||
vga.svga_intf.vram_size = 0x400000;
|
||||
vga.memory.resize_and_clear(vga.svga_intf.vram_size);
|
||||
vga.memory.resize(vga.svga_intf.vram_size);
|
||||
memset(&vga.memory[0], 0, vga.svga_intf.vram_size);
|
||||
save_item(vga.memory,"Video RAM");
|
||||
save_pointer(vga.crtc.data,"CRTC Registers",0x100);
|
||||
save_pointer(vga.sequencer.data,"Sequencer Registers",0x100);
|
||||
|
@ -1187,7 +1187,7 @@ void sc499_device::read_block()
|
||||
}
|
||||
else
|
||||
{
|
||||
memcpy(m_ctape_block_buffer, tape, SC499_CTAPE_BLOCK_SIZE);
|
||||
memcpy(&m_ctape_block_buffer[0], tape, SC499_CTAPE_BLOCK_SIZE);
|
||||
|
||||
// if (verbose > 1 || m_tape_pos % 100 == 0)
|
||||
{
|
||||
@ -1238,7 +1238,7 @@ void sc499_device::write_block()
|
||||
check_tape();
|
||||
}
|
||||
|
||||
m_image->write_block(m_tape_pos, m_ctape_block_buffer);
|
||||
m_image->write_block(m_tape_pos, &m_ctape_block_buffer[0]);
|
||||
m_ctape_block_count = m_tape_pos;
|
||||
m_ctape_block_index = 0;
|
||||
m_tape_pos++;
|
||||
@ -1255,8 +1255,8 @@ int sc499_device::block_is_filemark()
|
||||
{
|
||||
static const UINT8 fm_pattern[] = {0xDE, 0xAF, 0xFA, 0xED};
|
||||
|
||||
int is_filemark = memcmp(m_ctape_block_buffer, fm_pattern, 4) == 0 &&
|
||||
memcmp(m_ctape_block_buffer, m_ctape_block_buffer+4, SC499_CTAPE_BLOCK_SIZE-4) == 0;
|
||||
int is_filemark = memcmp(&m_ctape_block_buffer[0], fm_pattern, 4) == 0 &&
|
||||
memcmp(&m_ctape_block_buffer[0], &m_ctape_block_buffer[4], SC499_CTAPE_BLOCK_SIZE-4) == 0;
|
||||
|
||||
LOG3(("block_is_filemark for block %d = %d", m_tape_pos-1, is_filemark));
|
||||
return is_filemark;
|
||||
@ -1271,7 +1271,7 @@ void sc499_device::block_set_filemark()
|
||||
static const UINT8 fm_pattern[] = {0xDE, 0xAF, 0xFA, 0xED};
|
||||
for (int i = 0; i < SC499_CTAPE_BLOCK_SIZE; i += 4)
|
||||
{
|
||||
memcpy(m_ctape_block_buffer + i, fm_pattern, 4);
|
||||
memcpy(&m_ctape_block_buffer[i], fm_pattern, 4);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1294,16 +1294,16 @@ void sc499_ctape_image_device::device_config_complete()
|
||||
UINT8 *sc499_ctape_image_device::read_block(int block_num)
|
||||
{
|
||||
// access beyond end of tape cart
|
||||
if (m_ctape_data.bytes() <= (block_num + 1) * SC499_CTAPE_BLOCK_SIZE)
|
||||
if (m_ctape_data.size() <= (block_num + 1) * SC499_CTAPE_BLOCK_SIZE)
|
||||
return NULL;
|
||||
else
|
||||
return m_ctape_data + (block_num * SC499_CTAPE_BLOCK_SIZE);
|
||||
return &m_ctape_data[block_num * SC499_CTAPE_BLOCK_SIZE];
|
||||
}
|
||||
|
||||
void sc499_ctape_image_device::write_block(int block_num, UINT8 *ptr)
|
||||
{
|
||||
if (!(m_ctape_data.bytes() <= (block_num + 1) * SC499_CTAPE_BLOCK_SIZE))
|
||||
memcpy(m_ctape_data + (block_num * SC499_CTAPE_BLOCK_SIZE), ptr, SC499_CTAPE_BLOCK_SIZE);
|
||||
if (!(m_ctape_data.size() <= (block_num + 1) * SC499_CTAPE_BLOCK_SIZE))
|
||||
memcpy(&m_ctape_data[block_num * SC499_CTAPE_BLOCK_SIZE], ptr, SC499_CTAPE_BLOCK_SIZE);
|
||||
}
|
||||
|
||||
bool sc499_ctape_image_device::call_load()
|
||||
@ -1317,7 +1317,7 @@ bool sc499_ctape_image_device::call_load()
|
||||
size = io_generic_size(&io);
|
||||
m_ctape_data.resize(size);
|
||||
|
||||
io_generic_read(&io, m_ctape_data, 0, size);
|
||||
io_generic_read(&io, &m_ctape_data[0], 0, size);
|
||||
|
||||
return IMAGE_INIT_PASS;
|
||||
}
|
||||
|
@ -46,7 +46,7 @@ public:
|
||||
|
||||
UINT8 *read_block(int block_num);
|
||||
void write_block(int block_num, UINT8 *ptr);
|
||||
UINT64 tapelen() { return m_ctape_data.bytes(); }
|
||||
UINT64 tapelen() { return m_ctape_data.size(); }
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
|
@ -169,7 +169,8 @@ void trident_vga_device::device_start()
|
||||
vga.read_dipswitch = read8_delegate(); //read_dipswitch;
|
||||
vga.svga_intf.vram_size = 0x200000;
|
||||
|
||||
vga.memory.resize_and_clear(vga.svga_intf.vram_size);
|
||||
vga.memory.resize(vga.svga_intf.vram_size);
|
||||
memset(&vga.memory[0], 0, vga.svga_intf.vram_size);
|
||||
save_item(NAME(vga.memory));
|
||||
save_pointer(vga.crtc.data,"CRTC Registers",0x100);
|
||||
save_pointer(vga.sequencer.data,"Sequencer Registers",0x100);
|
||||
|
@ -471,7 +471,7 @@ int base_md_cart_slot_device::load_nonlist()
|
||||
dynamic_buffer tmpROM(tmplen);
|
||||
|
||||
// STEP 1: store a (possibly headered) copy of the file and determine its type (SMD? MD? BIN?)
|
||||
fread(tmpROM, tmplen);
|
||||
fread(&tmpROM[0], tmplen);
|
||||
is_smd = genesis_is_SMD(&tmpROM[0x200], tmplen - 0x200);
|
||||
is_md = (tmpROM[0x80] == 'E') && (tmpROM[0x81] == 'A') && (tmpROM[0x82] == 'M' || tmpROM[0x82] == 'G');
|
||||
|
||||
@ -909,12 +909,12 @@ void base_md_cart_slot_device::get_default_card_software(astring &result)
|
||||
dynamic_buffer rom(len);
|
||||
int type;
|
||||
|
||||
core_fread(m_file, rom, len);
|
||||
core_fread(m_file, &rom[0], len);
|
||||
|
||||
if (genesis_is_SMD(&rom[0x200], len - 0x200))
|
||||
offset = 0x200;
|
||||
|
||||
type = get_cart_type(rom + offset, len - offset);
|
||||
type = get_cart_type(&rom[offset], len - offset);
|
||||
slot_string = md_get_slot(type);
|
||||
|
||||
clear();
|
||||
|
@ -103,9 +103,9 @@ public:
|
||||
virtual void rom_alloc(size_t size, const char *tag);
|
||||
virtual void nvram_alloc(size_t size);
|
||||
virtual UINT16* get_rom_base() { return m_rom; };
|
||||
virtual UINT16* get_nvram_base() { return m_nvram; };
|
||||
virtual UINT16* get_nvram_base() { return &m_nvram[0]; };
|
||||
virtual UINT32 get_rom_size() { return m_rom_size; };
|
||||
virtual UINT32 get_nvram_size() { return m_nvram.bytes(); };
|
||||
virtual UINT32 get_nvram_size() { return m_nvram.size()*sizeof(UINT16); };
|
||||
virtual void set_bank_to_rom(const char *banktag, UINT32 offset) {};
|
||||
|
||||
void save_nvram() { device().save_item(NAME(m_nvram)); }
|
||||
@ -124,7 +124,7 @@ public:
|
||||
// internal state
|
||||
UINT16 *m_rom;
|
||||
UINT32 m_rom_size;
|
||||
dynamic_array<UINT16> m_nvram;
|
||||
std::vector<UINT16> m_nvram;
|
||||
|
||||
UINT8 rom_bank_map[128]; // 64K chunks of rom
|
||||
};
|
||||
|
@ -70,22 +70,26 @@ msx_cart_interface::msx_cart_interface(const machine_config &mconfig, device_t &
|
||||
|
||||
void msx_cart_interface::rom_alloc(UINT32 size)
|
||||
{
|
||||
m_rom.resize_and_clear(size, 0xff);
|
||||
m_rom.resize(size);
|
||||
memset(&m_rom[0], 0xff, size);
|
||||
}
|
||||
|
||||
void msx_cart_interface::rom_vlm5030_alloc(UINT32 size)
|
||||
{
|
||||
m_rom_vlm5030.resize_and_clear(size, 0xff);
|
||||
m_rom_vlm5030.resize(size);
|
||||
memset(&m_rom_vlm5030[0], 0xff, size);
|
||||
}
|
||||
|
||||
void msx_cart_interface::ram_alloc(UINT32 size)
|
||||
{
|
||||
m_ram.resize_and_clear(size);
|
||||
m_ram.resize(size);
|
||||
memset(&m_ram[0], 0x00, size);
|
||||
}
|
||||
|
||||
void msx_cart_interface::sram_alloc(UINT32 size)
|
||||
{
|
||||
m_sram.resize_and_clear(size);
|
||||
m_sram.resize(size);
|
||||
memset(&m_sram[0], 0x00, size);
|
||||
}
|
||||
|
||||
|
||||
|
@ -29,14 +29,14 @@ public:
|
||||
void rom_vlm5030_alloc(UINT32 size);
|
||||
void sram_alloc(UINT32 size);
|
||||
|
||||
UINT8* get_rom_base() { return m_rom; }
|
||||
UINT8* get_rom_vlm5030_base() { return m_rom_vlm5030; }
|
||||
UINT8* get_ram_base() { return m_ram; }
|
||||
UINT8* get_sram_base() { return m_sram; }
|
||||
UINT32 get_rom_size() { return m_rom.count(); }
|
||||
UINT32 get_rom_vlm5030_size() { return m_rom_vlm5030.count(); }
|
||||
UINT32 get_ram_size() { return m_ram.count(); }
|
||||
UINT32 get_sram_size() { return m_sram.count(); }
|
||||
UINT8* get_rom_base() { return &m_rom[0]; }
|
||||
UINT8* get_rom_vlm5030_base() { return &m_rom_vlm5030[0]; }
|
||||
UINT8* get_ram_base() { return &m_ram[0]; }
|
||||
UINT8* get_sram_base() { return &m_sram[0]; }
|
||||
UINT32 get_rom_size() { return m_rom.size(); }
|
||||
UINT32 get_rom_vlm5030_size() { return m_rom_vlm5030.size(); }
|
||||
UINT32 get_ram_size() { return m_ram.size(); }
|
||||
UINT32 get_sram_size() { return m_sram.size(); }
|
||||
|
||||
protected:
|
||||
dynamic_buffer m_rom;
|
||||
|
@ -907,7 +907,7 @@ void msx_cart_keyboard_master::initialize_cartridge()
|
||||
{
|
||||
fatalerror("keyboard_master: Invalid ROM size\n");
|
||||
}
|
||||
m_vlm5030->set_rom(m_rom_vlm5030);
|
||||
m_vlm5030->set_rom(&m_rom_vlm5030[0]);
|
||||
}
|
||||
|
||||
|
||||
|
@ -326,7 +326,7 @@ void msx_slot_cartridge_device::get_default_card_software(astring &result)
|
||||
if (type == NOMAPPER)
|
||||
{
|
||||
// Not identified through hashfile, try automatic detection
|
||||
type = get_cart_type(rom, length);
|
||||
type = get_cart_type(&rom[0], length);
|
||||
}
|
||||
|
||||
if (type > NOMAPPER)
|
||||
|
@ -69,7 +69,7 @@ void msx_slot_panasonic08_device::device_start()
|
||||
|
||||
m_sram.resize(0x4000);
|
||||
|
||||
m_nvram->set_base((UINT8*)m_sram, 0x4000);
|
||||
m_nvram->set_base(&m_sram[0], 0x4000);
|
||||
|
||||
m_rom = m_rom_region->base() + m_region_offset;
|
||||
|
||||
@ -87,7 +87,7 @@ void msx_slot_panasonic08_device::map_bank(int bank)
|
||||
if (m_selected_bank[bank] >= 0x80 && m_selected_bank[bank] < 0x84) // Are these banks were sram is present? Mirroring?
|
||||
{
|
||||
logerror("panasonic08: mapping bank %d to sram\n", bank);
|
||||
m_bank_base[bank] = m_sram + (((m_selected_bank[bank] & 0x7f) * 0x2000) & 0x3fff);
|
||||
m_bank_base[bank] = &m_sram[((m_selected_bank[bank] & 0x7f) * 0x2000) & 0x3fff];
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -24,7 +24,7 @@ public:
|
||||
virtual DECLARE_WRITE8_MEMBER(write);
|
||||
|
||||
private:
|
||||
dynamic_array<UINT8> m_ram;
|
||||
std::vector<UINT8> m_ram;
|
||||
};
|
||||
|
||||
|
||||
|
@ -32,7 +32,7 @@ void msx_slot_ram_mm_device::device_start()
|
||||
for ( int i = 0; i < 4; i++ )
|
||||
{
|
||||
m_bank_selected[i] = 3 -i;
|
||||
m_bank_base[i] = m_ram + 0x4000 * m_bank_selected[i];
|
||||
m_bank_base[i] = &m_ram[0x4000 * m_bank_selected[i]];
|
||||
}
|
||||
|
||||
save_item(NAME(m_ram));
|
||||
@ -50,7 +50,7 @@ void msx_slot_ram_mm_device::restore_banks()
|
||||
{
|
||||
for ( int i = 0; i < 3; i++ )
|
||||
{
|
||||
m_bank_base[i] = m_ram + 0x4000 * ( m_bank_selected[i] & m_bank_mask );
|
||||
m_bank_base[i] = &m_ram[0x4000 * ( m_bank_selected[i] & m_bank_mask )];
|
||||
}
|
||||
}
|
||||
|
||||
@ -74,5 +74,5 @@ WRITE8_MEMBER(msx_slot_ram_mm_device::write_mapper_bank)
|
||||
offset &= 3;
|
||||
|
||||
m_bank_selected[offset] = data;
|
||||
m_bank_base[offset] = m_ram + 0x4000 * ( m_bank_selected[offset] & m_bank_mask );
|
||||
m_bank_base[offset] = &m_ram[0x4000 * ( m_bank_selected[offset] & m_bank_mask )];
|
||||
}
|
||||
|
@ -30,7 +30,7 @@ public:
|
||||
void restore_banks();
|
||||
|
||||
private:
|
||||
dynamic_array<UINT8> m_ram;
|
||||
std::vector<UINT8> m_ram;
|
||||
UINT32 m_total_size;
|
||||
UINT8 m_bank_mask;
|
||||
UINT8 m_bank_selected[4];
|
||||
|
@ -54,7 +54,7 @@ void ngbootleg_prot_device::neogeo_bootleg_cx_decrypt(UINT8*sprrom, UINT32 sprro
|
||||
UINT8 *rom = sprrom;
|
||||
dynamic_buffer buf( cx_size );
|
||||
|
||||
memcpy( buf, rom, cx_size );
|
||||
memcpy( &buf[0], rom, cx_size );
|
||||
|
||||
for( i = 0; i < cx_size / 0x40; i++ ){
|
||||
memcpy( &rom[ i * 0x40 ], &buf[ (i ^ 1) * 0x40 ], 0x40 );
|
||||
@ -71,7 +71,7 @@ void ngbootleg_prot_device::neogeo_bootleg_sx_decrypt(UINT8* fixed, UINT32 fixed
|
||||
if (value == 1)
|
||||
{
|
||||
dynamic_buffer buf( sx_size );
|
||||
memcpy( buf, rom, sx_size );
|
||||
memcpy( &buf[0], rom, sx_size );
|
||||
|
||||
for( i = 0; i < sx_size; i += 0x10 )
|
||||
{
|
||||
@ -93,14 +93,14 @@ void ngbootleg_prot_device::neogeo_bootleg_sx_decrypt(UINT8* fixed, UINT32 fixed
|
||||
void ngbootleg_prot_device::kof97oro_px_decode(UINT8* cpurom, UINT32 cpurom_size)
|
||||
{
|
||||
int i;
|
||||
dynamic_array<UINT16> tmp( 0x500000 );
|
||||
std::vector<UINT16> tmp( 0x500000 );
|
||||
UINT16 *src = (UINT16*)cpurom;
|
||||
|
||||
for (i = 0; i < 0x500000/2; i++) {
|
||||
tmp[i] = src[i ^ 0x7ffef];
|
||||
}
|
||||
|
||||
memcpy (src, tmp, 0x500000);
|
||||
memcpy (src, &tmp[0], 0x500000);
|
||||
}
|
||||
|
||||
|
||||
@ -175,8 +175,8 @@ void ngbootleg_prot_device::decrypt_kof10th(UINT8* cpurom, UINT32 cpurom_size)
|
||||
dynamic_buffer dst(0x900000);
|
||||
UINT8 *src = cpurom;
|
||||
|
||||
memcpy(dst + 0x000000, src + 0x700000, 0x100000); // Correct (Verified in Uni-bios)
|
||||
memcpy(dst + 0x100000, src + 0x000000, 0x800000);
|
||||
memcpy(&dst[0x000000], src + 0x700000, 0x100000); // Correct (Verified in Uni-bios)
|
||||
memcpy(&dst[0x100000], src + 0x000000, 0x800000);
|
||||
|
||||
for (i = 0; i < 0x900000; i++) {
|
||||
j = BITSWAP24(i,23,22,21,20,19,18,17,16,15,14,13,12,11,2,9,8,7,1,5,4,3,10,6,0);
|
||||
@ -200,7 +200,7 @@ void ngbootleg_prot_device::decrypt_kof10th(UINT8* cpurom, UINT32 cpurom_size)
|
||||
void ngbootleg_prot_device::kf10thep_px_decrypt(UINT8* cpurom, UINT32 cpurom_size)
|
||||
{
|
||||
UINT16 *rom = (UINT16*)cpurom;
|
||||
dynamic_array<UINT16> buf(0x100000/2);
|
||||
std::vector<UINT16> buf(0x100000/2);
|
||||
|
||||
memcpy(&buf[0x000000/2], &rom[0x060000/2], 0x20000);
|
||||
memcpy(&buf[0x020000/2], &rom[0x100000/2], 0x20000);
|
||||
@ -212,7 +212,7 @@ void ngbootleg_prot_device::kf10thep_px_decrypt(UINT8* cpurom, UINT32 cpurom_siz
|
||||
memcpy(&buf[0x0e0000/2], &rom[0x1a0000/2], 0x20000);
|
||||
memcpy(&buf[0x0002e0/2], &rom[0x0402e0/2], 0x6a); // copy banked code to a new memory region
|
||||
memcpy(&buf[0x0f92bc/2], &rom[0x0492bc/2], 0xb9e); // copy banked code to a new memory region
|
||||
memcpy(rom, buf, 0x100000);
|
||||
memcpy(rom, &buf[0], 0x100000);
|
||||
|
||||
for (int i = 0xf92bc/2; i < 0xf9e58/2; i++)
|
||||
{
|
||||
@ -239,9 +239,9 @@ void ngbootleg_prot_device::kf2k5uni_px_decrypt(UINT8* cpurom, UINT32 cpurom_siz
|
||||
for (j = 0; j < 0x80; j+=2)
|
||||
{
|
||||
ofst = BITSWAP8(j, 0, 3, 4, 5, 6, 1, 2, 7);
|
||||
memcpy(dst + j, src + i + ofst, 2);
|
||||
memcpy(&dst[j], src + i + ofst, 2);
|
||||
}
|
||||
memcpy(src + i, dst, 0x80);
|
||||
memcpy(src + i, &dst[0], 0x80);
|
||||
}
|
||||
|
||||
memcpy(src, src + 0x600000, 0x100000); // Seems to be the same as kof10th
|
||||
@ -295,13 +295,13 @@ void ngbootleg_prot_device::kof2002b_gfx_decrypt(UINT8 *src, int size)
|
||||
|
||||
for ( i = 0; i < size; i+=0x10000 )
|
||||
{
|
||||
memcpy( dst, src+i, 0x10000 );
|
||||
memcpy( &dst[0], src+i, 0x10000 );
|
||||
|
||||
for ( j = 0; j < 0x200; j++ )
|
||||
{
|
||||
int n = (j & 0x38) >> 3;
|
||||
int ofst = BITSWAP16(j, 15, 14, 13, 12, 11, 10, 9, t[n][0], t[n][1], t[n][2], 5, 4, 3, t[n][3], t[n][4], t[n][5]);
|
||||
memcpy( src+i+ofst*128, dst+j*128, 128 );
|
||||
memcpy( src+i+ofst*128, &dst[j*128], 128 );
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -339,11 +339,11 @@ void ngbootleg_prot_device::kf2k2mp2_px_decrypt(UINT8* cpurom, UINT32 cpurom_siz
|
||||
UINT8 *src = cpurom;
|
||||
dynamic_buffer dst(0x600000);
|
||||
|
||||
memcpy (dst + 0x000000, src + 0x1C0000, 0x040000);
|
||||
memcpy (dst + 0x040000, src + 0x140000, 0x080000);
|
||||
memcpy (dst + 0x0C0000, src + 0x100000, 0x040000);
|
||||
memcpy (dst + 0x100000, src + 0x200000, 0x400000);
|
||||
memcpy (src + 0x000000, dst + 0x000000, 0x600000);
|
||||
memcpy (&dst[0x000000], &src[0x1C0000], 0x040000);
|
||||
memcpy (&dst[0x040000], &src[0x140000], 0x080000);
|
||||
memcpy (&dst[0x0C0000], &src[0x100000], 0x040000);
|
||||
memcpy (&dst[0x100000], &src[0x200000], 0x400000);
|
||||
memcpy (&src[0x000000], &dst[0x000000], 0x600000);
|
||||
}
|
||||
|
||||
|
||||
@ -366,9 +366,9 @@ void ngbootleg_prot_device::cthd2003_neogeo_gfx_address_fix_do(UINT8* sprrom, UI
|
||||
+(((j&4)>>2)<<bit2shift)
|
||||
+(((j&8)>>3)<<bit3shift);
|
||||
|
||||
memcpy(rom+j*tilesize, realrom+offset*tilesize, tilesize);
|
||||
memcpy(&rom[j*tilesize], realrom+offset*tilesize, tilesize);
|
||||
}
|
||||
memcpy(realrom,rom,tilesize*16);
|
||||
memcpy(realrom,&rom[0],tilesize*16);
|
||||
realrom+=16*tilesize;
|
||||
}
|
||||
}
|
||||
@ -412,18 +412,18 @@ void ngbootleg_prot_device::decrypt_cthd2003(UINT8* sprrom, UINT32 sprrom_size,
|
||||
UINT8 *romdata = fixedrom;
|
||||
dynamic_buffer tmp(8*128*128);
|
||||
|
||||
memcpy(tmp+8*0*128, romdata+8*0*128, 8*32*128);
|
||||
memcpy(tmp+8*32*128, romdata+8*64*128, 8*32*128);
|
||||
memcpy(tmp+8*64*128, romdata+8*32*128, 8*32*128);
|
||||
memcpy(tmp+8*96*128, romdata+8*96*128, 8*32*128);
|
||||
memcpy(romdata, tmp, 8*128*128);
|
||||
memcpy(&tmp[8*0*128], romdata+8*0*128, 8*32*128);
|
||||
memcpy(&tmp[8*32*128], romdata+8*64*128, 8*32*128);
|
||||
memcpy(&tmp[8*64*128], romdata+8*32*128, 8*32*128);
|
||||
memcpy(&tmp[8*96*128], romdata+8*96*128, 8*32*128);
|
||||
memcpy(romdata, &tmp[0], 8*128*128);
|
||||
|
||||
romdata = audiorom+0x10000;
|
||||
memcpy(tmp+8*0*128, romdata+8*0*128, 8*32*128);
|
||||
memcpy(tmp+8*32*128, romdata+8*64*128, 8*32*128);
|
||||
memcpy(tmp+8*64*128, romdata+8*32*128, 8*32*128);
|
||||
memcpy(tmp+8*96*128, romdata+8*96*128, 8*32*128);
|
||||
memcpy(romdata, tmp, 8*128*128);
|
||||
memcpy(&tmp[8*0*128], romdata+8*0*128, 8*32*128);
|
||||
memcpy(&tmp[8*32*128], romdata+8*64*128, 8*32*128);
|
||||
memcpy(&tmp[8*64*128], romdata+8*32*128, 8*32*128);
|
||||
memcpy(&tmp[8*96*128], romdata+8*96*128, 8*32*128);
|
||||
memcpy(romdata, &tmp[0], 8*128*128);
|
||||
|
||||
memcpy(romdata-0x10000,romdata,0x10000);
|
||||
|
||||
@ -498,7 +498,7 @@ void ngbootleg_prot_device::ct2k3sp_sx_decrypt( UINT8* fixedrom, UINT32 fixedrom
|
||||
int i;
|
||||
int ofst;
|
||||
|
||||
memcpy( buf, rom, rom_size );
|
||||
memcpy( &buf[0], rom, rom_size );
|
||||
|
||||
for( i = 0; i < rom_size; i++ ){
|
||||
ofst = BITSWAP24( (i & 0x1ffff), 23, 22, 21, 20, 19, 18, 17, 3,
|
||||
@ -510,7 +510,7 @@ void ngbootleg_prot_device::ct2k3sp_sx_decrypt( UINT8* fixedrom, UINT32 fixedrom
|
||||
rom[ i ] = buf[ ofst ];
|
||||
}
|
||||
|
||||
memcpy( buf, rom, rom_size );
|
||||
memcpy( &buf[0], rom, rom_size );
|
||||
|
||||
memcpy( &rom[ 0x08000 ], &buf[ 0x10000 ], 0x8000 );
|
||||
memcpy( &rom[ 0x10000 ], &buf[ 0x08000 ], 0x8000 );
|
||||
@ -522,11 +522,11 @@ void ngbootleg_prot_device::decrypt_ct2k3sp(UINT8* sprrom, UINT32 sprrom_size, U
|
||||
{
|
||||
UINT8 *romdata = audiorom+0x10000;
|
||||
dynamic_buffer tmp(8*128*128);
|
||||
memcpy(tmp+8*0*128, romdata+8*0*128, 8*32*128);
|
||||
memcpy(tmp+8*32*128, romdata+8*64*128, 8*32*128);
|
||||
memcpy(tmp+8*64*128, romdata+8*32*128, 8*32*128);
|
||||
memcpy(tmp+8*96*128, romdata+8*96*128, 8*32*128);
|
||||
memcpy(romdata, tmp, 8*128*128);
|
||||
memcpy(&tmp[8*0*128], romdata+8*0*128, 8*32*128);
|
||||
memcpy(&tmp[8*32*128], romdata+8*64*128, 8*32*128);
|
||||
memcpy(&tmp[8*64*128], romdata+8*32*128, 8*32*128);
|
||||
memcpy(&tmp[8*96*128], romdata+8*96*128, 8*32*128);
|
||||
memcpy(romdata, &tmp[0], 8*128*128);
|
||||
|
||||
memcpy(romdata-0x10000,romdata,0x10000);
|
||||
ct2k3sp_sx_decrypt(fixedrom, fixedrom_size);
|
||||
@ -541,11 +541,11 @@ void ngbootleg_prot_device::decrypt_ct2k3sa(UINT8* sprrom, UINT32 sprrom_size, U
|
||||
{
|
||||
UINT8 *romdata = audiorom+0x10000;
|
||||
dynamic_buffer tmp(8*128*128);
|
||||
memcpy(tmp+8*0*128, romdata+8*0*128, 8*32*128);
|
||||
memcpy(tmp+8*32*128, romdata+8*64*128, 8*32*128);
|
||||
memcpy(tmp+8*64*128, romdata+8*32*128, 8*32*128);
|
||||
memcpy(tmp+8*96*128, romdata+8*96*128, 8*32*128);
|
||||
memcpy(romdata, tmp, 8*128*128);
|
||||
memcpy(&tmp[8*0*128], romdata+8*0*128, 8*32*128);
|
||||
memcpy(&tmp[8*32*128], romdata+8*64*128, 8*32*128);
|
||||
memcpy(&tmp[8*64*128], romdata+8*32*128, 8*32*128);
|
||||
memcpy(&tmp[8*96*128], romdata+8*96*128, 8*32*128);
|
||||
memcpy(romdata, &tmp[0], 8*128*128);
|
||||
|
||||
memcpy(romdata-0x10000,romdata,0x10000);
|
||||
cthd2003_c(sprrom,sprrom_size, 0);
|
||||
@ -600,11 +600,11 @@ void ngbootleg_prot_device::decrypt_kof2k4se_68k(UINT8* cpurom, UINT32 cpurom_si
|
||||
dynamic_buffer dst(0x400000);
|
||||
int i;
|
||||
static const int sec[] = {0x300000,0x200000,0x100000,0x000000};
|
||||
memcpy(dst,src,0x400000);
|
||||
memcpy(&dst[0],src,0x400000);
|
||||
|
||||
for(i = 0; i < 4; ++i)
|
||||
{
|
||||
memcpy(src+i*0x100000,dst+sec[i],0x100000);
|
||||
memcpy(src+i*0x100000,&dst[sec[i]],0x100000);
|
||||
}
|
||||
}
|
||||
|
||||
@ -632,12 +632,12 @@ void ngbootleg_prot_device::lans2004_decrypt_68k(UINT8* cpurom, UINT32 cpurom_si
|
||||
dynamic_buffer dst(0x600000);
|
||||
|
||||
for (i = 0; i < 8; i++)
|
||||
memcpy (dst + i * 0x20000, src + sec[i] * 0x20000, 0x20000);
|
||||
memcpy (&dst[i * 0x20000], src + sec[i] * 0x20000, 0x20000);
|
||||
|
||||
memcpy (dst + 0x0BBB00, src + 0x045B00, 0x001710);
|
||||
memcpy (dst + 0x02FFF0, src + 0x1A92BE, 0x000010);
|
||||
memcpy (dst + 0x100000, src + 0x200000, 0x400000);
|
||||
memcpy (src, dst, 0x600000);
|
||||
memcpy (&dst[0x0BBB00], src + 0x045B00, 0x001710);
|
||||
memcpy (&dst[0x02FFF0], src + 0x1A92BE, 0x000010);
|
||||
memcpy (&dst[0x100000], src + 0x200000, 0x400000);
|
||||
memcpy (src, &dst[0], 0x600000);
|
||||
}
|
||||
|
||||
for (i = 0xBBB00/2; i < 0xBE000/2; i++) {
|
||||
@ -737,7 +737,7 @@ void ngbootleg_prot_device::svcboot_cx_decrypt(UINT8*sprrom, UINT32 sprrom_size)
|
||||
UINT8 *src = sprrom;
|
||||
dynamic_buffer dst( size );
|
||||
int ofst;
|
||||
memcpy( dst, src, size );
|
||||
memcpy( &dst[0], src, size );
|
||||
for( i = 0; i < size / 0x80; i++ ){
|
||||
int idx = idx_tbl[ (i & 0xf00) >> 8 ];
|
||||
int bit0 = bitswap4_tbl[ idx ][ 0 ];
|
||||
@ -764,7 +764,7 @@ void ngbootleg_prot_device::svcplus_px_decrypt(UINT8* cpurom, UINT32 cpurom_size
|
||||
dynamic_buffer dst( size );
|
||||
int i;
|
||||
int ofst;
|
||||
memcpy( dst, src, size );
|
||||
memcpy( &dst[0], src, size );
|
||||
for( i = 0; i < size / 2; i++ ){
|
||||
ofst = BITSWAP24( (i & 0xfffff), 0x17, 0x16, 0x15, 0x14, 0x13, 0x00, 0x01, 0x02,
|
||||
0x0f, 0x0e, 0x0d, 0x0c, 0x0b, 0x0a, 0x09, 0x08,
|
||||
@ -773,7 +773,7 @@ void ngbootleg_prot_device::svcplus_px_decrypt(UINT8* cpurom, UINT32 cpurom_size
|
||||
ofst += (i & 0xff00000);
|
||||
memcpy( &src[ i * 0x02 ], &dst[ ofst * 0x02 ], 0x02 );
|
||||
}
|
||||
memcpy( dst, src, size );
|
||||
memcpy( &dst[0], src, size );
|
||||
for( i = 0; i < 6; i++ ){
|
||||
memcpy( &src[ i * 0x100000 ], &dst[ sec[ i ] * 0x100000 ], 0x100000 );
|
||||
}
|
||||
@ -799,7 +799,7 @@ void ngbootleg_prot_device::svcplusa_px_decrypt(UINT8* cpurom, UINT32 cpurom_siz
|
||||
int size = cpurom_size;
|
||||
UINT8 *src = cpurom;
|
||||
dynamic_buffer dst( size );
|
||||
memcpy( dst, src, size );
|
||||
memcpy( &dst[0], src, size );
|
||||
for( i = 0; i < 6; i++ ){
|
||||
memcpy( &src[ i * 0x100000 ], &dst[ sec[ i ] * 0x100000 ], 0x100000 );
|
||||
}
|
||||
@ -819,7 +819,7 @@ void ngbootleg_prot_device::svcsplus_px_decrypt(UINT8* cpurom, UINT32 cpurom_siz
|
||||
dynamic_buffer dst( size );
|
||||
int i;
|
||||
int ofst;
|
||||
memcpy( dst, src, size );
|
||||
memcpy( &dst[0], src, size );
|
||||
for( i = 0; i < size / 2; i++ ){
|
||||
ofst = BITSWAP16( (i & 0x007fff), 0x0f, 0x00, 0x08, 0x09, 0x0b, 0x0a, 0x0c, 0x0d,
|
||||
0x04, 0x03, 0x01, 0x07, 0x06, 0x02, 0x05, 0x0e );
|
||||
@ -898,7 +898,7 @@ void ngbootleg_prot_device::kf2k3bl_px_decrypt(UINT8* cpurom, UINT32 cpurom_size
|
||||
int rom_size = 0x800000;
|
||||
UINT8 *rom = cpurom;
|
||||
dynamic_buffer buf( rom_size );
|
||||
memcpy( buf, rom, rom_size );
|
||||
memcpy( &buf[0], rom, rom_size );
|
||||
|
||||
for( i = 0; i < rom_size / 0x100000; i++ ){
|
||||
memcpy( &rom[ i * 0x100000 ], &buf[ sec[ i ] * 0x100000 ], 0x100000 );
|
||||
@ -922,14 +922,14 @@ void ngbootleg_prot_device::kf2k3bl_install_protection(cpu_device* maincpu, neog
|
||||
|
||||
void ngbootleg_prot_device::kf2k3pl_px_decrypt(UINT8* cpurom, UINT32 cpurom_size)
|
||||
{
|
||||
dynamic_array<UINT16> tmp(0x100000/2);
|
||||
std::vector<UINT16> tmp(0x100000/2);
|
||||
UINT16*rom16 = (UINT16*)cpurom;
|
||||
int j;
|
||||
int i;
|
||||
|
||||
for (i = 0;i < 0x700000/2;i+=0x100000/2)
|
||||
{
|
||||
memcpy(tmp,&rom16[i],0x100000);
|
||||
memcpy(&tmp[0],&rom16[i],0x100000);
|
||||
for (j = 0;j < 0x100000/2;j++)
|
||||
rom16[i+j] = tmp[BITSWAP24(j,23,22,21,20,19,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18)];
|
||||
}
|
||||
@ -989,7 +989,7 @@ void ngbootleg_prot_device::samsho5b_px_decrypt(UINT8* cpurom, UINT32 cpurom_siz
|
||||
int ofst;
|
||||
int i;
|
||||
|
||||
memcpy( buf, rom, px_size );
|
||||
memcpy( &buf[0], rom, px_size );
|
||||
|
||||
for( i = 0; i < px_size / 2; i++ ){
|
||||
ofst = BITSWAP8( (i & 0x000ff), 7, 6, 5, 4, 3, 0, 1, 2 );
|
||||
@ -999,7 +999,7 @@ void ngbootleg_prot_device::samsho5b_px_decrypt(UINT8* cpurom, UINT32 cpurom_siz
|
||||
memcpy( &rom[ i * 2 ], &buf[ ofst * 2 ], 0x02 );
|
||||
}
|
||||
|
||||
memcpy( buf, rom, px_size );
|
||||
memcpy( &buf[0], rom, px_size );
|
||||
|
||||
memcpy( &rom[ 0x000000 ], &buf[ 0x700000 ], 0x100000 );
|
||||
memcpy( &rom[ 0x100000 ], &buf[ 0x000000 ], 0x700000 );
|
||||
@ -1028,7 +1028,7 @@ void ngbootleg_prot_device::matrimbl_decrypt(UINT8* sprrom, UINT32 sprrom_size,
|
||||
UINT8 *rom = audiorom+0x10000;
|
||||
dynamic_buffer buf( 0x20000 );
|
||||
int i, j=0;
|
||||
memcpy( buf, rom, 0x20000 );
|
||||
memcpy( &buf[0], rom, 0x20000 );
|
||||
for( i=0x00000; i<0x20000; i++ )
|
||||
{
|
||||
if ( i&0x10000 )
|
||||
|
@ -504,8 +504,8 @@ void cmc_prot_device::neogeo_gfx_decrypt(UINT8* rom, UINT32 rom_size, int extra_
|
||||
// Data xor
|
||||
for (rpos = 0;rpos < rom_size/4;rpos++)
|
||||
{
|
||||
decrypt(buf+4*rpos+0, buf+4*rpos+3, rom[4*rpos+0], rom[4*rpos+3], type0_t03, type0_t12, type1_t03, rpos, (rpos>>8) & 1);
|
||||
decrypt(buf+4*rpos+1, buf+4*rpos+2, rom[4*rpos+1], rom[4*rpos+2], type0_t12, type0_t03, type1_t12, rpos, ((rpos>>16) ^ address_16_23_xor2[(rpos>>8) & 0xff]) & 1);
|
||||
decrypt(&buf[4*rpos+0], &buf[4*rpos+3], rom[4*rpos+0], rom[4*rpos+3], type0_t03, type0_t12, type1_t03, rpos, (rpos>>8) & 1);
|
||||
decrypt(&buf[4*rpos+1], &buf[4*rpos+2], rom[4*rpos+1], rom[4*rpos+2], type0_t12, type0_t03, type1_t12, rpos, ((rpos>>16) ^ address_16_23_xor2[(rpos>>8) & 0xff]) & 1);
|
||||
}
|
||||
|
||||
// Address xor
|
||||
@ -747,7 +747,7 @@ void cmc_prot_device::neogeo_cmc50_m1_decrypt(UINT8* romcrypt, UINT32 romcrypt_s
|
||||
buffer[i] = rom[m1_address_scramble(i,key)];
|
||||
}
|
||||
|
||||
memcpy(rom,buffer,rom_size);
|
||||
memcpy(rom,&buffer[0],rom_size);
|
||||
|
||||
memcpy(rom2,rom,0x10000);
|
||||
memcpy(rom2+0x10000,rom,0x80000);
|
||||
|
@ -29,10 +29,10 @@ void kof2002_prot_device::kof2002_decrypt_68k(UINT8* cpurom, UINT32 cpurom_size)
|
||||
static const int sec[]={0x100000,0x280000,0x300000,0x180000,0x000000,0x380000,0x200000,0x080000};
|
||||
UINT8 *src = cpurom+0x100000;
|
||||
dynamic_buffer dst(0x400000);
|
||||
memcpy( dst, src, 0x400000 );
|
||||
memcpy( &dst[0], src, 0x400000 );
|
||||
for( i=0; i<8; ++i )
|
||||
{
|
||||
memcpy( src+i*0x80000, dst+sec[i], 0x80000 );
|
||||
memcpy( src+i*0x80000, &dst[sec[i]], 0x80000 );
|
||||
}
|
||||
}
|
||||
|
||||
@ -43,10 +43,10 @@ void kof2002_prot_device::matrim_decrypt_68k(UINT8* cpurom, UINT32 cpurom_size)
|
||||
static const int sec[]={0x100000,0x280000,0x300000,0x180000,0x000000,0x380000,0x200000,0x080000};
|
||||
UINT8 *src = cpurom+0x100000;
|
||||
dynamic_buffer dst(0x400000);
|
||||
memcpy( dst, src, 0x400000);
|
||||
memcpy( &dst[0], src, 0x400000);
|
||||
for( i=0; i<8; ++i )
|
||||
{
|
||||
memcpy( src+i*0x80000, dst+sec[i], 0x80000 );
|
||||
memcpy( src+i*0x80000, &dst[sec[i]], 0x80000 );
|
||||
}
|
||||
}
|
||||
|
||||
@ -58,10 +58,10 @@ void kof2002_prot_device::samsho5_decrypt_68k(UINT8* cpurom, UINT32 cpurom_size)
|
||||
UINT8 *src = cpurom;
|
||||
dynamic_buffer dst(0x800000);
|
||||
|
||||
memcpy( dst, src, 0x800000 );
|
||||
memcpy( &dst[0], src, 0x800000 );
|
||||
for( i=0; i<16; ++i )
|
||||
{
|
||||
memcpy( src+i*0x80000, dst+sec[i], 0x80000 );
|
||||
memcpy( src+i*0x80000, &dst[sec[i]], 0x80000 );
|
||||
}
|
||||
}
|
||||
|
||||
@ -73,9 +73,9 @@ void kof2002_prot_device::samsh5sp_decrypt_68k(UINT8* cpurom, UINT32 cpurom_size
|
||||
UINT8 *src = cpurom;
|
||||
dynamic_buffer dst(0x800000);
|
||||
|
||||
memcpy( dst, src, 0x800000 );
|
||||
memcpy( &dst[0], src, 0x800000 );
|
||||
for( i=0; i<16; ++i )
|
||||
{
|
||||
memcpy( src+i*0x80000, dst+sec[i], 0x80000 );
|
||||
memcpy( src+i*0x80000, &dst[sec[i]], 0x80000 );
|
||||
}
|
||||
}
|
||||
|
@ -33,7 +33,7 @@ void kof98_prot_device::kof98_decrypt_68k(UINT8* cpurom, UINT32 cpurom_size)
|
||||
static const UINT32 sec[]={0x000000,0x100000,0x000004,0x100004,0x10000a,0x00000a,0x10000e,0x00000e};
|
||||
static const UINT32 pos[]={0x000,0x004,0x00a,0x00e};
|
||||
|
||||
memcpy( dst, src, 0x200000);
|
||||
memcpy( &dst[0], src, 0x200000);
|
||||
for( i=0x800; i<0x100000; i+=0x200 )
|
||||
{
|
||||
for( j=0; j<0x100; j+=0x10 )
|
||||
|
@ -49,15 +49,15 @@ void kog_prot_device::kog_px_decrypt(UINT8* cpurom, UINT32 cpurom_size)
|
||||
static const int sec[] = { 0x3, 0x8, 0x7, 0xC, 0x1, 0xA, 0x6, 0xD };
|
||||
|
||||
for (i = 0; i < 8; i++){
|
||||
memcpy (dst + i * 0x20000, src + sec[i] * 0x20000, 0x20000);
|
||||
memcpy (&dst[i * 0x20000], src + sec[i] * 0x20000, 0x20000);
|
||||
}
|
||||
|
||||
memcpy (dst + 0x0007A6, src + 0x0407A6, 0x000006);
|
||||
memcpy (dst + 0x0007C6, src + 0x0407C6, 0x000006);
|
||||
memcpy (dst + 0x0007E6, src + 0x0407E6, 0x000006);
|
||||
memcpy (dst + 0x090000, src + 0x040000, 0x004000);
|
||||
memcpy (dst + 0x100000, src + 0x200000, 0x400000);
|
||||
memcpy (src, dst, 0x600000);
|
||||
memcpy (&dst[0x0007A6], src + 0x0407A6, 0x000006);
|
||||
memcpy (&dst[0x0007C6], src + 0x0407C6, 0x000006);
|
||||
memcpy (&dst[0x0007E6], src + 0x0407E6, 0x000006);
|
||||
memcpy (&dst[0x090000], src + 0x040000, 0x004000);
|
||||
memcpy (&dst[0x100000], src + 0x200000, 0x400000);
|
||||
memcpy (src, &dst[0], 0x600000);
|
||||
|
||||
for (i = 0x90000/2; i < 0x94000/2; i++){
|
||||
if (((rom[i]&0xFFBF) == 0x4EB9 || rom[i] == 0x43F9) && !rom[i + 1])
|
||||
|
@ -23,7 +23,7 @@ static UINT32 get_region_mask(UINT8* rgn, UINT32 rgn_size)
|
||||
return mask;
|
||||
}
|
||||
|
||||
UINT32 neogeohelper_optimize_sprite_data(dynamic_array<UINT8> &spritegfx, UINT8* region_sprites, UINT32 region_sprites_size)
|
||||
UINT32 neogeohelper_optimize_sprite_data(std::vector<UINT8> &spritegfx, UINT8* region_sprites, UINT32 region_sprites_size)
|
||||
{
|
||||
/* convert the sprite graphics data into a format that
|
||||
allows faster blitting */
|
||||
@ -36,7 +36,7 @@ UINT32 neogeohelper_optimize_sprite_data(dynamic_array<UINT8> &spritegfx, UINT8*
|
||||
UINT32 spritegfx_address_mask = mask;
|
||||
|
||||
src = region_sprites;
|
||||
dest = spritegfx;
|
||||
dest = &spritegfx[0];
|
||||
|
||||
for (unsigned i = 0; i < region_sprites_size; i += 0x80, src += 0x80)
|
||||
{
|
||||
|
@ -1,2 +1,2 @@
|
||||
|
||||
extern UINT32 neogeohelper_optimize_sprite_data(dynamic_array<UINT8> &spritegfx, UINT8* region_sprites, UINT32 region_sprites_size);
|
||||
extern UINT32 neogeohelper_optimize_sprite_data(std::vector<UINT8> &spritegfx, UINT8* region_sprites, UINT32 region_sprites_size);
|
||||
|
@ -23,44 +23,44 @@ public:
|
||||
virtual void decrypt_all(DECRYPT_ALL_PARAMS) { };
|
||||
virtual int get_fixed_bank_type(void) { return 0; }
|
||||
|
||||
void rom_alloc(UINT32 size) { if (m_rom == NULL) m_rom.resize(size/sizeof(UINT16)); }
|
||||
UINT16* get_rom_base() { return m_rom; }
|
||||
UINT32 get_rom_size() { return m_rom.bytes(); }
|
||||
void rom_alloc(UINT32 size) { m_rom.resize(size/sizeof(UINT16)); }
|
||||
UINT16* get_rom_base() { return &m_rom[0]; }
|
||||
UINT32 get_rom_size() { return m_rom.size()*sizeof(UINT16); }
|
||||
|
||||
void fixed_alloc(UINT32 size) { if (m_fixed == NULL) m_fixed.resize(size/sizeof(UINT8)); }
|
||||
UINT8* get_fixed_base() { return m_fixed; }
|
||||
UINT32 get_fixed_size() { return m_fixed.bytes(); }
|
||||
void fixed_alloc(UINT32 size) { m_fixed.resize(size); }
|
||||
UINT8* get_fixed_base() { return &m_fixed[0]; }
|
||||
UINT32 get_fixed_size() { return m_fixed.size(); }
|
||||
|
||||
void audio_alloc(UINT32 size) { if (m_audio == NULL) m_audio.resize(size/sizeof(UINT8)); }
|
||||
UINT8* get_audio_base() { return m_audio; }
|
||||
UINT32 get_audio_size() { return m_audio.bytes(); }
|
||||
void audio_alloc(UINT32 size) { m_audio.resize(size); }
|
||||
UINT8* get_audio_base() { return &m_audio[0]; }
|
||||
UINT32 get_audio_size() { return m_audio.size(); }
|
||||
|
||||
void audiocrypt_alloc(UINT32 size) { if (m_audiocrypt == NULL) m_audiocrypt.resize(size/sizeof(UINT8)); }
|
||||
UINT8* get_audiocrypt_base() { return m_audiocrypt; }
|
||||
UINT32 get_audiocrypt_size() { return m_audiocrypt.bytes(); }
|
||||
void audiocrypt_alloc(UINT32 size) { m_audiocrypt.resize(size); }
|
||||
UINT8* get_audiocrypt_base() { return &m_audiocrypt[0]; }
|
||||
UINT32 get_audiocrypt_size() { return m_audiocrypt.size(); }
|
||||
|
||||
void sprites_alloc(UINT32 size) { if (m_sprites == NULL) m_sprites.resize(size/sizeof(UINT8)); }
|
||||
UINT8* get_sprites_base() { return m_sprites; }
|
||||
UINT32 get_sprites_size() { return m_sprites.bytes(); }
|
||||
UINT8* get_sprites_optimized() { return m_sprites_optimized; }
|
||||
void sprites_alloc(UINT32 size) { m_sprites.resize(size); }
|
||||
UINT8* get_sprites_base() { return &m_sprites[0]; }
|
||||
UINT32 get_sprites_size() { return m_sprites.size(); }
|
||||
UINT8* get_sprites_optimized() { return &m_sprites_optimized[0]; }
|
||||
UINT32 get_sprites_addrmask() { return m_sprite_gfx_address_mask; }
|
||||
dynamic_array<UINT8>& get_sprites_optimized_arr() { return m_sprites_optimized; }
|
||||
std::vector<UINT8>& get_sprites_optimized_arr() { return m_sprites_optimized; }
|
||||
|
||||
void ym_alloc(UINT32 size) { if (m_ym == NULL) m_ym.resize(size/sizeof(UINT8)); }
|
||||
UINT8* get_ym_base() { return m_ym; }
|
||||
UINT32 get_ym_size() { return m_ym.bytes(); }
|
||||
void ym_alloc(UINT32 size) { m_ym.resize(size); }
|
||||
UINT8* get_ym_base() { return &m_ym[0]; }
|
||||
UINT32 get_ym_size() { return m_ym.size(); }
|
||||
|
||||
void ymdelta_alloc(UINT32 size) { if (m_ymdelta == NULL) m_ymdelta.resize(size/sizeof(UINT8)); }
|
||||
UINT8* get_ymdelta_base() { return m_ymdelta; }
|
||||
UINT32 get_ymdelta_size() { return m_ymdelta.bytes(); }
|
||||
void ymdelta_alloc(UINT32 size) { m_ymdelta.resize(size); }
|
||||
UINT8* get_ymdelta_base() { return &m_ymdelta[0]; }
|
||||
UINT32 get_ymdelta_size() { return m_ymdelta.size(); }
|
||||
|
||||
dynamic_array<UINT16> m_rom;
|
||||
dynamic_array<UINT8> m_fixed;
|
||||
dynamic_array<UINT8> m_sprites;
|
||||
dynamic_array<UINT8> m_sprites_optimized;
|
||||
dynamic_array<UINT8> m_audio;
|
||||
dynamic_array<UINT8> m_ym;
|
||||
dynamic_array<UINT8> m_ymdelta;
|
||||
std::vector<UINT16> m_rom;
|
||||
std::vector<UINT8> m_fixed;
|
||||
std::vector<UINT8> m_sprites;
|
||||
std::vector<UINT8> m_sprites_optimized;
|
||||
std::vector<UINT8> m_audio;
|
||||
std::vector<UINT8> m_ym;
|
||||
std::vector<UINT8> m_ymdelta;
|
||||
|
||||
UINT32 m_sprite_gfx_address_mask;
|
||||
|
||||
@ -68,7 +68,7 @@ public:
|
||||
|
||||
protected:
|
||||
// internal state
|
||||
dynamic_array<UINT8> m_audiocrypt;
|
||||
std::vector<UINT8> m_audiocrypt;
|
||||
|
||||
|
||||
};
|
||||
|
@ -45,9 +45,9 @@ public:
|
||||
virtual DECLARE_READ16_MEMBER(read_rom);
|
||||
|
||||
UINT16* get_rom_base() { if (m_cart) { return m_cart->get_rom_base(); } else { return 0; } }
|
||||
UINT32 get_rom_size() { if (m_cart) { return m_cart->m_rom.bytes(); } else { return 0; } }
|
||||
UINT32 get_rom_size() { if (m_cart) { return m_cart->get_rom_size()*sizeof(UINT16); } else { return 0; } }
|
||||
UINT8* get_fixed_base() { if (m_cart) { return m_cart->get_fixed_base(); } else { return 0; } }
|
||||
UINT32 get_fixed_size() { if (m_cart) { return m_cart->m_fixed.bytes(); } else { return 0; } }
|
||||
UINT32 get_fixed_size() { if (m_cart) { return m_cart->get_fixed_size(); } else { return 0; } }
|
||||
UINT8* get_sprites_base() { if (m_cart) { return m_cart->get_sprites_base(); } else { return 0; } }
|
||||
UINT32 get_sprites_size() { if (m_cart) { return m_cart->get_sprites_size(); } else { return 0; } }
|
||||
UINT8* get_sprites_optimized() { if (m_cart) { return m_cart->get_sprites_optimized(); } else { return 0; } }
|
||||
|
@ -38,11 +38,11 @@ void pcm2_prot_device::neo_pcm2_snk_1999(UINT8* ymrom, UINT32 ymsize, int value)
|
||||
|
||||
if( rom != NULL )
|
||||
{ /* swap address lines on the whole ROMs */
|
||||
dynamic_array<UINT16> buffer(value / 2);
|
||||
std::vector<UINT16> buffer(value / 2);
|
||||
|
||||
for( i = 0; i < size / 2; i += ( value / 2 ) )
|
||||
{
|
||||
memcpy( buffer, &rom[ i ], value );
|
||||
memcpy( &buffer[0], &rom[ i ], value );
|
||||
for( j = 0; j < (value / 2); j++ )
|
||||
{
|
||||
rom[ i + j ] = buffer[ j ^ (value/4) ];
|
||||
@ -75,7 +75,7 @@ void pcm2_prot_device::neo_pcm2_swap(UINT8* ymrom, UINT32 ymsize, int value)
|
||||
dynamic_buffer buf(0x1000000);
|
||||
int i, j, d;
|
||||
UINT8* src = ymrom;
|
||||
memcpy(buf,src,0x1000000);
|
||||
memcpy(&buf[0],src,0x1000000);
|
||||
for (i=0;i<0x1000000;i++)
|
||||
{
|
||||
j=BITSWAP24(i,23,22,21,20,19,18,17,0,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,16);
|
||||
|
@ -124,7 +124,7 @@ void pvc_prot_device::mslug5_decrypt_68k(UINT8* rom, UINT32 size)
|
||||
rom[BYTE_XOR_LE(i+1)] = rom16&0xff;
|
||||
rom[BYTE_XOR_LE(i+2)] = rom16>>8;
|
||||
}
|
||||
memcpy( buf, rom, rom_size );
|
||||
memcpy( &buf[0], rom, rom_size );
|
||||
for( i = 0; i < 0x0100000 / 0x10000; i++ )
|
||||
{
|
||||
ofst = (i & 0xf0) + BITSWAP8( (i & 0x0f), 7, 6, 5, 4, 1, 0, 3, 2 );
|
||||
@ -135,7 +135,7 @@ void pvc_prot_device::mslug5_decrypt_68k(UINT8* rom, UINT32 size)
|
||||
ofst = (i & 0xf000ff) + ((i & 0x000f00) ^ 0x00700) + (BITSWAP8( ((i & 0x0ff000) >> 12), 5, 4, 7, 6, 1, 0, 3, 2 ) << 12);
|
||||
memcpy( &rom[ i ], &buf[ ofst ], 0x100 );
|
||||
}
|
||||
memcpy( buf, rom, rom_size );
|
||||
memcpy( &buf[0], rom, rom_size );
|
||||
memcpy( &rom[ 0x100000 ], &buf[ 0x700000 ], 0x100000 );
|
||||
memcpy( &rom[ 0x200000 ], &buf[ 0x100000 ], 0x600000 );
|
||||
}
|
||||
@ -167,7 +167,7 @@ void pvc_prot_device::svc_px_decrypt(UINT8* rom, UINT32 size)
|
||||
rom[BYTE_XOR_LE(i+1)] = rom16&0xff;
|
||||
rom[BYTE_XOR_LE(i+2)] = rom16>>8;
|
||||
}
|
||||
memcpy( buf, rom, rom_size );
|
||||
memcpy( &buf[0], rom, rom_size );
|
||||
for( i = 0; i < 0x0100000 / 0x10000; i++ )
|
||||
{
|
||||
ofst = (i & 0xf0) + BITSWAP8( (i & 0x0f), 7, 6, 5, 4, 2, 3, 0, 1 );
|
||||
@ -178,7 +178,7 @@ void pvc_prot_device::svc_px_decrypt(UINT8* rom, UINT32 size)
|
||||
ofst = (i & 0xf000ff) + ((i & 0x000f00) ^ 0x00a00) + (BITSWAP8( ((i & 0x0ff000) >> 12), 4, 5, 6, 7, 1, 0, 3, 2 ) << 12);
|
||||
memcpy( &rom[ i ], &buf[ ofst ], 0x100 );
|
||||
}
|
||||
memcpy( buf, rom, rom_size );
|
||||
memcpy( &buf[0], rom, rom_size );
|
||||
memcpy( &rom[ 0x100000 ], &buf[ 0x700000 ], 0x100000 );
|
||||
memcpy( &rom[ 0x200000 ], &buf[ 0x100000 ], 0x600000 );
|
||||
}
|
||||
|
@ -150,7 +150,7 @@ void nes_aladdin_slot_device::get_default_card_software(astring &result)
|
||||
dynamic_buffer rom(len);
|
||||
UINT8 mapper;
|
||||
|
||||
core_fread(m_file, rom, len);
|
||||
core_fread(m_file, &rom[0], len);
|
||||
|
||||
mapper = (rom[6] & 0xf0) >> 4;
|
||||
mapper |= rom[7] & 0xf0;
|
||||
|
@ -355,9 +355,9 @@ WRITE8_MEMBER(nes_fcg_device::write_m)
|
||||
{
|
||||
LOG_MMC(("lz93d50 write_m, offset: %04x, data: %02x\n", offset, data));
|
||||
|
||||
if (!m_battery && !m_prgram)
|
||||
if (m_battery.empty() && m_prgram.empty())
|
||||
fcg_write(space, offset & 0x0f, data, mem_mask);
|
||||
else if (m_battery)
|
||||
else if (!m_battery.empty())
|
||||
m_battery[offset] = data;
|
||||
else
|
||||
m_prgram[offset] = data;
|
||||
@ -447,13 +447,13 @@ void nes_fjump2_device::set_prg()
|
||||
READ8_MEMBER(nes_fjump2_device::read_m)
|
||||
{
|
||||
LOG_MMC(("fjump2 read_m, offset: %04x\n", offset));
|
||||
return m_battery[offset & (m_battery.count() - 1)];
|
||||
return m_battery[offset & (m_battery.size() - 1)];
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(nes_fjump2_device::write_m)
|
||||
{
|
||||
LOG_MMC(("fjump2 write_m, offset: %04x, data: %02x\n", offset, data));
|
||||
m_battery[offset & (m_battery.count() - 1)] = data;
|
||||
m_battery[offset & (m_battery.size() - 1)] = data;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(nes_fjump2_device::write_h)
|
||||
|
@ -1537,7 +1537,7 @@ READ8_MEMBER(nes_mmalee_device::read_m)
|
||||
|
||||
if (offset < 0x0800)
|
||||
return m_prg[0x8000 + offset];
|
||||
else if (m_prgram && offset >= 0x1000 && offset < 0x1800) // WRAM only in these 2K
|
||||
else if (!m_prgram.empty() && offset >= 0x1000 && offset < 0x1800) // WRAM only in these 2K
|
||||
return m_prgram[offset & 0x7ff];
|
||||
|
||||
return ((offset + 0x6000) & 0xff00) >> 8;
|
||||
@ -1547,7 +1547,7 @@ WRITE8_MEMBER(nes_mmalee_device::write_m)
|
||||
{
|
||||
LOG_MMC(("mmalee write_m, offset: %04x, data: %02x\n", offset, data));
|
||||
|
||||
if (m_prgram && offset >= 0x1000 && offset < 0x1800) // WRAM only in these 2K
|
||||
if (!m_prgram.empty() && offset >= 0x1000 && offset < 0x1800) // WRAM only in these 2K
|
||||
m_prgram[offset & 0x7ff] = data;
|
||||
}
|
||||
|
||||
|
@ -288,10 +288,10 @@ READ8_MEMBER(nes_konami_vrc2_device::read_m)
|
||||
{
|
||||
LOG_MMC(("VRC-2 read_m, offset: %04x\n", offset));
|
||||
|
||||
if (m_battery)
|
||||
return m_battery[offset & (m_battery.count() - 1)];
|
||||
else if (m_prgram)
|
||||
return m_prgram[offset & (m_prgram.count() - 1)];
|
||||
if (!m_battery.empty())
|
||||
return m_battery[offset & (m_battery.size() - 1)];
|
||||
else if (!m_prgram.empty())
|
||||
return m_prgram[offset & (m_prgram.size() - 1)];
|
||||
else // sort of protection? it returns open bus in $7000-$7fff and (open bus & 0xfe) | m_latch in $6000-$6fff
|
||||
return (offset < 0x1000) ? ((m_open_bus & 0xfe) | (m_latch & 1)) : m_open_bus;
|
||||
}
|
||||
@ -300,10 +300,10 @@ WRITE8_MEMBER(nes_konami_vrc2_device::write_m)
|
||||
{
|
||||
LOG_MMC(("VRC-2 write_m, offset: %04x, data: %02x\n", offset, data));
|
||||
|
||||
if (m_battery)
|
||||
m_battery[offset & (m_battery.count() - 1)] = data;
|
||||
else if (m_prgram)
|
||||
m_prgram[offset & (m_prgram.count() - 1)] = data;
|
||||
if (!m_battery.empty())
|
||||
m_battery[offset & (m_battery.size() - 1)] = data;
|
||||
else if (!m_prgram.empty())
|
||||
m_prgram[offset & (m_prgram.size() - 1)] = data;
|
||||
else if (offset < 0x1000)
|
||||
m_latch = data;
|
||||
}
|
||||
|
@ -273,10 +273,10 @@ WRITE8_MEMBER(nes_sxrom_device::write_m)
|
||||
|
||||
if (!BIT(m_reg[3], 4)) // WRAM enabled
|
||||
{
|
||||
if (m_battery)
|
||||
m_battery[((bank * 0x2000) + offset) & (m_battery.count() - 1)] = data;
|
||||
if (m_prgram)
|
||||
m_prgram[((bank * 0x2000) + offset) & (m_prgram.count() - 1)] = data;
|
||||
if (!m_battery.empty())
|
||||
m_battery[((bank * 0x2000) + offset) & (m_battery.size() - 1)] = data;
|
||||
if (!m_prgram.empty())
|
||||
m_prgram[((bank * 0x2000) + offset) & (m_prgram.size() - 1)] = data;
|
||||
}
|
||||
}
|
||||
|
||||
@ -287,10 +287,10 @@ READ8_MEMBER(nes_sxrom_device::read_m)
|
||||
|
||||
if (!BIT(m_reg[3], 4)) // WRAM enabled
|
||||
{
|
||||
if (m_battery)
|
||||
return m_battery[((bank * 0x2000) + offset) & (m_battery.count() - 1)];
|
||||
if (m_prgram)
|
||||
return m_prgram[((bank * 0x2000) + offset) & (m_prgram.count() - 1)];
|
||||
if (!m_battery.empty())
|
||||
return m_battery[((bank * 0x2000) + offset) & (m_battery.size() - 1)];
|
||||
if (!m_prgram.empty())
|
||||
return m_prgram[((bank * 0x2000) + offset) & (m_prgram.size() - 1)];
|
||||
}
|
||||
|
||||
return m_open_bus; // open bus
|
||||
@ -305,9 +305,9 @@ WRITE8_MEMBER(nes_sorom_device::write_m)
|
||||
if (!BIT(m_reg[3], 4)) // WRAM enabled
|
||||
{
|
||||
if (type)
|
||||
m_battery[offset & (m_battery.count() - 1)] = data;
|
||||
m_battery[offset & (m_battery.size() - 1)] = data;
|
||||
else
|
||||
m_prgram[offset & (m_prgram.count() - 1)] = data;
|
||||
m_prgram[offset & (m_prgram.size() - 1)] = data;
|
||||
}
|
||||
}
|
||||
|
||||
@ -319,9 +319,9 @@ READ8_MEMBER(nes_sorom_device::read_m)
|
||||
if (!BIT(m_reg[3], 4)) // WRAM enabled
|
||||
{
|
||||
if (type)
|
||||
return m_battery[offset & (m_battery.count() - 1)];
|
||||
return m_battery[offset & (m_battery.size() - 1)];
|
||||
else
|
||||
return m_prgram[offset & (m_prgram.count() - 1)];
|
||||
return m_prgram[offset & (m_prgram.size() - 1)];
|
||||
}
|
||||
|
||||
return m_open_bus; // open bus
|
||||
@ -333,10 +333,10 @@ WRITE8_MEMBER(nes_sxrom_a_device::write_m)
|
||||
UINT8 bank = (m_reg[1] >> 2) & 3;
|
||||
LOG_MMC(("sxrom_a write_m, offset: %04x, data: %02x\n", offset, data));
|
||||
|
||||
if (m_battery)
|
||||
m_battery[((bank * 0x2000) + offset) & (m_battery.count() - 1)] = data;
|
||||
if (m_prgram)
|
||||
m_prgram[((bank * 0x2000) + offset) & (m_prgram.count() - 1)] = data;
|
||||
if (!m_battery.empty())
|
||||
m_battery[((bank * 0x2000) + offset) & (m_battery.size() - 1)] = data;
|
||||
if (!m_prgram.empty())
|
||||
m_prgram[((bank * 0x2000) + offset) & (m_prgram.size() - 1)] = data;
|
||||
}
|
||||
|
||||
READ8_MEMBER(nes_sxrom_a_device::read_m)
|
||||
@ -344,10 +344,10 @@ READ8_MEMBER(nes_sxrom_a_device::read_m)
|
||||
UINT8 bank = (m_reg[1] >> 2) & 3;
|
||||
LOG_MMC(("sxrom_a read_m, offset: %04x\n", offset));
|
||||
|
||||
if (m_battery)
|
||||
return m_battery[((bank * 0x2000) + offset) & (m_battery.count() - 1)];
|
||||
if (m_prgram)
|
||||
return m_prgram[((bank * 0x2000) + offset) & (m_prgram.count() - 1)];
|
||||
if (!m_battery.empty())
|
||||
return m_battery[((bank * 0x2000) + offset) & (m_battery.size() - 1)];
|
||||
if (!m_prgram.empty())
|
||||
return m_prgram[((bank * 0x2000) + offset) & (m_prgram.size() - 1)];
|
||||
|
||||
return m_open_bus; // open bus
|
||||
}
|
||||
@ -358,9 +358,9 @@ WRITE8_MEMBER(nes_sorom_a_device::write_m)
|
||||
LOG_MMC(("sorom_a write_m, offset: %04x, data: %02x\n", offset, data));
|
||||
|
||||
if (type)
|
||||
m_battery[offset & (m_battery.count() - 1)] = data;
|
||||
m_battery[offset & (m_battery.size() - 1)] = data;
|
||||
else
|
||||
m_prgram[offset & (m_prgram.count() - 1)] = data;
|
||||
m_prgram[offset & (m_prgram.size() - 1)] = data;
|
||||
}
|
||||
|
||||
READ8_MEMBER(nes_sorom_a_device::read_m)
|
||||
@ -369,7 +369,7 @@ READ8_MEMBER(nes_sorom_a_device::read_m)
|
||||
LOG_MMC(("sorom_a read_m, offset: %04x\n", offset));
|
||||
|
||||
if (type)
|
||||
return m_battery[offset & (m_battery.count() - 1)];
|
||||
return m_battery[offset & (m_battery.size() - 1)];
|
||||
else
|
||||
return m_prgram[offset & (m_prgram.count() - 1)];
|
||||
return m_prgram[offset & (m_prgram.size() - 1)];
|
||||
}
|
||||
|
@ -320,10 +320,10 @@ WRITE8_MEMBER(nes_txrom_device::write_m)
|
||||
|
||||
if (BIT(m_wram_protect, 7) && !BIT(m_wram_protect, 6))
|
||||
{
|
||||
if (m_battery)
|
||||
m_battery[offset & (m_battery.count() - 1)] = data;
|
||||
if (m_prgram)
|
||||
m_prgram[offset & (m_prgram.count() - 1)] = data;
|
||||
if (!m_battery.empty())
|
||||
m_battery[offset & (m_battery.size() - 1)] = data;
|
||||
if (!m_prgram.empty())
|
||||
m_prgram[offset & (m_prgram.size() - 1)] = data;
|
||||
}
|
||||
}
|
||||
|
||||
@ -333,10 +333,10 @@ READ8_MEMBER(nes_txrom_device::read_m)
|
||||
|
||||
if (BIT(m_wram_protect, 7))
|
||||
{
|
||||
if (m_battery)
|
||||
return m_battery[offset & (m_battery.count() - 1)];
|
||||
if (m_prgram)
|
||||
return m_prgram[offset & (m_prgram.count() - 1)];
|
||||
if (!m_battery.empty())
|
||||
return m_battery[offset & (m_battery.size() - 1)];
|
||||
if (!m_prgram.empty())
|
||||
return m_prgram[offset & (m_prgram.size() - 1)];
|
||||
}
|
||||
|
||||
return m_open_bus; // open bus
|
||||
|
@ -2077,7 +2077,7 @@ WRITE8_MEMBER(nes_bmc_hik8_device::write_m)
|
||||
|
||||
/* This bit is the "register lock". Once register are locked, writes go to WRAM
|
||||
and there is no way to unlock them (except by resetting the machine) */
|
||||
if ((m_reg[3] & 0x40) && m_prgram)
|
||||
if ((m_reg[3] & 0x40) && !m_prgram.empty())
|
||||
m_prgram[offset] = data;
|
||||
else
|
||||
{
|
||||
|
@ -622,17 +622,17 @@ WRITE8_MEMBER(nes_exrom_device::write_l)
|
||||
READ8_MEMBER(nes_exrom_device::read_m)
|
||||
{
|
||||
LOG_MMC(("exrom read_m, offset: %04x\n", offset));
|
||||
if (m_battery && m_prgram) // 2 chips present: first is BWRAM, second is WRAM
|
||||
if (!m_battery.empty() && !m_prgram.empty()) // 2 chips present: first is BWRAM, second is WRAM
|
||||
{
|
||||
if (m_wram_base & 0x04)
|
||||
return m_prgram[(offset + (m_wram_base & 0x03) * 0x2000) & (m_prgram.count() - 1)];
|
||||
return m_prgram[(offset + (m_wram_base & 0x03) * 0x2000) & (m_prgram.size() - 1)];
|
||||
else
|
||||
return m_battery[(offset + (m_wram_base & 0x03) * 0x2000) & (m_battery.count() - 1)];
|
||||
return m_battery[(offset + (m_wram_base & 0x03) * 0x2000) & (m_battery.size() - 1)];
|
||||
}
|
||||
else if (m_prgram) // 1 chip, WRAM
|
||||
return m_prgram[(offset + (m_wram_base & 0x03) * 0x2000) & (m_prgram.count() - 1)];
|
||||
else if (m_battery) // 1 chip, BWRAM
|
||||
return m_battery[(offset + (m_wram_base & 0x03) * 0x2000) & (m_battery.count() - 1)];
|
||||
else if (!m_prgram.empty()) // 1 chip, WRAM
|
||||
return m_prgram[(offset + (m_wram_base & 0x03) * 0x2000) & (m_prgram.size() - 1)];
|
||||
else if (!m_battery.empty()) // 1 chip, BWRAM
|
||||
return m_battery[(offset + (m_wram_base & 0x03) * 0x2000) & (m_battery.size() - 1)];
|
||||
else
|
||||
return m_open_bus;
|
||||
}
|
||||
@ -643,10 +643,10 @@ WRITE8_MEMBER(nes_exrom_device::write_m)
|
||||
if (m_wram_protect_1 != 0x02 || m_wram_protect_2 != 0x01)
|
||||
return;
|
||||
|
||||
if (m_battery && m_wram_base < 4)
|
||||
m_battery[(offset + m_wram_base * 0x2000) & (m_battery.count() - 1)] = data;
|
||||
else if (m_prgram)
|
||||
m_prgram[(offset + (m_wram_base & 0x03) * 0x2000) & (m_prgram.count() - 1)] = data;
|
||||
if (!m_battery.empty() && m_wram_base < 4)
|
||||
m_battery[(offset + m_wram_base * 0x2000) & (m_battery.size() - 1)] = data;
|
||||
else if (!m_prgram.empty())
|
||||
m_prgram[(offset + (m_wram_base & 0x03) * 0x2000) & (m_prgram.size() - 1)] = data;
|
||||
}
|
||||
|
||||
// some games (e.g. Bandit Kings of Ancient China) write to PRG-RAM through 0x8000-0xdfff
|
||||
@ -657,10 +657,10 @@ READ8_MEMBER(nes_exrom_device::read_h)
|
||||
|
||||
if (bank < 3 && offset >= bank * 0x2000 && offset < (bank + 1) * 0x2000 && m_prg_ram_mapped[bank])
|
||||
{
|
||||
if (m_battery && m_ram_hi_banks[bank] < 4)
|
||||
return m_battery[((m_ram_hi_banks[bank] * 0x2000) + (offset & 0x1fff)) & (m_battery.count() - 1)];
|
||||
else if (m_prgram)
|
||||
return m_prgram[(((m_ram_hi_banks[bank] & 3) * 0x2000) + (offset & 0x1fff)) & (m_prgram.count() - 1)];
|
||||
if (!m_battery.empty() && m_ram_hi_banks[bank] < 4)
|
||||
return m_battery[((m_ram_hi_banks[bank] * 0x2000) + (offset & 0x1fff)) & (m_battery.size() - 1)];
|
||||
else if (!m_prgram.empty())
|
||||
return m_prgram[(((m_ram_hi_banks[bank] & 3) * 0x2000) + (offset & 0x1fff)) & (m_prgram.size() - 1)];
|
||||
}
|
||||
|
||||
return hi_access_rom(offset);
|
||||
@ -673,8 +673,8 @@ WRITE8_MEMBER(nes_exrom_device::write_h)
|
||||
if (m_wram_protect_1 != 0x02 || m_wram_protect_2 != 0x01 || bank == 3 || !m_prg_ram_mapped[bank])
|
||||
return;
|
||||
|
||||
if (m_battery && m_ram_hi_banks[bank] < 4)
|
||||
m_battery[((m_ram_hi_banks[bank] * 0x2000) + (offset & 0x1fff)) & (m_battery.count() - 1)] = data;
|
||||
else if (m_prgram)
|
||||
m_prgram[(((m_ram_hi_banks[bank] & 3) * 0x2000) + (offset & 0x1fff)) & (m_prgram.count() - 1)] = data;
|
||||
if (!m_battery.empty() && m_ram_hi_banks[bank] < 4)
|
||||
m_battery[((m_ram_hi_banks[bank] * 0x2000) + (offset & 0x1fff)) & (m_battery.size() - 1)] = data;
|
||||
else if (!m_prgram.empty())
|
||||
m_prgram[(((m_ram_hi_banks[bank] & 3) * 0x2000) + (offset & 0x1fff)) & (m_prgram.size() - 1)] = data;
|
||||
}
|
||||
|
@ -512,8 +512,8 @@ READ8_MEMBER(nes_namcot175_device::read_m)
|
||||
{
|
||||
// the only game supporting this is Family Circuit '91, and it has 2KB of battery
|
||||
// but it's mirrored up to 8KB (see Sprint Race -> Back Up menu breakage if not)
|
||||
if (m_battery && !m_wram_protect)
|
||||
return m_battery[offset & (m_battery.count() - 1)];
|
||||
if (!m_battery.empty() && !m_wram_protect)
|
||||
return m_battery[offset & (m_battery.size() - 1)];
|
||||
|
||||
return m_open_bus; // open bus
|
||||
}
|
||||
@ -522,8 +522,8 @@ WRITE8_MEMBER(nes_namcot175_device::write_m)
|
||||
{
|
||||
// the only game supporting this is Family Circuit '91, and it has 2KB of battery
|
||||
// but it's mirrored up to 8KB (see Sprint Race -> Back Up menu breakage if not)
|
||||
if (m_battery && !m_wram_protect)
|
||||
m_battery[offset & (m_battery.count() - 1)] = data;
|
||||
if (!m_battery.empty() && !m_wram_protect)
|
||||
m_battery[offset & (m_battery.size() - 1)] = data;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(nes_namcot175_device::write_h)
|
||||
@ -595,8 +595,8 @@ READ8_MEMBER(nes_namcot163_device::chr_r)
|
||||
|
||||
READ8_MEMBER(nes_namcot163_device::read_m)
|
||||
{
|
||||
if (m_battery && offset < m_battery.count())
|
||||
return m_battery[offset & (m_battery.count() - 1)];
|
||||
if (!m_battery.empty() && offset < m_battery.size())
|
||||
return m_battery[offset & (m_battery.size() - 1)];
|
||||
|
||||
return m_open_bus; // open bus
|
||||
}
|
||||
@ -605,8 +605,8 @@ WRITE8_MEMBER(nes_namcot163_device::write_m)
|
||||
{
|
||||
// the pcb can separately protect each 2KB chunk of the external wram from writes
|
||||
int bank = (offset & 0x1800) >> 11;
|
||||
if (m_battery && !BIT(m_wram_protect, bank))
|
||||
m_battery[offset & (m_battery.count() - 1)] = data;
|
||||
if (!m_battery.empty() && !BIT(m_wram_protect, bank))
|
||||
m_battery[offset & (m_battery.size() - 1)] = data;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(nes_namcot163_device::write_l)
|
||||
|
@ -797,15 +797,15 @@ void nes_cart_slot_device::call_load_ines()
|
||||
{
|
||||
UINT32 tot_size = battery_size + mapper_sram_size;
|
||||
dynamic_buffer temp_nvram(tot_size);
|
||||
battery_load(temp_nvram, tot_size, 0x00);
|
||||
battery_load(&temp_nvram[0], tot_size, 0x00);
|
||||
if (battery_size)
|
||||
{
|
||||
//printf("here %d\n", battery_size);
|
||||
m_cart->battery_alloc(battery_size);
|
||||
memcpy(m_cart->get_battery_base(), temp_nvram, battery_size);
|
||||
memcpy(m_cart->get_battery_base(), &temp_nvram[0], battery_size);
|
||||
}
|
||||
if (mapper_sram_size)
|
||||
memcpy(m_cart->get_mapper_sram_base(), temp_nvram + battery_size, m_cart->get_mapper_sram_size());
|
||||
memcpy(m_cart->get_mapper_sram_base(), &temp_nvram[battery_size], m_cart->get_mapper_sram_size());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -588,20 +588,20 @@ void nes_cart_slot_device::call_load_pcb()
|
||||
// and we use the info from xml here to prepare a default NVRAM
|
||||
dynamic_buffer default_nvram(tot_size);
|
||||
if (battery_size)
|
||||
memcpy(default_nvram, get_software_region("bwram"), battery_size);
|
||||
memcpy(&default_nvram[0], get_software_region("bwram"), battery_size);
|
||||
if (mapper_sram_size)
|
||||
memset(default_nvram + battery_size, 0, mapper_sram_size);
|
||||
memset(&default_nvram[battery_size], 0, mapper_sram_size);
|
||||
|
||||
// load battery (using default if no battery exists)
|
||||
battery_load(temp_nvram, tot_size, default_nvram);
|
||||
battery_load(&temp_nvram[0], tot_size, &default_nvram[0]);
|
||||
|
||||
// copy battery into PCB arrays
|
||||
if (battery_size)
|
||||
{
|
||||
m_cart->battery_alloc(battery_size);
|
||||
memcpy(m_cart->get_battery_base(), temp_nvram, battery_size);
|
||||
memcpy(m_cart->get_battery_base(), &temp_nvram[0], battery_size);
|
||||
}
|
||||
if (mapper_sram_size)
|
||||
memcpy(m_cart->get_mapper_sram_base(), temp_nvram + battery_size, mapper_sram_size);
|
||||
memcpy(m_cart->get_mapper_sram_base(), &temp_nvram[battery_size], mapper_sram_size);
|
||||
}
|
||||
}
|
||||
|
@ -368,7 +368,7 @@ void device_nes_cart_interface::prg8_x(int start, int bank)
|
||||
|
||||
inline void device_nes_cart_interface::chr_sanity_check( int source )
|
||||
{
|
||||
if (source == CHRRAM && m_vram == NULL)
|
||||
if (source == CHRRAM && m_vram.empty())
|
||||
fatalerror("CHRRAM bankswitch with no VRAM\n");
|
||||
|
||||
if (source == CHRROM && m_vrom == NULL)
|
||||
@ -484,7 +484,7 @@ void device_nes_cart_interface::set_nt_page(int page, int source, int bank, int
|
||||
switch (source)
|
||||
{
|
||||
case CART_NTRAM:
|
||||
base_ptr = m_ext_ntram;
|
||||
base_ptr = &m_ext_ntram[0];
|
||||
break;
|
||||
case VROM:
|
||||
bank &= ((m_vrom_chunks << 3) - 1);
|
||||
@ -546,7 +546,7 @@ void device_nes_cart_interface::set_nt_mirroring(int mirroring)
|
||||
break;
|
||||
|
||||
case PPU_MIRROR_4SCREEN:
|
||||
if (!m_ext_ntram) fatalerror("4-screen mirroring without on-cart NTRAM!\n");
|
||||
if (m_ext_ntram.empty()) fatalerror("4-screen mirroring without on-cart NTRAM!\n");
|
||||
set_nt_page(0, CART_NTRAM, 0, 1);
|
||||
set_nt_page(1, CART_NTRAM, 1, 1);
|
||||
set_nt_page(2, CART_NTRAM, 2, 1);
|
||||
@ -643,10 +643,10 @@ READ8_MEMBER(device_nes_cart_interface::read_l)
|
||||
|
||||
READ8_MEMBER(device_nes_cart_interface::read_m)
|
||||
{
|
||||
if (m_battery)
|
||||
return m_battery[offset & (m_battery.count() - 1)];
|
||||
if (m_prgram)
|
||||
return m_prgram[offset & (m_prgram.count() - 1)];
|
||||
if (!m_battery.empty())
|
||||
return m_battery[offset & (m_battery.size() - 1)];
|
||||
if (!m_prgram.empty())
|
||||
return m_prgram[offset & (m_prgram.size() - 1)];
|
||||
|
||||
return m_open_bus;
|
||||
}
|
||||
@ -657,10 +657,10 @@ WRITE8_MEMBER(device_nes_cart_interface::write_l)
|
||||
|
||||
WRITE8_MEMBER(device_nes_cart_interface::write_m)
|
||||
{
|
||||
if (m_battery)
|
||||
m_battery[offset & (m_battery.count() - 1)] = data;
|
||||
if (m_prgram)
|
||||
m_prgram[offset & (m_prgram.count() - 1)] = data;
|
||||
if (!m_battery.empty())
|
||||
m_battery[offset & (m_battery.size() - 1)] = data;
|
||||
if (!m_prgram.empty())
|
||||
m_prgram[offset & (m_prgram.size() - 1)] = data;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(device_nes_cart_interface::write_h)
|
||||
@ -709,11 +709,11 @@ void device_nes_cart_interface::pcb_start(running_machine &machine, UINT8 *ciram
|
||||
set_nt_mirroring(m_mirroring);
|
||||
|
||||
// save the on-cart RAM pointers
|
||||
if (m_prgram.count())
|
||||
if (!m_prgram.empty())
|
||||
device().save_item(NAME(m_prgram));
|
||||
if (m_vram.bytes())
|
||||
if (!m_vram.empty())
|
||||
device().save_item(NAME(m_vram));
|
||||
if (m_battery.count())
|
||||
if (!m_battery.empty())
|
||||
device().save_item(NAME(m_battery));
|
||||
}
|
||||
|
||||
@ -888,11 +888,11 @@ void nes_cart_slot_device::call_unload()
|
||||
UINT32 tot_size = m_cart->get_battery_size() + m_cart->get_mapper_sram_size();
|
||||
dynamic_buffer temp_nvram(tot_size);
|
||||
if (m_cart->get_battery_size())
|
||||
memcpy(temp_nvram, m_cart->get_battery_base(), m_cart->get_battery_size());
|
||||
memcpy(&temp_nvram[0], m_cart->get_battery_base(), m_cart->get_battery_size());
|
||||
if (m_cart->get_mapper_sram_size())
|
||||
memcpy(temp_nvram + m_cart->get_battery_size(), m_cart->get_mapper_sram_base(), m_cart->get_mapper_sram_size());
|
||||
memcpy(&temp_nvram[m_cart->get_battery_size()], m_cart->get_mapper_sram_base(), m_cart->get_mapper_sram_size());
|
||||
|
||||
battery_save(temp_nvram, tot_size);
|
||||
battery_save(&temp_nvram[0], tot_size);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -920,13 +920,13 @@ void nes_cart_slot_device::get_default_card_software(astring &result)
|
||||
UINT32 len = core_fsize(m_file);
|
||||
dynamic_buffer rom(len);
|
||||
|
||||
core_fread(m_file, rom, len);
|
||||
core_fread(m_file, &rom[0], len);
|
||||
|
||||
if ((rom[0] == 'N') && (rom[1] == 'E') && (rom[2] == 'S'))
|
||||
slot_string = get_default_card_ines(rom, len);
|
||||
slot_string = get_default_card_ines(&rom[0], len);
|
||||
|
||||
if ((rom[0] == 'U') && (rom[1] == 'N') && (rom[2] == 'I') && (rom[3] == 'F'))
|
||||
slot_string = get_default_card_unif(rom, len);
|
||||
slot_string = get_default_card_unif(&rom[0], len);
|
||||
|
||||
clear();
|
||||
|
||||
|
@ -198,17 +198,17 @@ public:
|
||||
void set_open_bus(UINT8 val) { m_open_bus = val; }
|
||||
|
||||
UINT8* get_prg_base() { return m_prg; }
|
||||
UINT8* get_prgram_base() { return m_prgram; }
|
||||
UINT8* get_prgram_base() { return &m_prgram[0]; }
|
||||
UINT8* get_vrom_base() { return m_vrom; }
|
||||
UINT8* get_vram_base() { return m_vram; }
|
||||
UINT8* get_battery_base() { return m_battery; }
|
||||
UINT8* get_vram_base() { return &m_vram[0]; }
|
||||
UINT8* get_battery_base() { return &m_battery[0]; }
|
||||
UINT8* get_mapper_sram_base() { return m_mapper_sram; }
|
||||
|
||||
UINT32 get_prg_size() { return m_prg_size; }
|
||||
UINT32 get_prgram_size() { return m_prgram.bytes(); }
|
||||
UINT32 get_prgram_size() { return m_prgram.size(); }
|
||||
UINT32 get_vrom_size() { return m_vrom_size; }
|
||||
UINT32 get_vram_size() { return m_vram.bytes(); }
|
||||
UINT32 get_battery_size() { return m_battery.bytes(); }
|
||||
UINT32 get_vram_size() { return m_vram.size(); }
|
||||
UINT32 get_battery_size() { return m_battery.size(); }
|
||||
UINT32 get_mapper_sram_size() { return m_mapper_sram_size; }
|
||||
|
||||
virtual void ppu_latch(offs_t offset) {}
|
||||
@ -320,7 +320,7 @@ protected:
|
||||
void set_nt_page(int page, int source, int bank, int writable);
|
||||
void set_nt_mirroring(int mirroring);
|
||||
|
||||
dynamic_array<UINT16> m_prg_bank_map;
|
||||
std::vector<UINT16> m_prg_bank_map;
|
||||
};
|
||||
|
||||
void nes_partialhash(hash_collection &dest, const unsigned char *data, unsigned long length, const char *functions);
|
||||
|
@ -467,13 +467,13 @@ void nes_cart_slot_device::call_load_unif()
|
||||
if (prg_size == 0x4000)
|
||||
{
|
||||
m_cart->prg_alloc(0x8000, tag());
|
||||
memcpy(m_cart->get_prg_base(), temp_prg, 0x4000);
|
||||
memcpy(m_cart->get_prg_base(), &temp_prg[0], 0x4000);
|
||||
memcpy(m_cart->get_prg_base() + 0x4000, m_cart->get_prg_base(), 0x4000);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_cart->prg_alloc(prg_size, tag());
|
||||
memcpy(m_cart->get_prg_base(), temp_prg, prg_size);
|
||||
memcpy(m_cart->get_prg_base(), &temp_prg[0], prg_size);
|
||||
}
|
||||
|
||||
if (small_prg) // This is not supported yet, so warn users about this
|
||||
@ -482,7 +482,7 @@ void nes_cart_slot_device::call_load_unif()
|
||||
if (vrom_size)
|
||||
{
|
||||
m_cart->vrom_alloc(vrom_size, tag());
|
||||
memcpy(m_cart->get_vrom_base(), temp_chr, vrom_size);
|
||||
memcpy(m_cart->get_vrom_base(), &temp_chr[0], vrom_size);
|
||||
}
|
||||
|
||||
#if SPLIT_PRG
|
||||
@ -530,14 +530,14 @@ void nes_cart_slot_device::call_load_unif()
|
||||
{
|
||||
UINT32 tot_size = battery_size + mapper_sram_size;
|
||||
dynamic_buffer temp_nvram(tot_size);
|
||||
battery_load(temp_nvram, tot_size, 0x00);
|
||||
battery_load(&temp_nvram[0], tot_size, 0x00);
|
||||
if (battery_size)
|
||||
{
|
||||
m_cart->battery_alloc(battery_size);
|
||||
memcpy(m_cart->get_battery_base(), temp_nvram, battery_size);
|
||||
memcpy(m_cart->get_battery_base(), &temp_nvram[0], battery_size);
|
||||
}
|
||||
if (mapper_sram_size)
|
||||
memcpy(m_cart->get_mapper_sram_base(), temp_nvram + battery_size, mapper_sram_size);
|
||||
memcpy(m_cart->get_mapper_sram_base(), &temp_nvram[battery_size], mapper_sram_size);
|
||||
}
|
||||
|
||||
logerror("UNIF support is only very preliminary.\n");
|
||||
|
@ -551,13 +551,13 @@ READ8_MEMBER(nes_fukutake_device::read_l)
|
||||
WRITE8_MEMBER(nes_fukutake_device::write_m)
|
||||
{
|
||||
LOG_MMC(("fukutake write_m, offset: %04x, data: %02x\n", offset, data));
|
||||
m_prgram[((m_latch * 0x2000) + offset) & (m_prgram.count() - 1)] = data;
|
||||
m_prgram[((m_latch * 0x2000) + offset) & (m_prgram.size() - 1)] = data;
|
||||
}
|
||||
|
||||
READ8_MEMBER(nes_fukutake_device::read_m)
|
||||
{
|
||||
LOG_MMC(("fukutake read_m, offset: %04x\n", offset));
|
||||
return m_prgram[((m_latch * 0x2000) + offset) & (m_prgram.count() - 1)];
|
||||
return m_prgram[((m_latch * 0x2000) + offset) & (m_prgram.size() - 1)];
|
||||
}
|
||||
|
||||
/*-------------------------------------------------
|
||||
@ -871,13 +871,13 @@ WRITE8_MEMBER(nes_edu2k_device::write_h)
|
||||
WRITE8_MEMBER(nes_edu2k_device::write_m)
|
||||
{
|
||||
LOG_MMC(("edu2k write_m, offset: %04x, data: %02x\n", offset, data));
|
||||
m_prgram[((m_latch * 0x2000) + offset) & (m_prgram.count() - 1)] = data;
|
||||
m_prgram[((m_latch * 0x2000) + offset) & (m_prgram.size() - 1)] = data;
|
||||
}
|
||||
|
||||
READ8_MEMBER(nes_edu2k_device::read_m)
|
||||
{
|
||||
LOG_MMC(("edu2k read_m, offset: %04x\n", offset));
|
||||
return m_prgram[((m_latch * 0x2000) + offset) & (m_prgram.count() - 1)];
|
||||
return m_prgram[((m_latch * 0x2000) + offset) & (m_prgram.size() - 1)];
|
||||
}
|
||||
|
||||
/*-------------------------------------------------
|
||||
|
@ -428,20 +428,20 @@ WRITE8_MEMBER(nes_sunsoft_4_device::write_m)
|
||||
{
|
||||
LOG_MMC(("Sunsoft 4 write_m, offset: %04x, data: %02x\n", offset, data));
|
||||
|
||||
if (m_battery && m_wram_enable)
|
||||
m_battery[offset & (m_battery.count() - 1)] = data;
|
||||
if (m_prgram && m_wram_enable)
|
||||
m_prgram[offset & (m_prgram.count() - 1)] = data;
|
||||
if (!m_battery.empty() && m_wram_enable)
|
||||
m_battery[offset & (m_battery.size() - 1)] = data;
|
||||
if (!m_prgram.empty() && m_wram_enable)
|
||||
m_prgram[offset & (m_prgram.size() - 1)] = data;
|
||||
}
|
||||
|
||||
READ8_MEMBER(nes_sunsoft_4_device::read_m)
|
||||
{
|
||||
LOG_MMC(("Sunsoft 4 read_m, offset: %04x\n", offset));
|
||||
|
||||
if (m_battery && m_wram_enable)
|
||||
return m_battery[offset & (m_battery.count() - 1)];
|
||||
if (m_prgram && m_wram_enable)
|
||||
return m_prgram[offset & (m_prgram.count() - 1)];
|
||||
if (!m_battery.empty() && m_wram_enable)
|
||||
return m_battery[offset & (m_battery.size() - 1)];
|
||||
if (!m_prgram.empty() && m_wram_enable)
|
||||
return m_prgram[offset & (m_prgram.size() - 1)];
|
||||
|
||||
return m_open_bus; // open bus
|
||||
}
|
||||
@ -542,10 +542,10 @@ WRITE8_MEMBER(nes_sunsoft_fme7_device::write_m)
|
||||
return;
|
||||
else if (m_wram_bank & 0x80) // is PRG RAM
|
||||
{
|
||||
if (m_battery)
|
||||
m_battery[((bank * 0x2000) + offset) & (m_battery.count() - 1)] = data;
|
||||
if (m_prgram)
|
||||
m_prgram[((bank * 0x2000) + offset) & (m_prgram.count() - 1)] = data;
|
||||
if (!m_battery.empty())
|
||||
m_battery[((bank * 0x2000) + offset) & (m_battery.size() - 1)] = data;
|
||||
if (!m_prgram.empty())
|
||||
m_prgram[((bank * 0x2000) + offset) & (m_prgram.size() - 1)] = data;
|
||||
}
|
||||
}
|
||||
|
||||
@ -558,10 +558,10 @@ READ8_MEMBER(nes_sunsoft_fme7_device::read_m)
|
||||
return m_prg[((bank * 0x2000) + offset) & (m_prg_size - 1)];
|
||||
else if (m_wram_bank & 0x80) // is PRG RAM
|
||||
{
|
||||
if (m_battery)
|
||||
return m_battery[((bank * 0x2000) + offset) & (m_battery.count() - 1)];
|
||||
if (m_prgram)
|
||||
return m_prgram[((bank * 0x2000) + offset) & (m_prgram.count() - 1)];
|
||||
if (!m_battery.empty())
|
||||
return m_battery[((bank * 0x2000) + offset) & (m_battery.size() - 1)];
|
||||
if (!m_prgram.empty())
|
||||
return m_prgram[((bank * 0x2000) + offset) & (m_prgram.size() - 1)];
|
||||
}
|
||||
|
||||
return m_open_bus; // open bus
|
||||
|
@ -254,10 +254,10 @@ WRITE8_MEMBER(nes_sunsoft_dcs_device::write_m)
|
||||
{
|
||||
LOG_MMC(("Sunsoft DCS write_m, offset: %04x, data: %02x\n", offset, data));
|
||||
|
||||
if (m_battery && m_wram_enable)
|
||||
m_battery[offset & (m_battery.count() - 1)] = data;
|
||||
if (m_prgram && m_wram_enable)
|
||||
m_prgram[offset & (m_prgram.count() - 1)] = data;
|
||||
if (!m_battery.empty() && m_wram_enable)
|
||||
m_battery[offset & (m_battery.size() - 1)] = data;
|
||||
if (!m_prgram.empty() && m_wram_enable)
|
||||
m_prgram[offset & (m_prgram.size() - 1)] = data;
|
||||
if (!m_wram_enable && !m_timer_on)
|
||||
{
|
||||
m_timer_on = 1;
|
||||
@ -270,10 +270,10 @@ READ8_MEMBER(nes_sunsoft_dcs_device::read_m)
|
||||
{
|
||||
LOG_MMC(("Sunsoft DCS read_m, offset: %04x\n", offset));
|
||||
|
||||
if (m_battery && m_wram_enable)
|
||||
return m_battery[offset & (m_battery.count() - 1)];
|
||||
if (m_prgram && m_wram_enable)
|
||||
return m_prgram[offset & (m_prgram.count() - 1)];
|
||||
if (!m_battery.empty() && m_wram_enable)
|
||||
return m_battery[offset & (m_battery.size() - 1)];
|
||||
if (!m_prgram.empty() && m_wram_enable)
|
||||
return m_prgram[offset & (m_prgram.size() - 1)];
|
||||
|
||||
return m_open_bus; // open bus
|
||||
}
|
||||
|
@ -371,7 +371,8 @@ void device_nubus_card_interface::install_declaration_rom(device_t *dev, const c
|
||||
break;
|
||||
|
||||
case 0xe1: // lane 0 only
|
||||
m_declaration_rom.resize_and_clear(romlen*4);
|
||||
m_declaration_rom.resize(romlen*4);
|
||||
memset(&m_declaration_rom[0], 0, romlen*4);
|
||||
for (int i = 0; i < romlen; i++)
|
||||
{
|
||||
m_declaration_rom[BYTE4_XOR_BE(i*4)] = rom[i];
|
||||
@ -380,7 +381,8 @@ void device_nubus_card_interface::install_declaration_rom(device_t *dev, const c
|
||||
break;
|
||||
|
||||
case 0xd2: // lane 1 only
|
||||
m_declaration_rom.resize_and_clear(romlen*4);
|
||||
m_declaration_rom.resize(romlen*4);
|
||||
memset(&m_declaration_rom[0], 0, romlen*4);
|
||||
for (int i = 0; i < romlen; i++)
|
||||
{
|
||||
m_declaration_rom[BYTE4_XOR_BE((i*4)+1)] = rom[i];
|
||||
@ -389,7 +391,8 @@ void device_nubus_card_interface::install_declaration_rom(device_t *dev, const c
|
||||
break;
|
||||
|
||||
case 0xb4: // lane 2 only
|
||||
m_declaration_rom.resize_and_clear(romlen*4);
|
||||
m_declaration_rom.resize(romlen*4);
|
||||
memset(&m_declaration_rom[0], 0, romlen*4);
|
||||
for (int i = 0; i < romlen; i++)
|
||||
{
|
||||
m_declaration_rom[BYTE4_XOR_BE((i*4)+2)] = rom[i];
|
||||
@ -398,7 +401,8 @@ void device_nubus_card_interface::install_declaration_rom(device_t *dev, const c
|
||||
break;
|
||||
|
||||
case 0x78: // lane 3 only
|
||||
m_declaration_rom.resize_and_clear(romlen*4);
|
||||
m_declaration_rom.resize(romlen*4);
|
||||
memset(&m_declaration_rom[0], 0, romlen*4);
|
||||
for (int i = 0; i < romlen; i++)
|
||||
{
|
||||
m_declaration_rom[BYTE4_XOR_BE((i*4)+3)] = rom[i];
|
||||
@ -407,7 +411,8 @@ void device_nubus_card_interface::install_declaration_rom(device_t *dev, const c
|
||||
break;
|
||||
|
||||
case 0xc3: // lanes 0, 1
|
||||
m_declaration_rom.resize_and_clear(romlen*2);
|
||||
m_declaration_rom.resize(romlen*2);
|
||||
memset(&m_declaration_rom[0], 0, romlen*4);
|
||||
for (int i = 0; i < romlen/2; i++)
|
||||
{
|
||||
m_declaration_rom[BYTE4_XOR_BE((i*4)+0)] = rom[(i*2)];
|
||||
@ -417,7 +422,8 @@ void device_nubus_card_interface::install_declaration_rom(device_t *dev, const c
|
||||
break;
|
||||
|
||||
case 0xa5: // lanes 0, 2
|
||||
m_declaration_rom.resize_and_clear(romlen*2);
|
||||
m_declaration_rom.resize(romlen*2);
|
||||
memset(&m_declaration_rom[0], 0, romlen*4);
|
||||
for (int i = 0; i < romlen/2; i++)
|
||||
{
|
||||
m_declaration_rom[BYTE4_XOR_BE((i*4)+0)] = rom[(i*2)];
|
||||
@ -427,7 +433,8 @@ void device_nubus_card_interface::install_declaration_rom(device_t *dev, const c
|
||||
break;
|
||||
|
||||
case 0x3c: // lanes 2,3
|
||||
m_declaration_rom.resize_and_clear(romlen*2);
|
||||
m_declaration_rom.resize(romlen*2);
|
||||
memset(&m_declaration_rom[0], 0, romlen*4);
|
||||
for (int i = 0; i < romlen/2; i++)
|
||||
{
|
||||
m_declaration_rom[BYTE4_XOR_BE((i*4)+2)] = rom[(i*2)];
|
||||
@ -458,10 +465,10 @@ void device_nubus_card_interface::install_declaration_rom(device_t *dev, const c
|
||||
// printf("Installing ROM at %x, length %x\n", addr, romlen);
|
||||
if (mirror_all_mb) // mirror the declaration ROM across all 16 megs of the slot space
|
||||
{
|
||||
m_nubus->install_bank(addr, addr+romlen-1, 0, 0x00f00000, bankname, m_declaration_rom);
|
||||
m_nubus->install_bank(addr, addr+romlen-1, 0, 0x00f00000, bankname, &m_declaration_rom[0]);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_nubus->install_bank(addr, addr+romlen-1, 0, 0, bankname, m_declaration_rom);
|
||||
m_nubus->install_bank(addr, addr+romlen-1, 0, 0, bankname, &m_declaration_rom[0]);
|
||||
}
|
||||
}
|
||||
|
@ -112,7 +112,7 @@ void jmfb_device::device_start()
|
||||
// printf("[JMFB %p] slotspace = %x\n", this, slotspace);
|
||||
|
||||
m_vram.resize(VRAM_SIZE);
|
||||
install_bank(slotspace, slotspace+VRAM_SIZE-1, 0, 0, "bank_48gc", m_vram);
|
||||
install_bank(slotspace, slotspace+VRAM_SIZE-1, 0, 0, "bank_48gc", &m_vram[0]);
|
||||
|
||||
m_nubus->install_device(slotspace+0x200000, slotspace+0x2003ff, read32_delegate(FUNC(jmfb_device::mac_48gc_r), this), write32_delegate(FUNC(jmfb_device::mac_48gc_w), this));
|
||||
|
||||
@ -135,7 +135,7 @@ void jmfb_device::device_reset()
|
||||
m_xres = 640;
|
||||
m_yres = 480;
|
||||
m_mode = 0;
|
||||
memset(m_vram, 0, VRAM_SIZE);
|
||||
memset(&m_vram[0], 0, VRAM_SIZE);
|
||||
memset(m_palette, 0, sizeof(m_palette));
|
||||
}
|
||||
|
||||
@ -159,7 +159,7 @@ UINT32 jmfb_device::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, c
|
||||
{
|
||||
UINT32 *scanline, *base;
|
||||
int x, y;
|
||||
UINT8 *vram8 = (UINT8 *)m_vram;
|
||||
UINT8 *vram8 = &m_vram[0];
|
||||
UINT8 pixels;
|
||||
|
||||
// first time? kick off the VBL timer
|
||||
|
@ -96,7 +96,7 @@ void nubus_cb264_device::device_start()
|
||||
// printf("[cb264 %p] slotspace = %x\n", this, slotspace);
|
||||
|
||||
m_vram.resize(VRAM_SIZE);
|
||||
install_bank(slotspace, slotspace+VRAM_SIZE-1, 0, 0, "bank_cb264", m_vram);
|
||||
install_bank(slotspace, slotspace+VRAM_SIZE-1, 0, 0, "bank_cb264", &m_vram[0]);
|
||||
|
||||
m_nubus->install_device(slotspace+0xff6000, slotspace+0xff60ff, read32_delegate(FUNC(nubus_cb264_device::cb264_r), this), write32_delegate(FUNC(nubus_cb264_device::cb264_w), this));
|
||||
m_nubus->install_device(slotspace+0xff7000, slotspace+0xff70ff, read32_delegate(FUNC(nubus_cb264_device::cb264_ramdac_r), this), write32_delegate(FUNC(nubus_cb264_device::cb264_ramdac_w), this));
|
||||
@ -113,7 +113,7 @@ void nubus_cb264_device::device_reset()
|
||||
m_clutoffs = 0;
|
||||
m_cb264_vbl_disable = 1;
|
||||
m_cb264_mode = 0;
|
||||
memset(m_vram, 0, VRAM_SIZE);
|
||||
memset(&m_vram[0], 0, VRAM_SIZE);
|
||||
memset(m_palette, 0, sizeof(m_palette));
|
||||
}
|
||||
|
||||
|
@ -118,7 +118,7 @@ void nubus_m2hires_device::device_reset()
|
||||
m_clutoffs = 0;
|
||||
m_vbl_disable = 1;
|
||||
m_mode = 0;
|
||||
memset(m_vram, 0, VRAM_SIZE);
|
||||
memset(&m_vram[0], 0, VRAM_SIZE);
|
||||
memset(m_palette, 0, sizeof(m_palette));
|
||||
|
||||
m_palette[0] = rgb_t(255, 255, 255);
|
||||
@ -148,7 +148,7 @@ UINT32 nubus_m2hires_device::screen_update(screen_device &screen, bitmap_rgb32 &
|
||||
int x, y;
|
||||
UINT8 pixels, *vram;
|
||||
|
||||
vram = m_vram + 0x20;
|
||||
vram = &m_vram[0x20];
|
||||
|
||||
switch (m_mode)
|
||||
{
|
||||
|
@ -119,7 +119,7 @@ void nubus_m2video_device::device_reset()
|
||||
m_clutoffs = 0;
|
||||
m_vbl_disable = 1;
|
||||
m_mode = 0;
|
||||
memset(m_vram, 0, VRAM_SIZE);
|
||||
memset(&m_vram[0], 0, VRAM_SIZE);
|
||||
memset(m_palette, 0, sizeof(m_palette));
|
||||
|
||||
m_palette[0] = rgb_t(255, 255, 255);
|
||||
@ -149,7 +149,7 @@ UINT32 nubus_m2video_device::screen_update(screen_device &screen, bitmap_rgb32 &
|
||||
int x, y;
|
||||
UINT8 pixels, *vram;
|
||||
|
||||
vram = m_vram + 0x20;
|
||||
vram = &m_vram[0x20];
|
||||
|
||||
switch (m_mode)
|
||||
{
|
||||
|
@ -119,7 +119,7 @@ void nubus_radiustpd_device::device_reset()
|
||||
m_clutoffs = 0;
|
||||
m_vbl_disable = 1;
|
||||
m_mode = 0;
|
||||
memset(m_vram, 0, VRAM_SIZE);
|
||||
memset(&m_vram[0], 0, VRAM_SIZE);
|
||||
memset(m_palette, 0, sizeof(m_palette));
|
||||
|
||||
m_palette[1] = rgb_t(255, 255, 255);
|
||||
@ -149,7 +149,7 @@ UINT32 nubus_radiustpd_device::screen_update(screen_device &screen, bitmap_rgb32
|
||||
int x, y;
|
||||
UINT8 pixels, *vram;
|
||||
|
||||
vram = m_vram + 0x200;
|
||||
vram = &m_vram[0x200];
|
||||
|
||||
for (y = 0; y < 880; y++)
|
||||
{
|
||||
|
@ -121,7 +121,7 @@ void nubus_spec8s3_device::device_reset()
|
||||
m_mode = 0;
|
||||
m_vbl_pending = false;
|
||||
m_parameter = 0;
|
||||
memset(m_vram, 0, VRAM_SIZE);
|
||||
memset(&m_vram[0], 0, VRAM_SIZE);
|
||||
memset(m_palette, 0, sizeof(m_palette));
|
||||
|
||||
m_palette[0] = rgb_t(255, 255, 255);
|
||||
@ -152,7 +152,7 @@ UINT32 nubus_spec8s3_device::screen_update(screen_device &screen, bitmap_rgb32 &
|
||||
int x, y;
|
||||
UINT8 pixels, *vram;
|
||||
|
||||
vram = m_vram + 0x400;
|
||||
vram = &m_vram[0x400];
|
||||
|
||||
switch (m_mode)
|
||||
{
|
||||
|
@ -135,7 +135,7 @@ void nubus_specpdq_device::device_reset()
|
||||
m_clutoffs = 0;
|
||||
m_vbl_disable = 1;
|
||||
m_mode = 0;
|
||||
memset(m_vram, 0, VRAM_SIZE);
|
||||
memset(&m_vram[0], 0, VRAM_SIZE);
|
||||
memset(m_palette_val, 0, sizeof(m_palette_val));
|
||||
|
||||
m_palette_val[0] = rgb_t(255, 255, 255);
|
||||
@ -166,7 +166,7 @@ UINT32 nubus_specpdq_device::screen_update(screen_device &screen, bitmap_rgb32 &
|
||||
UINT8 pixels, *vram;
|
||||
|
||||
// first time? kick off the VBL timer
|
||||
vram = m_vram + 0x9000;
|
||||
vram = &m_vram[0x9000];
|
||||
|
||||
switch (m_mode)
|
||||
{
|
||||
@ -424,7 +424,7 @@ WRITE32_MEMBER( nubus_specpdq_device::specpdq_w )
|
||||
if (data == 2)
|
||||
{
|
||||
int x, y;
|
||||
UINT8 *vram = m_vram + m_vram_addr + m_patofsx; // m_vram_addr is missing the low 2 bits, we add them back here
|
||||
UINT8 *vram = &m_vram[m_vram_addr + m_patofsx]; // m_vram_addr is missing the low 2 bits, we add them back here
|
||||
|
||||
// printf("Fill rectangle with %02x %02x %02x %02x, width %d height %d\n", m_fillbytes[0], m_fillbytes[1], m_fillbytes[2], m_fillbytes[3], m_width, m_height);
|
||||
|
||||
@ -439,8 +439,8 @@ WRITE32_MEMBER( nubus_specpdq_device::specpdq_w )
|
||||
else if ((data == 0x101) || (data == 0x100))
|
||||
{
|
||||
int x, y;
|
||||
UINT8 *vram = m_vram + m_vram_addr;
|
||||
UINT8 *vramsrc = m_vram + m_vram_src;
|
||||
UINT8 *vram = &m_vram[m_vram_addr];
|
||||
UINT8 *vramsrc = &m_vram[m_vram_src];
|
||||
|
||||
// printf("Copy rectangle, width %d height %d src %x dst %x\n", m_width, m_height, m_vram_addr, m_vram_src);
|
||||
|
||||
|
@ -92,8 +92,8 @@ void nubus_vikbw_device::device_start()
|
||||
// printf("[vikbw %p] slotspace = %x\n", this, slotspace);
|
||||
|
||||
m_vram.resize(VRAM_SIZE);
|
||||
install_bank(slotspace+0x40000, slotspace+0x40000+VRAM_SIZE-1, 0, 0, "bank_vikbw", m_vram);
|
||||
install_bank(slotspace+0x940000, slotspace+0x940000+VRAM_SIZE-1, 0, 0, "bank_vikbw2", m_vram);
|
||||
install_bank(slotspace+0x40000, slotspace+0x40000+VRAM_SIZE-1, 0, 0, "bank_vikbw", &m_vram[0]);
|
||||
install_bank(slotspace+0x940000, slotspace+0x940000+VRAM_SIZE-1, 0, 0, "bank_vikbw2", &m_vram[0]);
|
||||
|
||||
m_nubus->install_device(slotspace, slotspace+3, read32_delegate(FUNC(nubus_vikbw_device::viking_enable_r), this), write32_delegate(FUNC(nubus_vikbw_device::viking_disable_w), this));
|
||||
m_nubus->install_device(slotspace+0x80000, slotspace+0x80000+3, read32_delegate(FUNC(nubus_vikbw_device::viking_ack_r), this), write32_delegate(FUNC(nubus_vikbw_device::viking_ack_w), this));
|
||||
@ -106,7 +106,7 @@ void nubus_vikbw_device::device_start()
|
||||
void nubus_vikbw_device::device_reset()
|
||||
{
|
||||
m_vbl_disable = 1;
|
||||
memset(m_vram, 0, VRAM_SIZE);
|
||||
memset(&m_vram[0], 0, VRAM_SIZE);
|
||||
|
||||
m_palette[0] = rgb_t(255, 255, 255);
|
||||
m_palette[1] = rgb_t(0, 0, 0);
|
||||
|
@ -121,7 +121,7 @@ void nubus_wsportrait_device::device_reset()
|
||||
m_clutoffs = 0;
|
||||
m_vbl_disable = 1;
|
||||
m_mode = 0;
|
||||
memset(m_vram, 0, VRAM_SIZE);
|
||||
memset(&m_vram[0], 0, VRAM_SIZE);
|
||||
memset(m_palette, 0, sizeof(m_palette));
|
||||
}
|
||||
|
||||
@ -149,7 +149,7 @@ UINT32 nubus_wsportrait_device::screen_update(screen_device &screen, bitmap_rgb3
|
||||
UINT8 pixels, *vram;
|
||||
|
||||
// first time? kick off the VBL timer
|
||||
vram = m_vram + 0x80;
|
||||
vram = &m_vram[0x80];
|
||||
|
||||
switch (m_mode)
|
||||
{
|
||||
|
@ -120,7 +120,7 @@ void nubus_xceed30hr_device::device_reset()
|
||||
m_clutoffs = 0;
|
||||
m_vbl_disable = 1;
|
||||
m_mode = 0;
|
||||
memset(m_vram, 0, VRAM_SIZE);
|
||||
memset(&m_vram[0], 0, VRAM_SIZE);
|
||||
memset(m_palette, 0, sizeof(m_palette));
|
||||
|
||||
m_palette[0] = rgb_t(255, 255, 255);
|
||||
@ -150,7 +150,7 @@ UINT32 nubus_xceed30hr_device::screen_update(screen_device &screen, bitmap_rgb32
|
||||
int x, y;
|
||||
UINT8 pixels, *vram;
|
||||
|
||||
vram = m_vram + 1024;
|
||||
vram = &m_vram[1024];
|
||||
|
||||
switch (m_mode)
|
||||
{
|
||||
|
@ -113,7 +113,7 @@ void nubus_cb264se30_device::device_reset()
|
||||
m_clutoffs = 0;
|
||||
m_vbl_disable = 1;
|
||||
m_mode = 4;
|
||||
memset(m_vram, 0, VRAM_SIZE);
|
||||
memset(&m_vram[0], 0, VRAM_SIZE);
|
||||
memset(m_palette, 0, sizeof(m_palette));
|
||||
|
||||
m_palette[0] = rgb_t(255, 255, 255);
|
||||
@ -143,7 +143,7 @@ UINT32 nubus_cb264se30_device::screen_update(screen_device &screen, bitmap_rgb32
|
||||
int x, y;
|
||||
UINT8 pixels, *vram;
|
||||
|
||||
vram = m_vram + (8*1024);
|
||||
vram = &m_vram[8*1024];
|
||||
|
||||
switch (m_mode)
|
||||
{
|
||||
|
@ -116,7 +116,7 @@ void nubus_xceedmc30_device::device_reset()
|
||||
m_clutoffs = 0;
|
||||
m_vbl_disable = 1;
|
||||
m_mode = 0;
|
||||
memset(m_vram, 0, VRAM_SIZE);
|
||||
memset(&m_vram[0], 0, VRAM_SIZE);
|
||||
memset(m_palette, 0, sizeof(m_palette));
|
||||
|
||||
m_palette[0] = rgb_t(255, 255, 255);
|
||||
@ -146,7 +146,7 @@ UINT32 nubus_xceedmc30_device::screen_update(screen_device &screen, bitmap_rgb32
|
||||
int x, y;
|
||||
UINT8 pixels, *vram;
|
||||
|
||||
vram = m_vram + (4*1024);
|
||||
vram = &m_vram[4*1024];
|
||||
|
||||
switch (m_mode)
|
||||
{
|
||||
|
@ -120,7 +120,7 @@ void nubus_procolor816_device::device_reset()
|
||||
m_clutoffs = 0;
|
||||
m_vbl_disable = 1;
|
||||
m_mode = 3;
|
||||
memset(m_vram, 0, VRAM_SIZE);
|
||||
memset(&m_vram[0], 0, VRAM_SIZE);
|
||||
memset(m_palette, 0, sizeof(m_palette));
|
||||
|
||||
m_palette[0] = rgb_t(255, 255, 255);
|
||||
@ -150,7 +150,7 @@ UINT32 nubus_procolor816_device::screen_update(screen_device &screen, bitmap_rgb
|
||||
int x, y;
|
||||
UINT8 pixels, *vram;
|
||||
|
||||
vram = m_vram + 4;
|
||||
vram = &m_vram[4];
|
||||
|
||||
switch (m_mode)
|
||||
{
|
||||
|
@ -112,7 +112,7 @@ void nubus_lview_device::device_reset()
|
||||
{
|
||||
m_vbl_disable = 1;
|
||||
m_protstate = 0;
|
||||
memset(m_vram, 0, VRAM_SIZE);
|
||||
memset(&m_vram[0], 0, VRAM_SIZE);
|
||||
memset(m_palette, 0, sizeof(m_palette));
|
||||
|
||||
m_palette[0] = rgb_t(255, 255, 255);
|
||||
@ -142,7 +142,7 @@ UINT32 nubus_lview_device::screen_update(screen_device &screen, bitmap_rgb32 &bi
|
||||
int x, y;
|
||||
UINT8 pixels, *vram;
|
||||
|
||||
vram = m_vram + 0x20;
|
||||
vram = &m_vram[0x20];
|
||||
|
||||
for (y = 0; y < 600; y++)
|
||||
{
|
||||
|
@ -39,9 +39,9 @@ public:
|
||||
void rom_alloc(UINT32 size, const char *tag);
|
||||
void ram_alloc(UINT32 size);
|
||||
UINT8* get_rom_base() { return m_rom; }
|
||||
UINT8* get_ram_base() { return m_ram; }
|
||||
UINT8* get_ram_base() { return &m_ram[0]; }
|
||||
UINT32 get_rom_size() { return m_rom_size; }
|
||||
UINT32 get_ram_size() { return m_ram.count(); }
|
||||
UINT32 get_ram_size() { return m_ram.size(); }
|
||||
|
||||
protected:
|
||||
// internal state
|
||||
|
@ -80,7 +80,7 @@ READ8_MEMBER(pce_rom_device::read_cart)
|
||||
READ8_MEMBER(pce_cdsys3_device::read_cart)
|
||||
{
|
||||
int bank = offset / 0x20000;
|
||||
if (m_ram && offset >= 0xd0000)
|
||||
if (!m_ram.empty() && offset >= 0xd0000)
|
||||
return m_ram[offset - 0xd0000];
|
||||
|
||||
return m_rom[rom_bank_map[bank] * 0x20000 + (offset & 0x1ffff)];
|
||||
@ -88,7 +88,7 @@ READ8_MEMBER(pce_cdsys3_device::read_cart)
|
||||
|
||||
WRITE8_MEMBER(pce_cdsys3_device::write_cart)
|
||||
{
|
||||
if (m_ram && offset >= 0xd0000)
|
||||
if (!m_ram.empty() && offset >= 0xd0000)
|
||||
m_ram[offset - 0xd0000] = data;
|
||||
}
|
||||
|
||||
@ -96,7 +96,7 @@ WRITE8_MEMBER(pce_cdsys3_device::write_cart)
|
||||
READ8_MEMBER(pce_populous_device::read_cart)
|
||||
{
|
||||
int bank = offset / 0x20000;
|
||||
if (m_ram && offset >= 0x80000 && offset < 0x88000)
|
||||
if (!m_ram.empty() && offset >= 0x80000 && offset < 0x88000)
|
||||
return m_ram[offset & 0x7fff];
|
||||
|
||||
return m_rom[rom_bank_map[bank] * 0x20000 + (offset & 0x1ffff)];
|
||||
@ -104,7 +104,7 @@ READ8_MEMBER(pce_populous_device::read_cart)
|
||||
|
||||
WRITE8_MEMBER(pce_populous_device::write_cart)
|
||||
{
|
||||
if (m_ram && offset >= 0x80000 && offset < 0x88000)
|
||||
if (!m_ram.empty() && offset >= 0x80000 && offset < 0x88000)
|
||||
m_ram[offset & 0x7fff] = data;
|
||||
}
|
||||
|
||||
|
@ -348,9 +348,9 @@ void pce_cart_slot_device::get_default_card_software(astring &result)
|
||||
dynamic_buffer rom(len);
|
||||
int type;
|
||||
|
||||
core_fread(m_file, rom, len);
|
||||
core_fread(m_file, &rom[0], len);
|
||||
|
||||
type = get_cart_type(rom, len);
|
||||
type = get_cart_type(&rom[0], len);
|
||||
slot_string = pce_get_slot(type);
|
||||
|
||||
//printf("type: %s\n", slot_string);
|
||||
|
@ -33,9 +33,9 @@ public:
|
||||
void rom_alloc(UINT32 size, const char *tag);
|
||||
void ram_alloc(UINT32 size);
|
||||
UINT8* get_rom_base() { return m_rom; }
|
||||
UINT8* get_ram_base() { return m_ram; }
|
||||
UINT8* get_ram_base() { return &m_ram[0]; }
|
||||
UINT32 get_rom_size() { return m_rom_size; }
|
||||
UINT32 get_ram_size() { return m_ram.count(); }
|
||||
UINT32 get_ram_size() { return m_ram.size(); }
|
||||
|
||||
// internal state
|
||||
UINT8 *m_rom;
|
||||
|
@ -67,7 +67,7 @@ void saturn_bram_device::nvram_default()
|
||||
{
|
||||
static const UINT8 init[16] =
|
||||
{ 'B', 'a', 'c', 'k', 'U', 'p', 'R', 'a', 'm', ' ', 'F', 'o', 'r', 'm', 'a', 't' };
|
||||
memset(m_ext_bram, 0, m_ext_bram.bytes());
|
||||
memset(&m_ext_bram[0], 0, m_ext_bram.size());
|
||||
|
||||
for (int i = 0; i < 32; i++)
|
||||
{
|
||||
@ -85,7 +85,7 @@ void saturn_bram_device::nvram_default()
|
||||
|
||||
READ32_MEMBER(saturn_bram_device::read_ext_bram)
|
||||
{
|
||||
if (offset < m_ext_bram.bytes()/2)
|
||||
if (offset < m_ext_bram.size()/2)
|
||||
return (m_ext_bram[offset * 2] << 16) | m_ext_bram[offset * 2 + 1];
|
||||
else
|
||||
{
|
||||
@ -96,7 +96,7 @@ READ32_MEMBER(saturn_bram_device::read_ext_bram)
|
||||
|
||||
WRITE32_MEMBER(saturn_bram_device::write_ext_bram)
|
||||
{
|
||||
if (offset < m_ext_bram.bytes()/2)
|
||||
if (offset < m_ext_bram.size()/2)
|
||||
{
|
||||
if (ACCESSING_BITS_16_23)
|
||||
m_ext_bram[offset * 2 + 0] = (data & 0x00ff0000) >> 16;
|
||||
|
@ -20,8 +20,8 @@ public:
|
||||
|
||||
// device_nvram_interface overrides
|
||||
virtual void nvram_default();
|
||||
virtual void nvram_read(emu_file &file) { if (m_ext_bram != NULL) { file.read(m_ext_bram, m_ext_bram.bytes()); } }
|
||||
virtual void nvram_write(emu_file &file) { if (m_ext_bram != NULL) { file.write(m_ext_bram, m_ext_bram.bytes()); } }
|
||||
virtual void nvram_read(emu_file &file) { if (!m_ext_bram.empty()) file.read(&m_ext_bram[0], m_ext_bram.size()); }
|
||||
virtual void nvram_write(emu_file &file) { if (!m_ext_bram.empty()) file.write(&m_ext_bram[0], m_ext_bram.size()); }
|
||||
|
||||
// reading and writing
|
||||
virtual DECLARE_READ32_MEMBER(read_ext_bram);
|
||||
|
@ -58,7 +58,7 @@ void saturn_dram_device::device_reset()
|
||||
READ32_MEMBER(saturn_dram_device::read_ext_dram0)
|
||||
{
|
||||
if (offset < (0x400000/2)/4)
|
||||
return m_ext_dram0[offset % m_ext_dram0.count()];
|
||||
return m_ext_dram0[offset % m_ext_dram0.size()];
|
||||
else
|
||||
{
|
||||
popmessage("DRAM0 read beyond its boundary! offs: %X\n", offset);
|
||||
@ -69,7 +69,7 @@ READ32_MEMBER(saturn_dram_device::read_ext_dram0)
|
||||
READ32_MEMBER(saturn_dram_device::read_ext_dram1)
|
||||
{
|
||||
if (offset < (0x400000/2)/4)
|
||||
return m_ext_dram1[offset % m_ext_dram1.count()];
|
||||
return m_ext_dram1[offset % m_ext_dram1.size()];
|
||||
else
|
||||
{
|
||||
popmessage("DRAM1 read beyond its boundary! offs: %X\n", offset);
|
||||
@ -80,7 +80,7 @@ READ32_MEMBER(saturn_dram_device::read_ext_dram1)
|
||||
WRITE32_MEMBER(saturn_dram_device::write_ext_dram0)
|
||||
{
|
||||
if (offset < (0x400000/2)/4)
|
||||
COMBINE_DATA(&m_ext_dram0[offset % m_ext_dram0.count()]);
|
||||
COMBINE_DATA(&m_ext_dram0[offset % m_ext_dram0.size()]);
|
||||
else
|
||||
popmessage("DRAM0 write beyond its boundary! offs: %X data: %X\n", offset, data);
|
||||
}
|
||||
@ -88,7 +88,7 @@ WRITE32_MEMBER(saturn_dram_device::write_ext_dram0)
|
||||
WRITE32_MEMBER(saturn_dram_device::write_ext_dram1)
|
||||
{
|
||||
if (offset < (0x400000/2)/4)
|
||||
COMBINE_DATA(&m_ext_dram1[offset % m_ext_dram1.count()]);
|
||||
COMBINE_DATA(&m_ext_dram1[offset % m_ext_dram1.size()]);
|
||||
else
|
||||
popmessage("DRAM1 write beyond its boundary! offs: %X data: %X\n", offset, data);
|
||||
}
|
||||
|
@ -34,13 +34,13 @@ public:
|
||||
void dram0_alloc(UINT32 size);
|
||||
void dram1_alloc(UINT32 size);
|
||||
UINT32* get_rom_base() { return m_rom; }
|
||||
UINT32* get_ext_dram0_base() { return m_ext_dram0; }
|
||||
UINT32* get_ext_dram1_base() { return m_ext_dram1; }
|
||||
UINT8* get_ext_bram_base() { return m_ext_bram; }
|
||||
UINT32* get_ext_dram0_base() { return &m_ext_dram0[0]; }
|
||||
UINT32* get_ext_dram1_base() { return &m_ext_dram1[0]; }
|
||||
UINT8* get_ext_bram_base() { return &m_ext_bram[0]; }
|
||||
UINT32 get_rom_size() { return m_rom_size; }
|
||||
UINT32 get_ext_dram0_size() { return m_ext_dram0.bytes(); }
|
||||
UINT32 get_ext_dram1_size() { return m_ext_dram1.bytes(); }
|
||||
UINT32 get_ext_bram_size() { return m_ext_bram.bytes(); }
|
||||
UINT32 get_ext_dram0_size() { return m_ext_dram0.size()*sizeof(UINT32); }
|
||||
UINT32 get_ext_dram1_size() { return m_ext_dram1.size()*sizeof(UINT32); }
|
||||
UINT32 get_ext_bram_size() { return m_ext_bram.size(); }
|
||||
|
||||
protected:
|
||||
int m_cart_type;
|
||||
@ -48,8 +48,8 @@ protected:
|
||||
// internal state
|
||||
UINT32 *m_rom;
|
||||
UINT32 m_rom_size;
|
||||
dynamic_array<UINT32> m_ext_dram0;
|
||||
dynamic_array<UINT32> m_ext_dram1;
|
||||
std::vector<UINT32> m_ext_dram0;
|
||||
std::vector<UINT32> m_ext_dram1;
|
||||
dynamic_buffer m_ext_bram;
|
||||
};
|
||||
|
||||
|
@ -260,11 +260,11 @@ void s1410_device::ExecCommand()
|
||||
if ((m_disk) && (m_blocks))
|
||||
{
|
||||
dynamic_buffer data(m_sector_bytes);
|
||||
memset(data, 0xc6, m_sector_bytes);
|
||||
memset(&data[0], 0xc6, m_sector_bytes);
|
||||
|
||||
while (m_blocks > 0)
|
||||
{
|
||||
if (!hard_disk_write(m_disk, m_lba, data))
|
||||
if (!hard_disk_write(m_disk, m_lba, &data[0]))
|
||||
{
|
||||
logerror("S1410: HD write error!\n");
|
||||
}
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user