All Projects → simon-paris → gba.ninja

simon-paris / gba.ninja

Licence: other
A port of visualboyadvance-m to JavaScript and a custom frontend

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
assembly
5116 projects
objective c
16641 projects - #2 most used programming language
CMake
9771 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to gba.ninja

eigen-js
⚡ Eigen-js is a port of the Eigen C++ linear algebra library
Stars: ✭ 78 (+13.04%)
Mutual labels:  emscripten
webgl
http://gam0022.net/webgl/
Stars: ✭ 43 (-37.68%)
Mutual labels:  emscripten
wrenjs
The Wren Programming Language, in the browser
Stars: ✭ 28 (-59.42%)
Mutual labels:  emscripten
perl.js
emscripten build settings for perl
Stars: ✭ 31 (-55.07%)
Mutual labels:  emscripten
alia
a declarative UI library for C++
Stars: ✭ 76 (+10.14%)
Mutual labels:  emscripten
bergamot-translator
Cross platform C++ library focusing on optimized machine translation on the consumer-grade device.
Stars: ✭ 181 (+162.32%)
Mutual labels:  emscripten
Yew
Yew is a modern Rust framework for creating multi-threaded front-end web apps with WebAssembly.
Stars: ✭ 18,243 (+26339.13%)
Mutual labels:  emscripten
em-onscripter
An emscripten port of onscripter-jh
Stars: ✭ 26 (-62.32%)
Mutual labels:  emscripten
magnum-extras
Extras for the Magnum C++11/C++14 graphics engine
Stars: ✭ 26 (-62.32%)
Mutual labels:  emscripten
web-ifc
Reading and writing IFC files with Javascript, at native speeds.
Stars: ✭ 314 (+355.07%)
Mutual labels:  emscripten
bazel-emscripten
C++ to WASM or JS using Bazel and Emscripten
Stars: ✭ 40 (-42.03%)
Mutual labels:  emscripten
node-seal
Homomorphic Encryption for TypeScript or JavaScript - Microsoft SEAL
Stars: ✭ 139 (+101.45%)
Mutual labels:  emscripten
wasm-raytracer
a performance comparison of a simple raytracer in JavaScript, asm.js, WebAssembly, and GLSL
Stars: ✭ 158 (+128.99%)
Mutual labels:  emscripten
helloworld-sdl2-opengl-emscripten
Basic program that uses SDL2+OpenGL, compiling both locally and via emscripten
Stars: ✭ 71 (+2.9%)
Mutual labels:  emscripten
wasm4
Build retro games using WebAssembly for a fantasy console.
Stars: ✭ 711 (+930.43%)
Mutual labels:  emscripten
roswasm suite
Libraries for compiling C++ ROS nodes to Webassembly using Emscripten
Stars: ✭ 62 (-10.14%)
Mutual labels:  emscripten
rogue.js
JavaScript porting of original Rogue source code using Emscripten
Stars: ✭ 33 (-52.17%)
Mutual labels:  emscripten
stockfish.js
The strong open source chess engine Stockfish compiled to JavaScript and WebAssembly using Emscripten
Stars: ✭ 140 (+102.9%)
Mutual labels:  emscripten
vrEmuLcd
Character LCD emulator library (C99 engine, web front-end).
Stars: ✭ 45 (-34.78%)
Mutual labels:  emscripten
Header-Only-GL-Helpers
A collection of header files that can ease OpenGL programming
Stars: ✭ 25 (-63.77%)
Mutual labels:  emscripten

gba.ninja

This is an emscripten port of https://github.com/visualboyadvance-m/visualboyadvance-m. It's using custom bindings to get pixel/audio/input/savegame data into & out of the emulator. (as opposed to using emstripten's built in file system and sdl support).

Eventually, it should work on all browsers that support WebGL. Currently, it also requires localStorage (so Safari private browsing won't work).

Build

  1. npm install.
  2. in a separate terminal window:
    • download Emscripten from https://github.com/emscripten-core/emsdk. (Download as zip)
    • in emscripten, emsdk install latest && emsdk activate
    • (confirmed working in emsdk commit 0490c5f with sdk-1.37.1-64bit installed)
    • Run node build --opt (the --opt is production mode). This takes a while.
  3. Run npm run webpack.
  4. Open build/index.html.

(the separate terminal window is because emscripten comes bundled with a really old version of node)

TODOs

  • Fix frame drop problems
  • Fix bug where audio stops if headphones are unplugged
  • Google Drive sync for save games
  • Touch controls
  • Enable frameskip on slow devices
  • Ability to load BIOS
  • UI for loading ROMs from URLs
  • Support for roms in zip files
  • Cache roms in HTML5 FS
  • Mute button (should disable audio emulation)

VBA-M Licence

VisualBoyAdvance - Nintendo Gameboy/GameboyAdvance (TM) emulator. Copyright (C) 1999-2018 VBA & VBA-M Contributors

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or(at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].