Contents
  1. Ideas, hopes, dreams
    1. Imperial Tapestry
    2. Imperial Foxhound
    3. Imperial Taster
    4. Imperial Assembly
    5. Imperial Scribe
    6. Imperial Proxy
    7. Imperial Cartographer
    8. Imperial Chronicler

Tools

Ideas, hopes, dreams

These were written some time ago and may not represent current hopes or coherent designs. But they sound nice and I named them, so I don't want to lose the information, in case I ever intend to design something in the spirit of one of these.

Imperial Tapestry

Maybe Imperial Patchwork?

It's the tool that creates and applies standalone binary patches from binary diffs and MPRLs. It should support standard formats like IPS, and maybe a compiled MPRL format but unlikely.

Imperial Foxhound

Foxhound would be a hex editor that integrates MPRL information to annotate portions of the binary, and also allows you to manually annotate portions and export a working MPRL file based on your labels. It should provide ways of previewing the data as different things, and possibly eventually allow you to scan for sane possibilities of certain things. Previews for more complex things can be done in a pane that only shows the preview of the selected section, however, graphic, text, and numerical panes at least should be fully available (and appropriately highlighted and annotated, sharing with all other views).

Imperial Taster

Taster is an emulator/debugger that allows the creation of virtual hardware and uses MPRL/ASM/ROM resolved to comprehensible ASM to execute and step through the code. With enough information it could run a whole machine, but it doesn't really care whether there's hardware or not. It will allow you to run code and keep track of what it does, as well as do traces, set breakpoints, and so forth. It will likely also allow you to run tests by loading machine states (which should rely on the code/MPRL for positioning and register selection), and unit tests by preparing only what's needed for one op and checking given input/output pairs, and interactive tests by loading the same but running a REPL. Note that this application is not meant to hook into a running application on the current system.

Imperial Assembly

Assembly is an assembler that compiles starting from an ASM file, but manages direct inclusion of MPRL as expected. It can generate patching information so that the author can exchange resources without a full reassembly, and also can generate debugging information (inline if it's supported by the target system, externally otherwise). It may allow compilation from other code types via translators. This should also be able to disassemble binaries into code using a shell MPRL, outputting either a MPRL that marks all the executed regions (and perhaps whatever other data it can determine from the code) or the assembly code itself (or both I guess).

Imperial Scribe

Note from the future: Very likely will never be made, I've come to like VS Code, so there may just be a plugin for that. Many of these features it handles itself, anyway.

Scribe is an IDE that uses the assembler and parser information to highlight and comprehend the text you're editing. This essentially means that there are no discrepancies between the compiler's lexing and the IDE's highlighting.

Features I want:

Imperial Proxy

Proxy assumes the input is one file, identifies its type by mime or similar, converts it to a desired format into tmp, loads that in the associated editor for the original type, and converts the tmp file back into the original when the editor is closed.

This is meant to be a double click proxy on unusual file types that no one wants to make a custom editor for.

Imperial Cartographer

Cartographer is a map editor using tile data etc, works as expected. May have event/object placement as well if possible. Should support combo tiles i.e. tiles made of multiple tiles but should not require grouped tiles be placed together. This could be done with tile organization and shift selection of tiles, just be careful of IDs. This also needs to support map-level and tile-level palette modes.

Imperial Chronicler

Chronicler is meant to be save file editor but basically allows one to make a GUI for editing a binary format described in a MPRL. Should allow for all the typical form input fields and styling information. Likely it will just run on HTML/CSS, anyway, and have some sort of mapping between structs/keys and form fields. Possibly some sort of markdown-ish extension that converts a simplified text form to HTML with hooks for things save file editors typically need (like tabs) or possibly have some way of generating the editor directly from the MPRL and allowing the author to edit that. HTML should be roughly standardized so there can be downloadable CSS themes.