Gambatte 0.5.0-wip2 released

Announce new emulators, discuss which games run best under each emulator, and much much more.

Moderator: General Mods

Post Reply
grinvader
ZSNES Shake Shake Prinny
Posts: 5632
Joined: Wed Jul 28, 2004 4:15 pm
Location: PAL50, dood !

Post by grinvader »

Snark wrote:
Panzer88 wrote:also do gameboy games differentiate between a hard reset and a soft reset? i'd imagine some games would, and that would make it a legitimate addition.
Agree. Then again, I suppose one could always re-load the rom and it would act as a power on/off, but it would be easier to have this feature.
Power off/on and warm reset cause completely different behaviour for several games.

Link's Awakening is a good reference.
皆黙って俺について来い!!

Code: Select all

<jmr> bsnes has the most accurate wiki page but it takes forever to load (or something)
Pantheon: Gideon Zhi | CaitSith2 | Nach | kode54
sinamas
Gambatte Developer
Gambatte Developer
Posts: 157
Joined: Fri Oct 21, 2005 4:03 pm
Location: Norway

Post by sinamas »

How often do you reset anyway, that makes pressing (esc) alt-f 1 too cumbersome?
Deathlike2
ZSNES Developer
ZSNES Developer
Posts: 6747
Joined: Tue Dec 28, 2004 6:47 am

Post by Deathlike2 »

