ultrastyle v2.21
Front-end for MAME and MAME32
by Chris Conchelos
Written in Blitz3D/VB.NET

Thanks..
M.Bijlsma for execwait.dll - (no longer used)
Triggerfin for maintaining the CatList
Nomax for maintaining the NPlayers.ini
J.Morrison, P.Clem, and J.Saehloff for shutdown testing
Jilly, for not throwing me out of the house

Version Information:
This is the latest version of each .exe
ultrastyle.exe - 2.21
ultraconfig.exe - 2.21
MyRomInfo.exe - 2.21
CatConfig.exe - 2.2

General Info - I recommend 1024x768 viewing resolution. Having your desktop, ultrastyle, and MAME running at the same resolution
would be ideal. I would assume that this program would require some kind of 3d video card as well. ultrastyle runs at 16-bit color, not 32-bit. 
In the ROMs directory make sure you delete the dir.txt file that defaults there from MAME's install
No game art can be in a zip file, all must be png's in a single folder.
If you look through your snaps and marquees and see files that say "no screenshot", remove them from the dir.
If you do not have a file for cube art, the cube will move to the next available artwork automatically.
ultrastyle handles the fact that there are no png's for either.
*Please note, because of lack of screen space in cocktail mode, the game text is not centered under the cube, this is to allow for some of the VERY long names.

Controls, these are the defaults, you can change then any way you want:
-up/ mouse up - up 1 marquee
-down/ mouse down - down 1 marquee
-right -up to next letter in the alphabet
-left - down next letter in the alphabet
-p1 button 1 - up 50 Games
-p1 button 2 - Down 50 Games
-p1 button 3 - rotate through different wheel depths
-p1 button 4 - add current game to favorites
-Player 1 Start- Play game/select sub-category
-Player 2 Start - filter wheel
-Coin 1 - Rotate through game artwork
-Esc - shutdown screen
-mousebutton 1 - up X# of Games
-mousebutton 2 - Down X# of Games

* For you X-Arcade users: Did you know that pressing Player 2 Start + Coin 2 at the same time = Esc?
  This only works in MAME/M32 not in ultrastyle.

Shutdown Image:
I made the shutdown image before I made ALL keys bindable, in that case I would like to point out:
The image has three objects on it, a Player 1 Start, a Player 2 Start, and an Esc key.
In ultraconfig, these are equivalent to Select, Filter Wheel, and Quit.
Changing the binding on any of these 3 keys will change what keys you press when you want to Quit.

Background Image - you can make any kind of background image you want for ultrastyle. the images should be in a subdirectory of the Images directory. I recommend making an image the same resolution as you want to run the front-end at.
the default images provided are 1024x768. Cocktail images are not just 1024x768 turned sideways, they are 768x1024 images.
the image names must follow this naming structure
background.jpg :regular upright monitor , default
backgroundc.jpg : rotated screen, clockwise
backgroundcc.jpg : rotated screen, counterclockwise
please look at the default images to get an idea of what you have to do to get your desired effect.

MyRomInfo.txt - this file contains info on YOUR ROMs. I wrote MyRomInfo.exe to parse  the MAME -listinfo information and create myrominfo.txt. I will include this utility so that you can update myrominfo.txt from newer MAME versions. You should also 
run the utility to update this file if you ADD or REMOVE ROMs. Altering this file manually, while completely possible, will probably corrupt the front-end.

Sounds:
sound files have to be in this filename format
start.wav - when starting ultrastyle this sound plays as the wheel is being made
tick.wav - this is the sound the wheel makes as you move up or down 1 marquee
switch.wav - when the cube changes textures
jump.wav - when you jump x amount of marquees using player 1/mouse buttons 1 & 2
rungame.wav - when you want to run a game
addfav,wav - when adding a game to favorites
finish.wav - exiting ultrastyle
all sounds should be in a single subfolder of the sounds folder. all sounds can be turned on or off via ultraconfig.exe

Required Files and directory structure:
ultrastyle dir:
ultrastyle.exe - of course
ultraconfig.exe - a config GUI for all ultrastyle options.
MyRomInfo.exe - dat file parser, can be run from within MyRomInfo.txt 
CatConfig.exe - only necessary if you are going to use filtering
Readme1st.txt - without this file you wouldn't know what to do, would you?
Setup.txt - You didn't read this, but you need this, trust me..
Release.txt - what got put where when
execwait.dll - ultrastyle needs this to fire off a game
cfg dir:
config.ini - ultrastyle.exe reads this file for your info
options.ini - options you set in ultraconfig
MyRomConfig.ini - small 3 line set of variables for MyRomConfig.exe
MyRomInfo.txt - all of your ROMs and info listed for the front-end
AutoPlay.txt - list of games you want to autoplay in x minutes (like a screensaver)
Category.txt - list of category headings
catlist.txt - list of your ROMs broken down by category
image dir:
loadscreen.jpg - the loadscreen(but you guessed that right?)
shutdown.jpg - the shutdown image
these are in the default subdirectory
background.jpg - only necessary if your going to run in normal mode
backgroundc.jpg - only necessary if your going to run in cocktail/clockwise mode
backgroundcc.jpg - only necessary if your going to run in cocktail/counterclockwise mode
model dir:
marquee.3ds - marquee model
roundedcube.3ds - rounded cube model
altcube.3ds - oblong cylinder model
superman.3ds - slice of a cube model
sounds dir:
these are in the default subdirectory
start.wav - when starting ultrastyle this sound plays as the wheel is being made
tick.wav - this is the sound the wheel makes as you move up or down 1 marquee
switch.wav - when the cube changes textures
jump.wav - when you jump x amount of marquees using player 1/mouse buttons 1 & 2
rungame.wav - when you want to run a game
finish.wav - exiting ultrastyle

You need to get this file on your own, but required for filtering.
catver.ini - from www.mameworld.net/catlist categorized game list.

AutoPlay.txt - If you enable the AutoPlay mode in ultraconfig, this is the file that lists the possible random game that will be automatically run to display it's attract mode. I have populated the list with the names of 4 classic ROMs as format examples. Editing this file is done through ultraconfig.

External EXEs - Your Kind of on your own with these. I have put 2 common windows app in as examples. I hope the setup is straight forward. Always on top ties into the external EXEs. To run a windowed app (like calculator) you have to set always on top to either "Never" or "Yes for MAME, No for EXEs".

Always on Top - There are 3 Choices:

1. Always - MAME will be the topmost window always, the only things that will be seen are fullscreen apps (MAME is a fullscreen app) This hides the romcheck as well.

2. Yes for MAME, No for EXEs - This means MAME games will run normally, but you can also run windowed apps and they will be on top of ultrastyle (notepad, calc, IE)

3. Never - Anything you run will be on top of ultrastyle. You WILL see the romcheck before any MAME32 games fire, or the DOS box for MAME. (I would set it to this if your having a problem with a specific game working and want to see what's going on) 

*** Also - Alt-Tab will show you the list of other windows, but if Always on top is set to "Always", you won't be able to see the app.

Troubleshooting:

1. I know I have "game X" but I don't see it in the list. You need to run MyRomInfo.exe AFTER you've entered the PATH info in ultraconfig.
2. I added a new game but it's not on the list. You need to run the MyRomInfo utility and generate a new myrominfo.txt file.
3. I used 1,1,1 for the font color, but I can't see any game info below the cube. you have an older video card, anything 0-15 gets translated to 0. try 16,16,16 or higher, it will still look quite dark.

any questions or issues should be posted on the Open Questions forum at 

http://ultrastyle.proboards26.com