Update PicoDrive 1.92


I don't think that's so true with the Genesis, as it is with something like the Saturn. In some ways it's very much built like an Amiga, but I'm not sure the Amiga has dual-ported VRAM, so all memory accesses on the CPU have to be delayed until the horizontal flyback at the very minimum, and might get delayed until the vertical flyback before vsync. The Genesis does have VRAM, so it can continue to read and write memory at full tilt while the system's rendering the framebuffer. The Amiga I know has things of the class 'coprocessors' to allow it to do stuff like blitting, and I'd guess the Genesis does have some fairly advanced ASICs to handle sprites and scrolling.

I'm slightly surprised that Samurai Shodown in that video didn't become unplayably fast in that comparison. Anyone who's trained themselves to play fighting games, and particularly to learn any sort of combo, has learned frame timing, and if it used to be a stable 30fps and is now somewhere near 60fps (or at worst, flopping between 30 and 60fps unpredictably) then it'd become unplayable. But it's fair to say I couldn't actually spot any difference between the two videos of that game even focussing on the barrels (but I'm not sure this computer can actually display 60fps youtube vids, and downscales them to 30fps automatically). And Samurai Shodown is not a game I've ever actually trained at, so I'd have a hard time telling you if it was the game or me not being able to execute a particular move at any given time. But the animation didn't immediately speed up, so either it runs 60fps natively, or it's actually timing animation on something other than the cpu clock tick modulated with the vsync tock. And in my experience, people just didn't use external timers much when coding when just targetting 16.67ms worked so well all the time.

These days with AI subsystems kicking in at unpredictable times, and the workload depending highly on which direction you're looking in, games have to build animation timings and movement deltas using constants that get multiplied by however many frames have ticked past since you started calculating where everything is. That's very difficult to do, because a lot of the time you don't know how long it's going to take until you've at least done some work, and if you set the multiplier wrongly and you see your target frame tick past, you can either sit and wait for the next vsync, and you're animation will be a little bit wonky, or you can switch framebuffers half way through so you're at least on the right animation frame at the end of the rendered frame and can start working on the next frame early, which is why we have tearing these days. Genesis games are just simpler, so if you measure your execution loop to take under 16ms, or somewhere between 16 and 33ms, you can set your movement constants to be suitable for either 60fps or 30fps operations. You can see that bike racing game in the video was never designed to run at 60fps, so when the CPU gets overclocked and it suddenly can run faster, it runs too fast. It may still be playable, but that's beside the point here.
 
Thank you notaz for this update. I still use it everyday and love it. Just a small request, can you add scanlines like PCSX-ReArmed?
 
If anyone wants this on GPH consoles too, I can do a build, but I'll need help testing.
Thanks for the Update Notaz. I can do some testing it on the GP2X F100/200 and Caanoo if you post the GPH builds.
Another good homebrew Mega Drive game which has issues in Picodrive is Retroguru's 'Xump 2'. The sound effects are all distorted. The only way to play it without distortion is to disable the 'YM6212' and just have the music. I tested it on the GP2X-F100 (using Picodrive v1.91). Strange thing was, when I tried on the PSP (using Picodrive v1.51b) the sound effects worked perfect.

Edit:
I've just tried Cave Story, and it has the same sound distortion on the GP2X (in v1.91 and previous) as Xump 2 does, but yet works perfect on the PSP (in v1.51b). So it would be great to have v1.92 for the GPH units to see if it fixed Xump 2 too.
 
Last edited:
Pandafe as there launcher and Sega Genesis (Megadrive) ROMs run with PicoDrive work again (for me)

I use Pandafe as my launcher. Last published version 0.3.0.2-b464 from 2013-11-14
After I had updated PicoDrive to version 1.92 from 2017-10-14 launching Sega Genesis ROMs from within the Pandafe launcher environment didn't work anymore!

Failed with: File not found "/mnt/utmp/picodrive"

Eventually I got it working again. Have no idea how. Below is what I tried. One of those steps (or a combination of them) must have fixed the problem:

I tried to change the program definitions for PicoDrive within Pandafe to no avail. Set it back to the original again (source code). Also rescanned the ROM directory (to rebuild the cache).
Inbetween had a different error, something like "No program found to launch this ROM".
Interestingly: When I was booted into XFCE and then launched Pandafe then launching Sega Genesis roms worked!
Inbetween I restarted into Pandafe directly (my default launcher). Still failed.
Later full shutdown and restart.

Eventually it worked again. :)
 
If anyone wants this on GPH consoles too, I can do a build, but I'll need help testing.
Hi notaz. What would the testing involve? I have most of the GPH handhelds in storage but I guess I could lay hands on my Wiz (I've used Picodrive, gpfce, PCSX ReArmed on most of these at one time or another ;))
 
Back
Top