Open main menu

Difference between revisions of "HOWTO-Engines"

680 bytes added ,  13:16, 23 November 2022
Added info on ExtendedSaves
(Removed references to quux and the quoted example. Automated way is to go)
(Added info on ExtendedSaves)
Line 127: Line 127:
=== True RGB color support ===
=== True RGB color support ===
If you need to support more than 256 colors in your game engine, please refer to [[API-Truecolor|the truecolor API reference page]] for specifications and initialization protocol.
If you need to support more than 256 colors in your game engine, please refer to [[API-Truecolor|the truecolor API reference page]] for specifications and initialization protocol.
== Extended Saves ==
To easily support ScummVM-specific metadata in the saves, we implemented the ExtendedSaves interface.
This basically makes your saves look like this:
  <DATA>    Engine-specific save data
  <METAINFO> ScummVM metainfo, including play time, screenshot, save name etc
  <OFFSET>  4-bytes offset to the the ScummVM metainfo from the end of the save
Thus, all generic methods like listSaves() are retrieving this information.
In order to benefit from it, do the following:
# In MetaEngine::hasFeature(), add kSavesUseExtendedFormat
# Overload loadGameStream() and saveGameStream() where you parse/save only your engine-specific data
# ...
# PROFIT!