libretro / flycast

Flycast is a multiplatform Sega Dreamcast emulator. NOTE: No longer actively developed, use upstream repo for libretro from now on - https://github.com/flyinghead/flycast
http://reicast.com
GNU General Public License v2.0
155 stars 77 forks source link

Quake 3 Arena can't run in split-screen mode #810

Open mulcahey opened 4 years ago

mulcahey commented 4 years ago

In 2-player split-screen mode, Quake 3 Arena is unplayable. Images from each half of the screen appear to be overlapping. See attached screenshot. This is on a raspberrypi 4. I installed lr-flycast via RetroPie (from source) earlier today.
Quake III Arena v0 800 (2000)(Sega)(NTSC)(US) ! -200207-155125

flyinghead commented 4 years ago

This game is using a very unique technique to manage clipping and it took me a while to figure it out. It renders the top and bottom parts of the screen to the same framebuffer but rewrites the region array before each rendering to only include tiles of the upper or lower part of the screen as needed. Unfortunately this is something completely ignored by the emulator at the moment and it's not a trivial thing to fix. As far as I know it's unique to this game and only in split-screen mode.

mlnlbrt commented 4 years ago

I would like to note that split-screen is also broken in Unreal Tournament and Re-Volt. In UT both screens flicker a lot and in Re-Volt only second part of the screen is visible.

flyinghead commented 4 years ago

I tested both UT and Re-Volt and I'm not seeing any flickering or missing screen in split-screen mode.

What core settings are you using? on which platform?

Muhlawor commented 4 years ago

There is flickering with vulkan on Windows, opengl works as intended

mlnlbrt commented 4 years ago

@flyinghead Linux, nVidia GPU, Vulkan renderer

KevinLeenders commented 3 years ago

This issue exists on all versions and cores back to reicast > flycast never seen this working on any system (vulkan or openGL). Tried Windows x64, Linux (Batocera with flycast core and flycast standalone) Nvidia Shield and Retropie, never get the 2 or 4 player splitscreen working in Quake 3 arena, also Fur Fighters has flickering bug in Multiplayer with Flycast cores. UT, Re-Volt, Propeller arena, toy commander, ooga booga and a few others work great.

For Fur Fighters if you enable Synchronous Rendering it will work without flickering in splitscreen mode, for Quake I believe I tried all combinations of Synchronous Rendering with other option never got it working.

ReDream had the same issue for a long time but its fixed now, In Windows with redream (version: v1.5.0-458-gdd25557 DEV) I can run quake 3 arena splitscreen (with redream v1.5.0 Stable Quake 3 is not working in splitscreen) Maby this helps! Cheers. IMG_20201127_102748758 IMG_20201127_102719121

hifihedgehog commented 3 years ago

^Can reconfirm this. For me, among the many other titles listed, it also occurs in multiplayer in Looney Tunes: Space Race. I urge others to upvote the comments here to increase prioritization and awareness of this serious, far-reaching, long-standing issue.

flyinghead commented 3 years ago

These commits fix the issue in standalone: https://github.com/flyinghead/flycast/commit/93523df8040982afea3c8cf4229f576678f3a54c https://github.com/flyinghead/flycast/commit/c03cf8eb455925150aad5782ee190d2cceae9b0a

barbudreadmon commented 3 years ago

@flyinghead thanks for the heads-up, i'll try to backport this soon :)

hifihedgehog commented 3 years ago

@flyinghead thanks for the heads-up, i'll try to backport this soon :)

Cool! Just wondering if this was backported yet? Thanks so much!

hifihedgehog commented 3 years ago

@barbudreadmon: Hoping you get a chance to sneak this fix in. It would allow many more people to play multiplayer Dreamcast games without issues.

hifihedgehog commented 3 years ago

@twinaphex, I see you are an active contributor as well to the project. Could you get these commits worked in sometime soon? This issue is over a year old now and it impacts dozens of multiplayer games that use this rendering technique. See the quoted text from the post just a couple posts above. Thanks!

These commits fix the issue in standalone: flyinghead@93523df flyinghead@c03cf8e

hifihedgehog commented 3 years ago

Three-month bump. @barbudreadmon, any update on this? Thanks! :)

hifihedgehog commented 2 years ago

@barbudreadmon @flyinghead, any update on this? Has this fix been merged? Otherwise, multiplayer is still broken.

flyinghead commented 2 years ago

This is now fixed. You need to enable Delay Frame Swapping for correct display.