A reset feature is occasionally used, and frankly has more value (for obvious and sanity reasons) than a "Power Off" button any day of the week.
Continuing [url=http://slickproductions.org/forum/index.php?board=13.0]FF4[/url] Research...
Snark
Trooper
Posts: 376
Joined: Tue Oct 31, 2006 7:17 pm

Post by Snark »

Deathlike2 wrote:A reset feature is occasionally used, and frankly has more value (for obvious and sanity reasons) than a "Power Off" button any day of the week.
I wasn't talking about a "power off" feature nor was I for it. Neither was anyone else, afaik.

I was talking about power OFF/ON (i.e: hard reset if you prefer)...There's no soft reset on the GB aside from pressing b+a+select+start. Sorry if there was misunderstandings.
Nach
ZSNES Developer
ZSNES Developer
Posts: 3904
Joined: Tue Jul 27, 2004 10:54 pm
Location: Solar powered park bench
Contact:

Post by Nach »

adventure_of_link wrote:besides, what's wrong with pressing Start+Select+A+B anyway to reset the GB? it works in any emulator/ROM..
It doesn't.
Implementing A+B+Start+Select was advisory, not mandatory for game developers. I own a handful of games that don't implement it.

Mega Man II for example doesn't implement it.
May 9 2007 - NSRT 3.4, now with lots of hashing and even more accurate information! Go download it.
_____________
Insane Coding
Panzer88
Inmate
Posts: 1485
Joined: Thu Jan 11, 2007 4:28 am
Location: Salem, Oregon
Contact:

Post by Panzer88 »

Yeah, neither does Dragon Warrior III (even though Dragon Warrior I and II do oddly enough)

EDIT: how's developement coming?
[quote="byuu"]Seriously, what kind of asshole makes an old-school 2D emulator that requires a Core 2 to get full speed? [i]>:([/i] [/quote]
sinamas
Gambatte Developer
Gambatte Developer
Posts: 157
Joined: Fri Oct 21, 2005 4:03 pm
Location: Norway

Post by sinamas »

Snark
Trooper
Posts: 376
Joined: Tue Oct 31, 2006 7:17 pm

Post by Snark »

sinamas wrote:0.3.0 is out.

Release notes:
http://sourceforge.net/project/shownote ... _id=203791
Just wow...Most recent Gameboy emulator but also the best keeps getting better. Amazing stuff.
franpa
Gecko snack
Posts: 2374
Joined: Sun Aug 21, 2005 11:06 am
Location: Australia, QLD
Contact:

Post by franpa »

good work there, keep it up.
Core i7 920 @ 2.66GHZ | ASUS P6T Motherboard | 8GB DDR3 1600 RAM | Gigabyte Geforce 760 4GB | Windows 10 Pro x64
kick
Trooper
Posts: 550
Joined: Wed Mar 01, 2006 8:47 pm

Post by kick »

Nice release,but there are a few problems this time:

- There is still *NO* POV-hat support,despite the changelog notes (using the Win32 Qt build)
Tried it with two different gamepads,but no response.
(the only workaround is to use an old Logitech Wingman or Rumblepad with a MODE switch)

- XUSB gamepads (XBOX360 and Logitech ChillStream) don't work with 0.3.0.There weren't any problems with 0.2.0.
NOTE: I have 2 gamepads connected to this PC.Only one works with 0.3.0.

BGB has config for up to 4 gamepads and everything works flawlessly.
All gamepads,POV hats and analog triggers were properly recognized and configured.

- The DMG palette scheme editor should have 4 layers for customization (
BG,WIN,OBJ0 and OBJ1) [as in BGB],not 3.
Another thing to add is a checkbox to apply the 4 custom colors to all layers,as in a real DMG.When the checkbox is unticked,you can assign separate colors to the different layers (as it is now) to simulate the built-in color palettes when DMG games are played on a GBC system.

- Another great feature would be the ability to assign the fast-forward,reset and fullscreen keys to buttons on the gamepad (as in BGB)

- Where is the config file saved to in the Windows build? Does it use the registry? (A user-editable .cfg/.ini as in bsnes would be much better)

- It would be nice if there's a sound latency setting and a 96kHz sound option.

Other than that,everything seems fine.Great progress (especially on the Linux side).This emu is on its way to replace BGB and KiGB pretty soon.

Ganbatte! :)
[i]Have a nice kick in da nutz[/i] @~@* c//
sinamas
Gambatte Developer
Gambatte Developer
Posts: 157
Joined: Fri Oct 21, 2005 4:03 pm
Location: Norway

Post by sinamas »

kick wrote:- There is still *NO* POV-hat support,despite the changelog notes (using the Win32 Qt build)
Tried it with two different gamepads,but no response.
(the only workaround is to use an old Logitech Wingman or Rumblepad with a MODE switch)
... and 0.3.1 is out!
It actually enables joystick POV-hat events. I have no practical way of testing POV-hat support atm, hence the "hopefully" in the release notes.
kick wrote:- XUSB gamepads (XBOX360 and Logitech ChillStream) don't work with 0.3.0.There weren't any problems with 0.2.0.
NOTE: I have 2 gamepads connected to this PC.Only one works with 0.3.0.
I have no idea what could cause previously working gamepads to stop working. I can't think of any change that could do that. Weaknesses in SDL's joystick handling will naturally propagate to gambatte, since I basically ripped the joystick code from SDL, and customized it. There's an updated directinput based implementation in SDL 1.3 cvs, which supposedly fixes some issues with a few newer gamepads. I don't know how mature it is, so I left it alone for now.
kick wrote:- The DMG palette scheme editor should have 4 layers for customization (
BG,WIN,OBJ0 and OBJ1) [as in BGB],not 3.
Another thing to add is a checkbox to apply the 4 custom colors to all layers,as in a real DMG.When the checkbox is unticked,you can assign separate colors to the different layers (as it is now) to simulate the built-in color palettes when DMG games are played on a GBC system.
A separate palette for the window should be quite possible, I just didn't think of it since the window logically shares palette with the background in the Game Boy. You can drag and drop one palette to another, so giving all palettes the same colors is a quick operation that I don't think deserves an explicit option.
kick wrote:- Where is the config file saved to in the Windows build? Does it use the registry? (A user-editable .cfg/.ini as in bsnes would be much better)
The config is indeed saved to the registry as that's what QSettings does by default, but I could easily override that so that it always saves to an ini-file.
kick wrote:- It would be nice if there's a sound latency setting and a 96kHz sound option.
What's the use of a 96 kHz option anyway? I don't know the exact cut-off frequency of the Game Boy low-pass, but I'm pretty sure it's not above 24 kHz (besides frequencies above 20-some kHz being inaudible to normal humans).
kick wrote:- Another great feature would be the ability to assign the fast-forward,reset and fullscreen keys to buttons on the gamepad (as in BGB)
Yeah, that's a good suggestion. I'm not using a gamepad much lately, otherwise I'd probably have added that already.
Last edited by sinamas on Fri Oct 26, 2007 8:00 pm, edited 2 times in total.
Deathlike2
ZSNES Developer
ZSNES Developer
Posts: 6747
Joined: Tue Dec 28, 2004 6:47 am

Post by Deathlike2 »

sinamas, if you search the board for that frequency, you will see the "complaints" for sound cards that use that frequency "natively" and any other lower frequency does "resampling"... sometimes I wish they never make such silly requests because the difference is most likely obscure, if negligible.
Continuing [url=http://slickproductions.org/forum/index.php?board=13.0]FF4[/url] Research...
sinamas
Gambatte Developer
Gambatte Developer
Posts: 157
Joined: Fri Oct 21, 2005 4:03 pm
Location: Norway

Post by sinamas »

Right... Since adding it amounts to a single line of code, I guess I might as well do it. It's not like the 48 kHz option has a better reason for existing, besides being way more common. FWIW the SDL front-end accepts sample rates from 32 to 192 kHz.
kick
Trooper
Posts: 550
Joined: Wed Mar 01, 2006 8:47 pm

Post by kick »

Wow,that was fast! :)
Nice bugfix release.The controller bugs are history.
POV-Hats work,XUSB gamepads are recognized again.I can use all my gamepads now :)

