Thread with 16 posts
jump to expanded postthis game is still available on the modern App Store btw, but only as a Lite version. the website's still up too. I guess the developers just keep it up for posterity's sake?
this game does its own text rendering, this will be a pain to debug…
people will tell you Rust is good for debugging because it has tightly controlled unsafeness, algebraic data types for results, bounds checks everywhere, assertions etc.
none of this is wrong but also i <3 <3 <3 std::fs::write
very glad i added gdb support and that this app has function name symbols, this is making debugging fun rather than frustrating. going from glDrawArrays to COverlay::DrawStack, guessing COverlay::AddQuadToPacket is relevant, finding NMenu::CMenuGfx::WriteText is a caller…
ah… I traced it to the code that fetches locale strings, and it's calling… bsearch, which I implemented earlier today but didn't test very thoroughly…
I think we all know where this is going.
aha, I found the bug. thankfully for my faith in my ability to write algorithms correctly, the binary search itself was correct… but the C standard requires you to pass the key as the first argument to the callback, whereas I had reversed the order. oops. ^^;
me, earlier: wow, isn't it weird that bsearch() requires the key and the elements of the array to have the same type? that's inconvenient
me, now: oh for fuck's sake
finally, Fastlane Street Racing on Android
now I just have to figure out why the specular lighting effects are broken in my GLES1-on-GL2 layer. without working RenderDoc, because it's legacy APIs all the way down.
gods save me
yes I know I should just use ANGLE, it seems to have (some?) GLES1 support these days, but I don't want to use up all my remaining disk space on it or figure out how to integrate Google's weird build system :/
@hikari btw xscreensaver has an opengl 1 on opengl layer in it because all the old screensavers were written for opengl 1. It may be worth a look for inspiration?
@0x2ba22e11 ah that's a good point, I may have a look at it at some point