Software Support > controls.dat

control.ini for consoles?

<< < (2/5) > >>

headkaze:
If you make an ini file it's easy to convert to xml so I wouldn't worry too much about that. What I would worry about is finding "volunteers". Good luck though  :cheers:

BTW I would probably start with a system that is a bit more substancial and has more buttons so the actual format can be designed to work with complex controllers. I would personally start with N64.

Anyway you can download my old AllGame scrape from here. It should at least give you a nice place to start.

tony.silveira:
downloaded your file, that is scary to look at :)

headkaze, you're the developer of cpwizard correct?  maybe we could take this offline but here is a question for you.

in the ini entry example i gave above, how to you pull that info into cpwizard?  i'm assuming that you pull based off of "P1_BUTTON1=" field.  if that's the case, not taking key combos into consideration, we could create a template with a massive amount of buttons to cover the systems with keypads, like the 5200 (17 buttons) or intellivision (15 buttons) or the jaguar (19 buttons).  for those systems without that many buttons, you simply leave the field blank.

as for key combos, we could create "P1_COMBO1=" and have the value be "P1_BUTTON1+P1_BUTTON2 (jump kick)".  apps like cpwizard would then pull the description that is within ().

and just like creating a template with many BUTTON entries, even though they wouldn't be used for most games, we could create as many COMBO entries as needed for that particular game.

i hope i was clear with the above and would appreciate any feedback from you.  once we could nail what the formatting/naming convention would be, i could take a stab at a few titles.

thanks, t

arzoo:

--- Quote from: tony.silveira on October 04, 2009, 05:29:31 am ---i've created 'defaults' for each of my emu's but those light all the buttons for that console and not just the buttons used for the specific game.  meaning, if i load any genesis game, six buttons light up all the time, even if a game may use only two.

--- End quote ---

I'll just mention here that you can create configurations for each individual game. Use the Import Unknown Games option to get that actual rom names.


--- Quote from: headkaze on October 04, 2009, 06:24:39 pm ---How do you represent combinations in a data file and in a program like CPWizard how do you display them.
--- End quote ---

What I do for LEDBlinky is allow a button to be defined more than one time - with the same control name but different 'action'. So blinky will flash and speak any buttons with the same 'action' at the same time. Course that's of no help for CPWizard  :dizzy:

garwil:
I think the first thing we need to do is define which consoles we're going to include in the database and then define the standard controls for each one. Then we'd need to look at any non-standard controllers like lightguns and mice etc.

e.g.

[NES]
dpad_up
dpad_down
dpad_left
dpad_right
button_b
button_a
button_start
button_select

Then things start to get REALLY interesting! You mention button combos and rightly so. The 1080 snowboarding example HeadKaze gave lists 14 different button combinations in addition to the standard controls. I think we'd probably have to adapt the MAME commands.dat file for this purpose, but I don't know enough about the file to explore how at the moment.

There's also games that change the controls based on the situation e.g. Madden 94 on the SNES uses the same buttons for different things on Offense, Defence and Special Teams. I think we'd have to implement this like a relational database rather than an ini file so that we could create various button configurations for each game depending on what's happening in-game. Obviously there'd need to be some changes to the various viewing software to enable scrolling through pages.

Finally, we need to decide on a naming convention for the games. The MAME controls.xml uses the rom name, so I suggest we do something similar and stick to something like NoIntro for cartridge games and TOSEC for CD games.

Right, my brain is starting to hurt at the enormity of it all, I'm off to add some more to the MAME file!

headkaze:

--- Quote from: arzoo on October 05, 2009, 09:35:58 am ---What I do for LEDBlinky is allow a button to be defined more than one time - with the same control name but different 'action'. So blinky will flash and speak any buttons with the same 'action' at the same time. Course that's of no help for CPWizard  :dizzy:
--- End quote ---

I do the same in my LED plugin for GameEx but the problem with CPW is displaying it on screen. It's easy enough to light up a button, but to display the connection between all the buttons in combos and things would be a bit more difficult. The way I really thought to deal with it in CPW was to just display the combo's in text form below the CP (where description text goes) and then just have the main button functions labelled on the CP. Or if I really wanted to go to town, have each combo display one by one by pressing a specially defined button. The complexity of it becomes a bit more apparent when looking at some of the games controls, some would be simple and some would be more difficult but that also means the file format has to be able to describe these complex scenarios as well.

Consider Madden NFL 99


--- Code: ---<Controls>
  <ControlCategory Name="MENU CONTROLS">
