Difference between revisions of "Freescape"

Jump to navigation Jump to search
370 bytes added ,  19:21, 16 November 2023
m
(8 intermediate revisions by one other user not shown)
Line 13: Line 13:
== ScummVM reimplementation ==
== ScummVM reimplementation ==


Our freescape reimplementation aims to emulate the original one, with the following improvements:  
Our freescape reimplementation aims to reimplement the original one, with the following improvements:  


* Two renderers available: TinyGL using software in their original resolution (320x200) and OpenGL in arbitrary resolution and with anti-aliasing support (up to 16X).
* Three renderers available: TinyGL using software in their original resolution (320x200) and OpenGL in arbitrary resolution (with and without shaders).
{| class="wikitable"
{| class="wikitable"
|+Driller in different renderers: OpenGL, TinyGL, and the original game in Dosbox
|+Driller in different renderers: OpenGL, TinyGL, and the original game in Dosbox
Line 28: Line 28:
* Unified controls: Different releases featured different type of inputs and controls. ScummVM implementation unified them.
* Unified controls: Different releases featured different type of inputs and controls. ScummVM implementation unified them.
* Faster framerate. The original games run at 10fps (or less) while our implementation aims to have around 60fps or more. In theory, this should not affect the gameplay but this is still an area of research.
* Faster framerate. The original games run at 10fps (or less) while our implementation aims to have around 60fps or more. In theory, this should not affect the gameplay but this is still an area of research.
* More precise collision resolution to avoid artifacts and bugs.
* Quick save/load shortcuts
* Fixes for original [[Freescape#Bugs| bugs]].
* Fixes for original [[Freescape#Bugs| bugs]].


Optional features:
Optional features:


* Support for alternative controls (e.g. WASD keys). This is an upcoming feature.  
* Support for alternative controls (e.g. WASD keys or touchpad controls in mobile). This is an upcoming feature.  
* Support for high-quality pre-recorded sounds: the DOS releases uses PC speaker sounds, which will not sound exactly the same if they are emulated, so we included pre-recorded version from real hardware. The same will be available for other releases which do not feature sample sounds (C64, ZX Spectrum and AmstradCPC).
* Support for high-quality pre-recorded sounds: the DOS releases uses PC speaker sounds, which will not sound exactly the same if they are emulated, so we included pre-recorded version from real hardware. The same will be available for other releases which do not feature sample sounds (C64, ZX Spectrum and AmstradCPC).
* Restored music from different releases: most of [http://vgmpf.com/Wiki/index.php/Freescape_games the Freescape game releases do not feature any music at all] (e.g. the DOS releases). Our implementation will allow, if the user owns more than one release, to replay the music from one release using other one. It will also allow to include restored music in the future.
* Restored music from different releases: most of [http://vgmpf.com/Wiki/index.php/Freescape_games the Freescape game releases do not feature any music at all] (e.g. the DOS releases). Our implementation will allow, if the user owns more than one release, to replay the music from one release using other one. It will also allow to include restored music in the future.
Line 39: Line 41:
== How to switch different renderers==
== How to switch different renderers==


The most prominent feature of the ScummVM reimplementation is the use of different renderers such as TinyGL or OpenGL. These can be selected changing the option in "Game 3D Renderer" either in the "Global Options..." (for all games) or the "Game Options.." for the Freescape games. So far, the available implementations are "OpenGL" or "Software". By default, the game will render in Software mode.
The most prominent feature of the ScummVM reimplementation is the use of different renderers such as TinyGL or OpenGL. These can be selected changing the option in "Game 3D Renderer" either in the "Global Options..." (for all games) or the "Game Options.." for the Freescape games. [[File:Scummvm-00000.png|center|475x475px]]
[[File:Scummvm-00000.png|center|475x475px]]


==Roadmap==
==Roadmap==
Line 48: Line 49:
1. Driller DOS (EGA), Amiga and AtariST releases: Done.
1. Driller DOS (EGA), Amiga and AtariST releases: Done.


2. Additional Driller releases: DOS (CGA, Tandy, Hercules), C64, AmstradCPC and ZX Spectrum: Done, except for the C64 versions which has partial support.
2. Additional Driller releases: DOS (CGA), Amstrad CPC and ZX Spectrum: Done.


3. Dark Side (EGA), Amiga and AtariST releases: In progress.
3. Dark Side demos (DOS and ZX Spectrum): Done


4. Additional Dark side releases: DOS (CGA, Tandy, Hercules), C64, AmstradCPC and ZX Spectrum: Done, except for the C64 versions which has partial support.
4. Dark Side (EGA), Amstrad CPC, ZX Spectrum, Amiga and AtariST releases: In progress.


5. Total Eclipse / Total Eclipse II
5. Total Eclipse / Total Eclipse II
Line 61: Line 62:


8. 3D Construction Kit 2.0 demo game and other games
8. 3D Construction Kit 2.0 demo game and other games
Support for C64, Tandy and Hercules for all the games will be added later.


Re-implementing the 3D Construction Kit itself (the program used to create games) is outside the scope of this project. ScummVM will only allow to play games already released, not create new ones.
Re-implementing the 3D Construction Kit itself (the program used to create games) is outside the scope of this project. ScummVM will only allow to play games already released, not create new ones.
Line 78: Line 81:


* Chris Allen for providing valuable information and code for reproducing sound effects. He also provided high-definition recorded versions of emulated Driller sounds which are used by this engine.
* Chris Allen for providing valuable information and code for reproducing sound effects. He also provided high-definition recorded versions of emulated Driller sounds which are used by this engine.
* Franck "hitchhikr" Charlet for disassembling and documenting Driller for Amiga: https://github.com/hitchhikr/driller (2020)
* Santiago Ontañón for disassembling, investigate and annotate "Castle Master II: The Crypt" for ZX Spectrum: https://github.com/santiontanon/castlemaster2-disassembly (2023)
* Farmboy0 for all the valuable discussion and example code to parse internal Freescape data structure: https://gitlab.com/farmboy0/freescapevr (2023)


==Bugs==
==Bugs==

Navigation menu