unityGB - Emulator Game Boy for Unity [RELEASED]

1627122--99966--$2842527909-cover.png

unityGB allows you to run a Game Boy ROM in your Unity project. Globally, it’s a Game Boy emulator written for Unity and it’s totally free and open-source.
It has been written in C# and is only using Mono allowing you to export the project to any platform supported by Unity. Also, unityGB has been released as Open Source software under the GNU General Public Licence. This means that you can download the source code, find out how it works, and contributing.

unityGB is still in alpha version, many bugs and glitches can occur. Also, the code is far from being perfect and needs a lot of optimization. Any and all help welcome! Please feel free to contribute to this project.

What is supported:

  • Game Boy games
  • Input
  • Sound
  • Save

Game Boy Color games are not supported yet.

With unityGB, you can easily script by yourself how to manage inputs (joypad) and outputs (audio, video).
Demo: Try our demo to see some scenes with unityGB.
Video: Watch on Youtube
Repository: Help us by contributing to this project
Wiki: Visit unityGB wiki for further information.

DOWNLOAD UNITYGB PACKAGE HERE <<<

2 Likes

OMG, this is awesome!

i totally don’t know what situation i need this. But IT’S AWESOME!!!

AWESOME! Takohi, you’re a GOD! :smile:

1 Like

Here it is running in the Rift:

Edit: here is a build http://shaneobrien.ie/prog/oculusGameboy.zip

3 Likes

Wow! Very Impressive! =)
It would be viable to create a MSX emulator?

Absolutely surprising, in the most positive kind of way!

ignore this message please :slight_smile:

Everybody, thank you a lot!

I’m so glad you all like it, and FinsternIRL, thank you for your video, it’s awesome.
Can I share it on the wiki page of unityGB?

I made this emulator just for fun, I was always curious about making an emulator and specially for Game Boy.
When I got some first results, I was like “wow, it’s awesome, but… what could we do with it?!”, so I decided to share it with you, hoping you will get idea for me.
Now I can see some people are interested with, I will definitively try to improve this emulator. I don’t have so much time so don’t expect updates so often. I work on it during my free time. So I also need you to help me and improve this emulator!

FinsternIRL, and others, could you please make a list of problems you noticed during testing unityGB?
I have spent a lot of time for fixing the audio but couldn’t make it. I don’t have to much experience in audio… I would be happy if someone can help me to fix this issue.

Again, thank you everybody!

Please, be my guest and post the video, I’m glad you like it =D. I did run into one error, but I’ll post it on the bitbucket page. I’ll try contribute what I can to the project as I love the idea for VR purposes!

I created this some time back. I’m wondering if I could use this to put a game on it?

Here it is running in a webplayer.
http://dl.dropboxusercontent.com/u/16956434/SuperMarioLand_Web/WebPlayer.html

Hello JamesArndt,

I’m sorry I can’t run your webpage :frowning:

But of course it is possible, look at our demo, we are approximately doing the same.
What you have to do is to map the texture generated in DefaultVideoOutput.cs to the material of your Game Boy screen model.
You should also use a shader like this one to have a better effect.

I also got an advice from reddit (david_is_neato):

Share with us your results!

Fixed the link.

Here it is running in a webplayer.
http://dl.dropboxusercontent.com/u/16956434/SuperMarioLand_Web/WebPlayer.html

I am going to follow your advice on the point filtering so it will have that pixel perfect look. This should be really neat once it’s set up. The cool thing is the model is physically accurate, so the actual screen is under the plastic cover glass, should look pretty convincing.

Hi Takohi,

So I took your awesome script, added the Super Mario Land gameboy rom , integrated it into a small room environment, and modded to run in android for the Durovis Dive headset… end result , really cool :slight_smile:

The only problem that i’m having is the script causes my framerate to drop to at least 40-45fps at most times and sometimes slower (running on Galaxy S5 and HTC One) . Without the gameboy script running the room runs at 60fps always , but once enabled it slows considerably. I’ve tried a few other roms and it doesn’t seem to make a difference.

any mobile optimization tips?

Thanks
Mark

First of all, that is absolutely amazing, nice work!

Secondly, how would one go about improving it? Surely you didn’t write that all from you head :). There must be some spec somewhere that says how that cpu “X80” works.

Wow, I want to try pokemon on it!

Thank you a lot! Unfortunately, I don’t have mobile optimization tips right now, I’m sorry.
But in the future, I’m planning to review and optimize the code in order to make the emulator running much faster.
In the meanwhile, don’t hesitate to share with me all your tips!

Hello, and thank you !
I made a page on the unityGB wiki that includes all links that could help to make a Game Boy emulator.
https://bitbucket.org/takohi/unitygb/wiki/Documentation

There are also many open source Game Boy emulator already available in many languages (c, c++, java, javascript…).
If you are interested to make your own emulator, here is a tutorial (it’s in javascript): http://imrannazar.com/GameBoy-Emulation-in-JavaScript:-The-CPU

Pokemon is working fine on it! Please try!

Thanks for the link.

Are you still working on it?

would love to see a nes one :slight_smile: