profi200 / open_agb_firm

open_agb_firm is a bare metal app for running GBA homebrew/games using the 3DS builtin GBA hardware.
GNU General Public License v3.0
908 stars 44 forks source link

Implement a method to set scaler to 1:1 #12

Closed uncon closed 2 years ago

uncon commented 4 years ago

I believe there should be some way to use 1:1 video scaling. (Personally, I do not like the smeared look of non-integer scaling and am willing to sacrifice screen real estate for sharper pixels.)

Since there is currently no configuration UI, this could be implemented as a separate build, but I understand this would be another build and added effort for binary releases. So, this is an enhancement request that would be nice-to-have.

profi200 commented 4 years ago

I wanted to look into it but ran into a problem. The matrix scaling hardware is currently not only used for scaling but also to fix color accuracy. And this doesn't seem to work for 1:1. I probably have to resort to using the GPU.

It's also getting kinda messy with hardcoded GPU command lists. I will probably not be able to offer proper runtime configuration of scaling until i have a working citro3d port.

stranno commented 3 years ago

Hey @profi200, is the 1:1 scaler fully implemented now?

I have tried the latest commit and display seems to be completely messed up using SCALE 0.

profi200 commented 3 years ago

It is, but it's not a simple one line edit. The hardcoded GPU cmd lists and the hardcoded DMA code is what prevents me from adding a scale option to the config. It's kinda annoying not having a citro3d port and a DMA JIT to get rid of that problem. I will see if i can somehow make this work via a compile time define.

stranno commented 3 years ago

Oh, ok. I though it was that simple x-)

Good luck figuring it out.

profi200 commented 3 years ago

For the time being: open_agb_firm.7z.zip

Rename ".7z.zip" to ".7z". Github won't allow 7-Zip archives in issues for some fucked up reason.

stranno commented 3 years ago

Thank you! It works flawless.

blackbeary commented 2 years ago

For the time being: open_agb_firm.7z.zip

Rename ".7z.zip" to ".7z". Github won't allow 7-Zip archives in issues for some fucked up reason.

Just want to say thank you for compiling this, it's the only way I can play the mother 3 english translation without ANY lag in my favorite scaling !! with headphones nonetheless, very thankful !

MitchTalmadge commented 2 years ago

For anyone coming across this, there is an option called scaler, which if set to 0, will result in 1x scale on the top screen. See https://github.com/profi200/open_agb_firm#video. It seems that there were problems with it before, but it's working great for me now.

profi200 commented 2 years ago

I think this can be closed now. 1:1 scaling has been available for a while.