It is fully open source, so it can be downloaded and run locally if desired, or an incomplete beta version can be accessed at https://camoto.shikadi.net. No login is required as everything happens client-side in the user's browser, with no game data being sent to the server.
As an open source application, contributions from other programmers are most welcome.
Game archives are like .zip files, but in a different file format. This component allows for files to be extracted and replaced inside game archive files. It transparently decompresses, decrypts, compresses and encrypts files as needed by the file format in use.
This component provides an interface to extracting and modifying text strings and other assorted variables located inside game executable files.
This handles a number of different compression and encryption algorithms. It is used heavily by gamearchive.js to handle compression and encryption inside archive files, but it is also used by the other components as well.
Handles converting to and from many custom graphics formats used by games, as well as handling animations and palettes.
This component pulls together the other libraries and provides a single unified interface to a game. It makes available a number of items, such as levels, images or songs, and handles the underlying technicalities such as which archive file to extract from, which palette to use for an image, where the song instruments are located, and so on.
Adding a new game to this component will make it available to edit through the web site.
This handles reading and writing game levels in a standardised manner.
This component reads and writes synthesized music formats (e.g. MIDI in .mid format), and allows conversion between them. It can be used for both replacing music in games, as well as converting extracted music to a more convenient format - lossy or losslessly depending on the capabilities of the target format. It can also handle instrument replacement, to allow conversion amongst OPL2/FM, MIDI and PCM/tracked songs.
This is the main component that provides the web site. It relies on gameinfo.js to provide a list of games to edit.