BlitterStudio / amiberry

Optimized Amiga emulator for Linux/macOS
https://amiberry.com
GNU General Public License v3.0
660 stars 89 forks source link

Amiberry 3.3 slow and choppy on RPi 4 #767

Closed gordonfreemanhr closed 3 years ago

gordonfreemanhr commented 3 years ago

First of all, thanks for this. This is the best working RPi Amiga emulator so far. All my games just work out of the box.

But, the emulation is a bit slow - not super slow, just bit slow - and the sound is choppy accordingly. I have not messed with the settings and I don’t want to break anything.

I’m on Retropie 4.71, yesterday’s fresh install, 64 GB SD card, 4 GB RPi 4, official power supply, games stored on an external USB.

midwan commented 3 years ago

@gordonfreemanhr Under what conditions do you find it slow and with choppy sound?

gordonfreemanhr commented 3 years ago

Every game started from the EmulationStation is like this. I can hear sound chopping and the animations seem to be playing at about 0.7-0.8 default speed. (This just a feeling, I have no way to accurately calculate this). The Pi is not overclocked.

midwan commented 3 years ago

@gordonfreemanhr That sounds weird, I've never seen a game that doesn't run full speed on the Pi4. You can enable the Status bar from the Amiberry GUI (check the Misc panel), to see how many FPS it's doing. PAL games should run at 50, NTSC ones at 60.

Did you install Amiberry using RetroPie-Setup? Are you using the pre-compiled binary that RetroPie provides, or did you install it from source?

gordonfreemanhr commented 3 years ago

Thanks for the tip. I checked with the Status bar: every Amiga game I tried runs at 30 FPS.

Yes, I used RetroPie-Setup and the pre-compiled binary.

midwan commented 3 years ago

OK, sounds like something is limiting your FPS. What resolution is the RPI running at, on your monitor? Amiberry uses VSync, so if the resolution is at 30Hz, that would explain it.

gordonfreemanhr commented 3 years ago

It's plugged to my Smart TV and at the default settings. Apparently the default 4K settings are limiting the framerate to 30 FPS. The problem is, when I change my resolution to anything else than the "monitor preferred resolution", the Retropie... dies. Seriously, I tested it. It happened to me twice yesterday. The ES just won't boot afterwards and I have to wipe the SD card to start over again. Therefore, I need to find a way to change framerate to 60 FPS WITHOUT changing the resolution...

On Mon, Feb 1, 2021 at 2:14 PM Dimitris Panokostas notifications@github.com wrote:

OK, sounds like something is limiting your FPS. What resolution is the RPI running at, on your monitor? Amiberry uses VSync, so if the resolution is at 30Hz, that would explain it.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/midwan/amiberry/issues/767#issuecomment-770848295, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJLNR63IQJA4C7CAPQ46ZFDS42SNBANCNFSM4W4S3QOA .

midwan commented 3 years ago

It could be that the 30Hz is limited by the RPI4 itself, in order to output 4K. Have you tried changing the /boot/config.txt options, to force 1080p? There’s documentation on that on the official Rasperry Pi foundation page.

Either way, this doesn't seem to be an Amiberry problem exactly... :)

instan7Karma commented 3 years ago

Quick tip allthough this has nothing todo with amiberrry, try adding this line to config.txt: hdmi_enable_4kp60 (Pi 4B only) By default, when connected to a 4K monitor, the Raspberry Pi 4B will select a 30hz refresh rate. Use this option to allow selection of 60Hz refresh rates. Note, this will increase power consumption and increase the temperature of the Raspberry Pi. It is not possible to output 4Kp60 on both micro HDMI ports simultaneously. https://www.raspberrypi.org/documentation/configuration/config-txt/video.md

gordonfreemanhr commented 3 years ago

I managed to switch to 1080p eventually, but no effect, sadly. Amiberry’s running at 30 FPS, as previously.

Sent from my iPhone

On 1 Feb 2021, at 3:53 PM, instan7Karma notifications@github.com wrote:

 try adding this line to config.txt: hdmi_enable_4kp60 (Pi 4B only) By default, when connected to a 4K monitor, the Raspberry Pi 4B will select a 30hz refresh rate. Use this option to allow selection of 60Hz refresh rates. Note, this will increase power consumption and increase the temperature of the Raspberry Pi. It is not possible to output 4Kp60 on both micro HDMI ports simultaneously. https://www.raspberrypi.org/documentation/configuration/config-txt/video.md

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

midwan commented 3 years ago

@gordonfreemanhr If your monitor is doing 1080p at 30Hz, then you'll always get 30FPS in Amiberry as well. Did you check that?

gordonfreemanhr commented 3 years ago

According to raspi-config, it’s 1080p at 60Hz now. I don’t know how accurate the tool is, but that’s what it says.

