From 5ed56db48a5a450eab6941e156cfb3fb141e99a2 Mon Sep 17 00:00:00 2001 From: zig-for Date: Mon, 3 Apr 2023 17:23:39 -0700 Subject: [PATCH] LADX: Fix crash in item pick up with > 100 players (#1658) --- worlds/ladx/LADXR/generator.py | 6 +++--- worlds/ladx/LADXR/patches/bank3e.asm/itemnames.asm | 8 +++++++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/worlds/ladx/LADXR/generator.py b/worlds/ladx/LADXR/generator.py index 28966ab7..cb9de281 100644 --- a/worlds/ladx/LADXR/generator.py +++ b/worlds/ladx/LADXR/generator.py @@ -259,9 +259,9 @@ def generateRom(args, settings, ap_settings, auth, seed_name, logic, rnd=None, m mw = None if spot.item_owner != spot.location_owner: mw = spot.item_owner - if mw > 255: - # Don't torture the game with higher slot numbers - mw = 255 + if mw > 100: + # There are only 101 player name slots (99 + "The Server" + "another world"), so don't use more than that + mw = 100 spot.patch(rom, spot.item, multiworld=mw) patches.enemies.changeBosses(rom, world_setup.boss_mapping) patches.enemies.changeMiniBosses(rom, world_setup.miniboss_mapping) diff --git a/worlds/ladx/LADXR/patches/bank3e.asm/itemnames.asm b/worlds/ladx/LADXR/patches/bank3e.asm/itemnames.asm index 8495d089..0c1bc9d6 100644 --- a/worlds/ladx/LADXR/patches/bank3e.asm/itemnames.asm +++ b/worlds/ladx/LADXR/patches/bank3e.asm/itemnames.asm @@ -67,7 +67,12 @@ MessageAddFromPlayerOld: ; hahaha none of this follows calling conventions MessageAddPlayerName: - ; call MessagePad + ; call MessagePad + + cp 101 + jr C, .continue + ld a, 100 +.continue: ld h, 0 ; bc = a, hl = a ld l, a ld b, 0 @@ -79,6 +84,7 @@ MessageAddPlayerName: add hl, bc ; 17 ld bc, MultiNamePointers add hl, bc ; hl = MultiNamePointers + wLinkGiveItemFrom * 17 + call MessageCopyString ret