FreeIntv icon indicating copy to clipboard operation
FreeIntv copied to clipboard

[FEATURE REQUEST] 1:1 Button Mapping Option

Open jdeath opened this issue 3 years ago • 24 comments

Hello. Can you add the option to have a 1:1 customized button mapping for controllers with enough buttons? I have the retronic adapters that allow using the standard intv controllers. The adapter treats the 1-9 keypad as separate buttons, not an analog stick, so cannot use the diagonals 1,3,7,9 with freeintv. I can use all other buttons by mapping the controller buttons using your scheme (e.g. map 5 button to rt). Thank you

edit: I was able to hack the code to force 1, 3 , 7, 9 to start, select, left, right. Basically works, but needs some fine tuning .

jdeath avatar May 15 '22 10:05 jdeath

@jdeath if its helpful, I have a fork of this core with this feature enabled on my dev2 branch here - https://github.com/msheehan79/FreeIntv/tree/dev2.

It defines a second controller type that can be selected in the UI, that omits the On Screen Keypad feature in lieu of having all controller keys available for remapping.

msheehan79 avatar May 15 '22 14:05 msheehan79

@msheehan79 Awesome. I'll try it. Probably way better than my hackjob! edit: got it compiled and running in batocera. Controller doesn't work in retroarch menu, but fine in game. Just need to get used to only being able to hit one key at a time. Really nice job, this should be in the main core!

jdeath avatar May 15 '22 15:05 jdeath

Same request by default: I should be great to be able to set a standard intv controller and snes type controller without having to mod the core! Please make available Keypad 0-9/#/clear button mapping!

anonyme-x22 avatar Dec 19 '22 23:12 anonyme-x22

+1 for this feature request. I would like to use an actual Intellivision controller with this emulator.

Jazzzed avatar Feb 14 '23 00:02 Jazzzed

@msheehan79 I see you have done some work with this issue, but I am a newb and don't understand how the individual files in your Dev2 branch end up in the emulator. Seems that it needs to be compiled or something. That's way beyond my skills. If there is an easy way to go about this, some direction would be appreciated.

Jazzzed avatar Feb 14 '23 01:02 Jazzzed

@Jazzzed yes you would need to compile it locally as its not part of the main branch.

I will see if I can get those changes submitted to upstream if they get approved, but in the meantime if you are on Windows x64 I uploaded my locally compiled copy of the core, if it helps. Unfortunately I don't have any other compiled flavors besides Windows.

https://easyupload.io/q18qxt

msheehan79 avatar Feb 14 '23 01:02 msheehan79

@msheehan79 Ah. Thank you. I'm actually running one of those Android game boxes from Amazon. But thank you for trying.

Jazzzed avatar Feb 14 '23 01:02 Jazzzed

@msheehan79 Just to add: your core mod is awesome. I have been compiling it locally for my own use in batocera, but upstream would be great!

jdeath avatar Feb 14 '23 02:02 jdeath

Hi, folks. I am the lucky owner of an "Ultimate PC Interface" (https://intellivision.us/interface.php) that turns Intellivision controllers (beige Model II with DB-9 connectors) and/or Colecovision controllers into bonafide Windows game controllers. Many Intv games require "kinetic" use of the 12-key numeric keypad e.g. Major League Baseball is unplayable with FreeIntv's OSD approach. So, without further ado, can I ask @Jazzzed or @msheehan79 to upload the compiled core for the branch of FreeIntv that supports direct mapping to specific controller keys, please? (there is a link upthread but it's broken). Also, is there a reason these mods can't be merged into the main FreeIntv branch? I realize I'm in the minority, but logically I am not the only one who craves the "full fat" Intellivision experience :) IMG_3632

RetroJoe64 avatar Nov 17 '23 21:11 RetroJoe64

I wish it was pushed upstream as well, I am not sure if a PR was ever made. It should not interfere with people running the standard way. However, you can't ask for a compiled core without specifying a distribution. Have you tried compiling it yourself? The libretro docs have a guide to compile cores. It is pretty easy if compile on the same type of machine you have. Windows subsystem for linux will even build a linux core no problem.

edit: Maybe you meant windows as that is the core other person posted. Following the docs start to finish took like 1 hour to get to a compiled core. Give it a try: Download the core code from https://github.com/msheehan79/FreeIntv/tree/dev2 , follow the directions here to install msys2 https://docs.libretro.com/development/retroarch/compilation/windows/, start the x64 shell, go to where you unziped the code, and type make.

jdeath avatar Nov 17 '23 23:11 jdeath

Hey, @jdeath thanks for the rapid response! Yes, Windoze (10) is the target platform. Compiling the core is a bit more than I bargained for (just wanna play the games, man!), but I am willing to give it a go. Who knows - this could be the start of a whole "learn how to code" chapter in my career :) I'll keep you posted on results.

