jtothebell / fake-08

A Pico-8 player/emulator for console homebrew
Other
558 stars 49 forks source link

Q90/V90/Bittboy performance issues #155

Open Rezzy-dev opened 1 year ago

Rezzy-dev commented 1 year ago

Some games like "Sybil's Tail" and "Captain Neat-O" are running slow motion, as if their speed has been throttled. The music plays normal speed, but the game is running in slow motion.

Captain Neat-O p8 Sybil's Tail p8

nckstwrt commented 1 year ago

Not for me - just tried the latest build on both carts for Windows and Miyoo Mini and compared them to Pico8 - ran at the same normal speed for me. What platform are you running them under?

Rezzy-dev commented 1 year ago

Really? :O That's odd. I'm running them on a PowKiddy Q90 with the Miyoo CFW 1.3.3. (Bittboy build of Fake-08.)

Windows may be an indication that the ARM processor in the Miyoo device is not powerful enough to run them full speed, but if the Miyoo Mini can run them normal speed, then why don't they run full speed on an equally or more powerful Miyoo device, like the PowKiddy Q90? (Same specs as a PocketGo.) Puzzling...

Rezzy-dev commented 1 year ago

By the latest release, do you mean this one?

https://github.com/jtothebell/fake-08/releases/tag/v0.0.2.18

I was using the latest Action build.

Rezzy-dev commented 1 year ago

Nope, just tested the latest (0.0.2.18) build, too. It's still running these games at less than quarter of the speed they're supposed to play at, while the music is running (near-)normal speed.

I don't understand how on Miyoo Mini they're running full speed for you. That's a complete mystery to me. :confused:

Rezzy-dev commented 1 year ago

Interestingly, Snail, which has a lot more sprites, sound, and animations running during gameplay actually plays normal speed. So I'm definitely suspecting some sort of unforeseen bottleneck here -- I don't see a valid technical reason why the first two games should run at such a slow speed.

Snail - Dream Castle p8

Rezzy-dev commented 1 year ago

Hahhaha! I just realised the irony here: Snail runs fast, and mammals run slow. :laughing:

jtothebell commented 1 year ago

The q90/v90/Bittboy are pretty slow for Pico-8. Their CPU is clocked well below the actual Pico-8 minimum spec, plus they don't have a GPU at all to help with blitting/stretching, and I suspect Pico-8 is optimized better than FAKE-08 as well. So there are many games that don't play full speed on those devices, and it isn't always obvious why.

RandomMan25XX commented 1 year ago

I'll have to test with my own V90, but increasing the clock speed in the setting for the app may help in getting things running slightly better (honestly not sure though, and this assumes you haven't already tried that)

Rezzy-dev commented 1 year ago

Thanks. I don't like overclocking the processor's speed (as I'd like to keep this device working for a long time), but I suspect you may be right. That may be why the games were running normal speed on @nckstwrt's Miyoo Mini.

I'm running the software at the default 702 MHz speed. Snail runs full speed, Captain Neat-O and Sybil's Tail really struggle with the gameplay speed (not audio) and appear to run as if a super slo-mo effect was slapped on them.

What feels odd to me is that some games that appear to contain a lot more things to process run faster, much-much closer to full speed, than the above titles -- though this could be due to optimisation/programming in the games themselves. It could also be a particular feature (music or graphics-processing related?) that Fake-08 has trouble emulating fast that's used in these games. I'm not sure. That's why I've included the cartridges. Examining the games' implementations/code and benchmarking would be needed to find out, I suppose.

Happy to play-test, should the need arise.

Most games appear to run fine with Fake-08 on the Miyoo device (Q90/V90/Bittboy) hardware, at very close to or exactly full speed. It's only a few titles that seem to have visible trouble with the performance. And these two particularly show it.

Rezzy-dev commented 1 year ago

Oh, it turns out the Miyoo Mini has vastly different specs than the rest of the Miyoo devices. I wasn't aware of that. The Miyoo Mini has a 1.2 GHz dual-core processor and 4 times the RAM: 128 MB. It also has a screen that's double the resolution of other Miyoo devices.

It's no wonder the games ran fine for you, @nckstwrt. Other Miyoo devices have a lot less hardware resources to work with: half (for CPU) and quarter (for RAM), respectively.

mhstoller commented 1 year ago

Similar experience with certain carts on an anbernic RG280V - Tac08 runs the game Dank Tomb at "normal" speed, but when loading it in Fake08 the game runs really slowly on v0.0.2.20