• Stars
    star
    251
  • Rank 161,260 (Top 4 %)
  • Language
    JavaScript
  • License
    GNU Affero Genera...
  • Created over 6 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Gameboy / Gameboy Color Emulator PWA built with Preact. โš›๏ธ Powered by wasmBoy. ๐ŸŽฎThemed with VaporWave. ๐ŸŒด๐Ÿฌ

VaporBoy

Build Status License Badge GitHub package version

An A E S T H E T I C GB / GBC Emulator PWA. Powered by wasmBoy.

Talk given at WebAssembly SF March 28th, 2019

Vapor Boy Walk through gif

Table of Contents

Features

  • Emulates the Gameboy / Gameboy Color using wasmBoy, for Web Assembly awesome-ness. ๐ŸŽฎ๐Ÿ‘พ๐Ÿ•น๏ธ

  • Built as a Progressive Web App(PWA), using Preact. โš›๏ธ

  • Feel all of the VaporWave N O S T A L G I A, and appreciate the A E S T H E T I C of aesthetic-css. ๐Ÿ“ผ๐Ÿ’œ

  • Upload your ROMs from anywhere. Local Device, Pre-loaded Open Source ROMS, and even cloud services! ๐Ÿบโ˜๏ธ

  • Unique layouts for portrait (GBC), landscape (GBA), and desktop (SGB). ๐Ÿ“ฑ๐Ÿ–ฅ๏ธ

  • Keyboard, touch, and gamepad input support using responsive gamepad. โŒจ๏ธ ๐ŸŽฎ

  • Supports all major browsers (Chrome, Firefox, Safari). Meaning, you can play gameboy on your iPhone! ๐ŸŒ

  • Installable using Desktop PWA Support and Mobile Browser's Add to Homescreen. ๐Ÿ–ฅ๏ธ๐Ÿ“ฑ

  • Have complete control of your emulation and performance with configurable settings and save states. โš™๏ธ๐Ÿ’พ

  • Experience the gameboy like you never have before, with Video/Audio altering VaporBoy effects. ๐ŸŒˆ๐Ÿ”ˆ๐Ÿ“น

Example Gifs & Screenshots

Desktop Layout Land Scape Layout Desktop Control Panel Land Scape Settings

Portrait Layout Portrait ROM source Selector Portrait Home brew ROMs Portrait Effects Portrait Tobu Tobu Girl

Lighthouse Score

Lighthouse Score Screenshot. Approximately 91

Contributing

Feel free to fork and submit PRs! Any help is much appreciated, and would be a ton of fun! I would appreciate opening an issue, or replying to an already open issue to express intent of trying to solve the issue, and we discuss.

Installation

Just your standard node app. Install Node with nvm, git clone the project, and npm install, and you should be good to go!

Npm Scripts & CLI Commands

# Starts the preact development server.
npm run start

# Same as `npm run start`
npm run dev

# Runs all precommit hooks
npm run precommit

# Runs the prettier linter, and automagically fixes all linting errors
npm run prettier:fix

# Builds a production version of the PWA
npm run preact:build

# Watches for changes, and continually builds/servers a production version of the PWA
npm run preact:build:watch

# Serves the locally built PWA
npm run preact:serve

# Serves the preact development server, called by `npm run start`
npm run preact:dev

# Start the cordova browser platform for development
npm run cordova:serve

# Serves the cordova (mobile) development server
npm run cordova:dev

# Start the electron server
npm run electron:serve

# Start the electron development server
npm run electron:dev

Special Thanks

Other Notes & Links

Privacy

Analytics is used on this application simply for performance monitoring, and tracking popularity of the applications. The following events are sent, with nothing more than the event name. The analytics provider used is Google Analytics.

The Events sent are:

  • Save State Created
  • Homebrew ROM Loaded
  • My Collection ROM Loaded
  • Scraper opened
  • Manual reload
  • Settings Applied
  • Install opened
  • Scraper skipped
  • Scraper Search
  • About Opened
  • Scaper Manual Input
  • Settings reset
  • Google Drive ROM Load

More Repositories

1

wasmboy

Game Boy / Game Boy Color Emulator Library, ๐ŸŽฎwritten for WebAssembly using AssemblyScript. ๐Ÿš€Demos built with Preact and Svelte. โš›๏ธ
WebAssembly
1,388
star
2

wasm-by-example

Wasm By Example is a website with a set of hands-on introduction examples and tutorials for WebAssembly (Wasm)
JavaScript
489
star
3

live-stream-radio

24/7 live stream video radio station CLI / API ๐Ÿ“น ๐Ÿ“ป
JavaScript
238
star
4

as-bind

Isomorphic library to handle passing high-level data structures between AssemblyScript and JavaScript ๐Ÿค๐Ÿš€
WebAssembly
237
star
5

picoDeploy

Deploy Pico-8 Carts as Standalone Applications on Desktop ๐Ÿ–ฅ๏ธ(Electron) and Mobile ๐Ÿ“ฑ(Ionic) ๐Ÿ“ฆ๐Ÿ‘พ
TypeScript
218
star
6

made-with-webassembly

