Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
konami/xmen.cpp: worked around MT08470
- Loading branch information
Showing
1 changed file
with
3 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
aefb991
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It means there is a bug with config.replace? (I mean in the MAME core)
aefb991
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think so, in theory setting
m_screen->set_screen_update(FUNC(xmen6p_state::screen_update<0>));
should be enough.Some observations:
mame/src/mame/konami/xmen.cpp
Line 267 in aefb991
aefb991
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The config.replace thing does not break the screen_update call.
It could be something with src/emu/divideo.
aefb991
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
rungund
(the dual screen version) is not drawing safely either it seems - https://mametesters.org/view.php?id=7543aefb991
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why was this replacing the screen in the first place rather than just reconfiguring it? This strikes me as the kind of thing that “fixes” it by coincidence while the underlying issue is still present.
aefb991
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Already tried that, it causes the same problem.
aefb991
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hence why it strikes me that this is likely just burying the real problem rather than actually fixing it. I think @firewave might be onto something with memory corruption.
aefb991
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I just realized it uses screen_vblank from second screen, while referencing first screen for timing ...
mame/src/mame/konami/xmen.cpp
Line 279 in aefb991
aefb991
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like the order of vblank handlers changes.
with device_remove:
scanline 240:
update "screen"
update "screen2"
vblank callback "screen"
vblank callback "screen2"
without device_remove:
scanline 240:
vblank callback "screen2"
update "screen"
update "screen2"
vblank callback "screen"