Main Restorations Software Audio/Jukebox/MP3 Everything Else Buy/Sell/Trade
Project Announcements Monitor/Video GroovyMAME Merit/JVL Touchscreen Meet Up Retail Vendors
Driving & Racing Woodworking Software Support Forums Consoles Project Arcade Reviews
Automated Projects Artwork Frontend Support Forums Pinball Forum Discussion Old Boards
Raspberry Pi & Dev Board controls.dat Linux Miscellaneous Arcade Wiki Discussion Old Archives
Lightguns Arcade1Up Try the site in https mode Site News

Unread posts | New Replies | Recent posts | Rules | Chatroom | Wiki | File Repository | RSS | Submit news

  

Author Topic: control.ini for consoles?  (Read 17207 times)

0 Members and 1 Guest are viewing this topic.

tony.silveira

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 697
  • Last login:February 17, 2024, 10:24:34 pm
    • my baby
control.ini for consoles?
« on: October 04, 2009, 05:29:31 am »
hi all,

i recently added lit buttons to my cab using ledblinky.  when running mame, blinky looks at the "control.ini" file to light the correct buttons.

i've done a google search but came up empty handed...  are there control.ini files out there for consoles?

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.

thanks everybody, t

garwil

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 99
  • Last login:August 10, 2022, 12:52:30 pm
Re: control.ini for consoles?
« Reply #1 on: October 04, 2009, 04:13:24 pm »
I'd thought about doing this when the MAME one is complete. It should be pretty trivial in terms of software but just a long, slow, arduous process in terms of actually going through all the game manuals. It would be a great community project though!  ;D

tony.silveira

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 697
  • Last login:February 17, 2024, 10:24:34 pm
    • my baby
Re: control.ini for consoles?
« Reply #2 on: October 04, 2009, 04:52:20 pm »
so let's start one!  seems like a huge challenge but if we got a team of 10 people to sign on and each person did just three games a night, we could tear thru 900 games in a month, easily clearing out a console a month.

and hell, single button consoles would be easy.  atari 2600 for instance, other than a very few games that use a special controller with more than one button, that console is done :)

i've never contributed to an emu project before, this would be a great way to "give back".

anyone know the best places, other than byoac, to announce such an undertaking?

t

headkaze

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2943
  • Last login:August 14, 2023, 02:00:48 am
  • 0x2b|~0x2b?
Re: control.ini for consoles?
« Reply #3 on: October 04, 2009, 06:24:39 pm »
I was working on a project similar to this for CPWizard but in the end decided it would be too much work (and I have enough projects on to keep me busy as is). If you guys are serious about starting up a project to do this, I think I can be of assistance. The only problem is I hear alot of people say they want to help without realising the amount of work involved. That being said there have been people who do follow through with their word so I haven't lost faith just yet :cheers:

The main help I can offer is data I have collected from http://www.allgame.com which is the only online database I've found which has a substancial amount of control info (example). I have scraped this data quite a while ago (probably need to run a full one on the whole site again which takes a number of days). From that I was attempting to write a program to put the data into a common format. I started on the N64 file and it was just too much, especially when you consider button combos and things like that. How do you represent combinations in a data file and in a program like CPWizard how do you display them. Also there seemed to be no standard way allgame described the control info. I guess all that can be figured out if someone wants to spend the time to design a format like Controls.xml that can handle it and compile all the data and/or people who want to help. I can upload the data I have to give you a nice kick start but you need to understand it's a pretty huge undertaking.
« Last Edit: October 04, 2009, 06:27:27 pm by headkaze »

tony.silveira

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 697
  • Last login:February 17, 2024, 10:24:34 pm
    • my baby
Re: control.ini for consoles?
« Reply #4 on: October 04, 2009, 07:30:29 pm »
oh, i have no doubt this will be a huge task :)

my thinking; let's not look at the whole, rather let's tackle each system, one at a time.  we could even take baby steps and tackle the simple systems with fewer games (and no button combos) first.  for instance...

vectrex (my all time fave)- 4 buttons, 28 commercial game releases; piece of cake

sega master system - 2 buttons, they had *maybe* 150 titles (in the u.s.); seems doable

turbogrfx - 2 buttons (most games), *maybe* 200 titles in u.s.

we tackle the systems with the smallest hill to climb first and we focus on u.s. releases first.

sirpoonga is doing an admirable job with mame but it's no where close to being done and yet we're all thankful for his hard work.

i'll gladly offer my services as the project manager and can commit to three titles a day.  i'll be honest, i'd have no idea how to create an xml file by i can easily project manage an ini file.  i'd suggest we use his layout as our foundation (sample below) to log the controls.