A showcase of awesome production applications, side projects, and use cases made with WebAssembly (Wasm). ๐Ÿ‘ท
JavaScript
207
star
7

aesthetic-css

A vaporwave CSS framework ๐ŸŒด๐Ÿฌ
CSS
197
star
8

wasm-matrix

A Matrix effect in your terminal using AssemblyScript ๐Ÿš€ and WASI ๐Ÿงฉ . Deployed to WAPM ๐Ÿ“ฆ .
TypeScript
70
star
9

responsive-gamepad

Handle Keyboard, Gamepad, and Touch Controls under a single API ๐Ÿ•น๏ธ
JavaScript
44
star
10

dotFiles

A repo containing all the cool stuff that makes my ~ feel like $HOME. ๐Ÿ 
Shell
14
star
11

pocketChipScripts

Some nice scripts to ease the process of pocket chip-ing
Shell
12
star
12

wasm-containerization-talk

Examples featured in my "The Legend of WebAssembly, and the Missing Link" talk. Mostly trying to show off how we can use Wasm and Wasi to containerize applications.
C
8
star
13

Stats-Monitor-Widget

A conky like system monitor widget for android
Java
6
star
14

as-date

Staging AssemblyScript Date implementation by @LiaoPeng , as an installable AssemblyScript library
TypeScript
6
star
15

simple-pastebin

A Chrome Extension that is literally just a <textarea>, that saves to localStorage. Paste stuff, and it automatically saves as you paste/type! ๐Ÿ“‹
JavaScript
6
star
16

sass-bem-mixins

importable Sass BEM mixins
SCSS
4
star
17

assemblyscript-website

JavaScript
4
star
18

radical-rumble-robots

A fighting game for the GameBoy
C
4
star
19

Decisions

A simple decision making app for android
Java
4
star
20

wasi-syscall-playground

A repo for little wasi wat demos I am making for syscalls I am hoping that will exist one day ๐Ÿ˜‚
WebAssembly
3
star
21

as-bind-hello-world

A hello world for as-bind.
WebAssembly
3
star
22

wasm-playground

A Wasm playground with preact as a shell, and assemblyscript as the wasm build tool
JavaScript
3
star
23

crunchkey-2

It's Crunchkey, but 2. Built with AssemblyScript (WebAssembly)!
TypeScript
3
star
24

vagrantBox

Vagrant files to make my life ALOT easier, it will set up virtual dev environments for all of my codes
Shell
3
star
25

shared-gb-js

Shared JS code between my Gameboy Projects ๐ŸŽฎ
JavaScript
2
star
26

Crunchkey-Web

A website for the instant calculator chrome plugin, Made this for a class when I first learned some webdev
HTML
2
star
27

link-drops

A collection of your links that you find across the internet, made with the help of @julianpoy
CSS
2
star
28

TxtNote

A simple .txt note taking app for android
Java
2
star
29

chipGo

Another Chip-8 Emulator Written in Go
Go
2
star
30

CrunchKey

Chrome plugin to calculate strings realtime
JavaScript
2
star
31

StarSamurai

Project for BeachHacks 2016, 2d action platformer game. Built in Unity
C#
2
star
32

pixel-pages

Simple landing pages meant to send page view and conversion events to tracking pixels
JavaScript
1
star
33

devops

My devops setup and tools for my servers
HTML
1
star
34

PersonalSite

My old website to showcase my work and portfolio. Made in AngularJS
CSS
1
star
35

link-drops-chrome-extension

The Official Chrome Extension for linkDrops!
JavaScript
1
star
36

as-regex-wasi-demo

A demo of trying assemblyscript-regex in a WASI context
WebAssembly
1
star
37

CECS343JavaResturant

Resturant group project for CECS 343
Java
1
star
38

piStreamRadio-frontend

A frontend web client for piStreamRadio
HTML
1
star
39

pubx

Really simple pub/sub state management ๐Ÿ“‹
JavaScript
1
star
40

CECS-476-SysAdmin

Homeworks for 476
Python
1
star
41

Feather

A Media/Video Playing app for android
Java
1
star
42

as-echo

A very simple `echo` implementation in AssemblyScript. ๐Ÿš€
WebAssembly
1
star
43

small-rust-wasm-hello-world

Just a super small rust wasm hello world. Wanted to see how big it would be in bytes :)
Rust
1
star
44

working-group

A repo for discussions, goals, roadmaps, assets, and other things related to the AssemblyScript project.
1
star
45

Transplant-Client

A beautiful Electron SFTP/FTP Client
JavaScript
1
star
46

amp-mutations-benchmark

Tool to benchmark mutation operations on an amp page
JavaScript
1
star
47

personal-site-amp

My personal website, made in AMP
HTML
1
star
48

wasmer-js-playground

Playground for testing wasmer-js
JavaScript
1
star
49

dotRetropie

Config and Dotfiles for retropie
Squirrel
1
star
50

CrunchKey-Ionic

Crunchkey Created in Ionic, for Web and Mobile
CSS
1
star
51

wasmboy-plugin-hqx

Plugin for WasmBoy to add support for hqx upscaling. Built with Rust for WebAssembly.
JavaScript
1
star