CadEditor
https://github.com/spiiin/CadEditor
What is the project about?
In short, I created the level editor with the ability to add any level format, not known while the editor was created (mainly for games with tile graphics from old consoles, like Nintendo Entertainment System and Sega Mega Drive).
For now, it supports 1705 configs for different levels for 163 games, and new games can be added without changing of the editor itself.
CadEditor is the open-source project and one of its goals is to save games history and research hidden stages and secret levels from old games.
For example, this level from Aladdin game for NES is unavailable from the game (developers cut it from the game, but it still inside in ROM-file and in all cartridges with this game!), it can be seen only with CadEditor:
Other use-cases of the CadEditor:
- Homebrew game developers can use it as the base for own level editors. The editor also has options for dynamic extensions via plugins system and config files.
- Exporting levels to binary or text formats.
- Actually, editing levels in games. Romhackers and researchers may use it for making mods and remakes of classic games. For example, one of the projects of this type created with CadEditor:
I use patreon for creating donation campaign for the project, more detailed information can be found there.
Also, some information about the editor is available in Russian at github pages. You can use it to see more screenshots, even without understanding Russian.
And sorry for my possible mistakes in English, it's not my native, I hope my post is still understandable.
Technology Stack
CadEditor has written with C# and WindowsForms. It can be built for Windows using Visual Studio or Mono. Also, it can be built with Mono for Linux and Mac, but I didn't test it carefully.
Also, I used CSScriptLibrary for config files. Dynamic loading of C# code allows describing new level formats without recompilation the editor itself. Most standard functions for building levels already created, so new games can be added only with combining them. Example of config for loading the Ninja Gaiden 3 game for NES:
https://github.com/spiiin/CadEditor/blob/master/CadEditor/settings_ninja_gaiden_3/Settings_NinjaGaiden3_1-1a.cs
CadEditor also can be used as the library for research games and render the levels. I made project JupyterCadEditor with examples of using CadEditor with Python and Jupyter Notebook.
Also, I created some tools for research level formats for NES emulators. It also in CadEditor repository It is written with Lua.
Roadmap
- Create documentation for the project (one of the problem - my poor English, so it will be cool to translate my notes about CadEditor from Russian to English).
- Support for new platforms (now I have plugins to build levels for Nintendo Entertainment System, Sega Mega Drive and from prepared pictures). I want to add SNES and Game Boy Advance at least.
- Create universal object editor (now editor supports it only for 12 games, for others only background editing allowed).
- Add missing editing features. CadEditor has powerful abilities for adding new formats, but editing features are not good now.
How to contribute?
- Fork the repository, make commits and create pull requests.
- Contact me via e-mail (available from editor itself and it's readme file)
- Discuss the editor at romhacking forums:
In Russian or in English
My github account
https://github.com/spiiin
(I made the proof picture with my github account name in my steemit introduce post and create file with my steemit username in CadEditor repo)