| Main > Main Forum |
| Mame analog joystick mapping vs. u360 firmware mapping? |
| (1/12) > >> |
| arzoo:
(use Dwight Schrute voice) Question: For those who are using u360s with an app/plugin to set their firmware mapping, could this create a conflicting map with mame? For example, if mame is restricting the analog output to 4-way and the u360 is loaded with an 8-way map - will the game still only register the 4-way region? Or let's say both mame and the u360 use a 8-way diagonal map - do you get composite results? Here's a few other questions... 1) Which was the first version of mame to support built-in analog joystick mapping? 2) Can this feature be turned off? 3) What are the possible values for the joystick_map key in the mame.ini (auto is the default)? Thanks! |
| Neverending Project:
I don't know for a fact, but in thinking about how the "mapping" works if the U360s have the firmware set to a map, this would be in addition to the mame mapping. So in effect it would be like overlapping the two maps - U360 applied first then mame. Example: You play a mame game with a 4-way joystick, but you set the U360 to a different map in firmware first. Say you set the U360 to 2-way map using its firmware (extreme example) where all +Y movement sends "up" and all -Y sends "down, then mame would never see a + or - X movement to apply its map. I can't confirm this from work (I wish I had my arcade machine in my office!) but that is how I understand it to work. I can't answer about the other questions, though. The docs\config.txt file talk about the mapping in mame, but I can't find where it mentions how to disable it. --- Quote ----joystick_map <map> / -joymap <map> Controls how joystick values map to digital joystick controls. MAME accepts all joystick input from the system as analog data. For true analog joysticks, this needs to be mapped down to the usual 4-way or 8-way digital joystick values. To do this, MAME divides the analog range into a 9x9 grid. It then takes the joystick axis position (for X and Y axes only), maps it to this grid, and then looks up a translation from a joystick map. This parameter allows you to specify the map. The default is 'auto', which means that a standard 8-way, 4-way, or 4-way diagonal map is selected automatically based on the input port configuration of the current game. Maps are defined as a string of numbers and characters. Since the grid is 9x9, there are a total of 81 characters necessary to define a complete map. Below is an example map for an 8-way joystick: 777888999 Note that the numeric digits correspond to the keys 777888999 on a numeric keypad. So '7' maps to up+left, '4' maps 777888999 to left, '5' maps to neutral, etc. In addition to the 444555666 numeric values, you can specify the character 's', 444555666 which means "sticky". In this case, the value of the 444555666 map is the same as it was the last time a non-sticky 111222333 value was read. 111222333 111222333 To specify the map for this parameter, you can specify a string of rows separated by a '.' (which indicates the end of a row), like so: 777888999.777888999.777888999.444555666.444555666.444555666. 111222333.111222333.111222333 However, this can be reduced using several shorthands supported by the <map> parameter. If information about a row is missing, then it is assumed that any missing data in columns 5-9 are left/right symmetric with data in columns 0-4; and any missing data in colums 0-4 is assumed to be copies of the previous data. The same logic applies to missing rows, except that up/down symmetry is assumed. By using these shorthands, the 81 character map can be simply specified by this 11 character string: 7778...4445 Looking at the first row, 7778 is only 4 characters long. The 5th entry can't use symmetry, so it is assumed to be equal to the previous character '8'. The 6th character is left/right symmetric with the 4th character, giving an '8'. The 7th character is left/right symmetric with the 3rd character, giving a '9' (which is '7' with left/right flipped). Eventually this gives the full 777888999 string of the row. The second and third rows are missing, so they are assumed to be identical to the first row. The fourth row decodes similarly to the first row, producing 444555666. The fifth row is missing so it is assumed to be the same as the fourth. The remaining three rows are also missing, so they are assumed to be the up/down mirrors of the first three rows, giving three final rows of 111222333. --- End quote --- |
| edubbs:
What a coincidence, I was just about to post a similar question. I wanted to verify that my u360 mapping was working with ledblinky so i tried a few things. first, i set joystick_map to 0. when i did that my joystick failed to work at all in the rom. next i set my joystick_map back to auto, deleted the Joy8Way map, and renamed the Joy4Way map to Joy8Way map. i loaded the rom (street fighter two champion ed) and it was obviously running in 4 way mode. so, my mapping with ledblinky appears to be working correctly. however, i don't understand why disabling the mapping in mame would completely disable my joystick?!? maybe everything isn't working perfectly... (mame .118 onward offers the joystick_map option) http://forum.arcadecontrols.com/index.php?topic=80873.0 |
| Ummon:
It's simple: your stick must be set to analog for MAME to map it itself. If set to analog, your FE can still set it to something else at game load. (I don't recall what version of MAME started mappings.) I don't like the MAME mapping, though maybe if the stick had a greater mechanical tolerance I would. Hence, I make my own U-maps, which are switched via MaLa. Supplemental: for 'joystick' to work in MAME, make sure it's enabled. Another reason I use MAME32/UI for testing. Still, sometimes you have to also set it in-game. |
| arzoo:
Thanks everyone for the answers. My concern here is that the u360 (regardless of the map loaded into firmware) always looks like an analog stick to mame. So if you can't turn off mame's mapping then you're playing with a composite map. And if that's the case then some custom u360 maps may not work as expected - for example, if the u360 map has a very small dead-zone (intentionally) and the mame map has a larger dead-zone, then the larger dead-zone will take effect. It seems impossible to do any valid testing because the mame mapping only effects the game - there's no test mode or test app. Those of us who want to use the u360 firmware mapping really need a way to turn off the mame mapping. |
| Navigation |
| Message Index |
| Next page |