RetroJoe64 avatar Nov 18 '23 01:11 RetroJoe64

as far merging upstream, I'm happy to submit it as I'd rather see the feature in-use too - I had opened PR #79 as there wasn't currently Core Options set up on the core and that is needed first - if that one gets merged I can open PR's for the other features I have in my dev branches, including this one.

msheehan79 avatar Nov 18 '23 18:11 msheehan79

Yeah that previously submitted PR is from a year and a half ago. It seems like this project has been abandoned. I personally am looking for a Linux version with 1:1 button mapping that can run on an Android game box (Retroarch/Emuelec). Looking through those instructions for compiling for Windows though, I don’t have a clue. I don’t even know what a shell or a core is. Just someone who would like to play a game as @RetroJoe64 mentioned.

Jazzzed avatar Nov 19 '23 01:11 Jazzzed

I guess I should confess that compiling the core is probably within my technical skillset... but barely :) As far as FreeIntv being "abandoned", how do we change that status to "loved"? :) There is still a lot of passion in the retrogaming community for the Intellivision platform (it's about as "retro" as it gets after the Atari VCS !), and the only other emu for it is "jzintv", which is really funky, has a horrible antiquated UI, and is even less well-supported / documented than FreeIntv, IMHO. In any case (again, IMHO), the days of standalone / single-system emulators is over - RetroArch is the defacto platform for creating a multi-game emulation rig with a modern, seamless UI.

RetroJoe64 avatar Nov 19 '23 20:11 RetroJoe64

@RetroJoe64 if your on Windows, I uploaded the compiled core again below, as that is what I use also so you can at least give it a try until such time as these changes would be available in the upstream core.

https://easyupload.io/ne0fz9

msheehan79 avatar Nov 21 '23 06:11 msheehan79

Here is a x64 linux core: https://easyupload.io/oaftd1 (compiled under Windows Subsystem for Linux). Not sure how to cross compile for Android, but i am sure there are directions somewhere.

It works on a batocera x64 distribution. See my complicated instructions here: https://forum.batocera.org/d/7620-freeintv-using-real-intv-controller

I will keep this issue open until merged.

jdeath avatar Nov 21 '23 11:11 jdeath

Thanks, guys - hopefully, I'll have time to give everything a go over the long week-end. P.S. Responding to some of the Batocera comments, I am currently using Launch Box on Windows as my "meta front-end" (is there a better name than that?), and despite my relative naiveté about the emulation stack, clearly stuff like this belongs in the libretro cores. Legacy emulators have way too much convoluted / pathological coupling going in, likely a result of many years of "quick and dirty" hacks (e.g. to accommodate one specific game...) that never get refactored. But, I am surprised that RetroArch's "retropad" abstraction ignores the fact that many legacy consoles had out-of-the-box numeric keypads (APF M-1000, Intellvision, Colecovision / Adam, Atari 5200), and others had optional keypads (e.g. the Star Raiders controller for the Atari 2600).

RetroJoe64 avatar Nov 21 '23 18:11 RetroJoe64

Here is a x64 linux core: https://easyupload.io/oaftd1 (compiled under Windows Subsystem for Linux). Not sure how to cross compile for Android, but i am sure there are directions somewhere.

It works on a batocera x64 distribution. See my complicated instructions here: https://forum.batocera.org/d/7620-freeintv-using-real-intv-controller

I will keep this issue open until merged.

Whoa. That is awesome! Thank you so much @jdeath. A .SO file is exactly what I would need. I will give it a whirl this weekend. Thanks again.

Jazzzed avatar Nov 21 '23 21:11 Jazzzed

Hi I also need the windows 64 bit version of this but the link is down can anyone help me?

silvrgummy avatar Apr 28 '24 04:04 silvrgummy