tandy put their sound chip on the 1A interrupt?
-
this game runs mostly in a 16 color mode, with some high-end modes being basically 16-colors within 64 or 256 colors, right?
SO WHY DOES IT USE 16-BIT INTEGERS FOR COLOR INDICES?
I'm not sure if anyone has ever designed a paletted graphics system that uses more than 256 colors. Probably at some point someone thought it was a good idea.
-
I'm not sure if anyone has ever designed a paletted graphics system that uses more than 256 colors. Probably at some point someone thought it was a good idea.
note to self: patch out the Romani slur in one of the hints for Budapest
EDIT: both of them
-
note to self: patch out the Romani slur in one of the hints for Budapest
EDIT: both of them
This game was released in 1990 but it has a hint that refers to the currency of Brazil as the "cruzado". But in 1989, it had been replaced by the cruzado novo. Clearly someone was using an out of date encyclopedia!
-
This game was released in 1990 but it has a hint that refers to the currency of Brazil as the "cruzado". But in 1989, it had been replaced by the cruzado novo. Clearly someone was using an out of date encyclopedia!
(Brazil has had 3/4 currency changes since then, depending on how you count it)
-
(Brazil has had 3/4 currency changes since then, depending on how you count it)
I'm thinking of dumping a list of all the hints in this game and calculating how many of them are wrong by now.
-
I'm thinking of dumping a list of all the hints in this game and calculating how many of them are wrong by now.
like, most of the flag clues. do you know how many countries have changed their flags since 1989? LOTS OF THEM
-
like, most of the flag clues. do you know how many countries have changed their flags since 1989? LOTS OF THEM
The description of Hungary says it's bordered by Czechoslovakia, Austria, Yugoslavia, Romania, and the Soviet Union.
Two of those are still right!
-
The description of Hungary says it's bordered by Czechoslovakia, Austria, Yugoslavia, Romania, and the Soviet Union.
Two of those are still right!
so I fly into Reykjavík, and immediately sleep for 8 hours. In the morning, I can go to either the airport or the hotel, but it'll take 3 hours to get to either.
Question: where am I right now, if I'm not at the hotel or the airport?
-
so I fly into Reykjavík, and immediately sleep for 8 hours. In the morning, I can go to either the airport or the hotel, but it'll take 3 hours to get to either.
Question: where am I right now, if I'm not at the hotel or the airport?
They initialized the SoundBlaster DSP backwards.
You're supposed to send a 0 to the reset port, wait 3 microseconds, send a 1, then wait up to 100 microseconds for an 0xAA to show up on the data port.They instead send a 1, then a 0, then immediately start trying to read the data port.
-
They initialized the SoundBlaster DSP backwards.
You're supposed to send a 0 to the reset port, wait 3 microseconds, send a 1, then wait up to 100 microseconds for an 0xAA to show up on the data port.They instead send a 1, then a 0, then immediately start trying to read the data port.
they read from the ports instead of measuring time, because that'll take a certain amount of time on x86. I'm too tired to confirm if their timing logic is sound. It's possible they're just assuming the PC is slow enough that it'll wait long enough
-
they read from the ports instead of measuring time, because that'll take a certain amount of time on x86. I'm too tired to confirm if their timing logic is sound. It's possible they're just assuming the PC is slow enough that it'll wait long enough
I bet broderbund bought this sound code. It feels completely different: This was either compiled on a different compiler or was written in assembly.
-
I bet broderbund bought this sound code. It feels completely different: This was either compiled on a different compiler or was written in assembly.
yeah a compiler doesn't just start using CF to return bools instead of AX. This is assembly.
-
yeah a compiler doesn't just start using CF to return bools instead of AX. This is assembly.
they're passing single bytes to functions! C widens integer parameters to a word, so on a 16bit system, they're passed in 16-bit registers.
-
they're passing single bytes to functions! C widens integer parameters to a word, so on a 16bit system, they're passed in 16-bit registers.
they're sending a... internal soundblaster test command?
(DSP 0xF0)I dunno why this code is like this.
-
they're sending a... internal soundblaster test command?
(DSP 0xF0)I dunno why this code is like this.
I suspect there may be an issue here: I identified a variable as containing the Soundblaster IO port, right? and I'm assuming everything that uses it is Soundblaster code.
But it may just be "soundcard IO port" and there's other sound device code mixed in here. So that's why some of it doesn't make sense as soundblaster, it's actually tandy 3voice or something
-
I suspect there may be an issue here: I identified a variable as containing the Soundblaster IO port, right? and I'm assuming everything that uses it is Soundblaster code.
But it may just be "soundcard IO port" and there's other sound device code mixed in here. So that's why some of it doesn't make sense as soundblaster, it's actually tandy 3voice or something
I just found a function (inside another function!) that's a fixed delay. How long is it?
it's a loop that runs 256 times! -
I just found a function (inside another function!) that's a fixed delay. How long is it?
it's a loop that runs 256 times!that's so cute that this code considers "256 instructions" to be a meaningful length of time.
-
that's so cute that this code considers "256 instructions" to be a meaningful length of time.
there's code in here specifically to detect if it's running on an IBM PS/1 by looking at the CMOS area?
WHAT THE
-
there's code in here specifically to detect if it's running on an IBM PS/1 by looking at the CMOS area?
WHAT THE
the menu system limits menus to having a maximum of 32 items.
which is weird because ONLY 17 WILL FIT ON SCREEN
-
the menu system limits menus to having a maximum of 32 items.
which is weird because ONLY 17 WILL FIT ON SCREEN
I did some experimenting with MSVC 5.1, and it's weird. I get the same strings in the exe as carmen.exe has, but the code itself looks completely different.
either I set up my compiler wrong, or this game is full of assembly even for very simple functions