-
-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Video outputs at 6X scale of actual resolution, causing issues with display filters #13
Comments
The scaling is there to work around Pocket scaler bugs and to force an integer scale, which would not occur with the default Pocket scaling. This is where the black borders come from. I can't do anything about Integer+ scaling. Based on your screenshot, it seems like Analogue's video pipeline is dying, which is their bug, unfortunate as it may be. As for the Trinitron showing 6 lines per pixel, I suppose I could introduce a built in Pocket scaler mode, but it seems unnecessary for me (why do you want scanlines for a LCD?). I guess the GB filters would be nice though. |
Would it be enough to place the 128×64 output inside a 160x144 container? That ought to force 10× integer scale.
Yeah, personally I don't care for the Trinitron filter in this case - I was actually more interested in the "Backlit Color LCD" filter, I figured it'd be a close-enough approximation of the Arduboy's OLED display. ("Pinball Neon Matrix" would also probably work pretty great for this core.) Unfortunately right now, the internal scaling causes all the filters to look more like broken palettes. |
That's how I would have thought it was scaled (though maybe to a higher 320x288 or something resolution), but that doesn't appear to be the case. The code is hard to read, and it was my first port, so I really didn't know what I was doing... |
|
Sorry to come back to this, but it just occurred to me: As of OS 2.0, this should no longer be an issue. Since Display Mode options are available for all OpenFPGA cores, this also includes the "Normal" unfiltered display mode. "Normal" does default to the "Fit" Size option, but you can also use "Integer" and "Integer+" options. This means that you don't have to manually force Integer scaling. |
Would love to see support for lcd filters on this core. Thanks for all that you do, Adam! |
This core appears to internally upscale the image by 6×, which can unfortunately mess up display filters under the wrong conditions.
(This game is "Catacombs of the Damned", aka "Arduboy3D", from the ArduboyCollection repo.)
"Grayscale LCD" in particular breaks when Integer+ scaling is toggled. While there isn't any functional reason to use Integer+ (it crops a large amount of the screen), something here appears to be too much for the display filter to handle.
![Arduboy-2](https://private-user-images.githubusercontent.com/30498581/294725363-3b6aac4a-dfb9-4fd5-831b-7b3867e2452a.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQzNzcxNjYsIm5iZiI6MTcyNDM3Njg2NiwicGF0aCI6Ii8zMDQ5ODU4MS8yOTQ3MjUzNjMtM2I2YWFjNGEtZGZiOS00ZmQ1LTgzMWItN2IzODY3ZTI0NTJhLmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODIzVDAxMzQyNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTljMGU0NTU3Y2MwYzY5ZmEzZTVlOGI1ZGM0YWFmNGNkYWZiMWZmMGU3NDI0MTgyMjNiMzAwNGUwNDZhMTA3ZTQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.2mUK2nt07p8RpGtH1WMNpHTR-yB1eUNo66jViuwUxvk)
Close-up crop, six lines per pixel
![Arduboy-3](https://private-user-images.githubusercontent.com/30498581/294725231-73ef8688-d0a0-4fef-bf40-7a6a774329fa.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQzNzcxNjYsIm5iZiI6MTcyNDM3Njg2NiwicGF0aCI6Ii8zMDQ5ODU4MS8yOTQ3MjUyMzEtNzNlZjg2ODgtZDBhMC00ZmVmLWJmNDAtN2E2YTc3NDMyOWZhLmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODIzVDAxMzQyNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTUwYTQ0MTg1N2E0N2U5ZmFjOTcwYjBjZTU0ZTljZDFlMzdmNjUxNmRhNmNlNGVjZTI3ZDIzNDE1OWRjMGZmYzMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.LDVUCl5DeESuyn-fBI7_kZqU_6jJhsZ4vcO0P8Jp89E)
And a direct screenshot from the Pocket, no upscaling applied. This core includes a lot of black space around the 128×64px screen - though admittedly, I actually prefer how this looks when using display filters, compared to the flat black bezel that other cores produce.
![4f1a02dd-907f-4bd0-8110-4a99232e994b](https://private-user-images.githubusercontent.com/30498581/294725917-ab9b71bf-48ba-4714-9af8-10649163fa4e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQzNzcxNjYsIm5iZiI6MTcyNDM3Njg2NiwicGF0aCI6Ii8zMDQ5ODU4MS8yOTQ3MjU5MTctYWI5YjcxYmYtNDhiYS00NzE0LTlhZjgtMTA2NDkxNjNmYTRlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODIzVDAxMzQyNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTAyODkyYThiNjQxZWU5ZGY2ZjYxYmNiNDgyYjg0Y2Y0ODBjOTZmNDBiNDZmYjcxMGIyMjgxODZmYzlkM2E0YjEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.1OQA_30ZDZ0HJoogOFrHREA4pFjLeZVWVxpljc7WEB0)
The text was updated successfully, but these errors were encountered: