Beta Gngb.pnd Game Boy And Game Boy Color Emulator


dgame

Active Member
Joined
Oct 1, 2006
Messages
945
GnGB is a Game Boy and Game Boy Color Emulator for written in C using the SDL.
It does save states with thumbnail pictures.

In-Game keys:
Pandora A,Y,X,B buttons: Game Boy B,A,Select,Start
Tab: Menu to Load/Save States and Configure Emulator
Enter: Select Menu Items, ESC: Close Menus
1-5: Switch Game Boy 2-bit Color Palettes
6: Toggle Game Boy Color Color Filter
9: Pause Emulator* and 0: Unpause Emulator*
F8: Toggle Rumble (screen shake)
F9: Toggle Fullscreen, F10: Show FPS, F11: Reset
F12: Show SDL Keycodes\
ESC: Exit Emulator


The screen tearing is an issue in some games, but it runs pretty good on most games.

Give it a try and let me know what you think.

If you think you can fix the screen tearing let me know.
The discussion is HERE

EDIT: Thanks to everyone who helped getting this to work!
I just played all the way through Super Mario Land.


Extract the gngb.pnd from the attached gngb.zip.

Thanks!
 
Last edited by a moderator:
I finally got around to putting up a video of me playing Super Mario Bros. Deluxe with this.

http://www.youtube.com/watch?v=suTWk_WaSHU

You should submit it to repo.openpandora.org.
 
@dgame

Great emu, most functions works a expected and very conveniently for the Pandora! (I.e. the ROM state screenshots are great!)

My suggestion for improvement:

1) The game control key assignment is hard to get used to (for me) (Pandora A,Y,X,B -> Game Boy B,A,Select,Start ). Would it be possible to make that user configurable?

2) The display option at each ROM start can get on your nerves. Would be fine if one could set a default choice, and only change it if desired (or via hotkey, there are enough free keys left!).
 
I set the keys that way because I play a lot of Pokemon and use the Start button regularly in-game.
Pandora's start button is too far away for me when playing Pokemon.


You can edit the gngbrc file to change the keys.

The file is located in pandora/appdata/gngb/.gngb/gngbrc

The .gngb directory is hidden so you may have to select "Show Hidden files" in the File Manager (or Ctrl-H) to see it.

the section in the gngbrc file is this:

# Key configuration
# order : AXE_UP,AXE_DOWN,AXE_LEFT,AXE_RIGHT,A,B,START,SELECT
# please see SDL_keysym.h for key definition
# or push F12 during game and the keysym code of
# the key you press will be printed
# (you can do the same for the joystick)

map_key 273,274,276,275,120,119,13,303

So press F12 in game and get the key codes for the buttons you want to use and then edit the map_key values using the order listed above.


As for the Display options, that's the easiest way I found (copied from E-D's GnuBoy) to test things on-the-fly.

This is only a test.

I think PickleLauncer should be able to do a lot better job at ROM and settings selection.


You are the second person to respond to GnGB, I kinda assumed everyone was using the other ones instead so I stopped working on it.

I'm trying to compile something else on my Pandora at the moment, but I may revisit this when I am done.
 
Wow, thanks for the quick reply!
What, I am yet the only other person who replies?
I tested 4 GB emulators, and yours is yet the best! The only 2 flaws I realized are now already reported to you, and one of them is user-solveable, which I will do in the next minutes!
I guess the integer scalings your app offers are pretty resource friendly, hence longer battery time! Appreciating this direction!

Please feel encouraged to continue your app! It's really great.


Here is my comparison of gameboy emulators for the Pandora, which I have tested so far:

GnGB

+ Starts where you left it.
~ Asks you at each rom start in which mode to display.
+ Different color sets
+ Save/reload states per game and with screenshot
+ Even works if ROM parent dir was renamed!
- Strange game controls. But can be changed via config file.

