Git Product home page Git Product logo

gameboy-online's People

Contributors

jbmorley avatar taisel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gameboy-online's Issues

createScriptProcessor() is deprecated

Hi,

XAudioServer.js is using ScriptProcessorNode which is deprecated in favor of AudioWorkletNode, so this should be changed to prevent issues with audio in the future.

I've tried something but was completely unable to get any sound. ๐Ÿ˜”

Thanks.

Allow easy packaging of a single ROM

It'd be awesome if it were easy to bundle a specific ROM with this emulator, set configuration defaults, and disable the menu.

For example, if I made a Game Boy game, I could package it with this emulator and upload it to itch.io, or host it on my own website or on GitHub Pages, to make it playable in the browser.

I envision this as a few new settings in manifest.webapp:

  • Configuration defaults for all settings (nice to have anyway)
  • Whether the menu should be displayed or not (if I set defaults, I don't necessarily want to confuse players with the menu)
  • The file name of a ROM; if set, and the file exists, the emulator runs that ROM directly after boot

Errors while trying to save.

I've been making a project based of your amazing work. But just recently when I uploaded it to my server ( and tried playing/auto saving etc...) I quit and reopened it. But my save was gone and I got the following errors. If you could tell me why this is happening it would be appreciated. Thanks

Errors.
Could not open the SRAM of the saved emulation state.
SRAM RESOLVED
Could not open the RTC data of the saved emulation state.

Cloning Pokemon?

Was told to ask here, I have pokemon crystal and had the cloning timing down pat. Is there a way to clone on this emulator?

Rewrite

First of all love the project but it needs a huge rewrite and I'd love to help out with that by forking and sending back a pull request. I could do the rewrite in week or less, maybe today but I don't want to underestimate it. The only reason why I haven't done so already is because many parts of the code is confusing and it'd be a huge help to have someone I could ask questions to so maybe a slack or hipchat room or for the project.

Some other questions I have is the "js/other" folder. It appears to be a combination of convenient, polyfill, and dependent libraries and methods so I'd want to sort them out better.

What I envision is this setup:

  • Make the project into a NodeJS project which unlocks the rest of the features noted here
  • Convert the javascript files to ES6/ES7 through babel and distribute them into separate modules, one module per class to keep things very nice and neat. Generator and async functions may even come in handy and using OOP programming patterns can replace a lot of functional patterns I'm seeing (This will also allow awesome extensions, features, support, and more to be added effortlessly so I'm really excited)
  • Have complete JSDoc and regular comments throughout, this can even allow auto-online documentation to be generated
  • Separate libraries the project depends on from polyfills for unsupported browser features and convenient methods like cout
  • Have 3 build targets, with more capable of being added later, the ones I'd immediately be interested now is Electron for native Desktop apps across all platforms, Phonegap with Crosswalk for native phone apps across all platforms, and HTML5 for anything else (Other build targets later on if desired is Google Chrome Store App or Extension if desired)
  • Have testing through Jasmine or some other test suite
  • Use Browserify or Webpack to convert CommonJS Node Project and node dependencies to something the browser can use
  • Separation of core and interface
  • Re factored README explaining the project, how to use, how to develop, how to contribute, etc etc

