There is a bug in the latest commits, especially this one:
https://framagit.org/hatari/hatari/-/commit/89e199541eeb340d7bd7940361bd271ba829f20d
In screen.c after "if (!sdlscrn)" SDL_Quit() is called before SDL_GetError(). That clears the error before reporting and SDL_GetError() returns an empty string. I tested this by calling SDL_Quit() after failing to create a renderer (it was easier to force a failure in renderer creation, than in surface creation). I get this message without calling SDL_Quit():
ERROR: Failed to create renderer:
testrenderer not available
And this message with calling SDL_Quit() right before Main_ErrorExit():
ERROR: Failed to create renderer:
I suggest this fix:
Call SDL_Quit() from Main_ErrorExit() right before exit(errval) and remove the call from screen.c. The documentation for SDL_Quit() states: "It is safe to call this function even in the case of errors in initialization.“. So this should always work.
Am 06.06.2025 um 22:56 schrieb Eero Tamminen <oak@xxxxxxxxxxxxxx>:
Hi,
On 6.6.2025 22.02, Christian Zietz wrote:
I noticed something that I missed during my testing yesterday, though. The message says "press a key to exit". However, it will only exit when I press the return/enter key, not when pressing other keys. I assume (but don't know for sure) that this happens because stdin is line- buffered. Quick fix: reword the message.
In case it's toolchain / Windows lib specific, do you have any idea whether you're using same toolchain / libs as what the Hatari releases use?
(I have some faint recollection that Nicolas would do release build with Windows cross-compile from Linux using MinGW, but I'm not sure.)
If yes, sure, that would be the best fix.
- Eero