Difference between revisions of "ZVision"

Jump to navigation Jump to search
2,455 bytes removed ,  00:26, 15 June 2015
Remove obsolete TODOs
(Remove obsolete TODOs)
(29 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{EngineDescription|
{{EngineDescription|
         name=ZVision|
         name=ZVision|
         developer=[[User:RichieSams|RichieSams]]|
         developer=[[User:RichieSams|RichieSams]], [[User:Md5|[md5]]], [[User:MarisaChan|MarisaChan]]|
         companies=[[Activision]]|
         companies=[[Activision]]|
         usedBy=[[Zork Nemesis]], [[Zork: Grand Inquisitor]]|
         usedBy=[[Zork Nemesis]], [[Zork: Grand Inquisitor]]|
         dateAdded=Not Yet|
         dateAdded=October 17, 2013|
         release=N/A|
         release=1.8.0|
}}
}}


==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]].


This engine is being added by the GSoC student [[User:RichieSams|RichieSams]] to ScummVM as part of the GSoC 2013.
This engine was added by the GSoC student [[User:RichieSams|RichieSams]] to ScummVM as part of the GSoC 2013.


The ScummVM engine uses Marisa Chan's ZVision re-implementation, which is available from [http://github.com/Marisa-Chan/Zengine http://github.com/Marisa-Chan/Zengine], as a reference.
The ScummVM engine uses Marisa Chan's ZVision re-implementation, which is available from [http://github.com/Marisa-Chan/Zengine http://github.com/Marisa-Chan/Zengine], as a reference.
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


==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.
* Get Courier Prime added to the packaged fonts, then fall back on it and FreeSerif when fonts can't be found


==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
(None at the moment)
** 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==
===Nemesis specific TODO's===
* Make sure all image rendering is endian safe
(None at the moment)
* 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)
* 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''
* 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==
==ZGI DVD TODO's==
*[https://github.com/RichieSams/scummvm/tree/zengine Current WIP for Z-engine, on a git fork from ScummVM]
* Add support for the AC3 sound in the alternate hires MPEG-2 videos of the DVD version


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

edits

Navigation menu