Difference between revisions of "ZVision"
Jump to navigation
Jump to search
RichieSams (talk | contribs) |
RichieSams (talk | contribs) |
||
Line 79: | Line 79: | ||
* Re-order the if-then statements in scr ResultAction parsing to use the order of highest occurance (See [https://github.com/RichieSams/scummvm/blob/zengine/engines/zengine/scr_file_handling.cpp#L150 scr_file_handling.cpp: Line 150] | * Re-order the if-then statements in scr ResultAction parsing to use the order of highest occurance (See [https://github.com/RichieSams/scummvm/blob/zengine/engines/zengine/scr_file_handling.cpp#L150 scr_file_handling.cpp: Line 150] | ||
* Evaluate all in-engine warnings/debug messages and perhaps move them to higher debug channels (Or ZEngine specific debug channels) | * Evaluate all in-engine warnings/debug messages and perhaps move them to higher debug channels (Or ZEngine specific debug channels) | ||
* Clean out unused member functions from the Console class ( | * Clean out unused member functions from the Console class (See [https://github.com/RichieSams/scummvm/blob/zengine/engines/zengine/console.h console.h]) | ||
* Convert pointer initializers to ''nullptr'' instead of ''0'' | * Convert pointer initializers to ''nullptr'' instead of ''0'' | ||
* Add 'true' UTF-16 support for non-english versions of the game. (See [https://github.com/RichieSams/scummvm/blob/zengine/engines/zengine/string_manager.cpp#L214 StringManager]) | |||
==Current Progress== | ==Current Progress== |
Revision as of 18:30, 21 September 2013
Z-engine | ||
---|---|---|
Engine developer | RichieSams | |
Companies that used it | Activision | |
Games that use it | Zork Nemesis, Zork: Grand Inquisitor | |
Date added to ScummVM | Error: Invalid time. | |
First release containing it | N/A |
The Z-engine was the engine used by Activision in Zork Nemesis and Zork: Grand Inquisitor.
This engine is being added by the GSoC student RichieSams to ScummVM as part of the GSoC 2013.
The ScummVM engine uses Marisa Chan's Z-engine re-implementation, which is available from http://github.com/Marisa-Chan/Zengine, as a reference.
It should be noted that from a technical viewpoint, this engine has nothing in common with the MADE engine used for Return to Zork. It should also not be confused with the Z-machine which is the original Virtual Machine used for the original Zork text adventure games.
Immediate TODO's
- Finish InputControl implementation
- Implement SaveControl
- Test the SaveManager against gjse.scr (save room) and gjre.scr (restore room)
- Add a dirty rectangling system for RenderManager AlphaEntries so we're not rendering them to the backbuffer every frame
List of TODO's for Z-Engine to be playable
- Fix audio problems in videos
- This is a problem with Video::VideoDecoder
- Essentially, Zork videos require the sound chunks to be read as one continuous stream
- The current model puts each chunk into a separate AudioStream and then queues the streams
- This is being worked on by clone2727
- Finish implementing the rest of the ResultActions. (See actions.h)
- ActionDebug
- ActionDisableVenus
- ActionDisplayMessage
- ActionDissolve
- ActionDistort
- ActionFlushMouseEvents
- ActionInventory
- ActionKill
- ActionEnableMenuBar
- ActionPanTrack
- ActionPreferences
- ActionRegion
- ActionRestoreGame
- ActionRotateTo
- ActionSaveGame
- ActionSetVenus
- ActionStop
- ActionSyncSound
- ActionTTYText
- ActionUniverseMusic
- Finish implementing the rest of the Controls
- InputControl
- SaveControl
- SlotControl
- SafeControl
- FistControl
- HotMovieControl
- PaintControl
- TilterControl
- Implement inventory support
- Implement the menu
- Implement subtitles
- Implement saving preferences
- Scroll speed
- etc.
ZGI specific TODO's
- Determine why gary.scr doesn't load properly
- This is the first "room". It loads up the environment variables, the opening movie, and then the main menu
- Implement spellbook support
Other TODO's
- Make sure all image rendering is endian safe
- Look into NOT flatting all the files to root
- This would require keeping track of what room you're in so that you can use the correct parent folder
- Look at NEMESIS.ZIX and INQUIS.ZIX
- Re-order the if-then statements in scr ResultAction parsing to use the order of highest occurance (See scr_file_handling.cpp: Line 150
- Evaluate all in-engine warnings/debug messages and perhaps move them to higher debug channels (Or ZEngine specific debug channels)
- Clean out unused member functions from the Console class (See console.h)
- Convert pointer initializers to nullptr instead of 0
- Add 'true' UTF-16 support for non-english versions of the game. (See StringManager)