Introduction
Introduction Statistics Contact Development Disclaimer Help
Post Ad7TpcnInn4e14zeTY by [email protected]
More posts by [email protected]
Post #Acmi8T5wPHe6TWQsbY by [email protected]
0 likes, 0 repeats
wait a fucking second...it has been ZERO DAYS since I found an off-by-one error…
Post #AcmiHMfRfmRN9CHVwW by [email protected]
0 likes, 0 repeats
So here's the zoomed out (F1) view in Railroad Tycoon. It's supposed to…
Post #AcmiQwahTnabAUd70y by [email protected]
0 likes, 0 repeats
Here's some lakes north of Winnipeg. We can see that they go right up to th…
Post #Acmiot32Iu1R87IhDE by [email protected]
0 likes, 0 repeats
So let's hit F4 and zoom in and NOPE.The eastern part of the lake that goes…
Post #AcmiowAahGqcoPrGu8 by [email protected]
0 likes, 0 repeats
The zoomed-out view is missing a single line of tiles from the top of the map!
Post #Acmj13ONfb6qgf5OAC by [email protected]
0 likes, 0 repeats
SIDNEY K. MEIER, THIS IS UNACCEPTABLE
Post #AcmjGIoyaUsysnnTJg by [email protected]
0 likes, 0 repeats
@foone (*squints) So you found one yesterday?
Post #AcmjGItEKgHx5zmrwm by [email protected]
0 likes, 0 repeats
@flyingsaceur heh
Post #AcmjS9Y2tH4Db8WpTE by [email protected]
0 likes, 0 repeats
It does it on all 4 cardinal directions.I notice there's a white rectangle …
Post #AcmjSCFiprBzzAyjpI by [email protected]
0 likes, 0 repeats
I noticed another error: the code that determines which shorelines to draw brea…
Post #AcmjSD1vwbl0OhXEyO by [email protected]
0 likes, 0 repeats
This only happens on the West and South borders. The North and East borders are…
Post #Acmkb5M3wyhF9YkMO8 by [email protected]
0 likes, 0 repeats
apparently the save file grows by 4 bytes for every single piece of track you p…
Post #Acmku3aajt4pBAaZIu by [email protected]
0 likes, 0 repeats
I think I just found an off-by-two error?if you are in F4 mode and right click …
Post #Acml4MGq8Xxa0xGJjU by [email protected]
0 likes, 0 repeats
interesting: The game's internal coordinate system is a 16-bit unsigned int…
Post #AcmlGY2oBjwE0MVmoy by [email protected]
0 likes, 0 repeats
although the coordinates are... weird. Some of them aren't on the map, I th…
Post #AcmlP52PP2wOeJOR8q by [email protected]
0 likes, 0 repeats
yeah.So the point I'd call (1,0) is point 200.So 199 should be at (0,199) r…
Post #AcmliqaoopL5dluiLg by [email protected]
0 likes, 0 repeats
this would make some amount of sense if they were just stuffing the coordinates…
Post #AcmlqwidvRsSxPR3Eu by [email protected]
0 likes, 0 repeats
also why combine the X+Y coordinates into this idea of point numbers? the map i…
Post #AcmnyXH6bsmkGiIlZQ by [email protected]
0 likes, 0 repeats
okay, the 4 bytes added are encoded like this:16-bit ushort: tile number8-bit i…
Post #AcmoFKXPDfMrgivz0K by [email protected]
0 likes, 0 repeats
bridge types are set up like:00: tunnel01: wood10: stone11: iron
Post #AcmolQhTqJqk4Ex7zM by [email protected]
0 likes, 0 repeats
@crobbler something like 212,576 bytes?
Post #AcmpBBX4rJRCYRMrzc by [email protected]
0 likes, 0 repeats
track tiles are <63if the number has the 64 bit on, it means it's for th…
Post #AcmpfG4AZDSrIrBcMS by [email protected]
0 likes, 0 repeats
arg. all this starts at a fixed offset, except it stops being fixed if you name…
Post #AcmppGhd3VQCAmPswa by [email protected]
0 likes, 0 repeats
@crobbler it gets tight if you have more than one save, though, especially sinc…
Post #AcmpyY6JjrpCjrODku by [email protected]
0 likes, 0 repeats
if bridge types 1 and 2 are on (11), it means there's a station there.
Post #AcmqA5ogj19qUWeFgO by [email protected]
0 likes, 0 repeats
trying to figure out the naming thing in a highly scientific way: I keep rewind…
Post #AcmqbWZxKb4tJPq0NU by [email protected]
0 likes, 0 repeats
crap. I can't find any obvious header stuff that changes length based on th…
Post #AcmquHuk4vjtKfVWk4 by [email protected]
0 likes, 0 repeats
lemme hit it from the other end:maybe there's a header field that says how …
Post #AcmrGeIPXoD17RF03k by [email protected]
0 likes, 0 repeats
got it. offset 0x3738 is a 16-bit int of how many tracks there are.so we just n…
Post #AcmrXNfebpy6Tp5hlA by [email protected]
0 likes, 0 repeats
huh. I somehow bugged the game without even trying! I started a new map, connec…
Post #AcmrezHt9LPdAnbOFM by [email protected]
0 likes, 0 repeats
for some reason it thinks they both go way off to the west.
Post #AcmsrYAHP1EQlwb5ii by [email protected]
0 likes, 0 repeats
I want to test my theory on how railroad player numbering works, but player 3 r…
Post #Acmt1WqVA4D5Zr6XKa by [email protected]
0 likes, 0 repeats
FINALLY.yeah, it works how I expected.
Post #AcmtL31JlHp4rnTGBE by [email protected]
0 likes, 0 repeats
also my track number thing is wrong.that seems to just be for P1 tracks, so I n…
Post #AcoLR1Hi7SA360jbO4 by [email protected]
0 likes, 0 repeats
I found the other player's track count, which seems to store all the other …
Post #AcoM36mW88fV9GJ2h6 by [email protected]
0 likes, 0 repeats
I also found another bug: There's a limit to how long a train can pathfind.…
Post #AcoMDh9Zksteqk8ii8 by [email protected]
0 likes, 0 repeats
also the "miles of track" indication on your end of fiscal period sum…
Post #AcoNX9AZuqJvCFRpOC by [email protected]
0 likes, 0 repeats
interesting: the game doesn't defragment the track list. so if you build 8…
Post #AcoNuVPtMswir3kVI8 by [email protected]
0 likes, 0 repeats
and it never fills those spots back in, it seems. it just adds them to the end.
Post #AcoNuY7ZJT4VF6CPeC by [email protected]
0 likes, 0 repeats
OH MY GOD IT'S A BLOCKCHAIN! (/joke)
Post #AcoNuYtmQDdVeckunI by [email protected]
0 likes, 0 repeats
I have a bad idea:so the game stores saves in two files.the RR?.SVE file, and t…
Post #AcoOoZTHTp2FeA4IAC by [email protected]
0 likes, 0 repeats
so I've connected Chișinău, Moldova to Vinnytsia, Ukraine.or Kisinev to V…
Post #AcoOoc87awtNtPBw6C by [email protected]
0 likes, 0 repeats
and now I'm connecting Knoxville, Tennessee to Lexington, Kentucky.TIME FOR…
Post #AcoOoctGlebeFdFaaW by [email protected]
0 likes, 0 repeats
So, it turns out stations remember what city they're connected to, even whe…
Post #AcoOodePwMJubrJF4q by [email protected]
0 likes, 0 repeats
Belgrade is in Maryland now. That seems normal.I think it's because there&#…
Post #AcoOoePZ742Ay5MtZA by [email protected]
0 likes, 0 repeats
(notice that this is clearly eastern america but my current is in pounds)
Post #AcoOofAMJ5SrJDGGVE by [email protected]
0 likes, 0 repeats
uhhh. I think this one is my fault
Post #AcoQZu84al2BHTHZlg by [email protected]
0 likes, 0 repeats
found it: the byte at 0x38E4.00: Eastern US01: Western US02: England03: Europe
Post #AcoR1sdvi8pSmPWVA8 by [email protected]
0 likes, 0 repeats
@foone True, there aren't any mermaids in the Atlantic.Not since The Incide…
Post #AcoR1siBSKEQzbVtnE by [email protected]
0 likes, 0 repeats
@kawa ahh, yes. Project Azorian.
Post #AcoVfjCMe29ct6szTs by [email protected]
0 likes, 0 repeats
@foone Did the terminal driver explode?
Post #AcoVfjGcODYb6IsO6y by [email protected]
0 likes, 0 repeats
@mos_8502 I think the video card is in a text mode, but the game thinks it'…
Post #AcoVoyTBEh4WrCA0kC by [email protected]
0 likes, 0 repeats
@foone new pride flag dropped
Post #AcoVoyXQysTV4O9PNI by [email protected]
0 likes, 0 repeats
@lilbatscholar don't even joke about that. I'm always on the hunt for m…
Post #AcogoG5FMSCEgxpKoy by [email protected]
0 likes, 0 repeats
@foone but how do you convert pounds to ampers?
Post #AcogoG997xJct3eRto by [email protected]
0 likes, 0 repeats
@nikiel carefully
Post #AcomYkAmK1F76UOpyC by [email protected]
0 likes, 0 repeats
ahh, I figured out why my old hacking attempted died out: I don't know how …
Post #Acomj6bvkkQXac2aQK by [email protected]
0 likes, 0 repeats
but I have a workaround where I use a hacked version of the EXE which renders a…
Post #Acomj9pVmi4bZbPyVc by [email protected]
0 likes, 0 repeats
which wouldn't be a problem, it looks fine, except the MAP variant of the P…
Post #AcomyGfedFwB8N0pjU by [email protected]
0 likes, 0 repeats
so like, here on my test map we've got a lumber mill and a coal mine
Post #AconD5mrNckriqS43M by [email protected]
0 likes, 0 repeats
but on the MAP file, both of those end up as that purple color
Post #AconD8VxEw0yBHZ6cS by [email protected]
0 likes, 0 repeats
so I need to figure out on my own how to decode the PIC/MAP files.which is a pr…
Post #AconxdAhab2iaEnLFo by [email protected]
0 likes, 0 repeats
and you'd think they'd skip out on compressing saved games, but NOPE! t…
Post #Aconxfo7mzlWl5Fqym by [email protected]
0 likes, 0 repeats
I think it's some kind of LZ* compression, given how it seems back-referenc…
Post #AconxgYZ0Kud56ywMa by [email protected]
0 likes, 0 repeats
it's also possible this is a wild goose chase and the different industry bl…
Post #AconxhJ0Dg3jP8i1kO by [email protected]
0 likes, 0 repeats
nope. it's definitely in the map. I did the SVE/MAP switcheroo and it stil…
Post #Acooy1NtfNtZdGiUpk by [email protected]
0 likes, 0 repeats
back to the decompilation mines
Post #Acoq04LNjaNlLP53j6 by [email protected]
0 likes, 0 repeats
oh goody function pointers, my favorite
Post #Acoq9jiTHXlcGTUSNU by [email protected]
0 likes, 0 repeats
oh yeah they interleaved the write-file and read-file functions by misusing JMP
Post #AcoqykFn2lDwhTOiJ6 by [email protected]
0 likes, 0 repeats
because to have fread() and fwrite() as separate functions would waste somethin…
Post #AcoswhMd14J94DkRCC by [email protected]
0 likes, 0 repeats
so it opens the file, sets a pointer to a function, then calls another function…
Post #Acotr14ytz4qQiLeV6 by [email protected]
0 likes, 0 repeats
oh god I think I found the compression functions but it seems it involves abusi…
Post #Acotr4APQGCY0PuWsS by [email protected]
0 likes, 0 repeats
and it's not a normal decompression function where there's a in-buffer …
Post #AcoxevPEZLn5AyJLfM by [email protected]
0 likes, 0 repeats
I got distracted and extracted the text out of an apple II game about sex.this …
Post #Acoyzadz3bm4opczgW by [email protected]
0 likes, 0 repeats
"JMP BP"yeah, this assembly was written by a human.emphasis on ASSemb…
Post #Acoz5fEUuOOWmxbSng by [email protected]
0 likes, 0 repeats
WHY WOULD YOU JUMP TO THE FRAME POINTER?
Post #AcozoahsaDhBmZlkki by [email protected]
0 likes, 0 repeats
it's at the start of the function, too.like, you just called a function, wh…
Post #Acp0bCMTt1ReT0wDqa by [email protected]
0 likes, 0 repeats
@foone I'm not sure if this is better or worse than jumping to VRAM, which …
Post #Acp0bCR5bt8ChJ5u1w by [email protected]
0 likes, 0 repeats
@endrift there's one SNES game that jumps to the DMA registers.not DMA'…
Post #Acp1wahqfWSc0QhHvc by [email protected]
0 likes, 0 repeats
@foone @endrift Was that Another World by @burgerbecky ?
Post #Acp1wam6PhraDcggYi by [email protected]
0 likes, 0 repeats
@gentarkin @endrift @burgerbecky YUP!
Post #Acp26AIBjIsYyrGBOq by [email protected]
0 likes, 0 repeats
I set a breakpoint at the address 1000:0AD6it hit at 093D:7D0Abug in DOSBox?No!…
Post #Acp3ItgUtAAhBtGW0m by [email protected]
0 likes, 0 repeats
@foone every address has... 256 addresses? have I done my math right?
Post #Acp3ItkOefI5Nz5d5c by [email protected]
0 likes, 0 repeats
@alilly I think it's 4096? because a segment is 65536 bytes, and you can se…
Post #Acp4d8713YWhgQsg7s by [email protected]
0 likes, 0 repeats
I'm afraid, Dave. Dave, my mind is going. I can feel it. I can feel it. My …
Post #Acp5at504lMOR5Qsro by [email protected]
0 likes, 0 repeats
the whole thing about call BP makes even less sense when you follow up the call…
Post #Acp97mmUoWnsJv9kI4 by [email protected]
0 likes, 0 repeats
oh okay, I think the (de)compression routine is line based.I found that the &q…
Post #Acp9GUUQBtCiCEqw5Y by [email protected]
0 likes, 0 repeats
A fun thing about the saved maps is that they're 320x200.The game maps are …
Post #AcpAFW7uidaQwDQOMC by [email protected]
0 likes, 0 repeats
ahh, 0x2E96, a hex number that makes floating point calculators confused
Post #AcpAYeNAHiUE0xgJmq by [email protected]
0 likes, 0 repeats
naturally in the middle of the "decompress the saved-game map" functi…
Post #AcpAqhG6IEj4B5yydE by [email protected]
0 likes, 0 repeats
but yeah it happens because they have the graphics code implemented in separate…
Post #AcpBGamB1B2xbMKkxU by [email protected]
0 likes, 0 repeats
wait the code is loading a 320x200 pixel bitmap and immediately drawing it into…
Post #AcpBXh7QglseCEQhFY by [email protected]
0 likes, 0 repeats
I don't understand. It's loading the map file and writing it right out …
Post #AcpCaQMPYJJp2nIpFI by [email protected]
0 likes, 0 repeats
railswhy is there an EXE header at offset 0x17400 in your binary?
Post #AcpCvbEKKo0upwcPR2 by [email protected]
0 likes, 0 repeats
and 0x15800and 0x16600and 0x18600and 0x19000and 0x19800and 0x1A000and 0x1AC00an…
Post #AcpDG63HRvNqDkE2Ay by [email protected]
0 likes, 0 repeats
this file has INTERNAL OVERLAYS?!
Post #AcpDoHNPqnYxBowXFg by [email protected]
0 likes, 0 repeats
@fooneyou mean a dos header pointing to a coff header?
Post #AcpDoHRJcIgLNuleKW by [email protected]
0 likes, 0 repeats
@tthbaltazar no, a dos header, and then many more DOS headers
Post #AcpE7YplAZHcpmOXq4 by [email protected]
0 likes, 0 repeats
I thought the UNP extraction stuff had removed those and merged it all together…
Post #AcpE7c90rRSz6MQSlU by [email protected]
0 likes, 0 repeats
in other words, TIME FOR GO TO BED
Post #AcpE7curzVkPUmogMK by [email protected]
0 likes, 0 repeats
at least I know where the decompression functions are. I can extract those and …
Post #AcpF7URPbLT5AGXK0u by [email protected]
0 likes, 0 repeats
@foone So maybe it's a way to reduce the number of files?I have vague recol…
Post #AcpF7UVfLWs3NSWie0 by [email protected]
0 likes, 0 repeats
@pare I don't think so, this game has a ton of files already with no attemp…
Post #AcqQmtuj5lvIh59mIy by [email protected]
0 likes, 0 repeats
@smammy which is impressive, because this game takes place at the height of rob…
Post #AcqRLugcDDbdE0FfDk by [email protected]
0 likes, 0 repeats
@foone railroad tycoon. Recently covered this on my amiga cracking stream. Easy…
Post #AcqRLulDw5IBSIPLP6 by [email protected]
0 likes, 0 repeats
@h0ffman neat! hopefully that's not the case here, because just about every…
Post #AcqULi17cFOhnJRBvE by [email protected]
0 likes, 0 repeats
okay manually stepping through the decompression confirms my theory that the de…
Post #AcqUVAMfacpCJq1frk by [email protected]
0 likes, 0 repeats
So far, I've got this:00 01 Ocean02 Clear03 Forest04 05 Coal Mine06 07 Foot…
Post #AcqUt4Q7LIA2ph2Lzc by [email protected]
0 likes, 0 repeats
okay I've made a key discovery that makes some of the weirdness make more s…
Post #AcqV1b6Dj5ZGVAnQvI by [email protected]
0 likes, 0 repeats
I found this out by modifying it while it is being loaded: the changes appear o…
Post #AcqVn2uE9y3kLvoOgK by [email protected]
0 likes, 0 repeats
well I stepped through all the invocations of this function (which I have insig…
Post #AcqW1L81CpXKvH4vBY by [email protected]
0 likes, 0 repeats
so it loads the MAP filethen faces.picsprites.pictrack.piclocos1.pic...and noth…
Post #AcqWKqrBSr20pSVYw4 by [email protected]
0 likes, 0 repeats
so from selecting save, it calls int 21,AH=3D with:RR0.SVERR0.MAPits own EXE (o…
Post #AcqXRByRxpOY0xUh0K by [email protected]
0 likes, 0 repeats
but wait, if it's smuggling out the map data, why don't my changes get …
Post #AcqXcgOdC9OZYLDefA by [email protected]
0 likes, 0 repeats
if so, there's only one place it could do that... and it's in an overla…
Post #AcqXvDyr4I5QvQ0J96 by [email protected]
0 likes, 0 repeats
and that overlay is NEVER CALLED!
Post #AcqZ0nTAeGMoOVPATg by [email protected]
0 likes, 0 repeats
please, PLEASE tell me they don't save the map inside the graphics overlay(…
Post #AcqZXtwXbH7g1ovb96 by [email protected]
0 likes, 0 repeats
this function is DOUBLE THUNKED?!
Post #AcqZzR1WiSNeRbOBPM by [email protected]
0 likes, 0 repeats
whelp, I dug into the EGRAPHICS.EXE file and found what was getting called, and…
Post #AcqaHlnKEFbe4oUOcy by [email protected]
0 likes, 0 repeats
EGRAPHICS.EXE is amusing. The entry pointer leads to a function at 1000:0010, w…
Post #AcqaWY5lSOcvvGA3Xc by [email protected]
0 likes, 0 repeats
which doesn't make a lot of sense, honestly.that's because it's not…
Post #AcqaWb8M9DTzMAOfUu by [email protected]
0 likes, 0 repeats
to which all I can say is:INC SIPUSH BPINC BXDEC BXPOP DIPOP C…
Post #Acqbf1PgQPXl8E59eq by [email protected]
0 likes, 0 repeats
@BetaRays yeah I didn't bother roundtripping it so it probably doesn't …
Post #AcqcwI1s05tzXfk2Pg by [email protected]
0 likes, 0 repeats
@foone Just removing the E prefix from each register seems to work.
Post #AcqcwI67kHIxkrjR2m by [email protected]
0 likes, 0 repeats
@BetaRays thanks. fixed.
Post #AcqdDUSJ3KRn0MJCcK by [email protected]
0 likes, 0 repeats
okay, time to take another approach: I'm gonna go into debug mode, then cap…
Post #AcqdX6tINKYtiCHvVY by [email protected]
0 likes, 0 repeats
this'll obviously fail if they store it in a modified form, however
Post #AcqdX9up86ZD5o1go4 by [email protected]
0 likes, 0 repeats
or worse, they never store it uncompressed at all.maybe they just re-decompress…
Post #AcqdXAfcK7ztQvv3k8 by [email protected]
0 likes, 0 repeats
this game WILL run on an original IBM PC (if upgraded to 512kb of ram)maybe the…
Post #AcqdXBQlUpi9n9yiES by [email protected]
0 likes, 0 repeats
unrelated note, I should hack the amiga version tooit looks like they went all-…
Post #AcqeJKFzz1jZ4AtlNA by [email protected]
0 likes, 0 repeats
interestingly, Railroad Tycoon Deluxe seems to use basically the same save/map …
Post #AcqepyKEXtkMbQRiyW by [email protected]
0 likes, 0 repeats
See? Uncompressed.
Post #AcqkZ8OATanCcFdnFY by [email protected]
0 likes, 0 repeats
if I can figure out the compression method I may be able to re-inject the Delux…
Post #AcqlfHvE2qelsGbLqy by [email protected]
0 likes, 0 repeats
it's not a question anyone has asked, but now you know:you can't copy t…
Post #AcqlzdDwYRtRjU3bbE by [email protected]
0 likes, 0 repeats
and it seems that railroad tycoon and railroad tycoon deluxe cannot read each o…
Post #AcqmMCNuVa7x9WTorg by [email protected]
0 likes, 0 repeats
@foone what's the end goal? Extracting assets, or full recompilation?
Post #AcqmMCSAFlWvMiTDUm by [email protected]
0 likes, 0 repeats
@viraptor just the usual, wanting to look inside games I spent a lot of time wi…
Post #AcqmYlfv7oOy4xthaa by [email protected]
0 likes, 0 repeats
okay it definitely doesn't store the maps in memory as-decoded. I did a sea…
Post #Acqn1De8ip7CwGdBia by [email protected]
0 likes, 0 repeats
@foone oh, I guess I need new Friday night plans.
Post #Acqn1Di2UKEb8MSInQ by [email protected]
0 likes, 0 repeats
@mima I know, right? it ruins all my plans!
Post #AcqpOyIFehueBFqYy0 by [email protected]
0 likes, 0 repeats
I realized my plan to try and VM-hax the decompression routine won't really…
Post #AcqpUkNyHFCmmfHBaK by [email protected]
0 likes, 0 repeats
so realistically to VM-hax the decompression routine, I'd need to stuff not…
Post #AcqpbArUkhJ2dU9NrM by [email protected]
0 likes, 0 repeats
so what if I attack it in a completely different way?I've got it running in…
Post #AcqqMeUaP8Fq8y4esi by [email protected]
0 likes, 0 repeats
or I could actually figure out the compression algorithm.like an adult.but I do…
Post #AcqszjAJAEoTq3LjX6 by [email protected]
0 likes, 0 repeats
okay so I have extracted some data. I have a 48-byte file that I know extracts …
Post #AcquozuWlS8MUqynTM by [email protected]
0 likes, 0 repeats
20 61 in the input results in a 01 written to the output.how.why? we may never …
Post #AcqvDvDPMKFTAohBtw by [email protected]
0 likes, 0 repeats
OH GOD I DESTROYED THE WEST COAST AGAIN
Post #AcqvVmfLsrMRs3HdeC by [email protected]
0 likes, 0 repeats
and now the area around Vancouver is a desert that looks like a swamp
Post #AcqwCy915CiTvGkd2u by [email protected]
0 likes, 0 repeats
@foone Foone I believe that's the east coast
Post #AcqwCyCuqhps7MZk7k by [email protected]
0 likes, 0 repeats
@SteveSyfuhs it is now, but it wasn't when I started!
Post #AcqwWNB4Ec9t3zxklE by [email protected]
0 likes, 0 repeats
So, this decompression function:3+1 functions interleaved. (The +1 is for the e…
Post #Acqwcdweo2linxDEo4 by [email protected]
0 likes, 0 repeats
of the 13 global variables, I currently understand one of them, and maybe half …
Post #Acqwlkxa5uDlAQzSBk by [email protected]
0 likes, 0 repeats
if that wasn't bad enough, the middle of the three functions DOES NOT HAVE …
Post #AcqwyqItXO9TVOCQVM by [email protected]
0 likes, 0 repeats
it's possible this code doesn't make sense because it's not all the…
Post #AcqzAsiMbFrMMiyr8S by [email protected]
0 likes, 0 repeats
I have figured out TWO global variables now.one of them specifies if we're …
Post #AcqzppIcCctPe7Se0G by [email protected]
0 likes, 0 repeats
so the for loop inside the internal decompress, it starts at 8, compares it is …
Post #Acr1z0VC7U7UuDqmTA by [email protected]
0 likes, 0 repeats
I think I'm up to three
Post #Acr26GWqvmpQdg5SWu by [email protected]
0 likes, 0 repeats
but I also found a table that's 768 bytes long. so I'm also kinda down …
Post #Acr2P2JdzztK3mrLXs by [email protected]
0 likes, 0 repeats
and experimentally that weird stack-jump only goes to two locations in the call…
Post #Acr3ROy0qyyEqQQvQ0 by [email protected]
0 likes, 0 repeats
I've run out of brains for today. But I will continue
Post #AcsWwcKSJd575l7yVs by [email protected]
0 likes, 0 repeats
so I think this compression format is specialized to writing nibbles. like, I t…
Post #AcsXQwAX7ECvJOwb3Y by [email protected]
0 likes, 0 repeats
it might actually be 0x0N0N? but again, it doesn't seem to be possible to t…
Post #AcsYnpdDgfKveRqJxQ by [email protected]
0 likes, 0 repeats
god this is terrible.so there's like three ways things can get pushed onto …
Post #AcsYyUlDcpUQ6ffXhA by [email protected]
0 likes, 0 repeats
I can't easily tell WHEN they get saved because, of course, ghidra can'…
Post #AcsZ9dTNZcneJRdYK8 by [email protected]
0 likes, 0 repeats
and the dictionary makes no sense. it's 768 bytes long, and it's format…
Post #AcsZ9ggxbaRiIR0wPQ by [email protected]
0 likes, 0 repeats
okay great. but then there's code that searches it to find a "slot&quo…
Post #AcsZQXHZqI3w2KAvQW by [email protected]
0 likes, 0 repeats
except I step through the decompression of the first line of code and THE DICTI…
Post #AcsZZZy9DsrCyWOpWq by [email protected]
0 likes, 0 repeats
I think I need to officially stop looking at the decompilation for this code. i…
Post #AcsZs1KgE1213OjSq0 by [email protected]
0 likes, 0 repeats
REVERSE ENGINEERING COMPRESSION CODE IS THE WORST
Post #Acsa1UZsrSyiMXMOX2 by [email protected]
0 likes, 0 repeats
this is actually decompression code, to be accurate.and I know there IS compres…
Post #AcsaRlvUyxBvhJ09su by [email protected]
0 likes, 0 repeats
I hope I'm misunderstanding this code, because if I'm not, they fucked …
Post #AcsbTanVQiyhiOh9IO by [email protected]
0 likes, 0 repeats
the programmers of this code don't seem to believe in passing arguments bet…
Post #AcsbdWoB7HX4ErkNrk by [email protected]
0 likes, 0 repeats
or they pass width/height of a bitmap into fopen() and then fopen() does nothin…
Post #AcsbdZWD2XwQe0MZm4 by [email protected]
0 likes, 0 repeats
<Garth Marenghi> I KNOW PROGRAMMERS WHO USE PURE FUNCTIONS AND THEY'R…
Post #Acsbwu6SjMlrzMXRbc by [email protected]
0 likes, 0 repeats
they're also checking the return code of this function after calling it, bu…
Post #Acsc6cg4NEx2q7pNgW by [email protected]
0 likes, 0 repeats
@[email protected] wh.. what do they do instead, global variables?
Post #Acsc6ckK7QM13JomJc by [email protected]
0 likes, 0 repeats
@sekoiatree yes! some of which are reused for different purposes in different s…
Post #Acse14dVi8a3it72Ia by [email protected]
0 likes, 0 repeats
@foone I reverse engineered an LZSS-based compression format in a GBA game in 2…
Post #Acse14hPTdhRuyw9NQ by [email protected]
0 likes, 0 repeats
@endrift how much caffeine and adderall did it take?
Post #Acse8dAfi3BSrGE7xg by [email protected]
0 likes, 0 repeats
@foone Have you written more software than you’ve used?
Post #Acse8dEvSEaR4SDWam by [email protected]
0 likes, 0 repeats
@michaelgemar that would be hard to do!
Post #AcseME7ddaeZDyI6ls by [email protected]
0 likes, 0 repeats
THE SAVE GAME FUNCTION THUNKS INTO THE VIDEO DRIVER OVERLAY!?
Post #AcseMGllnLwXR15BbM by [email protected]
0 likes, 0 repeats
I need to go find my copy of Sid Meier's autobiography. maybe there's a…
Post #AcseMHWYzNNDm8yYXQ by [email protected]
0 likes, 0 repeats
oh sweet lord jesus it's reading from the video ram
Post #AcsexXLn6tJnZfhZSK by [email protected]
0 likes, 0 repeats
@foone The sample code for the API I'm using just puts parameters into envi…
Post #AcsexXQ2r4ilmrgy5Q by [email protected]
0 likes, 0 repeats
@aburka AHHHHHHHHHHHHHHHH
Post #AcsfF27nwdonwUVDn6 by [email protected]
0 likes, 0 repeats
WHY WOULD YOU STORE YOUR MAP IN THE VIDEO RAM YOU FUCKING WEIRDO
Post #AcsfN6VVXFrzqnRD9c by [email protected]
0 likes, 0 repeats
dosbox-x needs a "dump vram" option
Post #AcsfY3IXo5wz5DawiW by [email protected]
0 likes, 0 repeats
any the weird thing is that I don't think the map is IN vram when it goes t…
Post #AcsfhAyad4IPVEc0C8 by [email protected]
0 likes, 0 repeats
but I found the compression code. it's... simpler? slightly? at least it se…
Post #AcshsTPubi9bmzuGKO by [email protected]
0 likes, 0 repeats
AHH THE SAVE GAME FUNCTION IS CALLED FROM ANOTHER OVERLAYif it's the fuckin…
Post #Acsjn7thOAmrVYPv1c by [email protected]
0 likes, 0 repeats
thank fuck, it's not, it's one of the other internal overlays.the ones …
Post #AcsjnAb1M4d3sUhXpQ by [email protected]
0 likes, 0 repeats
minor breakthrough:the save_game_map function repeatedly calls compress_map(N,M…
Post #AcsjnBNESpC4I1G2yW by [email protected]
0 likes, 0 repeats
now, compress_map does the following:first, it checks for the tile being 0x90. …
Post #AcsjnC9RZZl4hXoY7c by [email protected]
0 likes, 0 repeats
and if the repeat count is less than (or equal to 3), it just calls inner_compr…
Post #AcsjnCw0f0bf8AXKoy by [email protected]
0 likes, 0 repeats
which kinda seems like it'd write a file like this:all bytes are written as…
Post #AcsjnDhrn4t5WavYPo by [email protected]
0 likes, 0 repeats
very simple RLE, right?except that's absolutely not what the file ends up l…
Post #AcsjnETiv9AVv1Jm0e by [email protected]
0 likes, 0 repeats
because that's the thing with this format: as is, it'd make pretty bad …
Post #AcsjnFGdzGIgMkCqGG by [email protected]
0 likes, 0 repeats
so I think they added another layer of indirection, doing something like encodi…
Post #AcsjnG2V7Ka6lAb3r6 by [email protected]
0 likes, 0 repeats
okay so, the first level of encoding is RLE.The map is RLE'd into the follo…
Post #AcsjnGp4ClQhBnJqYS by [email protected]
0 likes, 0 repeats
that gets turned into a stream of bytes passed into inner_compress, where bytes…
Post #AcslcxbJ15oYaO5tFg by [email protected]
0 likes, 0 repeats
@foone None, I avoided coffee until 2015 and I wasn't about to take other s…
Post #AcslcxfYlHDWna5Hsm by [email protected]
0 likes, 0 repeats
@endrift dear godare you sure you're human and not some kind of robot made …
Post #AcsnntxZ5sYCO4qnRI by [email protected]
0 likes, 0 repeats
@foone I believe that in one episode Garth said he had written more books than …
Post #Acsnnu1SrNfaaAfuW8 by [email protected]
0 likes, 0 repeats
@michaelgemar oh right, I forgot the reference!
Post #Acso3JExNquH8ZKfdQ by [email protected]
0 likes, 0 repeats
@foone it’s hillarious that nearly all the things you find astounding in this…
Post #Acso3JJZ6iapMrULom by [email protected]
0 likes, 0 repeats
@foone i guess after a while one has “seen it all”
Post #Acso3JNSsDiDYxJStc by [email protected]
0 likes, 0 repeats
@clairely_undaunted I think it just means that you too have been slightly damag…
Post #AcsoTpx6Nr3S7Yd8gi by [email protected]
0 likes, 0 repeats
now the final transformation is the one I don't understand, but I can cheat…
Post #AcsoTt9GV5ZC29LOYy by [email protected]
0 likes, 0 repeats
so yeah. Compression is a 3 step process:Map -> RLE tuples -> RLE Bytestr…
Post #AcsoTtwBZChMTsESoa by [email protected]
0 likes, 0 repeats
so we've got a function that should write 3 16-bit words to memory. where d…
Post #AcsoTujSc076whHocS by [email protected]
0 likes, 0 repeats
well I can at least put aside the brainhurty figuring out stuff for some bookke…
Post #Acsp2O3C76fPijxFZI by [email protected]
0 likes, 0 repeats
@foone I once printed out a bunch of code just so I could set fire to it in a p…
Post #Acsp2O7RrI4NvvweCO by [email protected]
0 likes, 0 repeats
@sungo that's a good idea. where's my dot matrix printer?
Post #AcspsmcxyxBb0FfgGG by [email protected]
0 likes, 0 repeats
@foone this may be the right moment to note that much of what we call "the…
Post #AcspsmhDj8aZDRf4tM by [email protected]
0 likes, 0 repeats
@SvenGeier as MST3K said, "It's the Eighties. Do a lot of coke and vot…
Post #AcsqATRC4IaShPbGiG by [email protected]
0 likes, 0 repeats
I've Trantored/Coruscanted the west coast! it's all cities, all the tim…
Post #AcsqAWClmNpdHXsI9A by [email protected]
0 likes, 0 repeats
well, mostly. some tiles didn't get changed to cities (I'm not sure why…
Post #AcsqgMg6jeDR0Amaw4 by [email protected]
0 likes, 0 repeats
ugh I keep crashing this game that I'm hacking the code of at runtimewho co…
Post #AcsqtJC508KBxZuS7E by [email protected]
0 likes, 0 repeats
okay finally got it working. Here we go. From Alabama to the Pacific ocean (and…
Post #Acsr6Ka59g1u1iLW4G by [email protected]
0 likes, 0 repeats
And here's what happens when you zoom in: It's not ACTUALLY all city, e…
Post #AcsrJ5zGj3AuWtDIe0 by [email protected]
0 likes, 0 repeats
@Nekoplanet Nah, it came out on PC first. There were ports, but they were all t…
Post #AcsrTWsvZjXSqaDs5Q by [email protected]
0 likes, 0 repeats
now here's the question: does the industry pattern break at the bottom of t…
Post #AcsrkHf1QqlsYKhwA4 by [email protected]
0 likes, 0 repeats
it's discontinuous! so yeah, it uses tile numbers.
Post #AcstEtRlblxqO0fQgq by [email protected]
0 likes, 0 repeats
so it turns out it uses the positional thing for more than just cities.tile_typ…
Post #AcstSkgKzd1RFx5hA0 by [email protected]
0 likes, 0 repeats
here's the really weird part. This map, despite looking like that, is actua…
Post #AcstrfqM7S31UQf0m8 by [email protected]
0 likes, 0 repeats
here's the 0A ("farm") tile: it turns out it's a mix of farms…
Post #Acsu6ONXKqU3fRCO6y by [email protected]
0 likes, 0 repeats
@foone i just know how the sausage was/is made, i look forward to blissful igno…
Post #Acsu6OS93iAbtjM4IK by [email protected]
0 likes, 0 repeats
@clairely_undaunted I'm sure that's completely unrelated to the instanc…
Post #AcsuCQlDONeGnB9ZwW by [email protected]
0 likes, 0 repeats
0b (foothills) are not special. set it to all 0b, and you really get all 0b
Post #AcsuMO1WQIIrCQWoWO by [email protected]
0 likes, 0 repeats
villages are also paper mills, stock yards, factories, and food proc.
Post #AcsudgXUpqqLY1jUBs by [email protected]
0 likes, 0 repeats
@foone absofuckinglutely though tbh it’s just a different type of programming
Post #AcsudgbObLxjk7YbGi by [email protected]
0 likes, 0 repeats
@clairely_undaunted heh. makes me think of a security engineer who is really in…
Post #AcsutjMa6UK8wJHJom by [email protected]
0 likes, 0 repeats
okay checked the rest (except rivers, because... no)so 05 and 08 are mines, 0a …
Post #AcsviJZnjoFrjRa9oG by [email protected]
0 likes, 0 repeats
judging by how this worksI think it might be writing data files in 47-bit chunk…
Post #AcsvqUyTFEErOm1W9Q by [email protected]
0 likes, 0 repeats
so, a datapoint:a map entirely full of 01 and a map entirely full of 02 are dif…
Post #AcsvqY61db4354a5qK by [email protected]
0 likes, 0 repeats
it's possible the intermediate RLE is making this weirder than it should be…
Post #AcuW2JwxqjFQBrDPns by [email protected]
0 likes, 0 repeats
so I need to write 256 bytes into RAM, without a pointer to it, in... 5 bytes.o…
Post #AcuWF353sfXDdS4WSu by [email protected]
0 likes, 0 repeats
okay maybe I can take out a function callthat gives me like, 45 bytes. more tha…
Post #AcuWotcuVYssjszviS by [email protected]
0 likes, 0 repeats
MOV AL, 01MOV DI, [BP-6]MOV CX, 320REP STOSBthat's 10 bytes.
Post #AcuXiXnqpnZ7GseNkW by [email protected]
0 likes, 0 repeats
well my code was supposed to generate a world that's entirely water, but I …
Post #AcuXqnwkhGuHekkihs by [email protected]
0 likes, 0 repeats
@foone Mind the direction flag
Post #AcuXqo0eSm1fqqZpmi by [email protected]
0 likes, 0 repeats
@Computeum good point. I'll stick a CLD in there
Post #AcuZEdwlcx9rXxgsbo by [email protected]
0 likes, 0 repeats
oh I'm a doofus.I was trying to hack the game to save a game where every ti…
Post #AcuZWAXrgG7BZVOqCu by [email protected]
0 likes, 0 repeats
and done.I was so busy trying to use my HACKER SKILLS to realize I didn't n…
Post #AcuZic1zJZKEICQHhY by [email protected]
0 likes, 0 repeats
okay so a map of all the same tile results in an 83 byte file, which only varie…
Post #AcuZif73rAALqnosWe by [email protected]
0 likes, 0 repeats
now the reason it's not smaller is that a map actually looks like this:It&#…
Post #AcuaPiAuLc7Fnd98ZU by [email protected]
0 likes, 0 repeats
NOPE! I decoded (using my load-it-as-a-logo trick) the all-1 and all-2 tiles an…
Post #AcuaPiFW4Tno1vIokq by [email protected]
0 likes, 0 repeats
so what the heck
Post #AcuahPZIGWRNIvzbNo by [email protected]
0 likes, 0 repeats
well I interestingly corrupted it
Post #Acub2neRv6S04ubRVw by [email protected]
0 likes, 0 repeats
yeah I'm randomly corrupting it, and this isn't any RLE. This is defini…
Post #Acub2qIw3Y1YJ3Yntg by [email protected]
0 likes, 1 repeats
who wants to play Railroad Tycoon on Memory Uninitialized World?
Post #AcubXw1uopzf2aQR2e by [email protected]
0 likes, 0 repeats
fun fact: because the saved game map files are the same format as PIC, you can …
Post #AcueyxlykLCy7yYCvo by [email protected]
0 likes, 0 repeats
@foone What does the zoomed-out version look like?
Post #AcueyxpsVqKMK4NK0e by [email protected]
0 likes, 0 repeats
@jtlg that's the left image!
Post #AcujpFbm4zXGJmxwqu by [email protected]
0 likes, 0 repeats
@foone For a worrying moment I thought this was Railroad Tycoon over SSTV
Post #AcujpFg1pAwEWyxLU0 by [email protected]
0 likes, 0 repeats
@tryst I'll have to do that next. Most of my TV stuff is analog ntsc but I&…
Post #AcwYQUVCr9S85lnwx6 by [email protected]
0 likes, 0 repeats
god help me I don't want to have to write an extension to link ghidra and d…
Post #AcwZIbQFLNy3BwHrVo by [email protected]
0 likes, 0 repeats
I might just write my own debugger. the dosbox one is slightly terrible.
Post #AcwZdpkdGUDbiFwizg by [email protected]
0 likes, 0 repeats
basically I need to watch the input buffer, the output buffer, about 15 random …
Post #AcwcoO5Cm5NmwvIDtw by [email protected]
0 likes, 0 repeats
@foone that first picture looks like what I call Rainbow Death Snow when it app…
Post #AcwdoZyodrRJnjxZI0 by [email protected]
0 likes, 0 repeats
it's kinda telling about how my brain works that I keep running into revers…
Post #Acwf9E7VDAym2VQrDc by [email protected]
0 likes, 0 repeats
@foone An idea I've been mulling for a while is to hack up a copy of MAME/M…
Post #Acwf9EBkxMNkFhQFqi by [email protected]
0 likes, 0 repeats
@curtmack yeah, something like that would be awesome
Post #AcwfK92cR0KnTPM168 by [email protected]
0 likes, 0 repeats
@foone but what if you wrote a generic, retargetable, debugger construction kit?
Post #AcwfK96sBBjlgbLPjE by [email protected]
0 likes, 0 repeats
@StompyRobot yes why not? why not turn a simple "hack one game" proje…
Post #Acwfry87VbjfTj3WJE by [email protected]
0 likes, 0 repeats
@foone Obviously this would slow down emulation, but I think it would still be …
Post #AcwfryCNFn8dgv2uwK by [email protected]
0 likes, 0 repeats
@curtmack yeah. and even if slow, you could have it be togglable: you turn it o…
Post #Ad0vlHHkGdl2l8EFyC by [email protected]
0 likes, 0 repeats
I think I'm gonna try abusing external memory reading into letting me watch…
Post #Ad0vuh3lo7a7IuBLGa by [email protected]
0 likes, 0 repeats
that's one of the problems with being a game hacker: you don't use &quo…
Post #Ad13rNjQ0onM7gav20 by [email protected]
0 likes, 0 repeats
here's why I hate reversing compression code:there's no shortcuts.
Post #Ad144eRTC6RxiLWhoe by [email protected]
0 likes, 0 repeats
I am a fucking MASTER at finding shortcuts. I have endless tools and tricks and…
Post #Ad144hD2uBh8ITnjFY by [email protected]
0 likes, 0 repeats
compression is the ultimate "you stare at this code until you understand i…
Post #Ad14SlVkYzB0aY1jXs by [email protected]
0 likes, 0 repeats
and I have EXACTLY the wrong kind of brain to be any good at that. my brain is …
Post #Ad14SoCiYCjcwO94nQ by [email protected]
0 likes, 0 repeats
I do not have a smart brain, I have a clever brain. they are not the same. and …
Post #Ad15BYuEH9noWdpzkG by [email protected]
0 likes, 0 repeats
@Sweetshark exactly
Post #Ad15HlPMhosH2PMHaa by [email protected]
0 likes, 0 repeats
this debugger needs a "step backwards" command
Post #Ad18nsnj3QUT5zlBWS by [email protected]
0 likes, 0 repeats
@foone you know about debuggers that do have such a command then, yes
Post #Ad18nssKmIB1KHurho by [email protected]
0 likes, 0 repeats
@thorsummoner yes. dosbox-x doesn't have it, though
Post #Ad19aC1msAJacuNCka by [email protected]
0 likes, 0 repeats
ahh I've hit another function where ghidra has decided it can no longer ren…
Post #Ad1EcETLFrPWYe3Nb6 by [email protected]
0 likes, 0 repeats
it's physically impossible to stare at x86 code for long without wanting to…
Post #Ad1FUUD0xjBF0AHqBk by [email protected]
0 likes, 0 repeats
@secretasianman I've not done much work in those architectures, so I don&#3…
Post #Ad1GDDQiC2nxzf1R1k by [email protected]
0 likes, 0 repeats
although it's amusing when you see code like:MOV BX, AXADD BX, AXADD BX, AX…
Post #Ad1GMOIDAt5yI4QBH6 by [email protected]
0 likes, 0 repeats
it probably does but this code is targeting 8086 so it couldn't use it yet
Post #Ad1WMe83tV5GfkokZU by [email protected]
0 likes, 0 repeats
maybe I just need to write an x86 emulatorlike you do
Post #Ad1WSdWh32EEXaC9yK by [email protected]
0 likes, 0 repeats
I haven't written an x86 emulator since... oh yeah the last time I tried to…
Post #Ad1Wn5cuHWcdU2r1hQ by [email protected]
0 likes, 0 repeats
@foone time for a DAYS SINCE FOONE WROTE AN X86 EMULATOR counter.
Post #Ad1Wn5hA1i1bhEqQKW by [email protected]
0 likes, 0 repeats
@alys it was at 3227 days! I was out, but they pulled me back in
Post #Ad1XzkO4eyEDKWW2kK by [email protected]
0 likes, 0 repeats
I've gotten weirder and I tried dumping a compressed map into a bitmap rend…
Post #Ad1YDh6berDvCpzo6y by [email protected]
0 likes, 0 repeats
okay it only appears in my super-compressed files. not in the semi-compressed o…
Post #Ad1aJIf9eG7D2mxM00 by [email protected]
0 likes, 0 repeats
okay so I've done an interesting experiment: I turned off the RLE.So the fu…
Post #Ad1aVTdUfyOWYGzBjM by [email protected]
0 likes, 0 repeats
and there's again an interesting pattern at 9-bits wide.
Post #Ad1d7rwOxVkSqRGRzU by [email protected]
0 likes, 0 repeats
made a BIG discovery:the labs.PIC file in railroad tycoon is identical to the o…
Post #Ad1dHrKE6RbZpaAiZ6 by [email protected]
0 likes, 0 repeats
and you know WHY that's a big deal? THERE'S TOOLS THAT CAN EXTRACT COVE…
Post #Ad1dHuDFMqnwmnvgbQ by [email protected]
0 likes, 0 repeats
https://github.com/jarikomppa/covert_action
Post #Ad1dTyv3h6IYrIBEjw by [email protected]
0 likes, 0 repeats
it's LZW! the same one that powers GIF
Post #Ad1deyiCnzFXOvPbOK by [email protected]
0 likes, 0 repeats
SID MEIER'S RAILROAD TYCOON VIOLATED THE UNISYS GIF PATENT
Post #Ad1e1ohSCE0j0dwzoG by [email protected]
0 likes, 0 repeats
well it's not decoding it exactly right, but it's... close?
Post #Ad1h6y5J1zkNQTFsoq by [email protected]
0 likes, 0 repeats
And it works. We have decoding of Railroad Tycoon MAP files!
Post #Ad1hF2Md0Kh70zCmEi by [email protected]
0 likes, 0 repeats
this thread has been going for a week and I finally got the result I needed and…
Post #Ad1hF5UBOhWIhHlLvc by [email protected]
0 likes, 0 repeats
(okay not really. I had to modify the code, and the modifications were only pos…
Post #Ad1hYFAlbdsUF5ocbI by [email protected]
0 likes, 0 repeats
@foone I always dreamed of having a public hash database, where you put the has…
Post #Ad1hYFEfN8zsRBdjg8 by [email protected]
0 likes, 0 repeats
@andrea yeah! I've thought about doing something like that for DOS games, p…
Post #Ad1hhmvJUVGxWb8dhg by [email protected]
0 likes, 0 repeats
so I need to do some stuff to modify this to not write PNG files but instead wr…
Post #Ad1hhpbDXfypp8l8IS by [email protected]
0 likes, 0 repeats
as well as put this code online and make a pull request.but all that can wait. …
Post #Ad1i7eQxg43wixH35M by [email protected]
0 likes, 0 repeats
time to close every tab and program I have open.it's over. I won. all that&…
Post #Ad1l3Kh3Qho6CjQx0K by [email protected]
0 likes, 0 repeats
@foone it's over? I honestly expected to see a trans flag as a map tomorrow…
Post #Ad1l3Klf9ZUeR1adBg by [email protected]
0 likes, 0 repeats
@viraptor sigh.I'LL DO IT TOMORROWassuming I can. I have limited colors her…
Post #Ad1lANFALY9m8mkLho by [email protected]
0 likes, 0 repeats
@viraptor what do you want me to do, remap the palette used by the game?actuall…
Post #Ad1ujxRidbIo8xf1fc by [email protected]
0 likes, 0 repeats
@foone not an expert, but PPM might be the right image format for you: it's…
Post #Ad1ujxVyNmhmM9eQIi by [email protected]
0 likes, 0 repeats
@andrea the image format isn't the problem, it's just that I don't …
Post #Ad3AjlLzOEW542ryBk by [email protected]
0 likes, 0 repeats
@foone Is this how Xorg got its x86 emulator to run vbioses :blobcatthink:
Post #Ad3AjlPt9jdTG8h5Ga by [email protected]
0 likes, 0 repeats
@NanoSector ahh, x86. the lingua franca of computers
Post #Ad3ReYD6Wl7u4doXZY by [email protected]
0 likes, 0 repeats
@dpflug I sure did! I'll never learn!
Post #Ad7ES7dKzZofOsfRwm by [email protected]
0 likes, 0 repeats
bah. dosbox doesn't let me set breakpoints on io ports. WHY NOT?
Post #Ad7G4sORgklJNikGXI by [email protected]
0 likes, 0 repeats
@JackEric I'VE BEEN BREAKING THINGS SINCE I WAS OLD ENOUGH TO HOLD A SCREWD…
Post #Ad7GjPcrYATW29olOq by [email protected]
0 likes, 0 repeats
ugh. so the palette-setup call is into an external overlay and called from an i…
Post #Ad7HpBBAH94ev5Aybw by [email protected]
0 likes, 0 repeats
I'm sure that's fine
Post #Ad7LKdWbEizLfitSnA by [email protected]
0 likes, 0 repeats
@Ephraim_Bane always!
Post #Ad7NUSWpAw6IN5oIYS by [email protected]
0 likes, 0 repeats
so the EGA/VGA driver handles colors in a weird way: The main EXE passes a list…
Post #Ad7NVcBMlfiWbOKB6W by [email protected]
0 likes, 0 repeats
@ironiridis I'll fix that before I'm done
Post #Ad7NmzFsEmG15FiU9g by [email protected]
0 likes, 0 repeats
that list, btw, is the following:00 01 02 03 04 00 06 07 08 09 0A 0B 0C 0D 0E 0…
Post #Ad7O6Sk4pSay2S89J2 by [email protected]
0 likes, 0 repeats
this translation means the actual colors end up being:00 01 02 03 04 00 06 07 1…
Post #Ad7OF5Q2ufSaJFsCrQ by [email protected]
0 likes, 0 repeats
@foone does it really drop the 4th bit?
Post #Ad7OF5TwgAZyVLhJwG by [email protected]
0 likes, 0 repeats
@Flux yep
Post #Ad7OS5H2lRAbcjrOjI by [email protected]
0 likes, 0 repeats
Turning off the color-shifting logic makes the intro a bit uglier
Post #Ad7P6iCBTR1pv7xaNc by [email protected]
0 likes, 0 repeats
it's still not working. I think something deeply fucky is happening inside …
Post #Ad7R0GRlvftq1xIwVM by [email protected]
0 likes, 0 repeats
@foone can it do Hercules Graphics card mode … say, 640x350 with something r…
Post #Ad7R0GW1frIoF9IL8S by [email protected]
0 likes, 0 repeats
@HoustonDog I'm not sure. The game has separate graphics drivers for hercul…
Post #Ad7RUdXCee5cK5KMtc by [email protected]
0 likes, 0 repeats
I don't get it.I'm using the following:INP 0x3CA; Clear 3c0 indexOUTP 0…
Post #Ad7Rb9G9cAVASCSSPY by [email protected]
0 likes, 0 repeats
but instead of a pink color for index 1, I'm getting grey. AAAAAA grey.
Post #Ad7RobiL8Gb0T83k8G by [email protected]
0 likes, 0 repeats
it's in EGA/VGA video mode 0D: that's 320x200, 16 colors, 8 pages. I do…
Post #Ad7S5LV6fOlv6fqpcG by [email protected]
0 likes, 0 repeats
that grey color is color index 07: so it's acting like it's truncating …
Post #Ad7SNVA7U52AHegyES by [email protected]
0 likes, 0 repeats
ugh. maybe the mod register has the shift register turned off? that supposedly …
Post #Ad7TDToxiS9zBMa5Dc by [email protected]
0 likes, 0 repeats
ah-ha! I found a hint:EGA apparently only supports color remapping in 350-line …
Post #Ad7TpcnInn4e14zeTY by [email protected]
0 likes, 0 repeats
yeah that's fine
Post #Ad7U7Wp7ju4ciANmQC by [email protected]
0 likes, 0 repeats
there's my pink! it's just rendering completely incorrectly because I&#…
Post #Ad7UQRAF0NLaf3HC3E by [email protected]
0 likes, 0 repeats
so one way I could fix this is to stay in mode 0D (320x200x16) but use the VGA …
Post #Ad7UwsCvzfP1nl0Ewi by [email protected]
0 likes, 0 repeats
it helps if you don't have your DOSBox set to emulate an EGA card, I'm …
Post #Ad7V6M7GAEF7AQs0jg by [email protected]
0 likes, 0 repeats
THAT WAS THE WRONG INDEX OH GOD
Post #Ad7VCsfc2dltry39N2 by [email protected]
0 likes, 0 repeats
@foone I would listen to a podcast that is nothing but highly esoteric DOS era …
Post #Ad7VCskDlVSS6GCpYO by [email protected]
0 likes, 0 repeats
@shram86 god yeah
Post #Ad7VdQo1kSWjGie70a by [email protected]
0 likes, 0 repeats
but there we go. There's my pink. Just needed to use the VGA registers inst…
Post #Ad7Wi1vZlwwdVovwWW by [email protected]
0 likes, 1 repeats
there we go. Using my patches to pic2png/png2pic and modifying EGRAPHICS.EXE to…
Post #Ad7WqMPtTjnJNH5RQ0 by [email protected]
0 likes, 0 repeats
now I just need to write this onto a floppy disk (or two) so I can take it down…
Post #Ad7XktXXVvWIJycXS4 by [email protected]
0 likes, 0 repeats
I need to figure out where to stuff 60 bytes of VGA manipulation code though, m…
Post #Ad7ZIZ5IApcCgB1jzU by [email protected]
0 likes, 0 repeats
turns out the copyright notice is 63 bytes long
Post #Ad7ZR7uKaNMGzwyz7w by [email protected]
0 likes, 0 repeats
@foone deluxe?
Post #Ad7ZR7yELsTfC2o6Cm by [email protected]
0 likes, 0 repeats
@JLab8 No, the original. I have a lot of hate for deluxe
Post #Ad7ZX2HMQRFbHMZXpw by [email protected]
0 likes, 0 repeats
@foone it sounds like what is quickly becoming apparent is that EGA wasn't …
Post #Ad7ZX2LGBwMzTSOeum by [email protected]
0 likes, 0 repeats
@ranvel well, I mean, this is the video card where they programmed the BIOS to …
Post #Ad7ZjarlemeA1Zabb6 by [email protected]
0 likes, 0 repeats
MY FLOPPY DISK HAS DEVELOPED A BAD TRACK ZERO?TRANSPHOBIA!
Post #Ad7aInI7S8EQhAhSbo by [email protected]
0 likes, 0 repeats
and another.I even tried on a different disk. HOW MANY FLOPPIES ARE GONNA DIE O…
Post #Ad7aUvulDXxyumYwF6 by [email protected]
0 likes, 0 repeats
I grabbed another random floppy disk and it turns out it has been formatted wit…
Post #Ad7agbEbvkRGFiPV3o by [email protected]
0 likes, 0 repeats
@foone ....what.
Post #Ad7agbIrfvqESuOtgu by [email protected]
0 likes, 0 repeats
@x4nw I suspect this was the fault of Foone. That fucker is always doing weird …
Post #Ad7armpRAGfHObyCAq by [email protected]
0 likes, 0 repeats
@x4nw yep. confirmation:https://twitter.com/Foone/status/1455304578606370819
Post #Ad7bIaIFsVeaKzEACG by [email protected]
0 likes, 0 repeats
I love that it's 2023 and I just did "copy *.* A:" like it's …
Post #Ad7cIBJ0skRWnFxC5Y by [email protected]
0 likes, 1 repeats
There we go. The trans-continental railroad tycoon.
Post #Ad7cVsxRtaFTwWOyUC by [email protected]
0 likes, 0 repeats
if you go into the game to see what's what, it turns out the blue is clear …
Post #Ad7cd8L36oulfjtf6m by [email protected]
0 likes, 0 repeats
also, my trans agenda has apparently sunk the city of Redding, CA.
Post #Ad7hT6fexC0VNKZjHc by [email protected]
0 likes, 0 repeats
@foone considering what's going on in that city, that's perhaps a good …
Post #Ad7hT6kGg3h3bcjPSy by [email protected]
0 likes, 0 repeats
@12 I don't know what's happening in Redding so I'll just assume th…
Post #Ad7hrD94X9F8PBpJY0 by [email protected]
0 likes, 0 repeats
@foone totally here for the cool and refreshing pink lemonade ocean
Post #Ad7hrDDKHKe6cNoiB6 by [email protected]
0 likes, 0 repeats
@thepi that's the gender fluid!
Post #Ad8xlhci64fTcP2qNU by [email protected]
0 likes, 0 repeats
@foone @12 want to find the portal to a rabbit hole? look into the Bethel Churc…
Post #AdMZnKsLxvs4xa2x16 by [email protected]
0 likes, 0 repeats
so I figured out the patterns of the tile types 5 and 8 (they're identical!…
Post #AdMbXafffdsbDvjb6m by [email protected]
0 likes, 0 repeats
ugh. I'm gonna have to write some hacky code to explore the map and figure …
Post #AdMbhZOjG97uAdZJ8i by [email protected]
0 likes, 0 repeats
anyway here's my partial rendering of a full Railroad Tycoon map. All unhan…
Post #AdMztesb6NxhXxpuWe by [email protected]
0 likes, 0 repeats
You ever stay up until 5:30 am and you're really really tired but you also …
Post #AdOPB3Km7sIOKHMpM0 by [email protected]
0 likes, 0 repeats
I have taken 1,324 screenshots. that should help.
Post #AdQ7YbhT6tvuiCz2bg by [email protected]
0 likes, 0 repeats
okay I have now similar-image recognized my 1324 screenshots.There are apparent…
Post #AdQ88MduZROGRBN0MK by [email protected]
0 likes, 0 repeats
FUCK something in my recognition is wrong. Those numbers are not correct
Post #AdQ8UhZXR5ppigyZKS by [email protected]
0 likes, 0 repeats
FUCKmy recognition is right.my screenshots were NOT. I think my program was tak…
Post #AdQ8kBkjVXClfPb43k by [email protected]
0 likes, 0 repeats
yeah look.two cursors. that's not right.
Post #AdQ8tZUuauMbusfeCW by [email protected]
0 likes, 0 repeats
ARGH this process already takes 15 minutes to run and now I need to fix it by s…
Post #AdQB0CKJLFATzL02bI by [email protected]
0 likes, 0 repeats
I ran it again... and it didn't work. FUCK
Post #AdQE2k7kxD7RFd250i by [email protected]
0 likes, 0 repeats
okay. regenerated. 197 grains, 196 livestock.
Post #AdQEJzqNlGzqvb8JU0 by [email protected]
0 likes, 0 repeats
(0, 118), (1, 137), (2, 156), (3, 175), (8, 14), (9, 33), (10, 52), (11, 71), (…
Post #AdQFSdToNbSg7yG8Om by [email protected]
0 likes, 0 repeats
okay I gave up and just stuck the list of known positions into the script. Here…
Post #AdQGw4lu5XM17jK89Y by [email protected]
0 likes, 0 repeats
this is terrible. did you even pay attention to what you were making, Sidney?
Post #AdQH43ymuwmSz29uSW by [email protected]
0 likes, 0 repeats
I of course mean these 4 stray pixels.whatta heck
Post #AdQI0Kj6oI1Jifbu88 by [email protected]
0 likes, 0 repeats
wow. the river layout code worked first try! I'm a better programmer than I…
Post #AdQIHzVURWkx7WezQW by [email protected]
0 likes, 0 repeats
uh oh. there's some incorrectly placed blocks
Post #AdQIPw9um5Qj3NMDk8 by [email protected]
0 likes, 0 repeats
hmm. I can't load up the riverworld (damn you Philip José Farmer!) because…
Post #AdQJoCdxEl9B5EXj3Q by [email protected]
0 likes, 0 repeats
okay I have a HALF RIVER WORLD, which does load properly.
Post #AdQK7RyQSpNk8CIQ5o by [email protected]
0 likes, 0 repeats
@foone wouldn't it be fun to have different cursors for left and right clic…
Post #AdQK7S2gD0miLOHoiu by [email protected]
0 likes, 0 repeats
@1000millimeter isn't that just Portal? :)
Post #AdQL8PSVOpXMZjO3Lk by [email protected]
0 likes, 0 repeats
okay I think I've found a problem.I can generate single-tile maps and they …
Post #AdQLFXM4RL1D5lm9gW by [email protected]
0 likes, 0 repeats
so I think I've fundamentally misunderstood how this works.my theory was th…
Post #AdQLMeQaXdfP3UHUS8 by [email protected]
0 likes, 0 repeats
but I don't think this is actually how the game works. I think it's mor…
Post #AdQLVkhmZWXV88fBYW by [email protected]
0 likes, 0 repeats
meaning my individual per-tile work isn't helping. fuck.I'm gonna need …
Post #AdQMYnkjnUF1PC3zaC by [email protected]
0 likes, 0 repeats
@foone I fear I don't know portal
Post #AdQMYnozXfdzcO3ODI by [email protected]
0 likes, 0 repeats
@1000millimeter well one of the main mechanics involves creating wormholes in s…
Post #AdQMmrrzHsASECA5wm by [email protected]
0 likes, 0 repeats
anyway I have touched that shit yet, but I finished up the ocean stuff:
Post #AdQP4lZlctD7pRIm12 by [email protected]
0 likes, 0 repeats
gah this is weird.the tracks tilesheet is 20x20, right? but the rest of the til…
Post #AdQQIV8rcjyIrspb3A by [email protected]
0 likes, 0 repeats
found another bug:the game doesn't use the same bridge logic for AI players…
Post #AdQRHjJ3ZjdqSknKxE by [email protected]
0 likes, 0 repeats
completely normal train layout
Post #AdQRPYUreIGVFp37C4 by [email protected]
0 likes, 0 repeats
oh godyou can have double tracks, right?but where are the tiles for the double …
Post #AdQSebMBOijMQEj8NM by [email protected]
0 likes, 0 repeats
I thought I might could cheat and just pull the generated tiles from RAM but I …
Post #AdQTydKxqPlgJHGyae by [email protected]
0 likes, 0 repeats
yeah I can't fully decode this (TOO PLANAR) but I'm pretty sure there&#…
Post #AdQUS6edvE53dNWzPk by [email protected]
0 likes, 0 repeats
yeah it seems to basically draw the regular track, but it offsets it tangent to…
Post #AdQVu4z3pKlMVzz3ey by [email protected]
0 likes, 0 repeats
gah.There's 4 types of stations: and three types of stations in the tiles.t…
Post #AdQWyzKmMMnwOY2yOm by [email protected]
0 likes, 0 repeats
they store the type of the station outside of the tracks list, which is weird. …
Post #AdQX7bMKrpLKe0skxk by [email protected]
0 likes, 0 repeats
anyway this is where I'm leaving it for now:stations are all rendered as De…
Post #AdQexytzHQpoOlXvTk by [email protected]
0 likes, 0 repeats
@foone This started me thinking what was their minimum target spec.Much of this…
Post #AdQexyyF1cEmbxXK6q by [email protected]
0 likes, 0 repeats
@pare the original minimum specs were 512kb ram
Post #AdR6fAeaA4kK3l9weW by [email protected]
0 likes, 0 repeats
@foone I distinctly remember the instructions telling me that there were forbid…
Post #AdaXIWQDVWyo66VJhY by [email protected]
0 likes, 0 repeats
THEY FUCKING THUNK INTO THE GRAPHICS DRIVER TO READ MAP CONTENTSI suspected thi…
Post #AdaXbx74UiegNfoXei by [email protected]
0 likes, 0 repeats
in any case I have discovered that the tile ids used when the game is running a…
Post #AdaXbxBKEu3earnwHo by [email protected]
0 likes, 0 repeats
this is done for a simple understandable reason:Sid Meier hates me personally
Post #AdaYMbMJC5DeWPBXuq by [email protected]
0 likes, 0 repeats
The in-memory tile IDs are: 00 Clear01 Forest 02 Desert03 FootHills04 Hills05 M…
Post #AdaYf3liJ1HlqTrzLE by [email protected]
0 likes, 0 repeats
anyway it's proving how terrible this question is.I want to find where the …
Post #AdaYw4sxPGwUESNAbQ by [email protected]
0 likes, 0 repeats
and yeah, that VRAM is memory mapped, but not directly and not completely. You …
Post #AdaYw7fx25JyszJKFM by [email protected]
0 likes, 0 repeats
and I can't easily decode the function that does it, because it's not i…
Post #AdaYw8TE4sjjLoMg3E by [email protected]
0 likes, 0 repeats
the worst part is that while there is a get_map_tile_at_position function, it g…
Post #AdaYw9FnAJaJmR5Ska by [email protected]
0 likes, 0 repeats
and each one has to toggle through multiple EGA planes to fully pull out ONE si…
Post #AdaYwA3QBnHeGMJ66i by [email protected]
0 likes, 0 repeats
so the EGA planes get manipulated something like 768 times EVERY TIME YOU SCROL…
Post #Adaa1ELFm89sxkd3B2 by [email protected]
0 likes, 0 repeats
@foone uh, fascinating :DI wonder how you found out and how is the code like. (…
Post #Adaa1EPrUzqRC2mjMO by [email protected]
0 likes, 0 repeats
@korpiq I found out through a combination of DOSBox's debugger and Ghidra
Post #Adaalctko6cmRatDF2 by [email protected]
0 likes, 0 repeats
uVar1 = (uint)('\0' < (char)(*(byte *)(*(int *)(y * 2 + 0x241a) + (x…
You are viewing proxied material from pleroma.anduin.net. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.