Now the interface page around the emulator can use a huge up-lift:

  • stylus instead of css (Since we'd already be compiling js with Babel)
  • libraries like jQuery for nice interactivity
  • CSS3 with progressive degradation to CSS2 for older browsers allows for crisp and nice presentation and interface

This all sounds like it would take like a year of hard work but its honestly not, all that needs to happen is clean up the files in like a week or less (I could knockout a ton today alone) and everything else just falls into place mostly by itself.

I'd love to get started on all this but I'd need a way to contact the developer so I feel a slack room or hipchat room would be hugely beneficial.

Optional stuff

An additional perk is when the above is done we can even look into using NodeJS event features (on and emit), its optional because I don't know the speed impact but if its insignificant we can even break up the classes in isolation by providing a plug-in system with hooks and which is better OOP design and allows for huge flexibility.

Possibilities from that include

  • Plug-in system
  • exciting things that can be done that the original creator never anticipated, in other words someone can fork the project for thier own project and easily shape it into something never through before. I know for my own project I would love to have the emulator run on a server and accessed through websockets for the front-end giving all viewers the ability to watch the game being played but each viewer gets up to 5 minutes to have control over the game before control is transferred to the next viewer (all anonymous, no logins or anything).
  • Even allowing classes to be swapped out or extended by other classes, everything can be a plugin

But the optional stuff is just fun stuff to maybe or maybe not go after once the core is done

Issue downloading freeze states on Chrome OS

I downloaded this and am hosting it on my own server. I tried using it with my Chromebook (It works AMAZINGLY btw). The only problem I ran into was when trying to download a freeze state. I get a notification that says "download download unsuccessful. Failed- Unknown network error". Not sure if I should be posting this here, or bugging Google about it (as if they would listen). Any help is appreciated.

A bug in the code.

There is probably a bug here.

if (sixbits[3] >= 0x40) {
	decode64.length -= 1;  // no side effect
	if (sixbits[2] >= 0x40) {
		decode64.length -= 1; // no side effect
	}
}

decode64 is a primitive string value. Decreasing its length property has no side effect: it won't throw away the last character.

Community support?

I was just wondering.. do you support the community developers or do you code by yourself?

I'm asking because I'm starting a online / standalone / android emulator known as D.A.E.-emu (Does Anybody Else Emulate) which is aimed as being a purely cloud multi-console emulator. I'm using GameBoy Online's source for the GB/GBC support.. and I've had a great time running 'Final Fantasy Legend (U).gb' on it. = )

The emulator itself will actually run more like a webOS than just a "here you go emulator" which I see is what GBOnline is already geared towards, only my code will mainly be DHTML/PHP rather than JavaScript.

I just wanted to know if you wanted to work directly with us or not? It's currently myself (Mike Alex) and my professional programmer.. Rick Kerkowich. Currently we've just been reverse engineering your code but it'd be great to have you on the team on more of the developers side. Did I mention I'm willing to pay out for some of the code we do?

Let me know what you think... my web-address is http://dae-emu.ga/ and my email is [email protected]

Thanks for your time and I hope to hear from you soon. = )

[Request] Gamepad Support

Hi,

I don't really know anything about coding but I have been using gb studio which bundled gameboy-online for it's weblauncher. I put out a small game using it but a lot of people were very confused by the lack of gamepad support.

I have a feeling that this code set will be used by many more people in the future. Would it be possible to add gamepad support? Are there any alternative html5 emulators that do this?

Coin case glitch emulation/Game Boy ROM color hacks

Just wondering, does this emulator properly emulate the Coin Case Glitch from Pokemon Gold and Silver? Also, I attempted to play a colorized version of Pokemon Red, but it booted as a Game Boy rom in black and white, even though it displayed the Gen 2 window borders. Is this expected behavior? Thanks..

Audio Pops when loading ROM and when switching tab in Chrome

Hi @taisel first off, thanks for the great emulator. I'm using it as part of a project I made for building GameBoy games though a drag and drop interface
https://www.gbstudio.dev/
https://github.com/chrismaltby/gb-studio

I'm having an problem where there is loud audio pops every time you load a rom or if you switch tabs away from the emulator and back again which has been raised as an issue on my own project
chrismaltby/gb-studio#115

I'm using a fork of the emulator but I've noticed the same issue occurs on your test page. Is this something you're aware of?

Thanks!

open link.

Hello.

How can I open ROM via a link from a site, rather than opening it from a computer.
Maybe somewhere here you can fix it -
if (typeof this.files != "undefined") { try { if (this.files.length >= 1) { cout("Reading the local file \"" + this.files[0].name + "\"", 0); try { //Gecko 1.9.2+ (Standard Method) var binaryHandle = new FileReader(); binaryHandle.onload = function () { if (this.readyState == 2) { cout("file loaded.", 0); try { initPlayer(); start(mainCanvas, this.result); } catch (error) { alert(error.message + " file: " + error.fileName + " line: " + error.lineNumber); } } else { cout("loading file, please wait...", 0); } } binaryHandle.readAsBinaryString(this.files[this.files.length - 1]); }

How to upload ROMS to mobile version?

I can't figure out how to upload my rom to the mobile version of the emulator. Uploading to the desktop version works perfectly fine, but I can't find the corresponding button in the mobile version. A quick examination of some of the source code proved fruitless. I am a bit of a n00b at this kind of thing, but I have been puzzling over this on and off for a long time.

Any help would be greatly appreciated!

SAV file

I can upload sav files, meaning i can transfer the save between my 3ds and computer, also I can not edit the save. If i could at least edit the save in PKHeX I would be happy with that. Maybe there is a converter you could use for that?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.