There's one odd "feature" with this gamepad support: I can assign some controls to Gamepad #1,some to gamepad #2 and some buttons to gamepad #3 and use all 3 controllers to control one game,LOL.

A good thing to add is an option to restrict the controls of each gameboy to one gamepad and add separate configuration boxes for each gamepad (gameboy).Four gamepads are enough.

A separate palette for the window should be quite possible, I just didn't think of it since the window logically shares palette with the background in the Game Boy.
One more layer makes a big difference for GB mono games.Importing custom palettes from BGB also becomes easy.
You can drag and drop one palette to another, so giving all palettes the same colors is a quick operation that I don't think deserves an explicit option.
Just found this feature while experimenting with the custom palette editor.Nifty :)
The config is indeed saved to the registry as that's what QSettings does by default, but I could easily override that so that it always saves to an ini-file.
That would be great to have for portability (importing/exporting a large number of custom palettes comes to mind). Just make sure it's human-editable :)

What's the use of a 96 kHz option anyway?
For cards with resampling issues (mostly Creative Audigy2/4 series,but other non-CL cards do this as well) which resample twice internally with a bad algorithm if the frequency is anything other than 96kHz.


Finally,there's still one (video) bug left:
When using fullscreen OpenGL mode with integer-scaled aspect ratio at resolutions of 1600x1200 or higher (tested up to 2048x1536) when hiding the menu with ESC,there are lots of nasty blinking graphical artifacts.
Other modes (DirectDraw,QPainter) work fine at any resolution.
Last edited by kick on Fri Oct 26, 2007 8:49 pm, edited 1 time in total.
[i]Have a nice kick in da nutz[/i] @~@* c//
sinamas
Gambatte Developer
Gambatte Developer
Posts: 157
Joined: Fri Oct 21, 2005 4:03 pm
Location: Norway

Post by sinamas »

kick wrote:That would be great to have for portability (importing/exporting a large number of custom palettes comes to mind). Just make sure it's human-editable :)
Palettes are already stored as files under %APPDATA%\gambatte\palettes actually.
kick wrote:Finally,there's still one (video) bug left:
When using fullscreen OpenGL mode with integer-scaled aspect ratio at resolutions of 1600x1200 or higher (tested up to 2048x1536) when hiding the menu with ESC,there are lots of nasty blinking graphical artifacts.
Other modes (DirectDraw,QPainter) work fine at any resolution.
Are the artifacts outside the actual game area? Maybe one of the buffers doesn't get cleared properly.
kick
Trooper
Posts: 550
Joined: Wed Mar 01, 2006 8:47 pm

Post by kick »

Are the artifacts outside the actual game area? Maybe one of the buffers doesn't get cleared properly.
Yeah,it happens to cover the entire area outside the playfield.
Sometimes it's a stretched part of the game graphics that flickers badly,sometimes it's the well-known black & white pattern of rectangles.
I also think it has something to do with the buffers.

I've even seen this at 1280x1024,although it's only a tiny square under the game area.

Palettes are already stored as files under %APPDATA%\gambatte\palettes actually.
I thought gambatte only stores the save data there.So,once the Win layer is implemented,it's time to convert all those original DMG,GBP,GBC and cartridge-specific palettes and include them with a next release of Gambatte.
[i]Have a nice kick in da nutz[/i] @~@* c//
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

kick wrote: For cards with resampling issues (mostly Creative Audigy2/4 series,but other non-CL cards do this as well) which resample twice internally with a bad algorithm if the frequency is anything other than 96kHz.
So every time a sound card maker does something royally stupid, every program with sound has to add pointless options to make it better? Sorry, I don't agree with that solution. It gives no incentive to correct the problem at the source, and offers no consequences for poor business decisions. The correct user response should be: I'm either going to live with it or sell the POS card to someone who will and get a better one.
kode54
Zealot
Posts: 1140
Joined: Wed Jul 28, 2004 3:31 am
Contact:

