RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login

    3DS emulator for Pi users based on "Borked 3DS"

    Scheduled Pinned Locked Moved Projects and Themes
    nintendo 3dspi 4pi5borked 3dsx86-64
    119 Posts 9 Posters 26.0k Views
    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.
    • DTEAMD
      DTEAM @gvx64
      last edited by DTEAM

      @gvx64

      My screen is 800x480 and my "emulator resolution" is 640x480

      [Layout]
      anaglyph_shader_name=rendepth (builtin)
      anaglyph_shader_name\default=true
      custom_bottom_height=480
      custom_bottom_height\default=true
      custom_bottom_width=640
      custom_bottom_width\default=true
      custom_bottom_x=80
      custom_bottom_x\default=true
      custom_bottom_y=500
      custom_bottom_y\default=true
      custom_portrait_bottom_height=480
      custom_portrait_bottom_height\default=true
      custom_portrait_bottom_width=640
      custom_portrait_bottom_width\default=true
      custom_portrait_bottom_x=80
      custom_portrait_bottom_x\default=true
      custom_portrait_bottom_y=500
      custom_portrait_bottom_y\default=true
      custom_portrait_top_height=480
      custom_portrait_top_height\default=true
      custom_portrait_top_width=800
      custom_portrait_top_width\default=true
      custom_portrait_top_x=0
      custom_portrait_top_x\default=true
      custom_portrait_top_y=0
      custom_portrait_top_y\default=true
      custom_second_layer_opacity=100
      custom_second_layer_opacity\default=true
      custom_top_height=480
      custom_top_height\default=true
      custom_top_width=800
      custom_top_width\default=true
      custom_top_x=0
      custom_top_x\default=true
      custom_top_y=0
      custom_top_y\default=true
      factor_3d=0
      factor_3d\default=true
      filter_mode=true
      filter_mode\default=true
      large_screen_proportion=4
      large_screen_proportion\default=true
      layout_option=0
      layout_option\default=true
      mono_render_option=0
      mono_render_option\default=true
      pp_shader_name=None (default)
      pp_shader_name\default=false
      render_3d=0
      render_3d\default=true
      screen_bottom_leftright_padding=0
      screen_bottom_leftright_padding\default=true
      screen_bottom_stretch=false
      screen_bottom_stretch\default=true
      screen_bottom_topbottom_padding=0
      screen_bottom_topbottom_padding\default=true
      screen_top_leftright_padding=0
      screen_top_leftright_padding\default=true
      screen_top_stretch=false
      screen_top_stretch\default=true
      screen_top_topbottom_padding=0
      screen_top_topbottom_padding\default=true
      small_screen_position=2
      small_screen_position\default=true
      swap_eyes_3d=true
      swap_eyes_3d\default=false
      swap_screen=false
      swap_screen\default=true
      upright_screen=false
      upright_screen\default=true
      
      
      1 Reply Last reply Reply Quote 0
      • StonedEdgeS
        StonedEdge
        last edited by

        How is the performance on the Pi 4? I've been tempted to upgrade to a 64-bit system but not sure I can be bothered, as 32-bit seems to be where the performance caps out anyway...

        Check out my build logs below:
        Wii SPii (Wii in a GBA SP Shell)
        https://bitbuilt.net/forums/index.php?threads/the-wii-spii.3347/
        Retro Lite CM4
        https://bitbuilt.net/forums/index.php?threads/retro-lite-cm4-a-stonededge-and-dmcke5-collaboration.3934/

        G 1 Reply Last reply Reply Quote 0
        • G
          gvx64 @StonedEdge
          last edited by gvx64

          @StonedEdge With an aggressive overclock (e.g. 2300MHz/900MHz+) some 3DS games are playable on the Pi4, mostly RPGs. In addition to that you will need to optimize every setting possible as well as make use of any possible cheats that can speed up gameplay. For example, the 150% speedhack in Pokemon Sun is enough to get the game playable on my Pi4, which was a pleasant surprise. Less demanding RPG's like Etrian Mystery Dungeon, Etrian Odyssey, Pokemon Mystery Dungeon, Pokemon ORAS all seem to be playable even if they are not quite at full speed. That said, games like Mario Kart and Smash Bros are just out of the question as really any slow-down is completely unforgiving in games like these. If your interest is mainly RPG's and you are comfortable with overclocking, then I would say that it might be worth it for you to get Borked3DS working on your Pi4.

          That said, I believe that the bigger motivation for you to make the jump to 64-bit should be for Gamecube emulation as that is lower hanging fruit than 3ds. Gamecube emulation is a measurably less demanding than 3DS in large part because dolphin has the CPU override feature that works far better than it does in Borked3DS to speed up games on slow hardware (honestly, dolphin is just a better piece of software than citra was and it has far better optimization for use on a variety of devices).

          1 Reply Last reply Reply Quote 0
          • DTEAMD
            DTEAM @gvx64
            last edited by DTEAM

            @gvx64 said in 3DS emulator for Pi users based on "Borked 3DS":

            @DTEAM I appreciate the detailed analysis. Can you let me know the exact screen resolution that you are using that is resulting in this issue? For me to be able to resolve this issue, it is important that I can reproduce it on one of my Pi4's. Once I am finished trying to get shader acceleration functionality working I will see if I can get this problem to reproduce on my Pi's.

            If it's to hard to set it blindly, I'll connect my Pi to a PC screen to do the setup. The arrow control on the screen with a joystick and the hotkeys combo settings with gamepad are more important than my issue I think. Thanks for your hard work.

            G 1 Reply Last reply Reply Quote 0
            • G
              gvx64 @DTEAM
              last edited by gvx64

              @DTEAM No worries, this task is still on my radar. Once I start on it I want to begin by copying your screen resolution and seeing if I can reproduce the problem on my Pi. The problem you are describing is potentially more than just an issue of the config window being too large to fit the window size on the lower res since the text spacing and size is supposed to automatically adjust based on the window size. The fact that yours is getting cut off tells me that there is some potential issue in the window re-sizing functionality.

              I am planning to work on your issue once I am finished with the Hardware Shader Acceleration. I really want to get the Hardware Shader Acceleration working on the Pi as it can (at the very least) allow users to precompile shaders and potentially provide other significant performance gains.

              1 Reply Last reply Reply Quote 2
              • DTEAMD
                DTEAM @gvx64
                last edited by DTEAM

                @gvx64 said in 3DS emulator for Pi users based on "Borked 3DS":

                I did notice similar boxes in Smash 3DS and I am guessing that it might be a similar problem as with Fire Emblem. This patch is Fire Emblem specific and will not help with Smash. Smash 3DS is utterly unplayable on my Pi4, due to it being a fighting game with slow-down, and I doubt that it will even be playable at full-speed on a Pi5 and so I probably will not invest time into fixing those boxes. If somebody really wants to play Smash 3DS on the Pi they can do so using Vulkan as there are no boxes and the usual Vulkan rendering issues aren't too noticeable with this game.

                Super Smash Bros. 3DS (Europe) (rev 11) is fully playable at full speed without bugs on a Pi5 with OPEN GL (GLES extensions) on my side. Great gaming experience for me. Did you try the rev 11 rom version? I'm on mesa (25.0.7-2~bpo12+1)

                G 1 Reply Last reply Reply Quote 1
                • OrionsangelO
                  Orionsangel
                  last edited by

                  DTEAMD 1 Reply Last reply Reply Quote 1
                  • DTEAMD
                    DTEAM @Orionsangel
                    last edited by DTEAM

                    @Orionsangel

                    Wow. This is awesome. Professional work!!! Truly impressive. Thank you so much for this overlay.

                    I hadn't seen it on the thread My Console & Game Themed Bezels for retroarch . I don't know, for now, how to use it with Borked 3ds. I'll check if I can find a way to download it with an option in the UI.

                    G 1 Reply Last reply Reply Quote 1
                    • G
                      gvx64 @DTEAM
                      last edited by gvx64

                      @DTEAM Thanks for letting me know, I will have to look into that. It's great that Smash 4 is working for you on the Pi, I am honestly surprised to hear that it is.

                      I dumped my cart and so I am not sure what version I was using, I will look into the one that you are suggesting. That said, I don't think it was a bad dump because the game played fine on Vulkan except for the usual Citra Vulkan visual artifacts. That said, on GLES with my build, most of the Smash stages were completely unplayable for multiple reasons. First is because of various colored boxes obstructing the screen on battles stages and even the menus (I assume that these are problematic textures for GLES such as incomplete mipmaps but I am not sure). Also Little Mac was neon green and looked like the Hulk for some reason. Finally, the game ran at ~30% on my aggressively OC'ed Pi4 and I recall that disabling right eye did very little to help (I am surprised to hear that it is 100% on the Pi5).

                      I am still running MESA 24.2.9 (the current default for sudo apt install mesa-vulkan-drivers), and so that could definitely be a possible reason for our difference in experiences. I do want to eventually upgrade to 25.1.0 to get the dual source blending functionality (especially for dolphin) but I decided to just wait for mesa-vulkan-drivers to catch up. I may need to fast-track that though if these newer mesa drivers are truly delivering this kind of enhanced Borked3DS gles performance.

                      1 Reply Last reply Reply Quote 1
                      • DTEAMD DTEAM referenced this topic
                      • G
                        gvx64 @DTEAM
                        last edited by

                        @DTEAM HW renderer functionality should be online with latest git commit. It looks like there is a significant performance uplift at least on the Pi4. That said, I recommend not turning on shader cache in Borked3DS as it seems like the shaders are already getting cached in a whole bunch of places and turning it on just makes things even slower when they are first being compiled and cached. The game will actually seemingly crash a bunch of times (or just have a very long pause) when you first turn hardware shader acceleration on as shaders are getting compiled for the first time, that said after a while gameplay should become pretty smooth and noticeably better than with hardware shader acceleration turned off.

                        Note that if for some reason you need to delete your shader cache, it is a bit of a pain on the Pi as the shaders are cached not just in the location that Borked3DS deletes from within the gui. The solution I found was that I had to manually delete all locations of the shader cache in borked as well as all locations of the mesa shader cache:

                        sudo rm -r /home/pi/.local/share/borked3ds-emu/shaders/
                        mv /home/pi/.cache/mesa_shader_cache /home/pi/.cache/mesa_shader_cache_bad
                        mv /home/pi/.cache/mesa_shader_cache_db/ /home/pi/.cache/mesa_shader_cache_db_bad
                        sudo su
                        sudo rm -r /root/.local/share/borked3ds-emu/shaders/
                        sudo rm -r /root/.local/share/borked3ds-emu/borked3ds-emu/shaders/
                        sudo mv /root/.cache/mesa_shader_cache /root/.cache/mesa_shader_cache_bad
                        sudo mv /root/.cache/mesa_shader_cache_db/ /root/.cache/mesa_shader_cache_db_bad
                        

                        Note that you can delete those bad mesa shader directories once you are sure that the removal doesn't cause unforeseen issues on your Pi.

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

                        Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

                        Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.