let's get some folks onboard, get a mailing list going.  i can assign system/title distribution by week, bi-weekly, monthly, whichever the volunteers prefer.

thoughts?


[88games]
gamename='88 Games
numPlayers=2
alternating=0
mirrored=1
tilt=0
cocktail=1
usesService=0
miscDetails=This is a 4 player team type game where 2 players compete each time
P1NumButtons=3
P1Controls=Just Buttons+button
P1_BUTTON1=Run
P1_BUTTON2=Jump
P1_BUTTON3=Run

headkaze

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2943
  • Last login:August 14, 2023, 02:00:48 am
  • 0x2b|~0x2b?
Re: control.ini for consoles?
« Reply #5 on: October 04, 2009, 08:22:55 pm »
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

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 697
  • Last login:February 17, 2024, 10:24:34 pm
    • my baby
Re: control.ini for consoles?
« Reply #6 on: October 05, 2009, 02:30:02 am »
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

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2092
  • Last login:March 15, 2024, 10:31:32 pm
  • Robots WILL kill you.
    • LEDBlinky
Re: control.ini for consoles?
« Reply #7 on: October 05, 2009, 09:35:58 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.

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.

How do you represent combinations in a data file and in a program like CPWizard how do you display them.

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:
Robots will kill you.



Arcade Addiction

garwil

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 99
  • Last login:August 10, 2022, 12:52:30 pm
Re: control.ini for consoles?
« Reply #8 on: October 05, 2009, 05:57:23 pm »
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

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2943
  • Last login:August 14, 2023, 02:00:48 am
  • 0x2b|~0x2b?
Re: control.ini for consoles?
« Reply #9 on: October 05, 2009, 06:20:26 pm »
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:

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: [Select]
<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>

Or Super Mario 64

Code: [Select]
<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>

tony.silveira

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 697
  • Last login:February 17, 2024, 10:24:34 pm
    • my baby
Re: control.ini for consoles?
« Reply #10 on: October 05, 2009, 08:59:06 pm »
yikes, i see what you guys mean.  we have to allow for the complexity but that doesn't mean we can't figure out the simple up front, which would cover 80% of console titles.  as long as we allowed the template to be liquid, we could add whatever we wanted as long as we kept it standard.

meaning, we can do 80% of titles with the basics:

P1_BUTTON1=
P1_BUTTON2=

as we get to more complex controls, we can figure out what label to add.  taking madden into consideration where the same button can be different, based on offense/defense/post-pre snap, etc., how hard would this be to implement into cpwizard?

P1_BUTTON1=change lineman [defense]{g}

P1_BUTTON1=snap ball [offense]{r}

so, when pausing the game and the cpwizard comes up to show controls, using the example, above the buttons, you would have all of the defensive controls listed in green (thats the {g}) and below that description, you would have the offensive controls listed in red {r}.

for the combo examples listed like mario or 1080, i really think we're overanalyzing how to assign/display combos, based on what/where the game is.

we should assign the primary function to the button.  within the ini, you could have a "SPECIAL COMBO/CONTROLS" line where we list all of the combos/special moves.

my thought with that info is if that line is populated, a separate window pops up when pausing, over, above, under, to the side of, wherever the user designs it in cpwizard.  so you see your cp with all of the primary functions, then you have a cheat sheet showing you combos and what not.  think of an N64 manual, they didn't list every combo on the graphic over the controller, they listed the main button functions, and, on the facing page, they would list button combos / actions.

taking that one step further, this "cheat sheet" pop up could even be used to show a scan of the actual manual page.

this is a bear of a project to think about but if we have ideas on how the complex stuff will fit in and we can agree on at least a direction, there's no reason we can't start on the simple stuff.

thoughts gentlemen?

garwil

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 99
  • Last login:August 10, 2022, 12:52:30 pm
Re: control.ini for consoles?
« Reply #11 on: October 05, 2009, 09:24:11 pm »
Using the Madden example, the best thing might be to set up the file as follows.


Code: [Select]
<GAME Name="Madden">
  <CONTROLS>
    <PAGE Name="Offense">
       <P1_BUTTON1>Snap Ball</P1_BUTTON1>
       ...
    </PAGE>
    <PAGE Name="Defense>
       <P1_BUTTON1>Change Player</P1_BUTTON1>
       ...
    </PAGE>
  </CONTROLS>
</GAME> 

Then have the viewing software use a button press to scroll through each page.

Special moves and combos could be included in the same way that commands.dat is included in CPWizard, we just need to adapt the file to fit in with the various types of controller.