Mednafen-GB
- Always starts at its PND directory
+ Save/load state gives an in-game fullscreen screenshot preview
-- But the game-play continues. Workaround: First pause current game (if possible) then save/load game-states. Suggesting: Emu should pause emulation for that time.
-- Should only display the screenshot as long as the number button is pressed (not a fixed time duration like the current 2-3 secs)
-- Should have more convenient buttons for save/load state (suggesting "l" and "s" (as in GnGB) instead of F5 and F7 which need the Fn modifier key (not very handy for quick access).
+ Controls can be customized
+ Even a short button press version
- Quitting leaves ghost screen artefacts. Only reboot helps. Awful!

GnuGB
+ Starts with PickleLauncher
+ Save/reload states per game with quick keys without screenshot
- Scaling seems not to work when choosen.
- Program remains in black screen if wrong option chosen!

VisualBoyAdvance
- Always starts at its PND directory
+ Save/reload states
-- into rom dir (clutter!)
-- globally and not per game, hence you must know in which game to recall which state
 
dgame said:
You are the second person to respond to GnGB, I kinda assumed everyone was using the other ones instead so I stopped working on it.

I'm very pleased to se gngb on the pandora, and I really need to try this out.
Actually, gngb was coded by my brother and I've done some stuff for it like the blitters and the sound emulation.
I could try to give some help if you want. The code can be found here http://code.google.com/p/gngb/
If you could send the patch with your modification it would be great.

You should really put it on the repo, it will give it more visibility.

Pepone.
 
Last edited by a moderator:
pepone said:
Actually, gngb was coded by my brother and I've done some stuff for it like the blitters and the sound emulation.

Pepone.

A very talented family :)

@dgame: Please ....Put this also on the repo like Pepone said.and don't stop working on this if you can...thanks
 
Last edited by a moderator:
Yes a different GB emulator is always welcome... hopefully you can add some features the others are missing, like SuperGameBoy support/SuperGameBoy borders?

Maybe a full GB palette editor?
 
@pepone,

Very cool! This is the GB emulator that sounds the best to me. My Pickachu ‘talks’ in Pokemon Yellow, but I digress. . .

I didn’t do anything to much the source in this test version. I think it was a simple ./configure and make once I got the dev environment setup properly. The source is your gngb-20060309.tar.gz which appears to be the latest import at https://code.google.com/p/gngb/source/list. Most customization was done in the gngbrc file.

The one thing I tried to implement in the source was some kind of vsync to get rid of screen tearing in some games and it did not work.

The only improvements I can realistically make would be switching the front end to Pickle Launcer and changing the default keys to something more user-friendly.

@Farox, I’ll se what I can do about fixing up the front-end and uploading to the repo.o.o. I was surprised to see it in apps.o.o as it is only a test version to get feedback for improvement and not intended to be released for casual users that way.

As porg suggested, and I agree, the end-user experience should be streamlined.

@PokeParadox, while a full palette editor is beyond my current skill-set the 5 included pallets can also be edited in the gngbrc file. I’m still seeking the perfect ‘pea soup’ gameboy palette. B)

The file is located at pandora/appdata/gngb/.gngb/gngbrc

There is also a gb_type line in gngbrc that can change the default game boy type:

Change gb_type to 2 to enable SuperGameBoy borders and it works! (I only tested in Pokemon Yellow)

Most of the options in the gngbrc file have command line equivalents so once setup properly PickleLauncer should be able to set and use your preferred configuration without nagging about it every time.

Thanks for the encouragement everyone! A little feedback goes a long way. :)
 
dgame said:
@PokeParadox, while a full palette editor is beyond my current skill-set the 5 included pallets can also be edited in the gngbrc file. I’m still seeking the perfect ‘pea soup’ gameboy palette. B)

The file is located at pandora/appdata/gngb/.gngb/gngbrc

There is also a gb_type line in gngbrc that can change the default game boy type:

Change gb_type to 2 to enable SuperGameBoy borders and it works! (I only tested in Pokemon Yellow)
Aha! thanks for that. And yes that gets SuperGameBoy mode working, unfortunately it does this at the expense of using GBC colours. Is some hybrid mode possible (Link's Awakening is best example. on SGB it shows borders but colour is just green, in GBC it uses 56 colours.)

EDIT... you could cheat this hybrid mode by running in SGB mode for one render, switch to GBC mode rendering within the SGB border and not clearing the screen to keep the border... (But I am not an emulator coder, so...)
 
Last edited by a moderator:
For the tearing: Try to use it with notaz' enhanced sdl and the vsync option. Might fix that.
 
Back
Top