Status Update - December 2020
Added 2021-01-02 12:08:44 +0000 UTCHello! 2020 is (thankfully?) behind us, so it's time for a December status report. This month wasn't as productive as the previous ones, but it was time to dial the pace down and rest a bit.
Cxbx-Reloaded
- Refactor D3D device creation - I completely restructured the way Direct3D initializes in Cxbx-R in preparation for migration to D3D9Ex.
- Move to Direct3D 9Ex - does not provide any significant improvements, other than a properly functioning exclusive fullscreen. With D3D9, device loss takes place when minimizing a fullscreen application which Cxbx-R cannot handle (because Xbox games can't). With D3D9Ex (and newer D3D's) it's not happening anymore.
- Complete refactor of D3D8 LTCG patches calling conventions - squashes a wide array of issues with LTCG patches, as both "old" and "new" (introduced by me a few months ago) patches could result in random issues. With this PR, I made a full sweep through all LTCG patches implemented by Cxbx-R and ensured they are correct.
- Remove debug console - anyone used that? I don't think so, and it only made the code messier. Do note that the console outputting information is still there, the one removed accepted commands from the user.
- Not strictly from me, but an issue I was investigating too: DSound stream fixes - fixes audio looping issues in The Warriors. I mention it here because I also had a PR fixing it, which turned out not to be fully correct - instead, RadWolfie's approach seems to be correct.
PCSX2
- USB: Force Feedback fixes - I wanted to play a few PS2 games with a steering wheel, but PCSX2's FFB implementation was very broken. Last month I opened an issue in which I claimed FFB is too strong, but upon investigating I realized this wasn't the cause - instead, PCSX2 was able to start/stop the FFB effect but was not able to update its parameters, resulting in either no FFB played at all or a (very strong) test pattern playing any time PCSX2 requested it! With my fixes in place, FFB (and wheels overall) work excellent, and I was able to play a few games comfortably this way :)
DuckStation
- XInput: Fix mapping buttons to axes & XInput: Fix mapping triggers to axes - mistakes happen, and when they do you got to fix them fast. My SDL Joystick support implementation introduced a few minor regressions for the XInput backend, so I had to go back and fix them. Nothing major, move along ^^
- Memory Card Editor fixes - I spotted that shared memory cards failed to open in the memory card editor by default, so I came up with a fix. Now they open just like per-game cards.
Other
- About Cyberpunk 2077 and AMD CPUs - only a blog post sparked by a Reddit post of mine so nothing very notable, but it's worth mentioning because I managed to partially squash the "CDPR used an Intel compiler" misinformation and replace it with proper conclusions I still have no interest in playing Cyberpunk, but that was fun!
What's next?
Right now, I'm on well deserved holiday so I try not to think much about what to work on next, but I'm sure 2021 will be as busy as the last year was! The last months brought a lot of exciting emulation-related work and I hope I can keep it going.
Regarding SilentPatches, at the moment I have no plans to start anything new, but you know how it is - in most cases, those come "out of nowhere" without planning, so perhaps some game will catch my attention sooner than I'd have thought.