CadEditor. Release 5.2

Words
707
Reading
4 min
Listen
Play
8y

Repository

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

Introduction

New update of CadEditor project:

  • Game Boy support: plugin for rendering GB graphics and test config for 1 level for Darkwing Duck [GB]
  • Plugin for edit Turbo Tunnel Races for Battletoads [NES]

(these plugins was described here)

  • Command line options for select files to open (ROM-file, config file, settings file, dump file)
  • Fix settings for Duck Tales 2 [NES] and macroblocks editor (Blocks and macroblocks sets was wrong)
  • Add ability to describe macroblock sets with different address and count (need for Shatterhand [NES]). Will be described below.
  • Shatterhand - sublevels merged in one config (Needs for layout editor and object editor), object editors for level 1 and 2.
  • Update of settings verificator (some broken config was fixed with it)
  • GUI improvements for screen editor - controls for scale, select and disable/enable for any layer - layer 1, layer 2, physics layer, additional layer).
  • Enable/Disable addiitional rendering (Hints for blocks physics in Battletoads[NES])
  • Ability to describe physics in separate layer (for Little Samson[NES], for example). Will be described in details below.
  • Export to TMX no need pytmx and IronPython library in a system (rewritten in C#). Also, it works much faster.

Post Body

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

Support of different sets of macroblocks

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]:
cad_11.png
cad_12.png

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):
cad_21.png
cad22.png

Separate physics layer

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.
cad_3.png
cad32.png

Resources

CadEditor Release 5.2 on github
Patreon post
Itch.io post
Romhacking.net forum theme related to CadEditor

Roadmap

  • Added support of new platform (SNES/GBA)
  • Describe physics layer for games with separate physics layer (Battletoads, at least)
  • Added object editors for many games

Series Backlinks

CadEditor. Release 5.2 | Ecency