This is how the layout system works: MAMEWAH will check for the following .lay and image files in the order below. If a given file does not exist, then MAMEWAH will move onto the next file in the hierarchy.
All files are searched for within '\mamewah\layouts\Layout Name\' unless otherwise specified, where 'Layout Name' refers to the 'layout' specified in mamewah.ini. Note that 'emuname' refers to the emulator name, as used by the \ini config system. Note that '?' refers to the custom list number (0 = Main List), again, as used the \ini config system. '?' following 'art' refers to the Artwork # number (1-10) as used by MAMEWAH, and the MAMEWAH Layout Designer.
Installing Custom Layouts
Additional layouts can be downloaded at The Screenshot Archive
In order to change the layout, download a layout and unzip it to the \layouts folder where you installed Mamewah. Make sure that the files are contained in a folder that refers to the name of the layout (i.e. \layouts\My New Layout\)
Some layouts may have used different names for their .lay files. As noted above, the layout system first looks to see if you have a .lay for a custom list, and if that doesn't exist, it looks for a .lay for the emulator, and if that doesn't exist, it looks for a general layout.lay file. Depending on how you want to customize your look, you may also need to rename some files for the layout before it will work properly.
You will then need to modify the layout being used in the mamewah.ini file located back in the mamewah install folder. Under ### Misc Options ###, find the line that says layout, and change it to the name of the folder that was put in the \layouts folder.
v1.62 has completely changed the layout format. Mamewah v1.62 now uses "themes" and is installed differently.
With the current system in all cases the layout file is called layout.lay and the background image is called main.jpg.
The way it works is that each emu you have running under mamewah has a mamewah/config/[emuname] folder. You create a folder with a common name (mylayout for example) and place one into each mamewah/config/[emuname] folder. You then set up your skins using the layout designer for each emulator game list and place each one into the relevant mamewah/config/[emuname]/mylayout folder.
Now go into your mamewah.ini and next to the theme entry you type mylayout. Now each time you select an emulator game list, mamewah will look into that emu's mamewah/config folder for a folder called mylayout and will use the layout.lay and main.jpg that it finds there.
So if you are running mame and a snes emu through mamewah your folder tree will look like this:
Repeat for each additional emulator and skin. You can create multiple differently named theme folders this way, enabling you to change your entire skin set with one simple amendment to the mamewah.ini
The old layout.lay files use to specify the directory path of the background image. There is no need to fix this since v1.62 ignores this line anyway. Simply download your favorite layouts and rename the files to match the new system described above and they will work fine with v1.62.
Using the Mamewah Layout Designer
The Mamewah Layout Designer allows you to completely customize the look of the frontend. Every text item or image that is shown can be moved around, shown, or hidden. You can create layout pages for each emulator configured, or for each custom list.
In order to create your own custom layout, you will use the Mamewah Layout Designer to design it. This is located in the Mamewah installation folder, called 'MAMEWAH Layout Designer.exe'. Double click it to run.
You will start out with a somewhat blank layout, with all of the default text items shown. The first thing you will want to change is under the 'Backgrounds' menu; Select the size, color depth, and refresh rate. Then select either a background color, or a background image.
Next you will want to decide what items you want shown on the page. This is done under the 'Display Objects' menu. There are four pages (or forms) that can be customized. Right now, we are only concerned with the Main Form, which is what shows the list of games. Uncheck the items that you do NOT want on your page, and check any of these that you DO want to be shown. If you have multiple types of artwork you want displayed, be sure to include enough to show them all. Once you are finished, you can then move and resize the items on the screen to where you want them.
You can also make changes to each of the items, such as the font type, size, or color. Select an object by clicking on it, and go to the 'Object Properties' menu. Any properties that are available for that object type will be listed. Feel free to play around with these changes until everything looks the way you want it to.
If you wish to make changes to the other forms, you can view them by going to 'View', and selecting that form. Then repeat the process for changing the Background Options, Display Objects, and Object Properties for those forms.
The four pages you can customize are:
:1. The Main page, which shows the games list :2. The Options page, which shows the options menu :3. The Message page, which is shown when something is loading :4. The Screen Saver page, which is what is shown during the screen saver.
After everything looks the way you want, go to 'File' -> 'Save Layout As' to save your new layout. Depending on what you want to use this layout for, will depend on what you should name it. If you want to use the layout specifically for a single emulator, you should name it the same as your emulator, for instance 'nintendo.lay'. If you want it to be a layout used for a specific list on a specific emulator, name it as such, for instance 'nintendo-1.lay'. If you just want this to be a generic layout used everywhere, you can name it as 'layout.lay'.
The following images are also used when creating a new layout, and should be included in your \layout\New Layout folder:
??????-main.jpg (this is your main background image)
??????-message.jpg (this is your background image for the message dialog box)
??????-options.jpg (this is your background image for the options (menu) dialog box)
??????-art1.jpg, ??????-art2.jpg...and so forth
These are the artwork images that will be displayed if there is no image available for the particular box in your layout that matches the selected roms name.
For instance, lets say in your layout you have made the Artwork #1 box visible and are going to display your screenshots in it. When you are running MameWAH and you have a game (Donkey Kong) highlighted, the rom name is dkong.zip and if their is a screenshot named dkong.jpg or dkong.png it will be displayed it the Artwork #1 box. If the jpg or png don't exist it will display ???????-art1.jpg. The paths to what gets diplayed in the image boxes are set up in the emulator.ini file.
Note: If you do NOT want emulator specific layouts simple remove the prefix "??????-" leaving your files with names such as layout.lay, main.jpg, message.jpg, art1.jpg and options.jpg
Making Changes to Existing Layouts
If you don't like something specific about a layout, you can make changes to it. If there are certain items that are displayed, you can hide them, or if you would like to move an item to another location on the screen, you can do so.
Required Layout Files
The following files are what Mamewah looks for in a layout. Some of these are required, and others are optional.
- 1. emuname-?.lay emulator & custom list specific layout file
- 2. emuname.lay emulator specific layout file
- 3. layout.lay general layout file
- 4. \mamewah\layouts\Classic 640x480\layout.lay MAMEWAH's default layout
(if none of the above exist, MAMEWAH will revert to the (built-in) 'Classic 640x480' layout)
- 1. emuname-?-main.??? emulator & custom list specific main backgound image
- 2. emuname-main.??? emulator specific main backgound image
- 3. main.??? general layout main backgound image
- 4. emuname-?-options.??? emulator & custom list specific options menu backgound image
- 5. emuname-options.??? emulator specific options menu backgound image
- 6. options.??? general layout options menu backgound image
- 7. emuname-?-message.??? emulator & custom list specific message box backgound image
- 8. emuname-message.??? emulator specific message box backgound image
- 9. message.??? general layout message box backgound image
(if none of the above exist, no background image will be used)
Logo Images (??? may be bmp, gif, jpg, jpeg, pcx or png):
- 1. emuname-?-logo.??? emulator & custom list specific logo image
- 2. emuname-logo.??? emulator specific logo image
- 3. logo.??? general layout logo image
- 4. \mamewah\layouts\mamewah-logo.gif MAMEWAH's default logo image
(if none of the above exist, no logo image will be used)
Artwork 'No Pic' Images (??? may be bmp, gif, jpg, jpeg, pcx or png):
- 1. emuname-art?.??? emulator & artwork specific 'no pic' image
- 2. emuname-art.??? emulator specific 'no pic' image
- 3. art?.??? artwork specific 'no pic' image
- 4. art.??? general layout 'no pic' image
- 5. \mamewah\layouts\mamewah-art.png MAMEWAH's default 'no pic' image
(if none of the above exist, no 'no pic' image will be used)
- 1. emuname-SOUNDFILENAME.wav emulator specific sound clip
- 2. SOUNDFILENAME.wav general layout sound clip
- 3. \mamewah\layouts\SOUNDFILENAME.wav MAMEWAH's default sound clip
(if none of the above exist, no sound clip will be used)
Replace 'SOUNDFILENAME' with the below for different events:
- 1. intro plays on startup
- 2. navigate plays when moving through the games list or options menu
- 3. options plays when the options menu is opened / closed
- 4. optionselect plays when an option is selected / toggled / cycled
- 5. emuchange plays when the current emulator is switched
- 6. listchange plays when the current games list is switched
- 7. gamelaunch plays when a game is launched
- 8. gameexit plays when a game is quit
- 9. app1launch plays when external application #1 is launched
- 10. app1exit plays when external application #1 is quit
- 11. app2launch plays when external application #2 is launched
- 12. app2exit plays when external application #2 is quit
- 13. app3launch plays when external application #3 is launched
- 14. app3exit plays when external application #3 is quit
- 15. error plays when an error occurs
- 16. exit plays when exiting from MAMEWAH