Bad idea: build a captcha library that embeds DOSBox so it can make you beat levels/puzzles from DOS games to continue.
-
@foone Germany also considers
ch
andsch
to be ligatures, so there's distinct code points for them (and fortz
andts
), and yet they miight need to be considered equal with the common form where each letter is encoded distinctly.And there's a telegraph convention of representing the umlaut as a separate
E
, so München becomesMUENCHEN
(mind thech
!) and Köln bcomesKOELN
This was adopted from a so-old-it-was-mediæval scribal practice, from before umlauts were invented, of marking what would eventually be umlaut by writing a small 'e' atop the base letter. Which, curiously, Unicode doesn't appear to support.
-
the funniest part? I'm back in reverse engineering mode.
it's not even a 3-argument version of strcmp. it's just a weird strcmp(char*,char*): It only takes two arguments! not even three!
-
how do you confuse a two-argument function for a FOUR argument function?
borland. borland is how you do that.
-
DirectSound?!
this windows 3.x-ass program uses DirectX?!
-
@foone was this windows 3.x-ass program written by copilot?
-
@onelson It's been stuck on a CD-ROM since 1997, so NOPE
-
haha, 1991-1997 programmer: you made the LoadDirectSoundFuncptrs return a 0 for success, but you only ever return 0. your code smells with your bad decisions, which I can see THROUGH TIME from 30 years later
-
you even check, in the calling code, that it returns 0 and not some other value. you have fallback code for if it fails.
it can't fail. -
correction, you're returning a boolean.
and it's hardcoded to always return a 0, which is false.
so this ALWAYS fails.
-
I'm guessing this is dummying out code that didn't work
-
yeah this code is just casually mixing pascal and stdcall calling conventions. I am in hell
-
okay yeah. this is not remotely delphi. this is C++. ghidra mis-detected it, and that may have messed up the analysis
-
yep and it's buggered every single function, even after changing language. I can delete and recreate functions, but that might not fix them because they're getting hints from downstream functions which it still thinks are __fastcall and not __stdcall
-
maybe I just need to delete every function and re-analyze from scratch
-
Foone🏳️⚧️replied to Foone🏳️⚧️ last edited by [email protected]
(i just re-imported the EXE as a new file, and I'll manually port over the dozen or so symbols I've found.)
-
BTW it turns out there's cheats in the windows version.
maybe in the other versions too? I don't think anyone has found them if so.
Super Solvers: Gizmos & Gadgets! - Forums - Cheats - Speedrun.com
View Super Solvers: Gizmos & Gadgets! speedruns, leaderboards, forums and more on Speedrun.com
(www.speedrun.com)
-
I spotted them in the EXE and googled to see if they were known. Yep. At least in that one post!
-
@foone Did T.L.C. use a common asset storage formats? I’m curious how I’d go about inspecting some of these uralt binaries.
-
@matt I'm not sure yet, I've not been looking at the datafiles yet, just the EXE with Ghidra
-
ah-ha!
see that?
They call GetVersion(), then no matter if it's below 4 or not, they jump to the SAME PLACE, and there's dead code below it.This EXE has been patched after compilation!