| Main > Software Forum |
| Aaron removes xml2info as of u12 (in other words, we are screwed) |
| << < (12/16) > >> |
| krick:
--- Quote from: SirPoonga on July 19, 2006, 05:17:19 pm ---Heh, urebel, you know everything you mentioned is how controls.dat works :) We assume controls are for all unless player2 or greater is specified. So I would agree with your last two examples. If you haven't looked at the controls.dat format take a peek, it might give ideas. --- End quote --- I'd really like to see MAME document the controls better and I think that fits in with MAME's goals. I looked at the controls.dat XML version and I think that it's a bit "string" heavy but definitely along the lines of what is needed in MAME. I definitely like each button having its own element so you can attach attributes like "Fire" and "Hyperspace" to them. Button names/functions should definitely documented in MAME. The biggest problem I see is convincing the MAME devs to go along. Check out this thread to see what I mean... http://www.mameworld.info/ubbthreads/showthreaded.php?Cat=&Number=79110&page=&view=&sb=5&o=&fpart=1&vc=1 It appears that Haze is against it, and R. Belmont seems indifferent. Based on my experiences with Aaron, I think that he will be for it. I don't really know enough about the other devs to know how they'd feel. |
| Howard_Casto:
Ehh I dunno about the internalizing of controls.dat..... things get corrected and altered all the time. Plus we get a lot more volunteers due to how easy it is to make a submission. If someone had to modify the mame source to add and entry, that'd be rough. Now having mame be able to read an externalized controls.dat into itself and label the buttons in the ui... that seems like a good idea. It should be fairly doable considering we use the same input constants as mame. |
| krick:
--- Quote from: u_rebelscum on July 19, 2006, 05:01:44 pm --- --- Code: ---<input players="1" coins="2" tilt="yes"> <player> <buttons number="4"/> <control type="joy8way"/> <control type="dial" sensitivity="50" keydelta="10" reverse="Yes"/> <control type="trackball" sensitivity="100" keydelta="10" axis="Y"/> </player> </input> --- End code --- Somehow the players attribute in the input could be moved to inside the players element, but I don't know how to put "total number of players" vs "this player number" clearly. --- End quote --- stupid tabs aren't working but I think you can figure out what I mean... There's two ways that I think you could go. The first way has a "player" tag that contains the controls for a player. If both players share one set of controls, then there is only one "player" group... For Defender... --- Code: ---<input players="2" format="alternating" coins="2"> <player> <control type="button" name="Start"/> <control type="joy2way" axis="y" name="Move"/> <control type="button" name="Fire"/> <control type="button" name="Thrust"/> <control type="button" name="Smart Bomb"/> <control type="button" name="Hyperspace"/> <control type="button" name="Reverse"/> </player> </input> --- End code --- For Smash TV... --- Code: ---<input players="2" format="simultaneous" coins="2"> <player> <control type="button" name="Start"/> <control type="joy8way" name="Move"/> <control type="joy8way" name="Fire"/> </player> </input> --- End code --- For a made up game where player 1 and player 2 have different controls and the fire button doubles as the start button... --- Code: ---<input players="2" coins="2"> <player> <control type="joy8way"/> <control type="button" name="Fire"/> </player> <player> <control type="trackball" sensitivity="100" keydelta="10" axis="y"/> <control type="button" name="Fire"/> </player> </input> --- End code --- Or we could do something completely different and try to just document the physical controls attached to the machine and use the name to indicate how they are used by the players: For Defender... --- Code: ---<input players="2" format="alternating" coins="2"> <control type="button" name="P1 Start"/> <control type="button" name="P2 Start"/> <control type="joy2way" axis="y" name="Move"/> <control type="button" name="Fire"/> <control type="button" name="Thrust"/> <control type="button" name="Smart Bomb"/> <control type="button" name="Hyperspace"/> <control type="button" name="Reverse"/> </input> --- End code --- For Smash TV... --- Code: ---<input players="2" format="simultaneous" coins="2"> <control type="button" name="P1 Start"/> <control type="button" name="P2 Start"/> <control type="joy8way" name="P1 Move"/> <control type="joy8way" name="P1 Fire"/> <control type="joy8way" name="P2 Move"/> <control type="joy8way" name="P2 Fire"/> </input> --- End code --- For a made up game where player 1 and player 2 have different controls and the fire button doubles as the start button... --- Code: ---<input players="2" format="simultaneous" coins="2"> <control type="joy8way" name="P1 Move"/> <control type="button" name="P1 Fire"/> <control type="trackball" name="P2 Aim" sensitivity="100" keydelta="10" axis="y"/> <control type="button" name="P2 Fire"/> </input> --- End code --- I think that this second option fits more in with what MAME is about: documenting the hardware. |
| Howard_Casto:
That creates a ton of bulk though.... again controls.dat has already dealt with this problem. You don't brecket stuff by player.. you read two flags alternating and mirrored controls. Alternating means that players take turns. Mirrroed means that although each player has his or her own control set, they all have the same control set. The best example I can get is tmnt. All you need to say is that it's a 4 player simultaneous play game with mirrored controls. With this data it's only necessary to post the controls for player 1 (joy8way with two buttons with the labels attack and jump). Keeps a large list from data from becoming an insainely huge one. Again though, I do not think it makes a lot of sense to include this data internally with mame. |
| krick:
--- Quote from: Howard_Casto on July 19, 2006, 11:10:00 pm ---Again though, I do not think it makes a lot of sense to include this data internally with mame. --- End quote --- Most of the data is already in MAME in the form of input definitions. We're trying to come up with some way of dumping the internal input definitions into the XML so it can be more useful. For the first pass at this output, we should just concentrate on dumping all the inputs, similar to the way all the dipswitches are dumped. Then on the second passs, we can look at adding some grouping and/or organization information into MAME to enhance the XML dump. I'm still partial to listing every separate button as a control. I'm debating whether we should list each directional input as well and group them with a "joystick" tag if appropriate. Something like this... For Defender... --- Code: ---<input players="2" format="alternating" coins="2"> <button name="P1 Start"/> <button name="P2 Start"/> <joystick> <direction name="Up"> <direction name="Down"> <joystick> <button name="Fire"/> <button name="Thrust"/> <button name="Smart Bomb"/> <button name="Hyperspace"/> <button name="Reverse"/> </input> --- End code --- Or maybe... --- Code: ---<input players="2" format="alternating" coins="2"> <button name="P1 Start"/> <button name="P2 Start"/> <joystick type="2way" axis="y" name="Move"/> <button name="Fire"/> <button name="Thrust"/> <button name="Smart Bomb"/> <button name="Hyperspace"/> <button name="Reverse"/> </input> --- End code --- |
| Navigation |
| Message Index |
| Next page |
| Previous page |