Skip to content

Open the menus a Generation 1 row draws for itself - #597

Merged
Decryptu merged 1 commit into
mainfrom
gen1-script-menus
Sep 8, 2026
Merged

Open the menus a Generation 1 row draws for itself#597
Decryptu merged 1 commit into
mainfrom
gen1-script-menus

Conversation

@Decryptu

@Decryptu Decryptu commented Sep 8, 2026

Copy link
Copy Markdown
Owner

TextBoxBorder, PlaceString and HandleMenuInput are one seam. The menu node owns every step behind it the way a YesNoChoice does, so the tail is resolved once per row the box offers and once for the B press, and the answer picks the walk that runs. Its rows are the fixed strings PlaceString placed, split on <NEXT>, or wFilteredBagItems, a db list GetQuantityOfItemInBag filters to what the bag holds.

Added

  • Celadon Mart Roof's little girl lists the drinks the bag holds and pays a TM for one; the Bike Shop clerk's own two rows with ¥1000000 beside them; the Cinnabar lab's fossil menu, whose choice is spent and whose wFossilMon the next visit hands back as a Pokemon.
  • CeruleanBadgeHouseMiddleAgedManText's SPECIALLISTMENU: eight badges, a line each, the list reopening behind every one, and the jr c B answers as the way out.
  • wFossilItem and wFossilMon ride the world snapshot, and GetMonName with CopyToStringBuffer behind it fills a box's two text_ram markers by address.
  • Oak's parcel loop over the bag, predef DisplayDexRating's two pages, and Route 11 Gate 2F's aide.
  • AnimateHealingMachine sounds one SFX_HEALING_MACHINE per ball at .partyLoop's own ld c, 30, with MUSIC_PKMN_HEALED where FlashSprite8Times opens.

Fixed

  • dec a raised no Z, so OaksAideScript's own dec a ; jr nz could not be read and Route 11 Gate 2F's aide said nothing.
  • ld h, d refused a pair with no hl written yet, which is a copy rather than a read.
  • A store to wOpponentAfterWrongAnswer ended Cinnabar Gym's Blaine row.
  • _gen1_written matched blackout_map twice, so SetLastBlackoutMap's own map never landed and the nurse's step answered for both.

Changed

  • Three routines are read by the bytes they open with rather than by an address, each being a loop a walk cannot step through: <Map>Script_Get*InBag, Print*InBag and OaksLabScript_RemoveParcel.
  • Every text_asm row on Red and Blue decodes now, 316 of them against 314, with five unknown branch arms against twelve. tools/checks/gen1_walk.gd takes the drink menu with two of three drinks and is refused with none, lists two fossils and gets KABUTO back a visit later, reads one badge and finds the list reopened, and counts the heal machine's sounds. tools/preview_world.gd's script_menu kind photographs any of the boxes.

`TextBoxBorder`, `PlaceString` and `HandleMenuInput` are one seam. The `menu`
node owns every step behind it the way a `YesNoChoice` does, so the tail is
resolved once per row the box offers and once for the B press and the answer
picks the walk that runs. Its rows are the fixed strings `PlaceString` placed,
split on `<NEXT>`, or `wFilteredBagItems`, a `db` list `GetQuantityOfItemInBag`
filters to what the bag holds. Three routines are read by the bytes they open
with rather than by an address, each being a loop a walk cannot step through:
`<Map>Script_Get*InBag`, `Print*InBag` and `OaksLabScript_RemoveParcel`.

`wFossilItem` and `wFossilMon` ride the world snapshot, so the Cinnabar lab
hands back the Pokemon the fossil it took on an earlier visit revives into, and
`GetMonName` with `CopyToStringBuffer` behind it fills a box's two `text_ram`
markers by address. `CeruleanBadgeHouseMiddleAgedManText`'s `SPECIALLISTMENU` is
one node carrying its own loop: a chosen badge prints its line and the list
reopens, and the `jr c` B answers is the way out. `predef DisplayDexRating` is
`Gen2ProfOaksPC.rate`'s two pages, and `AnimateHealingMachine` sounds one
`SFX_HEALING_MACHINE` per ball at `.partyLoop`'s `ld c, 30` with
`MUSIC_PKMN_HEALED` behind them.

Four things fixed beside them. `dec a` raised no Z, so `OaksAideScript`'s own
`dec a ; jr nz` could not be read and Route 11 Gate 2F's aide said nothing.
`ld h, d` refused a pair with no `hl` yet, which is a copy rather than a read.
A store to `wOpponentAfterWrongAnswer` ended Cinnabar Gym's Blaine row. And
`_gen1_written` matched `blackout_map` twice, so `SetLastBlackoutMap`'s own map
never landed and the nurse's step answered for both.

Every `text_asm` row on Red and Blue decodes now, 316 of them against 314, with
five unknown branch arms against twelve.
@Decryptu
Decryptu merged commit 171de8a into main Sep 8, 2026
1 check passed
@Decryptu
Decryptu deleted the gen1-script-menus branch September 8, 2026 11:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant