|Viewing Issue Advanced Details||segag80r.cpp|
|ID||Category [?]||Severity [?]||Reproducibility||Date Submitted||Last Update|
|06440||Gameplay||Critical (emulation)||Always||Nov 29, 2016, 20:28||Dec 13, 2016, 06:51|
|Tester||haynor666||View Status||Public||Platform||MAME (Official Binary)|
|Assigned To||smf||Resolution||Fixed||OS||Windows Vista/7/8 (64-bit)|
|Version||0.179||Fixed in Version||0.181||Build||64-bit|
|Summary||06440: Most/all sets in segag80r.cpp: game resets itself during play|
|Description||Quite offen game either resets itself during gameplay or generates trash on screen (sprites stay on screen).|
|Steps To Reproduce||Just start game and play couple minutes.|
005, monsterb - When playing a game, at odd times, the game suddenly resets
astrob - If the demo runs for about 11 minutes, in testing, the screen goes black and emulation halts
spaceod - Let emulation run for a bit over 5 minutes and the screen will stop as shown in screenshot
sindbadm - At random times during play, it will either reset or freeze emulation while music plays
|Affected Sets / Systems||Most/all sets in segag80r.cpp|
| spaceod.png (5,114 bytes) Nov 29, 2016, 20:59 by Robbbert
Nov 29, 2016, 21:00
|I left it in attract mode and after a while the attached picture occurred. The background continued to slide along, but the rest was frozen.|
Nov 30, 2016, 01:59
|Fairly easily to repo and takes anywhere from 1 - 2 minutes after coining up and starting up a fresh run.|
Nov 30, 2016, 05:40
edited on: Dec 1, 2016, 20:22
Appears to start malfunctioning immediately after 0.178 was released.
Traced to z80 adjustments.
Dec 1, 2016, 13:03
Putting back the PRVPC = -1 line in the void z80_device::take_interrupt() method "fixes" the problems. It was removed with this commit: https://git.redump.net/mame/commit/?id=2a6cbb70c4a8b2cdd6dbf6488cee92bd60fcc55e . I tested spaceod since it's the one which reproduces consistently letting attract run 3 times
I guess it doesn't like the way the offs_t segag80r_state::decrypt_offset(address_space &space, offs_t offset) method is implemented.
Dec 1, 2016, 20:36
Actually it is from that code, but not that commit, as it was reverted here, The update was posted just prior to release with unknown consequences, so reverted.
The commit I mentioned earlier is the recommit after the release of 0.178 was done.
Your observations still seem valid, though. I'll try to let smf know to see if he has any ideas.