.card: what each byte does in the game, and the offsets the community had wrong. Verified against real cards by the doc_card.py codec (round-trips byte-exact). A wrong offset doesn't throw an error — it silently changes the wrong thing.a1[6]=0x3F, hood at a2[26]=0x70, correct track-reversal), but its personality control was a lossy 5-choice dropdown that wrote only {0,48,64,80,208}. So re-saving any card whose personality byte wasn't one of those five silently rewrote it (100→80, 128/180/200→64, 244→208) — even if you never touched personality. That's what changed JJ's horse. Fixed (Jun 2026): the editor now preserves the exact 0–255 personality byte and only changes it when you deliberately pick a different one.The card is 207 bytes = 3 tracks of 69. Within a track the logical bytes are stored back-to-front: logical aN[k] lives at file offset t*69 + (69−k). If a tool addresses the card by raw offset without undoing the reversal, every field after the first is shifted — the root cause of most historical mismaps. There is no whole-card checksum, so any byte is freely editable (and silently mis-editable).
Four adjacent track-0 bytes, all cosmetic-looking, one of which is not:
| file | logical | field | gameplay effect |
|---|---|---|---|
| 0x3C | a1[9] | Coat modifier | cosmetic (coat variant) |
| 0x3D | a1[8] | Coat base | cosmetic (coat color) |
| 0x3E | a1[7] | Run-style seed | creation seed only — does NOT reliably set displayed running style (leg-type is derived from externals at race time). A known false lever. |
| 0x3F | a1[6] | PERSONALITY (0–255) | drives the post-race bond multiplier — the right response per personality builds the bond ×2.0, the wrong one lowers it. Change this and the horse reacts to you differently forever. |
| field | OLD / community | CORRECTED | why it matters |
|---|---|---|---|
| Hood | "0x73" | 0x70 (a2[26]) | 0x73 is retirement SHARP — editing "hood" at 0x73 silently changes a stat. |
| Personality | 5 buckets {R,I,C,H,S} | raw 0–255, 8 bands @0x3F | the 5-bucket write is lossy; band breakpoints affect bonding |
| Run-style (0x3E) | "the running style" | creation seed only | editing it to change style usually does nothing visible |
| Track storage | raw forward offsets | reversed per track | the master cause of shifted maps |
| Checksum | "don't edit, it'll corrupt" | no whole-card checksum | cards are freely editable; bad edits aren't caught |
| Personality on CPU horses | "horses have a personality byte" | player-card only | CPU racing horses don't store it |
Reversal already applied — these are final file offsets a hex editor can use directly. All byte-exact.
| file | field | gameplay effect |
|---|---|---|
| 0x00–0x12 | Horse name (18 ASCII, reversed) | identity |
| 0x14–0x26 | Sire name | pedigree / lineage |
| 0x28–0x3A | Dam name | pedigree |
| 0x3C–0x3D | Coat (mod / base) | cosmetic |
| 0x3E | Run-style seed | creation seed only |
| 0x3F | Personality | post-race bonding multiplier |
| 0x40–0x43 | UID / horse id (mirrored all 3 tracks) | identity / lineage links |
| 0x45–0x4D | Internals: stamina / speed / sharp (cap 60) | core stats (externals matter more for base ability) |
| 0x51–0x53 | G1 titles (bitfield) | career titles |
| 0x55–0x57 | Earnings | prize total |
| 0x59–0x67 | Race record + hearts (@0x65) | career stats |
| 0x5F–0x64 | Externals (current): start/corner/oob/competing/tenacious/spurt (stored display−1) | the dominant driver of race ability; also derive leg type |
| 0x69–0x6E | Retirement externals | breeding-stock value |
| 0x70 | Hood (0–63) | cosmetic — NOT 0x73 |
| 0x71–0x73 | Retirement internals stamina/speed/sharp (cap 45) | breeding value (0x73 = ret. sharp, not hood) |
| 0x7A | Sex (0 M / 1 F / 2 Gelding) | breeding role |
| 0x7B–0x7D | Silk pattern / color1 (0x7C) / color2 (0x7D) | cosmetic |
| 0x8A–0x91 | SEGABEF0 marker | card-type signature (US/WE) |
| 0x92 | Dirt aptitude (0–255) | dirt vs turf suitability (banded) |
| 0x96 / 0x9A | Retired flag / breeds | retirement state, breed count |
doc_card.py (they apply the reversal for you). Don't trust a raw-offset edit from an older tool.Gameplay effects of these bytes → The Hidden Rules. Layout details → the ROM architecture doc.