Johnny’s Workshop

June 1, 2008

MAME – Multiple Arcade Machine Emulator.

Filed under: Tutorials — april15th @ 9:15 am
Tags: , , , , , , ,

Remember the joys of playing immensely popular games down at the local arcade? You don’t?


Well, screw you. You probably weren’t a child of the ’80s. This post is for people who grew up playing arcade games and wish they could play some of their old favourites again. I played Street Fighter II for a couple of hours yesterday and couldn’t believe how quickly I settled in to my old fighting style again. I suppose the 1991 me would annihilate the current me in any two-player tournament but even with just a couple of days’ practice, I know I’d put up a decent fight.

I so enjoyed Street Fighter II back in the early ’90s that being able to play it again was easily the highlight of my long and tedious, work-filled day. So many memories came flooding back, it was like reuniting with an old friend; one perfectly willing to waste months of my precious youth and take all my 20c coins.

In hopes of being able to provide others with a similar experience, I thought I’d write out a quick guide to acquiring and setting up MAME32 (“a version of the standard Windows MAME build with the front-end built directly into the application”), then downloading and readying a ROM for the emulator. I’ll use Street Fighter II: Champion Edition as the example but you’ll be able to play ten trillion other arcade games, too.

Oh, yeah, I should also mention that this guide is for people using a typical Win32 Platform.

Trust me, the set-up process couldn’t be simpler; it’s on a par with downloading a simple peer-to-peer client and then using it to rob artists of their rightful income.

MAME, of course, is perfectly legal. The legality of the ROMs (the games for the emulator) varies according to the game itself and where you live in the world. Some titles are now in the public domain, others are not.

If flaunting copyright laws is not your thing (nor should it be, lest you’re keen to burn in Hell), you should investigate on a game-by-game basis. For example, the copyright warning at the start of Street Fighter II: Champion Edition informs me that I’m allowed to play because I’m in Australia. Had it been illegal, I would have deleted the ROM that very instant and penned a letter of contrition to Capcom‘s legal department, begging that they forgive me for my having downloaded the game in the first place.

Okay, so here we go:

01. Download MAME32 (, 3.01MB) from HERE.

02. Unzip the contents of the archive. You do know how to unzip a simple archive, right? Just right-click on the file and select the appropriate option from the context menu.

The unzipped archive should look like this:

03. Now that MAME32 has been set up, it’s time to acquire the Street Fighter II: Champion Edition ROM. There are sites all over the web that host these ROMs but I got my copy from ROM World.

To save you the trouble of looking for it, here’s a direct LINK to the file (, 3.45MB).

04. Unzip the archive. This will yield the sf2ce folder, which you’ll then have to move into the roms directory highlighted earlier, giving you: m32-062\roms\sf2ce

05. Now, double-click the mame32.exe file to launch MAME32.

06. With MAME32 open, click File > Audit all games:

MAME32 will then realise you’ve added the sf2ce ROM.

07. Once the audit is complete, just click on the Available folder and you’ll see the Street Fighter II: Champion Edition (World) ROM, desperately awaiting activation (just double-click):


The only thing left to do is kick the shit out of Ken, Ryu, E. Honda, Chun Li, Blanka, Zangief, Guile, Dhalsim, Balrog, Vega, Sagat and Bison.

Once in-game, use the ‘Tab’ key to access all the different settings and to learn / configure your controls.

May 24, 2008

SMD Importer for 3ds Max 9

Filed under: 3ds Max 9,Tutorials — april15th @ 10:08 am
Tags: , , , , , ,

Every so often, I like to examine the ‘Search Engine Terms’ listed amongst my Blog Stats to learn which keywords are bringing people here. I know from months of doing so that most visitors will leave within seconds, annoyed that this blog didn’t include the information they wanted. For example, I have not written, nor will I ever write, a tutorial on how to create cotton candy using 3ds Max. Sorry, that guy. Try modelling a funnelcake instead.

Not everyone will navigate away from here disappointed, though.

At least once a day, someone visits in hopes of finding an SMD Importer for 3ds Max 9. My tutorial for Importing Half-Life 2 models into 3ds Max included the associated keywords but at the time of writing that tutorial, I was not aware of the existence of a functional SMD Importer for any version of 3ds Max beyond 6/7/8.

Well, there IS an SMD Importer for 3ds Max 9.

In retrospect, I should have written this post the very moment I learned of the Importer’s existence but I figured people would find it with or without my help, so I never bothered. I do, however, suffer minor feelings of guilt every time something like ‘smd importer 3ds max 9’ appears in my list of Search Engine Terms, so I thought I’d write this post and amend my tutorial.

