https://github.com/spiiin/CadEditor
CadEditor is the universal level editor for NES/SMD/SNES/Game Boy games, the introduction of the project was here
New update of CadEditor project:
(these plugins was described here)
This update contains many little fixes and several big improvements, that leads to support new games. Basic support of games for Game Boy was already described, and other main improvements are Support of different sets of macroblocks and Separate physics layer
NES games have a limited video memory size (256 tiles of size 8x8). These tiles assembled to blocks (2x2, 4x4 tiles or other sizes), and often blocks assembled to macroblocks (2x2, 4x4 blocks in 1 macroblock or other sizes). Sometimes level designers used several tiles/blocks/macroblocks set in different parts of the level. They used doors, exits, teleports or other objects for the reason to change decorations.
All the games added before used aligned blocks/macroblocks sets (mostly, 256 blocks/macroblocks per set) or merged sets for memory economy (part of blocks used in one level with one tileset, and other part used another).
Example of merged blockset (some blocks use tileset 0, other use tileset 1), Chip and Dale [NES]:
But occasionally, sublevels of one level in the game can use totally different block/macroblock set, described in the different part of the ROM-file, and arrays with description can have different sizes. This levels also need to be rendered together, so I added the ability to describe any different block sets for one level.
Example of the result from game Shatterhand [NES] (all blocks use the same tileset, but level 2-1 use macroblock set 1, and level 2-2 use macroblock set 2):
Most of the games describe physics properties at the level of blocks. For example, if block 0 is "rock" and it physics describe as "obstacle", then all these blocks on the map will have "obstacle" physics. But some games not used this scheme, and every "rock" block 0 on the map can have different physics property. For example, one rock block can have obstacle property, on other (with same tiles) rock block can be background. For this games, physics properties saved separately, not in blocks. Example of games with this type of physics description - Raf World, Battletoads, Little Samson
For this games, I added the ability to describe separate physics blocks in game configs with functions (developers of configs can redefine this functions for other games as they need):
public LoadPhysicsLayer loadPhysicsLayerFunc() { return loadPhysicsLayer; }
public SavePhysicsLayer savePhysicsLayerFunc() { return savePhysicsLayer; }
And, if this function will be redefined, CadEditor can show physics layer and users can edit this layers separately from blocks layer.
CadEditor Release 5.2 on github
Patreon post
Itch.io post
Romhacking.net forum theme related to CadEditor