Add comprehensive touchscreen and mouse support with fullscreen mode#91
Add comprehensive touchscreen and mouse support with fullscreen mode#91jcarr71 wants to merge 1 commit intolibretro:masterfrom
Conversation
… mode - Implement dual-screen rendering (game + keypad overlay) for all platforms - Add three utility buttons: Toggle Layout, Fullscreen Toggle, Overlay Toggle - Implement fullscreen mode with auto-hide control strip (5 second timeout) - Add PNG-based overlay system for game-specific keypad graphics - Support 12-button hotspot detection with visual feedback - Cross-platform support: Android, Windows (MinGW), and Linux - Fully backwards compatible with existing RetroPad controllers - Add comprehensive user guide and documentation
|
@msheehan79 @markwkidd any chance one of you could take a look at this proposed update when you have a moment? thanks! |
|
@jcarr71 happy to give it a try! I only use Windows x64 so can provide feedback on that platform. I just tried to compile your PR but got this error (I use msys2 to compile here). The regular branch of freeintv compiles OK for me.
|
|
looks like it's not finding the stb_image.h file that is in the src folder. Do you see that in your local copy? I used MingW64 on Windows 11 x64, but I don't think the error is pointing to your compiler - more like it can't find that header file. Here's a link in case it's missing for some reason : |
|
Yes, looks like a few files are missing from your PR that are needed for it to build - I grabbed stb_image_impl.c, stb_image.h and your modified versions of controller.c and controller.h from your repo and with those files added to src it builds. I'll drop it in and try it out shortly in my RA setup. |
|
Thanks for the feedback! That definitely gives me some ideas for better implementation. I'll pull this back for now and will work on some ideas over the next week or so and we'll try again. I didn't notice the slowdown, but will certainly do some more testing. I started this geared towards an alternative core to use, but with it potentially being integrated into the main, I've got some more digging to do to make sure I don't hinder the basic functionality for those not interested in the additions. |
|
Closing this pull request, as I am going to fine tune this a bit more before resubmitting. |
|
@jcarr71 No worries - I can give the revised one a test when you are ready. I don't have a lot of time at the moment but I will also try and troubleshoot the fullscreen performance drop if I can, or at least share my settings. I have my main system settings pretty aggressive (runahead enabled, bfi, low latency video settings, 4K resolution etc) so its probably a lot more resource-hungry than the default settings and why it shows the issue. Ultimately I think your additions will be a big plus, I have struggled with the lack of the overlays a lot when playing but just didn't have any real video coding knowledge for how to incorporate it into the core itself - the best I managed to do was to put the overlays into my frontend (Pegasus) theme so I could try and memorize them before I launched a game :) |
|
Hey Mike - I've submitted a new PR #92. I have switched to a 'core
options' model, so the core should work as normal until my new option is
enabled. I've also included the stb_image.h in the PR. The overlay assets
have been hardcoded into the core, so no longer require external image
files for the keypad template and menu options. When you have a moment,
give it a shot. I'm curious if you run into slowdowns using it with the
option off. The readme has info on where to place the overlay files, and
if you need some test overlays, I have an overlays.zip in the assets folder
in my repo. Holler when you get a chance to test and let me know if you
have any complications.
Thanks,
Jason
…On Sun, Nov 23, 2025 at 11:54 AM Mike Sheehan ***@***.***> wrote:
*msheehan79* left a comment (libretro/FreeIntv#91)
<#91 (comment)>
@jcarr71 <https://github.com/jcarr71> No worries - I can give the revised
one a test when you are ready. I don't have a lot of time at the moment but
I will also try and troubleshoot the fullscreen performance drop if I can,
or at least share my settings. I have my main system settings pretty
aggressive (runahead enabled, bfi, low latency video settings, 4K
resolution etc) so its probably a lot more resource-hungry than the default
settings and why it shows the issue.
Ultimately I think your additions will be a big plus, I have struggled
with the lack of the overlays a lot when playing but just didn't have any
real video coding knowledge for how to incorporate it into the core itself
- the best I managed to do was to put the overlays into my frontend
(Pegasus) theme so I could try and memorize them before I launched a game :)
—
Reply to this email directly, view it on GitHub
<#91 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ALVKBTJUDS3LMRBHGLYK4RT36HRD5AVCNFSM6AAAAACL5FYUICVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTKNRYGE2DQOBZGQ>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
|
Great, I will give it a shot! I probably won't have too much time to try it until the weekend, but will certainly give feedback when I can. I was able to download the asset files from your repo last time, so unless the structure or files changed with this PR I should be good to go to test! |
|
This is very exciting. I'm not able to test this right now but I'm glad
there is some testing going on and I'm trying to keep up with the
information.
…On Mon, Nov 24, 2025, 11:44 PM Mike Sheehan ***@***.***> wrote:
*msheehan79* left a comment (libretro/FreeIntv#91)
<#91 (comment)>
Great, I will give it a shot! I probably won't have too much time to try
it until the weekend, but will certainly give feedback when I can. I was
able to download the asset files from your repo last time, so unless the
structure or files changed with this PR I should be good to go to test!
—
Reply to this email directly, view it on GitHub
<#91 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AEVGC5XUFH7IDAR4UOTKF3L36PNETAVCNFSM6AAAAACL5FYUICVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTKNZTG43DENRXGM>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|

Overview
This PR adds comprehensive touchscreen and mouse support for the FreeIntv core across all platforms (Android, Windows, and Linux), along with a flexible fullscreen mode and PNG-based overlay system.
Key Features
Technical Details
src/libretro.c: Added ~2200 lines for rendering, input handling, and fullscreen logicMakefile.common,jni/Android.mk,.gitlab-ci.ymlUSER_GUIDE.mdand updatedREADME.mdTesting
User-Facing Changes
Co-authored-by
Jason Carr (jcarr71)