back to index

Check, check, check out my melody. (Sorry, couldn't resist.) 

This one is a biggie so brace yourselves....

One of the best features of the old Raging Dragon was the fact that it supported a lot of odd-ball emulators that required special steps to auto-launch a game and exit properly when finished.  One of the worst side effects of this was you, the user had to wait for me to add support and I had to manually add support for all of this junk.  Luckily this time around it will be much quicker for you and much easier for me. 

My wrappers take the standard mame-style command line sent by Lazarus and translate it into data that the emulator can understand be it via simulated key presses for windows emus or translated command line options for command-line-based ones. 

To make it easier for you I have made a few hard-coded wrappers for the popular windows emus.  When you get these from the site you'll extract them in the root of Lazarus and it will place all files in the appropriate folders.  Each hardcoded wrapper will include a dat file, a catver file a sample cfg file (which you will need to setup)  and a wrapper file, placed in the "wrappers" directory.  You need to take the exe it placed in the wrappers folder and move it to the same folder that your emulator is in.  Remember that from now on the wrapper IS the emulator as far as Lazarus is concerned and you should point your cfg files to the wrapper and NOT the emulator itself. 

That's all there is to it for the hard-coded wrappers.  If the emulator you wish to setup doesn't have a hard-coded wrapper then you'll have to use one of the two generic wrappers I've made, which require a bit more setup. 

You have a command line wrapper and a key press wrapper available.  The command line wrapper is for those emus that take a command line and obviously all other emus need the key press flavor.


First the command line wrapper. ....

A cfg file (for zinc) is included for reference but you'll most likely have to edit this later on.   In the wrappers folder you'll find a folder instead of an exe this time.  Copy the CONTENTS of this folder into the folder where your emulator is.  You'll need to get dat and catver files btw. 

You'll notice that you have not only a exe but a "lconfig.ini" file this time.  Open it up in notepad and we'll get started. 

The file is heavily commented and I won't hold your hand through it, but I feel a little explanation is necessary.  The handles entries basically tell the wrapper what windows to monitor during game play. 

The first one should be the caption of the emu at ilde.  The second is optional and is the caption of the emu  with a game running. (using ctrl-alt-delete while running a game is the best way to determine this) Normally you want to fill in as many as possible but this is not always the case.  You can omit the last or both of these entries by replacing them with "null." This will work fine, but when you send the exit signal it will simply close whatever window is on top so be careful!  If the launcher isn't working properly with a emu try setting both of these to null. 

The beef of the command line translator is the actual translator part, which is encapsulated in the "cmd" brackets.  Long story short you put the romname on the left and the name the emu needs plus any game-specific command line options on the right.  Look at the included lconfig.ini that is pre-configured for zinc for an example of this.  That's about it be sure to setup the remaining options in the lconfig.ini and your ready to go. 


Now for the key press simulator....

You start out with the same thing so go ahead and copy the contents of the new folder to where your emulator is and open up it's lconfig.ini file.  Alot of the entries are the same as the command line wrapper so I won't go over those.  One thing you'll notice is the cmd entries have been replaced by 3 rather cryptic sections. It's not as bad as it looks, but before we go on a brief explanation of how it works.....

Each line in those entries is a simulated key press.  This is the key you want the emulator in question to think you are hitting.  In essence what we will do is make a macro that automatically presses the keys to launch your game upon startup.  A typical line would look like this:

9/down

The 9 represents the keycode for the key you wish to press which can be found using my keycode finder app from the homepage.  The down represents the fact that we want to simulate pressing the key.  Replacing it with an up would release the key.  Please note that the key will be held down until to send the release line.  This is so you can press multiple buttons at the same time, which is useful for opening windows menus.  So to press two keys at once you would send:

9/down

10/down

9/up

10/up

To press the 9, release and then press the 10 you would send. 

9/down

9/up

10/down

10/up

Ok with that out of the way lets setup those entries.  How this works is this....  In almost every emulator with a built in gui you have a list of games you select from and the game launches right?  Well what we are going to do is tell this wrapper first, how you get to this game list, next how you move through it, and finally how to select a game and launch it. Ok on with the show.

The startup entry is what you have to press to open up the gamelist and select the first game. In some emulators the list is already up and you can leave this blank but in others you have to navigate through a menu first. (like file/load game) 

The select sequence is the key that needs to be pressed to move down one game in the gamelist.  99% of the time it will be this:

{selectsequence}
40/down
40/up
{/selectsequence}

This simulates the pressing of the "down" arrow key.

The enter sequence is what key is pressed to start the selected game.  Once again 99% of the time it's this:

{entersequence}
13/down
13/up
{/entersequence}

This simulates the pressing of the "return" or "enter" key.

The misc entry is for pressing keys at a certain point in the game for various reasons.  The default lconfig.ini is setup for final burn.  Final burn doesn't save the "fullscreen" option and thus it has to be activated upon each run.  Unfortunately you can't set it until after the game is started.  So I used the misc option to wait a few seconds and then tab through the menu and turn fullscreen on.  Please note that the wait time is in milliseconds. 
 

You still need to setup the gamelist.  What you put in the gamelist entry is the rom names for the list of games shown in the emu IN THE ORDER THAT THEY ARE SHOWN.  That's simple enough.  Also note that you dont have to fill in the entire list, but if you skip around in filling it out you need to put place holders in between.  I used the "null" entry. 

Ok now that one is done.  I know this one requires a lot more setup, but it's a very powerful tool once you get the hang of it.  I will have a place on the website where people can submit their lconfig.ini files for others to use.  Please send yours in if it isn't available yet as it will save others a lot of setup time. 


A few more notes before we are finished.  First off the wrappers will do their best to exit an emu when the exit key/exit joystick button is pressed.  These keys are sent via Lazarus if the "sendkeys" option is turned on in the emulator's cfg file.  If it's turned off then the wrapper will default to the escape key. 

The generic wrappers are NOT officially supported.  I guarantee the command line one to work with zinc and the key press one to work with final burn.  Other than that there are no guarantees so don't send me emails asking "I cant' get XXX emu to work with your wrapper" as I won't help you.  However as I said there will be a section where you can download other peoples lconfig files and we'll try to setup some some of discussion forum in the future where you can ask each other for help.  If I'm in a good mood I might even stop by and try to help you out.  :-)  

 

 back to index

 


Copyright © 2007 Howard Casto. All Rights Reserved.