Add onscreen interactive keypad overlay support#92
Add onscreen interactive keypad overlay support#92LibretroAdmin merged 40 commits intolibretro:masterfrom
Conversation
This commit introduces the implementation of stb_image functions in a new source file, stb_image_impl.c. This file includes the necessary definitions to enable the functionality provided by the stb_image library. Only one C file should define STB_IMAGE_IMPLEMENTATION to avoid multiple definitions.
- Added comprehensive technical overview and visual reference documentation for the file browser feature. - Added support for various platforms, ensuring consistent behavior across Windows, Linux, macOS, Android, Switch, and Vita. - Included error handling strategies and performance considerations for efficient operation. - Updated build configurations to include new source files for different architectures (arm64-v8a, armeabi-v7a, riscv64, x86, x86_64).
- Created dependency files for various source files including cart.c, controller.c, cp1610.c, and others. - Updated dependencies for libretro-common components such as compat_posix_string.c, compat_snprintf.c, and file_path.c. - Included necessary headers for each source file to ensure proper compilation. - Enhanced project structure by organizing object files and their dependencies for better build management.
Added images and updated contributors section in README.
Added Ko-fi username for funding support.
… a 'core option'.
…for change to core option from separate core
…splay instructions
…splay name, supported extensions, and description
- Implement side-by-side dual-screen rendering (1074×600 workspace) - Add touchscreen hotspot input detection for 12 keypad buttons - Support ROM-specific PNG overlays (370×600 pixels) - Add cross-platform input handling (Android, Windows, Linux) - Include screen swap functionality - Update documentation with setup and usage instructions - Update core metadata and info file - Remove debug logging infrastructure - Maintain full backward compatibility
…erlays Add Dual-Screen Touchscreen and Overlay Support to FreeIntv Core
…ced onscreen interactive keypad overlays and improved versioning
|
Sorry I haven't been able to test this much yet, have a few home projects that are taking up most of my time this week but I wanted to give you some feedback based on some initial observations.
Overall I really like the approach, I just want to make sure it can be toggled on or off so users can choose to enable it, especially if the virtual keypad is hidden for controller-only users as that would be a regression. Once the core option is there, I see no major issues with moving forward with this from a usability perspective at least. I did not have much time to look at the code itself at this point. |
|
The core options only show up after you load a ROM, which is weird. I'll
have to see if there's some way to have it show prior to loading the ROM.
The other thing I need to fix is the small popup keypad on the standard
version when the core option is off. I didn't realize it killed it with my
updates.
Try loading a ROM and then looking for the core option. It's the controller
swap, and the multiscreen thing, and let me know if that works for you.
Jason
…On Wed, Dec 3, 2025, 12:08 AM Mike Sheehan ***@***.***> wrote:
*msheehan79* left a comment (libretro/FreeIntv#92)
<#92 (comment)>
Sorry I haven't been able to test this much yet, have a few home projects
that are taking up most of my time this week but I wanted to give you some
feedback based on some initial observations.
- Compiled fine for me on Windows, and with the assets bundled in it
rendered immediately so that is definitely a better initial experience
- I did not see any new Core Options to enable/disable the overlays
(You mention it in your PR Installation Step 3, did you put the toggle
somewhere else? I am looking in the options defined in
libretro_core_options.h)
- I didn't see any notable performance hits like I saw on the previous
PR - (In that build I had only seen the drop when I was in the fullscreen
option which I didn't see in this version).
- With the overlays active, when I press the "Show keypad" button the
original virtual keypad isn't visible (maybe it is rendering but hidden
behind the overlay image?). It would really cool if the virtual keypad from
the original core design could be incorporated into your
overlays/controller but at least if the core option is available to turn
off the overlays that would make sure it doesn't remove current
functionality for controller-only users.
- The controller overlays seem to work well with mouse input, and
setup seems very simple with the new structure.
Overall I really like the approach, I just want to make sure it can be
toggled on or off so users can choose to enable it, especially if the
virtual keypad is hidden for controller-only users as that would be a
regression. Once the core option is there, I see no major issues with
moving forward with this from a usability perspective at least. I did not
have much time to look at the code itself at this point.
—
Reply to this email directly, view it on GitHub
<#92 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ALVKBTPPCKSUEQFTY7FSJJD37ZV4BAVCNFSM6AAAAACNC54OXWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTMMBVGEYDSNBYGU>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
|
I did load a few ROMs to test originally, and checked it then - how/where are you defining the core option? It should be another entry in libretro_core_options.h and then the value should be assigned in function check_variables in the libretro.c file, at which point you can reference it in your logic.
On Wednesday, December 3, 2025 at 07:49:01 PM EST, Jason Carr ***@***.***> wrote:
jcarr71 left a comment (libretro/FreeIntv#92)The core options only show up after you load a ROM, which is weird. I'll
have to see if there's some way to have it show prior to loading the ROM.
The other thing I need to fix is the small popup keypad on the standard
version when the core option is off. I didn't realize it killed it with my
updates.
Try loading a ROM and then looking for the core option. It's the controller
swap, and the multiscreen thing, and let me know if that works for you.
Jason
On Wed, Dec 3, 2025, 12:08 AM Mike Sheehan ***@***.***> wrote:
*msheehan79* left a comment (libretro/FreeIntv#92)
<#92 (comment)>
Sorry I haven't been able to test this much yet, have a few home projects
that are taking up most of my time this week but I wanted to give you some
feedback based on some initial observations.
- Compiled fine for me on Windows, and with the assets bundled in it
rendered immediately so that is definitely a better initial experience
- I did not see any new Core Options to enable/disable the overlays
(You mention it in your PR Installation Step 3, did you put the toggle
somewhere else? I am looking in the options defined in
libretro_core_options.h)
- I didn't see any notable performance hits like I saw on the previous
PR - (In that build I had only seen the drop when I was in the fullscreen
option which I didn't see in this version).
- With the overlays active, when I press the "Show keypad" button the
original virtual keypad isn't visible (maybe it is rendering but hidden
behind the overlay image?). It would really cool if the virtual keypad from
the original core design could be incorporated into your
overlays/controller but at least if the core option is available to turn
off the overlays that would make sure it doesn't remove current
functionality for controller-only users.
- The controller overlays seem to work well with mouse input, and
setup seems very simple with the new structure.
Overall I really like the approach, I just want to make sure it can be
toggled on or off so users can choose to enable it, especially if the
virtual keypad is hidden for controller-only users as that would be a
regression. Once the core option is there, I see no major issues with
moving forward with this from a usability perspective at least. I did not
have much time to look at the code itself at this point.
—
Reply to this email directly, view it on GitHub
<#92 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ALVKBTPPCKSUEQFTY7FSJJD37ZV4BAVCNFSM6AAAAACNC54OXWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTMMBVGEYDSNBYGU>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: ***@***.***>
|
|
That's so weird - it's like my core option is completely gone. I've got
the pop up keypad that was originally there put back. For some reason it
was in a code block that wasn't being activated. Let me research what
happened to the core options and I will get back to you when I have it
corrected. I may have a version on my other computer that has the
changes. So strange it didn't transfer to Github.
Jason
…On Wed, Dec 3, 2025 at 12:08 AM Mike Sheehan ***@***.***> wrote:
*msheehan79* left a comment (libretro/FreeIntv#92)
<#92 (comment)>
Sorry I haven't been able to test this much yet, have a few home projects
that are taking up most of my time this week but I wanted to give you some
feedback based on some initial observations.
- Compiled fine for me on Windows, and with the assets bundled in it
rendered immediately so that is definitely a better initial experience
- I did not see any new Core Options to enable/disable the overlays
(You mention it in your PR Installation Step 3, did you put the toggle
somewhere else? I am looking in the options defined in
libretro_core_options.h)
- I didn't see any notable performance hits like I saw on the previous
PR - (In that build I had only seen the drop when I was in the fullscreen
option which I didn't see in this version).
- With the overlays active, when I press the "Show keypad" button the
original virtual keypad isn't visible (maybe it is rendering but hidden
behind the overlay image?). It would really cool if the virtual keypad from
the original core design could be incorporated into your
overlays/controller but at least if the core option is available to turn
off the overlays that would make sure it doesn't remove current
functionality for controller-only users.
- The controller overlays seem to work well with mouse input, and
setup seems very simple with the new structure.
Overall I really like the approach, I just want to make sure it can be
toggled on or off so users can choose to enable it, especially if the
virtual keypad is hidden for controller-only users as that would be a
regression. Once the core option is there, I see no major issues with
moving forward with this from a usability perspective at least. I did not
have much time to look at the code itself at this point.
—
Reply to this email directly, view it on GitHub
<#92 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ALVKBTPPCKSUEQFTY7FSJJD37ZV4BAVCNFSM6AAAAACNC54OXWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTMMBVGEYDSNBYGU>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
…n default single screen mode.
|
OK - I got it sorted out. Stupid mistake on my part, but I corrected it
and have committed the fixed version. The original keypad will display
(L1) in the single screen mode, and my multi-screen mode can now be found
in the new display section under core options. Check it out and let me
know if you find anything else.
Thanks!
Jason
…On Wed, Dec 3, 2025 at 9:57 PM Jason Carr ***@***.***> wrote:
That's so weird - it's like my core option is completely gone. I've got
the pop up keypad that was originally there put back. For some reason it
was in a code block that wasn't being activated. Let me research what
happened to the core options and I will get back to you when I have it
corrected. I may have a version on my other computer that has the
changes. So strange it didn't transfer to Github.
Jason
On Wed, Dec 3, 2025 at 12:08 AM Mike Sheehan ***@***.***>
wrote:
> *msheehan79* left a comment (libretro/FreeIntv#92)
> <#92 (comment)>
>
> Sorry I haven't been able to test this much yet, have a few home projects
> that are taking up most of my time this week but I wanted to give you some
> feedback based on some initial observations.
>
> - Compiled fine for me on Windows, and with the assets bundled in it
> rendered immediately so that is definitely a better initial experience
> - I did not see any new Core Options to enable/disable the overlays
> (You mention it in your PR Installation Step 3, did you put the toggle
> somewhere else? I am looking in the options defined in
> libretro_core_options.h)
> - I didn't see any notable performance hits like I saw on the
> previous PR - (In that build I had only seen the drop when I was in the
> fullscreen option which I didn't see in this version).
> - With the overlays active, when I press the "Show keypad" button the
> original virtual keypad isn't visible (maybe it is rendering but hidden
> behind the overlay image?). It would really cool if the virtual keypad from
> the original core design could be incorporated into your
> overlays/controller but at least if the core option is available to turn
> off the overlays that would make sure it doesn't remove current
> functionality for controller-only users.
> - The controller overlays seem to work well with mouse input, and
> setup seems very simple with the new structure.
>
> Overall I really like the approach, I just want to make sure it can be
> toggled on or off so users can choose to enable it, especially if the
> virtual keypad is hidden for controller-only users as that would be a
> regression. Once the core option is there, I see no major issues with
> moving forward with this from a usability perspective at least. I did not
> have much time to look at the code itself at this point.
>
> —
> Reply to this email directly, view it on GitHub
> <#92 (comment)>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/ALVKBTPPCKSUEQFTY7FSJJD37ZV4BAVCNFSM6AAAAACNC54OXWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTMMBVGEYDSNBYGU>
> .
> You are receiving this because you authored the thread.Message ID:
> ***@***.***>
>
|
|
Just tested and working as expected! Just a few small suggestions:
I think with those changes in place there should be minimal risk of regressions and this is a great new feature that users can take advantage of. |
…creen/mouse are required.
|
Great suggestions, and I've added them for clarity. It now mentions the
need for restart and touchscreen/mouse, both on the title and in the
description of the core option. Definitely helps having someone look at it
that isn't face down in the code 😅 When you mentioned that, I thought
'duh - that was pretty dumb of me to assume everyone would know what this
is' lol.
Jason
…On Thu, Dec 4, 2025 at 9:02 AM Mike Sheehan ***@***.***> wrote:
*msheehan79* left a comment (libretro/FreeIntv#92)
<#92 (comment)>
Just tested and working as expected! Just a few small suggestions:
- For the Core Option, it should indicate that a restart is required
for the changes to take effect
- It might be helpful to specify in the core option description that
when using the interactive keypads a mouse or touch input is required to
interact with the keypad (unless I've missed something where it is possible
to use gamepad-only in this mode currently?)
I think with those changes in place there should be minimal risk of
regressions and this is a great new feature that users can take advantage
of.
—
Reply to this email directly, view it on GitHub
<#92 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ALVKBTPVIFHUBLUNVYJRIBL4AA5GPAVCNFSM6AAAAACNC54OXWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTMMJSGQYTCNBSGQ>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
|
No worries! From my perspective, this looks good to merge. |
|
Awesome. So I think, as one of the maintainers, you've got the ability to
approve the pull request. I've not seen any responses from anyone else
within the group. I'm not sure who may still be in the loop to do so,
besides yourself?
Jason
…On Thu, Dec 4, 2025, 1:55 PM Mike Sheehan ***@***.***> wrote:
*msheehan79* left a comment (libretro/FreeIntv#92)
<#92 (comment)>
No worries! From my perspective, this looks good to merge.
—
Reply to this email directly, view it on GitHub
<#92 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ALVKBTIV4NAERWCW635PO334AB7T3AVCNFSM6AAAAACNC54OXWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTMMJTHA3TONJSHE>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
Description
This PR adds comprehensive support for onscreen interactive keypad overlays to the FreeIntv libretro core.
Features
Files Changed
README.md: Installation and usage instructions for overlay systemUSER_GUIDE.md: Step-by-step RetroArch configuration guideFreeIntv_libretro.info: Updated metadata and feature descriptionInstallation
system/freeintv_overlays/folder in RetroArch system directorylaser_blast.png)Testing
Fixes issue with Intellivision games requiring overlay-based input on mobile platforms.