Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
09371 Gameplay Minor Always 14 hours ago 11 hours ago
Tester cuavas View Status Public Platform MAME (Official Binary)
Assigned To Resolution Open OS Windows (Arm)
Status [?] Confirmed Driver
Version 0.284 Fixed in Version Build Arm64
Fixed in Git Commit Github Pull Request #
Summary 09371: coolmini: Sound test crashes (emulated system stops responding) when moving part stage 4 BGM
Description If you go to the setup menu, select the sound test, and try to select a BGM track beyond STAGE4, the game program crashes and the system stops responding to joystick and button inputs. If you started a BGM track, the music will continue to play. Soft reset (F3) will stop the music, but the screen will not update and the game will not respond to inputs. It needs a hard reset to get out of the crashed state. This happens with both -drc and -nodrc.

I haven't debugged what's actually happening, so this may actually be an original game bug. If anyone has an original board it would be good to get confirmation of whether it happens.

In a debug build you'll get the following assertion failure when the crashed program writes an invalid value to the Memory Control Register (MCR, G27):
Assertion failed: which < 4 || which == 7, file ../../../../../src/devices/cpu/e132xs/e132xs.cpp, line 672

If you recompile with verbose logging, you can see it somehow get into a loop that writes invalid values to the MCR:

':maincpu' (0000191A): Set MCR = 0xfdd881ea, entry map in MEM0, reduced output voltage, input threshold for VDD=5.0V
IRAM normal mode, refresh every 128 cycles
MEM0 16 bit fast page DRAM, bus hold break disabled
MEM1 16 bit, bus hold break enabled
MEM2 16 bit, bus hold break enabled
MEM3 8 bit, bus hold break enabled
':maincpu' (00001928): Set MCR = 0xfd9881ea, entry map in MEM0, reduced output voltage, input threshold for VDD=5.0V
IRAM normal mode, refresh every 128 cycles
MEM0 16 bit fast page DRAM, bus hold break disabled
MEM1 16 bit, bus hold break enabled
MEM2 16 bit, bus hold break enabled
MEM3 8 bit, bus hold break enabled
entering power down
':maincpu' (0000191A): Set MCR = 0xfdd881ea, entry map in MEM0, reduced output voltage, input threshold for VDD=5.0V
IRAM normal mode, refresh every 128 cycles
MEM0 16 bit fast page DRAM, bus hold break disabled
MEM1 16 bit, bus hold break enabled
MEM2 16 bit, bus hold break enabled
MEM3 8 bit, bus hold break enabled
':maincpu' (00001928): Set MCR = 0xfd9881ea, entry map in MEM0, reduced output voltage, input threshold for VDD=5.0V
IRAM normal mode, refresh every 128 cycles
MEM0 16 bit fast page DRAM, bus hold break disabled
MEM1 16 bit, bus hold break enabled
MEM2 16 bit, bus hold break enabled
MEM3 8 bit, bus hold break enabled
entering power down
':maincpu' (0000191A): Set MCR = 0xfdd881ea, entry map in MEM0, reduced output voltage, input threshold for VDD=5.0V
IRAM normal mode, refresh every 128 cycles
MEM0 16 bit fast page DRAM, bus hold break disabled
MEM1 16 bit, bus hold break enabled
MEM2 16 bit, bus hold break enabled
MEM3 8 bit, bus hold break enabled
':maincpu' (00001928): Set MCR = 0xfd9881ea, entry map in MEM0, reduced output voltage, input threshold for VDD=5.0V
IRAM normal mode, refresh every 128 cycles
MEM0 16 bit fast page DRAM, bus hold break disabled
MEM1 16 bit, bus hold break enabled
MEM2 16 bit, bus hold break enabled
MEM3 8 bit, bus hold break enabled
entering power down
':maincpu' (0000191A): Set MCR = 0x00475adf, entry map in reserved, reduced output voltage, input threshold for VDD=3.3V
IRAM test mode, refresh every 16 cycles
MEM0 8 bit fast page DRAM, bus hold break enabled
MEM1 8 bit, bus hold break disabled
MEM2 reserved, bus hold break enabled
MEM3 8 bit, bus hold break disabled
':maincpu' (00001928): Set MCR = 0x00075adf, entry map in reserved, reduced output voltage, input threshold for VDD=3.3V
IRAM test mode, refresh every 16 cycles
MEM0 8 bit fast page DRAM, bus hold break enabled
MEM1 8 bit, bus hold break disabled
MEM2 reserved, bus hold break enabled
MEM3 8 bit, bus hold break disabled
entering power down
Steps To Reproduce 1. Start mame coolmini
2. Press the TEST button to enter the "Setup main menu"
3. Press 1P Button1 to select "Test devices"
4. Press 1P Down twice to move the cursor to "Audio device" and press 1P Button1 to select it
5. Press 1P Down to move the cursor to "BGM"
6. Press 1P Right to change to "STAGE4" (game is still responding to inputs at this point)
7. Press 1P Right one more time (emulated game crashes at this point)
Additional Information
Github Commit
Flags
Regression Version
Affected Sets / Systems coolmini
Attached Files
 
Relationships
There are no relationship linked to this issue.
Notes
1
User avatar
No.24051
Robbbert
Moderator
11 hours ago
edited on: 11 hours ago
In the PCM test, most of the samples do not play, and show an error in the log - no idea if this is ok.

Confirmed that it stops responding to inputs, but there's no dump and mame doesn't freeze - it continues to execute code.

At this point, pressing INS shows around 10'000%, but after a while it suddenly goes into what might be weeds, many unmapped reads appear in the log, and the speed drops dramatically.