Difference between revisions of "ZVision"

Jump to navigation Jump to search
1,977 bytes removed ,  22:30, 3 December 2014
Update the status of ZVision, after the integration of marisa-chan's code
(adding date that it was added to the ScummVM code tree)
(Update the status of ZVision, after the integration of marisa-chan's code)
Line 8: Line 8:
}}
}}


==About==
The ZVision was the engine used by [[Activision]] in [[Zork Nemesis]] and [[Zork: Grand Inquisitor]].
The ZVision was the engine used by [[Activision]] in [[Zork Nemesis]] and [[Zork: Grand Inquisitor]].


Line 16: Line 17:
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 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 [http://en.wikipedia.org/wiki/Z-machine Z-machine] which is the original Virtual Machine used for the original Zork <b>text</b> adventure games.
It should also not be confused with the [http://en.wikipedia.org/wiki/Z-machine Z-machine] which is the original Virtual Machine used for the original Zork <b>text</b> adventure games.
==Status==
Both Zork: Nemesis and Zork: Grand Inquisitor are completable, with minor bugs and very small glitches


==Immediate TODO's==
==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
* Add a dirty rectangling system for RenderManager AlphaEntries so we're not rendering them to the backbuffer every frame
* Add graceful failure for when .str isn't parsed correctly.
* Add graceful failure for when .str isn't parsed correctly.
* Get Courier Prime and FreeSerif added to the packaged fonts, then fall back on them when fonts can't be found
* Get Courier Prime and FreeSerif added to the packaged fonts, then fall back on them when fonts can't be found
* Figure out why animations aren't working any more


==List of TODO's for ZVision to be playable==
==List of TODO's for ZVision 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 [https://github.com/RichieSams/scummvm/blob/zengine/engines/zvision/actions.h 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===
===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
* Add a different resolution for ZGI
* Check for the difference between the CD version of ZGI and the DVD version
* Check for the difference between the CD version of ZGI and the DVD version
** Potentially higher resolution (Window and/or videos)
** Potentially higher resolution (Window and/or videos)
Line 81: Line 35:
==Other TODO's==
==Other TODO's==
* Make sure all image rendering is endian safe
* 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 [https://github.com/RichieSams/scummvm/blob/zengine/engines/zvision/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 ZVision specific debug channels)
* Evaluate all in-engine warnings/debug messages and perhaps move them to higher debug channels (Or ZVision specific debug channels)
* Clean out unused member functions from the Console class (See [https://github.com/RichieSams/scummvm/blob/zengine/engines/zvision/console.h console.h])
* Clean out unused member functions from the Console class (See [https://github.com/RichieSams/scummvm/blob/zengine/engines/zvision/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/zvision/string_manager.cpp#L214 StringManager])
* Add 'true' UTF-16 support for non-english versions of the game. (See [https://github.com/RichieSams/scummvm/blob/zengine/engines/zvision/string_manager.cpp#L214 StringManager])
==Current Progress==
*[https://github.com/RichieSams/scummvm/tree/zengine Current WIP for Z-engine, on a git fork from ScummVM]


[[Category:Engines]]
[[Category:Engines]]
1,489

edits

Navigation menu