You can download the SMD Importer / Exporter for 3ds Max 9 from HERE and read about it HERE.

At last, “do a good deed” can be scratched from my list of goals for 2008.

I’ve tested the Importer using 3ds Max 9 and it does work as both an Importer and Exporter, so ignore anyone who insists it only functions as the latter. They’re either using a different version of 3ds Max or they haven’t installed the Importer according to the (fairly straightforward) instructions provided in the download’s SMDImporter-Readme.html file.

Look, here’s a test I did five minutes ago:

Doesn’t work as an Importer, huh? Well, explain that, professor … with all your PRECIOUS SCIENCE.

November 10, 2007

Battlefield 2 in Real-Life.

Edit: The tutorial on getting Battlefield 2 models into 3ds Max is now available here:

Keen to put my patience to the test, I recently forced myself to learn the process of importing BF2 models into 3ds Max 9. I figure it’s another skill that’ll look great on a résumé; especially when applying for a job in which the ability to import BF2 models into 3ds Max 9 is a vital prerequisite.

BF2 models aren’t as high-poly or nicely-textured as those found in HL2 but they look fairly realistic nonetheless; especially when rendered using HDR Image-Based Lighting:

F35b BF2


I’ll try to do something creative with them soon and hope that Electronic Arts doesn’t sue. Not that you can get blood from a stone …

Click to enlarge:

October 25, 2007

Getting Half-Life 2 Models Into 3ds Max

Yesterday, via one of my YouTube accounts, I received an unexpected missive from a young fellow named Charles who was keen for information.

Charles wanted to learn how I’d managed to get certain models from Half-Life2 into 3ds Max. Hopefully, he won’t mind my inclusion of the message in this post:

Mainly because Charles asked so nicely, I’ve decided to write out what I hope will be a comprehensive, relatively easy-to-follow tutorial on the subject.

Generally-speaking, I hate online tutorials. Too many of them gloss over crucial information and assume the reader has prior knowledge that he/she usually lacks. Far better, I always say, to include too much information than nowhere near enough. In the movie Philadelphia, Denzel Washington’s character, Joe Miller, says, “Explain this to me like I’m a four-year-old,” and I think that’s a good quote to keep in mind when trying to impart certain types of knowledge.

So, here goes …

What You’ll Need:

Half-Life2 | The PC game. Obviously.

Source SDK | The Source Software Development Kit. Download this via Steam.

3ds Max 6/7/8 | (There is an SMD Importer for 3ds Max 9, too. Visit THIS post for the details).

GCFScape v1.6.6 Full | Extraction tool used to glean desired files from HL2‘s .gcf files.

VPK Tool | Tool used for conversion of .vtf files into .tga files that 3ds Max can handle.

MDLDecompiler Version 0.5 | Decompiles the .mdl files extracted from Half-Life2.

Max 6/7 SMD Importer | A plug-in for 3ds Max. Allows the user to import .smd files.

(At the time of writing, all those links were valid. If you’re reading this months from now and some of them are no longer working, let me know and I’ll do an update.)

Downloading and Installation

Everything listed above has to be correctly installed if you’re to stand any chance of success. Installing 3ds Max and Half-Life2 shouldn’t be an issue and I’ll assume anyone reading this tutorial already has both installed, anyway.

The Source SDK is to be downloaded and installed via the ‘Tools’ tab in Steam:

GCFScape, VPK Tool, MDLDecompiler, and the SMD Importer can be accessed via the links above. After clicking the links, initiating the downloads is fairly straight-forward but just in case, here’s a badly-presented table that shows exactly what you’re after:

The SMD Importer is a plug-in for 3ds Max 6/7 (it also works for Version 8 but not Version 9) and basically adds files with the extension .smd to the list of files that can be imported into 3ds Max:

All you need to do is extract the smdimp.dli file from the smdimp_max6.v013a.rar archive you’ve downloaded, then move the file into your 3dsMax\plugins folder:

From now on, you’ll be able to import .smd files into your 3ds Max scene(s). Nifty, eh? Another thing you must do is move the mdldecompiler.exe file into your sourcesdk\bin folder:

Okay, moving on …

Extracting the 3D Model from Half-Life2

For this tutorial, I’ll explain how to extract the Strider but the same principles apply for the other 3D models. For some models, it’s a bit more of a challenge to find all the associated files (due to Valve’s naming conventions) but this guide should lead you in the right direction.

01. Create a ‘destination folder’ and give it an appropriate name, eg. Strider. This is the folder that will eventually contain all the files associated with the 3D model:

02. Navigate to your \Valve\Steam\SteamApps folder. This is where all the game cache files (.gcf) are stored:

The ones of interest to us are the source models.gcf and source materials.gcf files.

03. Double-click the source models.gcf file to open it within GCFScape.

04. With the source models.gcf file now open, expand the hl2 folder. Select the now-visible models folder, then click the Edit menu and choose Find (shortcut: Ctrl + F). Type ‘Strider’ into the search field and hit Enter. GCFScape will then search for all files that include the word ‘Strider’ and will display the results in the window pane on the right:

05. We want all the files identified by the search, so select one at random, then use the Ctrl + A shortcut (Select All) to group highlight all the others.

06. Okay, time to extract. Right-click on the highlighted files (making sure not to deselect them) and from the context menu that appears, choose Extract.

Via the Browse For Folder window, choose the Strider folder that was created earlier and click OK:

Here ends our fleeting interest in the source models.gcf file.

07. Now, double-click the source materials.gcf file to open it within GCFScape.

08. With source materials.gcf now open, expand the hl2 folder, then materials > models > Combine_Strider:

Within the Combine_Strider folder, you’ll see three files: striderdecalsheet.vmt, striderdecalsheet.vtf and striderdecalsheet_normal.vtf. We’re going to extract all three using the same method we used earlier.

09. In the pane on the right, select one of the three files at random, then use the Ctrl + A shortcut (Select All) to group highlight the rest.

10. Right-click on the highlighted files (again, making sure not to deselect them) and from the context menu that appears, choose Extract. Via the Browse For Folder window, as in Step 06, choose the Strider folder and click OK.

Here ends the ‘extraction’ phase. We’re doing well. I just hope, thus far, this has all been making sense. The next thing we must do is decompile the primary model file we extracted earlier.

Decompiling the Model (.mdl) File

11. Double-click the mdldecompiler.exe file to launch Cannonfodder’s MDL Decompiler. Remember that the executable should be in your sourcesdk\bin folder:

12. Uncheck the Use Steam File Access checkbox, then left-click the ellipsis button for the Choose Model File field and navigate to the Strider folder.

13. In the Strider folder, there should be a number of .mdl files. From the list, select Combine_Strider.mdl and hit Open.

14. Time now to choose an Output Directory. Left-click the ellipsis button for the Choose Model File field and again navigate to the Strider folder. Click the Select button to accept the folder as the Output Directory.

15. Click Extract. The extraction process will involve two additional prompts:

Click OK for each prompt, then click Exit to close Cannonfodder’s MDL Decompiler.

Almost finished!

Converting .VTF Files

16. Launch the VPK Tool downloaded earlier by double-clicking the VPKTool.exe file included within the download:

I should mention: there are alternatives to this particular tool but I’ve not yet tried the others, nor have I experienced any trouble with this one.

17. Select the Texture tools tab, then the Open file button.

18. Navigate to the Strider folder and change the Files of Type: field to Source VTF texture:

You should see the two .vtf files extracted earlier: striderdecalsheet.vtf and striderdecalsheet_normal.vtf.

19. Select the striderdecalsheet.vtf file and click Open. You’ll now be able to convert the .vtf file into the .tga format. As a .tga file, the texture can be applied to a 3D model within 3ds Max and that’s exactly what we want. Just click the Convert to TGA button:

20. Now, repeat the above step to convert striderdecalsheet_normal.vtf into a .tga file.

Thankfully, the Strider only has those two .vtf files. Some of the other 3D models have more. For those other models, you’ll need to convert all the .vtf files, one-by-one.

21. Now that it’s no longer needed, you can close the VPK Tool.

Finally! All the necessary files have been extracted / converted and the model is ready to be imported into 3ds Max.

Importing the Model into 3ds Max

This part is easy!

22. Open 3ds Max (Version 6, 7 or 8; whichever one you’re using) and from the File menu, select Import.

23. Navigate to the Strider folder and change the Files of Type: field to Half-Life 2 SMD (*.SMD):

24. Most the of .smd files you’ll see in the Strider folder are actually animation files. They can be imported afterwards if you’re keen on using Valve’s keyframe data to animate the model. Right now, you should select the model’s _reference.smd. In the case of the Strider, it’s the Strider_reference.smd file.

At this point, I sincerely hope, the Strider will appear in your Viewports and you’ll be very happy.


Now, to get on with life …

*If you’d like to get the same model into 3ds Max 9, simply go through all the steps above, save the .max scene and close your old version of 3ds Max. Open 3ds Max 9 and then simply Open the .max file you saved earlier.

Blog at