From ddb09db33b6e84f9b8f45d4912080c849cf6e1df Mon Sep 17 00:00:00 2001 From: arbee Date: Sat, 26 Oct 2024 15:40:54 -0400 Subject: [PATCH 1/8] midway/midvunit.h: Fix range error in "Galil" wheel controller emulation. [R. Belmont] --- src/mame/midway/midvunit.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mame/midway/midvunit.h b/src/mame/midway/midvunit.h index f7ee672bacdf5..b90edc75e29e6 100644 --- a/src/mame/midway/midvunit.h +++ b/src/mame/midway/midvunit.h @@ -182,7 +182,7 @@ class midvunit_state : public midvunit_base_state uint8_t m_galil_input_index = 0; uint8_t m_galil_input_length = 0; const char *m_galil_input = nullptr; - uint8_t m_galil_output_index = 0; + uint16_t m_galil_output_index = 0; char m_galil_output[450]{}; uint8_t m_wheel_board_output = 0; uint32_t m_wheel_board_last = 0; From f8c5cc96f05ca216de8c00febfe84ab90e3e0d1e Mon Sep 17 00:00:00 2001 From: angelosa Date: Sat, 26 Oct 2024 22:56:07 +0200 Subject: [PATCH 2/8] hash/pc98.xml: demote yumeijin --- hash/pc98.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hash/pc98.xml b/hash/pc98.xml index 2ce638f4750f7..dabc49cd93d20 100644 --- a/hash/pc98.xml +++ b/hash/pc98.xml @@ -2481,11 +2481,12 @@ Not extensively tested - + Yu-Meijin ver3.0 1989 Corpus From 225004c69ff7bb329b3e15a14ac321a23ae327da Mon Sep 17 00:00:00 2001 From: hap Date: Sun, 27 Oct 2024 01:24:58 +0200 Subject: [PATCH 3/8] cactus: fix MAME crash --- src/mame/nmk/nmk16.cpp | 14 +++++++++----- src/mame/nmk/nmk16.h | 1 + 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/mame/nmk/nmk16.cpp b/src/mame/nmk/nmk16.cpp index bdd0dcae29d91..a51e632634f1c 100644 --- a/src/mame/nmk/nmk16.cpp +++ b/src/mame/nmk/nmk16.cpp @@ -5583,6 +5583,14 @@ void nmk16_state::bjtwin(machine_config &config) nmk112.set_rom1_tag("oki2"); } +void nmk16_state::cactus(machine_config &config) +{ + bjtwin(config); + + config.device_remove("scantimer"); + set_hacky_interrupt_timing(config); +} + // The 215 writes minimal data here to select an unscrambling configuration hardwired inside the NMK214 chip. void macross_prot_state::mcu_port3_to_214_w(u8 data) { @@ -5654,7 +5662,6 @@ void macross_prot_state::base_nmk214_215(machine_config &config) void macross_prot_state::macross_prot(machine_config &config) { macross(config); - base_nmk214_215(config); config.set_maximum_quantum(attotime::from_hz(6000)); @@ -5663,9 +5670,7 @@ void macross_prot_state::macross_prot(machine_config &config) void macross_prot_state::gunnail_prot(machine_config &config) { gunnail(config); - set_interrupt_timing(config); - base_nmk214_215(config); config.set_maximum_quantum(attotime::from_hz(6000)); @@ -5674,7 +5679,6 @@ void macross_prot_state::gunnail_prot(machine_config &config) void macross_prot_state::bjtwin_prot(machine_config &config) { bjtwin(config); - base_nmk214_215(config); config.set_maximum_quantum(attotime::from_hz(6000)); @@ -10576,7 +10580,7 @@ GAME( 1994, rapheroa, arcadian, raphero, raphero, nmk16_state, // both sets of both these games show a date of 9th Mar 1992 in the test mode, they look like different revisions so I doubt this is accurate GAME( 1992, sabotenb, 0, bjtwin_prot, sabotenb, macross_prot_state, empty_init, ROT0, "NMK / Tecmo", "Saboten Bombers (set 1)", 0 ) GAME( 1992, sabotenba, sabotenb, bjtwin_prot, sabotenb, macross_prot_state, empty_init, ROT0, "NMK / Tecmo", "Saboten Bombers (set 2)", 0 ) -GAME( 1992, cactus, sabotenb, bjtwin, sabotenb, nmk16_state, init_nmk, ROT0, "bootleg", "Cactus (bootleg of Saboten Bombers)", 0 ) // PCB marked 'Cactus', no title screen +GAME( 1992, cactus, sabotenb, cactus, sabotenb, nmk16_state, init_nmk, ROT0, "bootleg", "Cactus (bootleg of Saboten Bombers)", 0 ) // PCB marked 'Cactus', no title screen GAME( 1993, bjtwin, 0, bjtwin_prot, bjtwin, macross_prot_state, empty_init, ROT270, "NMK", "Bombjack Twin (set 1)", 0 ) GAME( 1993, bjtwina, bjtwin, bjtwin_prot, bjtwin, macross_prot_state, empty_init, ROT270, "NMK", "Bombjack Twin (set 2)", 0 ) diff --git a/src/mame/nmk/nmk16.h b/src/mame/nmk/nmk16.h index 65e4b852e7a29..1c307dee8657b 100644 --- a/src/mame/nmk/nmk16.h +++ b/src/mame/nmk/nmk16.h @@ -63,6 +63,7 @@ class nmk16_state : public driver_device, public seibu_sound_common void gunnailb(machine_config &config); void hachamf(machine_config &config); void bjtwin(machine_config &config); + void cactus(machine_config &config); void ssmissin(machine_config &config); void bioship(machine_config &config); void macross2(machine_config &config); From 36f6a7cdc741e3c6147e12519bc91f73aeb99171 Mon Sep 17 00:00:00 2001 From: hap Date: Sun, 27 Oct 2024 01:48:40 +0200 Subject: [PATCH 4/8] wpc_s: correct rom region for some sets --- src/mame/pinball/wpc_s.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/mame/pinball/wpc_s.cpp b/src/mame/pinball/wpc_s.cpp index 2c6db470ea9b2..d5855b9f72a1b 100644 --- a/src/mame/pinball/wpc_s.cpp +++ b/src/mame/pinball/wpc_s.cpp @@ -2097,7 +2097,7 @@ ROM_END ROM_START(corv_lx2) ROM_REGION(0x80000, "maincpu", 0) ROM_LOAD("u6-lx2.rom", 0x00000, 0x80000, CRC(204c1e4a) SHA1(b6b1ada4ac57a0bf1c3322105936c91d5704ef18)) - ROM_REGION(0x800000, "dcs", 0) + ROM_REGION16_LE(0x800000, "dcs", ROMREGION_ERASEFF) ROM_LOAD16_BYTE("su2-sl1.rom", 0x000000, 0x080000, CRC(141d280e) SHA1(ab1e8e38b9fa0e693837c93616f0821e25b31588)) ROM_LOAD16_BYTE("corvsnd3", 0x100000, 0x080000, CRC(6ace0353) SHA1(dec5b6f129ee6b7c0d03c1677d6b71672dd25a5a)) ROM_LOAD16_BYTE("corvsnd4", 0x200000, 0x080000, CRC(87807278) SHA1(ba01b44c0ad6d10163a8aed2211539d541e69449)) @@ -2133,7 +2133,7 @@ ROM_END ROM_START(corv_la1) ROM_REGION(0x80000, "maincpu", 0) ROM_LOAD("u6-la1.rom", 0x00000, 0x80000, CRC(2e205fc6) SHA1(dbe7448f5a7eefc58b237202526f94f298a8b79d)) - ROM_REGION(0x800000, "dcs", 0) + ROM_REGION16_LE(0x800000, "dcs", ROMREGION_ERASEFF) ROM_LOAD16_BYTE("su2-sl1.rom", 0x000000, 0x080000, CRC(141d280e) SHA1(ab1e8e38b9fa0e693837c93616f0821e25b31588)) ROM_LOAD16_BYTE("corvsnd3", 0x100000, 0x080000, CRC(6ace0353) SHA1(dec5b6f129ee6b7c0d03c1677d6b71672dd25a5a)) ROM_LOAD16_BYTE("corvsnd4", 0x200000, 0x080000, CRC(87807278) SHA1(ba01b44c0ad6d10163a8aed2211539d541e69449)) @@ -2274,7 +2274,7 @@ ROM_END ROM_START(jm_05r) ROM_REGION(0x80000, "maincpu", 0) ROM_LOAD("john0_5r.rom", 0x00000, 0x80000, CRC(57df5654) SHA1(b27c66dac592dd9db84ee86836216581b4cde3b1)) - ROM_REGION(0x800000, "dcs", 0) + ROM_REGION16_LE(0x800000, "dcs", ROMREGION_ERASEFF) ROM_LOAD16_BYTE("jm_u2_s.038", 0x000000, 0x080000, CRC(3b291732) SHA1(d0ce122b2a8c1ce04fe4ad1bef633514bb0c8f9f)) ROM_LOAD16_BYTE("jm_u3_s.038", 0x100000, 0x080000, CRC(653c2fc5) SHA1(8d462314394f8babed89f7cf70ce2df534cae13e)) ROM_LOAD16_BYTE("jm_u4_s.038", 0x200000, 0x080000, CRC(d0cfd604) SHA1(3844667135645653f1766d12d40752ddac2ec830)) @@ -2350,7 +2350,7 @@ ROM_END ROM_START(nf_10f) ROM_REGION(0x80000, "maincpu", 0) ROM_LOAD("nofe1_0.rom", 0x00000, 0x80000, CRC(f8f6521c) SHA1(5c26f4878f257b157c2a1c46995ec8100fa20723)) - ROM_REGION(0x800000, "dcs", 0) + ROM_REGION16_LE(0x800000, "dcs", ROMREGION_ERASEFF) ROM_LOAD16_BYTE("snd-u2.sl1", 0x000000, 0x080000, CRC(84f48e27) SHA1(cdf0ff55c1493ea5ac7cef618c985f41442c6f60)) ROM_LOAD16_BYTE("nfu3s", 0x100000, 0x080000, CRC(983e5578) SHA1(374b1397abbdde5fd9257fd45fd8613c94fbd02d)) ROM_LOAD16_BYTE("nfu4s", 0x200000, 0x080000, CRC(9469cd40) SHA1(8a1dd1088f24018f48b114c0b27f0331263d4eea)) @@ -2362,7 +2362,7 @@ ROM_END ROM_START(nf_08x) ROM_REGION(0x80000, "maincpu", 0) ROM_LOAD("nofe0_8x.rom", 0x00000, 0x80000, CRC(64871e6a) SHA1(0e116104b06446b0d435f715c33535080cdd2378)) - ROM_REGION(0x800000, "dcs", 0) + ROM_REGION16_LE(0x800000, "dcs", ROMREGION_ERASEFF) ROM_LOAD16_BYTE("snd-u2.sl1", 0x000000, 0x080000, CRC(84f48e27) SHA1(cdf0ff55c1493ea5ac7cef618c985f41442c6f60)) ROM_LOAD16_BYTE("nfu3s", 0x100000, 0x080000, CRC(983e5578) SHA1(374b1397abbdde5fd9257fd45fd8613c94fbd02d)) ROM_LOAD16_BYTE("nfu4s", 0x200000, 0x080000, CRC(9469cd40) SHA1(8a1dd1088f24018f48b114c0b27f0331263d4eea)) From 84f4879f1365348e79ae4dd1493ba53d855c49a3 Mon Sep 17 00:00:00 2001 From: hap Date: Sun, 27 Oct 2024 20:18:41 +0100 Subject: [PATCH 5/8] namcos23: remove texture_enabled flag, it caused missing graphics so this bit must have a different meaning, reset poly counts each frame to prevent trailing graphics and MAME crashing when holding INS --- src/mame/namco/namcos23.cpp | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/src/mame/namco/namcos23.cpp b/src/mame/namco/namcos23.cpp index 163c2f17b5c83..b700d46ee9aa5 100644 --- a/src/mame/namco/namcos23.cpp +++ b/src/mame/namco/namcos23.cpp @@ -1493,7 +1493,6 @@ struct namcos23_render_data u8 fogfactor; bool pfade_enabled; u8 fadefactor; - bool texture_enabled; bool shade_enabled; bool alpha_enabled; bool blend_enabled; @@ -3277,7 +3276,6 @@ void namcos23_renderer::render_scanline(s32 scanline, const extent_t& extent, co bool polyfade_enabled = rd.pfade_enabled; rgbaint_t fadecolor = rd.fadecolor; rgbaint_t polycolor = rd.polycolor; - bool texture_enabled = rd.texture_enabled; bool shade_enabled = rd.shade_enabled; bool blend_enabled = rd.blend_enabled; @@ -3311,13 +3309,8 @@ void namcos23_renderer::render_scanline(s32 scanline, const extent_t& extent, co bool reject = rd.stencil_lookup(*rd.machine, tx, ty); if (!reject) { - u32 tex_rgb = 0xffffff; - if (texture_enabled) - { - ty += rd.tbase; - tex_rgb = rd.texture_lookup(*rd.machine, pens, penshift, penmask, tx, ty, pen); - } - + ty += rd.tbase; + u32 tex_rgb = rd.texture_lookup(*rd.machine, pens, penshift, penmask, tx, ty, pen); rgbaint_t rgb(tex_rgb); if (shade_enabled) @@ -3483,7 +3476,6 @@ void namcos23_state::render_direct_poly(const namcos23_render_entry *re) p->rd.direct = true; p->rd.sprite = false; p->rd.immediate = false; - p->rd.texture_enabled = true; p->rd.shade_enabled = true; p->rd.rgb = 0x00ffffff; p->rd.flags = flags; @@ -3617,7 +3609,6 @@ void namcos23_state::render_immediate(const namcos23_render_entry *re) u32 h = re->immediate.h; u32 polyshift = re->immediate.zbias; u32 ne = (type >> 8) & 0xf; - bool texture_enabled = BIT(type, 6); bool stencil_enabled = BIT(h, 11); float minz = FLT_MAX; @@ -3683,7 +3674,6 @@ void namcos23_state::render_immediate(const namcos23_render_entry *re) p->rd.direct = false; p->rd.sprite = false; p->rd.immediate = true; - p->rd.texture_enabled = texture_enabled; p->rd.shade_enabled = true; p->rd.h = h; p->rd.type = type; @@ -3738,7 +3728,6 @@ void namcos23_state::render_model(const namcos23_render_entry *re) u32 cmode = (type & 0xf0000000) >> 28; u32 tbase = ((type & 0x0f000000) >> 24) << 12; - bool texture_enabled = BIT(type, 6); u8 color = (h >> 24) & 0x7f; int lmode = (type >> 19) & 3; int ne = (type >> 8) & 15; @@ -3960,7 +3949,6 @@ void namcos23_state::render_model(const namcos23_render_entry *re) p->rd.direct = false; p->rd.sprite = false; p->rd.immediate = false; - p->rd.texture_enabled = texture_enabled; p->rd.shade_enabled = true; p->rd.h = h; p->rd.type = type; @@ -4476,16 +4464,23 @@ void namcos23_state::mix_text_layer(screen_device &screen, bitmap_rgb32 &bitmap, u32 gorgon_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - if (m_c404.layer_flags & 2) - { + if (m_c404.layer_flags & 2 && !machine().video().skip_this_frame()) recalc_czram(); - } return namcos23_state::screen_update(screen, bitmap, cliprect); } u32 namcos23_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { + if (machine().video().skip_this_frame()) + { + m_render.cur = !m_render.cur; + m_render.count[m_render.cur] = 0; + m_render.poly_count = 0; + + return UPDATE_HAS_NOT_CHANGED; + } + m_bgtilemap->set_palette_offset(m_c404.palbase); screen.priority().fill(0, cliprect); @@ -6171,6 +6166,7 @@ void gorgon_state::gorgon(machine_config &config) m_screen->set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART); m_screen->set_screen_update(FUNC(gorgon_state::screen_update)); m_screen->screen_vblank().set(FUNC(gorgon_state::vblank)); + m_screen->set_video_attributes(VIDEO_ALWAYS_UPDATE); PALETTE(config, m_palette).set_entries(0x8000); @@ -6247,6 +6243,7 @@ void namcos23_state::s23(machine_config &config) m_screen->set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART); m_screen->set_screen_update(FUNC(namcos23_state::screen_update)); m_screen->screen_vblank().set(FUNC(namcos23_state::vblank)); + m_screen->set_video_attributes(VIDEO_ALWAYS_UPDATE); PALETTE(config, m_palette).set_entries(0x8000); From 31d5a50e8a5c429fee5d976da81296e945ea6c2f Mon Sep 17 00:00:00 2001 From: Vas Crabb Date: Tue, 29 Oct 2024 05:42:46 +1100 Subject: [PATCH 6/8] nes.xml: Confirmed recompiled NESert Golfing Tournament Edition (v1.4) matches a downloaded copy. [Lord Nightmare] --- hash/nes.xml | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/hash/nes.xml b/hash/nes.xml index c04dc5f3066e9..fecd91c766ba6 100644 --- a/hash/nes.xml +++ b/hash/nes.xml @@ -8499,26 +8499,17 @@ license:CC0-1.0 - NESert Golfing Tournament Edition (v1.4) 2019 rainwarrior - - + - + From 09877a4f62d6473ccfea350f7ad754660d442498 Mon Sep 17 00:00:00 2001 From: Vas Crabb Date: Wed, 30 Oct 2024 04:35:10 +1100 Subject: [PATCH 7/8] -ui/selmenu.cpp: Don't ignore character input when no pointer is active. -ui/menu.cpp: Handle menus resetting items from custom pointer handlers better. --- src/frontend/mame/ui/menu.cpp | 3 ++- src/frontend/mame/ui/selmenu.cpp | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/frontend/mame/ui/menu.cpp b/src/frontend/mame/ui/menu.cpp index 740a310e2f50d..76f77261ea0b8 100644 --- a/src/frontend/mame/ui/menu.cpp +++ b/src/frontend/mame/ui/menu.cpp @@ -1177,13 +1177,14 @@ std::pair menu::handle_pointer_update(uint32_t flags, ui_event const // give derived class a chance to handle it if ((track_pointer::IDLE == m_pointer_state) || (track_pointer::CUSTOM == m_pointer_state)) { + bool const wascustom(track_pointer::CUSTOM == m_pointer_state); auto const [key, take, redraw] = custom_pointer_updated(changed, uievt); if (take) { m_pointer_state = track_pointer::CUSTOM; return std::make_pair(key, redraw); } - else if (track_pointer::CUSTOM == m_pointer_state) + else if (wascustom) { if (uievt.pointer_buttons) { diff --git a/src/frontend/mame/ui/selmenu.cpp b/src/frontend/mame/ui/selmenu.cpp index 1c1933721db69..e06103db3d070 100644 --- a/src/frontend/mame/ui/selmenu.cpp +++ b/src/frontend/mame/ui/selmenu.cpp @@ -1733,7 +1733,7 @@ bool menu_select_launch::handle_events(u32 flags, event &ev) // text input goes to the search field unless there's an error message displayed case ui_event::type::IME_CHAR: - if (!pointer_idle()) + if (have_pointer() && !pointer_idle()) break; if (exclusive_input_pressed(ev.iptkey, IPT_UI_FOCUS_NEXT, 0) || exclusive_input_pressed(ev.iptkey, IPT_UI_FOCUS_PREV, 0)) From 4da96a0c4fbc9ee692082e889b3a5a913fc0659e Mon Sep 17 00:00:00 2001 From: Vas Crabb Date: Wed, 30 Oct 2024 23:23:19 +1100 Subject: [PATCH 8/8] Bumped version to 0.271 --- android-project/app/src/main/AndroidManifest.xml | 4 ++-- docs/source/conf.py | 4 ++-- makefile | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/android-project/app/src/main/AndroidManifest.xml b/android-project/app/src/main/AndroidManifest.xml index 495e63f443550..4801bc308cad5 100644 --- a/android-project/app/src/main/AndroidManifest.xml +++ b/android-project/app/src/main/AndroidManifest.xml @@ -4,8 +4,8 @@ --> diff --git a/docs/source/conf.py b/docs/source/conf.py index 87fbe33ec0d8e..ff6181e63fab6 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -63,9 +63,9 @@ # built documents. # # The short X.Y version. -version = '0.270' +version = '0.271' # The full version, including alpha/beta/rc tags. -release = '0.270' +release = '0.271' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/makefile b/makefile index ddf809310a0bf..6039e9e7e9df0 100644 --- a/makefile +++ b/makefile @@ -1578,7 +1578,7 @@ endif ifeq (posix,$(SHELLTYPE)) $(GENDIR)/version.cpp: makefile $(GENDIR)/git_desc | $(GEN_FOLDERS) - @echo '#define BARE_BUILD_VERSION "0.270"' > $@ + @echo '#define BARE_BUILD_VERSION "0.271"' > $@ @echo '#define BARE_VCS_REVISION "$(NEW_GIT_VERSION)"' >> $@ @echo 'extern const char bare_build_version[];' >> $@ @echo 'extern const char bare_vcs_revision[];' >> $@ @@ -1588,7 +1588,7 @@ $(GENDIR)/version.cpp: makefile $(GENDIR)/git_desc | $(GEN_FOLDERS) @echo 'const char build_version[] = BARE_BUILD_VERSION " (" BARE_VCS_REVISION ")";' >> $@ else $(GENDIR)/version.cpp: makefile $(GENDIR)/git_desc | $(GEN_FOLDERS) - @echo #define BARE_BUILD_VERSION "0.270" > $@ + @echo #define BARE_BUILD_VERSION "0.271" > $@ @echo #define BARE_VCS_REVISION "$(NEW_GIT_VERSION)" >> $@ @echo extern const char bare_build_version[]; >> $@ @echo extern const char bare_vcs_revision[]; >> $@