ngp: zerofill all class variables

This commit is contained in:
hap 2023-05-22 14:11:21 +02:00
parent ddbc47fc9b
commit 12629a6e9f

View File

@ -98,12 +98,14 @@ the Neogeo Pocket.
#include "emu.h" #include "emu.h"
#include "bus/generic/slot.h" #include "bus/generic/slot.h"
#include "bus/generic/carts.h" #include "bus/generic/carts.h"
#include "cpu/tlcs900/tmp95c061.h" #include "cpu/tlcs900/tmp95c061.h"
#include "cpu/z80/z80.h" #include "cpu/z80/z80.h"
#include "sound/t6w28.h" #include "sound/t6w28.h"
#include "sound/dac.h" #include "sound/dac.h"
#include "k1ge.h" #include "k1ge.h"
#include "screen.h" #include "screen.h"
#include "softlist_dev.h" #include "softlist_dev.h"
@ -129,8 +131,8 @@ enum flash_state
class ngp_state : public driver_device, public device_nvram_interface class ngp_state : public driver_device, public device_nvram_interface
{ {
public: public:
ngp_state(const machine_config &mconfig, device_type type, const char *tag) ngp_state(const machine_config &mconfig, device_type type, const char *tag) :
: driver_device(mconfig, type, tag), driver_device(mconfig, type, tag),
device_nvram_interface(mconfig, *this), device_nvram_interface(mconfig, *this),
m_maincpu(*this, "maincpu"), m_maincpu(*this, "maincpu"),
m_z80(*this, "soundcpu"), m_z80(*this, "soundcpu"),
@ -142,17 +144,7 @@ public:
m_k1ge(*this, "k1ge"), m_k1ge(*this, "k1ge"),
m_io_controls(*this, "Controls"), m_io_controls(*this, "Controls"),
m_io_power(*this, "Power") m_io_power(*this, "Power")
{ { }
m_flash_chip[0].present = 0;
m_flash_chip[0].state = F_READ;
m_flash_chip[0].data = nullptr;
m_flash_chip[1].present = 0;
m_flash_chip[1].state = F_READ;
m_flash_chip[1].data = nullptr;
m_nvram_loaded = false;
}
void ngp_common(machine_config &config); void ngp_common(machine_config &config);
void ngp(machine_config &config); void ngp(machine_config &config);
@ -160,23 +152,24 @@ public:
DECLARE_INPUT_CHANGED_MEMBER(power_callback); DECLARE_INPUT_CHANGED_MEMBER(power_callback);
private: protected:
virtual void machine_start() override; virtual void machine_start() override;
virtual void machine_reset() override; virtual void machine_reset() override;
uint8_t m_io_reg[0x40]; private:
uint8_t m_old_to3;
emu_timer* m_seconds_timer; uint8_t m_io_reg[0x40] = { };
uint8_t m_old_to3 = 0;
emu_timer* m_seconds_timer = nullptr;
struct { struct {
int present; int present = 0;
uint8_t manufacturer_id; uint8_t manufacturer_id = 0;
uint8_t device_id; uint8_t device_id = 0;
uint8_t *data; uint8_t *data = nullptr;
uint8_t org_data[16]; uint8_t org_data[16] = { };
int state; int state = F_READ;
uint8_t command[2]; uint8_t command[2] = { };
} m_flash_chip[2]; } m_flash_chip[2];
required_device<tmp95c061_device> m_maincpu; required_device<tmp95c061_device> m_maincpu;
@ -203,7 +196,7 @@ private:
DECLARE_WRITE_LINE_MEMBER(ngp_vblank_pin_w); DECLARE_WRITE_LINE_MEMBER(ngp_vblank_pin_w);
DECLARE_WRITE_LINE_MEMBER(ngp_hblank_pin_w); DECLARE_WRITE_LINE_MEMBER(ngp_hblank_pin_w);
void ngp_tlcs900_porta(offs_t offset, uint8_t data); void ngp_tlcs900_porta(offs_t offset, uint8_t data);
uint32_t screen_update_ngp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); uint32_t screen_update_ngp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_CALLBACK_MEMBER(ngp_seconds_callback); TIMER_CALLBACK_MEMBER(ngp_seconds_callback);
@ -214,7 +207,7 @@ private:
void z80_io(address_map &map); void z80_io(address_map &map);
void z80_mem(address_map &map); void z80_mem(address_map &map);
bool m_nvram_loaded; bool m_nvram_loaded = false;
required_ioport m_io_controls; required_ioport m_io_controls;
required_ioport m_io_power; required_ioport m_io_power;
@ -268,7 +261,7 @@ uint8_t ngp_state::ngp_io_r(offs_t offset)
break; break;
case 0x31: case 0x31:
data = m_io_power->read() & 0x01; data = m_io_power->read() & 0x01;
/* Sub-batttery OK */ /* Sub-battery OK */
data |= 0x02; data |= 0x02;
break; break;
} }
@ -614,7 +607,7 @@ INPUT_CHANGED_MEMBER(ngp_state::power_callback)
{ {
if (m_io_reg[0x33] & 0x04) if (m_io_reg[0x33] & 0x04)
{ {
m_maincpu->set_input_line(TLCS900_NMI, (m_io_power->read() & 0x01 ) ? CLEAR_LINE : ASSERT_LINE); m_maincpu->set_input_line(TLCS900_NMI, (m_io_power->read() & 0x01) ? CLEAR_LINE : ASSERT_LINE);
} }
} }
@ -835,7 +828,7 @@ void ngp_state::ngp_common(machine_config &config)
m_maincpu->set_am8_16(1); m_maincpu->set_am8_16(1);
m_maincpu->set_addrmap(AS_PROGRAM, &ngp_state::ngp_mem); m_maincpu->set_addrmap(AS_PROGRAM, &ngp_state::ngp_mem);
m_maincpu->porta_write().set(FUNC(ngp_state::ngp_tlcs900_porta)); m_maincpu->porta_write().set(FUNC(ngp_state::ngp_tlcs900_porta));
m_maincpu->an_read<0>().set_constant(0x3ff); m_maincpu->an_read<0>().set_constant(0x3ff); // main battery power
z80_device &soundcpu(Z80(config, "soundcpu", 6.144_MHz_XTAL/2)); z80_device &soundcpu(Z80(config, "soundcpu", 6.144_MHz_XTAL/2));
soundcpu.set_addrmap(AS_PROGRAM, &ngp_state::z80_mem); soundcpu.set_addrmap(AS_PROGRAM, &ngp_state::z80_mem);