Measure, weigh and name the European releases' own way (#84)
Checks / web (push) Failing after 19s
Private ROM checks / private-rom (push) Failing after 27m7s

The French, German, Italian and Spanish releases store Magikarp's
length in millimetres (and print a tenth of them), start the Magikarp
house's record at their own length and holder, keep Pokédex heights in
decimetres and weights in hectograms (printed in metres and kilograms),
read the Heavy Ball's weight byte without converting it, and place the
enemy's nickname before EnemyText (French, Italian) or the trainer's
name before the class (French, Italian, Spanish).

map-revision --symbols writes each release's symbol file, so the
reference specs run against a release; specs that pin English data skip
there.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
kawaandClaude Opus 5.5 committed 2026-10-17 19:04:51 +02:00
1 parent 627f87d8b5
commit d3e3faff72
15 files changed
+246 -63

No files matched your search

+4
View File
@@ -15,6 +15,10 @@ test.skip(!existsSync(romPath) || !existsSync(symbolsPath), "Needs private ROM a
// and ObjectEventText's low byte ($f2), i.e. flag $f251. EventFlagAction's
// bit math (de >> 3 added to wEventFlags) overflows by $1e4a bytes into
// echo RAM, landing on wNumKeyItems (bank 1, $d8bc) bit 1.
// These pin English 1.1's data (ObjectEvent's bytes read as a header, its
// trainers and texts); another release's data differs.
test.skip(Boolean(process.env.CRYSTAL_SYMBOLS_PATH), "Checks English data.");
test("CheckTrainerBattle reads BurnedTower1F's rival as beaten only when wNumKeyItems' bit 1 is set", async ({ page }) => {
const { at, routine } = loadSymbols();
const a = {