Post by kode54 »

FitzRoy wrote:
kick wrote: For cards with resampling issues (mostly Creative Audigy2/4 series,but other non-CL cards do this as well) which resample twice internally with a bad algorithm if the frequency is anything other than 96kHz.
So every time a sound card maker does something royally stupid, every program with sound has to add pointless options to make it better? Sorry, I don't agree with that solution. It gives no incentive to correct the problem at the source, and offers no consequences for poor business decisions. The correct user response should be: I'm either going to live with it or sell the POS card to someone who will and get a better one.
Plus, those cards use 48KHz internally, not 96. Most cards capable of playing 96KHz are unlikely to have poor resampling.
xamenus
Veteran
Posts: 907
Joined: Fri Jul 30, 2004 12:26 am

Post by xamenus »

In the Windows version, I noticed that the emulation doesn't pause when the window is out of focus. Same goes for when items in the menu bar are selected. Is there any way to make it do so?

Great emulator, by the way.
Panzer88
Inmate
Posts: 1485
Joined: Thu Jan 11, 2007 4:28 am
Location: Salem, Oregon
Contact:

Post by Panzer88 »

FitzRoy wrote:
kick wrote: For cards with resampling issues (mostly Creative Audigy2/4 series,but other non-CL cards do this as well) which resample twice internally with a bad algorithm if the frequency is anything other than 96kHz.
So every time a sound card maker does something royally stupid, every program with sound has to add pointless options to make it better? Sorry, I don't agree with that solution. It gives no incentive to correct the problem at the source, and offers no consequences for poor business decisions. The correct user response should be: I'm either going to live with it or sell the POS card to someone who will and get a better one.
perhaps, a hardcore user will switch out for best performance but not all users will do this, it depends on the focus of your emu, are you just recreating it for a hobby, or do you want to make it as easy as possible for the user.

I mean if you want complete authenticity then just play a gameboy right.

