Manual test: phone calls, rematches and the radio #80

Open
opened 2026-10-16 11:10:20 +02:00 by kawa · 0 comments
Owner

Implementation: #30 (7c12c81).

Why a person: unit tests drive every phone trainer's rematch, a random call, each radio station and Buena's show; these checks cover how calls and the radio look and sound in the browser, and real waits on the clock.

Setup (on a machine with the user's Crystal 1.1 ROM)

  1. Run MAKE_TEST_SAVES=1 npx vitest run tests/playthrough.test.ts.
  2. Run npm run dev, load the ROM, then Savegames → Import native backup → test-saves/goldenrod-city.crystal-save.json (the radio card is in it), then Play. Sound on. The backups must stay local.

Steps and expected results

  • Get a trainer's number (Route 30's Youngster Joey after the Mystery Egg, or Route 31's Wade), then walk outdoors for 20+ minutes of game time (the device clock): the phone rings twice with "☎ NAME: CLASS" flashing and the ring sound, the trainer talks, "Click!" and the hang-up tones end it. Later calls come sooner (10, 5, then 3 minutes).
  • No call rings on a door, stairs or cave entrance, indoors where the map has no signal, or from a trainer standing on the same map.
  • When a trainer says they want a rematch, walk to them: they battle with a stronger team. A trainer who promised a gift hands it over.
  • Pokégear → phone: call a trainer. Two rings with sound, their answer, the hang-up. In a place without service, the no-signal sound and "out of the service area".
  • Pokégear → radio: up/down tunes. 4.5 plays Oak's Pokémon Talk (afternoon/evening) or the Pokédex Show (morning) with their lines scrolling every ~2 s; 7.5 Pokémon Music (march or lullaby by weekday); 8.5 the Lucky Channel with this week's number; 10.5 Buena's Password after 6 PM (off the air before). Leaving the radio keeps a station's song playing until the map changes.
  • A house radio (Kurt's house in Azalea, the flower shop in Goldenrod): the station's name in quotes, then the station; A or B stops it.
  • Radio Tower 2F after 6 PM with the password heard: Buena asks it, the right word gives a Blue Card point (once a day). The receptionist exchanges points for prizes; not enough points and a full pack are refused.
  • A trainer who reports a swarm (Ralph: Qwilfish on Route 32's water; Anthony: Dunsparce in Dark Cave; Arnie: Yanma on Route 35): that Pokémon appears much more often that day.

Known boundaries: the radio's dial is shown as a frequency number, not the original's graphics; holding up/down does not keep tuning; the Poké Flute channel cannot wake Snorlax (Kanto is closed). Do not report those as regressions.

Report: tick the checks completed, give the browser/device and commit tested, and describe any failure with the last action and expected/actual behavior. Leave this card in A tester until a person has performed the checks.

Implementation: #30 (7c12c81). Why a person: unit tests drive every phone trainer's rematch, a random call, each radio station and Buena's show; these checks cover how calls and the radio look and sound in the browser, and real waits on the clock. **Setup** (on a machine with the user's Crystal 1.1 ROM) 1. Run `MAKE_TEST_SAVES=1 npx vitest run tests/playthrough.test.ts`. 2. Run `npm run dev`, load the ROM, then Savegames → Import native backup → `test-saves/goldenrod-city.crystal-save.json` (the radio card is in it), then Play. Sound on. The backups must stay local. **Steps and expected results** - [ ] Get a trainer's number (Route 30's Youngster Joey after the Mystery Egg, or Route 31's Wade), then walk outdoors for 20+ minutes of game time (the device clock): the phone rings twice with "☎ NAME: CLASS" flashing and the ring sound, the trainer talks, "Click!" and the hang-up tones end it. Later calls come sooner (10, 5, then 3 minutes). - [ ] No call rings on a door, stairs or cave entrance, indoors where the map has no signal, or from a trainer standing on the same map. - [ ] When a trainer says they want a rematch, walk to them: they battle with a stronger team. A trainer who promised a gift hands it over. - [ ] Pokégear → phone: call a trainer. Two rings with sound, their answer, the hang-up. In a place without service, the no-signal sound and "out of the service area". - [ ] Pokégear → radio: up/down tunes. 4.5 plays Oak's Pokémon Talk (afternoon/evening) or the Pokédex Show (morning) with their lines scrolling every ~2 s; 7.5 Pokémon Music (march or lullaby by weekday); 8.5 the Lucky Channel with this week's number; 10.5 Buena's Password after 6 PM (off the air before). Leaving the radio keeps a station's song playing until the map changes. - [ ] A house radio (Kurt's house in Azalea, the flower shop in Goldenrod): the station's name in quotes, then the station; A or B stops it. - [ ] Radio Tower 2F after 6 PM with the password heard: Buena asks it, the right word gives a Blue Card point (once a day). The receptionist exchanges points for prizes; not enough points and a full pack are refused. - [ ] A trainer who reports a swarm (Ralph: Qwilfish on Route 32's water; Anthony: Dunsparce in Dark Cave; Arnie: Yanma on Route 35): that Pokémon appears much more often that day. Known boundaries: the radio's dial is shown as a frequency number, not the original's graphics; holding up/down does not keep tuning; the Poké Flute channel cannot wake Snorlax (Kanto is closed). Do not report those as regressions. **Report**: tick the checks completed, give the browser/device and commit tested, and describe any failure with the last action and expected/actual behavior. Leave this card in A tester until a person has performed the checks.
kawa added the parity label 2026-10-16 11:10:20 +02:00
kawa added this to the Pokemon Crystal - Web project 2026-10-16 11:10:20 +02:00
kawa moved this to A tester in Pokemon Crystal - Web on 2026-10-16 11:10:20 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: kawa/Crystal#80