Post AaH0mKYR4FJu5QAZY8 by [email protected] | |
More posts by [email protected] | |
Post #AaF3b57C2dqGYxppQG by [email protected] | |
0 likes, 0 repeats | |
I love the 1990-ass design of Railroad Tycoon's save system. not "whic… | |
Post #AaF3b8338VJHeyv3se by [email protected] | |
0 likes, 0 repeats | |
okay, now that's interesting. So, backstory info:Railroad Tycoon (1990) sto… | |
Post #AaF3b8ouGZai3PJHTU by [email protected] | |
0 likes, 0 repeats | |
now when you save your game, it saves two files: RR1.SVE and RR1.MAP.(The 1 can… | |
Post #AaF3b9bpKgisV8CLj6 by [email protected] | |
0 likes, 0 repeats | |
Here's the weird part: The .MAP file? It's actually a PIC! | |
Post #AaF3bAMyVOR8rMG0DQ by [email protected] | |
0 likes, 0 repeats | |
I started a game in Western-US and saved my game after making a quick railroad,… | |
Post #AaF3bB8pdSiZFmeDoG by [email protected] | |
0 likes, 0 repeats | |
now that's super interesting because PIC files are compressed! And the game… | |
Post #AaF3bBuglWzzeD2RP6 by [email protected] | |
0 likes, 0 repeats | |
interestingly the images in the MAP files are set to 320x200 (like all the othe… | |
Post #AaF3bCgBuuzq1XGNRg by [email protected] | |
0 likes, 0 repeats | |
anyway this also lets me do something I've always kinda wondered about but … | |
Post #AaF3bDSP1fYqR3osam by [email protected] | |
0 likes, 0 repeats | |
the rivers are identical, though.And here's why: The WESTUS.PIC file is use… | |
Post #AaF3bEG239GAuz2Vwu by [email protected] | |
0 likes, 0 repeats | |
So the game takes that, then overlays mountains, industries, and cities, using … | |
Post #AaF3bF413JF5Q0QQrI by [email protected] | |
0 likes, 0 repeats | |
that's why it has to save the whole map when you make a save game: because … | |
Post #AaF3bFpAE0xLmEU5Lc by [email protected] | |
0 likes, 0 repeats | |
arg. I can't easily hack the game's binary because it's compressed … | |
Post #AaF3bGb1M5EmAesIwS by [email protected] | |
0 likes, 0 repeats | |
UNP says the game has 87365 bytes of image and 109305 bytes of overlay.that'… | |
Post #AaF3bHMsU9WCZ5GWXI by [email protected] | |
0 likes, 0 repeats | |
okay "unp e -g" seems to have fixed it. the regular mode messed up th… | |
Post #AaF3bI8NdXW2wPUSZs by [email protected] | |
0 likes, 0 repeats | |
awesome. I have officially broken it. But I have broken it CAREFULLY. | |
Post #AaF3bItsmvVtJjiOcS by [email protected] | |
0 likes, 0 repeats | |
okay so I hacked it to go into an infinite loop after showing the first image o… | |
Post #AaF3bJg5tg4tjGGtlY by [email protected] | |
0 likes, 0 repeats | |
man I thought this game just had a bunch of random white-guy (well, redish-guys… | |
Post #AaF3bKRb344k6aUpo8 by [email protected] | |
0 likes, 0 repeats | |
Here's all the names from the executable | |
Post #AaF3bLEW7BCuYJNu3k by [email protected] | |
0 likes, 0 repeats | |
I don't think these guys actually show up in the game. Interesting. | |
Post #AaGZdBCFnCf5hACqMy by [email protected] | |
0 likes, 0 repeats | |
@foone ...leftovers from Civilization? I don't recognize those particular u… | |
Post #AaGZdBG9YhmTtG1xRo by [email protected] | |
0 likes, 0 repeats | |
@LionsPhil civilization was later! and I'm not sure these guys are in civi… | |
Post #AaGcZBD8687MRXOsLY by [email protected] | |
0 likes, 0 repeats | |
so according to the manual, the railroad operators come in three flavors: build… | |
Post #AaGeAlgLYryIE2YO3M by [email protected] | |
0 likes, 0 repeats | |
Interesting. There appears to be some code for verifying disk sectors: Given th… | |
Post #AaGeAlkxHjeqSKi4Ei by [email protected] | |
0 likes, 0 repeats | |
which is weird because the game has manual-based copy protection and supports b… | |
Post #AaGeAmW6SRN6oYlij2 by [email protected] | |
0 likes, 0 repeats | |
I'm gonna have to dig up my original disks and image them | |
Post #AaGeAnJ1WYVHGHemye by [email protected] | |
0 likes, 0 repeats | |
ahh, nope. not copy protection: I checked and the game calls this function to s… | |
Post #AaGj6SvvpGykgqbxBI by [email protected] | |
0 likes, 0 repeats | |
@foone The 1st and 3rd values are higher for builders, the 2nd and 4th ones for… | |
Post #AaGjppDtneByqse0ae by [email protected] | |
0 likes, 0 repeats | |
help my train has negative horsepower | |
Post #AaGjpsQ3ushilTMGSu by [email protected] | |
0 likes, 0 repeats | |
by manipulating the horsepower, you can get the grade/cars calculation to take … | |
Post #AaGjptCd0JYJC653AG by [email protected] | |
0 likes, 0 repeats | |
interestingly, these values don't seem to actually correspond to train perf… | |
Post #AaGjptzu36y3ev8Oy8 by [email protected] | |
0 likes, 0 repeats | |
there's 42 bytes of data for each train and I understand 26 of them. that&#… | |
Post #AaGpzHi5r2lFXAf464 by [email protected] | |
0 likes, 0 repeats | |
I figured out two more bytes: There's a "year this train is invented&q… | |
Post #AaGxbyxgC7w2MKLpiq by [email protected] | |
0 likes, 0 repeats | |
@foone Are these computer-controlled opponents? I'd assume the numbers are… | |
Post #AaGxbz1vwJL0ZWLELw by [email protected] | |
0 likes, 0 repeats | |
@wkrick that's what I assume too, I just don't know how to correlate th… | |
Post #AaGzjss6v6hlhGdrQu by [email protected] | |
0 likes, 0 repeats | |
oh wow. they set an interrupt to trigger every time the mouse moves? that's… | |
Post #AaH0Nq8OW6WKn4JLCy by [email protected] | |
0 likes, 0 repeats | |
apparently Ghidra doesn't understand DOS overlays, which means it keeps get… | |
Post #AaH0an1POv3qtwDbIu by [email protected] | |
0 likes, 0 repeats | |
every "INT 3F" is actually followed by a byte and a word, but ghidra … | |
Post #AaH0mKYR4FJu5QAZY8 by [email protected] | |
0 likes, 0 repeats | |
let's desync the variable-length instruction encoding! x86 is the best mach… | |
Post #AaH1cl41kbgRMXwh0K by [email protected] | |
0 likes, 0 repeats | |
"Interrupt 43: Note: This is not a callable vector!"SO WHY IS INT 0x4… | |
Post #AaH3mXWV9KbsAf3Xsm by [email protected] | |
0 likes, 0 repeats | |
I'm definitely a fan of the fact that ASCII text can be confused for x86 co… | |
Post #AaH44xG0D5y7CC7UiO by [email protected] | |
0 likes, 0 repeats | |
@foone ...isn't interrupt 33 one of the really old and basic ways to do mou… | |
Post #AaH44xKFxHN5PO6tLU by [email protected] | |
0 likes, 0 repeats | |
@LionsPhil Yep! This is a game from 1990, so that makes sense | |
Post #AaH4k1VdJ1GCFx0vYG by [email protected] | |
0 likes, 0 repeats | |
@foone Well, but so can empty memory... | |
Post #AaH4k1Zt3CfAT90KBM by [email protected] | |
0 likes, 0 repeats | |
@wollman it's not empty, it's ADD byte ptr [BX + SI],AL! | |
Post #AaHC6xZ2q3BCMQUg3k by [email protected] | |
0 likes, 0 repeats | |
@foone I thought all DOS mouse drivers were interrupt-based TSRs? | |
Post #AaHC6xdIaEaAZcU4gq by [email protected] | |
0 likes, 0 repeats | |
@stilescrisis they are! but one way you use them is telling them to call you | |
Post #AaHDgJpk8L1RW8jF5s by [email protected] | |
0 likes, 0 repeats | |
Annoyingly it turns out I have two different versions of Railroad Tycoon here: … | |
Post #AaKo0HFXd5zj7SUXia by [email protected] | |
0 likes, 0 repeats | |
why does this code have "SUB AX,AX"? that just changes AX to 0. But..… | |
Post #AaKpur0rwugiCyAdYu by [email protected] | |
0 likes, 0 repeats | |
can't believe GHIDRA doesn't have MSC 5.1 identification in its librari… | |
Post #AaKqx8JQhYLsOWVEFU by [email protected] | |
1 likes, 1 repeats | |
god I hate hacking 16bit games.GET A LINEAR ADDRESS SPACE YOU FUCKERS | |
Post #AaKweckptUNV21sZfc by [email protected] | |
0 likes, 0 repeats | |
@[email protected] since both XOR and SUB are really basic instructions, shou… | |
Post #AaKwecp5dfmTFDryIi by [email protected] | |
0 likes, 0 repeats | |
@sekoiatree MOV AX, 0 takes more bytes to encode than XOR AX, AX, so it's l… | |
Post #AaL3WWUXzhKcyFLQLw by [email protected] | |
0 likes, 0 repeats | |
oh god they interleaved fwrite and fread because they both end up calling the s… | |
Post #AaLB9G8JRr2FCyMWwa by [email protected] | |
0 likes, 0 repeats | |
@foone I made a bunch of FunctionID databases for old DOS compilers, including … | |
Post #AaLD46gRM0GqMSzp4a by [email protected] | |
0 likes, 0 repeats | |
@moralrecordings ooh, handy! Thanks |