on another note all these additions are great sinemus, in a short time you've basically created the top gameboy classic emu.
[quote="byuu"]Seriously, what kind of asshole makes an old-school 2D emulator that requires a Core 2 to get full speed? [i]>:([/i] [/quote]
DancemasterGlenn
Veteran
Posts: 637
Joined: Sat Apr 21, 2007 8:05 pm

Post by DancemasterGlenn »

FitzRoy wrote:
kick wrote: For cards with resampling issues (mostly Creative Audigy2/4 series,but other non-CL cards do this as well) which resample twice internally with a bad algorithm if the frequency is anything other than 96kHz.
So every time a sound card maker does something royally stupid, every program with sound has to add pointless options to make it better? Sorry, I don't agree with that solution. It gives no incentive to correct the problem at the source, and offers no consequences for poor business decisions. The correct user response should be: I'm either going to live with it or sell the POS card to someone who will and get a better one.
I wish I had that kind of money to throw around... but hey, I'm not having this problem, so I guess there's no reason to argue.

This new version is AMAZING, I'm playing through some Bionic Commando - Elite Forces (PLAY IT), and it's running smooth as butter. I have found one oddity... I can't seem to go fullscreen. I'm using X11 engine on an NVIDIA card, ubuntu linux (gusty) in the Qt version. I'm trying to go from 640x576 windowed to 1680x1050 (my native) and nothing happens. When I Ctrl-F, it puts a check next to 'full screen', but doesn't seem to do anything else... not a big deal at all, I'm enjoying windowed mode very much, but I thought I'd let you know in case it was a problem in the code. Oh, and I installed with the .deb, if that's important.

Really awesome Sinamas, you really have blown everyone else out of the water!

EDIT: I am also seeing some horizontal tearing, if that's the correct term. This is just vertical de-syncing, right? Not very noticeable, just thought I'd mention.
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

DancemasterGlenn wrote: I wish I had that kind of money to throw around... but hey, I'm not having this problem, so I guess there's no reason to argue.
The funny part of that is, it probably wouldn't cost more at all. This is chiefly a problem with one company. I am using onboard sound right now that behaves better than any Creative card I've owned.
sinamas
Gambatte Developer
Gambatte Developer
Posts: 157
Joined: Fri Oct 21, 2005 4:03 pm
Location: Norway

Post by sinamas »

xamenus wrote:In the Windows version, I noticed that the emulation doesn't pause when the window is out of focus. Same goes for when items in the menu bar are selected. Is there any way to make it do so?
No, not at the moment.
DancemasterGlenn wrote:I can't seem to go fullscreen. I'm using X11 engine on an NVIDIA card, ubuntu linux (gusty) in the Qt version. I'm trying to go from 640x576 windowed to 1680x1050 (my native) and nothing happens. When I Ctrl-F, it puts a check next to 'full screen', but doesn't seem to do anything else... not a big deal at all, I'm enjoying windowed mode very much, but I thought I'd let you know in case it was a problem in the code. Oh, and I installed with the .deb, if that's important.
...
EDIT: I am also seeing some horizontal tearing, if that's the correct term. This is just vertical de-syncing, right? Not very noticeable, just thought I'd mention.
I can't reproduce the full screen problem on debian testing. It actually sounds like it could be a bug in gutsy's Qt4 packages or similar, but that's kind of weird too.

X11 is very unlikely to wait for vblank before blitting/buffer swapping. Without that you're generally bound to see some tearing.
kick
Trooper
Posts: 550
Joined: Wed Mar 01, 2006 8:47 pm

Post by kick »

kode54 wrote:
FitzRoy wrote:
kick wrote: For cards with resampling issues (mostly Creative Audigy2/4 series,but other non-CL cards do this as well) which resample twice internally with a bad algorithm if the frequency is anything other than 96kHz.
So every time a sound card maker does something royally stupid, every program with sound has to add pointless options to make it better? Sorry, I don't agree with that solution. It gives no incentive to correct the problem at the source, and offers no consequences for poor business decisions. The correct user response should be: I'm either going to live with it or sell the POS card to someone who will and get a better one.
Plus, those cards use 48KHz internally, not 96. Most cards capable of playing 96KHz are unlikely to have poor resampling.
Don't want to put more fuel to the fire,but when I posted this line,I knew it would come to this LOL :)
The feature is not *that* important,it was just a suggestion on my side.It's up to the developer whether he decides to add it or not.
And FYI,there *is* a workaround to this 'bad resampling' problem,but comes at a cost of reduced functionality and/or some extensive tweaking.
It applies only to a small number of soundcards though.

For older (good) 10k2 Creative cards,there is hope:

On Windows
---------------
Uninstall those $%^&#@* Creative drivers,use Driver Cleaner and install this:
http://www.driverheaven.net/general-dis ... eased.html
Set "WaveHQ" as your default playback device.Disable 10k2 sound routing in the 24/96 router. You get higher quality hardware resampling for anything <= 96kHz and no resampling at all at 96kHz.
Drawbacks: Only one app can output sound at once,you can't use the DSP at all (it's disabled),forget about using EAX in games
That's the price to pay for decent sound quality :)
64-bit Windows users are SOL.Only works on 32-bit.
* Live and Audigy1 users are also advised to switch to these drivers to get decent *software* 48kHz resampling.The tweaks above don't apply for them.

On Linux
-----------
Set the default playback device for everything to 'P16V'.In the ALSA mixer move *all* playback sliders to zero (including the master volume slider),except HD Rear Surround.Use the rear HD
slider as your master volume (best for stereo).This setup also has its own share of limitations.
(Not compatible with a good number of multimedia apps)
* Live and Audigy1 users don't have to do this.There's no hope for them.

Users with newer POS Creative cards which include the P17V component are SOL.
So are all those users of POS cards from other manufacturers with resampling issues.Go and buy a real soundcard (Auzentech,ASUS or even a TurtleBeach card)
Last edited by kick on Sat Oct 27, 2007 7:02 am, edited 2 times in total.
[i]Have a nice kick in da nutz[/i] @~@* c//
DancemasterGlenn
Veteran
Posts: 637
Joined: Sat Apr 21, 2007 8:05 pm

Post by DancemasterGlenn »

X11 is very unlikely to wait for vblank before blitting/buffer swapping. Without that you're generally bound to see some tearing.
I switched over to OpenGL and clicked the sync to vblank option, but I still seem to be getting tearing. I think that's supposed to happen, though... My only two frequencies I can set for my monitor are apparently 50Hz and 94Hz? Weird. In my 'nvidia settings' I have it set to 60, but everywhere else on my computer (screen resolution preferences in ubuntu and this emulator, at least) I've only got 50 and 94.

*shrug*

As to the fullscreen stuff, it must be something on my end, possibly a Qt bug as you said, I was pretty much only trying it for the sake of trying it, so no biggie.
Post Reply