Browse and edit game asset archives. It ships no formats itself; every format it opens arrives as a plugin dropped into the formats folder beside the executable. Built with .NET 10 and Avalonia, it runs on Windows and Linux from one codebase.
Get the .NET 10 SDK.
git clone https://github.com/Team-BrewSearch/OmegaStudio.git
cd OmegaStudio
dotnet build src/OmegaStudio.slnx
dotnet run --project src/OmegaStudio/OmegaStudio.csprojBuild the solution, not just the host project. Building OmegaStudio.csproj alone leaves formats/ empty and an app with no plugins opens nothing. Building the solution copies each plugin into the host's formats folder, so a plain dotnet build yields a working app.
Open an archive straight away by passing it on the command line:
dotnet run --project src/OmegaStudio/OmegaStudio.csproj -- path/to/archive.binThe user guide covers the app. DEVELOPMENT.md covers building from source and the release publisher.
Open an archive and you get a tree of everything inside it. Select a row and the panes that make sense for it appear:
| Pane | Appears for | What it gives you |
|---|---|---|
| Viewport | anything with geometry | Orbit camera, five shading modes: textured, shaded, wireframe, normals, UV |
| Texture | anything that decodes to an image | Zoom, fit, actual size |
| Audio | anything that decodes to sound | Play, pause, stop, and a seek bar |
| Video | anything that decodes to a movie | Playback with sound, scrubbing, frame and movie export |
| Animation | anything with clips | Clip picker, transport, and a dope sheet |
| Console | always | Every load, edit, and failure, timestamped |
The Properties pane lists what the selected row knows about itself. A plugin can make a row editable: a text box, a check box, or a drop-down beside the label, written straight back into the format.
Each row carries a context menu built from what it can do: extract the raw bytes, replace them from a file, export a PNG or a glTF, replace an image from a PNG, plus whatever commands the owning plugin adds.
Editing is undoable. The history keeps up to 256 MB of before-and-after snapshots, so Ctrl+Z works across formats the host has never heard of.
Nothing is written until you ask. File ▸ Save rewrites the archive in place, and the first save of a session copies each affected file to <name>.bak first.
Eight plugins are built from this repository:
| Plugin | Games |
|---|---|
| Harugeki | Suzumiya Haruhi no Chourantou / Gekitou (PC) |
| Virtuos | Hot Wheels: Battle Force 5 and four other DS racing games |
| Nintendo | DS ROMs, WBFS Wii containers, 3DS cart images |
| Polarbit | Crash Bandicoot Nitro Kart 2 and 3D and three other iOS games |
| DWSSK | DreamWorks Super Star Kartz (PS3, Xbox 360, Wii, 3DS) |
| PlayStation 3 | Game discs |
| Xbox 360 | Game discs |
| Standard Formats | OGG, WAV, PNG, JPEG, GIF, BMP payloads, anywhere |
FORMATS.md says exactly what each one opens and what it can write back.
A plugin is one assembly named *.Formats.dll, referencing Omega.Plugins and nothing else of the host's. Libraries it depends on are embedded in it, so it stays a single file. Implement IFormatPlugin, name it with an assembly attribute, drop the file in formats/, and it loads on the next launch.
See docs/PLUGINS.md for the walkthrough and docs/ARCHITECTURE.md for how the host uses what you implement.
| Document | Covers |
|---|---|
| USER-GUIDE.md | Using the application: panes, editing, saving |
| FORMATS.md | What each shipped format opens and writes back |
| PLUGINS.md | Writing a plugin |
| ARCHITECTURE.md | How the host works |
| DEVELOPMENT.md | Building, publishing, and continuous integration |
Released under the MIT License. See LICENSE.