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
kick
Trooper
Posts: 550
Joined: Wed Mar 01, 2006 8:47 pm

Post by kick »

byuu wrote:Just curious here ... other than the "other programs do it" argument -- why do you even expect that to work well? It requires multi-threading right off the bat as Windows locks the thread that calls Get/PeekMessage() once the menubar is clicked on, and the OS itself tends to eat up a lot of resources drawing the menus and such. It'd require quite a bit more buffering (eg latency) to avoid, which is probably what other programs do. That, or as sinamas said, it could be a Qt-specific issue that raw Win32 programming avoids.

How often do you run through the menu when playing a game, anyway? I've never heard anyone complain about what happens when you're navigating menus. Half of the emulators I use pause the emulation while in them.
The CPU usage doesn't spike a bit when mousing through the menus as quickly as possible.Emulation is running in windowed mode,VSync is enabled,CPU load is at 15% or below.Increasing the audio latency fourfold doesn't help a bit.Definitely a Qt4 bug.
Last edited by kick on Sat Nov 01, 2008 2:52 am, edited 1 time in total.
[i]Have a nice kick in da nutz[/i] @~@* c//
kick
Trooper
Posts: 550
Joined: Wed Mar 01, 2006 8:47 pm

Post by kick »

franpa wrote:Kick, you DO know that the Nvidia 180 driver series drops support for anything below the 8 series of cards? I wouldn't call that backwards support, hell they dropped support for the tnt2 and riva cards ages ago too.
At least nVidia keeps every single OpenGL extension intact for all their cards :)
That's why even their newest cards can run all the legacy OpenGL stuff.
[i]Have a nice kick in da nutz[/i] @~@* c//
franpa
Gecko snack
Posts: 2374
Joined: Sun Aug 21, 2005 11:06 am
Location: Australia, QLD
Contact:

Post by franpa »

True, but since the 1xx drivers, support for Direct x 5, 6, 7 games has been somewhat lacking.
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 »

Some suggestions / feature requests for the next version:

- Save all settings to a .cfg / .ini file instead of dumping all the stuff in the registry.It would also make the emulator portable.Very important.

- 'Reset to Defaults' button for the sound,video and input settings.

- Independent DMG colors for all 4 graphics layers as in bgb.Gambatte has only 3 at the moment.

- An option to disable the 'Recent ROMs' list.

- Not necessary,but cool to have: DMG (mono) speaker simulation:
Downmixed mono output + very limited audio bandwidth (can be done even now by setting the sample rate to 12kHz or below) + a little reverb + hum + distortion = real GB sound :)
[i]Have a nice kick in da nutz[/i] @~@* c//
kick
Trooper
Posts: 550
Joined: Wed Mar 01, 2006 8:47 pm

Post by kick »

franpa wrote:True, but since the 1xx drivers, support for Direct x 5, 6, 7 games has been somewhat lacking.
Use Win98SE for those. It's not the drivers,but WinXP that runs <DX8 games like shit.
[i]Have a nice kick in da nutz[/i] @~@* c//
franpa
Gecko snack
Posts: 2374
Joined: Sun Aug 21, 2005 11:06 am
Location: Australia, QLD
Contact:

Post by franpa »

It's been proven by a guy on the Nvidia forums that the Geforce 6600gt will run the games fine with early XP drivers (every single one before the first 1xx one). the 1xx drivers removed the display mode (or whatever it was called) that the games depended on. (I haven't actually tested this myself, but I did notice that older games got worse as more and more driver updates appeared for my own 6600gt which now lives in my dads PC.)

I would link to it but the NVIDIA search function is now broken since they updated the forum a week or 2 ago.

edit: this thread which I haven't noticed before (http://forums.nvidia.com/index.php?show ... 4101&st=40) may actually lead to Nvidia fixing the damn issue's in there drivers. (sure the thread is about the new 260/280 cards but it affects the 8800's too.)
Core i7 920 @ 2.66GHZ | ASUS P6T Motherboard | 8GB DDR3 1600 RAM | Gigabyte Geforce 760 4GB | Windows 10 Pro x64
blargg
Regular
Posts: 327
Joined: Thu Jun 30, 2005 1:54 pm
Location: USA
Contact:

Post by blargg »

kick wrote:Some suggestions / feature requests for the next version:
[...]
- Not necessary,but cool to have: DMG (mono) speaker simulation:
Downmixed mono output + very limited audio bandwidth (can be done even now by setting the sample rate to 12kHz or below) + a little reverb + hum + distortion = real GB sound :)
Don't forget a high-pass filter to remove bass, since the tiny speaker had hardly any.
sinamas
Gambatte Developer
Gambatte Developer
Posts: 157
Joined: Fri Oct 21, 2005 4:03 pm
Location: Norway

