Skip to content

Releases

1.4.271 — Yellow frame-rate candidate (perf port)

Choose a tag to compare

@jtfresh90 jtfresh90 released this 27 Oct 20:57

Yellow frame-rate test candidate, built from the v10 api3 prototype Gen-1 perf pass ported onto 1.4.270.

What changed (only 3 files vs 1.4.270: lib/KantoMain.lua, lib/KantoRoutines.lua, manifest.json):

  • Cached option reads (optCached, 0.5s cache) instead of per-NPC-per-frame option walks
  • Sleep scan, new-NPC scan, and dsSpecies stamp throttled to twice a second
  • Terrarium mod lookup memoized; settings pushed only when they change
  • Travelling-NPC scan now checks only flagged NPCs instead of every NPC
  • No NPC behaviour changed; force and map-change scans still run immediately

Verification: boot-verified on gen1recomp 0.3.96 in all 3 gens, zero Lua errors (Yellow, Gold, FireRed).

Honest limit: the boot rig cannot measure frame rate, so the Yellow fps improvement is UNPROVEN until an in-game play-test. If Yellow still drops frames with this build, please report back — the cause is something else and we will need profiling data from that session.

Includes the 1.4.270 Emerald fix (native NPCs no longer hijacked as random NPCs). Does NOT include the uncommitted travel-forcing / Gen 3 trade work still in the main tree.

1.4.270

Choose a tag to compare

@jtfresh90 jtfresh90 released this 27 Oct 20:08

Emerald: native NPCs (Nurse Joy, May, all story NPCs) no longer talk like random NPCs — talk now falls through to their ROM scripts, so healing and story progression work again. Item-ball prop exclusions are now per-layout (Emerald item ball is gfx 59, not 92).

Fix: isRegularNpc is now an allowlist — only mod-owned NPCs are intercepted. The old denylist relied on def.story/isStory, which the engine never sets on native defs.

Verified headless on gen1recomp 0.3.96: gate mock 17/17 per layout, live FireRed item-ball repro falls through to vanilla, boot clean in all 3 gens, zero Lua errors. In-game Emerald confirmation (Nurse Joy heal, May story) still needs a play-test.

v1.4.269 — Gen 3 item-ball hotfix

Choose a tag to compare

@jtfresh90 jtfresh90 released this 23 Oct 16:34

Hotfix — Gen 3 (FireRed/LeafGreen/Emerald) only. One file changed.

The bug (reported by darthtron64 — thank you!)

In Gen 3, item Poké Balls on the ground were being treated as NPCs by the mod's interaction system: talking to one gave it a generated trainer name and dialogue ("Trevor" the Pokéball), and worse, the ball could never be picked up — the mod's dialogue swallowed the talk, so the native pickup script never ran. Repeat talks could even trigger item/trade/battle events from a ball.

Root cause

FireRedInteractions decided "is this a regular NPC?" by checking for a script and trainer type, but native object defs carry no item flag — so item balls (graphics id 92) passed every exclusion and were adopted as ambient NPCs. The routines and sleep systems already excluded prop graphics; the interaction module was the one place missing the guard.

The fix

isRegularNpc now excludes the prop graphics ids (92 = item ball, 95/96/97 = cut tree / rock / boulder), mirroring the guard the routines module already used. Item balls now fall through to their normal pickup script.

Verified headless on engine 0.3.94 and 0.3.95 by driving the real item ball in Viridian Forest through the game's actual talk hook: before the fix the ball got a name and opened trainer dialogue; after the fix it passes straight through to pickup. Gen 1 and Gen 2 checked and not affected (their interaction paths only ever adopt mod-spawned NPCs). No other features or behavior changed.

1.4.268

Choose a tag to compare

@jtfresh90 jtfresh90 released this 20 Oct 16:28

2nd-interaction events: NPC item/trade/battle events now trigger on the 2nd talk instead of the 5th (all 3 gens), and an NPC can have another event once 15 real minutes have passed since its last one. In Gen 3, the item/trade and battle cooldowns drop from one hour to 15 minutes.

