Replace dynamic_array with std::vector [O. Galibert]

This commit is contained in:
Olivier Galibert 2015-04-12 22:53:48 +02:00
parent 75e8861950
commit 278cf84e55
457 changed files with 2459 additions and 2486 deletions

View File

@ -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);

View File

@ -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

View File

@ -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)
{

View File

@ -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

View File

@ -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);

View File

@ -43,7 +43,7 @@ protected:
private:
required_ioport m_config;
dynamic_array<UINT16> m_ram;
std::vector<UINT16> m_ram;
};
// device type definition

View File

@ -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()

View File

@ -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)); }

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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)); }

View File

@ -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;
}

View File

@ -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);

View File

@ -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);

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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);

View File

@ -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;
};

View File

@ -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]);
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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)); }

View File

@ -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);
}

View File

@ -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);

View File

@ -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

View File

@ -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)))
{

View File

@ -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() {}

View File

@ -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++;

View File

@ -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;

View File

@ -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:

View File

@ -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);

View File

@ -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;
}

View File

@ -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++)

View File

@ -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(&sector_buffer[0], 0, OMTI_DISK_SECTOR_SIZE);
memcpy(&sector_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 = &sector_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 = &sector_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( &sector_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( &sector_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(&sector_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(&sector_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(&sector_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(&sector_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(&sector_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(&sector_buffer[0],
(OMTI_DISK_SECTOR_SIZE +6) * command_buffer[4]);
status_port &= ~OMTI_STATUS_IO;
break;

View File

@ -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);

View File

@ -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;
}

View File

@ -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

View File

@ -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);

View File

@ -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();

View File

@ -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
};

View File

@ -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);
}

View File

@ -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;

View File

@ -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]);
}

View File

@ -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)

View File

@ -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
{

View File

@ -24,7 +24,7 @@ public:
virtual DECLARE_WRITE8_MEMBER(write);
private:
dynamic_array<UINT8> m_ram;
std::vector<UINT8> m_ram;
};

View File

@ -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 )];
}

View File

@ -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];

View File

@ -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 )

View File

@ -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);

View File

@ -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 );
}
}

View File

@ -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 )

View File

@ -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])

View File

@ -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)
{

View File

@ -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);

View File

@ -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;
};

View File

@ -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; } }

View File

@ -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);

View File

@ -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 );
}

View File

@ -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;

View File

@ -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)

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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)];
}

View File

@ -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

View File

@ -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
{

View File

@ -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;
}

View File

@ -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)

View File

@ -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());
}
}

View File

@ -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);
}
}

View File

@ -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();

View File

@ -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);

View File

@ -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");

View File

@ -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)];
}
/*-------------------------------------------------

View File

@ -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

View File

@ -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
}

View File

@ -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]);
}
}

View File

@ -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

View File

@ -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));
}

View File

@ -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)
{

View File

@ -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)
{

View File

@ -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++)
{

View File

@ -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)
{

View File

@ -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);

View File

@ -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);

View File

@ -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)
{

View File

@ -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)
{

View File

@ -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)
{

View File

@ -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)
{

View File

@ -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)
{

View File

@ -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++)
{

View File

@ -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

View File

@ -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;
}

View File

@ -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);

View File

@ -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;

View File

@ -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;

View File

@ -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);

View File

@ -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);
}

View File

@ -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;
};

View File

@ -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