Picodrive 0.96


notaz

Certified Guru
Joined
Aug 23, 2005
Messages
4,913
Location
Lithuania
Website
notaz.gp2x.de
Finally, after endless hours of debugging the new version is ready.

This is quite a major update. The most important feature which I am very happy about is the utilization of the second processor. It now can be used to generate YM2612 sound samples, what causes quite an improvement of overall performance. Many games (actually all of which I have tested) now can run fullspeed with 44kHz sound at stock speeds. Actually some games now run fullspeed underclocked (I just played through few Vectorman2 levels with 166MHz set and got no slowdowns at all). You may need to set tighter RAM timings to get that (added an option for that in the menus).

I also did some serious optimizations on the sound core without loosing quality (well at least I can't hear a difference). Many games now can run 22kHz sound fullspeed with no overclocking or using the second core.

Now I just wonder what is better for battery life, overclocking one CPU or using both of them, but with no overclock? It would be nice if someone would check, I do not have time for that now.

Here is the detailed change log:
* Severely optimized MAME's YM2612 core, part of it is now rewritten in asm.
+ The YM2612's code now can be run in GP2X's ARM940T CPU, what causes large performance increase.
* Accurate renderers are slightly faster now.
+ Using quadruple buffering instead of doublebuffer now, also updated framelimitter, this should eliminate some scrolling and tearing problems.
* Fixed some flickering issues of 8bit accurate renderer.
+ craigix's RAM timings now can be enabled in the menu (see advanced options).
+ Added ability to save config for specific games only.
+ Gamma control added (using GP2X's hardware capabilities for this).
* Volume keys are now configurable.
+ GnoStiC added USB joystick support, I made it possible to use it for player 2 control (currently untested).
* squidgehack is now applied through kernel module (cleaner way).

UPDATE: just a quick bug-fix release:
* Fixed an issue with incorrect sounds in some games when dualcore operation was enabled (for example punch sound in SOR).
* Limited max volume to 90, because higher values often cause distortions.
* Fixed a bug with lower res scaling.
* Gamma is now reset on exit.

UPDATE2: another quick bug-fix release:
* Gamma-reset-on-entering-menu bug fixed.
* Recompiled PicoDrive with gcc profiling option set as described here:
http://www.gp32x.de/board/index.php?showtopic=28490

download PicoDrive 0.963
source code
 
Last edited by a moderator:
Awesome. Even more reason to use Pico instead of DrMDx now.
(But then again my main reason for using Pico over DrMDx was the compatibility of some games, such as Herzog Zwei and Star Control 1)

Awesome!
 
Nice. I do wonder, about battery consumption. If I can run a game at fullspeed with sound at, say, 266, or fullspeed with sound on the 2nd cpu and 200 mhz, which one uses more battery?

Obviously, those games that are more resource needy might need both, so the issue would be moot in those...
 
Ultimate mortal combat 3 runs at 150mhz fullspeed with everything fancy set at ON (2nd core and the stuff) exept the accurate renderer. 8bit fast renderer.

I hope this will inspire other coders to look up the 2nd core a bit more. Not that I know anything about it, but Notaz shows how its done!

This is SO freakin awsome! In the future, let me see gamegear and the sms fullspeed at 30mhz :p

Great job!
 
I like it, still don't like the sound in Rocket Knight Adventure though.
 
One thing though, the sound is kinda fuzzy in some games. Like Ultimate mortal combat 3, were its very like some broken speakers. And in rock & roll racing, when sliding in the corners it makes a very stupid and poor sound like wiping a window :p This don't happen in drmdx.

But its a very fast release we have here, isn't this the first emu that make us for the 2nd core?
 
PokeParadox posted on Oct 15 2006 at 12:05 AM said:
Nice!
1) Needs more save state slots.
Can be configured in key config mode as a key or key-combo (bind 2 keys for 1 action and don't assign any other action to one of them, then it will act as a shift).

PokeParadox posted on Oct 15 2006 at 12:05 AM said:
2) The save state slot changes depending on the render mode... it's a bit annoying at times.
This is a bug of the previous version, does not happen to me any more. Are you sure it's still there?

Draco posted on Oct 15 2006 at 12:15 AM said:
I like it at still don't like the sound in Rocket Knight Adventure though.

cowai posted on Oct 15 2006 at 12:16 AM said:
One thing though, the sound is kinda fuzzy in some games. Like Ultimate mortal combat 3, were its very like some broken speakers. And in rock & roll racing, when sliding in the corners it makes a very stupid and poor sound like wiping a window :p This don't happen in drmdx.
Some games to not work well with my dual core implementation. Make sure you enable "accurate timing". If that does not help, you will have to use singlecore mode.

EDIT: just checked Rock & Roll Racing sliding sound in Kega Fusion, sounds very much the same. Also played a round of UMK3, didn't notice any "broken speakers" (you meant some sort of distortions by that?). Do I need to play longer, turn up the volume or what (I use headphones)?
 
Last edited by a moderator:
notaz posted on Oct 14 2006 at 10:28 PM said:
PokeParadox posted on Oct 15 2006 at 12:05 AM said:
2) The save state slot changes depending on the render mode... it's a bit annoying at times.
This is a bug of the previous version, does not happen to me any more. Are you sure it's still there?

Apologies! My suggestion of more save states reminded me of the bug from the last version. I just double checked now, and the bug is definately gone! :)
 
Last edited by a moderator:
Stunning release, notaz! THANK YOU :)

It works incredibly well with the sound on the 2nd core. What a great development!
 
According to the "broken speakers", I meant like a distortion yes. I dunno if thats part of the game or the emus fault, and only happends in surtain levels.

I have tried single core and with the 2nd core, its all the same.

But hey! I'm just being picky and want to say that this is the best/fastest piece of software on the gp today, in my opinion.
 
Fantastic! Imho the best piece of software on the GP2x yet. Amazing sound quality. I found no sound bugs on the games I tested.

Many thanks for this great emulator...

Regards,
Stephan
 
My my, this is very impressive indeed. Thank you so much, notaz. ^_^

Using the dual core mode, I was able to get a completely steady 60FPS (or 50, for PAL) on every game that I tested at 170MHz. And that was with 44100Hz sound to boot! I had to overclock to something like 240MHz to get the same results with the previous version, and even then there was a fair bit of slowdown when things got hectic in certain games. Just to test, I toggled off the second core option during the first level of Thunderforce IV, and it quickly went from full speed...to damn near unplayable. It really does make quite a difference. ^_^

Another minor observation is that the music in my PAL copy of Shining in the Darkness now plays perfectly. It could just have been a problem with my ROM, but the music completely refused to play with the previous version. It's just fine now.

Also, while it might just have been me, the floors in Phantasy Star: the End of the Millenium seemed to have a strange, shaky sort of effect whenever you moved that, while not much of a problem, annoyed me a little bit. That's gone with this version too.

Anyway, yeah, I'll shut up now. But thanks a whole bunch. If you accept donations, then remind me to send some money your way later. ^_^
 
Back
Top