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
860 stars 42 forks source link

[Request] bottom screen with ratio fit #30

Open ken-likun opened 3 years ago

ken-likun commented 3 years ago

Is it possible of using bottom screen to play, meanwhile ratio fit. Ratio fitting at bottom screen is ture fitting.

profi200 commented 3 years ago

Possible? Yes, but the scaling is even worse at 1.333333333x compared with 1.5x. I'm unsure if the scaling matrix can even do this uneven of a scaling factor. Bilinear is no problem of course.

But unfortunately i can't make the screen or scaling runtime configurable yet. I need a citro3d port for that and a DMA-330 JIT so i can change the DMA transfers at runtime.

ken-likun commented 3 years ago

I mean is it simple of displaying at bottom screen using 1:1 video scaling. Personally I think 1:1 video scaling of bottom screen is more like GBA's display. If it is simple, could you compile it for me? This is an enhancement request that would be nice-to-have.

Powerlated commented 3 years ago

Good idea. Would also open up the possibility of making GBA Macro mods with the 3DS.

DragonWario commented 1 month ago

The 3DS's bottom screen uses standard square pixels too, so it may be a little sharper for videophiles. Top screen uses a Pixel Aspect Ratio of 1:2, resulting in the need scale 1 standard pixel to 2 horizontally stretched pixels; yielding a slightly blurrier image. There is a way to unpair the pixels and have the game only use half of the "paired" 400px width (the effect used on SNES9x on 3DS), but I would expect there is no way to activate that mode in GBA Firmware, which is why the bottom screen may be the only "realistic" option.

profi200 commented 1 month ago

It's very much possible to use wide mode (800 pixels) if that's what you meant but it's more difficult to render. Have not been getting around to it. The pixels are no longer square in this mode and the GPU is the only hardware that can scale this.

The bottom LCD doesn't really look any better despite having square pixels. It's rotated just like the topscreen which makes it look bad too.

D-Maxwell commented 2 weeks ago

It may look just as bad, but I for one sure would be glad were I able to play GBA games on the bottom screen of my 3DS ; and it would not be "even" in 1:1 scaling, but "hopefully" in that aspect ratio. Non integer scaling is unnecessary and overly complex for the little it achieves.

Would the bare bones functionality of having a boolean toggle in the settings for which screen to display onto possibly be an idea that you may consider for a later release ?