From e3d0004eed9f933844fbf8db6a9f78174fecd3c6 Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Thu, 4 Mar 2021 13:18:00 +0100 Subject: [PATCH] apple2gs, pc9801, slapshot, viper, x68k: initialized some variables which were causing incorrect behaviours in drvnoclear debug builds --- src/mame/drivers/apple2gs.cpp | 37 ++++++++++++++++++++++------------- src/mame/drivers/viper.cpp | 6 ++++++ src/mame/drivers/x68k.cpp | 5 +++++ src/mame/includes/slapshot.h | 4 +++- src/mame/video/pc9801.cpp | 1 + 5 files changed, 38 insertions(+), 15 deletions(-) diff --git a/src/mame/drivers/apple2gs.cpp b/src/mame/drivers/apple2gs.cpp index f2482e2f4bd..dfd45ac88b3 100644 --- a/src/mame/drivers/apple2gs.cpp +++ b/src/mame/drivers/apple2gs.cpp @@ -127,6 +127,9 @@ #include "bus/a2gameio/gameio.h" + +namespace { + // various timing standards #define A2GS_MASTER_CLOCK (XTAL(28'636'363)) #define A2GS_14M (A2GS_MASTER_CLOCK/2) @@ -223,6 +226,17 @@ public: m_diskreg = 0; } + void apple2gs(machine_config &config); + void apple2gsr1(machine_config &config); + + void rom1_init() { m_is_rom3 = false; } + void rom3_init() { m_is_rom3 = true; } + +protected: + virtual void machine_start() override; + virtual void machine_reset() override; + +private: required_device m_maincpu; required_device m_screen; required_device m_scantimer, m_acceltimer; @@ -377,15 +391,9 @@ public: TIMER_DEVICE_CALLBACK_MEMBER(apple2_interrupt); TIMER_DEVICE_CALLBACK_MEMBER(accel_timer); - virtual void machine_start() override; - virtual void machine_reset() override; - void palette_init(palette_device &palette); u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - void apple2gs(machine_config &config); - void apple2gsr1(machine_config &config); - void apple2gs_map(address_map &map); void vectors_map(address_map &map); void c300bank_map(address_map &map); @@ -415,12 +423,8 @@ public: floppy_image_device *m_cur_floppy; int m_devsel; - u8 m_diskreg; // move into private when we can + u8 m_diskreg; - void rom1_init() { m_is_rom3 = false; } - void rom3_init() { m_is_rom3 = true; } - -private: u8 ram0000_r(offs_t offset); void ram0000_w(offs_t offset, u8 data); u8 auxram0000_r(offs_t offset); @@ -496,8 +500,8 @@ private: u8 keyglu_mcu_read(u8 offset); void keyglu_mcu_write(u8 offset, u8 data); - u8 keyglu_816_read(u8 offset); - void keyglu_816_write(u8 offset, u8 data); + [[maybe_unused]] u8 keyglu_816_read(u8 offset); + [[maybe_unused]] void keyglu_816_write(u8 offset, u8 data); void keyglu_regen_irqs(); u8 adbmicro_p0_in(); @@ -512,7 +516,6 @@ private: offs_t dasm_trampoline(std::ostream &stream, offs_t pc, const util::disasm_interface::data_buffer &opcodes, const util::disasm_interface::data_buffer ¶ms); void wdm_trampoline(offs_t offset, u8 data) { }; //m_a2host->wdm_w(space, offset, data); } -private: bool m_is_rom3; int m_speaker_state; @@ -1364,6 +1367,9 @@ void apple2gs_state::machine_start() m_b0_2000bank->set_bank(0); m_b0_4000bank->set_bank(0); m_inh_bank = 0; + m_transchar = 0; + m_anykeydown = false; + std::fill(std::begin(m_megaii_ram), std::end(m_megaii_ram), 0); m_nvram->set_base(m_clock_bram, sizeof(m_clock_bram)); @@ -5102,6 +5108,9 @@ ROM_START(apple2gsr0p2) // 3/10/1986 Cortland prototype, boots as "Apple //'ing ROM_LOAD( "341-0132-d.e12", 0x000, 0x800, CRC(c506efb9) SHA1(8e14e85c645187504ec9d162b3ea614a0c421d32) ) ROM_END +} // Anonymous namespace + + /* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME */ COMP( 1989, apple2gs, 0, apple2, apple2gs, apple2gs, apple2gs_state, rom3_init, "Apple Computer", "Apple IIgs (ROM03)", MACHINE_SUPPORTS_SAVE ) COMP( 198?, apple2gsr3p, apple2gs, 0, apple2gs, apple2gs, apple2gs_state, rom3_init, "Apple Computer", "Apple IIgs (ROM03 prototype)", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/viper.cpp b/src/mame/drivers/viper.cpp index ef1d673a04e..346b2d2eea0 100644 --- a/src/mame/drivers/viper.cpp +++ b/src/mame/drivers/viper.cpp @@ -2418,9 +2418,15 @@ void viper_state::machine_start() save_item(STRUCT_MEMBER(m_epic.global_timer, base_count)); save_item(STRUCT_MEMBER(m_epic.global_timer, enable)); + m_unk_serial_bit_w = 0; + std::fill(std::begin(m_unk_serial_regs), std::end(m_unk_serial_regs), 0); + m_ds2430_data_count = 0; m_ds2430_state = 0; m_ds2430_reset = 0; + + std::fill(std::begin(m_voodoo3_pci_reg), std::end(m_voodoo3_pci_reg), 0); + std::fill(std::begin(m_mpc8240_regs), std::end(m_mpc8240_regs), 0); } void viper_state::machine_reset() diff --git a/src/mame/drivers/x68k.cpp b/src/mame/drivers/x68k.cpp index 84bfb542fa0..254f62d79e8 100644 --- a/src/mame/drivers/x68k.cpp +++ b/src/mame/drivers/x68k.cpp @@ -1551,6 +1551,11 @@ void x68k_state::machine_start() m_mouse.irqactive = false; m_current_ipl = 0; m_adpcm.rate = 0; + m_adpcm.clock = 0; + m_sysport.sram_writeprotect = 0; + m_sysport.monitor = 0; + m_bus_error = false; + m_led_state = 0; } void x68k_state::driver_init() diff --git a/src/mame/includes/slapshot.h b/src/mame/includes/slapshot.h index 9463402b898..68deee608d3 100644 --- a/src/mame/includes/slapshot.h +++ b/src/mame/includes/slapshot.h @@ -88,7 +88,9 @@ private: s32 m_sprites_master_scrolly; bool m_sprites_flipscreen; bool m_prepare_sprites; - int m_dislayer[5]; +#ifdef MAME_DEBUG + int m_dislayer[5] = { 0, 0, 0, 0, 0 }; +#endif emu_timer *m_int6_timer; diff --git a/src/mame/video/pc9801.cpp b/src/mame/video/pc9801.cpp index 3936ab8f1ca..007929063c8 100644 --- a/src/mame/video/pc9801.cpp +++ b/src/mame/video/pc9801.cpp @@ -22,6 +22,7 @@ void pc9801_state::video_start() m_kanji_rom = memregion("kanji")->base(); std::fill(std::begin(m_ex_video_ff), std::end(m_ex_video_ff), 0); + std::fill(std::begin(m_video_ff), std::end(m_video_ff), 0); } uint32_t pc9801_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)