Post by sinamas »

kick wrote:- When using the D3D renderer and enabling one of the HQxX filters,you get this
Appears to be a pitch bug that remained from the original HqXx source code. Fixed in SVN.
kick wrote:- The first three lines of the displayed image are flashing when a sprite touches them.A lot of games are affected.
The _exact_ same thing happens on my CGB too. The current level of Gambatte's DMG accuracy is about at the level of a CGB running a DMG game, or slightly higher in some cases. This won't change until I'm able to do some DMG testing. For the next couple of months there's no place on my schedule for that at least.
kick wrote:- Kid Icarus: Just after the opening story scrolls to the end and the title screen appears,part of the 'Kid Icarus' fonts appear briefly at the bottom of the screen as tile garbage.
Not sure what you're talking about here, as I can't see anything. It's probably due to the Game Boy's high latency LCD.
kick wrote:- Save all settings to a .cfg / .ini file instead of dumping all the stuff in the registry.It would also make the emulator portable.Very important.
I've said before that I may do that. But what's this stuff about portability? Can't you just export/import registry keys instead?
kick wrote:- Independent DMG colors for all 4 graphics layers as in bgb.Gambatte has only 3 at the moment.
I've addressed this before. There's no such thing as "all 4 graphics layers". The DMG has exactly 3 palettes, and that's what you're getting. If I really wanted to, I could hack in a separate palette for every single tile.
kick wrote:- An option to disable the 'Recent ROMs' list.
Not gonna happen.
kick wrote:- Not necessary,but cool to have: DMG (mono) speaker simulation:
Downmixed mono output + very limited audio bandwidth (can be done even now by setting the sample rate to 12kHz or below) + a little reverb + hum + distortion = real GB sound
I can pretty much promise you this won't happen. I may do the internal high-pass filter though.

As for ATI driver poo poo, hacking around obvious driver bugs would be really low priority and something I'd rather not have to do at all, whether it's related to vsync, rendering or anything else.

There may not be much I can do about audio underruns besides compromising.

@franpa: Any update on the slowdown issue? Did you try the things I suggested?

EDIT:
kick wrote:VSync is enabled
Duh. Vsync isn't expected to be underrun resistant when you're not strictly playing or your drivers are broken. There are basically three options to make it more resistant:
1. Skip frames when the buffer is low.
2. Resample to a higher sample rate, which causes more frame duplication.
3. Disable vsync momentarily if the buffer is low. Unfortunately, this often isn't possible without reinitializing the video engine, which could cause both latency, defeating the purpose, and graphical disturbances.
Last edited by sinamas on Sat Nov 01, 2008 10:07 am, edited 1 time in total.
franpa
Gecko snack
Posts: 2374
Joined: Sun Aug 21, 2005 11:06 am
Location: Australia, QLD
Contact:

Post by franpa »

sinamas wrote:
kick wrote:- Save all settings to a .cfg / .ini file instead of dumping all the stuff in the registry.It would also make the emulator portable.Very important.
I've said before that I may do that. But what's this stuff about portability? Can't you just export/import registry keys instead?
Does exporting also delete the keys? how can you run the file on multiple computers without leaving a trace?
Core i7 920 @ 2.66GHZ | ASUS P6T Motherboard | 8GB DDR3 1600 RAM | Gigabyte Geforce 760 4GB | Windows 10 Pro x64
sinamas
Gambatte Developer
Gambatte Developer
Posts: 157
Joined: Fri Oct 21, 2005 4:03 pm
Location: Norway

Post by sinamas »

franpa wrote:
sinamas wrote:
kick wrote:- Save all settings to a .cfg / .ini file instead of dumping all the stuff in the registry.It would also make the emulator portable.Very important.
I've said before that I may do that. But what's this stuff about portability? Can't you just export/import registry keys instead?
Does exporting also delete the keys? how can you run the file on multiple computers without leaving a trace?
By deleting the registry keys and the appdata folder.
sinamas wrote:@franpa: Any update on the slowdown issue? Did you try the things I suggested?
creaothceann
Seen it all
Posts: 2302
Joined: Mon Jan 03, 2005 5:04 pm
Location: Germany
Contact:

Post by creaothceann »

Yeah, but that goes for all programs, portable or not.

A truly portable app doesn't require the user to do that by hand - either by automating it, or not storing its data in these places.
vSNES | Delphi 10 BPLs
bsnes launcher with recent files list
sinamas
Gambatte Developer
Gambatte Developer
Posts: 157
Joined: Fri Oct 21, 2005 4:03 pm
Location: Norway

Post by sinamas »

Requiring a separate binary per user will probably never happen. An installer or uninstaller will also probably never happen.
franpa
Gecko snack
Posts: 2374
Joined: Sun Aug 21, 2005 11:06 am
Location: Australia, QLD
Contact:

Post by franpa »

maybe add an option somewhere in the GUI to remove registry entries upon close? obviously that option will reset to the OFF position once it has been used.
Core i7 920 @ 2.66GHZ | ASUS P6T Motherboard | 8GB DDR3 1600 RAM | Gigabyte Geforce 760 4GB | Windows 10 Pro x64
odditude
Official tech support dood
Posts: 2120
Joined: Wed Jan 25, 2006 7:57 am

Post by odditude »

sinamas wrote:
franpa wrote:
sinamas wrote:
kick wrote:- Save all settings to a .cfg / .ini file instead of dumping all the stuff in the registry.It would also make the emulator portable.Very important.
I've said before that I may do that. But what's this stuff about portability? Can't you just export/import registry keys instead?
Does exporting also delete the keys? how can you run the file on multiple computers without leaving a trace?
By deleting the registry keys and the appdata folder.
by "portable," they mean "able to run, fully self-contained, off a usb flash drive (or other storage device)." any and all configuration settings would generally be saved in the program directory. this way, all you have to do is pop in your drive and run the program - all of your settings etc. are there with no "residue" left on the system.
Last edited by odditude on Sat Nov 01, 2008 6:24 pm, edited 1 time in total.
Why yes, my shift key *IS* broken.
sinamas
Gambatte Developer
Gambatte Developer
Posts: 157
Joined: Fri Oct 21, 2005 4:03 pm
Location: Norway

Post by sinamas »

I'll consider adding a command line argument.
adventure_of_link
Locksmith of Hyrule
Posts: 3634
Joined: Sun Aug 08, 2004 7:49 am
Location: 255.255.255.255
Contact:

Post by adventure_of_link »

really is it that hard to delete the executable, config (except registry) and readmes? :P
<Nach> so why don't the two of you get your own room and leave us alone with this stupidity of yours?
NSRT here.
byuu

Post by byuu »

To make an app truly portable, you'd have to keep the config file in the same folder as the binary; which isn't going to work well on Linux, where the binary folder is usually read-only to users. It also breaks multi-user support when you do that; though it does allow multiple configuration modes for the same user (eg multiple copies of the binary in different folders for per-game settings.)

There are tools out there which can be used to make an app portable / USB stick friendly. They basically encapsulate a binary + mini-registry + file-system (lots of DLL hooks), and leave no traces on whatever machine they are run on. These apps even work on big programs like Photoshop.

It'd probably be best to let the few worried about privacy use those, and the rest to not have to spawn lots of config files along with the emulator.
kick
Trooper
Posts: 550
Joined: Wed Mar 01, 2006 8:47 pm

Post by kick »

sinamas wrote: Appears to be a pitch bug that remained from the original HqXx source code. Fixed in SVN.
Nice.So it wasn't an ATI driver bug at all.Looking forward to the next bugfix release :)
sinamas wrote: The _exact_ same thing happens on my CGB too. The current level of Gambatte's DMG accuracy is about at the level of a CGB running a DMG game, or slightly higher in some cases. This won't change until I'm able to do some DMG testing. For the next couple of months there's no place on my schedule for that at least.
That glitch may happen on a CGB,but it does not on my DMG.Besides using bgb,KiGB and other GB emulators,I test all those games on my DMG as well.

