Recalbox Forum

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • recalbox.com
    • Gitlab repository
    • Documentation
    • Discord

    Overlays

    Themes & Interface
    overlays
    10
    48
    50916
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Substring
      Substring last edited by Substring

      just tried Mario. The core scales the game to 1440x1080 on a 1080p screen. Which means it was upscaled in 4:3. In other words, any console meant to be played would have the same fullscreen viewport ? I tried with SMS, NeoGeo, SNES : always the same viewport size. Which makes things rather easy for non PP display

      So the question now is to calculate the screen size when PP is activated

      a little reading : http://libretro.com/forums/showthread.php?t=1471&p=15087&viewfull=1#post15087

      Former dev - Please reply with @substring so that i am notified when you answer me
      Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

      1 Reply Last reply Reply Quote 0
      • ironic
        ironic last edited by

        just tried Mario. The core scales the game to 1440x1080 on a 1080p screen. Which means it was upscaled in 4:3. In other words, any console meant to be played would have the same fullscreen viewport ?

        • YES.
          But is you activate Integer Scale, the size would be : 1280x960
          NES pixels are X=1,25 for Y=1
          (2561.25=320 2401 = 240 320/240 = 1.33 = 4/3)

        On your link, you can see all consoles use 240 pixels (vertical) but not all viewport is used.
        SMS use only 256x192 but the resolution is 256x240.

        Your link talks about non-square pixel.

        There is a lot resolution and lot of game console, so we must only try to respect 4/3 format on your monitor.
        3/4 for Arcade vertical games.

        For best image quality, we must use Integer Scale.
        (PP or Pixel Pefect can be used only with square pixel).

        For all 4/3 games, we must use :
        On 1280x1024 monitor => 1280x960 resolution.
        On 1280x720 monitor => 960x720 resolution.
        On 1920x1080 monitor => 1280x960 resolution.
        (LCD pixels aren't exactly square, lets forget that).

        But...

        Everything I have said is false
        Resolution is 240 (vertical) but only 224 pixels are displayed.

        So...

        The real aspect ratio of a game is 4/3 in fullscreen.
        The displayed pixels area is 256x224 ou 320x224 ou 384x224...

        On a fullHD (with Perfect Pixels) the screen with Integer Scal must be :
        (Vertical) 1080/224 = 4.82 (keep 4).
        2244 = 896
        896/3
        4 = 1194.6 (keep 1194)
        X = 1194 and Y = 896

        On my 1280x1024 5/4 monitor.
        1024/224 = 4.57
        2244 = 896
        896/3
        4 = 1194.6 (keep 1194)
        X = 1194 and Y = 896

        4/3 = 1.333333......
        1194/896 = 1.3325....

        This is (for me) the "perfect way" to display a NeoGeo (or other 4/3) game on a 5/4 LCD monitor.
        text alternatif

        text alternatif

        • 4/3 screen (320x224 upscaled).
        • Scanlines Shader is perfect

        For those who say, the honrizontal scale is not an integer scale, i answer :
        Remember the PAL/NTSC resolution.
        NTSC (525 lines fo 720 × 480) PAL (625 lines for 720 × 576).

        On hi resolution, 1280x1024 or 1920x1080, we can use non-integer scale, 99% of people never seen the non-integer pixels.
        Without scanline, nothing is visible.

        All these "equations" gives a headache ? Sure...
        But what we (you) want to do ?

        This post is for Overlays but for perfect overlays, a screen ratio must be definied.

        Rpi2/Rpi3 - LCD/CRT- NES30 Pro-iBUFFALO

        1 Reply Last reply Reply Quote 0
        • Substring
          Substring last edited by Substring

          @ironic all of your posts give such a headache lol But at least we move forward 🙂

          But if i want to sum up what you wrote :

          • we need to keep the 4:3 ratio for consoles
          • it's only worth with integer scale
          • The integer scale resolution is the same for any console, but must be calculated according to the screen resolution :
            • 1080p : 1280x960
            • 5:4 (DMT 35 1280x1024) : 1280x960 too
            • 720p : 960x720

          I guess that sets it for consoles ?

          If so, here are the margins left for each mode :

          • 1080p : top/bottom : 60px, left/right : 320px
          • 1280x1024 : top/bottom : 32px, left/right : 0px
          • 720p: top/bottom : 0px, left/right : 160px

          1080p has space left everywhere
          720p just has 160px left on left as well as on right => we can't let retroarch shrink a 1080p overlay
          1280x1024 as 32px left on top as well as on bottom => worthless

          What about arcade (forget NeoGeo) ? Looks like those rules fail as we can't set a generic viewport : Mame handles the real resolution of games, and nothing is stretched to 4:3 unless forced or native ? That would mean a per game viewport

          One more thing : i thought PP and IntegerScale are the same ... but no ? PP is when we strictly respect the original resolution without stretching it to fit 4:3 ?

          Former dev - Please reply with @substring so that i am notified when you answer me
          Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

          1 Reply Last reply Reply Quote 0
          • supernature2k
            supernature2k last edited by

            I dont agree with this: The integer scale resolution is the same for any console,

            Pi powered NES | Gameboy HD | RecalStation | RecalDrive
            Upvote messages if it has been useful ;)

            1 Reply Last reply Reply Quote 0
            • Substring
              Substring last edited by

              @supernature2k indeed you are right ... As it depends on the native console resolution stretched to 4:3

              Former dev - Please reply with @substring so that i am notified when you answer me
              Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

              1 Reply Last reply Reply Quote 0
              • Nachtgarm
                Nachtgarm last edited by Nachtgarm

                @supernature2k @subs

                Here are the screenshots, we were talking about earlier:

                System: SNES
                Monitor: 19" TFT LCD
                Connection: HDMI -> DVI
                TV Mode: DMT 35 DVI
                Game: F-ZERO
                Screenshots: raspi2png

                Option 1

                Shader: Scanlines
                Integer Scale: OFF
                Smooth: ON
                Ratio: Auto
                0_1470242953462_fzero2.png

                Option 2

                Shader: Scanlines
                Integer Scale: ON
                Smooth: ON
                Ratio: Auto
                0_1470242975263_fzero1.png

                1 Reply Last reply Reply Quote 0
                • screech
                  screech last edited by screech

                  I don't want to bother you... What you are doing seem very complicated to mee ^^

                  But maybe I can help you.

                  UXS can now generate Picture with Resolution and Ratio configuration.
                  Maybe it can scrape a picture dedicated to overlay.

                  Something basic with wheel or Marquee (maybe 3D or 2D Box) but autogenerated for every game (Console & Arcade)

                  (Just to let you know this is thing UXS can do in a very near futur : Teaser )

                  Clean your Romset with Universal ROM Cleaner
                  Scrape your Romset with Universal XML Scraper

                  1 Reply Last reply Reply Quote 0
                  • ironic
                    ironic last edited by

                    @subs

                    All you wrote is ok.
                    If we want to use overlay all around the game screen, it's better to use Interger Scale.
                    But if we want bigger or thinner overlay, we must disable Interger Scale.
                    As several consoles haven't square pixels, we must disable Integer scale.

                    First, we must do a choice. What do we want ?

                    • The best quality with vertical integer scale ?
                    • The bigger screen with 4/3 ratio respect ?
                    • The more space possible for overlay ?

                    Is the overlay will be enabled game by game ?
                    Or console by console ?

                    I don't know what people wants.
                    Most people are not interested in all that we say here. They just want nice quality games and fun.

                    For Arcade games, is more difficult.
                    There's several resolution but we can keep 4/3 aspect ratio (or 3/4).

                    Another problem is RetroArch crop the game screen.
                    Some NeoGeo game use 320x224 and other 304x224 but RetroArch resize the screen.
                    Some game (like Sega M.S.) have a "no pixel area border" on left.

                    I think we must define a generic viewport of 4/3 with enough space for overlay.

                    Pixel Perfect and Integer Scale are 2 differents things (for me).
                    Integer Scale means that all honrizontal pixels have same size, all vertical pixels have same size,
                    But honrizontal size and vertical size of a pixel can be different.
                    On my Bartop, one NES pixel is 5 native pixels (honrizontal) and 4 native pixels (vertical).

                    Pixel Perfect means all pixels have same size, honrizontal = vertical.
                    Pixels are square.

                    Recalbox wiki say Integer Scale = Pixel Perfect.
                    Why not. It's ok for me. But i prefer use Interger Scale.
                    Pixel Perfect is for browser or photoshop users...

                    @screech
                    Yes, it's very complicated.
                    Shall we try and compare quality overlays.
                    I will try your new UXS soon...

                    Rpi2/Rpi3 - LCD/CRT- NES30 Pro-iBUFFALO

                    1 Reply Last reply Reply Quote 0
                    • Substring
                      Substring last edited by

                      This is how I see things according to what I've understood so far :

                      • overlays without integer scale is as easy as killing babies with axes : consoles (not handheld) will be stretched to max size (which is screen height * 4/3). Handhelds are natively pixel perfect, so it's the same story almost. Any overlay for non IS game will just fill a pair of side borders
                      • using overlays on 1280x1024 screens is worthless but for vertical shmup
                      • I still think overlays are much more worth when integer scale is on
                      • handheld consoles should be easy for there IS screen resolution
                      • nothing is set yet on how to manage arcade
                      • the aim os to make some overlay models for each console, for a few different screens, even if i think 1080p and 720p are the only worth ones
                      • integer scale is, as i understood, the fact of multiplying both the emulator resolution by a single integer. It has no impact on scaling the video to 4:3
                      • for arcade, i think we should keep the original rom resolution (or smhumps would be stretched) => Pixel Perfect mode for arcade. One of my next tasks for arcade is to list all mame supported games with their resolution. Haven't checked yet how it is stored on fba

                      Of course, this is my personnal opinion. I think we put things plain, time to decide ^^

                      For consoles, based on the link i posted earlier on the libretro forum, this is what i suggest as resolutions :

                      • SNES : 299x224
                      • Megadrive : 299x224
                      • NES : 299x224
                      • SMS : 256x192
                      • FDS : 299x224
                      • NeoGeo : 299x224 (though i wonder, looks like it crops the image)

                      Former dev - Please reply with @substring so that i am notified when you answer me
                      Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

                      1 Reply Last reply Reply Quote 0
                      • ironic
                        ironic last edited by

                        299/224 = 1.3348
                        It's the nearest 1.3333 CRT (4/3) aspect ratio.

                        If our monitors have a square pixel, everything is good.
                        If the pixels are not square, we must recalculate the resolution.

                        On my LCD1280x1024 IBM ThinkVision 17 "5/4:
                        X = 340mm
                        Y = 271mm

                        340/1280 = 0.265
                        271/1024 = 0.264
                        A pixel is 0.26mm x 0.26mm

                        We can say that the pixels are square.
                        Somebody can calculate pixel size on 16/9 monitor?

                        Various resolutions will be used:
                        1280x1024, 1280x720, 1920x1080

                        The basis for the resolution is 4/3 of 299/224.
                        With a vertical Integer Scale and the largest image:

                        1280/1024:
                        299/224 × 4 = 1196x896
                        text alternatif

                        1280 * 720:
                        299/224 x 3 = 897x672
                        text alternatif

                        1920/1080:
                        299/224 × 4 = 1196x896
                        text alternatif

                        With this resolution, image quality will be the best, with and Without scanline shader.
                        And give area for an overlay.

                        Arcade games resolution and other:
                        Arcade Infos Games

                        For arcade games, overlays are very differents. It's impossible to set a resolution.
                        Each game must have his resolution.

                        Rpi2/Rpi3 - LCD/CRT- NES30 Pro-iBUFFALO

                        1 Reply Last reply Reply Quote 1
                        • Substring
                          Substring last edited by

                          Very nice job ironic.

                          Concernning lcd monitors square pixels, let it be a dogma : they are square, can't bother for every recalboxer ...

                          For arcade, as I said earlier, the aim of the topic is to go step by step, and find some rules and scales for overlays. I'd love to offer some masks (png / psd) for people (like @screech) who want to generate overlays

                          so far we haven't spoken yet of handhelds, but they all have a lcd screen, just need to find their resolutions, and their integer scale values for 1080p and 5:4

                          @ironic the SMS is the only one with a resolution different from 299x224 : 256/192, which is 4/3. So this perticular overlay should be slightly different than others. We also means quite some consoles, namely vectrex as you've worked quite much on its overlays

                          As, quite often, most consoles have several resolutions, should we force a 4/3 custom ratio in retroarch or can wa consider afterall that those consoles would anyway render to 299x224 ?

                          For the pixel aspect ratio of any screen : you can do it much faster. The panel size ratio MUST equal the resolution aspect ratio.
                          In yur case, you just pray that 340/1280 = 271/1024 => 1280/1024 = 340/271. 5/4 = 1.25, 340/271 = 1.262

                          Anyway, no need to check monitors, that's a user problem that we can't solve through recalbox as it depends on parameters (the real lcd panel size) that we can't programmatically get.

                          Former dev - Please reply with @substring so that i am notified when you answer me
                          Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

                          1 Reply Last reply Reply Quote 0
                          • ironic
                            ironic last edited by

                            Arcade Overlays :

                            Let's try to scale an overlay :
                            Dragon Ninja (256x240)

                            This is a pixel perfect 256x240
                            text alternatif

                            To see how it really must be, scale it to 4/3 (320x240)
                            text alternatif

                            The Bezel is square, how can we scale it to fit 4/3, 5/4 or 16/9 screen ?
                            text alternatif

                            I don't know.
                            Here, the game screen is very very small...
                            text alternatif

                            We can find some 16/9 truncated Bezels for 16/9 as :
                            (This one is 1.32 Ratio)
                            text alternatif

                            Rpi2/Rpi3 - LCD/CRT- NES30 Pro-iBUFFALO

                            1 Reply Last reply Reply Quote 0
                            • Substring
                              Substring last edited by

                              The viewport of the bezel is too small. Such a game 320x240 once stretched to 4:3 will be "integer-scaled".
                              For 1280x1024 : factor 4 => 1280x960
                              For 1920x1080 : factor 4 => 1280x960, but with bigger borders

                              This is how I wee things. This example prooves once again that 1280x1024 is not worth for overlays unless you want the viewport to look like a stamp

                              Former dev - Please reply with @substring so that i am notified when you answer me
                              Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

                              1 Reply Last reply Reply Quote 0
                              • paradadf
                                paradadf Staff last edited by

                                https://github.com/libretro/mame2003-libretro/pull/53

                                There has been some corrections about aspect ratio in mame2003. This last pr reverts some stuff. I suppose it is relevant so I post it here.

                                If your question was answered, please mark it as solved: Topic Tools -> Ask a question + Topic Tools -> Mark as Solved

                                1 Reply Last reply Reply Quote 0
                                • codyv59
                                  codyv59 last edited by

                                  1_1475323434536_1( 1280x1024).png 0_1475323434536_1( 1280x720).png

                                  1 Reply Last reply Reply Quote 0
                                  • ironic
                                    ironic last edited by

                                    Oh la la, très très jolie Overlay/Bezel, bravo 😉

                                    Rpi2/Rpi3 - LCD/CRT- NES30 Pro-iBUFFALO

                                    1 Reply Last reply Reply Quote 0
                                    • Substring
                                      Substring last edited by

                                      our friends over at HFS made a nice wiki and if you go to http://wiki.hfsplay.fr/doku.php?id=tutos:install_hfsbox15k#l_installation_des_drivers_runtimes_directxand scroll a little down, you have all resolutions for CRT consoles. The rest of the topic is very interesting to read too, despite being in French

                                      Former dev - Please reply with @substring so that i am notified when you answer me
                                      Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

                                      1 Reply Last reply Reply Quote 0
                                      • Substring
                                        Substring last edited by

                                        The complete list of MAME 0.78 resolutions / La liste complete des resolutions MAME à mettre en exergue avec https://forum.recalbox.com/topic/3475/recalbox-sur-tv-crt-en-rgb/308

                                        1020x1020
                                        1024x768
                                        1024x772
                                        1024x780
                                        1024x800
                                        1024x808
                                        1024x840
                                        1024x848
                                        1024x912
                                        1040x880
                                        1050x900
                                        1056x864
                                        160x200
                                        208x232
                                        224x224
                                        224x232
                                        224x240
                                        232x224
                                        240x176
                                        240x192
                                        240x216
                                        240x224
                                        240x232
                                        240x240
                                        240x248
                                        240x256
                                        248x208
                                        248x224
                                        248x240
                                        248x256
                                        250x280
                                        254x232
                                        256x184
                                        256x192
                                        256x200
                                        256x208
                                        256x216
                                        256x222
                                        256x224
                                        256x230
                                        256x232
                                        256x234
                                        256x240
                                        256x248
                                        256x256
                                        256x288
                                        256x448
                                        256x480
                                        260x240
                                        264x224
                                        264x232
                                        272x216
                                        272x224
                                        272x232
                                        272x236
                                        272x256
                                        276x240
                                        280x216
                                        280x224
                                        280x240
                                        284x240
                                        288x208
                                        288x216
                                        288x224
                                        288x256
                                        292x230
                                        292x240
                                        296x224
                                        296x240
                                        300x260
                                        304x224
                                        304x232
                                        304x240
                                        304x248
                                        304x256
                                        318x222
                                        320x152
                                        320x200
                                        320x204
                                        320x224
                                        320x232
                                        320x240
                                        320x256
                                        320x416
                                        336x238
                                        336x239
                                        336x240
                                        338x236
                                        338x240
                                        352x240
                                        352x256
                                        360x224
                                        360x240
                                        360x244
                                        368x224
                                        368x232
                                        368x240
                                        368x448
                                        376x224
                                        376x240
                                        376x248
                                        380x224
                                        384x224
                                        384x240
                                        384x254
                                        384x256
                                        384x280
                                        394x240
                                        396x256
                                        400x248
                                        400x254
                                        400x256
                                        404x254
                                        410x256
                                        416x224
                                        420x400
                                        432x224
                                        448x224
                                        448x240
                                        464x224
                                        480x440
                                        480x480
                                        488x384
                                        496x232
                                        496x384
                                        496x480
                                        500x440
                                        512x192
                                        512x224
                                        512x236
                                        512x238
                                        512x240
                                        512x256
                                        512x288
                                        512x352
                                        512x384
                                        512x400
                                        512x448
                                        512x480
                                        520x400
                                        540x400
                                        580x400
                                        580x500
                                        580x570
                                        638x240
                                        640x232
                                        640x240
                                        640x480
                                        672x240
                                        720x768
                                        768x240
                                        832x448
                                        864x224
                                        900x600
                                        

                                        Former dev - Please reply with @substring so that i am notified when you answer me
                                        Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

                                        1 Reply Last reply Reply Quote 0
                                        • TheRealFox
                                          TheRealFox last edited by TheRealFox

                                          Can someone explain ( a little tuto), please, how to save overlays for every rom separately in mame core, in order to initiate automaticaly with the previsously choosen one on the rom load?

                                          1 Reply Last reply Reply Quote 0
                                          • First post
                                            Last post

                                          Want to support us ?

                                          75
                                          Online

                                          99.6k
                                          Users

                                          28.1k
                                          Topics

                                          187.1k
                                          Posts

                                          Copyright © 2021 recalbox.com