MultiGame

From RocketLauncher Wiki
Revision as of 16:34, 30 April 2015 by Kevinlives (talk | contribs) (Created page with "<span style="color: red;font-size: 140%;">'''<u>HOW TO SETUP MULTIGAME SUPPORT:</u>'''</span> <br /> <br /> <u>What this is:</u> A long awaited feature requested by many over...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

HOW TO SETUP MULTIGAME SUPPORT:

What this is: A long awaited feature requested by many over the years and has used up most of my free time over the past month to create. This gives you the ability to swap a game disc/disk/tape while playing an emulator, using a friendly and highly customizable GUI.

Why do I need this?: Have you ever played a game and it asks you to insert Disc 2 and you say to yourself "well this sucks, I have to unmount this game or select File->Open, find the new game, then load/mount it" just to continue playing? Many systems from old cartridge and tape based ones to the latest DVD ones require some sort of disc swap to occur at some point in the game. This does all the work for you by popping up a GUI and automagically finding the games and only showing you ones that match what you already have running!

Features:

  • Customizable Image artwork - (use the default ones provided for you or create your own. It will space your images across the screen evenly for you!)
  • Use your HS Artwork (Disc/Disk/Tape Scans) - (Instead of the provided defaults, you can optionally use these images, You only have to turn this feature on and set the Artwork folder your files are in. MG will load your artwork directly from your Artwork folder.)
  • Customizable Default or Per-rom Background Image support - (will load a default.png in your Media\MultiGame\systemName\ or a romname.png one if it exists)
  • Customizable Background Color - (this is default when an image does not exist, you can change it to any color and set it's opacity if you prefer to see what's going on underneath)
  • Customizable Text - (Don't like the default greeting? Have it say what you want! You can change many aspects of the text including size, font, color, bold/italic/underline/etc, quality, and more)
  • Automatically downloads Image artwork from Hyperspin-fe.com and puts it in your image folder
  • Automatically downloads gdip library into a "Modules\Module Extensions\" Folder
  • Resize Images - (Stretch or shrink your images upto 3x it's size. They are anti-aliased to help mitigate jaggies)
  • All ini keys needed for MultiGame support are automatically created in your Global Settings and System inis for you
  • Use your arrow keys to navigate the GUI
  • Customizable keys to show the GUI, exit the GUI, and select a game - (limited to what ahk supports)
  • Feedback Sound - (Play a sound beep as you move your cursor from one game to the next. Pitch of the sound can be changed to anything you want)
  • Customizable Exit Effect - (When you choose a game, you have the choice to pixelate or grow the selected image. More may be added later.)
  • 7z support - (Let's say you launch a game from HS, then switch discs. If both games were extracted with 7z, and you like to keep your temp dir clean, HL2 will delete all the games launched from your current session)



How roms MUST BE NAMED: HS2 will contain MultiGame support from the menu so you will no longer need multiple wheels to show one game that has multiple discs or carts. To use this functionality, some naming standards had to be put in place so when parsing your xml, it recognizes these games. Basically a tag gets put on the end of your romname, in parenthesis, saying what type of media and what number it is, example:

Final Fantasy VII (USA) (Disc 1).iso
Final Fantasy VII (USA) (Disc 2).iso
Final Fantasy VII (USA) (Disc 3).iso


A space MUST EXIST between the media type and the number.

Four media names are supported at the moment: Cart, Disc, Disk, and Tape. Where Tapes can have Sides:

Crystals Of Kings (Europe) (Tape 1 Side A).tzx
Crystals Of Kings (Europe) (Tape 1 Side B).tzx


The above media tags must be the last thing in parenthesis in your rom name.
You can read more about names on this thread.

How do I use this in my modules?:

  • Simply download a module that has already been updated with MG support and set your ini keys to get the look you want, or update your own module with the following info:
  • This is a feature as of HyperLaunch v2.25. It is injected into the module if you have MG enabled. Just make sure you are running at least this version, and you will have it. Modules need a custom label, much like CloseProcess, called MultiGame. If you attempt to enable MultiGame support and do not have this section in your module, you will get an error about not being able to find MultiGame.
  • The MultiGame section needs to contain code on what to do after you select your game from the MultiGame GUI. It is fed some variables that you use to pass to the emu or daemontools to mount your new game. If you want to use the feature and create your own method to change discs, here are the variables you need to know about:
    • selectedRom = The full path, name and extension of the game you selected as it exists in your romPath
    • currentButton = The number of the image you selected to load
    • mgRomPath = The path to the game (If 7z is enabled, this will be updated to reflect the path after extracting has occured)
    • mgRomName = The name of the game w/o an extension
    • mgRomExt = The extension of the game (If 7z is enabled, this will be updated to reflect the extension after extracting has occured)
    • mgCancel = Set when you exit the GUI and did not choose a game. You will need this on some emus where script is required to restore the emu if it lost focus or was minimized by bringing up the GUI

[*]Each module also needs to contain a PreMultiGame label. This is where you can put code if you need to put the emu in a state for the MG GUI to work properly. For example you may need to take the emu out of fullscreen or minimize it before bringing up the GUI. Then put code in the MultiGame label to put the emu back after changing disks.
NOTE: EVERY MODULE YOU WANT THIS TO WORK IN WILL NEED CODE TO TELL THE EMU AND/OR DAEMON TOOLS HOW TO CHANGE DISCS