Skip to content

About

Toggle Hard Mode on an existing Mario & Luigi: Dream Team (3DS) save, right in the browser.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Dream Team Hard Mode Toggle

A small React app that turns Hard Mode on or off in an existing Mario & Luigi: Dream Team (3DS) save. Everything runs in the browser; the save never leaves the page.

How it works

Each slot save (ML4_001.sav, ML4_002.sav, 96,688 bytes) stores Hard Mode as one bit: byte 0x01, mask 0x02. The game's New Game routine sets only that bit when Hard is chosen, and the file has no checksum. The app flips that bit and leaves every other byte alone (see src/save.ts).

What changes in-game after turning it on:

  • Items are capped at 10 each; a stack above 10 drops to 10 the next time its count changes.
  • The badge meter fills at 80% of the normal amount.
  • Saving a Hard Mode file sets a sticky "Hard Mode unlocked" bit in the system file ML4_000.sav, which the app doesn't touch.

Development

npm install
npm run dev     # local dev server
npm test        # unit tests for the save logic
npm run build   # type-check + production build into dist/

Deploying to Vercel

Import the repository in Vercel (or run npx vercel here). Build settings are pinned in the repo rather than left to auto-detection: vercel.json sets the Vite preset, npm ci as the install command, npm run build, and dist as the output directory, and engines.node in package.json pins Node 24.x. These override whatever is set in the Vercel dashboard.

About

Toggle Hard Mode on an existing Mario & Luigi: Dream Team (3DS) save, right in the browser.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages