Ah... sorry for the trouble.
How are you starting the binary? It needs the 'asset' dir to be in the working dir (so ./racerdemo instead of e.g. ./build/racerdemo).
In case of linux missing libraries, you could try running with wine64 ./racerdemo.exe.
Or, copying that asset dir from the 'bin' archive to the source dir should do the trick. Also needs an SDL2 DLL (there's one from Debian in the bin zip).
Thanks for the suggestion. Unfortunately the windows binary with wine did not work; it had opengl errors.
When I tried running from source, I was missing the assets dir, but even with that added I get the same error as trying to run the linux binary.
Here’s the output, fyi:
boom
Unhandled SIMPLE-ERROR in thread #<SB-THREAD:THREAD "main thread" RUNNING
{1002C18003}>:
519 is not defined as a value for enum type #<CFFI::FOREIGN-ENUM SDL2/EVENTS:EVENT-TYPE>.
Backtrace for: #<SB-THREAD:THREAD "main thread" RUNNING {1002C18003}>
0: (SB-DEBUG::DEBUGGER-DISABLED-HOOK #<SIMPLE-ERROR "~S is not defined as a value for enum type ~S." {1004D771E3}> #<unused argument> :QUIT T)
1: (SB-DEBUG::RUN-HOOK *INVOKE-DEBUGGER-HOOK* #<SIMPLE-ERROR "~S is not defined as a value for enum type ~S." {1004D771E3}>)
2: (INVOKE-DEBUGGER #<SIMPLE-ERROR "~S is not defined as a value for enum type ~S." {1004D771E3}>)
3: (ERROR "~S is not defined as a value for enum type ~S." 519 #<CFFI::FOREIGN-ENUM SDL2/EVENTS:EVENT-TYPE>)
4: (CFFI::%FOREIGN-ENUM-KEYWORD #<CFFI::FOREIGN-ENUM SDL2/EVENTS:EVENT-TYPE> 519 :ERRORP T)
5: (RACERDEMO::HANDLE-INPUT)
6: (RACERDEMO::FRAME 16)
7: (RACERDEMO::RUN)
8: ((FLET SB-UNIX::BODY :IN SB-IMPL::START-LISP))
9: ((FLET "WITHOUT-INTERRUPTS-BODY-3" :IN SB-IMPL::START-LISP))
10: (SB-IMPL::START-LISP)
Thanks for the stacktrace,
Looks like my bad - a bug in the lisp-side SDL bindings (missing event type). That's interesting... have to dig into SDL source how that can happen.
Do you have maybe some unusual hardware such as joystick/foot pedals? (Trying to see if such an event type could be coming from).
For now this could be the quickest fix (pushed that to gitlab too):
--- a/lisp/racerdemo.lisp +++ b/lisp/racerdemo.lisp @@ -95,7 +95,7 @@ (let ((event (sdl2:make-event))) (unwind-protect (loop while (plusp (sdl2:poll-event event)) do - (let ((event-type (cffi:mem-ref event 'sdl2:event-type))) + (let ((event-type (ignore-errors (cffi:mem-ref event 'sdl2:event-type)))) (handle event-type event))) (cffi:foreign-free event))))