arzoo

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2092
  • Last login:March 15, 2024, 10:31:32 pm
  • Robots WILL kill you.
    • LEDBlinky
Re: control.ini for consoles?
« Reply #12 on: October 05, 2009, 10:45:44 pm »
I would suggest (and I hope headkaze agrees) that it would be best if the new data continued to use the same control types as defined by mame. If this project does get off the ground, the results will only be useful if the various utilities (CPWizard, LEDBlinky, etc.) are modified to use the data. And those modifications will be a lot easier if the data and structure remains consistent.
Robots will kill you.



Arcade Addiction

tony.silveira

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 697
  • Last login:February 17, 2024, 10:24:34 pm
    • my baby
Re: control.ini for consoles?
« Reply #13 on: October 06, 2009, 01:03:39 am »
i agree arzoo.  my thought behind this is to make this in such a way that you guys can modify your apps easily.

what do you two think of my idea to assign the MAIN function to the button and having a 'cheat sheet' window (this is more for cpwizard) with all of the combos?  look at sirpoongas work for street fighter 2.  that game is ALL about combos and yet he simply has the main functions assigned to the buttons (i'm speaking of the ini file here).

i'm going to tackle vectrex tonight and have a control.ini done for that, post it here and see what you guys think.

t

EDIT:  vecControls.txt attached, rename the extension to ini and let me know what you guys think
« Last Edit: October 06, 2009, 02:22:55 am by tony.silveira »

arzoo

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2092
  • Last login:March 15, 2024, 10:31:32 pm
  • Robots WILL kill you.
    • LEDBlinky
Re: control.ini for consoles?
« Reply #14 on: October 06, 2009, 08:15:40 am »
EDIT:  vecControls.txt attached, rename the extension to ini and let me know what you guys think

Looks good! You could probably leave out some of the values like 'tilt', 'cocktail', and 'usesService' - I don't think they would ever have values for anything other than mame. For combo buttons you could do something like this:
P1_BUTTON1=kick
P1_BUTTON2=jump
P1_BUTTON1=flying kick
P1_BUTTON2=flying kick

One problem with the controls.ini format is it does not include button colors. This has been discussed in the past.
« Last Edit: October 06, 2009, 08:22:49 am by arzoo »
Robots will kill you.



Arcade Addiction

arzoo

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2092
  • Last login:March 15, 2024, 10:31:32 pm
  • Robots WILL kill you.
    • LEDBlinky
Re: control.ini for consoles?
« Reply #15 on: October 06, 2009, 08:28:00 am »
Here's a sample of the schema that LEDBlinky's Control Editor uses:
Code: [Select]
  <emulator emuname="MAME" emuDesc="">
    <controlGroup groupName="teamqb" voice="John Elway's Team Quarterback" numPlayers="4" alternating="0">
      <player number="0">
        <control name="CONTROL_JOY8WAY" voice="8-way Joystick and Baseball Pitcher" color="" primaryControl="1"/>
      </player>
      <player number="1">
        <control name="P1_BUTTON1" voice="Action" color=""/>
        <control name="P1_JOYSTICK_UP" voice="Up" color=""/>
        <control name="P1_JOYSTICK_DOWN" voice="Down" color=""/>
        <control name="P1_JOYSTICK_LEFT" voice="Left" color=""/>
        <control name="P1_JOYSTICK_RIGHT" voice="Right" color=""/>
        <control name="P1_AD_STICK_X" voice="Aim Left" color=""/>
        <control name="P1_AD_STICK_X_EXT" voice="Aim Right" color=""/>
        <control name="P1_AD_STICK_Y" voice="Throw / Kick" color=""/>
        <control name="P1_AD_STICK_Y_EXT" voice="Short / Long" color=""/>
      </player>
      <player number="2">
        <control name="P2_BUTTON1" voice="Action" color=""/>
        <control name="P2_JOYSTICK_UP" voice="Up" color=""/>
        <control name="P2_JOYSTICK_DOWN" voice="Down" color=""/>
        <control name="P2_JOYSTICK_LEFT" voice="Left" color=""/>
        <control name="P2_JOYSTICK_RIGHT" voice="Right" color=""/>
      </player>
      <player number="3">
        <control name="P3_BUTTON1" voice="Action" color=""/>
        <control name="P3_JOYSTICK_UP" voice="Up" color=""/>
        <control name="P3_JOYSTICK_DOWN" voice="Down" color=""/>
        <control name="P3_JOYSTICK_LEFT" voice="Left" color=""/>
        <control name="P3_JOYSTICK_RIGHT" voice="Right" color=""/>
        <control name="P3_AD_STICK_X" voice="Aim Left" color=""/>
        <control name="P3_AD_STICK_X_EXT" voice="Aim Right" color=""/>
        <control name="P3_AD_STICK_Y" voice="Throw / Kick" color=""/>
        <control name="P3_AD_STICK_Y_EXT" voice="Short / Long" color=""/>
      </player>
      <player number="4">
        <control name="P4_BUTTON1" voice="Action" color=""/>
      </player>
    </controlGroup>
« Last Edit: October 06, 2009, 08:30:31 am by arzoo »
Robots will kill you.



Arcade Addiction

tony.silveira

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 697
  • Last login:February 17, 2024, 10:24:34 pm
    • my baby
Re: control.ini for consoles?
« Reply #16 on: October 06, 2009, 04:32:20 pm »
yeah, i thought about leaving those lines out but figured i'd leaving them in, just in case one of you guys' apps needed those lines in there, even with no values.  good to know i can just leave them out if not used.

as for button colors arzoo, i thought of that but it *may* be easier to do from ledblinky in your next rev.

we have a colors.ini for arcade because each arcade game/machine is unique.  for consoles, the buttons are static and the colors are always the same.

would it be easy to add an option to add colors by platform, not rom, within blinky?

blinky would look at the console, light those specific colors that the user adds and then load the controls for the rom.  my thinking is blinky would take user defined colors first, as in consoles, and if nothing is there, then it would parse a colors.ini, for mame.

at the end of the day, it's all about how easily you and kaze can incorporate other control files into your apps.  the grunt work is what it is; grunt work.  :)

arzoo

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2092
  • Last login:March 15, 2024, 10:31:32 pm
  • Robots WILL kill you.
    • LEDBlinky
Re: control.ini for consoles?
« Reply #17 on: October 06, 2009, 04:43:14 pm »
Guess I never really thought about that - consoles don't have unique colors for each game. So yes, using the blinky controls editor you could add the input codes and colors for each emu to the default controls group. The rom specific control actions would load from your new emu_controls.ini (just like with mame) and you'd be good to go.

By the way, I shouldn't really speak for the other apps when it comes to what values are used. All I can say for sure is that blinky would not use tilt, cocktail, or usesService.
Robots will kill you.



Arcade Addiction

tony.silveira

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 697
  • Last login:February 17, 2024, 10:24:34 pm
    • my baby
Re: control.ini for consoles?
« Reply #18 on: October 06, 2009, 04:50:42 pm »
sweet!  one of two devs signed up to some extent :)

