61 lines
2.7 KiB
Markdown
61 lines
2.7 KiB
Markdown
# Old Man Glitch Decoder
|
||
|
||
A single-file, dependency-free recreation of **Old Man Name Generator 2**, a
|
||
Pokémon Red/Blue/Yellow tool originally hosted on Glitch City Laboratories
|
||
and long since offline (recovered from an Internet Archive Wayback Machine
|
||
capture). Type a 7-character trainer name and see what the in-game "Old Man
|
||
glitch" would actually encounter with it.
|
||
|
||
## What it does
|
||
|
||
In Gen 1, walking away from the Old Man in Viridian City right after he
|
||
"shows you how to catch a Pokémon" can trigger a glitch encounter built from
|
||
raw bytes of your trainer's name:
|
||
|
||
- Positions **3, 5, and 7** of the name are each read as a Pokémon species
|
||
byte.
|
||
- Positions **2, 4, and 6** are each read as that encounter's level byte.
|
||
- Position **1** is never read — it has no effect on the outcome.
|
||
|
||
The species comes from Gen 1's internal character/index table: every
|
||
nameable character (A–Z, a–z, digits, and a handful of symbols) has a raw
|
||
byte value from 128–255, and that same byte doubles as a species ID. The
|
||
"level" isn't computed at all — it's printed as the identical raw byte
|
||
value, which is why these encounters always show absurd levels (128–255)
|
||
instead of the normal 1–100.
|
||
|
||
## Usage
|
||
|
||
Open `index.html` directly in a browser. There's no build step, no server,
|
||
and no external requests — the page is fully self-contained.
|
||
|
||
## Files
|
||
|
||
| Path | Purpose |
|
||
|---|---|
|
||
| `index.html` | The app. CSS and JS are inlined directly into the page (see [Inlining](#why-inlined) below), so this one file is all you need to run or share it. |
|
||
| `app.css` / `app.js` | Human-readable, unminified source of the styles/script that are inlined into `index.html`. Edit these, then re-minify and re-inline into `index.html` when publishing a change. |
|
||
| `data/charmap.json` | The full character → Gen 1 byte value → species lookup table, generated from the source spreadsheet. Source of truth for `app.js`'s inlined data. |
|
||
| `data/charmap.min.json` | Minified copy of the same table. |
|
||
| `CHANGELOG.md` | Release history. |
|
||
| `LICENSE` | GPLv3. |
|
||
|
||
### Why inlined?
|
||
|
||
`index.html` bundles its CSS and JS inline rather than loading `app.css`
|
||
and `app.js` as separate requests. For a page this small, that trades
|
||
per-file browser caching for fewer round trips — worth it on a slow
|
||
connection for a single-visit tool like this one, at the cost of editing
|
||
convenience (hence keeping the unminified sources alongside it).
|
||
|
||
## Data source / credits
|
||
|
||
- Character-to-species mapping derived from the internal Gen 1 index table
|
||
(`Decimal` / `R/B/Y Pokémon` / `R/B/Y Letter` columns).
|
||
- Logic reverse-engineered from the archived "Old Man Name Generator 2"
|
||
page, originally by Abwayax and the Glitch City Laboratories team.
|
||
|
||
## License
|
||
|
||
GPLv3 — see [LICENSE](LICENSE).
|