diff --git a/src/mame/drivers/cvs.cpp b/src/mame/drivers/cvs.cpp index 5a9a90bb808..9860039bdf5 100644 --- a/src/mame/drivers/cvs.cpp +++ b/src/mame/drivers/cvs.cpp @@ -958,6 +958,7 @@ void cvs_state::machine_reset() m_stars_on = 0; m_scroll_reg = 0; m_stars_scroll = 0; + m_s2650_flag = 0; } void cvs_state::cvs(machine_config &config) diff --git a/src/mame/drivers/galaxian.cpp b/src/mame/drivers/galaxian.cpp index 4b94c1d206e..48d9988b385 100644 --- a/src/mame/drivers/galaxian.cpp +++ b/src/mame/drivers/galaxian.cpp @@ -7199,6 +7199,9 @@ void gmgalax_state::init_gmgalax() { address_space &space = m_maincpu->space(AS_PROGRAM); + m_stars_enabled = 0; + std::fill(std::begin(m_gfxbank), std::end(m_gfxbank), 0); + /* video extensions */ common_init(&galaxian_state::galaxian_draw_bullet, &galaxian_state::galaxian_draw_background, &gmgalax_state::gmgalax_extend_tile_info, &gmgalax_state::gmgalax_extend_sprite_info); diff --git a/src/mame/drivers/igs017.cpp b/src/mame/drivers/igs017.cpp index 5822ac80966..8de498d8c82 100644 --- a/src/mame/drivers/igs017.cpp +++ b/src/mame/drivers/igs017.cpp @@ -3840,6 +3840,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(igs017_state::iqblocka_interrupt) MACHINE_RESET_MEMBER(igs017_state,iqblocka) { + machine_reset(); m_input_select = 0; } diff --git a/src/mame/drivers/segas18.cpp b/src/mame/drivers/segas18.cpp index 406662caf64..87b27ab0331 100644 --- a/src/mame/drivers/segas18.cpp +++ b/src/mame/drivers/segas18.cpp @@ -2297,7 +2297,7 @@ ROM_END game No. 833-8830-02 pcb No. 837-8832-02 (171-5873-02b) ROM No. 834-8831-02 (171-5987a) - CPU Hiatchi FD1094 317-0196 + CPU Hitachi FD1094 317-0196 */ ROM_START( desertbr ) ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 code - custom CPU 317-0196 @@ -2367,7 +2367,7 @@ ROM_END game No. 833-8830? pcb No. 837-8832? (171-5873B) ROM No. 834-8831 (171-5987A) - CPU Hiatchi FD1094 317-0194 + CPU Hitachi FD1094 317-0194 */ ROM_START( desertbrj ) ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 code - custom CPU 317-0196 @@ -2463,7 +2463,7 @@ ROM_START( hamaway ) ROM_LOAD16_BYTE( "c18.bin", 0x080001, 0x40000, CRC(0f8fe8bb) SHA1(e6f68442b8d4def29b106458496a47344f70d511) ) ROM_LOAD16_BYTE( "11.bin", 0x080000, 0x40000, CRC(2b5eacbc) SHA1(ba3690501588b9c88a31022b44bc3c82b44ae26b) ) ROM_LOAD16_BYTE( "c19.bin", 0x100001, 0x40000, CRC(3c616caa) SHA1(d48a6239b7a52ac13971f7513a65a17af492bfdf) ) // 11xxxxxxxxxxxxxxxx = 0xFF - ROM_LOAD16_BYTE( "12.bin", 0x100000, 0x40000, CRC(c7bbd579) SHA1(ab87bfdad66ea241cb23c9bbfea05f5a1574d6c9) ) // 1ST AND 2ND HALF IDENTICAL (but ok, because pairing ROM has no data in the 2nd half anyway) + ROM_LOAD16_BYTE( "12.bin", 0x100000, 0x40000, CRC(c7bbd579) SHA1(ab87bfdad66ea241cb23c9bbfea05f5a1574d6c9) ) // 1ST AND 2ND HALF IDENTICAL (but ok, because pairing ROM has no data in the 2nd half anyway), also found with the second half filled with 0xff ROM_REGION( 0x200000, "soundcpu", ROMREGION_ERASEFF ) // sound CPU ROM_LOAD( "c16.bin", 0x000000, 0x40000, CRC(913cc18c) SHA1(4bf4ec14937586c3ae77fcad57dcb21f6433ef81) ) diff --git a/src/mame/drivers/supracan.cpp b/src/mame/drivers/supracan.cpp index d37796980ae..6b34d781084 100644 --- a/src/mame/drivers/supracan.cpp +++ b/src/mame/drivers/supracan.cpp @@ -85,6 +85,9 @@ DEBUG TRICKS: #include "softlist.h" #include "tilemap.h" + +namespace { + #define DRAW_DEBUG_ROZ (0) #define DRAW_DEBUG_UNK_SPRITE (0) @@ -131,11 +134,12 @@ public: void supracan(machine_config &config); -private: +protected: virtual void machine_start() override; virtual void machine_reset() override; virtual void video_start() override; +private: void supracan_mem(address_map &map); void supracan_sound_mem(address_map &map); @@ -1974,6 +1978,10 @@ void supracan_state::machine_reset() m_video_timer->adjust(m_screen->time_until_pos(0, 0)); m_irq_mask = 0; + + m_roz_base_addr = 0; + m_roz_mode = 0; + std::fill(std::begin(m_tilemap_base_addr), std::end(m_tilemap_base_addr), 0); } /* gfxdecode is retained for reference purposes but not otherwise used by the driver */ @@ -2094,5 +2102,8 @@ void supracan_state::supracan(machine_config &config) ROM_START( supracan ) ROM_END +} // Anonymous namespace + + /* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ CONS( 1995, supracan, 0, 0, supracan, supracan, supracan_state, empty_init, "Funtech Entertainment", "Super A'Can", MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/taitotz.cpp b/src/mame/drivers/taitotz.cpp index 431db2869a2..739a54743a5 100644 --- a/src/mame/drivers/taitotz.cpp +++ b/src/mame/drivers/taitotz.cpp @@ -506,6 +506,9 @@ Notes: 0x10000105: */ + +namespace { + #define LOG_PPC_TO_TLCS_COMMANDS 1 #define LOG_TLCS_TO_PPC_COMMANDS 1 @@ -545,7 +548,9 @@ public: m_iocpu(*this, "iocpu"), m_work_ram(*this, "work_ram"), m_mbox_ram(*this, "mbox_ram"), - m_ata(*this, "ata") + m_ata(*this, "ata"), + m_scr_base(0), + m_hdd_serial_number(nullptr) { } @@ -565,6 +570,11 @@ public: required_device m_screen; +protected: + virtual void machine_start() override; + virtual void machine_reset() override; + virtual void video_start() override; + private: required_device m_maincpu; required_device m_iocpu; @@ -609,9 +619,6 @@ private: std::unique_ptr m_renderer; - virtual void machine_start() override; - virtual void machine_reset() override; - virtual void video_start() override; uint32_t screen_update_taitotz(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(taitotz_vbi); uint16_t tlcs_ide0_r(offs_t offset, uint16_t mem_mask = ~0); @@ -781,6 +788,8 @@ void taitotz_state::video_start() m_renderer = std::make_unique(*this, width, height, m_screen_ram.get(), m_texture_ram.get()); //machine().add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(&taitotz_exit, &machine())); + + m_video_reg = 0; } static const float dot3_tex_table[32] = @@ -2992,6 +3001,9 @@ ROM_START( dendego3 ) DISK_IMAGE( "ddg3", 0, SHA1(468d699e02ef0a0242de4e7038613cc5d0545591) ) ROM_END +} // Anonymous namespace + + GAME( 1999, taitotz, 0, taitotz, taitotz, taitotz_state, empty_init, ROT0, "Taito", "Type Zero BIOS", MACHINE_NO_SOUND|MACHINE_NOT_WORKING|MACHINE_IS_BIOS_ROOT ) GAME( 1998, batlgear, taitotz, taitotz, batlgr2, taitotz_state, init_batlgear, ROT0, "Taito", "Battle Gear (Ver 2.40 A)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_NODEVICE_LAN ) GAME( 1999, landhigh, taitotz, landhigh, landhigh, taitotz_state, init_landhigh, ROT0, "Taito", "Landing High Japan (Ver 2.01 OK)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/x1.cpp b/src/mame/drivers/x1.cpp index e91e0262742..f9432e9af6d 100644 --- a/src/mame/drivers/x1.cpp +++ b/src/mame/drivers/x1.cpp @@ -2083,6 +2083,10 @@ MACHINE_RESET_MEMBER(x1_state,x1) m_sub_val[3] = 0; m_sub_val[4] = 0; m_sub_obf = (m_sub_cmd_length) ? 0x00 : 0x20; + m_sub_val_ptr = 0; + m_key_i = 0; + m_scrn_reg.v400_mode = 0; + m_scrn_reg.ank_sel = 0; m_rtc_timer->adjust(attotime::zero, 0, attotime::from_seconds(1)); @@ -2359,7 +2363,7 @@ void x1_state::init_x1_kanji() // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS COMP( 1982, x1, 0, 0, x1, x1, x1_state, empty_init, "Sharp", "X1 (CZ-800C)", 0 ) -// x1twin in x1twin.c +// x1twin in x1twin.cpp COMP( 1984, x1turbo, x1, 0, x1turbo, x1turbo, x1_state, init_x1_kanji, "Sharp", "X1 Turbo (CZ-850C)", MACHINE_NOT_WORKING ) //model 10 COMP( 1985, x1turbo40, x1, 0, x1turbo, x1turbo, x1_state, init_x1_kanji, "Sharp", "X1 Turbo (CZ-862C)", 0 ) //model 40 //COMP( 1986, x1turboz, x1, 0, x1turbo, x1turbo, x1_state, init_x1_kanji, "Sharp", "X1 TurboZ", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/x1twin.cpp b/src/mame/drivers/x1twin.cpp index b0a07189520..8d173f76a4a 100644 --- a/src/mame/drivers/x1twin.cpp +++ b/src/mame/drivers/x1twin.cpp @@ -4,7 +4,7 @@ Sharp X1Twin = Sharp X1 + NEC PC Engine All-in-One - Both systems doesn't interact at all, according to info on the net they just shares the + Both systems don't interact at all, according to info on the net they just share the same "house". It doesn't even do super-imposing, not even with the in-built X1 feature apparently TODO: @@ -24,6 +24,8 @@ #include "speaker.h" +namespace { + class x1twin_state : public x1_state { public: @@ -99,7 +101,7 @@ INPUT_CHANGED_MEMBER(x1twin_state::ipl_reset) //anything else? } -/* Apparently most games doesn't support this (not even the Konami ones!), one that does is...177 :o */ +/* Apparently most games don't support this (not even the Konami ones!), one that does is...177 :o */ INPUT_CHANGED_MEMBER(x1twin_state::nmi_reset) { m_maincpu->set_input_line(INPUT_LINE_NMI, newval ? CLEAR_LINE : ASSERT_LINE); @@ -540,11 +542,14 @@ ROM_START( x1twin ) ROM_REGION(0x20000, "kanji", ROMREGION_ERASEFF) - ROM_REGION(0x20000, "raw_kanji", ROMREGION_ERASEFF) // these comes from x1 turbo + ROM_REGION(0x20000, "raw_kanji", ROMREGION_ERASEFF) // these come from x1 turbo ROM_LOAD("kanji4.rom", 0x00000, 0x8000, BAD_DUMP CRC(3e39de89) SHA1(d3fd24892bb1948c4697dedf5ff065ff3eaf7562) ) ROM_LOAD("kanji2.rom", 0x08000, 0x8000, BAD_DUMP CRC(e710628a) SHA1(103bbe459dc8da27a9400aa45b385255c18fcc75) ) ROM_LOAD("kanji3.rom", 0x10000, 0x8000, BAD_DUMP CRC(8cae13ae) SHA1(273f3329c70b332f6a49a3a95e906bbfe3e9f0a1) ) ROM_LOAD("kanji1.rom", 0x18000, 0x8000, BAD_DUMP CRC(5874f70b) SHA1(dad7ada1b70c45f1e9db11db273ef7b385ef4f17) ) ROM_END +} // Anonymous namespace + + COMP( 1986, x1twin, x1, 0, x1twin, x1twin, x1twin_state, init_x1_kanji, "Sharp", "X1 Twin (CZ-830C)", MACHINE_NOT_WORKING ) diff --git a/src/mame/includes/vectrex.h b/src/mame/includes/vectrex.h index df5b1ee404a..93e7a4fd98e 100644 --- a/src/mame/includes/vectrex.h +++ b/src/mame/includes/vectrex.h @@ -168,6 +168,7 @@ protected: virtual void video_start() override; virtual void machine_start() override; +private: void vectrex_map(address_map &map); }; @@ -182,13 +183,12 @@ public: void raaspec(machine_config &config); -protected: +private: void raaspec_led_w(uint8_t data); uint8_t vectrex_s1_via_pb_r(); void raaspec_map(address_map &map); -private: required_ioport m_io_coin; }; diff --git a/src/mame/machine/galaxold.cpp b/src/mame/machine/galaxold.cpp index e42eb2718ca..5e6a836c2c5 100644 --- a/src/mame/machine/galaxold.cpp +++ b/src/mame/machine/galaxold.cpp @@ -154,6 +154,8 @@ void galaxold_state::init_4in1() /* games are banked at 0x0000 - 0x3fff */ membank("bank1")->configure_entries(0, 4, &RAM[0x10000], 0x4000); + std::fill(std::begin(m_gfxbank), std::end(m_gfxbank), 0); + _4in1_bank_w(0); /* set the initial CPU bank */ save_item(NAME(m__4in1_bank)); diff --git a/src/mame/machine/snes.cpp b/src/mame/machine/snes.cpp index 57be9b72db2..5afd2019388 100644 --- a/src/mame/machine/snes.cpp +++ b/src/mame/machine/snes.cpp @@ -1071,21 +1071,18 @@ void snes_state::machine_start() snes_init_timers(); - for (int i = 0; i < 8; i++) - { - save_item(NAME(m_dma_channel[i].dmap), i); - save_item(NAME(m_dma_channel[i].dest_addr), i); - save_item(NAME(m_dma_channel[i].src_addr), i); - save_item(NAME(m_dma_channel[i].bank), i); - save_item(NAME(m_dma_channel[i].trans_size), i); - save_item(NAME(m_dma_channel[i].ibank), i); - save_item(NAME(m_dma_channel[i].hdma_addr), i); - save_item(NAME(m_dma_channel[i].hdma_iaddr), i); - save_item(NAME(m_dma_channel[i].hdma_line_counter), i); - save_item(NAME(m_dma_channel[i].unk), i); - save_item(NAME(m_dma_channel[i].do_transfer), i); - save_item(NAME(m_dma_channel[i].dma_disabled), i); - } + save_item(STRUCT_MEMBER(m_dma_channel, dmap)); + save_item(STRUCT_MEMBER(m_dma_channel, dest_addr)); + save_item(STRUCT_MEMBER(m_dma_channel, src_addr)); + save_item(STRUCT_MEMBER(m_dma_channel, bank)); + save_item(STRUCT_MEMBER(m_dma_channel, trans_size)); + save_item(STRUCT_MEMBER(m_dma_channel, ibank)); + save_item(STRUCT_MEMBER(m_dma_channel, hdma_addr)); + save_item(STRUCT_MEMBER(m_dma_channel, hdma_iaddr)); + save_item(STRUCT_MEMBER(m_dma_channel, hdma_line_counter)); + save_item(STRUCT_MEMBER(m_dma_channel, unk)); + save_item(STRUCT_MEMBER(m_dma_channel, do_transfer)); + save_item(STRUCT_MEMBER(m_dma_channel, dma_disabled)); save_item(NAME(m_hblank_offset)); save_item(NAME(m_wram_address)); @@ -1107,6 +1104,7 @@ void snes_state::machine_start() m_input_disabled = 0; m_game_over_flag = 0; m_joy_flag = 1; + m_wram_address = 0; } void snes_state::machine_reset() diff --git a/src/mame/machine/trs80m3.cpp b/src/mame/machine/trs80m3.cpp index c99304dd7e1..ffbc764ba6b 100644 --- a/src/mame/machine/trs80m3.cpp +++ b/src/mame/machine/trs80m3.cpp @@ -612,6 +612,8 @@ void trs80m3_state::machine_reset() port_9c_w(1); // 4P - enable rom if (m_model4 & 6) port_84_w(0); // 4 & 4P - switch in devices + + m_floppy = nullptr; } diff --git a/src/mame/video/vectrex.cpp b/src/mame/video/vectrex.cpp index 72a88ddb466..b9b3600f306 100644 --- a/src/mame/video/vectrex.cpp +++ b/src/mame/video/vectrex.cpp @@ -123,8 +123,6 @@ TIMER_CALLBACK_MEMBER(vectrex_base_state::vectrex_refresh) uint32_t vectrex_base_state::screen_update_vectrex(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - int i; - vectrex_configuration(); /* start black */ @@ -133,7 +131,7 @@ uint32_t vectrex_base_state::screen_update_vectrex(screen_device &screen, bitmap m_points[m_display_start].col, 0); - for (i = m_display_start; i != m_display_end; i = (i + 1) % NVECT) + for (int i = m_display_start; i != m_display_end; i = (i + 1) % NVECT) { m_vector->add_point(m_points[i].x, m_points[i].y, @@ -245,6 +243,14 @@ void vectrex_base_state::video_start() vector_add_point_function = &vectrex_base_state::vectrex_add_point; m_refresh = timer_alloc(TIMER_VECTREX_REFRESH); + + m_display_start = 0; + m_display_end = 0; + m_reset_refresh = 0; + m_blank = 0; + m_ramp = 0; + std::fill(std::begin(m_analog), std::end(m_analog), 0); + m_point_index = 0; } void vectrex_state::video_start()