Skip to content

Conversation

@fuel-pcbox
Copy link
Contributor

…breaks some demoscene software. Remove

@evmar
Copy link
Owner

evmar commented Sep 3, 2025

Thanks! I have encountered this too, I should just remove all of the "audio enabled" setting.

@evmar evmar merged commit 8ff30f8 into evmar:main Sep 3, 2025
5 checks passed
@LinusU
Copy link
Contributor

LinusU commented Nov 18, 2025

This makes Pocoman.exe (see #43) stop working with the following error:

WARN win32/dll/winmm/src/wave.rs:221 TODO: waveOutOpen callback with window=HANDLE(5)

thread 'main' panicked at cli/src/sdl.rs:140:9:
assertion failed: self.msg_queue.is_none()

Will need to investigate some more, maybe it's related to the logged TODO 🤔

edit: don't think it's related to the todo: #133

@evmar
Copy link
Owner

evmar commented Nov 20, 2025

I guess the quick thing for you would be to restore this code and just change the flag to be a "disable audio" flag. That is, make the default behavior "audio enabled" and let you run with audio disabled to restore the old behavior.

The assertion that you're hitting here is deep in the message handling code which is kind of gnarly :(
block() is called when we believe all x86 threads are blocked awaiting an event (including possibly a timer) and is supposed to suspend everything until a message is available. It then stashes that message in in self.msg_queue. The assertion failing here means that something called .block() even when there was a message already available, so the caller should have called get_message() in the same file before blocking here. This indicates some bug in how retrowin32 is pumping the message loops.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants