
JavaScript GameBoy Advance Emulator - ggalitz
http://jsemu.github.io/gba/
======
arcatek
If I may, I'd like to also link my site ([http://start9.io](http://start9.io))
which does this and also work with GB/GBC, and persist your saves online (on
top of quite a few other features). The only drawback is that we actually
require users to upload their games, for legal reasons.

We're still in beta, and it will probably improve quite a lot in the upcoming
months, but I use it myself on a daily basis.

For the record, the emulators are currently based on Emscripten versions of
the libretro cores (rather than being a full-JS emulator implementation, like
IodineGBA). I'm looking to add more consoles, and the SNES will probably be
come soon.

Should you try it, I'd love to hear your feedbacks (my contact is on my HN
profile) :)

~~~
camhenlin
Very cool, I actually run an extremely similar service
([https://pocketga.me/](https://pocketga.me/)) for NES, SNES, game boy, GBA,
and master system. I hacked up many of the emulators myself to support state
saving. It was a fun project to work on but I found that most of my users were
not interested in paying for the service due to their young age group, so I'm
only able to basically break even off the ads

~~~
detaro
What age range/distribution are your users? I'd expect something centered
around late twenties?

~~~
camhenlin
Almost entirely under 20

------
dma3
I think it's important to credit the actual emulator this runs on:
[https://github.com/taisel/IodineGBA](https://github.com/taisel/IodineGBA)

~~~
Stephn_R
Damn...how does anyone begin to reinvent the wheel like that? Was there any
documentation on how it was done?

~~~
mburns
There was a detailed writeup of a different Gameyboy Emulator in Javascript:

[http://imrannazar.com/GameBoy-Emulation-in-
JavaScript](http://imrannazar.com/GameBoy-Emulation-in-JavaScript)

------
Sephr
Definitely not legal [https://github.com/jsemu/gba/tree/gh-
pages/Binaries](https://github.com/jsemu/gba/tree/gh-pages/Binaries)

The repo owner seems to have cleared the commit history because this exact
repo was hosting these binaries back on 5/28/14\. It's amazing that Nintendo
hasn't DMCA'ed this repo for over a year.

~~~
atmosx
Why? Have you looked at todays games? Most of these are only good for us, the
kids of the 90s (born in the early 80s)... Today's kids have PS,xbox,etc. Way
more advanced game consoles...

~~~
bottled_poe
This is a ridiculous assumption. These games were never loved for their
realism.

~~~
atmosx
If you try to sell them, you'll realize that it's not. On their day most of
these game were as close to realism as it gets (on a portable device).

------
benbristow
Since this will be probably taken down pretty quickly, mirrored:

[http://directmirror.com/y4u1gpod4iot/gba-gh-
pages.zip](http://directmirror.com/y4u1gpod4iot/gba-gh-pages.zip)

[http://www.mirrorupload.net/file/YTSR6UEU/#!gba-gh-
pages.zip](http://www.mirrorupload.net/file/YTSR6UEU/#!gba-gh-pages.zip)

Might take a while to finish processing as I've only just sent the archive
(straight from GitHub's 'download from ZIP' functionality) to the mirror
distribution sites.

------
andrepd
Where does it download the games from? The fact that the games are included
throws this project into very very legally murky waters.

~~~
scrabble
Looks like they're stored in a GitHub repo.

~~~
task_queue
A DMCA takedown notice will take care of that.

------
nickysielicki
the real source:
[https://github.com/taisel/IodineGBA](https://github.com/taisel/IodineGBA)

~~~
Raphmedia
Wait, so what does OP's site does if the HTML5 emulator already exists?

~~~
nacs
OP is the one who made that emulator apparently (another comment in this
thread has details).

------
Retr0spectrum
I'm not sure it's a great idea to host the binaries, although it's unlikely
that you'll get any complaints from the publishers.

~~~
sleepychu
Am I in trouble if I fork this? [https://github.com/jsemu/gba/tree/gh-
pages/Binaries](https://github.com/jsemu/gba/tree/gh-pages/Binaries)

~~~
task_queue
Why put yourself in that position publicly? Modify the code base and exclude
the copyrighted content.

------
marktangotango
Writng gbc games in smallc and z80 assembler was one of the funnest, most
formative things i did in my early years. Would be ultra cool to have rom
hacking tools on the page with the emu, big fat load and go button.

------
fcambus
For an (hopefully) complete list of emulators written in JavaScript, you can
check : [https://github.com/fcambus/jsemu](https://github.com/fcambus/jsemu)

~~~
s-macke
At least you forgot one: Angel

[http://riscv.org/angel/](http://riscv.org/angel/)

[https://github.com/riscv/riscv-angel](https://github.com/riscv/riscv-angel)

~~~
fcambus
Nice, I was hoping someone would find something missing :) Thanks for
mentioning this, just updated the list.

PS: Great work on jor1k!

~~~
s-macke
Thanks.

I have made my own small list of emulators a while ago:
[https://github.com/s-macke/jor1k/wiki/Similar-emulators-
writ...](https://github.com/s-macke/jor1k/wiki/Similar-emulators-written-in-
Javascript)

It looks like you covered them all (except maybe
[http://schweigi.github.io/assembler-
simulator/](http://schweigi.github.io/assembler-simulator/) )

But it might be, that you want to extend this list a little bit to the
emulation of famous gaming virtual machines.

ScummVM:
[http://clb.demon.fi/html5scummvm/](http://clb.demon.fi/html5scummvm/)

Z-Machine: [http://z-machine.lilawelt.de/](http://z-machine.lilawelt.de/)

------
keehun
This is amazing. Apart from the distorted sound (pitch), the games loaded
instantly on Firefox and could play real-time games (Bomberman) without any
lag! JS has come a long way (and browser support).

------
EvenThisAcronym
I highly recommend
[http://jsemu.github.io/gba/launcher.html#fire_emblem](http://jsemu.github.io/gba/launcher.html#fire_emblem)

------
kenrick95
Woah, this is great! Probably need a screen informing the keybindings.

~~~
anonova
Translated keys from
[https://github.com/jsemu/gba/blob/a09294c8a15e1fe46c05f8dcf3...](https://github.com/jsemu/gba/blob/a09294c8a15e1fe46c05f8dcf3bb3f23ae423336/user_scripts/IodineGBAJoyPadGlueCode.js)

right: right arrow

left: left arrow

up: up arrow

down: down arrow

a: X, J

b: Z, Q, Y

select: shift

start: enter

r: 2

l: 1

lower volume: D

raise volume: R

increase speed: 3

decrease speed: 4

------
mrtbld
Link to code: [https://github.com/jsemu/gba](https://github.com/jsemu/gba)

~~~
josemwarrior
thanks! just i was looking for..

------
sgt
Very cool - love it!

I started playing Tetris Worlds though, and about 5 minutes in it started
slowing down considerably, eating battery on my Macbook Pro Retina, and the
fans came on. It improved after a while but slowed down a bit later.

Is this sort of thing a JavaScript problem i.e. emulating is just hard to do
using JS? Or is it a bug in this emulator?

~~~
Narishma
It's probably a Javascript thing as other emulators written in JS are the
same. It's using 100% CPU on my laptop while a native emulator only uses about
10%.

------
bottled_poe
Now, if only it was mobile friendly... that would be amazing.

------
moron4hire
This is pretty awesome. Mind if I hack in gamepad support?

------
MisterWebz
No save functionality?

------
fibo
I would like to use a gamepad, which method you recommend?

------
thatcat
I wonder if you can you run these locally, offline?

------
travjones
This is tight as fuck! Wow. Nice work!

