Releases: johnjohto/monworks
Release list
Monworks v2.5.0
Monworks 2.5 — the community release: servers, ladders, and trades that wait for you (July 2026)
2.5 is the release where Monworks games meet online — yours included. Everything below works for any game built with the toolkit, and none of it phones home: a server is something you run.
- Run a server, join a server. A lobby server is a headless mode of the same engine you play with. It checks every arriving copy byte-for-byte at the door, introduces matches, and relays traffic (without reading it) when two routers won't cooperate. Players get an ONLINE option at the Cable Club; connection blips mid-battle reconnect and resume on their own — even through the relay.
- Cheating can't win. On a verified server both games submit a compact replay after every match. Agreement records instantly; disagreement makes the server replay the battle itself — the story matching its own claims stands, the other is voided and struck. Illegal moves are refused live, by name. The worst tampering achieves is a void.
- Ladders and formats. Plain Elo over verified results, in a file anyone can read. Operators author formats — level caps, species clause, party size, and in-battle clauses (sleep, freeze, evasion, OHKO) both games agree on before turn one.
- The trade board. Post a monster and what you want for it; claim a listing while its owner sleeps. When you're both online, both get the call and walk into the ordinary Trade Center ceremony. The listing dies the instant the trade completes — and the server never holds a monster.
- For builders: the build is now plain Python — the same commands on Windows, Linux, and macOS. PowerShell is no longer required.
Under it all: battles reproduce byte-identically across Windows, Linux, and macOS, gated in CI. Fair online play you can check, not just trust.
As ever: the toolkit is MIT, the samples CC0, and extracted Kanto content stays personal-use on your own machine.
Monworks v2.4.0
Monworks 2.4 — the platform release: settings, saves, languages, and Studio as an app (July 2026)
2.4 is the release where Monworks grows up as a PLATFORM. Five arcs of
player-facing and creator-facing infrastructure, shipped one tracer at a time:
- A real settings screen. Volume sliders on real audio buses, display
filters, and full controller support — any pad works out of the box, every
key and button rebindable in-game, with per-device profiles and optional
rumble. Your preferences live on your machine, never in a project. - Characters, boxes, and a household PC. Up to nine save slots per project
(each a character with their own autosave), capacity knobs (bag, stacks, up
to twelve PC boxes), and an optional shared-storage mode where every
character in a project shares one box system — deposits commit instantly. - Languages. Projects can ship language packs — sparse translation tables
for UI text, story text, and names — and players pick theirs on the settings
screen. Studio grew a translation workspace: add a language, translate
side-by-side, watch coverage fill in. Every engine string became data first
(~800 call sites externalized, pixels proven byte-identical), so a
translation is an override file, not a fork. - Monworks Studio is an app now. Double-click Studio, no flags — its own
exe beside the engine's, mechanically verified to contain zero extracted
content. - ROM-based extraction, honestly sized. A research memo (not a promise):
what it would take to extract from a verified ROM instead of the
disassembly, with a byte-parity oracle as the gate. - And the things creators asked for while building on 2.3: narration the
player walks through instead of sitting through, scripted fights you're
allowed to lose (and ones only one ball can end), type-aware story checks,
widescreen battle wipes that actually fill the frame — plus fidelity fixes
a hand-tester caught, down to the starting POTION being back in your PC
where the cartridge puts it.
As always: original code MIT, original content CC0, extracted and derived
content stays on your machine. Full details in the repo changelog.
Monworks 2.3 — the living world: day and night, seasons, and wild mons that roam (July 2026)
2.3 is the release where Vermilion's Kanto starts living without you. Walk
out of Viridian at dusk and the palette dims warm; by night the routes go
moonlit blue and the tall grass belongs to rattata, zubat, and the occasional
gastly — visible, roaming, hunting or fleeing, and yours to walk into or
around. Same legal model as ever: everything below is a recipe applied to your
own extraction, and every piece is a general toolkit capability your own
Monworks project can bind.
- A real clock. Projects can tell time now — wall-clock like Gold/Silver
or accelerated fan-game time — with day-parts, weekdays, and seasons all
defined as plain data. Event conditions read it with the same expressions
they already use for badges and flags. - One grammar for "it depends." Encounter tables, map palettes — anything
that varies now varies the same way: an ordered list of candidates, first
match wins, your old records untouched. Night tables on Route 22 and
moonlit town palettes are the same three lines of JSON apart. - Day and night looks, from your own cartridge colors. The night and dusk
palettes are derived at apply time from the SGB palettes your extraction
already produced — darkened toward moonlight, dimmed toward sunset — and
hand-polishable afterward. Live play crossfades at the boundary. - Shiny mons exist. Every wild mon has carried the authentic 1/8192
Gen-2 odds since 2.2 — now the lucky ones LOOK it, with palette variants
derived from your own extraction. The same variant system does seasonal
art and whole-game alternate art sets, all as data. - Wild mons roam the overworld. The headline: every route's wild table
becomes visible, wandering spawns — walk into one to battle it, watch the
timid ones scatter and the territorial ones come to you. Deterministic to
the byte for replays, faithful to each route's original odds, and entirely
optional per encounter slot (random-battle purists keep their grass).
Faithful Kanto didn't move: the screenshot oracle and all four battle
fingerprints held through every one of the five tracers. Original code MIT,
original content CC0, extracted and derived content stays on your machine.
Full details in the repo changelog.
Monworks 2.2 — the modern core: abilities, natures, weather, and a whole new ruleset (July 2026)
2.2 is the release where Vermilion stops being a prettier Kanto and starts
being a modern one. The same legal model as always: we distribute recipes and
original code, never game data — and this release leans into that harder than
ever, because some of the new data comes from a source YOU check out.
A second ruleset, generic like everything else. The engine now ships
modern beside gen1: per-move physical/special categories instead of the
type-based split, modern stat math (IVs, EVs, natures — each mon's nature
derived deterministically from its own DNA, so your existing save migrates
without a dice roll), and the gen-3-style catch formula. Faithful Kanto
doesn't change by a byte — the four battle-determinism fingerprints and the
screenshot oracle held through every commit.
Abilities and held items as data. A new hook layer lets sandboxed scripts
intercept battle moments — switch-ins, damage, status, turn ends — with every
effect flowing through the same hashed event stream that keeps link battles
honest. Weather, entry hazards, and screens ride the same machinery as plain
records: rain that boosts water moves, spikes that greet a switch-in, screens
that time out. All of it is creator-facing — your project can bind any of it.
The Showdown recipe. Vermilion's modern data (the 18-type chart, all 25
natures, per-move categories, gender ratios, ability rosters) is converted at
apply time from a Pokemon Showdown checkout on YOUR machine — license-checked,
provenance-stamped, never bundled. One new overlay op does it, from a strict
allowlist.
Under the hood, the biggest data migration yet: every one of Kanto's 391
trainers is now an individual record (the foundation for rematches and
per-trainer AI), and old projects migrate forward with one command. Trades and
link battles refuse honestly at hello when two copies genuinely differ — and
keep working when they don't.
As always: original code MIT, original content CC0, extracted and converted
content stays on your machine. Full details in the repo changelog.
Monworks 2.1 — Project Vermilion begins: color, widescreen, backdrops (July 2026)
2.1 is the "GBC Kanto+" release. Project Vermilion is our modernized-Kanto
program — the faithful port's world, filled out with the modern comforts — and
its first phase ships today. Nothing about the legal model changes: what we
distribute is a recipe, not a game. You apply the overlay to your own local
extraction and out comes your personal Vermilion build; faithful Kanto stays
untouched beside it, still byte-for-byte.
What the recipe turns on (every piece is a general toolkit capability — your
own Monworks project can bind any of them):
- Widescreen. A 256×144 design frame (16:9 at Game Boy pixel density) that
integer-scales to your window, widens the visible world within an authored
envelope, and letterboxes only the sliver that's left. Resize freely; pixels
stay crisp. - Real Super Game Boy colors. The extractor now reads the cartridge's own
palette tables — the 37 SGB palettes, each species' color family, every town's
hue — and the engine recolors the world per map, the mons per species, the UI
per the original packets. Pale-blue Pallet, cave browns, a green Ivysaur: the
colors the cartridge itself defined, not our guesses. - Battle backdrops. Fights get arena scenes keyed by where you are and what
you're doing — forest, cave, sea (surfing encounters!), tower, indoors — from
a new original CC0 set every project inherits and can replace. - Display filters + creator shaders. Press F10 in play to cycle an LCD
pixel grid, CRT scanlines, or a high-contrast accessibility mode. Projects
can also ship their own GPU post-process passes — Vermilion's subtle warm
glow is the first. - Running shoes & autosave. Hold B to run at bicycle pace; autosave writes
its own slot on map changes and badges, and CONTINUE resumes whichever save
is newest. Both opt-in per project; the faithful port keeps its exact 1998
manners.
Under the hood this also fixed a real long-standing rough edge: every project
now saves to its own slot, so playing a sample or a creator game can never
clobber your Kanto save again.
As always: original code MIT, original content CC0, extracted content stays on
your machine. Full details in the repo changelog.
Monworks 2.0 — the toolkit ships (July 2026)
v2 is out. The faithful Pokémon Red port is now Monworks: a creation
toolkit for classic monster RPGs — with the port still inside, byte-for-byte, as
one project among many.
In the box:
- Monworks Studio (MIT): edit species, moves, items, trainers, and rules in
generated forms; paint maps; author branching story events; write sandboxed
scripts for puzzles and custom battle math; one-click play-test, with a
problems panel running the same softlock checks that caught real
sequence-breaks in the original. - Two original CC0 samples: Meadowbrook, a tiny starter world to copy and
make yours, and Bramblewick, the stress test — its own type chart and
formulas, a lever puzzle, a finishable quest, beaten start-to-finish by an
automated player, twice, identically. - Shippable exports: one engine exe + your project folder, runs anywhere with
no tools. The clean engine build contains zero...
Monworks v2.1.0 — Project Vermilion begins
The "GBC Kanto+" release. Project Vermilion — the modernized-Kanto program — ships its first phase. What we distribute is a recipe: apply overlays/vermilion/ to your own local extraction with tools/apply_overlay.py and out comes your personal Vermilion build, while faithful Kanto stays byte-for-byte beside it. Zero Nintendo bytes in this repository, as always.
The recipe turns on (each one a general Monworks capability any project can bind):
- Widescreen — a 256×144 design frame that integer-scales to your window, widens the visible world within an authored envelope, and letterboxes only the remainder (gh #93, ADR-039)
- Real Super Game Boy colors — the extractor reads the cartridge''s own palette tables (37 SGB palettes, species color families, every town''s hue) and the engine recolors world/mons/UI per the original rules (gh #94, ADR-040)
- Battle backdrops — arena scenes keyed by encounter slot, map, tileset, or zone, from a new original CC0 set every project inherits (gh #96, ADR-042)
- Display filters + creator shaders — F10 cycles LCD grid / CRT / high-contrast accessibility; projects ship their own GPU post-passes, inherently sandboxed (gh #95, ADR-041)
- Running shoes & autosave — hold-B running at bicycle pace; an automatic sibling save slot with newest-wins CONTINUE. Opt-in per project (gh #97, ADR-043)
- The overlay machinery itself (gh #92, ADR-038) — derive-beside recipes, byte-stable application, honest identity recompute — plus per-project save slots for every project
Every tracer was gated by a seeded bot completing NEW GAME → HALL OF FAME on the vermilion profile, with the faithful byte-identity battery (render shot + battle-stream md5s) holding throughout. Full detail in CHANGELOG.md; ADR-038 through ADR-043 in docs/decisions.md.
Building it: clone pret/pokered, pwsh tools/build.ps1, then python tools/apply_overlay.py and pwsh tools/run.ps1 --project=build/vermilion.
Monworks v2.0.0
Monworks 2.0 — the toolkit ships (July 2026)
v2 is out. The faithful Pokémon Red port is now Monworks: a creation
toolkit for classic monster RPGs — with the port still inside, byte-for-byte, as
one project among many.
In the box:
- Monworks Studio (MIT): edit species, moves, items, trainers, and rules in
generated forms; paint maps; author branching story events; write sandboxed
scripts for puzzles and custom battle math; one-click play-test, with a
problems panel running the same softlock checks that caught real
sequence-breaks in the original. - Two original CC0 samples: Meadowbrook, a tiny starter world to copy and
make yours, and Bramblewick, the stress test — its own type chart and
formulas, a lever puzzle, a finishable quest, beaten start-to-finish by an
automated player, twice, identically. - Shippable exports: one engine exe + your project folder, runs anywhere with
no tools. The clean engine build contains zero extracted Nintendo content (we
verify the packed index mechanically) — your export is yours to distribute. - New engine capabilities: per-project widescreen viewports (16:9 at GBC
pixel density), per-project UI vocabulary, extensible per-monster data that
survives trades and stays lockstep-safe in link battles. - The faithful port too: a hand-playtest campaign fixed a dozen issues
automation couldn't see, and the Pokédex data screen now matches the
cartridge pixel-for-pixel.
The legal model is unchanged: the toolkit ships only original code and content;
faithful Kanto comes from your own pokered clone, extracted locally, never
redistributed.