<Control Name="Control Pad Up or Down" Value="highlight menu item" />
<Control Name="Control Pad Left or Right" Value="change highlighted item" />
<Control Name="A Button" Value="select/go to next screen" />
<Control Name="B Button" Value="cancel/return to previous screen" />
<Control Name="Control Pad (when arrows appear)" Value="scroll" />
<Control Name="C Left" Value="access help screen" />
  </ControlCategory>
  <ControlCategory Name="GENERAL GAMEPLAY">
<Control Name="Start" Value="pause" />
<Control Name="Z + R" Value="timeout" />
  </ControlCategory>
  <ControlCategory Name="OFFENSE BEFORE SNAP">
<Control Name="Pad or Stick" Value="move player" />
<Control Name="A" Value="hike ball" />
<Control Name="B, then B, A or Bottom C Button" Value="call audible" />
<Control Name="Z or L" Value="view receivers to the left" />
<Control Name="R" Value="view receivers to the right" />
<Control Name="Bottom C Button" Value="fake snap" />
  </ControlCategory>
  <ControlCategory Name="RUNNING">
<Control Name="Pad or Stick" Value="control player" />
<Control Name="A" Value="speed burst" />
<Control Name="B" Value="dive" />
<Control Name="R" Value="lateral" />
<Control Name="Z" Value="juke" />
<Control Name="Top C Button" Value="jump or hurdle" />
<Control Name="Left C Button" Value="stiff arm left" />
<Control Name="Right C Button" Value="stiff arm right" />
<Control Name="Bottom C Button" Value="spin" />
  </ControlCategory>
  <ControlCategory Name="PASSING">
<Control Name="Pad or Stick" Value="control player" />
<Control Name="A" Value="call up passing symbols" />
<Control Name="A, B, Bottom C, Left C or Right C" Value="pass to receiver" />
<Control Name="Top C Button" Value="throw ball away" />
<Control Name="Z (hold) + Receiver Button" Value="pump fake" />
  </ControlCategory>
  <ControlCategory Name="RECEIVING">
<Control Name="Pad or Stick" Value="control player" />
<Control Name="A" Value="switch to player closest to ball" />
<Control Name="B" Value="dive for low pass" />
<Control Name="Top C Button" Value="jump" />
  </ControlCategory>
  <ControlCategory Name="DEFENSE BEFORE SNAP">
<Control Name="B, then B, A or Bottom C Button" Value="call audible" />
<Control Name="A" Value="switch players" />
<Control Name="Z" Value="shift defensive alignment" />
<Control Name="R" Value="bump and run coverage" />
  </ControlCategory>
  <ControlCategory Name="DEFENSE AFTER SNAP">
<Control Name="Pad or Stick" Value="control player" />
<Control Name="A" Value="switch to player closest to ball" />
<Control Name="B" Value="diving tackle" />
<Control Name="Left C Button" Value="power tackle, speed burst" />
<Control Name="Right C Button" Value="swim move" />
<Control Name="Top C Button" Value="jump" />
  </ControlCategory>
  <ControlCategory Name="KICKING/RECEIVING KICK">
<Control Name="B, then B, A or Bottom C Button" Value="call audible" />
<Control Name="A" Value="start meter, kick ball" />
<Control Name="Pad Left or Right" Value="aim kick" />
<Control Name="Top C Button" Value="fair catch" />
  </ControlCategory>
</Controls>
--- End code ---

Or Super Mario 64


--- Code: ---<Controls>
  <ControlCategory>
<Control Name="Control Stick" Value="move character" />
<Control Name="A Button" Value="Jump, breast stroke, flutter kick (hold)" />
<Control Name="Control Stick + A Button (three times)" Value="triple jump" />
<Control Name="Control Stick Left, Right, A Button" Value="side somersault" />
<Control Name="Control Stick + Z + A Button" Value="long jump" />
<Control Name="Control Stick + B Button" Value="slide attack" />
<Control Name="A Button (twice)" Value="continuous jump, wall kick (jump against wall and jump again)" />
<Control Name="A + B Button" Value="jump kick" />
<Control Name="A + Z Button" Value="pound the ground" />
<Control Name="B Button" Value="read sign, punch, pick up and throw" />
<Control Name="B Button (three times)" Value="kick" />
<Control Name="Z Button" Value="crouch" />
<Control Name="Z + A Button" Value="backward somersault" />
<Control Name="Z + B Button" Value="trip" />
<Control Name="Control Stick + Z + B Button" Value="slide kick" />
<Control Name="Control Stick + Z Button" Value="crouch and slide" />
<Control Name="Z Button + Control Stick" Value="crawl" />
<Control Name="Top C Button" Value="get close to mario" />
<Control Name="Bottom C Button" Value="pull away from mario" />
<Control Name="Left C Button" Value="rotate to the left of mario" />
<Control Name="Right C Button" Value="rotate to the right of mario" />
  </ControlCategory>
</Controls>
--- End code ---

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version