Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
09160 Crash/Freeze Critical (emulator) Always 10 days ago 9 days ago
Tester JimCarlTay View Status Public Platform MAME (Official Binary)
Assigned To cuavas Resolution Fixed OS Windows 10/11 (64-bit)
Status [?] Resolved Driver
Version 0.277 Fixed in Version 0.278GIT Build 64-bit
Fixed in Git Commit f415970 Github Pull Request #
Summary 09160: finfurl: Game crashes during attract mode
Description Despite the game being marked non-working (as with all other Namco System 23 games), a recent likely or possible regression (I don't know which commit caused it) led to it crashing during the attract mode.

It most specifically happens during the "How to Play" section, where it teaches you how to ride the horse as if it were a real cabinet. At the "Use narrow swings to slow down" part, the game freezes, causing the sound to stutter and the window to turn gray when clicked if MAME is set to windowed mode. It then closes itself.
Steps To Reproduce 1. Load the game.
2. Wait until bootup finishes and it reaches the attract mode.
3. You can see that the freezing point occurs at the exact specified part in the issue description.
Additional Information I am unable to provide screenshots due to the nature of this bug.
Github Commit
Flags
Regression Version 0.275
Affected Sets / Systems finfurl
Attached Files
 
Relationships
There are no relationship linked to this issue.
Notes
7
User avatar
No.23239
Robbbert
Moderator
9 days ago
I was unable to confirm this with current git, so I tried my mameui build which is still at the release point. The problem happened there exactly as described. So, I've confirmed it, but seems that it might already be fixed.

The dump doesn't make much sense, but here it is.

-----------------------------------------------------
Exception at EIP=00007ff768c283a3 (devcb_read<unsigned short, (unsigned short)65535>::operator()()+0x0013): ACCESS VIOLATION
While attempting to read memory at 0000000000000010
-----------------------------------------------------
RAX=0000000000000c80 RBX=0000000000000000 RCX=00000268d90a4870 RDX=00000000ffffffff
RSI=000000001fb1b79a RDI=000000001fb1b79a RBP=00007ff7731226c0 RSP=000000c936ff98b0
 R8=0000000000000000 R9=0000000000000024 R10=0000000000000000 R11=0000000fca32dc55
R12=0de0b6b3a7640000 R13=00007ff7731226c0 R14=0000000000000004 R15=000000c936ff9df0
-----------------------------------------------------
Stack crawl:
  000000c936ff9900: 00007ff768c283a3 (luaopen_lfs+0x439d83)
  000000c936ff9930: 00007ff7648a3585 (h8_adc_device::sampling()+0x00b5)
  000000c936ff9970: 00007ff7648a3a51 (h8_adc_device::timeout(unsigned long long)+0x01e1)
  000000c936ff99a0: 00007ff7648a3b13 (h8_adc_device::internal_update(unsigned long long)+0x0033)
  000000c936ff99f0: 00007ff7648a19a7 (h83337_device::internal_update(unsigned long long)+0x0027)
  000000c936ff9a30: 00007ff76485fe2b (h8_device::execute_run()+0x008b)
  000000c936ff9ab0: 00007ff767fffa0c (device_scheduler::timeslice()+0x04ac)
  000000c936ff9c30: 00007ff767fadf95 (running_machine::run(bool)+0x01c5)
  000000c936fff250: 00007ff763e8ed7c (mame_machine_manager::execute()+0x024c)
  000000c936fff640: 00007ff763f40bfa (cli_frontend::start_execution(mame_machine_manager*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)+0x03ea)
  000000c936fff950: 00007ff763f4122a (cli_frontend::execute(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&)+0x007a)
  000000c936fff9b0: 00007ff763e89b77 (emulator_info::start_frontend(emu_options&, osd_interface&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&)+0x0027)
  000000c936fffd80: 00007ff763d33f1d (main_(int, char**)+0x01bd)
  000000c936fffe10: 00007ff763ce6d02 (MameUIMain(HINSTANCE__*, wchar_t*, int)+0x0382)
  000000c936fffe60: 00007ff75ffa12f7 (__tmainCRTStartup+0x0177)
  000000c936fffe90: 00007ff75ffa13e6 (WinMainCRTStartup+0x0016)
  000000c936fffec0: 00007ffa2e237374 (BaseThreadInitThunk+0x0014)
  000000c936ffff40: 00007ffa2ed7cc91 (RtlUserThreadStart+0x0021)
User avatar
No.23240
Osso
Moderator
9 days ago
I tested a bit and it seems to start happening in 0.275, but it happens only if you have no NVRAM save from previous versions. So if for example you play with 0.274 and then use 0.275 without deleting nvram first, it doesn't happen.
To me it happens with current top of the tree, too.
User avatar
No.23241
JimCarlTay
Tester
9 days ago
I've tried my current nightly build, and the exact same issue also happened.
User avatar
No.23242
cuavas
Administrator
9 days ago
A debug build hits an assertion failure:
Assertion failed: m_creators.empty() && !m_functions.empty(), file ../../../../../src/emu/devcb.h, line 873

#0 0x00007fff688cf1e7 in msvcrt!abort () from C:\WINDOWS\System32\msvcrt.dll
#1 0x00007fff688cbbc5 in msvcrt!_assert () from C:\WINDOWS\System32\msvcrt.dll
#2 0x00007ff6f87c11d1 in devcb_read<unsigned short, (unsigned short)65535>::operator()(unsigned int, unsigned short)
    ()
#3 0x00007ff6fb271e1a in h8_adc_device::sampling() ()
#4 0x00007ff6fb2722e1 in h8_adc_device::internal_update(unsigned long long) ()
#5 0x00007ff6f9c4d226 in h83337_device::internal_update(unsigned long long) ()
#6 0x00007ff6fe37846b in h8_device::execute_run() ()
#7 0x00007ff6f8941237 in device_scheduler::timeslice() ()
#8 0x00007ff6f893d866 in running_machine::run(bool) ()
#9 0x00007ff6fc20df8b in mame_machine_manager::execute() ()
#10 0x00007ff700334ab9 in cli_frontend::start_execution(mame_machine_manager*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) ()
#11 0x00007ff70033506d in cli_frontend::execute(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&) ()
#12 0x00007ff6fc20a129 in emulator_info::start_frontend(emu_options&, osd_interface&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&) ()
#13 0x00007ff702217bdc in main ()

Somehow m_channel stops wrapping and it runs off the end of the array of ADC input callbacks.
User avatar
No.23243
cuavas
Administrator
9 days ago
This likely started happening with 752c45b42bcb8f13cbfdd76ac2630bd72a779309, which enables repeat mode if ADCSR bit 4 is set.

f415970c0b19913892df06f76e76db48facbb1da makes it not crash. I’ll leave it to someone else to decide whether it actually works properly.
User avatar
No.23245
JimCarlTay
Tester
9 days ago
It's fixed now.
User avatar
No.23246
Robbbert
Moderator
9 days ago
Works for me too. If it turns out to break something, that can be dealt with then.