diff --git a/README.md b/README.md index 04c229a..ca62a4e 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,27 @@ # Hex Editor for fx-CG This is a hex editor for fx-CG. Builds with [gint](https://gitea.planet-casio.com/Lephenixnoir/gint) and [JustUI](https://gitea.planet-casio.com/Lephenixnoir/JustUI). + +![](screenshots/hexedit.gif) + +The main features are: + +* Open and files loaded to RAM (up to ~300 kiB) with both overwrite and insertion mode +* Load large files lazily and edit them in overwrite mode while partially loaded +* View and edit the calculator's main memory areas +* Create and save new files from scratch +* Basic navigation and statistics tools + +**Data sources and the front buffer** + +The data source is the file or memory being edited. Accesses to the data source are cached through the *front buffer*, which is required both for functionality (we're not going to do a flash write for every change in a lazily-loaded file) and for performance (inserting in a 300-kiB file is not ideal). + +The status bar shows `Buffer: @POSITION SIZE/CAPACITY`, which tells where the front buffer is in the file, how much data from the source is loaded in the buffer, and what the capacity of the buffer is. + +When the front buffer has been modified but not yet saved to the data source, the title bar has a double star `**` next to the source name. When the source itself has been modified but not saved, it shows a single star `*`. This only happens for loaded files, since for lazy files and memory the front buffer saves directly into the data source. + +**About editing G3A files** + +Writing to G3A files from within an add-in is not supported by the OS, as it add-in registration, which destroys any running add-in's MMU mappings. [See this Cemetech thread](https://www.cemetech.net/forum/viewtopic.php?p=299466). + +If you write to a G3A file from the hex editor, the editor is likely to System ERROR or crash after writing. However, that's still fairly safe, so if you really need to edit a G3A file this way you can do it. Prefer using the loaded file mode, as the lazy file mode saves automatically when you move around after editing. If a System ERROR or crash occurs after saving, or if the add-ins don't show up in the main menu after leaving, just RESET the calc. The writes to G3A files do work, it's just that the add-in can't keep running after they're done. diff --git a/screenshots/editor.png b/screenshots/editor.png new file mode 100644 index 0000000..2319989 Binary files /dev/null and b/screenshots/editor.png differ diff --git a/screenshots/fileselect.png b/screenshots/fileselect.png new file mode 100644 index 0000000..651750f Binary files /dev/null and b/screenshots/fileselect.png differ diff --git a/screenshots/hexedit.gif b/screenshots/hexedit.gif new file mode 100644 index 0000000..6a6e91b Binary files /dev/null and b/screenshots/hexedit.gif differ diff --git a/screenshots/memselect.png b/screenshots/memselect.png new file mode 100644 index 0000000..7ba404a Binary files /dev/null and b/screenshots/memselect.png differ diff --git a/screenshots/stats.png b/screenshots/stats.png new file mode 100644 index 0000000..d422bf3 Binary files /dev/null and b/screenshots/stats.png differ