Merrow is an open-source “randomizer” that I developed for Quest 64 (a 1998 RPG for the Nintendo 64), a tool designed to take an old game and remix and reorder game elements, so that each playthrough is unique. Merrow offers many randomization, difficulty modification, and quality-of-life options and features.
Merrow also contains several other features:
- A Quest 64 game reference, containing extensive data about the game’s spells, enemies, and stats, as well as randomizer-specific information.
- A series of non-game-specific hexadecimal romhacking tools, including a data extraction tool, a generic IPS patch generator, and an N64 file checksum repair tool.
Merrow began as an experiment in exploring retro game data structures. I greatly enjoyed Quest 64 as a kid, despite many clear issues and flaws, and was curious about romhacking in general. Quest was ideal for this, as it tried to implement many interesting design concepts and big ideas, although the execution of those ideas wasn't always the best.
Through my research into the game's data, I learned a great deal about how older games were architectured, but also discovered exactly how unfinished Quest really was, rushed out to meet a holiday deadline ahead of the seminal N64 title Legend of Zelda: Ocarina of Time.
I realized that I could use my existing programming skills to write and export game patches using an old open-source patching format called IPS, that made simple edits to hexadecimal data. The first few versions of Merrow were developed in Unity C#, but adding more features required more complex UI improvements, so I migrated the tool to Winforms C# to make it more lightweight.
My goal throughout the project was usability and clarity, reasoning that a game this obscure with a reputation this bad would be a hard sell. But by devising many quality-of-life improvements to go alongside my randomization features, I could hopefully make Merrow a revival project of sorts, to bring in new players and old.
I formally 'released' Merrow with version 44, creating several media pieces (including a built-in Help function, explanatory detail sheets and a PDF Guide.)
Significant development milestones:
- 21-01-17: v1.0 initial release, randomized spells proof-of-concept.
- 21-01-21: v1.2 contained the first QoL option (passive Invalidity).
- 21-02-02: v1.51 first attempt at anti-crash logic for spells.
- 21-02-13: v17 migrated the tool to Winforms.
- 21-02-26: v20 added Binary File Reader to extract data easily.
- 21-03-16: v23 implemented checksum-repair code as a DLL.
- 21-04-10: v26 enabled the ability to directly patch Z64 files.
- 21-07-17: v35rc added the "LOST KEYS" unified randomizer ruleset.
- 21-10-11: v42 created the "FRENCH VANILLA" QoL ruleset.
- 21-11-20: v44 marked the Major Release, with cleanup and polish.