Post #3434638
2025-10-11 03:24 UTC
I fixed a few input mappings (there were a few typos from transferring them to keyfiles, and typos in this context means missing or nonexistent controls - not good)
In particular, keyboard controls overlay doesn't crash when displaying DualShock controls now, and Lynx dpad actually works with all screen orientations.
Next, N64. So, Mupen64plus is async, and it's a bit annoying in terms of video output. Its colorburst phase, interlaced field and overscan weren't always in sync with the current frame, so it was flickering more than other platforms, the game would resize back and forth when switching to interlaced or back, etc. This is now all fixed; specifically by making Mupen port's run_frame() implementation wait for swap_buffers(). This does not result in a performance hit; we're waiting in the runner process' main thread - which is mostly idling anyway, since all the heavy lifting happens in Mupen's own thread, and audio playback is in its own thread as well. So, it just works, with no performance hit. If anything, performance seems more consistent on my end, but it may just be the fact I rebooted recently, so I'm just going to assume it's same as before.
So - dot crawl on composite NTSC video now blends together on 60hz screens like it should and like it already did on NES, SNES, PlayStation, Saturn and PC Engine, and interlaced video is consistent.
it also means that the flicker when starting the game or loading a state is completely gone, and it's basically perfect now.
Speaking of N64, I noticed I had a wrong buffer size for N64 in the TV filter, so it looked completely off, and in particular reacted to sharpness changed in an inconsistent way. Can't believe it was just this. So with this I was able to revert a few recent changes that were attempts to fix that, tho it also means a few accuracy changes are lost too. Anyway, N64 should look appropriately crunchy now with maximum sharpness, especially in dark areas.
Meanwhile, 8bitdo 64 controller now has a mapping in SDL, so we now default to that and I slightly changed how we map it internally (swapped A and B buttnos), so now OOTB everything except the C buttons is mapped correctly for it. C buttons are not, but nothign I can do here - upstream maps them to the right stick, which makes sense, but in highscore it doesn't - we really need it to be 4 buttons to provide nice integration. Oh well.
Replies (1)
-
@alice@mk.nyaa.place 2025-10-12 02:51
On the input side, there's now support for 8BitDo NEOGEO controller (no clue why they spelled Neo Geo like that but hey) Unfortunately it only has 1 set of shoulder buttons, so will be useless for a lot of games, but a few people still have it, so - here it is. The thumbstick works the same way as the Neo Geo Pocket one on touchscreen, so hopefully doesn't look horrible