Shining Force ROM viewer / editor (SF1, SF2, SFCD partial) — runs entirely in your browser. Use Open Game File with your own legal dump or SFCD .iso (nothing is uploaded to a server). Exports download as .bin / .smd / .ips.
Start items
Loading ROM…
Please keep this tab open — decode runs entirely in your browser.
ROM & project metadataWritable regions (merged offsets)
Fixed-size slots (spell/item icons, growth table) and entry points for compressed assets. Overlaps are flagged in the line below the list.
ROM lab — coverage metrics, Caravan tree, hex / patches
Byte-weighted scores use sf2splits.txt-derived atlas ranges plus Nova linker hints.
Raw patches apply to the in-browser ROM session after Open Game File.
Open a game file with Open Game File to enable patches and export in this browser session.
Body: romStreamOffset, outputPatchStart (decoded offset), patchHex. Empty stream offset falls back to hex panel offset.
Stack-compressed same-length replace
sliceHex must match compressed blob byte length on ROM. Optional verify decompress.
Spell / item icon (192 B tile)
Or paste exactly 384 hex characters (192 bytes) — no PNG.
Ally rows (JSON bodies)
Use ally index 0–29. Dialogue: dialogueRows array of 3 { "portrait": n, "speechSfx": n }. Battle: 3× { "classId", "battleSpriteId", "palette" }. Map: 3× { "mapspriteIndex" }. Start: startClassId, startLevel, startItemsRaw length 4.
Apply IPS patch
Multipart field ips. Default applies against the IPS baseline; choose session to patch the live in-memory ROM (includes unpersisted edits). Optional hashes prevent silent mismatches.