Colecovision Key Bindings
-
@mediamogul said in Colecovision Key Bindings:
@theroamer said in Colecovision Key Bindings:
@Rion Thanks, yeah those mapping are great for reconfiguring a keyboard. When it comes to the gamepad though, I'm at a loss for what to use for the codes, as there is no utility to tell you what codes your gamepad is spitting out.
This comment was made about two months ago, to which I responded with the possible solution of mapping keyboard input to a controller. With as much time as I could spare here and there, I ultimately learned how to universally do that throughout the whole system. Today, I was going to post a guide that allowed a full mapping that would launch and exit alongside CoolCV.
As it turns out, none of that is even necessary. Beside each SDL keyboard code found in
/opt/retropie/configs/coleco/coolcv_mapping.txt
you are able to input a SDL joystick code directly. I saw this early on and it is mentioned above, but quite frankly didn't know enough about the formatting at the time to understand it. When I looked at it again today, it immediately made sense. There are two examples used for the main action buttons. the first example isjoy0_0
which is referring to joystick 0, button 0, or what would commonly be thought of as the first button on the first joystick.joy0_1
would then of course be referencing the second button on the first joystick.All that is really needed to map any controller occupying a
/dev/input/js*
from here is to know your controller'sjs*
number and then runjstest
to get the proper button number codes for that controller. From there you would just add the properly formatted codes, such asjoy0_0
mentioned above, to where you want them in/opt/retropie/configs/coleco/coolcv_mapping.txt
and it should be good to go. I've tested it myself and it works very well.I don't feel like my research was wasted though. I've learned to map a controller in some really amazing ways as a result of this. For example, I have an optional mapping that is solely for the purpose of restricting directional input to four directions from an analog stick or directional pad. This makes all the difference in the world when trying to do well at a game like 'Pac-Man' or 'Ms Pac-man'. Some of you might have noticed that those characters can become unresponsive for a microsecond around corners when the analog stick hits a diagonal. Having a restricted directional mapping solves that and allows those and similar games to play as they did in arcades.
I'll fold over what I was going to post here for more of an all-encompassing guide on mapping that I want to post in a day or two, but for now, I hope this helps and I'm sorry it took so long to make good on my word to post something for this.
Edit: If I need to elaborate on using
jstest
, I'll be happy to do so.Thank you for taking you're free time to figure all this out. Looking forward to your guide. This is going to help out a lot of people!
-
post deleted
-
I've looked closely and all CoolCV mappings are single key. However, it is possible to add an outside mapping that will send whatever key is mapped to exit by pressing two buttons. Using xboxdrv, a working example would look like:
--ui-buttonmap start+back=KEY_F24
Seeing as how 'back' is usually analogous with 'select' in these situations, this mapping would allow CoolCV to exit using the same button combination that all the RetroArch cores use.
-
@mediamogul said in Colecovision Key Bindings:
I have an optional mapping that is solely for the purpose of restricting directional input to four directions from an analog stick or directional pad. This makes all the difference in the world when trying to do well at a game like 'Pac-Man' or 'Ms Pac-man'. Some of you might have noticed that those characters can become unresponsive for a microsecond around corners when the analog stick hits a diagonal. Having a restricted directional mapping solves that and allows those and similar games to play as they did in arcades.
This would be a greatly welcome addition! Looking forward to your post.
-
@mediamogul the ultimate pc interface or the vision-daptor has secret button combos to accomplish this if you use them to use real colecovision and intellivision controllers. I have an ultimate pc interface in my intellivision flashback that is modded with a pi in it.
Pressing 4 + * = button 3 (used for pause)
Pressing 5 + 0 = button 4 (used for reset)
Pressing 6 + # = button 5 (used for exit emulator) -
@edmaul69 said in Colecovision Key Bindings:
the ultimate pc interface or the vision-daptor
I might get one of these, as I am really enjoying the Colecovision library and wouldn't mind enhancing the experience further. As it stands now, I have the entire keypad mapped to the right thumbstick. Up, down, left & right are 1-4. Start+ Up, down, left & right are 5-8, leaving Select+ Up, down, left & right as 9,0,* and #. It took some getting used to, but this mapping works well for most games, with the two action buttons also mapped to 'A' and 'B'. There are some games however that need their own specific mapping to be played well. Intellivision seemed to make wilder use out of their keypad, so a universal mapping is more hit or miss, leaving many more titles in need of a more tailored mapping.
Also, I appreciate the interest that has been shown in the last few comments about my guide to mapping. It can now be found here.
-
Apologies for bumping an old thread, but just thought I would mention that in the most recent version of CoolCV (which is not currently in the retropie repository, but can be found here), you are able to require multiple keys (or joystick buttons) to exit the emulator.
For example, by editing the coolcv_mapping.txt file, and adding 2 different joystick buttons to the same line, it will wait for both to be pressed and act similarly to the rest of the libretro emulators.
key_exit key1073741939 joy0_6 joy0_7
-
@synack said in Colecovision Key Bindings:
it will wait for both to be pressed
Very keen! Thanks for pointing this out. I love CoolCV and the developer really produces great work.
-
Hey all, thanks for everyone's hard work so far, really helping me get my RetroPie/CoolCV into shape. I've run into some challenges trying to configure my USB controllers (Logitech F310's) to work correctly in CoolCV. Using the Windows version, I was able to pull out the SDL joystick codes for all the buttons/movement on my controller and came up with the following. The item in parenthesis is what I want to emulate on the CV.
A = JOY0_10 (Left Button)
B = JOY0_11 (Right Button)
X = JOY0_12 (Keypad 1)
Y = JOY0_13 (Keypad 2)Dpad Up = JOY0_0 (Up)
Dpad Dn = JOY0_1 (Down)
Dpad Lt = JOY0_2 (Left)
Dpad Rt = JOY0_3 (Right)Back = JOY0_5 (Pause)
Start = JOY0_4 (Exit)
Back + Start (Reset)Lt Bump = JOY0_8 (Keypad 3)
Rt Bump = JOY0_9 (Keypad 4)Controller two is the same except it's JOY1 for everything.
So I went into coolcv_mappings.txt and added all the codes to what I think is the correct mappings with no luck and it looks like this (I pulled out the extra Controller 2 stuff, but it matches the 1 section with joy1...).
' CoolCV mappings for Colecovision controllers to keyboard and joystick
up_1 key1073741906 joy0_0
right_1 key1073741903 joy0_3
down_1 key1073741905 joy0_1
left_1 key1073741904 joy0_2
left_button_1 key32 joy0_10
right_button_1 key109 joy0_11
button3_1 key1073741939
button4_1 key1073741939
key1_1 key49 joy0_12
key2_1 key50 joy0_13
key3_1 key51 joy0_8
key4_1 key52 joy0_9
key5_1 key53
key6_1 key54
key7_1 key55
key8_1 key56
key9_1 key57
key*_1 key111
key0_1 key48
key#_1 key112
key_save key1073741882
key_restore key1073741883
key_exit key1073741939 joy0_4
key_pause key1073741884 joy0_5
key_reset key8 joy0_4 joy0_5
Anyone have any ideas what I'm missing?
-
@Meatball What do you mean by "no luck"? Nothing works, some things work, etc?
The configuration appears to be OK.
-
Ah, sorry, I should have elaborated. :)
None of the commands I have mapped actually work. I can move Up/Down/Left/Right with the joystick (but not the DPad) A & B buttons don't work at all. X button moves Left, Y moves right. Left bumper resets back to the menu. Start and Back buttons seem to start a single player game, so they're one of the numpad buttons 1-4, but not sure which.
-
Anyone else have any thoughts? It's the only emulator I have left to get working and still fighting to figure it out. :)
-
The SDL Keycodes appear to check out OK. However, you may want to give it a closer personal inspection using this chart. Have you double checked your joystick assignments using
jstest
? -
Does anyone have a working config for the xbox 360 controller?
-
@synack said in Colecovision Key Bindings:
key_exit key1073741939 joy0_6 joy0_7
For my part it doesn't work :(
And we can't use key7_1 key55 joy0_-1 or key8_1 key56 joy0_+0
I have made a best config file for my two x360 Pads and working with most of the games ..
If you want to use it :A & B : Butons Right & Left to play games
X & Y : For * & # using by many games in menu
START & SELECT : To Save n Load games, so hard to play without savestate
X de Xbox : Exit emulator
R1 & R2 : Butons 1 & 2 to launch most of games
L1 & L2 : For butons 3 & 4
Stick Left & Stick Right : For 5 & 6We only lost 7, 8, 9,0 inputs. Less use by games, but we can use them on the Bluetooth Keyboard at the same time.
' CoolCV mappings for Colecovision controllers to keyboard and joystick ' Keyboard is the default controller. Press Right Shift + Enter to exit up_1 key1073741906 joy0_15 right_1 key1073741903 joy0_14 down_1 key1073741905 joy0_16 left_1 key1073741904 joy0_13 left_button_1 key32 joy0_0 right_button_1 key109 joy0_1 button3_1 key1073741939 button4_1 key1073741939 key1_1 key49 joy0_4 key2_1 key50 joy0_5 key3_1 key51 joy0_6 key4_1 key52 joy0_7 key5_1 key53 joy0_11 key6_1 key54 joy0_12 key7_1 key55 key8_1 key56 key9_1 key57 key*_1 key111 joy0_2 key0_1 key48 key#_1 key112 joy0_3 up_2 key119 joy1_15 right_2 key100 joy1_14 down_2 key115 joy1_16 left_2 key97 joy1_13 left_button_2 key9 joy1_0 right_button_2 key113 joy1_1 button3_2 key1073741939 button4_2 key1073741939 key1_2 key114 joy1_4 key2_2 key116 joy1_5 key3_2 key121 joy1_6 key4_2 key102 joy1_7 key5_2 key103 joy1_11 key6_2 key104 joy1_12 key7_2 key118 key8_2 key98 key9_2 key110 key*_2 key106 joy1_2 key0_2 key107 key#_2 key108 joy1_3 key_save key1073741882 joy0_8 key_restore key1073741883 joy0_9 key_exit key1073741939 joy0_10 key_pause key1073741884 key_reset key8
-
Hello, i made the Super Game Pi project ([link])(https://learn.adafruit.com/super-game-pi/overview). All work great with all emulators except with Coolcv which the right and left pad are inverted. I tried to modified the mapping coolcv txt but nothing change. Have you an idea ? Thank you for help.
-
@superpiboy No sorry with my file all is working fine for me.
-
I just wanted to share my Coolcv ps3 controller setup in case it can help. This had D pad working and both buttons working. R1 selects one player while start or select exits. Did not set pause yet, but it can easily be changed by some minor tweaking.
' CoolCV mappings for Colecovision controllers to keyboard and joystick
up_1 key1073741906 joy0_13
right_1 key1073741903 joy0_16
down_1 key1073741905 joy0_14
left_1 key1073741904 joy0_15
left_button_1 key32 joy0_0
right_button_1 key109 joy0_1
button3_1 key1073741939
button4_1 key1073741939
key1_1 key49 joy0_4
key2_1 key50 joy0_5
key3_1 key51 joy0_6
key4_1 key52 joy0_7
key5_1 key53
key6_1 key54
key7_1 key55
key8_1 key56
key9_1 key57
key*_1 key111 joy0_9
key0_1 key48
key#_1 key112 joy0_3
up_2 key119
right_2 key100
down_2 key115
left_2 key97
left_button_2 key9 joy1_0
right_button_2 key113 joy1_1
button3_2 key1073741939
button4_2 key1073741939
key1_2 key114
key2_2 key116
key3_2 key121
key4_2 key102
key5_2 key103
key6_2 key104
key7_2 key118
key8_2 key98
key9_2 key110
key*_2 key106
key0_2 key107
key#_2 key108 joy0_10
key_save key1073741882
key_restore key1073741883
key_exit key1073741939 joy0_9
key_pause key1073741884
key_reset key8 -
Link https://sites.google.com/site/gregsqna/raspberry-pi/retropie/colecovision. Running CoolCV 6.6 with sn30 gamepad pro. Can't get D-Pad to register keycodes from F7, but everything else is good.
' CoolCV mappings for Colecovision controllers to keyboard and joystick
fullscreen no
joystick_1_vert joy0 axis1
joystick_1_horiz joy0 axis0
joystick_2_vert joy1 axis1
joystick_2_horiz joy1 axis0
up_1 key1073741906
right_1 key1073741903
down_1 key1073741905
left_1 key1073741904
left_button_1 key32 joy0_0
right_button_1 key109 joy0_1
button3_1 key1073741939
button4_1 key1073741939
key1_1 key49 joy0_9
key2_1 key50 joy0_3
key3_1 key51 joy0_4
key4_1 key52 joy0_5
key5_1 key53 joy0_6
key6_1 key54 joy0_7
key7_1 key55 joy0_12
key8_1 key56 joy0_13
key9_1 key57
key*_1 key111 joy0_10
key0_1 key48 joy0_2
key#_1 key112 joy0_11
up_2 key119
right_2 key100
down_2 key115
left_2 key97
left_button_2 key9 joy1_0
right_button_2 key113 joy1_1
button3_2 key1073741939
button4_2 key1073741939
key1_2 key114
key2_2 key116
key3_2 key121
key4_2 key102
key5_2 key103
key6_2 key104
key7_2 key118
key8_2 key98
key9_2 key110
key*_2 key106
key0_2 key107
key#_2 key108
key_save key1073741882 joy0_8 joy0_5
key_restore key1073741883 joy0_8 joy0_4
key_exit key1073741939 joy0_8 joy0_9
key_pause key1073741884 joy0_8 joy0_1
key_reset key8 joy0_8 joy0_0
key_rolling_controller key1073741886
key_record_video key1073741887
key_record_audio key1073741890
key_screenshot key1073741891 joy0_8 joy0_2
key_fast_disk key1073741889
key_sync key1073741885
key_codes key1073741888 joy0_8 joy0_3
adam_shift_i shift alt key49
adam_shift_ii shift alt key50
adam_shift_iii shift alt key51
adam_shift_iv shift alt key52
adam_shift_v shift alt key53
adam_shift_vi shift alt key54
adam_i alt key49
adam_ii alt key50
adam_iii alt key51
adam_iv alt key52
adam_v alt key53
adam_vi alt key54
adam_shift_wildcard shift alt key119
adam_wildcard alt key119
adam_shift_undo shift alt key117
adam_undo alt key117
adam_shift_move shift alt key109
adam_move alt key109
adam_shift_store shift alt key115
adam_store alt key115
adam_shift_insert shift alt key105
adam_insert alt key105
adam_shift_print shift alt key112
adam_print alt key112
adam_shift_clear shift alt key99
adam_clear alt key99
adam_del ctrl alt key100
adam_shift_delete shift alt key100
adam_delete alt key100
adam_ctrl_up ctrl key1073741906
adam_ctrl_right ctrl key1073741903
adam_ctrl_down ctrl key1073741905
adam_ctrl_left ctrl key1073741904
adam_nul ctrl key50
adam_soh ctrl key97
adam_stx ctrl key98
adam_etx ctrl key99
adam_eot ctrl key100
adam_enq ctrl key101
adam_ack ctrl key102
adam_bel ctrl key103
adam_bs ctrl key104
adam_ht ctrl key105
adam_lf ctrl key106
adam_vt ctrl key107
adam_ff ctrl key108
adam_cr ctrl key109
adam_so ctrl key110
adam_si ctrl key111
adam_dle ctrl key112
adam_dc1 ctrl key113
adam_dc2 ctrl key114
adam_dc3 ctrl key115
adam_dc4 ctrl key116
adam_nak ctrl key117
adam_syn ctrl key118
adam_etb ctrl key119
adam_can ctrl key120
adam_em ctrl key121
adam_sub ctrl key122
adam_fs ctrl key51
adam_gs ctrl key52
adam_rs ctrl key53
adam_us ctrl key54
adam_shift_backspace shift key8
adam_shift_tab shift key9
adam_esc key27
adam_exclamation shift key49
adam_quotes shift key39
adam_number shift key51
adam_dollar shift key52
adam_percent shift key53
adam_ampersand shift key55
adam_multiply shift key56
adam_leftparen shift key57
adam_rightparen shift key48
adam_colon shift key59
adam_less shift key44
adam_greater shift key46
adam_question shift key47
adam_at shift key50
adam_cr key13
adam_up key1073741906
adam_right key1073741903
adam_down key1073741905
adam_left key1073741904
adam_bs key8
adam_ht key9
adam_space key32
adam_apostrophe key39
adam_comma key44
adam_period key46
adam_slash key47
adam_semicolon key59
adam_leftbracket shift key91
adam_rightbracket shift key93
adam_bar shift key92
adam_leftsquare key91
adam_rightsquare key93
adam_backslash key92
adam_home key999
adam_up_right key999
adam_right_down key999
adam_down_left key999
adam_left_up key999
adam_home_up key999
adam_home_right key999
adam_home_down key999
adam_home_left key999
adam_power shift key54
adam_plus shift key61
adam_underscore shift key45
adam_equals key61
adam_tilde shift key96
adam_grave key96
adam_minus key45
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.