tandy put their sound chip on the 1A interrupt?
-
replied to Foone🏳️⚧️ last edited by
it's in a function I already found, temporarily named "blit_related".
I guess they don't decode the image until RIGHT before it needs to go up on the screen!
-
replied to Foone🏳️⚧️ last edited by
if definitely decompresses and then blits the image as two parts, which aren't evenly sized, and it starts from the bottom
-
replied to Foone🏳️⚧️ last edited by
I think they're just trying to keep their RAM usage down by not having both halves in memory at once
-
replied to Foone🏳️⚧️ last edited by
@foone this sounds like a job for whatever scripting the debugger supports?
-
replied to a kilo of saucepans (rakslice) last edited by
@rakslice
new side project: add scripting to this debugger -
replied to Foone🏳️⚧️ last edited by
wait is this image format vertically interlaced!?
-
replied to Foone🏳️⚧️ last edited by
It loads the half-width version, then a few functions later, it's been replaced with a full-width version.
Strange! -
replied to Foone🏳️⚧️ last edited by
wait no, the colors are wrong... I bet I'm seeing it decompress the binary, but that's using the full width of the bytes. it then gets expanded out to a 16-color image.
-
replied to Foone🏳️⚧️ last edited by
well the good news is that I think I've found the decompress_image function. the bad news is that now I have to reverse engineer it
-
replied to Foone🏳️⚧️ last edited by
it's currently doing the obvious thing for a decompressor to do:
write the byte 04 every 69 bytes -
replied to Foone🏳️⚧️ last edited by
oh sweet jesus, that's the left two pixels of the image.
it's loading the image vertically!at least it's top to bottom.
-
replied to Foone🏳️⚧️ last edited by
yeah, doom did that too, but Doom was a 2.5D image that had to do pseudo-raycasting.
THIS GAME DOES NOT
-
replied to Foone🏳️⚧️ last edited by
@foone it's the most efficient way to render images in planar EGA/VGA video modes. So clearly that's what you need to use for a game that's mostly static screens
-
replied to Niko (lethal_guitar) last edited by
@lethal_guitar yeah. I guess it's faster to draw, but given that it's static scenes... The disk access is gonna take longer!
-
replied to Foone🏳️⚧️ last edited by
it allocates a 1024 byte buffer, then makes a pointer to the end of it, minus -0x42?
why would you need a link to the end of a new, freshly cleared buffer, minus 62?
-
replied to Foone🏳️⚧️ last edited by
I think the memory allocation system here is that every malloc returns 2 extra bytes, which is a pointer to the previous block.
unless it's an odd number, in which case it's a free block. and pointer to the previous block, once you make it even again -
replied to Foone🏳️⚧️ last edited by
I hate dealing with the internals of memory allocation systems. I prefer to leave that to smarter people than me
-
replied to Foone🏳️⚧️ last edited by
You see this little About dialog box? Guess how many times the DrawText function is called?
Once! and just to draw "Where in the World is Carmen Sandiego?".
The rest of the text is draw elsewhere, and I have no idea why. -
replied to Foone🏳️⚧️ last edited by
correction: it calls it once to draw "Where in the World is Carmen Sandiego?" but that's unrelated to the one on screen WHAT?