From e7ea471ec5c372c18f0742454adb16f422691167 Mon Sep 17 00:00:00 2001 From: James Osborne Date: Tue, 19 May 2026 15:50:37 -0400 Subject: [PATCH 1/2] PSO Peeps: align proxy boost gates with upstream cleanup --- src/ReceiveCommands.cc | 9 +++----- src/ReceiveSubcommands.cc | 23 ++++--------------- .../PsoPeepsV2EXP5xDC.s | 1 + .../PsoPeepsV2EXP_enabled.10x_weekend.s | 1 + .../PsoPeepsV2EXP_enabled.5x_week.s | 1 + system/client-functions/PsoPeepsEP1EXP10x.s | 1 + system/client-functions/PsoPeepsEP1EXP5x.s | 1 + system/client-functions/PsoPeepsEP2EXP10x.s | 1 + system/client-functions/PsoPeepsEP2EXP10xJP.s | 1 + system/client-functions/PsoPeepsEP2EXP10xUS.s | 1 + system/client-functions/PsoPeepsEP2EXP5x.s | 1 + system/client-functions/PsoPeepsEP2EXP5xJP.s | 1 + system/client-functions/PsoPeepsEP2EXP5xUS.s | 1 + .../client-functions/PsoPeepsV2EXP_enabled.s | 1 + 14 files changed, 19 insertions(+), 25 deletions(-) diff --git a/src/ReceiveCommands.cc b/src/ReceiveCommands.cc index 7f554e6e..a217fe06 100644 --- a/src/ReceiveCommands.cc +++ b/src/ReceiveCommands.cc @@ -3120,21 +3120,18 @@ static asio::awaitable on_10_proxy_destinations(shared_ptr c, uint c->channel->disconnect(); } else { // PSO Peeps: boosted clients may not enter Vanilla/Hardcore. - // PC v2 receives boosted BattleParams via the patch server. DC/GC can be - // boosted either by old boosted-disc listener ports or by the PSO Peeps XP - // client-function patch, which sets HAS_PSO_PEEPS_XP_PATCH. + // DC/GC can be boosted either by old boosted-disc listener ports or by + // PSO Peeps XP client-function patches, which set HAS_PSO_PEEPS_XP_PATCH. const bool is_vanilla_or_hardcore_dest = (dest->second == 19203 || dest->second == 19230 || dest->second == 19530); const bool is_boosted_disc = (c->listener_port == 9105 || c->listener_port == 9110 || - c->listener_port == 9201 || c->listener_port == 9202 || c->listener_port == 19105 || c->listener_port == 19110); - const bool is_pc_v2_boosted = (c->version() == Version::PC_V2); const bool has_psopeeps_xp_patch = c->check_flag(Client::Flag::HAS_PSO_PEEPS_XP_PATCH); if (is_vanilla_or_hardcore_dest && - (is_boosted_disc || is_pc_v2_boosted || has_psopeeps_xp_patch)) { + (is_boosted_disc || has_psopeeps_xp_patch)) { send_message_box(c, "$C6Vanilla and Hardcore are not available\n" "while boosted XP is active.\n\n" diff --git a/src/ReceiveSubcommands.cc b/src/ReceiveSubcommands.cc index 1d1e4225..300838fe 100644 --- a/src/ReceiveSubcommands.cc +++ b/src/ReceiveSubcommands.cc @@ -2487,25 +2487,10 @@ static asio::awaitable on_pick_up_item_generic( // TODO: Figure out what the actual max range is; 30 is an overestimate double dist2 = fi->pos.dist2(c->pos); if (dist2 > 900.0) { - const bool allow_dcv2_falz_pickup_distance_recovery = - is_request && - (c->version() == Version::DC_V2) && - (l->episode == Episode::EP1) && - (floor == 0x0E) && - (fi->from_obj == nullptr) && - (fi->from_ene == nullptr) && - fi->visible_to_client(c->lobby_client_id); - - if (allow_dcv2_falz_pickup_distance_recovery) { - l->log.warning_f( - "DC V2 Falz floor item pickup distance recovery: Player {} picking up {:08X}; dist2={} item_floor={} player_floor={}", - client_id, item_id, dist2, static_cast(floor), static_cast(c->floor)); - } else { - l->log.warning_f("Player {} requests to pick up {:08X}, but it is too far away (dist2={})", - client_id, item_id, dist2); - l->add_item(floor, fi); - co_return; - } + l->log.warning_f("Player {} requests to pick up {:08X}, but it is too far away (dist2={})", + client_id, item_id, dist2); + l->add_item(floor, fi); + co_return; } try { diff --git a/system/client-functions.disabled/PsoPeepsV2EXP5xDC.s b/system/client-functions.disabled/PsoPeepsV2EXP5xDC.s index 58fe3a40..4b82e546 100644 --- a/system/client-functions.disabled/PsoPeepsV2EXP5xDC.s +++ b/system/client-functions.disabled/PsoPeepsV2EXP5xDC.s @@ -1,6 +1,7 @@ .meta visibility="menu" .meta key="PsoPeepsV2EXP5xDC" .meta name="V2 5x" +.meta client_flag="0x0000200000000000" .meta description="Dreamcast V2 EXP" .versions 2OEF diff --git a/system/client-functions.disabled/PsoPeepsV2EXP_enabled.10x_weekend.s b/system/client-functions.disabled/PsoPeepsV2EXP_enabled.10x_weekend.s index 7d863b45..db61e071 100644 --- a/system/client-functions.disabled/PsoPeepsV2EXP_enabled.10x_weekend.s +++ b/system/client-functions.disabled/PsoPeepsV2EXP_enabled.10x_weekend.s @@ -1,6 +1,7 @@ .meta visibility="menu" .meta key="PsoPeepsV2EXP_enabled" .meta name="10x XP" +.meta client_flag="0x0000200000000000" .meta description="Dreamcast V2 XP boost — applies across all difficulties (server dispatches per-difficulty tables on each area transition)." .versions 2OEF diff --git a/system/client-functions.disabled/PsoPeepsV2EXP_enabled.5x_week.s b/system/client-functions.disabled/PsoPeepsV2EXP_enabled.5x_week.s index 507de27b..501d2c85 100644 --- a/system/client-functions.disabled/PsoPeepsV2EXP_enabled.5x_week.s +++ b/system/client-functions.disabled/PsoPeepsV2EXP_enabled.5x_week.s @@ -1,6 +1,7 @@ .meta visibility="menu" .meta key="PsoPeepsV2EXP_enabled" .meta name="5x XP" +.meta client_flag="0x0000200000000000" .meta description="Dreamcast V2 XP boost — applies across all difficulties (server dispatches per-difficulty tables on each area transition)." .versions 2OEF diff --git a/system/client-functions/PsoPeepsEP1EXP10x.s b/system/client-functions/PsoPeepsEP1EXP10x.s index bd83b1be..eb1990ea 100644 --- a/system/client-functions/PsoPeepsEP1EXP10x.s +++ b/system/client-functions/PsoPeepsEP1EXP10x.s @@ -1,6 +1,7 @@ .meta visibility="menu" .meta key="PsoPeepsEP1EXP10x" .meta name="EP1 10x" +.meta client_flag="0x0000200000000000" .meta description="Sets EP1 enemy EXP\nto 10x for GC crossplay" .versions 3OE2 3OJ5 diff --git a/system/client-functions/PsoPeepsEP1EXP5x.s b/system/client-functions/PsoPeepsEP1EXP5x.s index a7838c80..db798ee5 100644 --- a/system/client-functions/PsoPeepsEP1EXP5x.s +++ b/system/client-functions/PsoPeepsEP1EXP5x.s @@ -1,6 +1,7 @@ .meta visibility="menu" .meta key="PsoPeepsEP1EXP5x" .meta name="EP1 5x" +.meta client_flag="0x0000200000000000" .meta description="Sets EP1 enemy EXP\nto 5x for GC crossplay" .versions 3OE2 3OJ5 diff --git a/system/client-functions/PsoPeepsEP2EXP10x.s b/system/client-functions/PsoPeepsEP2EXP10x.s index b1f8fb65..b5e118af 100644 --- a/system/client-functions/PsoPeepsEP2EXP10x.s +++ b/system/client-functions/PsoPeepsEP2EXP10x.s @@ -1,5 +1,6 @@ .meta key="PsoPeepsEP2EXP10x" .meta name="EP2 10x" +.meta client_flag="0x0000200000000000" .meta description="Sets EP2 enemy EXP\nto 10x for GC crossplay" .versions 3OE2 3OJ5 diff --git a/system/client-functions/PsoPeepsEP2EXP10xJP.s b/system/client-functions/PsoPeepsEP2EXP10xJP.s index 6d10ddf2..8104cfa2 100644 --- a/system/client-functions/PsoPeepsEP2EXP10xJP.s +++ b/system/client-functions/PsoPeepsEP2EXP10xJP.s @@ -1,6 +1,7 @@ .meta visibility="menu" .meta key="PsoPeepsEP2EXP10xJP" .meta name="EP2 10x" +.meta client_flag="0x0000200000000000" .meta description="Sets EP2 enemy EXP\nto 10x for GC crossplay" .versions 3OJ5 diff --git a/system/client-functions/PsoPeepsEP2EXP10xUS.s b/system/client-functions/PsoPeepsEP2EXP10xUS.s index c4676097..daa53e12 100644 --- a/system/client-functions/PsoPeepsEP2EXP10xUS.s +++ b/system/client-functions/PsoPeepsEP2EXP10xUS.s @@ -1,6 +1,7 @@ .meta visibility="menu" .meta key="PsoPeepsEP2EXP10xUS" .meta name="EP2 10x" +.meta client_flag="0x0000200000000000" .meta description="Sets EP2 enemy EXP\nto 10x for GC crossplay" .versions 3OE2 diff --git a/system/client-functions/PsoPeepsEP2EXP5x.s b/system/client-functions/PsoPeepsEP2EXP5x.s index 011dc187..e733adb8 100644 --- a/system/client-functions/PsoPeepsEP2EXP5x.s +++ b/system/client-functions/PsoPeepsEP2EXP5x.s @@ -1,5 +1,6 @@ .meta key="PsoPeepsEP2EXP5x" .meta name="EP2 5x" +.meta client_flag="0x0000200000000000" .meta description="Sets EP2 enemy EXP\nto 5x for GC crossplay" .versions 3OE2 3OJ5 diff --git a/system/client-functions/PsoPeepsEP2EXP5xJP.s b/system/client-functions/PsoPeepsEP2EXP5xJP.s index fed96ac6..11013f78 100644 --- a/system/client-functions/PsoPeepsEP2EXP5xJP.s +++ b/system/client-functions/PsoPeepsEP2EXP5xJP.s @@ -1,6 +1,7 @@ .meta visibility="menu" .meta key="PsoPeepsEP2EXP5xJP" .meta name="EP2 5x" +.meta client_flag="0x0000200000000000" .meta description="Sets EP2 enemy EXP\nto 5x for GC crossplay" .versions 3OJ5 diff --git a/system/client-functions/PsoPeepsEP2EXP5xUS.s b/system/client-functions/PsoPeepsEP2EXP5xUS.s index 23304369..6fa1a39c 100644 --- a/system/client-functions/PsoPeepsEP2EXP5xUS.s +++ b/system/client-functions/PsoPeepsEP2EXP5xUS.s @@ -1,6 +1,7 @@ .meta visibility="menu" .meta key="PsoPeepsEP2EXP5xUS" .meta name="EP2 5x" +.meta client_flag="0x0000200000000000" .meta description="Sets EP2 enemy EXP\nto 5x for GC crossplay" .versions 3OE2 diff --git a/system/client-functions/PsoPeepsV2EXP_enabled.s b/system/client-functions/PsoPeepsV2EXP_enabled.s index 7d863b45..db61e071 100644 --- a/system/client-functions/PsoPeepsV2EXP_enabled.s +++ b/system/client-functions/PsoPeepsV2EXP_enabled.s @@ -1,6 +1,7 @@ .meta visibility="menu" .meta key="PsoPeepsV2EXP_enabled" .meta name="10x XP" +.meta client_flag="0x0000200000000000" .meta description="Dreamcast V2 XP boost — applies across all difficulties (server dispatches per-difficulty tables on each area transition)." .versions 2OEF From 4cf5974c7d67076e8ce126162002835a9a3f5b64 Mon Sep 17 00:00:00 2001 From: James Osborne Date: Tue, 19 May 2026 16:11:05 -0400 Subject: [PATCH 2/2] Fix BB live ship menu reconnect port --- src/ReceiveCommands.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/ReceiveCommands.cc b/src/ReceiveCommands.cc index a217fe06..5336b43a 100644 --- a/src/ReceiveCommands.cc +++ b/src/ReceiveCommands.cc @@ -2817,7 +2817,8 @@ static asio::awaitable on_10_main_menu(shared_ptr c, uint32_t item send_message_box(c, "$C6This ship option is only for Blue Burst."); break; } - if ((c->listener_port == 19145) || (c->listener_port == 19146)) { + if ((c->listener_port == 12000) || (c->listener_port == 12001) || + (c->listener_port == 19145) || (c->listener_port == 19146)) { c->selected_blueballz_tier = -1; co_await send_auto_patches_if_needed(c); co_await enable_save_if_needed(c); @@ -2827,7 +2828,7 @@ static asio::awaitable on_10_main_menu(shared_ptr c, uint32_t item } break; } - send_reconnect(c, s->connect_address_for_client(c), 19145); + send_reconnect(c, s->connect_address_for_client(c), 12000); break; }