Blinue / Magpie

An all-purpose window upscaler for Windows 10/11.
GNU General Public License v3.0
9.66k stars 496 forks source link

About bilinear cursor upscaling in recent versions #853

Closed BG-Mania closed 8 months ago

BG-Mania commented 8 months ago

Magpie version 程序版本

0.10.6

Windows version 系统版本

Windows 10 Pro 64bit v2009(20H2)

Related screenshot (optional) 相关截图(可选)

Magpie v0 8 0 Cursor Bilinear Magpie v0 10 6 Cursor Bilinear

Reproduction steps 复现步骤

v0.8.0 > [Cursor] > [Zoom Factor of the Cursor] 'Same as Source Window' & [Interpolation Mode] 'Bilinear'

v0.10.6 > [Cursor] > [Draw Cursor] 'On' > [Scaling factor] 'Same as source window' & [Interpolation algorithm] 'Bilinear'

Hello, First of all, Thank you so much for developing such a brilliant application! I play mostly classic games in 800x600 resolution upscaled. In version 0.8.0, the mouse cursor was upscaled nicely with the "Interpolation Mode" - "Bilinear" method, but in recent versions since 0.10.0, it doesn't upscale nicely with the same options. This is not a issue for games that have specialized cursors within the game itself, but it is for games that use Windows-style cursors (e.g. RollerCoaster Tycoon 1, The Sims 1, etc.). I've tried opening the source code files one by one, but I don't have any programming knowledge, so I have no idea what to do.

How can I get the cursor to upscale cleanly in the latest version like it did in the past in 0.8.0?

Log files 日志文件

Magpie_v0.8.0.log Runtime_v0.8.0.log magpie_v0.10.6-x64.log

Blinue commented 8 months ago

Thank you for the feedback! The cursors in these games are what’s known as “monochrome cursors”. According to the documentation, they only have four states, so bilinear interpolation doesn’t make sense for them. If you’re interested, here is the code for drawing them.

https://github.com/Blinue/Magpie/blob/b536d957a73b91bdb4ef02d2a45a1bd69a3e5ec9/src/Magpie.Core/EffectCompiler.cpp#L1240-L1250

The new version is actually more “correct,” but the outcome doesn’t align with user expectations: the cursor seems don’t adhere to the “bilinear interpolation” option, so I consider this a bug rather than a feature, and I plan to fix it in the next release.

BG-Mania commented 8 months ago

I'm appreciate you taking this into consideration. :)

Blinue commented 8 months ago

Does this build fix the issue?

https://github.com/Blinue/Magpie/actions/runs/8342762488/artifacts/1338693167

BG-Mania commented 8 months ago

Same as Source Window   Bilinear

I'm so sorry. It's obviously much better than before, but I still feel like 0.8.0 is better. 😅 It's fine when upscaling 640x480 and 1024x768, but 800x600 is the exception.

Blinue commented 8 months ago

I’ve resolved the issue within the development branch, and this particular fix will not be backported to v0.10. Should you wish to test it immediately, the development build is available for download here. To prevent any overwriting of the global configuration files, it’s advisable to turn on portable mode.

BG-Mania commented 8 months ago

thank you magpie

PERFECT! Thank you for your efforts. You're a Hero of old-school gamers. 😃

Blinue commented 8 months ago

Thank you for your feedback and testing. Have a blast playing!