Manual test: Goldenrod shops, prizes and the Game Corner minigames #72

Open
opened 2026-10-12 13:13:18 +02:00 by kawa · 1 comment
Owner

Implementation: #32 (0930b78, 2640fa2, 7c4e852).

Why a person: automated tests cover the shops' stock, prices and saved state, and the Game Corner's tilemaps are checked against the ROM. These checks cover what only a person can judge: menus, balance boxes, the prize registration pages, and the slot machine and Card Flip screens against the original, including sprites and timing that the tile check does not cover.

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, then Play.
  3. The save starts outside Goldenrod's Radio Tower with the PLAINBADGE, the radio card, the BICYCLE, QUILAVA at level 31, three level-5 Pokémon and ¥14,020. The backup must stay local.

Steps and expected results

  • Department store: buy on several floors and on the rooftop. The money box, quantity box and BUY/SELL/QUIT menus match the original; the elevator goes to each floor.
  • Underground: the herb shop (bitter herbs), the bargain shop (sold out after one buy, closed for the day) and the haircut brothers. Get the COIN CASE in the Underground.
  • Name Rater renames a Pokémon you caught and refuses a traded one (Kenya, below). The Lucky Number show at the Radio Tower reads its number and checks the party and PC.
  • Route 35 gate: receive KENYA with Randy's MAIL; read the MAIL from the party menu; deliver it on Route 31 (Fly or walk).
  • Game Corner: buy coins at the counter (the money and coin box shows both). Exchange coins for a Pokémon prize you have never caught: both Pokédex entry pages appear before the nickname prompt.
  • Slot machine: bet 1, 2 and 3 coins; stop the reels with A. Compare with the original: reel scrolling speed and smoothness, the bet lines lighting up, payout counting, and, if they appear, the Golem and Chansey/egg sequences. One machine is the lucky one and pays more often.
  • Card Flip: play several rounds. Compare with the original: the board, the deal and flip of cards, and the cursor on a single card, a row, a column and the 2-number/2-Pokémon groups (its frame size and where it is drawn over the board). "Darn…" shows the ellipsis character.
  • Repeat a slot round and a Card Flip round with the on-screen controls on a phone or tablet. Record device and browser.
  • Save mid-session, reload and reopen: coins, Coin Case, bought items and the Lucky Number state persist.

Known boundaries: no sound; Golem's walk cycle draws two ROM frames with flips (the original stores four); the radio card does not play broadcasts yet (#30). 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: #32 (0930b78, 2640fa2, 7c4e852). Why a person: automated tests cover the shops' stock, prices and saved state, and the Game Corner's tilemaps are checked against the ROM. These checks cover what only a person can judge: menus, balance boxes, the prize registration pages, and the slot machine and Card Flip screens against the original, including sprites and timing that the tile check does not cover. **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`, then Play. 3. The save starts outside Goldenrod's Radio Tower with the PLAINBADGE, the radio card, the BICYCLE, QUILAVA at level 31, three level-5 Pokémon and ¥14,020. The backup must stay local. **Steps and expected results** - [ ] Department store: buy on several floors and on the rooftop. The money box, quantity box and BUY/SELL/QUIT menus match the original; the elevator goes to each floor. - [ ] Underground: the herb shop (bitter herbs), the bargain shop (sold out after one buy, closed for the day) and the haircut brothers. Get the COIN CASE in the Underground. - [ ] Name Rater renames a Pokémon you caught and refuses a traded one (Kenya, below). The Lucky Number show at the Radio Tower reads its number and checks the party and PC. - [ ] Route 35 gate: receive KENYA with Randy's MAIL; read the MAIL from the party menu; deliver it on Route 31 (Fly or walk). - [ ] Game Corner: buy coins at the counter (the money and coin box shows both). Exchange coins for a Pokémon prize you have never caught: both Pokédex entry pages appear before the nickname prompt. - [ ] Slot machine: bet 1, 2 and 3 coins; stop the reels with A. Compare with the original: reel scrolling speed and smoothness, the bet lines lighting up, payout counting, and, if they appear, the Golem and Chansey/egg sequences. One machine is the lucky one and pays more often. - [ ] Card Flip: play several rounds. Compare with the original: the board, the deal and flip of cards, and the cursor on a single card, a row, a column and the 2-number/2-Pokémon groups (its frame size and where it is drawn over the board). "Darn…" shows the ellipsis character. - [ ] Repeat a slot round and a Card Flip round with the on-screen controls on a phone or tablet. Record device and browser. - [ ] Save mid-session, reload and reopen: coins, Coin Case, bought items and the Lucky Number state persist. Known boundaries: no sound; Golem's walk cycle draws two ROM frames with flips (the original stores four); the radio card does not play broadcasts yet (#30). 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 P0 - nowparity labels 2026-10-12 13:13:18 +02:00
kawa added this to the Pokemon Crystal - Web project 2026-10-12 13:13:18 +02:00
kawa moved this to A tester in Pokemon Crystal - Web on 2026-10-12 13:13:18 +02:00
Author
Owner

Update for b5c2b19: the slot machine animations now match the original frame by frame in the reference tests (Golem flips and timing, Chansey and the egg). Extra check for this card:

  • Slots: when Golem rolls across the reels, the background (not the reels or sprites) shakes up and down by a couple of pixels until it stops; Chansey walks in, lays the egg and stays until the reel stops; the egg bounces right and disappears at the third reel, which then drops.
Update for b5c2b19: the slot machine animations now match the original frame by frame in the reference tests (Golem flips and timing, Chansey and the egg). Extra check for this card: - [ ] Slots: when Golem rolls across the reels, the background (not the reels or sprites) shakes up and down by a couple of pixels until it stops; Chansey walks in, lays the egg and stays until the reel stops; the egg bounces right and disappears at the third reel, which then drops.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: kawa/Crystal#72