AGI: Move SQ2 Apple IIgs unknown opcode handling

This commit is contained in:
sluicebox 2024-01-30 13:22:37 -08:00
parent a8145c5930
commit 89723ae889
2 changed files with 10 additions and 10 deletions

View File

@ -1017,17 +1017,7 @@ void cmdShowMouse(AgiGame *state, AgiEngine *vm, uint8 *parameter) {
}
}
// Seems to have been added for AGI3, at least according to PC AGI
// Space Quest 2 on Apple IIgs (using AGI ) calls it during the spaceship cutscene in the intro
// but show.mouse is never called afterwards. Game running under emulator doesn't seem to hide the mouse cursor.
// TODO: figure out, what exactly happens. Probably some hacked-in command and not related to mouse cursor for that game?
void cmdHideMouse(AgiGame *state, AgiEngine *vm, uint8 *parameter) {
if (vm->getVersion() < 0x3000) {
// was not available before 3.086
warning("hide.mouse, although not available for current AGI version");
return;
}
if ((vm->getGameID() == GID_MH1) && (vm->getPlatform() == Common::kPlatformApple2GS)) {
// Called right after beating arcade sequence on day 4 in the hospital Parameter is "1".
// Right before cutscene. show.mouse isn't called. Probably different function.

View File

@ -417,6 +417,16 @@ void AgiEngine::setupOpCodes(uint16 version) {
_opCodes[0x97].parameters = "vvv";
_opCodes[0x98].parameters = "vvv";
}
// TODO: Opcode B0 is used by SQ2 Apple IIgs, but its purpose is
// currently unknown. It takes one parameter, and that parameter
// appears to be a variable number. It is not hide.mouse from AGI3.
// No other AGI2 games have been discovered that call this opcode.
// Logic 1: during the spaceship cutscene in the intro, called with 53
// Logic 23: called twice with 39.
_opCodes[0xb0].name = "unknown";
_opCodes[0xb0].parameters = "v";
_opCodes[0xb0].functionPtr = &cmdUnknown;
}
if (version >= 0x3000) {