New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
double free or corruption in arsystems.cpp #9936
Comments
An apparent double free in a bitmap destructor almost invariably turns out to be caused by an out-of-bounds access far earlier. Can you run it under a memory analyser (e.g. valgrind) and see if it finds anything suspicious? |
Are there any particular compile flags for mame that will help I ran it with these args:
And of course I don't see the issue on exit, however here is the report file: Edit: |
You don't need to enable leak checking to catch an out-of-bounds access. Running valgrind with no extra options will still show that. |
Ok, thanks for the info. I can't even get a Acquired the BIOS from multiple sources, checksums checkout, so don't think it can be this.. Latest valgrind report attached from This seems to be at the point of the issue.
|
@angelosa you were the most recent person to work on the Amiga stuff. Can you please have a look at this? It’s writing off the end of the screen bitmap causing memory corruption, |
@sgpowers thanks for helping narrow this down. |
Did a little more digging on this, and it appears that there is a
This diff stops the corruption, I cannot see issues in the game emulation (yet) with this, but will obviously have further issues in the bitplane code:
|
The +10 is for avoiding video pitch corruption in far too many places in the Amiga ecosystem (i.e. skewed and unusable gfxs). ETA: relevant links: mame/src/mame/amiga/amiga_v.cpp Line 541 in 690dba1
mame/src/mame/amiga/amigaaga.cpp Line 535 in 690dba1
|
See also: https://mametesters.org/view.php?id=8483 |
As per my previous comment doesn't change anything that isn't already known, at most somebody can hack htotal so that it pleases the underlying bitmap buffer, bad timing for bad timing that is in the plans to rewrite anyway. |
Self compiled using g++ (Ubuntu 11.1.0-1ubuntu1~20.04) 11.1.0 - This occurs in 0.242 through to HEAD. I haven't tested on previous.
Only seeing this occur on Arcadia System (arsystems.cpp) games. All games using this driver I have tested thus far seem to exhibit this behaviour.
Games seem to play fine, but on quit I get:
Grabbing the core and running through
gdb
I see:Any clues here ?
The text was updated successfully, but these errors were encountered: