bensweeneyonbass's Feed

04-05-2018 at 06:17 AM
Rating: 2 votes, 4.50 average.

Quick Start Guide to using WolfMAME

New to MAME? Have no fear! It's very straightforward and once you lay some groundwork it's easy peasy. First you need to download a version of WolfMAME from github dot com/mahlemiut/wolfmame/releases and and download whatever version of WolfMAME you want.

This tutorial focuses on the use of WolfMAME v.196 which is the most recent version, and it references a game whose ROMset is called '' since I recently was working with someone on this game. Once you've downloaded this file from marpirc, unzip WolfMAME v.196 all into one folder in a place where you can remember it. The shorter the file path, the better since we'll be using command line to access it, but don't get hung up on that. Just put it in a place you'll remember and name the folder something simple.

Create a new folder within this directory for your ROMs. mame64.exe is the actual application that runs WolfMAME. Open it first to setup your preferences:

--Click Configure Options > Configure Directories > ROMs to browse and select the folder you created for your ROMs (When you find that folder, hit the TAB button to add it to the directory)

--If you want MAME to run in a window (as opposed to full screen, which I personally do prefer that it runs in Window Mode/Not Maximized) you can go to Configure Options > Video Options > Window Mode and switch it to ON so it launches in a window. Also there's an option on Video Options for Start Out Maximized - I switch this to OFF so when it launches it doesn't immediately start out as a full-size window. That's a personal preference. I then drag the window to the size I want.

--Considering what input devices you'll be using as your controller, you can go to Configure Options > Advanced Options and under the Input Options section of this menu you can toggle ON/OFF each device you'd like to be able to use. Keyboard is always included so you won't find a single keyboard option (there IS one for multi-keyboard setup) so here you'd only want to toggle to ON any additional input device. If you're using a joypad or joystick you'll want to toggle the Joystick option to ON.

--To return to the previous menu, you can hit Escape or select the option at the bottom of each section that says Return to Previous Menu.

--When you've made all your option adjustments, SAVE CONFIGURATION! This is an option toward the bottom of the main Configure Options menu. Do this. Do not forget. Now that we've covered preferences, you'll want to be sure to disable NVRAM. NVRAM cannot be used for any INP submissions to TG or MARP. To do this:

--Navigate in Windows to the folder where you've unzipped MAME. There will be a file there called MAME.ini and this file is what you want to edit to keep NVRAM from being used.

--Open this file in Notepad (I think you can just double-click and it'll launch in Notepad) and find the section titled CORE OUTPUT DIRECTORY OPTIONS.

--Under this section, it lists all the default directories that MAME creates for each of its utilities. Find the line that says nvram_directory.

--Change the directory name (above inp and below cfg) so that it reads NUL. Save the file. MAME is now setup! On to how to record an INP:

--You will need to run MAME from the command line for v.196 but if you have no experience with command line don't be intimidated. It's very straightforward.

--Open your Start menu in Windows and search for the file 'cmd' and open it. It'll be the classic DOS-looking black box with white unicode text.

--First, change your directory to be the folder where you've unzipped MAME. To do this, type 'CD C:users...' where the string C:users... represents the file path to the MAME folder, and the string 'CD' is just a command to change the directory. This'll keep you from having to type the whole path each time you want to record a new INP or open a new game.

--Next we can launch MAME with our game of choice. I'm going to use the romset souledge since we've been discussing that game.

--To just launch MAME without recording an INP, on the command line type 'mame64 souledge' and that's it. The application will launch and open that game.

--To launch MAME and record an INP, on the command line type 'mame64 souledge -record souledge.inp' where the string 'souledge.inp' is the definition of what you want the INP file name to be. I usually use the romset name so it's easy for me to identify the INP and what game it's for. The INP file will output to a folder titled INP in the directory where you unzipped MAME. If the folder doesn't exist yet, MAME will create it.

--To play back an INP, on the command line type 'mame64 souledge -playback souledge.inp' where the string 'souledge.inp' is the file name of the INP you wish to play back. Be advised - your INPs should be located in the same folder where the INP outputs to avoid any directory issues. Now we need to talk about setting up in-game options so that your input device and the DIP switches are properly configured:

--Once you launch the game from the command line, and the game window comes up, you can hit the TAB button and it'll pull up the in-game menu. There are options to set Input (general or this machine) and you can pick what buttons are mapped to what inputs on your keyboard/joystick/etc. I use different setups for different games, so I don't program General inputs. I do it per game. That's a personal preference. General input definitions will be the default inputs for all games unless you override them with This Machine input definitions.

--Also on the in-game menu is an option called Dip Switches. Often times when you select this option there will be the actual game play options displayed and you can toggle them as you see fit. Sometimes, as is the case with, there's just a switch to turn on Setup Mode. Once you're in setup mode you can navigate to the screen that allows you to configure the options. Then once you've configured the options appropriately, you can just go back to the in-game menu and turn off the Setup Mode dip switch.

**EDIT: The keyboard command F2 is also used to access Setup Mode. As an example, launch the game Galaga ( and after it goes through the scramble patterns at the beginning, press F2. It'll take you to the setup mode screen. Make any changes you want to the settings, then press F2 again and it will revert to normal Play Mode.

**EDIT: The good sir CaptainJivePants has put together a video demonstration on this topic:

Now your game is setup right and you're ready to play! Aaaaaand that's it! This should get you started in playing, recording, and playing back in MAME using INPs.

  1. radcore's Avatar
    Bookmarked!!! Thank you
    Likesbensweeneyonbass liked this post
  2. bensweeneyonbass's Avatar
    Here's a screenshot of my command line window showing how you can list all the roms that you have in your folder, so you know exactly what romset names to use:

    set your directory to your ROMs folder then just type 'dir' and it'll list all the files.
  3. francoisadt's Avatar
    Some other tips:

    F12 to save a snapshot of your score in the "snap" folder.
    Before the game starts first make sure a folder called "snap" exist, if not exist create "snap"
    This will be empty, as you F12 while playing screenshots can be saved.

    Also before running MAME, first create the mame.ini file if not present.

    c:userssweeneyDocumentsBTSWEENEYMAME181>mame64 -cc

    Will create a default mame.ini

    To enable window mode.

    c:userssweeneyDocumentsBTSWEENEYMAME181>notepad mame.ini

    goto the line:
    window 0

    change this to window 1


    Also the path to the ini file is most cases rubbish.
    change the inipath
    from: inipath .;ini
    to: inipath ini

    the . (DOT) is for default path but quite often the "inipath' variable creates a .mame folder in your root of your c drive instead. So fix the "inipath" Create a folder called ini if not present in your MAME folder

    MAME.INI FILE Example:

    readconfig 1
    writeconfig 0

    homepath .
    rompath roms
    hashpath hash
    samplepath samples
    artpath artwork
    ctrlrpath ctrlr
    inipath ini
    fontpath .
    cheatpath cheat
    crosshairpath crosshair
    pluginspath plugins
    languagepath language
    swpath software

    cfg_directory cfg
    nvram_directory nvram
    input_directory inp
    state_directory sta
    snapshot_directory snap
    diff_directory diff
    comment_directory comments

    autosave 0
    rewind 0
    rewind_capacity 100
    record_timecode 0
    exit_after_playback 0
    snapname %g/%i
    snapsize auto
    snapview internal
    snapbilinear 1
    statename %g
    burnin 0

    autoframeskip 0
    frameskip 0
    seconds_to_run 0
    throttle 1
    sleep 1
    speed 1.0
    refreshspeed 0

    keepaspect 1
    unevenstretch 1
    unevenstretchx 0
    unevenstretchy 0
    autostretchxy 0
    intoverscan 0
    intscalex 0
    intscaley 0

    rotate 1
    ror 0
    rol 0
    autoror 0
    autorol 0
    flipx 0
    flipy 0

    artwork_crop 0
    use_backdrops 1
    use_overlays 1
    use_bezels 1
    use_cpanels 1
    use_marquees 1

    brightness 1.0
    contrast 1.0
    gamma 1.0
    pause_brightness 0.65
    effect none

    beam_width_min 1.0
    beam_width_max 1.0
    beam_intensity_weight 0
    flicker 0

    samplerate 48000
    samples 1
    volume 0

    coin_lockout 1
    mouse 1
    joystick 1
    lightgun 0
    multikeyboard 0
    multimouse 0
    steadykey 0
    ui_active 0
    offscreen_reload 0
    joystick_map auto
    joystick_deadzone 0.3
    joystick_saturation 0.85
    natural 0
    joystick_contradictory 0
    coin_impulse 0

    paddle_device keyboard
    adstick_device keyboard
    pedal_device keyboard
    dial_device keyboard
    trackball_device keyboard
    lightgun_device keyboard
    positional_device keyboard
    mouse_device mouse

    verbose 0
    log 0
    oslog 0
    debug 0
    update_in_pause 0

    comm_localport 15112
    comm_remoteport 15112

    drc 1
    drc_use_c 0
    drc_log_uml 0
    drc_log_native 0
    cheat 0
    skip_gameinfo 0
    uifont default
    ui cabinet
    confirm_quit 0
    ui_mouse 1
    autoboot_delay 0
    console 0
    plugins 1
    language English
    inpview 0
    inplayout standard

    http 0
    http_port 8080
    http_root web

    uimodekey SCRLOCK

    uifontprovider auto

    output auto

    keyboardprovider auto
    mouseprovider auto
    lightgunprovider auto
    joystickprovider auto

    debugger auto
    debugger_font auto
    debugger_font_size 0
    watchdog 0

    numprocessors auto
    bench 0

    video auto
    numscreens 1
    window 1
    maximize 1
    waitvsync 0
    syncrefresh 0
    monitorprovider auto

    screen auto
    aspect auto
    resolution auto
    view auto
    screen0 auto
    aspect0 auto
    resolution0 auto
    view0 auto
    screen1 auto
    aspect1 auto
    resolution1 auto
    view1 auto
    screen2 auto
    aspect2 auto
    resolution2 auto
    view2 auto
    screen3 auto
    aspect3 auto
    resolution3 auto
    view3 auto

    switchres 0

    filter 1
    prescale 1

    gl_forcepow2texture 0
    gl_notexturerect 0
    gl_vbo 1
    gl_pbo 1
    gl_glsl 0
    gl_glsl_filter 1
    glsl_shader_mame0 none
    glsl_shader_mame1 none
    glsl_shader_mame2 none
    glsl_shader_mame3 none
    glsl_shader_mame4 none
    glsl_shader_mame5 none
    glsl_shader_mame6 none
    glsl_shader_mame7 none
    glsl_shader_mame8 none
    glsl_shader_mame9 none
    glsl_shader_screen0 none
    glsl_shader_screen1 none
    glsl_shader_screen2 none
    glsl_shader_screen3 none
    glsl_shader_screen4 none
    glsl_shader_screen5 none
    glsl_shader_screen6 none
    glsl_shader_screen7 none
    glsl_shader_screen8 none
    glsl_shader_screen9 none

    sound auto
    audio_latency 2

    pa_api none
    pa_device none
    pa_latency 0

    bgfx_path bgfx
    bgfx_backend auto
    bgfx_debug 0
    bgfx_screen_chains default
    bgfx_shadow_mask slot-mask.png
    bgfx_avi_name auto

    priority 0
    profile 0

    menu 0

    hlslpath hlsl
    hlsl_enable 0
    hlsl_oversampling 0
    hlsl_write auto
    hlsl_snap_width 2048
    hlsl_snap_height 1536
    shadow_mask_tile_mode 0
    shadow_mask_alpha 0.0
    shadow_mask_texture shadow-mask.png
    shadow_mask_x_count 6
    shadow_mask_y_count 4
    shadow_mask_usize 0.1875
    shadow_mask_vsize 0.25
    shadow_mask_uoffset 0.0
    shadow_mask_voffset 0.0
    distortion 0.0
    cubic_distortion 0.0
    distort_corner 0.0
    round_corner 0.0
    smooth_border 0.0
    reflection 0.0
    vignetting 0.0
    scanline_alpha 0.0
    scanline_size 1.0
    scanline_height 1.0
    scanline_variation 1.0
    scanline_bright_scale 1.0
    scanline_bright_offset 0.0
    scanline_jitter 0.0
    hum_bar_alpha 0.0
    defocus 0.0,0.0
    converge_x 0.0,0.0,0.0
    converge_y 0.0,0.0,0.0
    radial_converge_x 0.0,0.0,0.0
    radial_converge_y 0.0,0.0,0.0
    red_ratio 1.0,0.0,0.0
    grn_ratio 0.0,1.0,0.0
    blu_ratio 0.0,0.0,1.0
    saturation 1.0
    offset 0.0,0.0,0.0
    scale 1.0,1.0,1.0
    power 1.0,1.0,1.0
    floor 0.0,0.0,0.0
    phosphor_life 0.0,0.0,0.0

    yiq_enable 0
    yiq_jitter 0.0
    yiq_cc 3.57954545
    yiq_a 0.5
    yiq_b 0.5
    yiq_o 0.0
    yiq_p 1.0
    yiq_n 1.0
    yiq_y 6.0
    yiq_i 1.2
    yiq_q 0.6
    yiq_scan_time 52.6
    yiq_phase_count 2

    vector_beam_smooth 0.0
    vector_length_scale 0.5
    vector_length_ratio 0.5

    bloom_blend_mode 0
    bloom_scale 0.0
    bloom_overdrive 1.0,1.0,1.0
    bloom_lvl0_weight 1.0
    bloom_lvl1_weight 0.64
    bloom_lvl2_weight 0.32
    bloom_lvl3_weight 0.16
    bloom_lvl4_weight 0.08
    bloom_lvl5_weight 0.06
    bloom_lvl6_weight 0.04
    bloom_lvl7_weight 0.02
    bloom_lvl8_weight 0.01

    triplebuffer 0
    full_screen_brightness 1.0
    full_screen_contrast 1.0
    full_screen_gamma 1.0

    global_inputs 0
    dual_lightgun 0

    dtd 1
  4. bensweeneyonbass's Avatar
    Thanks Francois. Since the UI when you open mame64.exe also creates/updates the MAME.ini file, I chose to explain doing it this way instead of at the command line for ease of access to non-command line experts (just to reduce the number of command line commands that they'd have to remember).

    Thanks for sharing this!
  5. timmell's Avatar
    Where or how do you get the correct ROMs for the right version of MAME or Wolf MAME. Anyone can help with CHDs?
  6. bensweeneyonbass's Avatar
    Quote Originally Posted by timmell
    Where or how do you get the correct ROMs for the right version of MAME or Wolf MAME. Anyone can help with CHDs?
    A brief history on this:

    Not all ROMsets work with all versions of MAME (please consider MAME and WolfMAME to be one and the same when it comes to their playability of ROMs/CHDs) but once a game is added to the list of playable games for a MAME version, it's forever thereafter playable on successive versions (generally speaking).

    Each version of MAME adds new games, but I'd say by version 106 the VAST majority of games had been added. Just not all of them play great. That's why I recommend using the newest version whenever possible.

    You can go to and the home page shows all versions of MAME and what games were added/changed for each version released.

    CHDs and ROMs "play the same way" in MAME so for functionality/playability purposes there is no difference.
    ***EDITED FOR CLARITY: There is an extra step for CHDs - you need both the ROM and the CHD files. Once it's all setup they execute the same way, but I failed to describe that there's an extra step besides just downloading the ROM and putting it in the right folder. Here's a YT video showing what you have to do, and in the description there's some helpful info too:

    Basically, for CHD games, you download the ROM and place it like normal, but then you have to create a folder inside your ROM folder and name it the name of the ROM, then put the CHD file into that folder. Here's a link I found explaining this:

    When it comes to WHERE you get ROMs/CHDs for MAME, you can google that biz. I'm not posting any emulation website links here.
    LikesRev John liked this post
    Updated 04-05-2018 at 01:32 PM by bensweeneyonbass
  7. radcore's Avatar
    I went through the process to record and playback as you described Ben, I used the souledge ROM same as in your example.

    I recorded two rounds then closed mame then ran the playback command to test.

    When my inp played back, my inputs were correctly played back, but the opponent I faced was different in the playback. How do you get around non-deterministic behavior like this? Or is the inp just there to verify inputs and not outcome?
  8. francoisadt's Avatar
    The playback of MAME games which do have a game driver inside MAME will not have these side-effects. MAME playback is such so that the exact game state occur as it was when the game was played.

    Not all MAME ROMS are correctly emulated yet inside MAME.

    When I search the mame replay page for "souledge" I could not find any game recordings.
    If you see look/read inside the TG MAME submission threads, MAME game submissions
    are checked against "if the ROM"
    a) exist in the internal MAME database"
    b) to be valid.

    It could be that this MAME rom is out via "name" but the game is not yet emulated on hardware
    level by an implemented game driver.

    The hardware emulation per game have to be implemented otherwise behaviour like this will occur.

    You may register on the MAME forum and post a request for more information there.
    Game recording search:
    (Click on search)

    Note that registration on the forum ( is seperately than if you want to submit recordings on the "game submission" ( pages.

    Someone on the MAME forums could have played around/test this ROM out.
    Also post on MAMETESTERS and MAMEDEV forums for request to enable
    MAME drivers for games.
    Thanksradcore thanked this post
  9. bensweeneyonbass's Avatar
    Francois is right - I overlooked this when I setup the new MAME track for this game.
    @radcore can you do a test since you've already got an INP recorded? Play it back numerous times. I'd like to see if it gives you the same "wrong" opponent each time, or if it is truly random.
    Likesradcore liked this post
  10. JasonV91's Avatar
    I just tried a recording myself - Soul Edge is fully supported in WolfMAME 0.196, and playback of the recording was exactly as expected.
    @radcore, I am nearly certain you didn't disable NVRAM before recording, which is why you are getting things like a different opponent being selected on playback - you can check if NVRAM is still enabled by seeing if you have an nvram folder in your MAME directly, and a souledge folder within it:

    If you see this, you have NVRAM enabled - as described above, open the mame.ini file, change the nvram entry to NUL, save and close the file, and try again. I would also suggest deleting the NVRAM directory altogether, as you should never use it if you plan to record and submit .inps.

    Thanksbensweeneyonbass, radcore, Rev John thanked this post
    Likesbensweeneyonbass, radcore liked this post
  11. radcore's Avatar
    Thanks for the quick responses guys. I'll have a chance to double check tomorrow if I correctly disabled VRAM or not, I've definitely missed something if I'm getting different results to @JasonV91. Will also check if I'm getting the same wrong result each time (only ran playback once earlier).

    I did make that setting change to the ini file for nvram_directory NUL, but now I'm second guessing wether I changed the ini file then recreated it. Will confirm tomorrow. Either way it sounds like a simple fix. Thanks so much for everyone's technical expertise here, it really helps having this kind of support in a community like this for newbies (like myself).
    LikesJasonV91, bensweeneyonbass liked this post
    Updated 04-05-2018 at 04:16 PM by radcore
  12. bensweeneyonbass's Avatar
    The world of MAME is a wonderful place but it’s easy to lose your way :) we are happy to help.
    Likesradcore liked this post
  13. francoisadt's Avatar
    Also make sure if any DIP SWITCHES do have an effect. Allthough dipswitches could be labelled as "unknown" those have spesific meanings according the original arcade manual - google the pdf.
    Likesbensweeneyonbass liked this post
  14. radcore's Avatar
    Thanks guys, getting deterministic results (my ass kicked in the same way every time) now that NVRAM is set to NUL. As suspected, I had accidentally auto gen'd a second mame.ini, probably from changing the ini path.

    Not having any luck using an Xbox one wireless control (this is what I use for all of my emulators) with wolf mame 196. Trying to resist using something like Joy2Key if I can avoid it.
    Likesbensweeneyonbass liked this post
  15. bensweeneyonbass's Avatar
    Make sure you’ve enabled joystick input. Configure Options > Advanced Options > Input Options. Or I think at the command line it’s -joystick 1
    Likesradcore liked this post
  16. radcore's Avatar
    tried to demonstrate what's happening (or not happening) in this video. If you could imagine at 0:37 I'm pressing all the buttons on the joystick trying to map something.

    Had the visual usb game controller on screen at the start of the vid just to demonstrate that it is on and working at the time MAME is started.
  17. radcore's Avatar
    Just a reply to my above question, I'm almost certain my issue ended up being some sort of inter compatibility issue with having some vjoy driver left overs (even after uninstalling them). I had some similar issues with other games pop up at the same time. One windows reinstall later, and I'm up and running :)
    Likesbensweeneyonbass liked this post
  18. Almighty Dreadlock's Avatar
    Quote Originally Posted by timmell
    Where or how do you get the correct ROMs for the right version of MAME or Wolf MAME. Anyone can help with CHDs?
    For all the latest ROM archives (ZIP files), go to MAME DVDs or ROM Collector.

    If you want to use an outdated ROM archive, that could involve hunting down disused ROMs, and building your own archives. I could help with that, via instructions (no links). We are all completely law abiding MAME users, of course.
  19. Chris Wilson's Avatar
    Quote Originally Posted by radcore
    Thanks guys, getting deterministic results (my ass kicked in the same way every time) now that NVRAM is set to NUL. As suspected, I had accidentally auto gen'd a second mame.ini, probably from changing the ini path.

    Not having any luck using an Xbox one wireless control (this is what I use for all of my emulators) with wolf mame 196. Trying to resist using something like Joy2Key if I can avoid it.
    Make sure you connect the controller before you start mame..
    If you dont it deletes your controller mapping and uses the default instead..
  20. Lindsay Swindells & Jet James's Avatar

    Hi there,

    just recently installed the latest version of wolfmame, 0.210, and there is no mame.ini file nor anywhere I can see the INP file is created. It does record an mp4 however. Do the newer versions of wolfmame not create/need such files for submission of hi scores?



Page 1 of 2 12 LastLast
Join us