1.4.267

Choose a tag to compare

@jtfresh90 jtfresh90 released this 16 Oct 19:02

Companion bonds form much more easily (80%). New FLY/TELEPORT FREQ menu toggle in all three gens: Frequent, Medium (5s), Low (10s). NPC meetups are now real 10-second conversations. Fixed NPCs saying their own names in dialogue.

Kanto Life 1.4.266

Choose a tag to compare

@jtfresh90 jtfresh90 released this 16 Oct 18:39

Kanto Life 1.4.266

The lifelike NPC behaviors graduate to the main mod. Every new behavior is optional and can be switched off independently — see the README's "Everything Is Optional" section.

New: Lifelike NPC behaviors

  • NPC meetups — two NPCs walk up to each other and hold a 5–10 second conversation, then go their separate ways
  • Walking companions — bonded NPCs fall in step and walk beside each other, stride for stride
  • Mood-colored speech bubbles — emotion bubbles tint by mood: warm yellow (happy), orange (excited), red (grumpy), soft blue (sleepy). Regular conversation stays white
  • Greetings — NPCs greet you on arrival, on approach, and when you return, with mood-driven wording
  • Moods — NPCs cycle happy / neutral / grumpy / sleepy / excited, changing their dialogue
  • NPC-to-NPC chatter — nearby NPCs exchange quick two-line chats
  • Idle life — looking around, humming, contagious yawning, sneezes ("Bless you!"), curiosity ? bubbles, startled reactions, "Aww!" at cute Pokémon, time-of-day remarks

Fixes

  • Travel departures (teleport / fly / surf) can no longer be interrupted by greetings, meetups, or companion behavior
  • Fixed a Gen 2 / Gen 3 crash from movement state without a valid target
  • Greeting hop animation now actually plays (was silently skipped)

Notes

  • All lifelike behaviors are separate exp_* options — disable one or all of them and the mod keeps working
  • This build removes the wave animation (NPCs can't actually wave) and no longer declares optional mod dependencies

1.4.256

Choose a tag to compare

@jtfresh90 jtfresh90 released this 16 Oct 13:46

FireRed/Johto movement + door-knocking fixes:

  • Door knocking now accepts both firered_common_courtesy and the shared common_courtesy option key
  • Door knocking installer re-ensured at mod entry in case hooks weren't ready
  • FireRed slowStep and Johto stepToward reworked to thread routine state through, fixing movement-stall detection

1.4.252

Choose a tag to compare

@jtfresh90 jtfresh90 released this 16 Oct 13:32

FireRed fixes:

  • Hardened Pokemon-actor detection in interactions: checks the event object AND def, with a graphicsId -> species-table fallback, so Pokemon like Rayquaza never take the human dialogue path
  • NPC step frames 21 -> 26

1.4.251

Choose a tag to compare

@jtfresh90 jtfresh90 released this 16 Oct 12:57

Travel + cache fixes:

  • Pokemon ambient NPCs: fly only if Flying-type, teleport only if Psychic-type (all 3 gens); others use doors/routes/caves
  • Gen 1 teleport: keeps the NPC's own sprite with spin + rise (no more random-mon substitution)
  • Soft-cache clearing: sleep composites/meshes now clear on every map enter and on sleep-style change, so HGSS/body layers refresh instead of going stale
  • Johto mart/center staff exclusion hardened: now also gates on sprite names (NURSE/JOY/CLERK), not just map IDs

1.4.245

Choose a tag to compare

@jtfresh90 jtfresh90 released this 16 Oct 09:17

HGSS sleep/travel refinements:

  • Sleep bake now uses native source size (clamped 16-32px) instead of forced 16x16 — fixes tiny gray voxel bodies that clipped into the ground
  • Resolves HGSS path-string / hgssNativeImage art before baking — fixes vanishing human sleepers
  • HGSS overworld kept at native ~32px in fly/teleport swaps so they're not mistaken for default art
  • Door exclusion: 5-cell outdoors (unchanged), 1-cell indoors — 5-cell covered every tile in small houses and made indoor sleep impossible