mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-13 21:31:53 +00:00
Fix remaining Codacy issues and improve README readability
This commit is contained in:
parent
18b56d6aed
commit
93e1c779b6
@ -3,9 +3,9 @@ The [Emscripten](https://emscripten.org/) target provides a script to build Scum
|
||||
> Emscripten is an LLVM/Clang-based compiler that compiles C and C++ source code to WebAssembly for execution in web browsers.
|
||||
|
||||
## Current State
|
||||
* All engines compile (though I didn't test all of them), including ResidualVM with WebGL acceleration
|
||||
* Audio works and 3rd-party libraries for sound and video decoding are integrated
|
||||
* Proof of concept integration with [BrowserFS](https://github.com/jvilk/browserfs) to download game data lazily when required and to support local savegames
|
||||
* All engines compile (though I didn't test all of them), including ResidualVM with WebGL acceleration and shaders.
|
||||
* Audio works and 3rd-party libraries for sound and video decoding are integrated.
|
||||
* Proof of concept integration with [BrowserFS](https://github.com/jvilk/browserfs) to download game data lazily when required and to support local savegames.
|
||||
|
||||
## How to build for Webassembly
|
||||
This folder contains a script to help build scummvm with Emscripten, it automatically downloads the correct emsdk version and also takes care of bundling the data and setting up a few demo games.
|
||||
@ -23,7 +23,7 @@ It accepts a single parameter with 7 valid commands:
|
||||
* `data`: Download some demos and set up all data require for the demo page
|
||||
* `dist`: Copy all files into a single build-emscripten folder to bring it all together
|
||||
* `all`: Run all of the above commands
|
||||
* `clean`: Remove all object files, built libs, bundled data etc.
|
||||
* `clean`: Remove all object files, built libs, bundled data etc
|
||||
|
||||
Independent of the command executed, the script sets up a pre-defined emsdk environment in the subfolder `./dists/emscripten/build.sh`
|
||||
|
||||
@ -31,35 +31,36 @@ Independent of the command executed, the script sets up a pre-defined emsdk envi
|
||||
Some ideas for possible improvements:
|
||||
|
||||
### Emscripten Optimizations
|
||||
* Optimize asyncify behaviour (we only have SDL functions calling wait currently), e.g with https://wiki.libsdl.org/SDL_HINT_EMSCRIPTEN_ASYNCIFY
|
||||
* Specify a `ASYNCIFY_ONLY` list to to make asyncify only instrument functions in the call path as described in https://emscripten.org/docs/porting/asyncify.html
|
||||
* Optimize asyncify behaviour (we only have SDL functions calling wait currently), e.g with [SDL_HINT_EMSCRIPTEN_ASYNCIFY](https://wiki.libsdl.org/SDL_HINT_EMSCRIPTEN_ASYNCIFY).
|
||||
* Specify a `ASYNCIFY_ONLY` list to to make asyncify only instrument functions in the call path as described in [emscripten.org: Asyncify](https://emscripten.org/docs/porting/asyncify.html)
|
||||
* Don't use asyncify but rewrite main loop to improve performance
|
||||
* Shrink code size or execution speed with `-Os` or `-Oz` ( https://emscripten.org/docs/tools_reference/emcc.html#emcc-compiler-optimization-options ) )
|
||||
* Shrink code size or execution speed with `-Os` or `-Oz` [emcc arguments](https://emscripten.org/docs/tools_reference/emcc.html#emcc-compiler-optimization-options).
|
||||
|
||||
### Storage Integration
|
||||
* BrowserFS seems abandoned and never did a stable 2.0.0 release. Maybe there's a better way to handle storage?
|
||||
|
||||
* File loading improvements
|
||||
* Load assets with HTTP Range request headers
|
||||
* Load assets asynchronously (not blocking) via a worker
|
||||
* File loading improvements:
|
||||
* Load assets with HTTP Range request headers.
|
||||
* Load assets asynchronously (not blocking) via a worker.
|
||||
|
||||
* Add support for save games (and games data?) on personal cloud storage (Dropbox, Google Drive)
|
||||
* Add support for save games (and game data?) on personal cloud storage (Dropbox, Google Drive).
|
||||
|
||||
### UI Integration
|
||||
* Support resizing the canvas in a responsive way (currently broken)
|
||||
* Responsiveness: Adjust the canvas size when resizing the browser.
|
||||
|
||||
* Fix scaling issues / fullscreen not working
|
||||
* Bug: Fullscreen mode doesn't work.
|
||||
|
||||
* Build a nice webpage around the canvas
|
||||
* Adapt page padding/background color to theme (black when in game)
|
||||
* Build a nice webpage around the canvas.
|
||||
* Allow hiding of console, replace buttons/checkboxes from default emscripten template.
|
||||
* Bonus: Adapt page padding/background color to theme (black when in game)
|
||||
|
||||
* ScummVM shouldn't be able to "close" (there's no concept for that
|
||||
* Remove "exit" buttons from all menus
|
||||
* Change any programmatic "exits" to cause a restart of Scummvm (or refresh of the page)
|
||||
* ScummVM shouldn't be able to "close" (there's no concept for that:
|
||||
* Remove "exit" buttons from all menus.
|
||||
* Change any programmatic "exits" to cause a restart of Scummvm (or refresh of the page).
|
||||
|
||||
* Pass CLI parameters for ScummVM via URL parameters to allow for "deep-linking" to a specific game
|
||||
* Pass CLI parameters for ScummVM via URL parameters to allow for "deep-linking" to a specific game.
|
||||
|
||||
### Other Features + Bugs
|
||||
* Bug: vorbis support is broken - parts seems to have been patched out so -lvorbisfile triggers an error during configure ( https://github.com/emscripten-core/emscripten/pull/9849 doesn't seem to fix this )
|
||||
* Bug: Going back to main menu from Grim (and other Residual Games?) messes up the render context and the UI is unusable
|
||||
* Todo: Check all disabled features (e.g; TiMidity++) and see if they could be enabled (some might never make sense, e.g. anything requiring MIDI Hardware, Update Checking etc. )
|
||||
### Other Bugs + Tasks
|
||||
* Bug: Vorbis support is broken - parts seems to have been patched out so `-lvorbisfile` triggers an error during configure (and [emscripten-core/emscripten#9849](https://github.com/emscripten-core/emscripten/pull/9849) doesn't seem to fix this).
|
||||
* Bug: Going back to main menu from Grim (and other Residual Games?) messes up the render context and the UI is unusable.
|
||||
* Check all disabled features (e.g. TiMidity++) and see if they could be enabled (some might never make sense, e.g. anything requiring MIDI Hardware, Update Checking etc).
|
@ -1,2 +1,5 @@
|
||||
// Workaround for https://github.com/emscripten-core/emscripten/pull/9803 which results in mouse events not working anymore after context switches
|
||||
JSEvents.removeAllHandlersOnTarget = function(){}
|
||||
// Workaround for https://github.com/emscripten-core/emscripten/pull/9803
|
||||
// which results in mouse events not working anymore after context switches
|
||||
// (i.e. when launching a game)
|
||||
/*global JSEvents*/
|
||||
JSEvents.removeAllHandlersOnTarget = function(){};
|
@ -1,7 +1,5 @@
|
||||
Module['arguments'] = [];
|
||||
//Module['arguments'].push('--debuglevel=5');
|
||||
Module['arguments'].push('--config=/data/local/scummvm.ini');
|
||||
//Module['arguments'].push('--add');
|
||||
//Module['arguments'].push('--recursive');
|
||||
//Module['arguments'].push('--path=/data/games');
|
||||
/*global Module*/
|
||||
Module["arguments"] = [];
|
||||
Module["arguments"].push("--debuglevel=5");
|
||||
Module["arguments"].push("--config=/data/local/scummvm.ini");
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user