I don't know if I'm weird or if it's just normal to get random reverse engineering urges.
-
@foone Does 32-bit DOS with a DPMI use segments and overlays? It feels like it would be overkill since the whole idea was to get a 32-bit flat address space, unless you start doing weird stuff like unreal mode.
-
@indigoparadox Technically, yes, but it tries to hide that from you. As long as you don't need to debug into what the DPMI calls are doing, you can mostly pretend segments aren't real
-
oh ghidra is just completely wrong about where this call goes. that's... fine
-
for some reason ghidra thinks some of the calls are going into the data segment instead of CS
-
-
@foone or Is It AA to A9?
-
@oblomov NAh, A0 through AZ. I found the string in the code
-
interesting. so the .ARE files have a 140 near the top, and the manual says each AREA is 140 kilometers.
-
@foone ghidra is, in my experience, not very good at disassembling 16 bit code
-
@endrift yeah. a bit
-
the RLE compression seems to only affect the first 256 bytes of the file (after the 6-byte chunks). fucking weird. But I wrote some code that does the same, and it matches.
-
this compresses the file from 2.36 kilobytes down to an amazing 2.25 kilobytes
-
I tried to glitch up the map to see what it meant, but I accidentally glitched it too hard and got stuck in an infinite divide by zero glitch
-
it keeps crashing when I modify it. I think I found the font routine, though, which'll help hack more
-
Awesome New Year Robotreplied to Foone🏳️⚧️ last edited by
@foone can you figure out what the bug was? I assume they intended to compress everything but some bug prevented it but they didn't pay too close attention. But what bug would that be? Is there an obvious if or mask in the "correct" implementation that would cause this?
-
Foone🏳️⚧️replied to Awesome New Year Robot last edited by
@StompyRobot I hope to find out but I have no idea so far. This seems to not be a bug but a deliberate choice, and I have no idea why yet.
-
I think the map format might be tile-based rather than wireframes. You see (on the map) how the rocks in the sector to the bottom-left are the same as the ones in the top-right? That'd make sense if it's just a single value selecting what set of 3D geometry to stuff in the square
-
also based on the scale this game says it functions at, your one-man fighter jet/spaceship is approximately 500 meters (1640') long
-
I'm gonna have to expand my patching system to let me patch PNGs into EXEs as binary data
-
So the game has an alien language that's written on lots of artifacts, right?
You can see some of it here, on this mining probe I picked up
-
But like most alien languages in games, it's just a alternate alphabet on english.
So I found the alphabet in the EXE and overwrote it with one of the other two fonts, and now it's plain english: