P
GPWIZ49 & SET49MODE SOFTWARE SETUP
NOTE: In
order to view the ToolTips in the coding sections (aqua background),
you must have javascript enabled. This page assumes you
already have MAME and your frontend of choice configured and just wish
to add support for automatic GP-Wiz49 mode switching.
INTRODUCTION AND SCREENSHOTS
When GroovyGameGear
introduced
the GPWiz49™ Interface, it was widely
regarded
amonst the arcade gaming community as the greatest thing since sliced
bread, and with good reason. Let's take a moment and look at
some of the reasons for its popularity.
First, the joystick
has these features:
- Throw and feel similar to a Happ™ Super or
Perfect 360
joystick, making it much closer to the arcade feel most American gamers
grew up with, as opposed to the short (but accurate) throw found on
most switchable mode sticks like the OmniStik Prodigies or the T-Stick,
J-Stick, or Sanwa joysticks. Despite the long throw, the
sticks actuate almost immediately, similar to the P360 or a well tuned
leaf
joystick.
- Rubber centering grommet similar to the highly-regarded old
Wico leaf joysticks.
- Speaking of leaf joysticks, plastic sliders lack the
annoying click of microswitch joysticks.
- Available ball-top handles from GroovyGameGear.
- Available centering spider for games like SiniStar.
- Available mechanical rotary adapter for playing rotary
joystick games like IKARI Warriors.
- Preliminary TRON joystick trigger-handle support.
The interface itself is no slouch either, having the following features:
- Very reasonably priced, especially if you consider the
non-solder Eco version, which uses a modded IDE hard drive cable.
- Supports 23 standard and five shifted joystick buttons per
interface (one interface per joystick), making additional keyboard or
gamepad encoders largely unnecessary.
- However, the feature that really defines and makes this
product stand out is the Digital Restrictor Selection (DRS)™
technology which makes the stick
appear to the computer as either a true 49-way stick, 8-way joystick,
4-way joystick, rotated 4-way joystick, 2-way vertical joystick, or
2-way horizontal joystick. In short, you have a single
joystick that can be used for almost any of the joystick (and some
other, 720 degrees for example) games in MAME. The only games
the stick cannot very well be used for are true analog joystick games,
such as Star Wars, Afterburner, etc.
But wait, there's
more! Not only does the stick support DRS™ modes,
but RandyT
included not one, but four different ways of changing DRS mode
settings, as follows:
- Mode switch can be used by pressing a mode button and one
of the action buttons to put the stick into a different mode.
- Eight position rotary switch can be used to change modes.
- Software can change modes in one of two ways.
Below are screenshots of the GPWiz software. The
main image on the left (click twice to enlarge) is the main image that
appears when you launch the software directly or from a shortcut with
no parameters specified. The software can also be launched
from a command line followed by a number flag which sets the interface
to the corresponding mode and also displays the confirmation image
below. A pending (Oct 05) release of the software will
provide an option to disable the confirmation image. And
there shall be much rejoicing, although I kind of like it. . .


So
with all this going for it, what's not to like about this interface?
Well, until Oct05, how about the following:
- Requires you to know what mode the stick should be in for
any particular game. For PacMan or Galaga, this is not a big
deal, but what about Road Runner, Waku Waku 7, Trog, Galaxy
Force 2, Goal! Goal! Goal!, or Clutch Hitter (yes, EmuLoader's random
game feature comes in handy sometimes)? Do you REALLY
know what mode all these games use off the top of your head without
cheating and referring to controls.ini?
- Even if you know what mode you want to be in, the switching
options are not that great. Many users neither want an extra
"Mode" button on their CP, nor want to have to remember what button
gets
pressed along with it to switch to the desired mode. Most
users don't want a non-gaming rotary switch on their CP.
Direct software switching requires a mouse or trackball and
(usually) a shortcut on the windows desktop, which many users try to
avoid showing. (I realize you could set it up to
launch from a hot key, but. . . ) Command line
switching was always IMHO the preferred option, but until recently that
involved manually setting up a list of games that needed each
particurlar mode, and was a very cumbersome process to configure.
All
of this has changed with the Oct05 introduction of SirPoonga's
set49mode software. At last, there is a software integration
solution worthy of the interface. What makes it so
outstanding is the following:
- Compact - The setup files are only 13kb.
- Quick and simple set-up - You can have the software up and
running in less time than it took to read this introduction.
- Relies on controls.ini file to provide the most accurate
reference for controller type information.
- Extremely quick operation - software will switch the
GP-Wiz49 to the correct mode generally in (much) under one second.
- Upgradable - when a new controls.ini or MAME release comes
out, you can be using the latest info with your GPWiz49 in less than 5
minutes.
- Configurable - very simple process for changing the default
mode used by a game, or adding new or alternate games to the software.
The
purpose of
this page is to explain how the software works and how to use it with a
frontend. I will provide specific instructions for EmuLoader
and
basic instructions for MAMEwah, but the general theory can be used with
any frontend that can either pass the gamename to a batch file, or
launch an application prior to launching MAME™ (or other
emulators).
While
the
procedures are basically useless without a GPWiz49 interface and 49-Way
joystick, I would like to point out that the software can be run
without them, so if you have ordered one and want to get a head-start
before it arrives, or want to see if you like how the software works,
or are just curious, feel free to try this out!
THEORY OF OPERATION (AND SOME
ADVANCED CONCEPTS)
This
is meant as an overview of the software. If you're impatient,
feel free to skip ahead to the Set-up paragraphs and come back to these
sections later. There is nothing discussed here that can't be
quickly fixed later if you need to change a setting.
This
is meant as a simplified explanation of the program operation.
One of the really nice features of the set49mode program is
that very few files are involved and they are all manually editable.
The software can be considered to have two "modes" Setup and Run. For
the most part, everything can be done in the background and the only
files the casual user will need to be concerned with are gamemodes.ini
and override.ini. Here is how the modes work in practice
(although I may be leaving some steps out (intentionally) and may have
some things out of order:
- Setup modeis
principally only used to generate a
gamemodes.ini file. It does this basically in the following
manner (I assume): First, it reads through each game in
listxml, grabs input, romof, and cloneof info. When the code hits
the </game> tag (it knows we finished reading in the game) it
will then check override.ini first (in order [CONTROLS] specific game,
[CONTROLS_parent] parent, romof, cloneof, ), if nothing there
then controls.ini (parent, then romof, then cloneof). If that
fails use the input info from listxml. If that fails, probably
due to incomplete driver, it will go with the default. Also,
from controls.ini, it grabs the first control listed for player
1. This is usually the most important control in determining
which mode your gpwiz will need to be in. Once it finds an
entry, it compares the player 1 controls to the
controls_dat_modes.ini file or mame_modes.ini file and then to the DRSModes.ini file and
generates a line for the game in the
gamemodes.ini file. Then it moves to the next
game for all 5800 or so games. . .
- The important thing to note is
that at the conclusion of the setup mode phase, gamemodes.ini will have
an entry for every game in the version of MAME that set49mode was
configured to use (plus any games added to override.ini that are from a
previous version of MAME). (How accurate that entry is will
depend
on whether you set an appropriate override.ini setting for the
game, whether the game (or it's parent) was added to
controls.ini (accurately) (although controls.ini is pretty accurate and
always improving), and otherwise, on how <cough> careful
<cough> the MAME development team was in documenting the
controls used (generally horribly inaccurate, and the reason
controls.ini was born).
- Run mode
is used when the software is launched from the command
line and passed a romname. The program searches gamemodes.ini
for the romname.
If found, it launches the GPWiz software with the assigned
value. If not found, it simply launches the GPWiz software with no flag, which
brings up the screen on the left above, which is actually a pretty nice
way to both let you manually select a mode and to cue you in that the
particular game does not exist in either file.
Below is a summary
of the various background files used by set49mode.
- controls_dat_modes.ini
-
This simply lists the controls.ini file entries for control types and
the associated DRSModes to be used by them. (I am only listed
a short excerpt of the entire file below. Three things are
worth noting: 1) Raw49 and Progressive49 mode are very much a
personal preference setting for most users. If you want to
change the default, the best way to do it is to edit this file and the
mame_modes.ini file and then run generate gamemodes.ini again.
2) Any changes must conform to the entries listed
in DRSModes.ini. 3) Updated versions of this file
will be available on http://fe.donkeyfly.com
as
new control types are added to controls.ini.
Also, note that the excerpt below is a preliminary version
for
use with the initial test version of the software and may be changed
when the software is formally released. If you download an
updated version, you will have to re-enter
your manual changes, so it would be wise to keep a record of them, or
just compare the old and new files and modify the new one to match the
old one:
- Analog
Gun=Progressive49
Throttle
(Paddle)=8-Way
Throttle
(Stick)=8-Way
Pedal
(Microswitch)=8-Way
Pedal (Analog)=8-Way
Pedal2
(Analog)=8-Way
High-Low
Shifter=8-Way
4 Gear Shifter=8-Way
Paddle
(Horizontal)=Raw49
Paddle
(Vertical)=Raw49
- mame_modes.ini
- This file is identical to controls_dat_modes.ini,
except it shows the control types given in listxml.xml (MAME).
The same considerations apply as above. The entire
contents are posted below. As you can see, MAME has a LOT
less control types than controls.ini.
- NOTE: Mame
does have more control types, but those are the ones that show up in
listxml. Now that mame uses xml they really should list all the
controls the game is using. Like dotron would list trackball,
dial, and joy8way. And you'd see pedals show up for racing games.
. . .
- ;;mame constant=DRS Mode (from DRSModes.ini)
;;I should have all the constants as of Mame 0.98
[CONTROLS]
joy4way=4-Way
joy8way=8-Way
trackball=8-Way
doublejoy8way=8-Way
dial=8-Way
paddle=Raw49
stick=Progressive49
lightgun=Raw49
doublejoy4way=4-Way
doublejoy2way=2-Way Horizontal
vdoublejoy2way=2-Way Vertical
joy2way=2-Way Horizontal
vjoy2way=2-Way Vertical
- override.ini - The default
version of this file is shown below. The main thing to note
is
there are two sections to the file. [CONTROLS] lists changes
that
only apply to one particular game. [CONTROLS_parent] contains
parent games for which you want the parent and all clones to use the
same values. Note that the listed entries are only examples.
Tron should be changed to 4-Way, but it should really be
entered
under [CONTROLS_parents] so that Tron2, Tron3, and Tron4 get updated
too. Puckman and Neogeo already use the specified modes, so
setting them here is just a redundant example. There are two
cases
where you may want to add entries to this file: 1) If a game is not
found in the gamemodes.ini file (for example if you were playing MAME
with a newer or older version than the one that the listxml.xml file
was made from, or 2) If you want to use a different mode for a specific
game (for example, as you can see below, tron currently (23Sep05) uses
an 8-Way mode according to controls.ini, but the game actually plays
best with the DRS™ mode set to 4-Way.) NOTE: This
does not apply to dotron, which did not have a restrictor in the
physical joystick and thus should be considered 8-Way. NOTE2:
Note that entries must exactly
match the entries in the DRSModes.ini file. NOTE3: As stated in the comments, [CONTROLS] takes priority over [CONTROLS_parent] if both could apply.
- ;;romname=DRS
Mode (from DRSModes.ini)
;;The mode listed here will be priority over the modes listed in
;;controls_dat_modes.ini and mame_modes.ini
;;This section for specific romnames
[CONTROLS]
tron=4-Way
;;list parent romname here if you want all the romof and cloneof
;;games to use the mode too.
;;The [CONTROLS] takes priority. You could list neogeo here
;;and neogeo's The Irritating Maze in the [CONTROLS] section
;;as Raw49 for trackball simulation.
[CONTROLS_parent]
puckman=4-Way
neogeo=8-Way
- gamemodes.ini - The
"MacDaddy™" file for set49mode. This
is the
main (and only) file that the program will access to set a
49-way
mode for the
game. Only an excerpt is shown below. I do NOT recommend
making any manual changes to this file (except in the special case of
non-MAME emulators), as any changes will be over-written the next time
the gamesmode.ini file is generated. Instead, either add the
incorrect game to the override.ini file or change the values in the
controls_dat_modes.ini or mame_modes.ini files and re-generate the list.
- NOTE: An
exception to the rule about not manually modifying the file is the case
of older games. Consider galagads – adding the game to
override.ini does nothing. To make changes, you need to manually
add the game to gamemodes.ini. This is shown by the red
entry below.
However, once you do this, the game entry is NOT deleted when a new
gamemodes.ini is created, so this is acceptable – I would
recommend keeping a backup file of manual changes made to
gamemodes.ini, just to be safe, but . . .
- [MODES]
galagads=6
puckman=4
puckmana=4
puckmanf=4
puckmanh=4
pacman=4
pacmanf=4
puckmod=4
pacmod=4
newpuc2=4
newpuc2b=4
- DRSModes.ini - This file
is NOT intended
to be manually modified by the user. (You cannot improve
this,
you can only screw things up). Think of this file as a "cheat
sheet" to tell you what format to use when changing a value in the
override.ini, controls_dat_modes.ini, or mame_modes.ini files.
NOTE: There is a pending (23Sep05) change to the GPWiz49
software
to add a "0" mode which (I think) would disable software control of the
interface and switch it over to manual mode. I can't think of
any
instance where you might want to do this one a "per-game" basis, but
the opportunity is there if you do . . .
- ;;DRS Mode description=DRS Mode number
;;Unless IDVT Inc. adds a mode this file should not change
;;Manual will probably not be used by anything
;; 0 puts the software and hardware in manual mode
;; You will be able to switch modes manually with the GP-Wiz49
[DRSModes]
Manual=0
Raw49=1
Progressive49=2
8-Way=3
4-Way=4
Diagonals=5
2-Way Horizontal=6
2-Way Vertical=7
16-Way=8
- settings.ini
- This is
merely a file for saving path and default mode info entered through the
set-up routine. There is no reason (unless you just hate
GUI's)
to edit this file manually.
- [PATHS]
listxml=C:\mame\listxml.xml
controls_dat=C:\set49mode\controls.ini
gpwiz49=C:\gpwiz49\GPWIZ49.exe
[DEFAULTS]
DRSMode=8-Way
LIMITATIONS AND CONSIDERATIONS
- OPERATING
SYSTEM AND SUPPORT FILES - The
GP-Wiz49 interface is USB. Thus the interface is pretty much
limited to Win95 Release 2 and up. The set49mode
software
has only been tested (AFAIK) with Win2K and WinXP, but should support
Win98 and maybe even older Windows operating systems. The
software requires the Microsoft .NET Framework for operation.
You
can check in "Start>Settings>Control
Panel>Add/Remove Programs" to see if it is
installed, and if not, version 1.1 is available here
and Version 1.1
SP1 is available
here. (Both files are required to install 1.1SP1).
Just double-click the file, reboot,
double-click the SP1 file, re-boot and you should be set.
- MAME VERSIONS
- set49mode
currently (23Sep05) supports MAME versions which use listxml
rather than listinfo, from approximately 0.84u4 up to 0.100u1 (and
probably beyond). Older versions are not
supported currently supported.
- Note that the above limitations
apply only to
the MAME version used to setup the gamemodes.ini file, not necessarily
the version of MAME that you use to game on the computer. If
you
have a very slow
processor and prefer to play your games in MAME 0.53, it is very easy
to install both MAME 0.53 and an XML-compliant MAME on your computer,
generate the gamemodes.ini file using the XML-compliant MAME, and then
launch MAME 0.53 with the batch file. If you choose this
method,
note that many of the older roms have probably either been deleted or
re-named as MAME has "evolved", so you should either 1)
<preferred> run MAMEdiff and find roms that are in the
older MAME
but not in the newer MAME and add entries for these games to the
override.ini file, or 2) "Shoot from the hip" and just use
the
software until you launch a game that gives the left side rather than
the right side screenshot above, and then add an entry for that game to
override.ini.
- OTHER
EMULATORS - Other
than RAINE and maybe some other more obscure emulators, there are
surprisingly few programs outside of MAME that require per-game mode
switching. All Zinc, NeoRAGE, and CPS-2 games are 8-way
digital
only. Console emulators (including Chankast) theoretically
would
need to switch between Analog (Raw49) and digital (8-Way) mode support,
but I don't know that any of them truly use the analog inputs.
The one possible exception would be Daphne. To
support
Daphne (or any non-MAME emulator), I recommend doing a normal
installation, then copying the entire installation folder to a new
folder like C:\set49mode_daphne\ and then modify the gamemodes.ini file
to match the new non-MAME emulator. (For Daphne, this only
involves adding entries for about 15 games.) Then create a
new batch file to launch set49mode and the other emulator.
- HARD
DRIVE REQUIREMENTS - The
GPWiz49 software requires about 2 Mb of HD space. Set49mode
requires about 200 kb, plus about 400kb for controls.ini.
However, MAME's listxml.xml file eats up about 20 Mb of
storage.
SirPoonga and I disagree on this. I recommend
deleting it
after you generat gamemodes.ini. He recommends keeping it.
It will not be needed, but if you need to re-generate
gamemodes.ini again, you will have to have it or create it again, which
as you will see takes about 5 seconds. And if you keep it for
24
hours, MAMEdev will release another "u" build, making it obsolete
already.
- INTEGRATION WITH OTHER PROGRAMS -
Mainly
here I am talking about this with other utilities, such as the Howard
Casto's Johnny5 Viewer, or the AHK Script, both of which are described here.
This can be done, you just have to modify the batchfiles (on
the
other page) to add the calls to set49mode. I recommend
modifying
the files so that set49mode is launched immediately prior to launching
MAME, but it really is irrelevant.
- FRONT END
REQUIREMENTS - Basically,
any frontend that supports batch files instead of .exe files, or
supports launching an application and sending the romname to the application.prior to launching MAME can use this
method. If your frontend does not support this, you will have
a
very difficult time getting this to work. Also, it is better
if
your frontend supports gamepad control. EmuLoader does not
support this, but if you have a desktop controller, you can use your
mouse/keyboard to select games and then have the software change
GPWiz49 mode settings for you. You can also use support programs
to make the GPWiz49 behave like a keyboard encoder and then use it with
these frontends.
PRELIMINARY
SET-UP
Yes, I
am finally
going to tell you how to get started doing cool stuff with GPWiz49 and
set49mode.
First off, this is
optional, but if you are using WinXP, I highly recommend
installing the "Open
Command Window Here" Powertoy from http://www.microsoft.com/windowsxp/downloads/powertoys/xppowertoys.mspx.
This will let you right-click on a folder and have a command prompt
pointing to
it. I think Win98SE already includes this feature (although you might
need TweakUI to add it). I'm not
sure about other OS's. I will assume from here on that you
have it installed. If you choose not to install it, you will
have to navigate to the proper directory using "CD" commands as covered
in the batch files below.
Other ways of adding
this are shown here
(Win2k), here (Win2k), here (Win2k), and here
(Win98 up). In case all this fails (and for me in one case it
did), you can simply copy cmd.exe from \WindowsRoot\System32\cmd.exe to
the applicable folder and double-click that.
GPWIZ49
SOFTWARE SETUP AND TESTING
<sarcasm>Alright,
this is a very tricky installation, so please carefully follow all of
the steps below exactly as shown</sarcasm>:
- Create
a new folder (recommended C:\gpwiz49)
- Download the GPWiz49 software from http://www.groovygamegear.com/GPWIZ49.zip
and extract the two enclosed files (GPWIZ49.exe and License and
Docs.txt) to the folder above.
- Enjoy!!!
Actually, you should
do some
testing to verify the software works as intended. If you want
you
can double-click on the GPWIZ49.exe program and verify that the mouse
and the GUI can be used to set modes, but since the purpose of this
exercise is to set-up command line support, that is all I am going to
cover.
If you have an
actual GPWiz49
interface and joystick, you should plug it (them?) in now and open
Start>Settings>Control Panel>Game Controllers (or
Gaming
Options), select the GPWiz49 interface, and verify that the joystick
responds as intended. If you don't have one, don't bother and
just imagine all the fun you are missing out on.
Now, right-click the
C:\gpwiz49
folder and select "Open Command Prompt" (or otherwise open a command
prompt at the C:\gpwiz49 prompt) and type the following (bold)
commands followed by the enter key. NOTE: The
following
tests assume you have the GPWiz49 software configured to display
confirmation prompts.
- GPWIZ49 1 (You
should see
a confirmation screen similar to the right side screenshot above but
for Raw49 mode. If applicable, the joystick should respond in
the
Game Controllers screen fairly similarly to an analog joystick (but
with only 49-positions)). NOTE: This mode is used
for true
49-Way games, as well as most analog and hall-effect joystick
games. Some users prefer Progressive49 mode for these games,
you
will need to determine which you like better.)
- GPWIZ49 2 (You
should see a
confirmation screen similar to the right side screenshot above but for
Progressive49 mode. If applicable, I think (?) the joystick
should respond in the Game
Controllers screen fairly similarly to the setting above but with
acceleration turned on. (???)). NOTE:
This mode is mainly intended to simulate the centering spider
which gives finer control at small joystick deflections in SiniStar
(and Blaster?). Can also be used for true 49-Way
games, as
well as most analog
and hall-effect joystick games. Some users prefer
Raw49 mode
for these games, you will need to determine which you like
better.)
- GPWIZ49 3 (You
should see
a
confirmation screen similar to the right side screenshot above but for
8-Way mode. If applicable, the joystick should respond in the
Game
Controllers screen like an 8-Way digital joystick, i.e., the joystick
is either centered or at the extreme edge in one of the eight possible
directions, with no "in-between" settings). NOTE:
The
majority of arcade games use this setting, including fighters,
shum'ups, horizontal scrollers, etc.
- GPWIZ49 4 (You
should see a
confirmation screen similar to the right side screenshot above but for
4-Way mode. If applicable, the joystick should respond in the
Game
Controllers screen like a 4-Way digital joystick, i.e., the joystick
is either centered or at the extreme edge in either the Up, Down,
Right, or Left directions, with no "in-between" settings.
Only the extreme diagonals should register (for Tron)).
NOTE: This mode is probably the second most common mode, used
for
classics like PacMan, Donkey Kong, Frogger, DigDug, Qix, etc.
- GPWIZ49 5 (You
should see a
confirmation screen similar to the right side screenshot
above for
Diagonals. If applicable, the joystick should respond in the
Game
Controllers screen like a rotated 4-Way digital joystick, i.e., the
joystick
is either centered or at the extreme edge in one of the diagonal
directions, with no "in-between" settings.) NOTE: This
mode is used for games like Q-bert, Q-bert's Qubes, and Congo Bongo.
- GPWIZ49 6 (You
should see
a
confirmation screen similar to the right side screenshot above but for
2-Way-H mode. If applicable, the joystick should respond in
the
Game
Controllers screen like a 2-Way horizontal digital joystick, i.e., the
joystick
is either centered or at the extreme edge in either the Left or Right
direction, with no "in-between" settings.) NOTE: This
mode was notably used for classics like Galaga, Galaxians, Space
Invaders and others.
- GPWIZ49 7 (You
should see
a
confirmation screen similar to the right side screenshot above but for
2-Way-V mode. If applicable, the joystick should respond in
the
Game
Controllers screen like a 2-Way vertical digital joystick, i.e., the
joystick
is either centered or at the extreme edge in either the Up or
Down directions, with no "in-between" settings).
NOTE: This
mode was typically used for Defender, as well as many "Tank" controller
games such as BattleZone, Sarge, Vindicators, etc.
- GPWIZ49 8 (You
should see
a
confirmation screen similar to the right side screenshot above but for
16-Way mode. If applicable, the joystick should respond in
the
Game
Controllers screen like a theoretical 16-Way digital joystick, i.e.,
the joystick
is either centered or at the extreme edge in one of 16 positions, 22.5
degrees apart, with no "in-between" settings). NOTE: This
mode really has no known practical uses. It was proposed as a
mode for 720 degrees, but Kremmit from BYOAC found that Raw49 mode
worked better for this game. It has able been proposed as
useful
for emulation of an Intellivision controller.
This concludes our
scheduled
testing of the GP-Wiz49 interface. Of course, additional
testing
may be required, especially if you have high scores to break!!!
SET49MODE
SOFTWARE SETUP AND TESTING
The
screenshots below show the initial and folder selection screens of the
set49mode software (click twice to enlarge). Note that you
will only see these screens when installing or upgrading the software
(after a new MAME or controls.ini release). In normal
everyday usage, you will only see the GPWiz49 software confirmation
screens. (And if you have the pending version of the GPWiz49
software that disables these, you won't even see them, for true
invisible behing-the-scenes goodness . . .)

The first step in
the installation is to verify you have the .NET framework installed as
explained above under "OPERATING SYSTEM AND SUPPORT FILES."
Next,
create a new folder (recommended C:\set49mode). Download
set49mode as the attachment in this
message thread and extract it to the new folder.
Also download controls.ini from http://fe.donkeyfly.com/controls/controls_dat.php
and extract it to
the new
folder also (unless you already have it on your system and are using it
elsewhere).
Finally, right click on
your main MAME folder and select "Open Command Prompt" (or
otherwise open a command
prompt at the C:\mame prompt) and type in mame -listxml > listxml.xml
and press enter.
Now double-click the
set49mode.exe file and you will see the screen on the left above.
In the taskbar of the set49mode window, click "setup" and
select "File Locations" from the drop-down list. You will see
the Setup File Locations form as in the screen on the right.
Click the upper box with the three dots and navigate to and
select your GPWIZ49.exe file. Click the middle box with the
three dots and navigate to and select the listxml.xml file.
(This would be C:\mame\listxml.xml if you followed the
example above.). Click the lower box with the three dots and
navigate to and select the controls.ini file (recommended
C:\set49mode\controls.ini unless you had the file already installed
somewhere else (C:\johnny\data files\controls.ini, for instance)).
Finally, click the Save button and the window will close.
Next, in the taskbar
of the set49mode window, click "setup" and select "Default DRS Mode"
from the drop-down list. A new window will pop up with the
available selections. This is the mode that set49mode will
use if it can't find any information on a game. Generally,
8-Way is used, but you can select something else as desired.
If desired, you can
also view and edit any of the support files from the "setup" taskbar
option, and refresh them into the program by pressing F5, but we
shouldn't need to do that now.
Next click on the
button labeled "Create Gamemodes.ini" and click "Yes" on the
"Are you sure?" confimation window. Once this finishes, the
software is ready to use. NOTE: To keep the
software current, you should create a new gamemodes.ini whenever you
download a new version of controls.ini, or change any of the
set49mode support files. You should
also generate a new listxml.xml file and create a new gamemodes.ini
file whenever you change MAME versions.
Close the set49mode
window and let's do some testing ! ! !
Right click on the
C:\set49mode folder and select "Open Command Prompt" (or
otherwise open a command
prompt at the C:\set49mode prompt) and type the commands in bold below (or
other games of your choosing), followed by the enter key.
set49mode 1943 (You
should see the GPWiz49 8-Way confirmation prompt appear (cool, huh!!!))
set49mode pacman (You
should see the GPWiz49 4-Way confirmation prompt appear.)
set49mode qbert (You
should see the GPWiz49 Diagonals confirmation prompt appear.)
set49mode galaga (You
should see the GPWiz49 2-Way-H confirmation prompt appear.)
set49mode defender (You
should see the GPWiz49 2-Way-V confirmation prompt appear.)
Now to integrate it
with MAME . . .
BATCHFILE
SETUP AND TESTING
NOTE:
The following suggestions are optimized for EmuLoader 4.7
(and up). EmuLoader 4.7 has very robust batch file support.
It will run the default.bat file first, but it will also
search the directory for any <gamename.bat> file and run
that instead. So for example, if you wanted to use an older
version of MAME for Battlezone, you would simply copy the default.bat
file and rename it as bzone.bat, then edit the file to point to the
older MAME version. MAMEwah will work with a default.bat
file, but would be just as happy with a mame.bat file in the MAME
directory, or just calling set49mode directly prior to launching MAME,
but I will get to that later. . .
Create a
new folder, recommended C:\mamebat. Open notepad, copy the
text below (aqua background), paste and modify as required (see
ToolTips), and save as a text file named default.bat.
To test
the batch file, right-click on the
C:\mamebat folder and select "Open Command Prompt" (or
otherwise open a command
prompt at the C:\mamebat prompt) and type default followed by
a working rom name and press enter. The GPWiz confirmation
window should pop up and then the game should start in MAME.
PRELIMINARY
FRONT-END INTEGRATION
This is
an often overlooked
setting, but is important. Typically, you will want the
GPWiz49
interface to be in 8-Way mode prior to launching your frontend.
There are two ways to do this, depending on how you use your
PC:
- If
you have a dedicated
arcade PC (GP-Wiz49 Interface is ALWAYS connected at boot-up, PC is not
used for anything but gaming or emulator configuration), then you
probably want the GPWiz49 software loaded in 8-Way mode at system
start. To do this: Right-click on the
C:\gpwiz49\GPWIZ49.exe file and select "Create Shortcut".
Right-click on the newly created shortcut file and select
Properties. Add a "3" to the end of the target field ("4" is
you
prefer 4-way mode for navigating your frontend) so that it now
reads C:\gpwiz49\GPWIZ49.exe
3 instead of just C:\gpwiz49\GPWIZ49.exe.
Double-click the shortcut to verify it works. Now
drag-and-drop the shortcut to you Start-Programs-Startup group.
From now on, the GPWiz49 interface will be set to 8-Way mode
when
the PC is rebooted. NOTE: If you shell into a
frontend
rather than launching explorer, this may not work, and I am not sure
how to workaround it.
- If
you have a multi-use
PC (a desktop PC with a control panel that is connected and
disconnected, and games along with normal office/PC "junk"), then you
will want to get used to plugging the GPWiz49 Interface in BEFORE launching
your frontend and doing one of the following:
- Create
the same shortcut as above, but rename it as "Switch to 8-Way Mode" and
place it on your desktop instead of in your startup folder.
Double-click the shortcut prior to launching your frontend.
- Modify
your frontend to to automatically switch the GPWiz49 Interface to 8-Way
mode as follows: Open notepad and save the following batch file
in your frontend (C:\emuloader) main folder as a text file named
emuloader.bat. (No tooltips this time (I got lazy), but same
changes as above if required):
- echo off
C:
cd\
cd gpwiz49
GPWIZ49.exe 3
cd\
cd emuloader
emuloader.exe
exit
- Right-click
on the batch file and select "create shortcut." Right-click on
the shortcut and change the icon to the same icon that your frontend
uses (usually found by navigating to the frontend's .exe file)
Rename the shortcut to the same name as your existing frontend
shortcut. Delete the existing frontend shortcut and replace with
the new shortcut. Repeat for any other frontends you may be
using. NOTE: Unfortunately, this means that you will see a
command prompt prior to your frontend launching. I don't know any
way to avoid this.
- UPDATE:
For those like me, that the DOS Box totally annoys, I have
discovered a solution: Download and install a free program called
Batchrun from http://www.outertech.com/index.php?_charisma_page=product&id=1.
Once installed, run the program and on the taskbar, under
"Settings>Show", uncheck everything except "Toolbar". If
necessary, close, re-open, and repeat the above until this setting
"sticks". Now, in the filename space, navigate to and select
C:\gpwiz49\GPWIZ49.exe. In the parameter field, enter "3".
Check to select "Wait until end". Click the Add+ button on
the toolbar. Now, in the filename space, navigate to the
EmuLoader program and select it, then clear the Parameter field and
"Wait until end" checkbox. Click the Add+ toolbar buttton again.
Now save the file as C:\emuloader.brs. Create a shortcut to
it. Change the icon for it. Replace your existing shortcut,
and repeat for any other emulators.
EMULOADER
INTEGRATION
Launch
EmuLoader (4.7 or above). Text shown is for 4.7.4.
From the
taskbar, select Advanced User>Alternate Batch Files. Ensure
the MAME tab is selected, and click the enabled checkbox. Click
the icon following default file and navigate
to C:\mamebat\default.bat (if you followed the example) and click
"open." For our use, we only need the Name parateter sent to the
batch file, so ensure only it is selected (add/delete as required under
Parameters), and click the Ok checkbox at the top of the
form. Next,
from the taskbar, select the File>Preferences>General>Games
tab and click "Use Custom Options by
default." Finally, if you want to hide the annoying Command
Prompt Window, select the File>Preferences>General>Advanced
User tab, under the
"MS-DOS Box State" option, select either "Hidden (not recommended)" or
"Minimized".
You can also set Alternate
Batch File settings for Zinc, Daphne, AgeMAME, or PinMAME if you want
to use custom batch files with these emulators.
That
should do it, and EmuLoader should now switch GPWiz49 modes prior to
launching a game.
KYMAERA 2.02
I was unable to get this
working properly with Kymaera. I did get Kymaera to run the batch
file, but it did not seem to be passing to romname to the set49mode
software, although MAME launched with the correct romname. This
means that the software is okay if you know what mode the game should
use and have a mouse or trackball available.
MAMEWAH
INTEGRATION
Unfortunately, I am not
very familiar with MAMEwah. I have set it up and used it
previously, but it is not my frontend of choice (no offense to it or
MinWah), so I am not very familiar with it. I have consulted with
MinWah on these settings and have personally verified they work, as
described using Versions 1.61 and 1.62B5. I will post file names
and settings for these versions. BTW, if you are
also new to MAMEwah, I found this guide
very useful in getting it working. (You might also want to review the support files at Jcrouse's site.)
NOTE: There are some
differences between the methods below. I set-up Version 1.62B5
fairly quickly with the intention of verifying that the methods
work. Therefore, I happened to be running at a desktop resolution
of 1024x768, a MAMEwah resolution of 640x480, and a MAME resolution of
800x600. Method 1 will run the GPWiz49 software (usually) at
MAMEwah resolution of 640x480. Method two will run the GPWiz49
software typically at desktop resolution of 1024x768. Generally I
think Method 1 would be preferred because it allows you to keep the
{autodosbox} flag for MAME.
- Method 1 - If you are using from MAMEwah 1.62b1 up to the latest (24Sep05) (1.62B6 Beta) version of MAMEwah (from the MameWah forum), I think you can basically ignore the batch files above and just set APP PREVIOUS to C:\set49mode\set49mode.exe and APP NEXT to C:\gpwiz49\GPWIZ49.exe 3. For version 1.62B5, this involves setting the following lines in your (typically) C:\mamewah\config\mame\mame.ini file:
- ### Execution Settings ###
pre_emulator_app_commandlines
C:\set49mode\set49mode.exe [name] {nodosbox} {safelaunch}
emulator_commandline
C:\mame\mame.exe [name] {autodosbox}
{safelaunch}
post_emulator_app_commandlines
C:\GPWIZ49\GPWIz49.exe 3 {nodosbox} {safelaunch}
- Method 2 - This
method may be used with any version of MAMEwah. You can also look
through your MAMEwah config files, find the line where it calls C:\mame\mame.exe and modify this to call C:\mamebat\default.bat (after creating it above, of course). Note that if you previously had the
{autodosbox} flag set, you need to change it to {nodosbox} or MAMEwah
will relaunch the game from the beginning the first time you exit MAME. For MAMEwah version 1.62B5, this involves setting the following lines in your (typically) C:\mamewah\config\mame\mame.ini file:
- ### Execution Settings ###
pre_emulator_app_commandlines
emulator_commandline
C:\mamebat\default.bat [name] {nodosbox}
{safelaunch}
post_emulator_app_commandlines
- For MAMEwah version 1.61, this involves setting the following lines in your (typically) C:\mamewah\ini\mame.ini file:
- ### Execution Settings ###
emulator_executable
C:\mamebat\default.bat
commandline_format [name]
{nodosbox}
{safelaunch}
- Ctrlr File Settings - MinWah
also recommended the following ctrlr settings for optimum performance
with the GPWiz49 interface. For MAMEwah 1.61, these changes would
(typically) be made to C:\mamewah\ctrlr\default.ini. For MAMEwah
1.62b5, they would (typically) be made to C:\mamewah\config\mamewah.cfg:
- <quote> Here's a few
example settings for people using 49-way's in Mamewah itself.
Emulator and list-specific ctrlr files can be used for those with
swappable panels and such:
- ### INPUT MAPPINGS ###
# main form
UP_1_GAME "DIK_UP ¦ JOY1_UP"
DOWN_1_GAME "DIK_DOWN ¦ JOY1_DOWN"
UP_1_LETTER "DIK_LEFT ¦ JOY1_LEFT"
DOWN_1_LETTER "DIK_RIGHT ¦ JOY1_RIGHT"
# options form
OP_UP_1_OPTION "DIK_UP ¦ JOY1_UP"
OP_DOWN_1_OPTION "DIK_DOWN ¦ JOY1_DOWN"
OP_UP_1_OPTION_PAGE "DIK_LEFT ¦ JOY1_LEFT"
OP_DOWN_1_OPTION_PAGE "DIK_RIGHT ¦ JOY1_RIGHT"
### SETTINGS ###
# 0 or 1 (off / on)
joystick 1
# 1+ (milli-seconds)
digital_scroll_rate 125
# 0 = off, 1+ (milli-seconds)
simulated_analog_max_rate 20
# 1-100%
joy1_x_deadzone 10
joy1_x_saturation 95
joy1_x_sensitivity 100
joy1_x_analog 0
- Things to note:
1) joy1 refers to the first system joystick...you might need to change this if you have more than 1 joystick connected.
2) joy1_x_analog 0 is set (ie to handle the stick 'digitally') as analog joystick support in Mamewah is a bit sketchy atm!
3) I'm not sure the best sensitivity etc. settings as I haven't played around with it yet.
</quote>
OTHER FRONTENDS
I will try to test some additional frontends and post test results and configuration settings on this page.
CONCLUSION
Well, that's about all I
have to say. Hopefully this page was helpful for you. If
you see anything major that I got wrong, know of a better way to do
this, or if you just can't get it to work, shoot me an E-mail
and I will either fix the page or try to help you out.L