Sent from my iPhone

On 1 Feb 2021, at 10:58 PM, Dimitris Panokostas notifications@github.com wrote:

 @gordonfreemanhr If your monitor is doing 1080p at 30Hz, then you'll always get 30FPS in Amiberry as well. Did you check that?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

gordonfreemanhr commented 3 years ago

Also, another person just popped up in the respective topic on the RetroPie forum. Apparently, I’m not the only one having problems with Amiberry on the latest RetroPie image.

Sent from my iPhone

On 1 Feb 2021, at 11:01 PM, Kuba Sieńczyk kubasienczyk@gmail.com wrote:

According to raspi-config, it’s 1080p at 60Hz now. I don’t know how accurate the tool is, but that’s what it says.

Sent from my iPhone

On 1 Feb 2021, at 10:58 PM, Dimitris Panokostas notifications@github.com wrote:

 @gordonfreemanhr If your monitor is doing 1080p at 30Hz, then you'll always get 30FPS in Amiberry as well. Did you check that?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

midwan commented 3 years ago

@gordonfreemanhr Do you have a way to see what the monitor/TV reports as current resolution? It should have some information panel regarding the current settings, which will include refresh rate.

I can't think of any other reason you would be limited to 30FPS while on 1080p, the Pi4 is more than capable of handling it (even the Pi3 could handle most games at 50/60 FPS), and Amiberry v3.3 has not changed since it was released several months ago (with hundreds of testers on various platforms).

gordonfreemanhr commented 3 years ago

You might want to look into the ongoing topic on the RetroPie forum: https://retropie.org.uk/forum/topic/29453/amiberry-3-3-rpi-4-slow/40

Apparently, despite RetroPie claiming I’m on 1080p, I wasn’t. I was still on 4K, hence the 30 FPS.

The struggle to change the resolution is ongoing. After a recent advice regarding config.txt, eventually my Smart TV ‘admitted’ to be running in 640x480 60p, but - guess what - the EmulationStation is not booting now.

It seems they’ve given up...

On 3 Feb 2021, at 2:00 PM, Dimitris Panokostas notifications@github.com wrote:

 @gordonfreemanhr Do you have a way to see what the monitor/TV reports as current resolution? It should have some information panel regarding the current settings, which will include refresh rate.

I can't think of any other reason you would be limited to 30FPS while on 1080p, the Pi4 is more than capable of handling it (even the Pi3 could handle most games at 50/60 FPS), and Amiberry v3.3 has not changed since it was released several months ago (with hundreds of testers on various platforms).

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

midwan commented 3 years ago

@gordonfreemanhr Thanks for the link. It certainly seems like a bit of a mess... Amiberry can handle any resolution you throw at it, but it's up to the device's hardware to handle the extra throughput if you go for a higher one (e.g. 4K). The higher the resolution, the more pixels it needs to push per frame.

I hope you'll find a solution to this, but as it's not really related to Amiberry and there's nothing I can do from here, I'll close this case for now. Feel free to post any updates if you find a solution in the future, so that other people might find them as well.

gordonfreemanhr commented 3 years ago

WE GOT IT.

After countless combinations, we found the right one.

The problem is that Samsung Smart TV overrides RPi's resolution settings - despite your raspi-config choices and what you put in config.txt - and upscales them up to 4K - it's preferred resolution. This works bad for RPi, forcing it to 30 FPS, which really, really shows in Amiberry.

The solution is adding the following lines to config.txt:

[hdmi:0] hdmi_max_pixel_freq=200000000 [hdmi:1] hdmi_max_pixel_freq=200000000 hdmi_ignore_edid=0xa5000080

On Wed, Feb 3, 2021 at 6:45 PM Dimitris Panokostas notifications@github.com wrote:

Closed #767 https://github.com/midwan/amiberry/issues/767.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/midwan/amiberry/issues/767#event-4286654169, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJLNR62YWRTMOI5XZUBQ34LS5GDT5ANCNFSM4W4S3QOA .

midwan commented 3 years ago

@gordonfreemanhr Thanks for sharing the solution!

solskogen commented 3 years ago

Perhaps put that in the FAQ?

On Fri, Feb 5, 2021 at 12:03 AM Dimitris Panokostas < notifications@github.com> wrote:

@gordonfreemanhr https://github.com/gordonfreemanhr Thanks for sharing the solution!

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/midwan/amiberry/issues/767#issuecomment-773660246, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAHY72HE76O7EC5N4MPNUKTS5MRSVANCNFSM4W4S3QOA .

midwan commented 3 years ago

Done: https://github.com/midwan/amiberry/wiki/FAQ

mpisau commented 2 years ago

Same here with a LG Nano TV. Thanks for sharing the solution.