fix sub_version codes

This commit is contained in:
Martin Michelsen
2022-07-21 15:24:38 -07:00
parent 309a347312
commit 8f64c2f3ba
2 changed files with 15 additions and 17 deletions
+8 -9
View File
@@ -1387,11 +1387,11 @@ struct S_ConfirmUpdateQuestStatistics_AB {
// relocated, but is not actually executed, so the return_value field in the
// resulting B3 command is always 0. The checksum functionality does work on PSO
// PC, just like the other versions.
// This command doesn't work on the later JP PSO Plus (v1.5?), US PSO Plus
// (v1.2), or US Episode 3. Sega presumably removed it after taking heat from
// Nintendo about enabling homebrew on the GameCube. On the earlier JP PSO Plus
// (v1.4) and JP Episode 3, this command is implemented as described here, with
// some additional compression and encryption steps added, similarly to how
// This command doesn't work on the later JP PSO Plus (v1.05), US PSO Plus
// (v1.02), or US/EU Episode 3. Sega presumably removed it after taking heat
// from Nintendo about enabling homebrew on the GameCube. On the earlier JP PSO
// Plus (v1.04) and JP Episode 3, this command is implemented as described here,
// with some additional compression and encryption steps added, similarly to how
// download quests are encoded. See send_function_call in SendCommands.cc for
// more details on how this works.
@@ -1433,8 +1433,7 @@ struct S_ExecuteCode_Footer_GC_B2 : S_ExecuteCode_Footer_B2<be_uint32_t> { };
struct S_ExecuteCode_Footer_PC_BB_B2 : S_ExecuteCode_Footer_B2<le_uint32_t> { };
// B3 (C->S): Execute code and/or checksum memory result
// Not used on PSO Plus (GC v1.2) and Episode 3, since those versions do not
// support the B2 command.
// Not used on versions that don't support the B2 command (see above).
struct C_ExecuteCodeResult_B3 {
// On PSO PC, return_value is always 0.
@@ -1717,8 +1716,8 @@ struct S_Unknown_GC_Ep3_CC {
// D6 (C->S): Large message box closed (GC)
// No arguments
// DC, PC, and BB do not send this command at all. GC v1.0 and v1.1 will send
// this command when any large message box (1A/D5) is closed; GC Plus and
// DC, PC, and BB do not send this command at all. GC US v1.00 and v1.01 will
// send this command when any large message box (1A/D5) is closed; GC Plus and
// Episode 3 will send D6 only for large message boxes that occur before the
// client has joined a lobby. (After joining a lobby, large message boxes will
// still be displayed if sent by the server, but the client won't send a D6 when
+7 -8
View File
@@ -28,17 +28,16 @@ uint16_t flags_for_version(GameVersion version, uint8_t sub_version) {
break;
case 0x29: // PSO PC
return Client::Flag::DEFAULT_V2_PC;
case 0x30: // ???
case 0x30: // PSO Ep1&2 JP v1.02
case 0x31: // PSO Ep1&2 US v1.00, US v1.01, EU v1.00, JP v1.00
case 0x33: // PSO Ep1&2 EU 50Hz
case 0x34: // PSO Ep1&2 JP v1.01
case 0x32: // PSO Ep1&2 EU 50Hz
case 0x33: // PSO Ep1&2 EU 60Hz
case 0x34: // PSO Ep1&2 JP v1.03
return Client::Flag::DEFAULT_V3_GC;
case 0x35: // PSO Ep1&2 JP Plus (1.04)
case 0x35: // PSO Ep1&2 JP v1.04 (Plus)
return Client::Flag::DEFAULT_V3_GC_PLUS;
// TODO: Figure out which of the below is which and update the comments
case 0x32: // PSO Ep1&2 US v1.02, JP v1.02
case 0x36: // PSO Ep1&2 US v1.02, JP v1.02
case 0x39: // PSO Ep1&2 US v1.02, JP v1.02
case 0x36: // PSO Ep1&2 US v1.02 (Plus)
case 0x39: // PSO Ep1&2 JP v1.05 (Plus)
return Client::Flag::DEFAULT_V3_GC_PLUS_NO_SFC;
case 0x42: // PSO Ep3 JP
return Client::Flag::DEFAULT_V3_GC_EP3;