From 22e9314e185757b25b36fc1ec77248d7df141721 Mon Sep 17 00:00:00 2001 From: Martin Michelsen Date: Mon, 7 Apr 2025 23:49:08 -0700 Subject: [PATCH] fix some notes --- notes/dat-constructor-tables.txt | 4 ++++ src/CommandFormats.hh | 4 ++-- src/Main.cc | 7 ++++--- src/Map.cc | 9 ++++----- 4 files changed, 14 insertions(+), 10 deletions(-) diff --git a/notes/dat-constructor-tables.txt b/notes/dat-constructor-tables.txt index 05862b58..f5205ded 100644 --- a/notes/dat-constructor-tables.txt +++ b/notes/dat-constructor-tables.txt @@ -1,5 +1,7 @@ OBJECTS +./newserv address-translator files/pso-executables 59NL "parse-dat-object-constructor-tables files/dat-object-specs.json" + TYPE => 1OJ1--------------------- 1OJ2--------------------- 1OEF--------------------- 2OEF--------------------- 3OE1--------------------- 3SE0--------------------- 4OEU--------------------- 59NL--------------------- NAME 0000 => 8C070448:000000000000FFFF 8C072810:000000000000FFFF 8C07ADD8:000000000000FFFF 8C08A784:000000000003FFFF 8019554C:0000000FFFFFFFFF 800BDD8C:0000000000008001 001E1360:0000000FFFFFFFFF 00661728:00007FFFFFFFFFFF TObjPlayerSet 0001 => 8C068700:000000000000FFFF 8C06AA44:000000000000FFFF 8C0722A4:000000000000FFFF 8C080804:000000000003FFFF 801954E4:0000000FFFFFFFFF 800BDD24:0000000000008003 001E0F90:0000000FFFFFFFFF 00660938:00006FFFFFFFFFFF TObjParticle @@ -322,6 +324,8 @@ TYPE => 1OJ1--------------------- 1OJ2--------------------- 1OEF---------------- ENEMIES +./newserv address-translator files/pso-executables 59NL "parse-dat-enemy-constructor-tables files/dat-enemy-specs.json" + TYPE => 1OJ1--------------------- 1OJ2--------------------- 1OEF--------------------- 2OEF--------------------- 3OE1--------------------- 3SE0--------------------- 4OEU--------------------- 59NL--------------------- NAME 0001 => 8C0FAB14:0000000000000001 8C0FDFCC:0000000000000001 8C10C8A8:0000000000000001 8C124380:0000000000000001 80149C20:0000000000000001 800A6AE0:0000000000000001 0019CA60:0000000000000001 00609164:0000200000000001 TObjNpcFemaleBase 0002 => 8C0FAD98:0000000000000001 8C0FE250:0000000000000001 8C10CB2C:0000000000000001 8C124534:0000000000000001 80149DF8:0000000000000001 800A6CBC:0000000000000001 0019CC10:0000000000000001 00609448:0000200000000001 TObjNpcFemaleChild diff --git a/src/CommandFormats.hh b/src/CommandFormats.hh index bda394d0..aeca365b 100644 --- a/src/CommandFormats.hh +++ b/src/CommandFormats.hh @@ -4009,7 +4009,7 @@ struct G_Unknown_6x09 { } __packed_ws__(G_Unknown_6x09, 4); // 6x0A: Update enemy state -// In Ultimate mode, the low 7 bits of game_flags are ignored, and 6x9C is used +// In Ultimate mode, the low 6 bits of game_flags are ignored, and 6x9C is used // to update those instead. template @@ -5490,7 +5490,7 @@ struct G_LevelUpAllTechniques_6x9B { } __packed_ws__(G_LevelUpAllTechniques_6x9B, 8); // 6x9C: Set enemy low game flags (not valid on Episode 3) -// This command only has an effect in Ultimate mode. It sets the low 7 bits of +// This command only has an effect in Ultimate mode. It sets the low 6 bits of // game_flags (those that match 0x0000003F). struct G_SetEnemyLowGameFlagsUltimate_6x9C { diff --git a/src/Main.cc b/src/Main.cc index aeaadf43..28f8d2e4 100644 --- a/src/Main.cc +++ b/src/Main.cc @@ -1030,9 +1030,10 @@ Action a_decrypt_dcv2_executable( table (KATSUO.SEA), and VALUES should be the path to the value fixup table\n\ (IWASHI.SEA). The output is written to EXEC.dec.\n\ If --simple is given, uses the simpler encryption method used in some\n\ - community modifications of the game. In this case, --seed is not required;\n\ - if not given, finds the seed automatically, and prints it to stderr so you\n\ - will be able to use it when re-encrypting.\n", + community modifications of the game (Enhancement Pack, for example). In\n\ + this case, --seed is not required; if not given, finds the seed\n\ + automatically, and prints it to stderr so you will be able to use it when\n\ + re-encrypting.\n", +[](phosg::Arguments& args) { string executable_filename = args.get("executable", true); string executable_data = phosg::load_file(executable_filename); diff --git a/src/Map.cc b/src/Map.cc index 602a610c..878fddfc 100644 --- a/src/Map.cc +++ b/src/Map.cc @@ -2606,7 +2606,6 @@ static const vector dat_enemy_definitions({ // meanings) // - TObjEneMorfos (oaram1, param2; these params also have non-debug // meanings) - // TODO: Add more enemies to this list as they are found // NPCs. Params: // param1 = action parameter (depends on param6; see below) @@ -2754,7 +2753,7 @@ static const vector dat_enemy_definitions({ {0x0033, F_EP3, 0x0000000000008001, "TObjNpcEnemy"}, // Hildebear. Params: - // param1 = initial location (clamped to [0, 1]; 0 = ground, 1 = sky) + // param1 = initial location (zero or negative = ground, positive = jump) // param2 = chance to use tech (value is param3 + 0.6, clamped to [0, // 1]; TODO: it's not clear when exactly the decision points are) // param3 = chance to jump when more than 150 units away (value is @@ -2763,8 +2762,8 @@ static const vector dat_enemy_definitions({ {0x0040, F_V0_V4, 0x00000000001B0004, "TObjEneMoja"}, // Rappy. Params: - // param1 = TODO (clamped to [0, 1]; overwritten with 1 if wave_number - // is > 0; could be spawn location like for Hildebear?) + // param1 = initial location (zero or negative = ground, positive = sky; + // ignored if wave_number is > 0 in which case it's always sky) // param6 = rare flag (on v1-v3, rappy is rare if param6 != 0; on v4, // rappy is rare if (param6 & 1) != 0) // param7 = TODO @@ -2815,7 +2814,7 @@ static const vector dat_enemy_definitions({ // Grass Assassin. Params: // param1 = TODO - // param2 = TODO (some state is set based on whather this is <= 0 or + // param2 = TODO (some state is set based on whether this is <= 0 or // not, but the value is also used directly in some places) // param3 = TODO (see TObjGrass_update_case8) // param4 = TODO (see TObjGrass_update_case8)