A JavaScript Game Boy and Game Boy Color emulator for iOS, based on the GameBoy-Online emulator core.
If you just want to play Game Play, you can find it online at brandosha.github.io/gameplay.
Check out the project, update the submodules, install the brew-based dependencies, and install the additional Python dependencies:
git clone git@github.com:jbmorley/gameplay.git
cd gameplay
git submodule update --init --recursive
cat brew.txt | xargs brew install
cd scripts
pipenv install
cat ubuntu.txt | xargs sudo apt install
cd scripts
pipenv install
It may be necessary to install pipenv as follows:
pip3 install pipenv
Game Play is built using a custom Python build script which inlines and minifies HTML, CSS and JavaScript, and binds in the settings for a given deployment.
For example, building the release version of Game Play as hosted on brandosha.github.io/gameplay can be done by running the following command from the root of the repository:
scripts/build build settings/release.json
The build will be created in the build
directory, and a corresponding *.tar.gz will be creatd in archives
, tagged with the git sha and settings name (e.g., build-168bd9d0d8d309a1efb1983bd61ec34ff22951b5-release.tar.gz
).
- Migrate to service worker from application cache
- Fix iPadOS user agent issue
- Added game controller support
- Use different workaround for closing IndexedDB issue (see Version 3.2.1)
- Fix issue that caused the restart button to load the most recent snapshot instead of restarting
- Fix audio issue with closing and reopening the app caused by autoplay restriction
- Update snapshot feature to store a snapshot for each game
- Implement workaround for issue caused by iOS closing indexedDB connections when the app is sent to background (issue #5)
- Add support for saving a snapshot automatically when users close the app
- Add button for clearing all save data to help fix issues caused in upstream merge
- Update menus to fit full screen iPhones
- Add support for importing and exporting .sav files
- Fix issue with Google Drive sync caused when merging upstream
- Fix issue with loading game states
- Fix authorization issues when handling game states
- Fix issue with dismissing game menu when offline
- Remove options for sending data to inseven
- Fix upload time issues by loading each save into its own file
- Add support for saving game states to Google Drive
- Add support for saving game states with Siri Shortcuts
- Fix audio playback on iOS 11.
- Updating Google Drive authentication.
- Improving the first run messaging.
- Fixing the icon on the sign in page.
- Fixing some crashes.
- Re-enable crash reporting.
- Bug fixes.
- Fixing a small bug in artwork lookup.
- Minor improvements to logging.
- Adding a mechanism to email logs.
- New improved game library.
- Catching up to upstream GameBoy-Online.
- Some UI improvements.
- Don't animate the console when restoring games.
- Temporarily disabling button animations to improve audio performance.
- New in-game menu.
- Menu option for resetting the current game.
- Menu option for Zelda fans: A + B + Select + Start.
- Support for diagonal directions using the d-pad.
- Improved scrolling in the game library.
- Setting for console color.
- Work-around for audio playback issues on iPhone 6.
- Adding support for different emulation speeds.
- Adding scrolling to the settings dialog on small screens.
- Adding the version to the settings dialog.
- Moving the account sign out and 'Say Thanks' into a new settings dialog.
- Adding the option to disable sound; use this to listen to your own music!
- Fixing early Google Drive session expiry.
- Minor UI tweaks.
- Show release notes when informing users about updates.
- Only display errors if no update is available.
- Improving guards against loading corrupt ROMs.
- Correcting the characters used on the d-pad and in the 'Say Thanks' link on iOS 8.3.
- Adding the application version, screen size and the user agent string into the logs.
- Improved logging.
- Better error handling of missing ROMs.
- Improving information available in crash log emails.
- Fixing some bugs which resulted in an attmept to play and save ROMs that had failed to download.
- Introduced a recovery mechanism for the above scenario.
- Improved debugging tools.
- Layout support for iPhone 4 and 4S.
- Changing the default error handler to ignore errors from cross-origin scripts.
- Fixed crash when inspecting Google Drive files with no extension.
- Preventing application from running if the user cancels database creation.
- Fixed crash when Google Drive returned an empty response.
- Fixed crash due to incorrectly named logging call.
- Initial release of Game Play.
- Initial release of Game Play.
Many thanks to:
- Grant Galitz for the GameBoy-Online emulator and core.
- Pedro Ladaria for writing the JSGB core which served as inspiration for the first version of Game Play.
- David McLeod for graphical inspiration on Dribbble and for letting me know about MicrogrammaD-MediExte.
- Paul Ledger for suggesting the name 'Game Play'.
- Pavlos Vinieratos for help and suggestions testing early builds.
- Game Boy and Game Boy Color are trademarks of Nintendo Co., Ltd.. All rights reserved.
- Downloading copied ROMs is illegal: only use images you have created from ROMs you own yourself.
- InSeven Limited is an independent software company and is in no way affiliated with Nintendo Co., Ltd..
Game Play and its dependencies are licensed under the MIT license. See LICENSE for more details.
Game Play includes the following third party sources:
- jQuery - Copyright (C) 2013 jQuery Foundation and other contributors
- GameBoy-Online - Copyright (C) 2010-2016 Grant Galitz