Tried to get UAE4All with notaz' SDL running again in order to have doublebuffering and stable vsync all the time.
Same result as last time (even though I cut a lot of code from different source files) - the GUI works fine, but once you start the emulation the screen flashes between the emulated gfx and what's remained last in the SDL backbuffer. The emulated gfx are always just in 1 of the 2 buffers causing the screen to constantly switch every frame between the emulated gfx and 1 still picture (a white screen when you entered and left the gui twice).
After commenting out a lot of stuff (including the GUI's drawing calls) without solving the problem I don't have any idea how to make this work correctly.
Please help, notaz!
You can download this broken version here: http://www.mediafire.com/?b9j4bmlgt0914zl
Just extract the uae4all folder to your SD-card and then put a valid kick.rom in it.
Call run_new.sh and you'll see the gui. Press START to begin emulation. You should see the problem (with the gui's background pic in the backbuffer).
Press SELECT to reenter the gui and press SELECT again to return to the emulated flashing gfx (now with a white backbuffer).
As a - probably worthless - test I changed the SDL_Flip call in sdlgfx.cpp to this:
With this you have a 50% chance every time you leave the gui to see the emulated gfx. Or you see a white screen (or the menu's background gfx when it's the first try).
So if you get a white screen you can just press select twice until you see the emulated gfx. As long as you don't enter the gui again they'll stay...
Because of the SDL_ConvertSurface every frame you need to overclock a bit - 650 MHz should suffice.
When you see the emulated gfx they scroll smoothly* - but unfortunately with strong tearing in either the top or the bottom half (meaning the smooth scrolling is limited to the other half). <_<
So this is not a solution to the problem.
But you can try this version as well: http://www.mediafire.com/?oalpm9nlexc7y7z
(start this just like the other version above)
Of course anyone else's help would be very welcome, too. Silver, sebt3, Pickle, SteveM - any ideas?
Btw., the available release version (using SteveM's modified sdl) has perfectly smooth vsync - but only for about a minute until the tearing sets in - then you always have to enter and leave the menu to make it smooth again (for another minute).
Same result as last time (even though I cut a lot of code from different source files) - the GUI works fine, but once you start the emulation the screen flashes between the emulated gfx and what's remained last in the SDL backbuffer. The emulated gfx are always just in 1 of the 2 buffers causing the screen to constantly switch every frame between the emulated gfx and 1 still picture (a white screen when you entered and left the gui twice).
After commenting out a lot of stuff (including the GUI's drawing calls) without solving the problem I don't have any idea how to make this work correctly.
Please help, notaz!
You can download this broken version here: http://www.mediafire.com/?b9j4bmlgt0914zl
Just extract the uae4all folder to your SD-card and then put a valid kick.rom in it.
Call run_new.sh and you'll see the gui. Press START to begin emulation. You should see the problem (with the gui's background pic in the backbuffer).
Press SELECT to reenter the gui and press SELECT again to return to the emulated flashing gfx (now with a white backbuffer).
As a - probably worthless - test I changed the SDL_Flip call in sdlgfx.cpp to this:
Code:
//test is an SDL_Surface*
if(test)
SDL_Flip(test);
test = SDL_ConvertSurface(prSDLScreen, prSDLScreen->format, SDL_SWSURFACE);
SDL_FreeSurface(test);
So if you get a white screen you can just press select twice until you see the emulated gfx. As long as you don't enter the gui again they'll stay...
Because of the SDL_ConvertSurface every frame you need to overclock a bit - 650 MHz should suffice.
When you see the emulated gfx they scroll smoothly* - but unfortunately with strong tearing in either the top or the bottom half (meaning the smooth scrolling is limited to the other half). <_<
So this is not a solution to the problem.
But you can try this version as well: http://www.mediafire.com/?oalpm9nlexc7y7z
(start this just like the other version above)
Of course anyone else's help would be very welcome, too. Silver, sebt3, Pickle, SteveM - any ideas?
Btw., the available release version (using SteveM's modified sdl) has perfectly smooth vsync - but only for about a minute until the tearing sets in - then you always have to enter and leave the menu to make it smooth again (for another minute).