That means I'll still have to use 2 different emus for GB emulation: bgb for accurate DMG / SuperGB emulation and Gambatte for CGB (only for a few months) :D
sinamas wrote: Not sure what you're talking about here, as I can't see anything. It's probably due to the Game Boy's high latency LCD.
Looks like I'll have to post a screenshot of that one too.
kick wrote: I've said before that I may do that. But what's this stuff about portability? Can't you just export/import registry keys instead?
That would be awesome.
Portable = the application doesn't leave a single trace in the registry.Instead,it stores all its settings in a config file that resides in the same directory as the application.So you can put those files on a USB flash drive,use it on any computer and when you remove the USB drive the PC is left as it was before.
kick wrote:If I really wanted to, I could hack in a separate palette for every single tile.
That would be really cool.Optimal colorization adds a lot of replay value to old DMG classics.
sinamas wrote:
kick wrote:- An option to disable the 'Recent ROMs' list.
Not gonna happen.
If saving to .cfg file is implemented,there would be no need for this feature.
sinamas wrote: I can pretty much promise you this won't happen. I may do the internal high-pass filter though.
Mono output and highpass filter is all that's needed :)
[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:only for a few months
I don't know how many months it'll be. I've got other things to do with my time too, and it'll probably be a lot of work. There are more than 1500 test files in the hwtest directory at the minute, most of which I'll have to rework. And then, depending on the nature of the differences, a clean implementation could require a lot of consideration. We don't want lots of duplicate code, and we don't want too many DMG conditionals throughout the code.
kick wrote:Looks like I'll have to post a screenshot of that one too.
If it's very brief then there's no chance in hell that the slow ass Game Boy LCD would be able to react in time to show it. I don't consider lack of LCD simulation a bug at this point, and most DMG bugs aren't really interesting right now since they're due to the current CGB level accuracy limit. Another area of bugs I don't care for are those caused by unsupported MBCs, or wrongly identified MBCs. A lot of custom MBCs are marked as MBC1/MBC5 in the ROM header even though they're not compatible.
EDIT: That said, I just frame-stepped through the intro, which revealed nothing.
Nach
ZSNES Developer
ZSNES Developer
Posts: 3904
Joined: Tue Jul 27, 2004 10:54 pm
Location: Solar powered park bench
Contact:

Post by Nach »

kick wrote: - Not necessary,but cool to have: DMG (mono) speaker simulation:
Downmixed mono output + very limited audio bandwidth (can be done even now by setting the sample rate to 12kHz or below) + a little reverb + hum + distortion = real GB sound :)
Real???
Wear head phones!
May 9 2007 - NSRT 3.4, now with lots of hashing and even more accurate information! Go download it.
_____________
Insane Coding
odditude
Official tech support dood
Posts: 2120
Joined: Wed Jan 25, 2006 7:57 am

Post by odditude »

Nach wrote:Wear shitty head phones!
fixed ;)
Why yes, my shift key *IS* broken.
Nach
ZSNES Developer
ZSNES Developer
Posts: 3904
Joined: Tue Jul 27, 2004 10:54 pm
Location: Solar powered park bench
Contact:

Post by Nach »

odditude wrote:
Nach wrote:Wear shitty head phones!
fixed ;)
I don't get it.

I've always worn good headphones when I was playing on my DMG. Why would I want mono when I could have stereo? Some games had really excellent music which the built in speaker just wasn't cut out for.
May 9 2007 - NSRT 3.4, now with lots of hashing and even more accurate information! Go download it.
_____________
Insane Coding
sweener2001
Inmate
Posts: 1751
Joined: Mon Dec 06, 2004 7:47 am
Location: WA

Post by sweener2001 »

the request was for "crappy GB speaker" emulation, if i read it correctly. and currently, wearing headphones from the dollar store would get that effect across, while good headphones would not
[img]http://i26.photobucket.com/albums/c128/sweener2001/StewieSIGPIC.png[/img]
odditude
Official tech support dood
Posts: 2120
Joined: Wed Jan 25, 2006 7:57 am

Post by odditude »

Nach wrote:
odditude wrote:
Nach wrote:Wear shitty head phones!
fixed ;)
I don't get it.

I've always worn good headphones when I was playing on my DMG. Why would I want mono when I could have stereo? Some games had really excellent music which the built in speaker just wasn't cut out for.
misinterpreted. i thought you meant "recreate the shitty DMG speaker in the emulator by wearing crappy headphones," not "the DMG audio was just fine if you had decent headphones."

edit: yeah, what sweener said.
Why yes, my shift key *IS* broken.
ZH/Franky

Post by ZH/Franky »

When I'm playing gameboy (or when I use any portable system that has normal headphone ports), I plug my pc speaker's audio input jack into the headphone ports. It works awesomely.

I do it all the time when playing Warioland 2.
Post Reply