kaze, any thoughts?  i'm especially interested in your thoughts on my "cheat sheet" window idea for all the combos or maybe even showing a scan of the manual page.  i really think that may be the easiest way to incorporate combos but it would mean more work for you and i don't want to assume that.

headkaze

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2943
  • Last login:August 14, 2023, 02:00:48 am
  • 0x2b|~0x2b?
Re: control.ini for consoles?
« Reply #19 on: October 07, 2009, 11:43:04 pm »
You certainly couldn't use a valid ini file format like the one you describe. You would have to have different section names instead. But there also has to be an ability to link controls to other controls (ie. For button combos). That is where ini files really fall down. I think most people would prefer to keep it as an xml file (Arzoo and myself designed a new LED animation format called .lwax for example and that was xml as opposed to the original .lwa ini format)

I actually like garwil's idea on having pages, but instead of calling them "pages", call them "ControlCategory" or something. I like Arzoo's type of format which is very similar to how I design my data files. In fact ControlsDat exports pretty much exactly like that but instead of "action" it has "value".

So I think we should go with an xml format (you can still type them out in a text editor) and have ControlCategory's. The first ControlCategory could always be called "Main" and have the standard controls for the game. The other ones can be viewed by pressing a button to rotate through them.

Eg.
Code: [Select]
 <ControlCategory Name="Menu Controls">
<Control Name="Control Pad Up or Down" Action="highlight menu item">P1_JOYSTICK_UP OR P1_JOYSTICK_DOWN</Control>
<Control Name="Control Pad Left or Right" Action="change highlighted item">P1_JOYSTICK_LEFT OR P1_JOYSTICK_RIGHT</Control>
<Control Name="A Button" Action="select/go to next screen">P1_BUTTON1</Control>
<Control Name="B Button" Action="cancel/return to previous screen">P1_BUTTON2</Control>
<Control Name="Control Pad (when arrows appear)" Action="scroll">P1_JOYSTICK_LEFT OR P1_JOYSTICK_RIGHT OR P1_JOYSTICK_UP OR P1_JOYSTICK_DOWN</Control>
<Control Name="C Left" Action="access help screen">P1_BUTTON3</Control>
  </ControlCategory>

Well not exactly like that as it does need some tweeking but it's just about there. And it's complex enough to describe button combos and uses a very similar style to MAME where you can say buttons are AND, OR, NOT. So to describe a button combo you can use.

Code: [Select]
<Control Name="Z + A Button" Action="Backward Somersault">P1_BUTTON1 AND P1_BUTTON7</Control>
Earlier in the file you can assign what buttons mean what

Eg
Code: [Select]
P1_JOYSTICK_LEFT=Pad Left
P1_JOYSTICK_RIGHT=Pad Right
P1_JOYSTICK_UP=Pad Up
P1_JOYSTICK_DOWN=Pad Down
P1_BUTTON1=Button A
P1_BUTTON2=Button B
P1_BUTTON3=Button C Left
P1_BUTTON4=Button C Right
P1_BUTTON5=Button C Up
P1_BUTTON6=Button C Down
P1_BUTTON7=Button Z
P1_BUTTON8=Button L
P1_BUTTON9=Button R

And so on...
« Last Edit: October 07, 2009, 11:46:34 pm by headkaze »

tony.silveira

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 697
  • Last login:February 17, 2024, 10:24:34 pm
    • my baby
Re: control.ini for consoles?
« Reply #20 on: October 08, 2009, 09:27:15 pm »
ok kaze, i'm officially lost :)

but i'm not giving up!  since 1080 for n64 has been mentioned as having massive combo's, can we come up for a template, using 1080 as an example?

if you can write up 1080 as an xml, filling in all the combos and what buttons are what, i'll then happily use that template and get started on consoles.

feel free to pm me and we can take this offline.

t

tony.silveira

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 697
  • Last login:February 17, 2024, 10:24:34 pm
    • my baby
Re: control.ini for consoles?
« Reply #21 on: October 13, 2009, 01:37:10 am »
kaze, you mentioned that an ini file can be generated into an xml pretty easily?

i'd like to still continue my grunt work, like the vectrex ini file i made, so that the info will at least be out there and available.  i know it may not be in a format you can use immediately but can it be easily converted?

arzoo, how about on your end?  since you use ini's in ledwiz, i think it's more ready for use on your end?

the next consoles i'm going to tackle are turbogrfx and sega master systems, since they only have two buttons each and small libraries.

thoughts gentlemen?

tony

arzoo

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2092
  • Last login:March 15, 2024, 10:31:32 pm
  • Robots WILL kill you.
    • LEDBlinky
Re: control.ini for consoles?
« Reply #22 on: October 13, 2009, 02:23:43 pm »
kaze, you mentioned that an ini file can be generated into an xml pretty easily?

i'd like to still continue my grunt work, like the vectrex ini file i made, so that the info will at least be out there and available.  i know it may not be in a format you can use immediately but can it be easily converted?

arzoo, how about on your end?  since you use ini's in ledwiz, i think it's more ready for use on your end?

the next consoles i'm going to tackle are turbogrfx and sega master systems, since they only have two buttons each and small libraries.

thoughts gentlemen?

tony

LEDBlinky does read the controls.ini file rather than the xml version but that's mostly because I was lazy early on in the development  ::)

True - if you use the same ini format then integrating the new files may be a bit easier, but I'm fine with xml also. If you go with xml then I'll probably switch blinky over to the control.xml also.
Robots will kill you.



Arcade Addiction

Celsius

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 81
  • Last login:May 10, 2015, 11:40:41 am
    • Rcade project
Re: control.ini for consoles?
« Reply #23 on: July 15, 2011, 03:18:24 am »
Is anyone still working on this?

Howard_Casto

  • Idiot Police
  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 19399
  • Last login:March 16, 2024, 05:59:16 pm
  • Your Post's Soul is MINE!!! .......Again??
    • The Dragon King
Re: control.ini for consoles?
« Reply #24 on: August 02, 2011, 08:27:25 pm »
afaik, nope. 

There's a good read as well. 

90% of your nes games (just as an example) are going to have the labels "Up" "Down" "Left" "Right" "Select" "Start" "B" and "A". 

I know you are thinking "Hey that's just the labels on the gamepad!" and you would be correct.  But when you start looking into these games, except for the most basic ones, each button does multiple things depending upon the context.  Now yes, you can write lengthy descriptions one what each one does, but it's far simplier to refer to the manual.  So a better project is just to collect manuals, and there are many of those on the net.