· 7 years ago · Dec 10, 2018, 10:54 AM
1[code]
210:56:14:687 | RL | INFO | +N/A | Main - RocketLauncher v1.1.1.1 (www.rlauncher.com)
310:56:14:687 | RL | WARNING | +0 | Main - Logging level is debug or higher and will cause slowdowns to RocketLauncher's performance. When troubleshooting is finished, please lower logging level to restore proper performance.
410:56:19:506 | RL | DEBUG | +4812 | Registry.Read - Reading from Registry : RootKey=HKEY_LOCAL_MACHINE, SubKey=System\CurrentControlSet\Control\Windows, ValueName=ErrorMode,RegistryVersion=32
510:56:19:506 | RL | DEBUG | +0 | Registry.Read - Registry Read finished, returning 0
610:56:19:507 | RL | INFO | +0 | Main - System Specs:
7 RocketLauncher Dir: D:\RocketLauncher
8 RocketLauncher is: 32-bit
9 OS: Microsoft Windows 7 Ultimate
10 SKU: Ultimate
11 Total Memory: 4094.49 MB
12 Free Memory: 3262.57 MB
13 Used Memory: 831.926 MB
14 SystemType: 64-bit
15 Physical Processors: 1
16 Logical Processors: 1
17 GPU 1 Name: NVIDIA GeForce 210
18 GPU 1 RAM: 1024.00 MB
19 GPU 1 Driver Version: 9.18.13.4195
20 Sound 1 Device: NVIDIA High Definition Audio
21 Sound 1 Status: Enabled
22 Sound 2 Device: NVIDIA High Definition Audio
23 Sound 2 Status: Enabled
24 Sound 3 Device: NVIDIA High Definition Audio
25 Sound 3 Status: Enabled
26 Sound 4 Device: NVIDIA High Definition Audio
27 Sound 4 Status: Enabled
28 Sound 5 Device: NVIDIA Virtual Audio Device (Wave Extensible) (WDM)
29 Sound 5 Status: Enabled
30 Sound 6 Device: SoundMAX Integrated Digital HD Audio
31 Sound 6 Status: Enabled
32 OS Language: English_United_States
33 System Locale: en-GB
34 Formats Locale: en-GB
35 Windows UI Language: en-US
36 Text Encoding: Windows-1252
37 OS Admin Status: Yes
38 RL Compatibility Flags:
39 Latest .Net Version: v4.0.30319
40 Monitor #1 (\\.\DISPLAY1): 1280x1024 (1280x1024 work) [32bit] [60hz] [Landscape] (Primary)
41 Current AHK Desktop Width: 1280
42 Current AHK Desktop Height: 1024
43 Monitor #1 DPI: 100
44 ErrorMode: 0
45 AutoHotkey Path:
46 AHK Version: 1.1.13.00
47 Unicode: No
4810:56:19:507 | RL | INFO | +0 | CheckFile - Checking if D:\RocketLauncher\RocketLauncher.exe exists
4910:56:19:507 | RL | INFO | +0 | Main - Raw CLI received: "MAME terracre"
5010:56:19:508 | RL | INFO | +0 | File.CheckFile - Checking if "D:\RocketLauncher\Module Extensions\RocketLauncher.dll" exists
5110:56:19:527 | RL | INFO | +16 | CRC Check - CRC matches, this is an official unedited Extension: D:\RocketLauncher\Module Extensions\Array.ahk
5210:56:19:532 | RL | INFO | +15 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Module Extensions\BinHexRW.ahk | v1.0.2
5310:56:19:532 | RL | INFO | +0 | CheckFile - Checking if D:\RocketLauncher\Module Extensions\BlockInput.exe exists
5410:56:19:538 | RL | INFO | +0 | CRC Check - CRC matches, this is an official unedited Extension: D:\RocketLauncher\Module Extensions\CLR_L.ahk | vInterop
5510:56:19:623 | RL | INFO | +79 | CRC Check - CRC matches, this is an official unedited Extension: D:\RocketLauncher\Module Extensions\Control_AniGif.ahk | vAniGif.ahk
5610:56:19:627 | RL | INFO | +15 | CRC Check - CRC matches, this is an official unedited Extension: D:\RocketLauncher\Module Extensions\gdip.ahk
5710:56:19:628 | RL | INFO | +0 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Module Extensions\gdip_alt.ahk | v1.0.3
5810:56:19:629 | RL | INFO | +0 | CheckFile - Checking if D:\RocketLauncher\Module Extensions\gsdll32.dll exists
5910:56:19:629 | RL | INFO | +0 | CheckFile - Checking if D:\RocketLauncher\Module Extensions\itextsharp.dll exists
6010:56:19:638 | RL | INFO | +0 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Module Extensions\Java.ahk | v1.0.0
6110:56:19:654 | RL | INFO | +16 | CRC Check - CRC matches, this is an official unedited Extension: D:\RocketLauncher\Module Extensions\JSON.ahk
6210:56:19:656 | RL | INFO | +15 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Module Extensions\Origin.ahk | v1.0.2
6310:56:19:671 | RL | INFO | +16 | CRC Check - CRC matches, this is an official unedited Extension: D:\RocketLauncher\Module Extensions\RegRW64.ahk
6410:56:19:685 | RL | INFO | +0 | CRC Check - CRC matches, this is an official unedited Extension: D:\RocketLauncher\Module Extensions\RIni.ahk | v1.7
6510:56:19:685 | RL | INFO | +0 | CheckFile - Checking if D:\RocketLauncher\Module Extensions\SevenZipSharp.dll exists
6610:56:19:687 | RL | INFO | +16 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Module Extensions\Steam.ahk | v1.0.3
6710:56:19:691 | RL | INFO | +0 | CRC Check - CRC matches, this is an official unedited Extension: D:\RocketLauncher\Module Extensions\VA.ahk
6810:56:19:692 | RL | INFO | +0 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Module Extensions\VA_Extension.ahk | v1.0.1
6910:56:19:697 | RL | INFO | +0 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Lib\7z.ahk | v1.1.0
7010:56:19:721 | RL | INFO | +31 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Lib\Bezel.ahk | v1.2.5
7110:56:19:727 | RL | INFO | +0 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Lib\Fade.ahk | v1.1.9
7210:56:19:728 | RL | INFO | +0 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Lib\Fade Init.ahk | v1.0.3
7310:56:19:731 | RL | INFO | +0 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Lib\Fade Animations.ahk | v1.2.4
7410:56:19:749 | RL | INFO | +16 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Lib\Keymapper.ahk | v1.1.5
7510:56:19:750 | RL | INFO | +15 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Lib\Keymapper Init.ahk | v1.0.6
7610:56:19:751 | RL | INFO | +0 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Lib\MultiGame.ahk | v1.1.0
7710:56:19:752 | RL | INFO | +0 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Lib\MultiGame Init.ahk | v1.0.0
7810:56:19:769 | RL | INFO | +16 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Lib\MultiPlayer.ahk | v1.0.8
7910:56:19:801 | RL | INFO | +31 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Lib\Pause.ahk | v1.2.4
8010:56:19:802 | RL | INFO | +0 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Lib\Pause Init.ahk | v1.0.3
8110:56:19:803 | RL | INFO | +0 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Lib\Password.ahk | v1.0.4
8210:56:19:813 | RL | INFO | +16 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Lib\Classes\DLL\RocketLauncher.ahk | v1.7.1
8310:56:19:814 | RL | INFO | +0 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Lib\Classes\Log\Logger.ahk | v1.1.0
8410:56:19:830 | RL | INFO | +15 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Lib\Classes\Util\MiscUtils.ahk | v1.1.1
8510:56:19:831 | RL | INFO | +0 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Lib\Classes\Util\Environment\Registry.ahk | v1.0.0
8610:56:19:841 | RL | INFO | +0 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Lib\Classes\Util\Environment\StringUtils.ahk | v1.5.1
8710:56:19:842 | RL | INFO | +0 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Lib\Classes\Util\Environment\TimerUtils.ahk | v1.0.0
8810:56:19:843 | RL | INFO | +16 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Lib\Classes\Util\File\File.ahk | v1.6.0
8910:56:19:844 | RL | INFO | +0 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Lib\Classes\Util\File\Folder.ahk | v1.0.0
9010:56:19:856 | RL | INFO | +0 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Lib\Classes\Util\File\IniFile.ahk | v1.0.0
9110:56:19:857 | RL | INFO | +0 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Lib\Classes\Util\File\RIniFile.ahk | v1.1.1
9210:56:19:858 | RL | INFO | +0 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Lib\Classes\Util\File\Process.ahk | v1.5.0
9310:56:19:859 | RL | INFO | +16 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Lib\Classes\Util\File\Emulator.ahk | v1.1.0
9410:56:19:868 | RL | INFO | +0 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Lib\Classes\Util\Input\KeyUtils.ahk | v1.0.1
9510:56:19:869 | RL | INFO | +0 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Lib\Classes\Util\UI\Control.ahk | v1.2.0
9610:56:19:870 | RL | INFO | +0 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Lib\Classes\Util\UI\Window.ahk | v1.2.0
9710:56:19:871 | RL | INFO | +0 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Lib\Classes\Util\UI\WindowTitle.ahk | v1.0.0
9810:56:19:881 | RL | INFO | +15 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Lib\Rom Mapping Launch Menu.ahk | v1.0.7
9910:56:19:882 | RL | INFO | +0 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Lib\Shader.ahk | v1.0.1
10010:56:19:883 | RL | INFO | +0 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Lib\Shader Init.ahk | v1.0.0
10110:56:19:907 | RL | INFO | +31 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Lib\Shared.ahk | v1.4.7
10210:56:19:919 | RL | INFO | +0 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Lib\Statistics.ahk | v1.0.4
10310:56:19:920 | RL | INFO | +0 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Lib\Statistics Init.ahk | v1.0.1
10410:56:19:921 | RL | INFO | +16 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Lib\Virtual Drive.ahk | v1.0.5
10510:56:19:929 | RL | INFO | +0 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Lib\XHotkey.ahk | v1.0.4
10610:56:19:930 | RL | INFO | +0 | CRC Check - CRC matches, this is an official unedited Library: D:\RocketLauncher\Lib\XHotkey Init.ahk | v1.0.2
10710:56:19:930 | RL | DEBUG | +0 | Main - Received this dbName with no path via CLI: "terracre"
10810:56:19:930 | RL | DEBUG | +0 | Main - dbName: terracre
10910:56:19:940 | RL | INFO | +16 | Main - Loading Front End Plugin: "RocketLauncherUI"
11010:56:19:941 | RL | INFO | +0 | Process.Process - "Exist" "HyperSpin.exe"
11110:56:19:952 | RL | INFO | +0 | Main - Detected HyperSpin.exe is currently running
11210:56:19:953 | RL | INFO | +15 | Main - HyperSpin.exe coordinates are x0 y0 w1280 h1024
11310:56:19:953 | RL | INFO | +0 | Main - RocketLauncher received "MAME" and "terracre"
11410:56:20:119 | RL | INFO | +157 | Main - Did not find a "D:\RocketLauncher\Settings\MAME\Game Options.ini" file, skipping any game-specific options.
11510:56:20:119 | RL | INFO | +0 | Main - terracre is using the default emulator: MAME
11610:56:20:119 | RL | INFO | +0 | Main - Checking for a [MAME] section in D:\RocketLauncher\Settings\MAME\Emulators.ini
11710:56:20:160 | RL | INFO | +46 | Main - Checking for a [MAME] section in D:\RocketLauncher\Settings\Global Emulators.ini
11810:56:20:237 | RL | INFO | +79 | Main - Found [MAME] in D:\RocketLauncher\Settings\Global Emulators.ini
11910:56:20:238 | RL | INFO | +0 | CheckFile - Checking if D:\RocketLauncher\Modules\MAME\MAME.ahk exists
12010:56:20:242 | RL | WARNING | +0 | Main - CRC Check - CRC does not match official module and will not be supported. Continue using at your own risk.
12110:56:20:242 | RL | INFO | +0 | Main - terracre will use module: D:\RocketLauncher\Modules\MAME\MAME.ahk
12210:56:20:250 | RL | WARNING | +15 | RIniLoadVar - Created missing Global ini key: "Fade_Click_Through " in section: "Fade" in "D:\RocketLauncher\Settings\Global RocketLauncher.ini"
12310:56:20:251 | RL | WARNING | +0 | RIniLoadVar - Created missing System ini key: "Fade_Click_Through " in section: "Fade" in "D:\RocketLauncher\Settings\MAME\RocketLauncher.ini"
12410:56:20:789 | RL | INFO | +531 | Main - Using standard method with "Rom Extension" SkipChecks or without any SkipChecks.
12510:56:20:790 | RL | INFO | +0 | CheckFile - Checking if D:\mame\mame.exe exists
12610:56:20:791 | RL | INFO | +0 | Main - INI Keys read
12710:56:20:913 | RL | INFO | +125 | CheckFile - Checking if D:\RocketLauncher\Module Extensions\7z.exe exists
12810:56:20:913 | RL | INFO | +0 | CheckFile - Checking if D:\RocketLauncher\Module Extensions\7z.dll exists
12910:56:20:936 | RL | INFO | +16 | Main - "terracre" does not qualify for MultiGame. Only roms with any of these strings in their name are acceptable: \(Disc|\(Disk|\(Cart|\(Tape|\(Cassette|\(Part|\(Side
13010:56:20:936 | RL | INFO | +0 | CheckPaths - Started
13110:56:20:937 | RL | INFO | +0 | CheckPaths - Looking for rom: D:\mame\roms\terracre.7z
13210:56:21:289 | RL | INFO | +359 | CheckPaths - Looking for rom by name in subfolder: D:\mame\roms\terracre\terracre.7z
13310:56:21:290 | RL | INFO | +0 | CheckPaths - Rom not found
13410:56:21:290 | RL | INFO | +0 | CheckPaths - Looking for rom: D:\mame\roms\terracre.rar
13510:56:21:290 | RL | INFO | +0 | CheckPaths - Looking for rom by name in subfolder: D:\mame\roms\terracre\terracre.rar
13610:56:21:290 | RL | INFO | +0 | CheckPaths - Rom not found
13710:56:21:290 | RL | INFO | +0 | CheckPaths - Looking for rom: D:\mame\roms\terracre.zip
13810:56:21:307 | RL | INFO | +16 | CheckPaths - Found rom: D:\mame\roms\terracre.zip
13910:56:21:307 | RL | DEBUG | +0 | CheckPaths - Current romName: terracre
14010:56:21:307 | RL | DEBUG | +0 | CheckPaths - Current romPath: D:\mame\roms
14110:56:21:307 | RL | DEBUG | +0 | CheckPaths - Current romExtension: .zip
14210:56:21:307 | RL | INFO | +0 | CheckPaths - Ended
14310:56:21:308 | RL | INFO | +0 | BuildScript - User Variables:
144 ;----------------------------------------------------------------------------
145 ; INJECTED VARIABLES
146 ;----------------------------------------------------------------------------
147
148 #NoTrayIcon
149 #InstallKeybdHook
150 MiscUtils.DetectHiddenWindows("On")
151 SetTitleMatchMode, 2
152 SendMode, Event
153 0 = 2
154 rlPath = D:\RocketLauncher
155 pluginPath = D:\RocketLauncher\Plugins
156 pluginName = RocketLauncherUI
157 pluginExt = .plugin
158 contextOnExit =
159 rlMode =
160 rlTitle = RocketLauncher
161 rlVersion = 1.1.1.1
162 rlAuthor = djvj
163 rlURL = www.rlauncher.com
164 langFile = D:\RocketLauncher\Data\Language\Localization.ini
165 primMonitor = 1
166 frontendPID = 640
167 frontendPath = D:\hyperspin
168 frontendExe = HyperSpin.exe
169 frontendExt = exe
170 frontendName = HyperSpin
171 frontendDrive = D
172 exitEmulatorKey = ~Esc
173 restoreFE = false
174 exitScriptKey = ~q & ~s
175 toggleCursorKey = ~e & ~t
176 emuFullPath = D:\mame\mame.exe
177 emuPath = D:\mame
178 emuName = MAME
179 emuExt = exe
180 baseRomPath = D:\Stella\newroms\MAME
181 romPath = D:\mame\roms
182 romPathFromIni = D:\mame\roms|D:\Stella\newroms\MAME
183 romExtension = .zip
184 romExtensionOrig = .zip
185 romExtensions = 7z|rar|zip|chd|cue|32x|a26|a52|a78|bin|caq|col|cpr|gg|gb|gba|gbc|int|lnx|rom|sms|st2|md|j64|n64|nes|ngc|ngp|pce|sfc|sv|vb|vec|ws|wsc
186 executable = mame.exe
187 systemDbName = MAME
188 systemName = MAME
189 dbPath =
190 dbName = terracre
191 dbExt =
192 romName = terracre
193 romMapPath =
194 romMappingEnabled = false
195 romMappingLaunchMenuEnabled = false
196 romMappingFirstMatchingExt = false
197 romMappingShowAllRomsInArchive = true
198 romMappingNumberOfGamesByScreen = 7
199 romMappingHideParent = false
200 romMappingMenuWidth = 400
201 romMappingMenuMargin = 65
202 romMappingTextFont = Bebas Neue
203 romMappingTextOptions = cFFFFFFFF r4 s60 Bold
204 romMappingDisabledTextColor = ff888888
205 romMappingTextSizeDifference = 7
206 romMappingTextMargin = 15
207 romMappingTitleTextFont = Bebas Neue
208 romMappingTitleTextOptions = cFFFFFFFF r4 s90 Bold
209 romMappingTitle2TextFont = Bebas Neue
210 romMappingTitle2TextOptions = cFFFFFFFF r4 s22 Bold
211 romMappingGameInfoTextFont = Bebas Neue
212 romMappingGameInfoTextOptions = cFFFFFFFF r4 s22 Regular
213 romMappingGameNameTextFont = Bebas Neue
214 romMappingGameNameTextOptions = cFFFFFFFF r4 s40 Regular
215 romMappingBackgroundBrush = aa000000
216 romMappingColumnBrush = 33000000
217 romMappingButtonBrush1 = 6f000000
218 romMappingButtonBrush2 = 33000000
219 romMappingBackgroundAlign = Stretch and Lose Aspect
220 romMappingMenuFlagWidth = 55
221 romMappingMenuFlagSeparation = 7
222 romMappingDefaultMenuList = FullList
223 romMappingSingleFilteredRomAutomaticLaunch = false
224 altArchiveNameOnly =
225 altRomNameOnly =
226 altArchiveAndRomName =
227 altArchiveAndManyRomNames =
228 altRomNamesOnly =
229 romMapScenario =
230 skipchecks = false
231 romMatchExt = false
232 blockInputTime = 0
233 blockInputFile = D:\RocketLauncher\Module Extensions\BlockInput.exe
234 errorLevelReporting = false
235 lockLaunch = false
236 lockLaunchGame =
237 screenRotationAngle = 0
238 screenRotationAngleGame =
239 setResolution =
240 logFile =
241 logLabel := [" INFO"," WARNING"," ERROR"," DEBUG"," TRACE"]
242 logLevel = 4
243 logShowDebugConsole = false
244 logShowCommandWindow = false
245 logCommandWindow = false
246 logIncludeModule = true
247 logIncludeFileProperties = false
248 logIncludeDLLLogs = false
249 errorSounds = true
250 rlDebugConsoleStdout =
251 sysLang = English_United_States
252 sysType = 64-bit
253 broadcastWindowTitle =
254 navUpKey = Up
255 navDownKey = Down
256 navLeftKey = Left
257 navRightKey = Right
258 navSelectKey = Enter
259 navP2UpKey = Numpad8
260 navP2DownKey = Numpad2
261 navP2LeftKey = Numpad4
262 navP2RightKey = Numpad6
263 navP2SelectKey = NumpadEnter
264 originalWidth = 1280
265 originalHeight = 1024
266 vdEnabled = false
267 vdFullPath =
268 vdUseSCSI = true
269 vdDriveLetter =
270 vdDriveLetterScsi =
271 vdAddDrive = true
272 demulShooterPath =
273 servoStikEnabled = false
274 servoStikExitMode = false
275 ledblinkyEnabled = false
276 ledblinkySystemName =
277 ledblinkyFullPath =
278 ledblinkyProfilePath = D:\RocketLauncher\Profiles\LEDBlinky
279 ledblinkyRLProfile = D:\RocketLauncher\Profiles\LEDBlinky\RocketLauncher
280 winIPACFullPath =
281 ultraMapEnabled = false
282 ultraMapFullPath =
283 emuIdleShutdown = 0
284 launchPasswordHash = UpUpDownDownLeftRightLeftRight
285 hideCursor = false
286 hideEmu = false
287 hideFE = false
288 suspendFE = false
289 fadeIn = false
290 fadeInDuration = 500
291 fadeInTransitionAnimation = DefaultAnimateFadeIn
292 fadeInDelay = 0
293 fadeInExitDelay = 0
294 fadeOutExitDelay = 0
295 fadeOut = false
296 fadeOutExtraScreen = false
297 fadeOutDuration = 500
298 fadeOutTransitionAnimation = DefaultAnimateFadeOut
299 fadeOutDelay = 0
300 fadeLyrInterpolation = 7
301 fadeMuteEmulator = false
302 fadeUseBackgrounds = false
303 fadeClickThrough = false
304 fadeSounds = true
305 fade7zProgressMode = extraction
306 fadeWidthBaseRes = 1920
307 fadeHeightBaseRes = 1080
308 fadeLyr1Color = FF000000
309 fadeLyr1AlignImage = Stretch and Lose Aspect
310 fadeLyr2Pos = Stretch and Lose Aspect
311 fadeLyr2X = 0
312 fadeLyr2Y = 0
313 fadeLyr2W =
314 fadeLyr2H =
315 fadeLyr2Adjust = 1
316 fadeLyr2PicPad = 0
317 fadeLyr2Prefix = Extra Layer 1 - Console
318 fadeLyr3Pos = Center
319 fadeLyr3X = 450
320 fadeLyr3Y = 450
321 fadeLyr3W =
322 fadeLyr3H =
323 fadeLyr3Adjust = 1
324 fadeLyr3PicPad = 0
325 fadeLyr3Speed = 750
326 fadeLyr3Animation = DefaultFadeAnimation
327 fadeLyr37zAnimation = DefaultFadeAnimation
328 fadeLyr3Type = imageandbar
329 fadeLyr3ImgFollow7zProgress = true
330 fadeLyr3Repeat = 1
331 fadeLyr3BackImageTransparency = 30
332 fadeLyr3StaticPos = No Alignment
333 fadeLyr3StaticX = 0
334 fadeLyr3StaticY = 870|1575
335 fadeLyr3StaticW =
336 fadeLyr3StaticH =
337 fadeLyr3StaticAdjust = 1
338 fadeLyr3StaticPicPad = 0
339 fadeLyr3StaticPrefix = Info Bar
340 fadeLyr4Adjust = 1
341 fadeLyr4X = 1792|952
342 fadeLyr4Y = 891|1596
343 fadeLyr4W = 128
344 fadeLyr4H =
345 fadeLyr4Pos = No Alignment
346 fadeLyr4FPS = 50
347 fadeLyr4PicPad = 0
348 fadeTranspGifColor = FFFFFF
349 fadeBarWindow = Image
350 fadeBarWindowX =
351 fadeBarWindowY =
352 fadeBarWindowW = 900
353 fadeBarWindowH =
354 fadeBarWindowR = 30
355 fadeBarWindowM = 30
356 fadeBarWindowHatchStyle = 8
357 fadeBar = 7zOnly
358 fadeProgressDuration = 0
359 fadeBarBack = true
360 fadeBarBackColor = FF555555
361 fadeBarH = 30
362 fadeBarR = 10
363 fadeBarColor = DD00BFFF
364 fadeBarHatchStyle = 8
365 fadeBarPercentageText = true
366 fadeBarInfoText = true
367 fadeBarXOffset = 0
368 fadeBarYOffset = 150
369 fadeRomInfoDescription = filtered text
370 fadeRomInfoSystemName = image
371 fadeRomInfoYear = text with label
372 fadeRomInfoDeveloper = text with label
373 fadeRomInfoPublisher = text with label
374 fadeRomInfoGenre = disabled
375 fadeRomInfoRating = image
376 fadeRomInfoOrder = Description|SystemName|Year|Developer|Genre|Rating|Publisher
377 fadeRomInfoTextPlacement = User Defined
378 fadeRomInfoTextMargin = 7
379 fadeRomInfoText1Options = w1600|787 h90 x165 y870|1575 cFFE1E1E1 r4 s90 Left Regular
380 fadeRomInfoText2Options = w400 x8 y15 cFF555555 r4 s60 Bold
381 fadeRomInfoText3Options = w310 x165 y960|1665 cFFE1E1E1 r4 s66 Left Regular
382 fadeRomInfoText4Options = w1305|492 h66 x460 y960|1665 cFFE1E1E1 r4 s66 Left Regular
383 fadeRomInfoText5Options = cFF555555 r4 s42 Bold
384 fadeRomInfoText6Options = h135 x15 y885|1590 cFFCFCFCA r4 s120 Regular
385 fadeRomInfoText7Options = h135 x15 y885|1590 cFFCFCFCA r4 s120 Regular
386 fadeStats_Number_of_Times_Played = text with label
387 fadeStats_Last_Time_Played = text with label
388 fadeStats_Average_Time_Played = text with label
389 fadeStats_Total_Time_Played = text with label
390 fadeStats_System_Total_Played_Time = text with label
391 fadeStats_Total_Global_Played_Time = text with label
392 fadeStatsInfoOrder = Number_of_Times_Played|Last_Time_Played|Average_Time_Played|Total_Time_Played|System_Total_Played_Time|Total_Global_Played_Time
393 fadeStatsInfoTextPlacement = topRight
394 fadeStatsInfoTextMargin = 7
395 fadeStatsInfoText1Options = cFFB4B4B4 r4 s22 Bold
396 fadeStatsInfoText2Options = cFFB4B4B4 r4 s22 Bold
397 fadeStatsInfoText3Options = cFFB4B4B4 r4 s22 Bold
398 fadeStatsInfoText4Options = cFFB4B4B4 r4 s22 Bold
399 fadeStatsInfoText5Options = cFFB4B4B4 r4 s22 Bold
400 fadeStatsInfoText6Options = cFFB4B4B4 r4 s22 Bold
401 fadeText1X = 0
402 fadeText1Y = 0
403 fadeText1Options = cFFB4B4B4 r4 s30 Right Bold
404 fadeText1 = Loading Game
405 fadeText2X = 0
406 fadeText2Y = 0
407 fadeText2Options = cFFB4B4B4 r4 s30 Right Bold
408 fadeText2 = Extraction Complete, Ready
409 fadeText3 = Loading Game
410 fadeText4 = Loading Complete
411 fadeFont = Bebas Neue
412 fadeSystemAndRomLayersOnly = false
413 fadeExtractionTime = disabled
414 fadeExtractionTimeTextX = 0
415 fadeExtractionTimeTextY = 0
416 fadeExtractionTimeTextOptions = cFF555555 r4 s20 Bold
417 fadeInterruptKey =
418 detectFadeErrorEnabled = true
419 fadeImgPath = D:\RocketLauncher\Media\Fade
420 RLDataPath = D:\RocketLauncher\Data
421 RLMediaPath = D:\RocketLauncher\Media
422 RLErrSoundPath = D:\RocketLauncher\Media\Sounds\Error
423 modulesPath = D:\RocketLauncher\Modules
424 moduleFullName = D:\RocketLauncher\Modules\MAME\MAME.ahk
425 moduleName = MAME
426 modulePath = D:\RocketLauncher\Modules\MAME
427 moduleExtension = ahk
428 moduleExtensionsPath = D:\RocketLauncher\Module Extensions
429 libPath = D:\RocketLauncher\Lib
430 sevenZEnabled = false
431 sevenZPath = D:\RocketLauncher\Module Extensions\7z.exe
432 sevenZDllPath = D:\RocketLauncher\Module Extensions\7z.dll
433 sevenZExtractPath = D:\temp
434 sevenZExtractPathOrig =
435 sevenZAttachSystemName = false
436 sevenZDelTemp = true
437 sevenZFormats = .zip|.rar|.7z|.lzh|.gzip|.tar
438 sevenZFormatsNoP = zip|rar|7z|lzh|gzip|tar
439 sevenZFormatsRegEx = \.zip|\.rar|\.7z|\.lzh|\.gzip|\.tar
440 7zExtractPath = D:\temp
441 mgEnabled = false
442 mgKey = ~NumpadSub
443 mgBackgroundColor = FF000000
444 mgSidePadding = 0.2
445 mgWidthBaseRes = 1920
446 mgHeightBaseRes = 1080
447 mgYOffset = 500|800
448 mgFont = Arial
449 mgText1Options = x10p y250|500 w80p Center cBBFFFFFF r4 s100 BoldItalic
450 mgText1Text = Please select a game
451 mgText2Options = w96p cFFFFFFFF r4 s50 Center BoldItalic
452 mgText2Offset = 100
453 mgUseSound = true
454 mgSoundfreq = 300
455 mgExitEffect = none
456 mgSelectedEffect = rotate
457 mgUseGameArt = false
458 mgCandidate =
459 mgValidTypes = \(Disc|\(Disk|\(Cart|\(Tape|\(Cassette|\(Part|\(Side
460 mgOnLaunch = false
461 pauseEnabled = true
462 pauseKey = ~NumpadAdd
463 pauseBackToMenuBarKey = X
464 pauseZoomInKey = C
465 pauseZoomOutKey = V
466 pauseScreenshotKey = ~PrintScreen
467 pauseHiToTextPath = D:\RocketLauncher\Module Extensions\HiToText.exe
468 pauseSaveStateKeyCodes = {shift down}{F7 down}{F7 up}{shift up}
469 pauseLoadStateKeyCodes = {F7 down}{F7 up}
470 keyboardEncoder =
471 keyboardEncoderEnabled = false
472 keymapperEnabled = true
473 keymapperAHKMethod = false
474 keymapper = joytokey
475 xpadderFullPath = D:\Utilities\Xpadder\xpadder.exe
476 joyToKeyFullPath = D:\RocketLauncher\Profiles\JoyToKey\JoyToKey.exe
477 profilePath = D:\RocketLauncher\Profiles
478 keymapperProfilePath = D:\RocketLauncher\Profiles\joytokey
479 keymapperFrontEndProfileName = HyperSpin
480 keymapperFrontEndProfile = joytokey
481 keymapperRocketLauncherProfileEnabled = true
482 joyIDsEnabled = true
483 joyIDsPreferredControllersGlobal = blue|red
484 joyIDsPreferredControllersSystem = use_global
485 joyIDsPreferredControllersOnExit =
486 CustomJoyNamesEnabled = true
487 CustomJoyNames = Generic USB Joystick|blue\Generic USB Joystick|red
488 rotateMethod = false
489 FEProfile = D:\RocketLauncher\Profiles\joytokey\HyperSpin
490 defaultProfile = D:\RocketLauncher\Profiles\joytokey\_Default
491 systemProfile = D:\RocketLauncher\Profiles\joytokey\MAME
492 xPadderSystemProfile = D:\RocketLauncher\Profiles\joytokey\MAME\_Default
493 emuProfile = D:\RocketLauncher\Profiles\joytokey\MAME\MAME
494 romProfile = D:\RocketLauncher\Profiles\joytokey\MAME\terracre
495 RocketLauncherProfile = D:\RocketLauncher\Profiles\joytokey\RocketLauncher
496 blankProfile = D:\RocketLauncher\Profiles\joytokey\blank
497 ahkFEProfile = D:\RocketLauncher\Profiles\AHK\HyperSpin
498 ahkDefaultProfile = D:\RocketLauncher\Profiles\AHK\_Default
499 ahkSystemProfile = D:\RocketLauncher\Profiles\AHK\MAME
500 ahkEmuProfile = D:\RocketLauncher\Profiles\AHK\MAME\MAME
501 ahkRomProfile = D:\RocketLauncher\Profiles\AHK\MAME\terracre
502 ahkRocketLauncherProfile = D:\RocketLauncher\Profiles\AHK\RocketLauncher
503 bezelEnabled = false
504 bezelICEnabled = false
505 shaderName = false
506 shaderColor =
507 shaderTransparency =
508 statisticsEnabled = true
509 pressDuration = -1
510 emuVolume = 1
511 dxwndIni = D:\RocketLauncher\Module Extensions\dxwnd\dxwnd.ini
512 dxwndFullPath = D:\RocketLauncher\Module Extensions\dxwnd\dxwnd.exe
513 qResFullPath = D:\RocketLauncher\Module Extensions\QRes.exe
514 mon1O =
515 pacDrivedllFile = D:\RocketLauncher\Module Extensions\PacDrive32.dll
516 userFadeAnimIniFile = D:\RocketLauncher\Lib\User Fade Animations.ini
517 testFile =
518 testDuration =
519 initialErrorMode = 0
520
52110:56:21:311 | RL | INFO | +0 | BuildScript - Loaded XHotkey Init.ahk scripts
52210:56:21:311 | RL | INFO | +0 | BuildScript - Loaded Keymapper Init.ahk scripts
52310:56:21:311 | RL | INFO | +0 | BuildScript - Loaded Pause Init.ahk scripts
52410:56:21:311 | RL | INFO | +0 | BuildScript - Loaded Statistics Init.ahk scripts
52510:56:21:311 | RL | WARNING | +0 | BuildScript - "D:\RocketLauncher\Lib\User Functions Init.ahk" not found
52610:56:21:311 | RL | DEBUG | +0 | BuildScript - Module starts on line: 2
52710:56:21:311 | RL | INFO | +0 | BuildScript - Validating module
52810:56:21:425 | RL | INFO | +125 | BuildScript - Validation complete
52910:56:21:425 | RL | INFO | +0 | BuildScript - Module:
530 MEmu = MAME
531 MEmuV = v0.166
532 MURL = http://www.mame.net/
533 MAuthor = djvj,faahrev,brolly,Tomkun
534 MVersion = 2.3.7
535 MCRC = 5C737136
536 iCRC = 25E2CCF
537 mId = 635746812784197028
538 MSystem = "AAE","Aamber Pegasus","Acorn Electron","Amstrad CPC","Amstrad GX4000","APF Imagination Machine","Apple II","Apple IIGS","Applied Technology MicroBee","Atari 8-Bit","Atari 2600","Atari 5200","Atari 7800","Atari Classics","Atari Jaguar","Atari Lynx","Bally Astrocade","Bandai Super Vision 8000","Bandai WonderSwan","Bandai WonderSwan Color","Bit Corporation Gamate","Camputers Lynx","Capcom","Capcom Classics","Capcom Play System","Capcom Play System II","Capcom Play System III","Casio PV-1000","Casio PV-2000","Cave","Coleco ADAM","ColecoVision","Commodore 64","Commodore MAX Machine","Creatronic Mega Duck","Data East Classics","EACA EG2000 Colour Genie","Emerson Arcadia 2001","Entex Adventure Vision","Epoch Game Pocket Computer","Epoch Super Cassette Vision","Exidy Sorcerer","Fairchild Channel F","Fujitsu FM-7","Funtech Super Acan","GamePark 32","GCE Vectrex","Hartung Game Master","HBMAME","Interton VC 4000","Irem Classics","JungleTac Sport Vii","Jupiter Ace","Konami Classics","LaserDisc","Magnavox Odyssey 2","MAME","Matra & Hachette Alice","Mattel Aquarius","Mattel Intellivision","MGT Sam Coupe","Midway Classics","Milton Bradley MicroVision","Namco Classics","Namco System 22","NEC PC-8801","NEC PC Engine","NEC PC Engine-CD","NEC SuperGrafx","NEC TurboGrafx-16","NEC TurboGrafx-CD","Nintendo 64","Nintendo 64DD","Nintendo Arcade Systems","Nintendo Classics","Nintendo Entertainment System","Nintendo Famicom","Nintendo Famicom Disk System","Nintendo Game Boy","Nintendo Game Boy Advance","Nintendo Game Boy Color","Nintendo Pokemon Mini","Nintendo Satellaview","Nintendo Super Famicom","Nintendo Super Game Boy","Nintendo Virtual Boy","Othello Multivision","PacMAME","Philips CD-i","Philips VG 5000","Philips Videopac Plus G7400","RCA Studio II","Sega 32X","Sega CD","Sega Classics","Sega Game Gear","Sega Genesis","Sega Master System","Sega Mega Drive","Sega Model 1","Sega Pico","Sega Saturn","Sega SC-3000","Sega SG-1000","Sega ST-V","Sega VMU","Sharp X1","Sinclair ZX81","SNK Classics","SNK Neo Geo","SNK Neo Geo AES","SNK Neo Geo AES","SNK Neo Geo CD","SNK Neo Geo MVS","SNK Neo Geo Pocket","SNK Neo Geo Pocket Color","Sony PlayStation","Sony PocketStation","Sord M5","Soundic Victory MPT-02","Super Nintendo Entertainment System","Taito Classics","Tandy TRS-80 Color Computer","Texas Instruments TI 99-4A","Tiger Game.com","Tomy Tutor","VTech CreatiVision","Watara Supervision","Williams Classics"
539 ;----------------------------------------------------------------------------
540 ; Notes:
541 ; This module now includes everything from the legacy MAME and MESS modules, but combined to match the merge of the 2 emulators that occured on version 0.162.
542 ;
543 ; Exit fade will only work correctly if you don't have Esc, the default MAME exit key, as your exit key. If you use Esc, turn off the ExitScreen
544 ; This module will set your rom paths on the fly via CLI, but you must make sure the RLUI module setting for this module "MAME_BIOS_Path" is correctly set. It defaults to your roms subfolder where MAME.exe is found.
545 ; This module assumes you have bios zip in your MAME "roms" directory, which might be different than your actual roms directory, for each system you need this module for. All tested systems listed below
546 ; If MAME has a problem reading the bios zips, try archving them with "no compression"
547 ; This site can help a ton with details for the various systems supported: http://www.progettoemma.net/mess/index.html
548 ; You may get a black screen or MAME may close w/o notice if you do not have a bios rom for your system when one is needed.
549 ; If you use bezel, it is recommended to set the module bezel mode to normal, and go to your MAME.ini file, on your emulator folder, and choose these options: artwork_crop 1, use_backdrops 1, use_overlays 1, use_bezels 0
550 ;
551 ; Command Line Options - http://easyemu.mameworld.info/mameguide/mameguide-options.html
552 ; High Scores DO NOT SAVE when cheats are enabled!
553 ; HLSL Documentation: http://mamedev.org/source/docs/hlsl.txt.html
554 ; If you use MAME for AAE, create a vector.ini in mame's ini subfolder and paste these HLSL settings in there: http://www.mameworld.info/ubbthreads/showflat.php?Cat=&Number=309968&page=&view=&sb=5&o=&vc=1
555 ;
556 ; Be aware that several systems will require a BIOS zip with their roms inside. They all come bundled in the MAME set so make sure you add your MAME roms folder to the
557 ; roms path for that system. If you have doubts about their filenames check the mTypeVar module variable content.
558 ;
559 ; Following systems will also require some specific files to operate properly:
560 ; APF Imagination Machine - apfimag (tape games), apfm1000 (cart games)
561 ; Camputers Lynx - lynx64k, lynx96k, lynx128k
562 ; Coleco ADAM - adam, adam_ddp, adam_fdc, adam_kb, adam_prn, adam_spi
563 ; NEC PC Engine-CD - "Super CD-ROM2 System V3.0 (J).pce" [262,656 bytes] (placed in the roms subfolder in the emuPath)
564 ; NEC TurboGrafx-CD - "Super CD-ROM2 System V3.01 (U).pce" [262,144 bytes] (placed in the roms subfolder in the emuPath)
565 ; Sega CD - segacd, megacd, megacd2j (megacd2j seems to be more compatible over megacdj)
566 ; Sony PlayStation - psa, pse, psj, psu
567 ;
568 ; Tape Control:
569 ; MAME tape/cassette emulation is terrible because normally it means you need to manually start and stop the tapes yourself so it's highly suggested that you use another emulator for such systems.
570 ; Tape control commands are accessible through the UI, press tab and then select Tape Control and you can start/stop the loaded tape from there.
571 ; The following hotkeys can also be used:
572 ; F2 - Start Tape
573 ; Left Shift + F2 - Stop Tape
574 ; Insert - While held, runs the game with throttling disabled and with the maximum frameskip. Useful to speedup the long tape loading process.
575 ;
576 ; Be aware that tape games are normally used on PC systems therefore it's likely that full keyboard emulation is enabled which means that you'll need to disable it in order to use any of the above
577 ; hotkeys. To disable it press the Scroll Lock key, press it again to enable it back.
578 ;
579 ; 7z Support:
580 ; Make sure you have 7z disabled for all MAME Arcade systems. Their roms are supposed to be archived, if you have 7z enabled then your games will fail to load. It's
581 ; fine to enable 7z to non-arcade systems.
582 ;
583 ; Custom Configuration Files:
584 ; If you want to use custom configuration files (.cfg files) for some games you will need to store them inside your MAME cfg folder using the following structure:
585 ; cfg\mame_system_name\database_rom_name\mame_system_name.cfg
586 ; An example of a game that requires specific settings is ICBM Attack for the Bally Astrocade, in this case special cfg file should be:
587 ; cfg\astrocde\I.C.B.M. Attack (USA) (Unl)\astrocde.cfg
588 ;
589 ; Ini Files:
590 ; Module will set most settings through command line which will override any settings you might have on your MAME ini files. Everything else will be read from
591 ; those. MAME supports a hierarchical ini file structure and will load settings from several ini files following a specific order:
592 ;- mame.ini
593 ;- <mymame>.ini (i.e. if MAME was renamed mame060.exe, MAME parses mame060.ini here)
594 ;- debug.ini (if the debugger is enabled)
595 ;- <parent>.ini (for clones only, may be called recursively)
596 ;- <gamename>.ini
597 ;- vertical.ini (for games with vertical monitor orientation)
598 ;- horizont.ini (for games with horizontal monitor orientation)
599 ;- vector.ini (for vector games only)
600 ;- <driver>.ini (based on the source filename of the driver)
601 ;
602 ; The settings in the later ini's override those in the earlier ini's.
603 ;
604 ; It's highly recommended that you set skipchecks to 'Rom Only" for MAME otherwise RocketLauncher won't be able to launch several games due
605 ; to the way MAME roms are packaged. This will be even more noticeable for those using merged sets.
606 ;
607 ; Bally Astrocade:
608 ; ICBM requires a soft reset (even on the real hardware) to launch. You can read about it here: http://www.ballyalley.com/ballyalley/articles/Playing_ICBM_Attack_Using_MESS.pdf
609 ; Other games might require this as well, you can enable this in the module's settings so the machine is reset automatically on launch, otherwise you need to press F3 to start the game.
610 ; Also ICBM Attack uses different controls then the rest of the games. Make sure you follow the procedure explained above under "Custom Configuration Files" to create such file.
611 ;
612 ; GCE Vectrex:
613 ; Requires a vectrex.lay and a png overlay for each game. These all need to be placed in the MAME\artwork\vectrex folder.
614 ; You can download all these pngs and the lay file in my ftp folder. You need to use the HyperList XML to match the pngs.
615 ;
616 ; Jupiter Ace:
617 ; Set mame to 48k ram
618 ;
619 ; Magnavox Odyssey 2:
620 ; Euro games should use the videopac bios instead of the odyssey2 one or you'll get some timing issues.
621 ; Use the systemName ini file in the folder with this module for this, example:
622 ; [Moto-Crash (France)]
623 ; Bios=videopac
624 ;
625 ; RCA Studio 2:
626 ; Most of the games require you to press a button to start the game, like 1 or 2 (refer to the game's manual).
627 ; The game screen will be black until you do.
628 ;
629 ; Texas Instruments TI 99/4A:
630 ; This system requires full keyboard emulation to work properly
631 ; Split cart dumps are not supported since MESS .145 so you'll have to convert them to RPK format or use an earlier version of MESS (and a different module)
632 ; You can check how to convert split cart dumps to RPK here:
633 ; http://www.ninerpedia.org/index.php/MESS_multicart_system
634 ; For floppy games make sure you have a RPK dump of an extended basic rom on your roms folder. It should be named "extended_basic.rpk"
635 ; This system requires you to use a MAME build with Direct Input enabled in order to auto start the games. Most games will require commands to be typed to start
636 ; and it's normally too complex to be able to do it through the -ab switch so SendCommand is used instead which means a Direct Input enabled MAME version is required.
637 ;
638 ; Bezels:
639 ; Module settings control whether RocketLauncher or MAME bezels are shown
640 ; In the bezel normal mode only RocketLauncher Bezels will be show and the MAME use_bezels option will be forced disbaled
641 ; In the bezel layout mode, RocketLauncher Bezels will be drawn only when you do not have a layout file on your MAME folders for the current game
642 ;
643 ; ServoStik:
644 ; The module will automatically control any connected ServoStiks found on the system.
645 ; It does this by reading the xml info from MAME. If that XML info has directional info at 4 or less, 4-way mode will be enabled. All others get 8-way mode.
646 ;
647 ; Per game controller types:
648 ; MAME allows you to change the controller type for each game by using slot devices. Slot devices are highly customizable and vary greatly from system to
649 ; system so to avoid adding a huge complexity to the module this must be done through the Parameters settings.
650 ; Slot devices are stored in the MAME ini file you are using, so the best way to find the command line you need to use is to start your game set the slot devices
651 ; through the MAME UI (Press tab while in MAME) exit and then open the MAME ini file and search for a section named SLOT DEVICES.
652 ; This is an example for Atari 2600 for a game using wheel controllers on both joy ports:
653 ; #
654 ; # SLOT DEVICES
655 ; #
656 ; joyport1 wheel
657 ; joyport2 wheel
658 ; The suggested method is to set the desired controllers you want to use by default in the Module Global Settings, in this case under the Atari 2600 tab you would
659 ; set Parameters=-joyport1 joy -joyport2 joy
660 ; And then for specific games do the same under Module Specific Settings for that system, if a game requires the wheel controller you'd set
661 ; Parameters=-joyport1 wheel -joyport2 wheel
662 ;
663 ; Another option is to set the default values in the MAME ini file and make sure you also set writeconfig to 0.
664 ; Swapping slot devices wipes out SYSTEM custom configs on the unplugged controllers, so to avoid any customised controls getting erased everytime you change slot devices,
665 ; ensure you set your controls in the main MAME config file (MAME.ini), not the system one (ex. Atari 2600.ini).
666 ;
667 ; Linking/NetPlay:
668 ; The module will automatically set correct network ports for linked games.
669 ; Up to 8 players on the same PC are supported. Multiple copies of MAME will be launched.
670 ; Placement of the screens are automatic but can be controlled in RocketLauncherUI MAME module settings. Windowed mode is required when more than one copy of mame is launched and is set automatically.
671 ; Each player will use a different cfg and nvram folder in your MAME folder. Player 1 will always use .\cfg and .\nvram.
672 ; Players 2 through 8 will use .\cfg2, .\cfg3, etc and .\nvram2, .\nvram3, etc
673 ; These folders and cfg/nvram files will be automatically created for you on launch so you do not need to create them manually.
674 ; Global inputs is automatically turned on for you but it is your job to setup individual controls for each instance. MAME only supports raw-input in this mode however.
675 ; Over a LAN/WAN connection only 2 players are supported due to the way the ports are designated, it's impossible to automate port allocation because there is no 1 server where all hosts connect to.
676 ; Default starting port for the Master is 15111 and consecutively goes up from there upto 15119 for 8 players. You can change the default starting port in the module settings if it conflicts with used ports on your network.
677 ; There are other network related settings in the module settings to assist with starting IPs and connectivity, so check them out as well.
678 ;
679 ; NVRAM Automation for linked games:
680 ; When launching linked games on the same pc NVRAM settings are automatically set for you so each player will be unique.
681 ; For instance, in Virtua Racing, Player 1 is red, player 2 is blue, player 3 is yellow, etc.
682 ; To do this, some other options are also set automatically for you as well, like region, difficulty, countr, course, etc
683 ; I set these to defaults, but prefer USA region. If you do not like these, you will have to disable NVRAM automation in the module settings in RocketLauncherUI.
684 ;
685 ; Additional Link info that may be of some importance:
686 ; The original Model-1 has a max Bandwidth of 6 MBit/s (TOTX173/TORX173).
687 ; One Board sends about 20 KByte/s.
688 ; So bandwidth CLIENTSIDE is like...
689 ; 2 Boards - 20 KByte/s inbound and 20 KByte/s outbound.
690 ; 3 Boards - 40 KByte/s inbound and 20 KByte/s outbound.
691 ; 4 Boards - 60 KByte/s inbound and 20 KByte/s outbound.
692 ; etc.
693 ; Some good info on Linking: http://www.mameworld.info/ubbthreads/showflat.php?Cat=&Number=297577&page=0
694 ; also http://forum.arcadecontrols.com/index.php/topic,130136.msg1331485.html
695 ;----------------------------------------------------------------------------
696 StartModule()
697 BezelGUI()
698
699 dialogOpen := i18n("dialog.open") ; Looking up local translation
700 primaryExe := new Emulator(emuPath . "\" . executable) ; instantiate emulator executable object
701 emuPrimaryWindow := new Window(new WindowTitle("","MAME")) ; instantiate primary emulator window object
702 emuOpenWindow := new Window(new WindowTitle(dialogOpen,"ConsoleWindowClass"))
703 emuConsoleWindow := new Window(new WindowTitle("","ConsoleWindowClass"))
704 emuDebugWindow := new Window(new WindowTitle("","MAMEDebugWindow"))
705 emuOutputWindow := new Window(new WindowTitle("","MAMEOutput"))
706
707 ; This object controls how the module reacts to different systems. MAME can play a lot of systems, but needs to know what system you want to run, so this module has to adapt.
708 mTypeVar := "
709 ( LTrim
710 Aamber Pegasus|pegasus
711 Acorn Electron|electron
712 Amstrad CPC|cpc664
713 Amstrad GX4000|gx4000
714 APF Imagination Machine|apfimag
715 Apple II|apple2ep
716 Apple IIGS|apple2gs
717 Applied Technology MicroBee|mbeeic
718 Atari 8-Bit|a800
719 Atari 2600|a2600
720 Atari 5200|a5200
721 Atari 7800|a7800
722 Atari Jaguar|jaguar
723 Atari Lynx|lynx
724 Bally Astrocade|astrocde
725 Bandai Super Vision 8000|sv8000
726 Bandai WonderSwan|wswan
727 Bandai WonderSwan Color|wscolor
728 Bit Corporation Gamate|gamate
729 Camputers Lynx|lynx128k
730 Casio PV-1000|pv1000
731 Casio PV-2000|pv2000
732 Coleco ADAM|adam
733 ColecoVision|coleco
734 Commodore 64|c64
735 Commodore MAX Machine|vic10
736 Creatronic Mega Duck|megaduck
737 EACA EG2000 Colour Genie|cgenie
738 Emerson Arcadia 2001|arcadia
739 Entex Adventure Vision|advision
740 Epoch Game Pocket Computer|gamepock
741 Epoch Super Cassette Vision|scv
742 Exidy Sorcerer|sorcerer
743 Fairchild Channel F|channelf
744 Fujitsu FM-7|fmnew7
745 Funtech Super Acan|supracan
746 GamePark 32|gp32
747 GCE Vectrex|vectrex
748 Hartung Game Master|gmaster
749 Interton VC 4000|vc4000
750 JungleTac Sport Vii|vii
751 Jupiter Ace|jupace
752 Magnavox Odyssey 2|odyssey2
753 Matra & Hachette Alice|alice32
754 Mattel Aquarius|aquarius
755 Mattel Intellivision|intv
756 MGT Sam Coupe|samcoupe
757 Milton Bradley MicroVision|microvsn
758 NEC PC-8801|pc8801
759 NEC PC Engine|pce
760 NEC PC Engine-CD|pce
761 NEC SuperGrafx|sgx
762 NEC TurboGrafx-16|tg16
763 NEC TurboGrafx-CD|tg16
764 Nintendo 64|n64
765 Nintendo 64DD|n64dd
766 Nintendo Entertainment System|nes
767 Nintendo Famicom|famicom
768 Nintendo Famicom Disk System|fds
769 Nintendo Game Boy|gameboy
770 Nintendo Game Boy Advance|gba
771 Nintendo Game Boy Color|gbcolor
772 Nintendo Pokemon Mini|pokemini
773 Nintendo Satellaview|snes
774 Nintendo Super Famicom|snes
775 Nintendo Super Game Boy|supergb
776 Nintendo Virtual Boy|vboy
777 Othello Multivision|omv1000
778 Philips CD-i|cdimono1
779 Philips Videopac Plus G7400|g7400
780 Philips VG 5000|vg5k
781 RCA Studio II|studio2
782 Sega 32X|32x
783 Sega CD|segacd
784 Sega Game Gear|gamegear
785 Sega Genesis|genesis
786 Sega Master System|sms
787 Sega Mega Drive|megadriv
788 Sega Pico|pico
789 Sega Saturn|saturn
790 Sega SC-3000|sc3000
791 Sega SG-1000|sg1000
792 Sega VMU|svmu
793 Sharp X1|x1turbo40
794 Sinclair ZX81|zx81
795 SNK Neo Geo AES|aes
796 SNK Neo Geo CD|neocdz
797 SNK Neo Geo Pocket|ngp
798 SNK Neo Geo Pocket Color|ngpc
799 Sony PlayStation|psx
800 Sony PocketStation|pockstat
801 Sord M5|m5
802 Soundic Victory MPT-02|mpt02
803 Super Nintendo Entertainment System|snes
804 Tandy TRS-80 Color Computer|coco3
805 Texas Instruments TI 99-4A|ti99_4a
806 Tiger Game.com|gamecom
807 Tomy Tutor|tutor
808 VTech CreatiVision|crvision
809 Watara Supervision|svision
810 )"
811 mType := Object()
812 Loop, Parse, mTypeVar, `n, `r
813 {
814 obj := {}
815 Loop, Parse, A_LoopField, |
816 If (A_Index = 1)
817 obj.System := A_LoopField
818 Else ; 2
819 obj.mameID := A_LoopField
820 mType.Insert(obj["System"], obj)
821 }
822 RLLog.Debug("Module - Finished building the " . MEmu . " object")
823 ; For easier use throughout the module
824 mameSystem := mType[systemName].System
825 mameID := mType[systemName].mameID
826
827 If !mameSystem {
828 RLLog.Warning("Module - """ . systemName . """ is not a known console or computer system. Defaulting to MAME's Arcade mode for the remainder of this " . MEmu . " module.")
829 mameSystem := systemName
830 mameID := "MAME"
831 }
832
833 Fullscreen := moduleIni.Read("Settings", "Fullscreen","true","",1) ; Set fullscreen mode
834 legacyMode := moduleIni.Read(romName . "|" . mameSystem . "|Settings", "LegacyMode","false","",1)
835 mameBiosPath := moduleIni.Read("Settings", "MAME_BIOS_Path", emuPath . "\roms","",1)
836 Videomode := moduleIni.Read("Settings", "Videomode","d3d","",1) ; Choices are gdi,ddraw,d3d. If left blank, MAME uses d3d by default
837 pauseMethod := moduleIni.Read("Settings", "PauseMethod",1,"",1) ; set the pause method that works better on your machine (preferred methods 1 and 2) 1 = Win7 and Win8 OK - Problems with Win XP, 2 = preferred method for WinXP - Problems in Win7, 3 and 4 = same as 1 and 2, 5 = only use If you have a direct input version of mame, 6 = suspend mame process method, it could crash mame in some computers
838 bilinearFilter := moduleIni.Read(mameSystem . "|Settings", "BilinearFilter","false","",1)
839 hlsl := moduleIni.Read(romName . "|" . mameSystem . "|Settings", "HLSL","false","",1)
840 glsl := moduleIni.Read(romName . "|" . mameSystem . "|Settings", "GLSL","false","",1)
841 bezelMode := moduleIni.Read(romName . "|" . mameSystem . "|Settings", "BezelMode","layout","",1) ; "layout" or "normal"
842 verticalRotationMode := moduleIni.Read(romName . "|" . mameSystem . "|Settings", "VerticalRotationMode","none","",1)
843 cheatMode := moduleIni.Read("Settings", "CheatMode","false","",1)
844 cheatModeKey := moduleIni.Read("Settings", "CheatModeKey","","",1) ; user defined key to be held down before launching a mame rom.
845 UseSoftwareList := moduleIni.Read(romName . "|" . mameSystem, "UseSoftwareList","false","",1)
846 sysStaticParams := moduleIni.Read(mameSystem, "StaticParameters", "","",1)
847 sysParams := moduleIni.Read(mameSystem, "Parameters", "","",1)
848 romParams := moduleIni.Read(romName, "Parameters", sysParams,"",1)
849 mameRomName := moduleIni.Read(romName, "MameRomName", "","",1)
850 autosave := moduleIni.Read(romName . "|" . mameSystem, "Autosave", "false","",1)
851 volume := moduleIni.Read(romName . "|" . mameSystem . "|Settings", "Volume","","",1)
852 Artwork_Crop := moduleIni.Read(romName . "|" . mameSystem, "Artwork_Crop", "true","",1)
853 Use_Bezels := moduleIni.Read(romName . "|" . mameSystem, "Use_Bezels", "false","",1)
854 Use_Overlays := moduleIni.Read(romName . "|" . mameSystem, "Use_Overlays", "true","",1)
855 Use_Backdrops := moduleIni.Read(romName . "|" . mameSystem, "Use_Backdrops", "true","",1)
856 Use_Cpanels := moduleIni.Read(romName . "|" . mameSystem, "Use_Cpanels", "false","",1)
857 Use_Marquees := moduleIni.Read(romName . "|" . mameSystem, "Use_Marquees", "false","",1)
858 inipath := moduleIni.Read(mameSystem, "IniPath", "","",1)
859 hashpath := moduleIni.Read(mameSystem, "HashPath", "","",1)
860 UseControllerRemap := moduleIni.Read(mameSystem . "|Settings", "UseControllerRemap", "true","",1)
861 ControllerRemapPath := moduleIni.Read(mameSystem . "|Settings", "ControllerRemapPath", emuPath . "\ControllerRemap\ControllerRemap.exe","",1)
862 CtrlRemapFile := new File(ControllerRemapPath)
863 ControllerRemapConfigPath := moduleIni.Read( mameSystem . "|Settings", "ControllerRemapConfigPath", CtrlRemapFile.FilePath . "\ctrlr\","",1)
864 MAMECtrlrPath := moduleIni.Read(mameSystem . "|Settings", "MAMECtrlrPath", emuPath . "\ctrlr","",1)
865
866 mameBiosPath := GetFullName(mameBiosPath)
867
868 ; Loop, 8
869 ; car%A_Index%Color := moduleIni.Read(romName, "Car_" . A_Index . "_Color","","",1)
870
871 enableLinkPlay := moduleIni.Read(romName . "|Link/Network", "Enable_Link_Play", "false","",1)
872 networkSession := ""
873 If (enableLinkPlay != "false") {
874 RLLog.Info("Module - Link/Network Multi-Player is an available option for " . romName)
875 getWANIP := moduleIni.Read("Link/Network", "Get_WAN_IP","false","",1)
876 myIP := If getWANIP = "true" ? GetPublicIP() : "127.0.0.1" ; use local ip by default if user does not want to get the WAN IP as MAME needs this for linked games
877 networkPlayers := enableLinkPlay ; Max amount of networkable players
878 localLink := 1 ; Tell Multiplayer menu to enable menu option for local linking
879
880 enableNVRAMAutomation := moduleIni.Read(romName . "|Link/Network", "Enable_NVRAM_Automation","true","",1)
881 maxPlayersPerMonitor := moduleIni.Read(romName . "|Link/Network", "Max_Players_Per_monitor","1|1|1|1|1|1|1|1","",1)
882 splitScreen2PlayersMode := moduleIni.Read(romName . "|Link/Network", "SplitScreen_2_Players","Horizontal","",1) ;horizontal or vertical
883 splitScreen3PlayersMode := moduleIni.Read(romName . "|Link/Network", "SplitScreen_3_Players","P1top","",1) ; For Player1 screen to be on left: P1left. For Player1 screen to be on top: P1top. For Player1 screen to be on bottom: P1bottom. For Player1 screen to be on right: P1right.
884 localPort := moduleIni.Read("Link/Network", "Local_Port","15111","",1)
885
886 defaultServerIP := moduleIni.Read("Link/Network", "Default_Server_IP", myIP,"",1)
887 defaultServerPort := moduleIni.Read("Link/Network", "Default_Server_Port","15111","",1)
888 lastIP := moduleIni.Read("Link/Network", "Last_IP", defaultServerIP,"",1) ; also known as the Remote IP in mame. Does not need to be on the ISD
889 lastPort := moduleIni.Read("Link/Network", "Last_Port", defaultServerPort,"",1) ; also known as the Remote Port in mame. Does not need to be on the ISD
890
891 MultiplayerMenu(lastIP, lastPort, networkType, networkPlayers,,,,,,localLink,"ipAndPort")
892
893 ;MultiPlayer Menu Result
894 ; If !(networkType)
895 ; MsgBox, % "Single Player Game"
896 ; Else If (networkType="localLink")
897 ; MsgBox, % "Local Link selected with the number of players equal to: " . networkPlayers
898 ; Else If (networkType="server")
899 ; MsgBox, % "WAN IP Address=" . networkIP . " | LAN IP Address=" . localIP[1,2] . " | Port=" . networkPort . " | networkPlayers=" . networkPlayers . " | networkRequiresSetup=" . networkRequiresSetup
900 ; Else If (networkType="client")
901 ; MsgBox, % "NetworkIP=" . networkIP . " | Port Number=" . networkPort . " | networkRequiresSetup=" . networkRequiresSetup
902
903 If networkSession {
904 RLLog.Info("Module - Using a Network for " . romName)
905 multiPlayerObj := Object() ; initialize object to store the multiplayer options
906 If (networkType="localLink") {
907 RLLog.Info("Module - Setting remote host to 127.0.0.1 to support local link mode as it is running on this PC.")
908 linkEnabledGame := 1
909 If networkPlayers > 1
910 { RLLog.Info("Module - Local link mode was selected and " . networkPlayers . " sessions will be launched.")
911 fullscreen := "false" ; must turn off fullscreen if running multiple MAMEs on the same machine
912 Loop % networkPlayers {
913 multiPlayerObj[A_Index,"Player"] := A_Index
914 multiPlayerObj[A_Index,"CfgDir"] := " -cfg_directory cfg" . (If A_Index = 1 ? "" : A_Index)
915 multiPlayerObj[A_Index,"NvramDir"] := " -nvram_directory nvram" . (If A_Index = 1 ? "" : A_Index)
916 If (A_Index = 1) { ; Player 1
917 initialLocalPort := localPort ; must be stored for last player
918 multiPlayerObj[A_Index,"LocalHost"] := " -comm_localhost 0.0.0.0"
919 multiPlayerObj[A_Index,"LocalPort"] := " -comm_localport " . localPort
920 localPort++
921 multiPlayerObj[A_Index,"RemotePort"] := " -comm_remoteport " . localPort
922 } Else { ; Players 2+
923 multiPlayerObj[A_Index,"LocalPort"] := " -comm_localport " . localPort
924 localPort++
925 multiPlayerObj[A_Index,"RemoteHost"] := " -comm_remotehost 127.0.0.1"
926 multiPlayerObj[A_Index,"RemotePort"] := " -comm_remoteport " . (If A_Index = networkPlayers ? initialLocalPort : localPort) ; must set remote port to first port on last player
927 }
928
929 ; msgbox % "Player: " . multiPlayerObj[A_Index]["Player"] . "`nLocalHost: " . multiPlayerObj[A_Index]["LocalHost"] . "`nLocalPort: " . multiPlayerObj[A_Index]["LocalPort"] . "`nRemoteHost: " . multiPlayerObj[A_Index]["RemoteHost"] . "`nRemotePort: " . multiPlayerObj[A_Index]["RemotePort"] . "`nCfgDir: " . multiPlayerObj[A_Index]["CfgDir"] . "`nNvramDir: " . multiPlayerObj[A_Index]["NvramDir"]
930 }
931 } Else
932 RLLog.Info("Module - Local link mode was selected but user only chose 1 player. Launch will be a normal session.")
933 } Else If (networkType = "client") {
934 RLLog.Info("Module - Remote host is running on another PC, module will use remote link mode.")
935 moduleIni.Write(networkIP,"GlobalModuleIni","Link/Network","Last_IP") ; Save last used IP and Port for quicker launching next time
936 moduleIni.Write(networkPort,"GlobalModuleIni","Link/Network","Last_Port")
937 linkType := "Slave"
938 networkPlayers := 1
939 multiPlayerObj[1,"Player"] := 1
940 multiPlayerObj[1,"CfgDir"] := " -cfg_directory cfg"
941 multiPlayerObj[1,"NvramDir"] := " -nvram_directory nvram"
942 multiPlayerObj[1,"LocalHost"] := " -comm_localhost 0.0.0.0" ; don't really need to set this but just in case
943 multiPlayerObj[1,"LocalPort"] := " -comm_localport " . localPort
944 multiPlayerObj[1,"RemoteHost"] := " -comm_remotehost " . networkIP
945 multiPlayerObj[1,"RemotePort"] := " -comm_remoteport " . networkPort
946 } Else { ; server
947 RLLog.Info("Module - This PC is acting as the host, telling mame to listen for incoming connections on port: " . localPort)
948 moduleIni.Write(networkIP,"GlobalModuleIni","Link/Network","Last_IP") ; Save last used IP and Port for quicker launching next time
949 moduleIni.Write(networkPort,"GlobalModuleIni","Link/Network","Last_Port")
950 linkType := "Master"
951 networkPlayers := 1
952 multiPlayerObj[1,"Player"] := 1
953 multiPlayerObj[1,"CfgDir"] := " -cfg_directory cfg"
954 multiPlayerObj[1,"NvramDir"] := " -nvram_directory nvram"
955 multiPlayerObj[1,"LocalHost"] := " -comm_localhost 0.0.0.0" ; don't really need to set this but just in case
956 multiPlayerObj[1,"LocalPort"] := " -comm_localport " . networkPort
957 multiPlayerObj[1,"RemoteHost"] := " -comm_remotehost " . networkIP
958 multiPlayerObj[1,"RemotePort"] := " -comm_remoteport " . networkPort
959 }
960 RLLog.Info("Module - Starting a network session using the IP """ . networkIP . """ and PORT """ . networkPort . """")
961 } Else {
962 RLLog.Info("Module - User chose Single Player mode for this session")
963 }
964 }
965
966 FadeInStart()
967
968 If inipath
969 inipath := AbsoluteFromRelative(EmuPath, inipath)
970 If hashpath
971 hashpath := AbsoluteFromRelative(EmuPath, hashpath)
972
973 artworkCrop := If (Artwork_Crop = "true") ? " -artwork_crop" : " -noartwork_crop"
974 useBezels := If (Use_Bezels = "true") ? " -use_bezels" : " -nouse_bezels"
975 useOverlays := If (Use_Overlays = "true") ? " -use_overlays" : " -nouse_overlays"
976 useBackdrops := If (Use_Backdrops = "true") ? " -use_backdrops" : " -nouse_backdrops"
977 useCpanels := If (Use_Cpanels = "true") ? " -use_cpanels" : " -nouse_cpanels"
978 useMarquees := If (Use_Marquees = "true") ? " -use_marquees" : " -nouse_marquees"
979 autosave := If autosave = "true" ? " -autosave" : ""
980 volume := If volume != "" ? " -volume " . volume : ""
981 inipath := If inipath != "" ? " -inipath """ . inipath . """" : ""
982 hashpath := If hashpath != "" ? " -hashpath """ . hashpath . """" : ""
983
984 If (verticalRotationMode = "none")
985 verticalRotationMode := ""
986
987 ; Process mame's ListXML for certain features
988 If (bezelEnabled = "true" || servoStikEnabled = "auto" || verticalRotationMode || UseControllerRemap = "true") {
989 ListXMLObject := Object()
990 ListXMLObject := ListXMLInfo(If mameRomName ? mameRomName : romName)
991
992 Angle := ListXMLObject["Angle"].Value
993 If (bezelEnabled = "true") {
994 If (networkPlayers > 1) {
995 useBezels := " -nouse_bezels" ; force disabling MAME built-in bezels
996 BezelStart(networkPlayers)
997 } Else {
998 If (bezelMode = "layout"){
999 BezelStart("layout",ListXMLObject["Parent"].Value,Angle,romName)
1000 } Else { ;bezel mode = normal
1001 useBezels := " -nouse_bezels" ; force disabling MAME built-in bezels
1002 BezelStart(,,Angle)
1003 }
1004 }
1005 }
1006 If (servoStikEnabled = "auto") {
1007 ServoStik(If ListXMLObject["Ways"].Value <= 4 ? 4 : 8) ; If "ways" in the xml is set to 4 or less, the servo will go into 4-way mode, else 8-way mode will be enabled
1008 }
1009 If (verticalRotationMode && Angle) {
1010 RLLog.Info("Setting rotation mode to " . verticalRotationMode . " - Game's angle is " . Angle)
1011 If (verticalRotationMode = "original")
1012 verticalRotationMode := " -norotate"
1013 Else If (verticalRotationMode = "right")
1014 verticalRotationMode := " -ror"
1015 Else If (verticalRotationMode = "left")
1016 verticalRotationMode := " -rol"
1017 Else
1018 verticalRotationMode := ""
1019 }
1020 Else
1021 verticalRotationMode := ""
1022
1023 ;Controller Remap
1024 If (UseControllerRemap = "true") {
1025 RLLog.Info("Controller Remap: Start")
1026 romProfileName := (mameRomName ? mameRomName : romName)
1027 romParentName := ListXMLObject["Parent"].Value
1028
1029 If ControllerRemapPath
1030 ControllerRemapPath := AbsoluteFromRelative("", ControllerRemapPath)
1031 If ControllerRemapConfigPath
1032 ControllerRemapConfigPath := AbsoluteFromRelative("", ControllerRemapConfigPath)
1033 If MAMECtrlrPath
1034 MAMECtrlrPath := AbsoluteFromRelative(emuPath, MAMECtrlrPath)
1035
1036 ctrlrPath := ""
1037 RLLog.Info("Controller Remap: ControllerRemapConfigPath: " . ControllerRemapConfigPath)
1038
1039 ;~ ;1- Check for Rom. 2- Check for Rom Parent. 3- Check for System default
1040 If (FileExist(ControllerRemapConfigPath . "\" . systemName . "\" . romProfileName . ".cfg")) {
1041 RLLog.Info("Controller Remap: Rom Config File Found: " . ControllerRemapConfigPath . "\" . systemName . "\" . romProfileName . ".cfg")
1042 ctrlrPath := new File(ControllerRemapConfigPath . "\" . systemName . "\" . romProfileName . ".cfg")
1043 }
1044 else if (romParentName and FileExist(ControllerRemapConfigPath . "\" . systemName . "\" . romParentName . ".cfg")) {
1045 RLLog.Info("Controller Remap: Parent Rom Config File Found: " . ControllerRemapConfigPath . "\" . systemName . "\" . romParentName . ".cfg")
1046 ctrlrPath := new File(ControllerRemapConfigPath . "\" . systemName . "\" . romParentName . ".cfg")
1047 }
1048 else If (FileExist(ControllerRemapConfigPath . "\" . systemName . "\_Default.cfg")) {
1049 RLLog.Info("Controller Remap: System Config File Found: " . ControllerRemapConfigPath . "\" . systemName . "\_Default.cfg")
1050 ctrlrPath := new File(ControllerRemapConfigPath . "\" . systemName . "\_Default.cfg")
1051 }
1052 else If (FileExist(ControllerRemapConfigPath . "\_Default.cfg")) {
1053 RLLog.Info("Controller Remap: Global Config File Found: " . ControllerRemapConfigPath . "\_Default.cfg")
1054 ctrlrPath := new File(ControllerRemapConfigPath . "\_Default.cfg")
1055 }
1056
1057 ; Is there a controller file?
1058 if (ctrlrPath) {
1059 ctrlrFile := " -ctrlr RocketLauncher"
1060
1061 ;Replace <system name="default"> with the Right mameID in the RocketLauncher.cfg file
1062 if(mameID != "MAME") {
1063 ctrlrPath.Read()
1064 rocketLauncherCfgFile := new File(MAMECtrlrPath . "\RocketLauncher.cfg")
1065 rocketLauncherCfgFile.Delete()
1066 rocketLauncherCfgFile.Append(StringUtils.Replace(ctrlrPath.Text, "<system name=""default"">", "<system name=""" . mameID . """>"))
1067 }
1068 else {
1069 ctrlrPath.Copy(MAMECtrlrPath . "\RocketLauncher.cfg",1)
1070 }
1071
1072 RLLog.Info("Controller Remap: Running """ . ControllerRemapPath . """ /remap:""" . MAMECtrlrPath . "\RocketLauncher.cfg""")
1073 ControllerRemapProcess := new Process(ControllerRemapPath)
1074 ControllerRemapProcess.Run(" /remap:""" . MAMECtrlrPath . "\RocketLauncher.cfg""","Hide")
1075 }
1076 else {
1077 RLLog.Info("Controller Remap: No Controller config file found.")
1078 }
1079 RLLog.Info("Controller Remap: End")
1080 }
1081 }
1082
1083 winstate := If (Fullscreen = "true") ? "Hide UseErrorLevel" : "UseErrorLevel"
1084 fullscreenParam := If (Fullscreen = "true") ? " -nowindow" : " -window"
1085
1086 hideEmuObj := Object(emuOpenWindow,0,emuDebugWindow,0,emuOutputWindow,0,emuPrimaryWindow,1)
1087 7z(romPath, romName, romExtension, sevenZExtractPath)
1088
1089 ; Get MAME version from executable, this is needed since some CLI switches are not available in older MAME versions
1090 exeAtrib := FileGetVersionInfo_AW(emuPath . "\" . executable, "FileVersion|ProductVersion", "|")
1091 Loop, Parse, exeAtrib, |%A_Tab%, %A_Space%
1092 A_Index & 1 ? ( _ := A_LoopField ) : ( %_% := A_LoopField )
1093 If ProductVersion
1094 MAMEVersion := StringUtils.Right(ProductVersion, StringUtils.StringLength(ProductVersion) - 2)
1095 RLLog.Info("Module - Detected MAME Product Version from '" . EmuPath . "\" . executable . "' is " . MAMEVersion)
1096
1097 If (videomode = "opengl") {
1098 hlsl := " -nohlsl_enable"
1099 If (MAMEVersion > 159)
1100 glsl := If glsl = "true" ? " -gl_glsl" : (If glsl = "ini" ? "" : " -nogl_glsl")
1101 Else
1102 glsl := ""
1103 } Else {
1104 hlsl := If hlsl = "true" ? " -hlsl_enable" : (If hlsl = "ini" ? "" : " -nohlsl_enable")
1105 If (MAMEVersion > 159)
1106 glsl := If videomode = "ini" ? "" : " -nogl_glsl"
1107 Else
1108 glsl := ""
1109
1110 If (videomode = "ini")
1111 videomode := ""
1112 }
1113 videomode := If (Videomode != "" ) ? " -video " . videomode : ""
1114
1115 param1 := " -cart """ . romPath . "\" . romName . romExtension . """" ; default param1 used for launching most systems.
1116 If (romExtension = ".txt") ; This can be applied to all systems
1117 param1 := ""
1118
1119 If (mameID = "apfimag") ; APF Imagination Machine
1120 If (romExtension != ".tap")
1121 mameID := "apfm1000" ; cart games for APF Imagination Machine require a different bios to be loaded
1122
1123 If (UseSoftwareList != "true")
1124 { ; Now that we know the system we are loading, determine if we use an ini assocated with that system for custom game configs a user might need. Then load the configs associated to that game.
1125 If StringUtils.Contains(mameID,"ti99_4a|aes|apple2gs|electron|mbeeic|odyssey2|astrocde|samcoupe|vic10|cpc664") ; these systems will use an ini to store game specific settings
1126 {
1127 If !SystemModuleIni.Exist()
1128 SystemModuleIni.Append() ; create a blank file if it does not exist
1129
1130 If (mameID = "ti99_4a") ; Texas Instruments TI 99-4A
1131 {
1132 ExpansionCartLocation := moduleIni.Read("Settings", "ExpansionCartLocation", romPathOrig . "\System","",1)
1133 ExpansionCartLocation := GetFullName(ExpansionCartLocation)
1134 CommandWaitOffset := moduleIni.Read("Settings", "CommandWaitOffset", 0,"",1)
1135
1136 ExpansionCart := moduleIni.Read(romName, "Expansion_Cart","extended_basic.rpk","",1) ; user can specify a rom specific cart instead of the default basic one
1137 Command := moduleIni.Read(romName, "Command", "","",1)
1138
1139 ; Now set the parameters to send to MAME
1140 If (romExtension = ".dsk") ; Expansion Disk
1141 {
1142 ; If using the mainCart , send expansionLocation to MAME. This will require DirectInput to be enabled on the MAME build! Else we are loading a Disk game
1143 param1 := " -nat -gromport single -cart1"
1144 param2 := " """ . ExpansionCartLocation . "\" . ExpansionCart . """"
1145 param3 := " -peb:slot2 32kmem -peb:slot3 speech -peb:slot6 tirs232 -peb:slot8 hfdc"
1146 param4 := " -flop1"
1147 param5 := " """ . romPath . "\" . romName . romExtension . """"
1148 If StringUtils.Contains(romName, "\(Disk")
1149 {
1150 TimerUtils.Sleep(50)
1151 If (romTable.MaxIndex() = 2)
1152 {
1153 param4 := " -flop1 " . " """ . romTable[1,1] . """"
1154 param5 := " -flop2 " . " """ . romTable[2,1] . """"
1155 }
1156 }
1157 } Else If (romExtension = ".rpk") ; Cart Game (RPK Format)
1158 param1 := " -nat -gromport single -cart1", param2:=" """ . romPath . "\" . romName . romExtension . """", param3:=" -peb:slot3 speech" ;-cart will also work here
1159 param6 := " -ui_active" ;Enable partial keyboard mode at startup
1160 } Else If (mameID = "aes") ; SNK Neo Geo AES
1161 { biosRegion := moduleIni.Read(romName, "BIOS_Region","asia","",1)
1162 param1 := " -bios " . biosRegion ; can also be japan, but the asian one has english menus for most games
1163 param2 := " -cart " . romName
1164 }Else If (mameID = "apple2gs") ; Apple IIGS
1165 { externalOS := moduleIni.Read(romName, "External_OS","false","",1)
1166 2gsSystemFile := "System6.2mg" ;For games without OS included, always force this name and error out if not found
1167 multipartTable := CreateRomTable(multipartTable)
1168
1169 If (externalOS = "true")
1170 { CheckFile(romPath . "\" . 2gsSystemFile)
1171 param1 := " -flop3", param2:=" """ . romPath . "\" . 2gsSystemFile . """", param3:=" -flop4", param4:=" """ . romPath . "\" . romName . romExtension . """"
1172 } Else {
1173 param1 := " -flop3", param2:=" """ . romPath . "\" . romName . romExtension . """"
1174 If (multipartTable.MaxIndex() > 1)
1175 param3 := " -flop4", param4 := " """ . multipartTable[2,1] . """"
1176 }
1177 param5 := " -ui_active" ;Enable partial keyboard mode at startup
1178 }Else If (mameID = "electron") ; Acorn Electron
1179 { AutoBootDelay := moduleIni.Read("Settings", "AutoBootDelay","2","",1) ; Read delay from config.
1180 AutoBootDelay := " -autoboot_delay " . AutoBootDelay
1181 If (romExtension = ".bin")
1182 mediaDeviceType := "cart"
1183 Else ; any other format
1184 mediaDeviceType := "cass"
1185 param1 := " -" . mediaDeviceType . " """ . romPath . "\" . romName . romExtension . """ -autoboot_command ""chain""""""""""""\n""" . AutoBootDelay . ""
1186 }Else If (mameID = "sc3000") ; Sega SC-3000
1187 { AutoBootDelay := moduleIni.Read("Settings", "AutoBootDelay","2","",1) ; Read delay from config.
1188 AutoBootDelay := " -autoboot_delay " . AutoBootDelay
1189 If StringUtils.Contains(romExtension,"\.bin|\.sg\|.sc")
1190 mediaDeviceType := "cart"
1191 Else ; any other format
1192 mediaDeviceType := "cass"
1193 param1 := " -" . mediaDeviceType . " """ . romPath . "\" . romName . romExtension . """ -autoboot_command ""chain""""""""""""\n""" . AutoBootDelay . ""
1194 }Else If (mameID = "c64") ; Commodore 64
1195 { AutoBootDelay := moduleIni.Read("Settings", "AutoBootDelay","2","",1) ; Read delay from config.
1196 AutoBootDelay := " -autoboot_delay " . AutoBootDelay
1197 If StringUtils.Contains(romExtension,"\.d64|\.g64|\.g41|\.d77|\.d88|\.1dd|\.dfi|\.imd|\.ipf|\.mfi|\.mfm|\.td0|\.cqm|\.cqi|\.dsk")
1198 mediaDeviceType := "flop1"
1199 Else If StringUtils.Contains(romExtension,"\.wav|\.tap")
1200 mediaDeviceType := "cass1"
1201 Else If StringUtils.Contains(romExtension,"\.80|\.a0|\.e0|\.crt")
1202 mediaDeviceType := "cart1"
1203 Else If StringUtils.Contains(romExtension,"\.p00|\.prg|\.t64")
1204 mediaDeviceType := "quik1"
1205 param1 := " -" . mediaDeviceType . " """ . romPath . "\" . romName . romExtension . """ -autoboot_command ""chain""""""""""""\n""" . AutoBootDelay . ""
1206 }Else If mameID = mbeeic ; Applied Technology MicroBee
1207 { microbeeModel := moduleIni.Read(romName, "MicroBee_Model","mbeeic","",1)
1208 If !StringUtils.Contains(microbeeModel,"mbee|mbeeic|mbeepc|mbeepc85|mbee56")
1209 ScriptError("This is not a known MicroBee model value: " . microbeeModel)
1210 Else If (microbeeModel != "mbeeic")
1211 mameID := microbeeModel
1212 If StringUtils.Contains(romExtension,"\.mwb|\.com|\.bee")
1213 mediaDeviceType := "quik1"
1214 Else If StringUtils.Contains(romExtension,"\.wav|\.tap")
1215 mediaDeviceType := "cass"
1216 Else If StringUtils.Contains(romExtension,"\.rom")
1217 mediaDeviceType := "cart"
1218 Else If StringUtils.Contains(romExtension,"\.dsk")
1219 mediaDeviceType := "flop1"
1220 Else ; .bin format
1221 mediaDeviceType := "quik2"
1222 param1 := " -" . mediaDeviceType . " """ . romPath . "\" . romName . romExtension . """"
1223 }Else If (mameID = "odyssey2") ; Magnavox Odyssey 2
1224 { param2 := " -ui_active" ;Enable partial keyboard mode at startup
1225 If romName not contains (USA
1226 mameID := "videopac"
1227 }Else If (mameID = "astrocde") ; Bally Astrocade
1228 {
1229 BlueRAMBasicRom := moduleIni.Read("Settings", "BlueRAMBasicRom","Blue RAM Basic v1.1 (USA).bin","",1) ; Blue RAM Basic rom
1230 RequiresReset := moduleIni.Read(romname, "RequiresReset","false","",1) ; Check if game requires a reset
1231
1232 BlueRAMBasicRomPath := new File(romPath . "\" . BlueRAMBasicRom)
1233 If (romExtension = ".script") {
1234 ; Will require blue ram basic
1235 If !BlueRAMBasicRomPath.Exist() {
1236 ; Blue RAM Basic games might be in their own sub-folders since they have several files, so let's try to find the Blue RAM cart in the parent folder as well
1237 StringUtils.SplitPath(romPath,"",romBasePath) ; grab path one level up
1238 BlueRAMBasicRomPath.__Delete()
1239 BlueRAMBasicRomPath := new File(romBasePath . "\" . BlueRAMBasicRom)
1240 BlueRAMBasicRomPath.CheckFile("Couldn't find " . BlueRAMBasicRom . " on any of these paths:" . romBasePath . "|" . romPath)
1241 }
1242
1243 ScriptFile := new File(romPath . "\" . romName . romExtension)
1244 param1 := " -cart """ . BlueRAMBasicRomPath.FileFullPath . """"
1245
1246 ; Replace rompath variable in script
1247 ScriptFile.Read()
1248 ScriptFile.Text := StringUtils.Replace(ScriptFile.Text, "{romPath}", romPath, "all")
1249
1250 ; Create cmd file to send to MESS
1251 RomCMDFile := new File(romPath . "\" . romName . ".cmd")
1252 RomCMDFile.Delete()
1253 RomCMDFile.Append(ScriptFile.Text)
1254 param2 := " -exp blue_ram_16k -debug -debugscript """ . RomCMDFile.FileFullPath . """"
1255
1256 closeDebugWindow := "true"
1257 }
1258 }Else If (mameID = "samcoupe") ; MGT Sam Coupe
1259 { AutoBootDelay := moduleIni.Read("Settings", "AutoBootDelay","2","",1) ; Read delay from config.
1260 AutoBootDelay := " -autoboot_delay " . AutoBootDelay
1261
1262 If StringUtils.Contains(romExtension,"\.mgt|\.dsk|\.d77|\.d88|\.1dd|\.dfi|\.imd|\.ipf|\.mfi|\.mfm|\.td0|\.cqm|\.cqi")
1263 mediaDeviceType := "flop1"
1264 param1 := " -" . mediaDeviceType . " """ . romPath . "\" . romName . romExtension . """ -autoboot_command ""\nBOOT\n""" . AutoBootDelay . ""
1265 }Else If (mameID = "vic10") ; Commodore MAX Machine
1266 { AutoBootDelay := moduleIni.Read("Settings", "AutoBootDelay","2","",1) ; Read delay from config.
1267 AutoBootDelay := " -autoboot_delay " . AutoBootDelay
1268
1269 If StringUtils.Contains(romExtension,"\.e0|\.80")
1270 param1 := " -cart """ . romPath . "\" . romName . romExtension . """"
1271 Else If StringUtils.Contains(romExtension,"\.wav|\.tap")
1272 param1 := " -cass """ . romPath . "\" . romName . romExtension . """"
1273 Else If StringUtils.Contains(romExtension,"\.t64|\.prg|\.p00")
1274 {
1275 mediaDeviceType := "quik"
1276 param1 := " -" . mediaDeviceType . " """ . romPath . "\" . romName . romExtension . """ -autoboot_command ""RUN""" . AutoBootDelay . ""
1277 }
1278 }Else If (mameID = "cpc664") ; Amstrad CPC
1279 { LaunchProgram := moduleIni.Read(romName, "LaunchProgram","disk","",1) ; Read command from config.
1280 LaunchProgram := " -autoboot_command " . """RUN \""" . LaunchProgram . "\n"""
1281 AutoBootDelay := moduleIni.Read("Settings", "AutoBootDelay","2","",1) ; Read delay from config.
1282 AutoBootDelay := " -autoboot_delay " . AutoBootDelay
1283
1284 If StringUtils.Contains(romExtension,"\.d77|\.d88|\.1dd|\.dfi|\.imd|\.ipf|\.mfi|\.mfm|\.td0|\.cqm|\.cqi|\.dsk")
1285 mediaDeviceType := "flop1"
1286 param1 := " -" . mediaDeviceType . " """ . romPath . "\" . romName . romExtension . """" . LaunchProgram . AutoBootDelay
1287 }
1288
1289 ;Use a different bios if needed (This must be done after the above if conditions since the mameID will change)
1290 iniBios := moduleIni.Read(romName, "Bios",mameID,"",1) ; for all games, we use the default bios. Some games might require different bios like Odyssey2's Jopac games use the videopac bios instead, which should be defined in the ini
1291 If (iniBios != "")
1292 mameID := iniBios ; need to change the bios name for some games
1293 }
1294
1295 ; These systems don't use an ini, but do require parameters to be changed from the default method of launching MAME
1296 If (mameID = "neocdz" || mameID = "cdimono1" || mameID = "segacd" || mameID = "saturn" || mameID = "psx" || (mameID = "tg16" && mameSystem = "NEC TurboGrafx-CD") || (mameID = "pce" && mameSystem = "NEC PC Engine-CD")) ; SNK Neo Geo CD, Philips CD-i, Sega CD, Sega Saturn, Sony PlayStation, NEC PC Engine-CD or NEC TurboGrafx-CD
1297 { If !StringUtils.Contains(romExtension,"\.chd|\.cue")
1298 ScriptError("MAME only supports " . mameSystem . " games in chd and cue format. It does not support:`n" . romExtension)
1299 If (mameSystem = "NEC TurboGrafx-CD") { ; NEC TurboGrafx-CD needs an additional bios mounted as a cart to run
1300 ; tgcdBios := CheckFile(emuPath . "\roms\CD-ROM System V2.01 (U).pce") ; older bios that doesn't seem to work with many games
1301 tgcdBios := CheckFile(emuPath . "\roms\Super CD-ROM2 System V3.01 (U).pce")
1302 param2 := " -cart " . """" . tgcdBios . """"
1303 } Else If (mameSystem = "NEC PC Engine-CD") { ; NEC PC Engine-CD needs an additional bios mounted as a cart to run
1304 pcecdBios := CheckFile(emuPath . "\roms\Super CD-ROM2 System V3.0 (J).pce")
1305 param2 := " -cart " . """" . pcecdBios . """"
1306 } Else If (mameID = "psx") { ; Sony PlayStation
1307 mameID := "psu" ; changing mameID sent to MAME to use the USA bios
1308 ; SelectMemCard() ; future function to swap around memcards
1309 ; Usage: mc1 "J:\MAME\software\psu\card1.mc"
1310 } If (mameSystem = "Sega CD") { ;
1311 If StringUtils.InStr(romName,"(Jap") ; Mega CD Japanese v2
1312 mameID := "megacd2j"
1313 Else If StringUtils.InStr(romName,"(Euro") ; Mega CD European (PAL)
1314 mameID := "megacd"
1315 }
1316 param1 := " -cdrm """ . romPath . "\" . romName . romExtension . """"
1317 }Else If (mameID = "gamecom") ; Tiger Game.com
1318 { If (romExtension != ".txt")
1319 param1 := " -cart1 """ . romPath . "\" . romName . romExtension . """"
1320 }Else If (mameID = "genesis") ; Sega Genesis
1321 { If (StringUtils.InStr(romName, "(Europe") || StringUtils.InStr(romName, "(PAL")) ; if rom is from europe, tell MAME to boot a Mega Drive instead
1322 mameID := "megadriv"
1323 }Else If (mameID = "megadriv") ; Sega Mega Drive
1324 { If (StringUtils.InStr(romName, "(USA") || StringUtils.InStr(romName, "(NTSC")) ; if rom is from America, tell MAME to boot a Genesis instead
1325 mameID := "genesis"
1326 }Else If (mameID = "vii") ; JungleTac Sport Vii
1327 { If (romName = "Built-In Games (China)") ; Has some built-in games, gotta launch just BIOS for it.
1328 param1 := ""
1329 }Else If (mameID = "alice32") ; Matra & Hachette Alice
1330 { If (romExtension != ".txt")
1331 param1 := " -cass1 """ . romPath . "\" . romName . romExtension . """"
1332 }Else If (mameID = "cgenie") ; EACA EG2000 Colour Genie
1333 { If (romExtension != ".txt")
1334 param1 := " -cass1 """ . romPath . "\" . romName . romExtension . """"
1335 }Else If (mameID = "pockstat") ; Sony PocketStation
1336 { If (romExtension != ".gme")
1337 param1 := " -cart1 """ . romPath . "\" . romName . romExtension . """"
1338 }Else If (mameID = "coco3") ; Tandy TRS-80 Color Computer
1339 { If (romExtension != ".txt")
1340 param1 := " -cart """ . romPath . "\" . romName . romExtension . """"
1341 }Else If (mameID = "zx81") ; Sinclair ZX81
1342 { If (romExtension != ".txt")
1343 param1 := " -cass1 """ . romPath . "\" . romName . romExtension . """"
1344 }Else If (mameID = "lynx128k") ; Camputers Lynx
1345 { If (romExtension != ".txt")
1346 param1 := " -cass1 """ . romPath . "\" . romName . romExtension . """"
1347 }Else If (mameID = "vg5k") ; Philips VG 5000
1348 { If (romExtension != ".txt")
1349 param1 := " -cass1 """ . romPath . "\" . romName . romExtension . """"
1350 }Else If (mameID = "sorcerer") ; Exidy Sorcerer
1351 { If (romExtension = ".snp") ; Snapshot file
1352 param1 := " -dump """ . romPath . "\" . romName . romExtension . """"
1353 Else If (romExtension = ".bin")
1354 param1 := " -quik """ . romPath . "\" . romName . romExtension . """"
1355 }Else If (messID = "jupace") ; jupiter ace
1356 { If (romExtension = ".ace")
1357 param1 := " -dump """ . romPath . "\" . romName . romExtension . """"
1358 }Else If (mameID = "a800" || mameID = "fds") ; Atari 8-Bit, Nintendo Famicom Disk System
1359 { If (romExtension != ".txt")
1360 param1 := " -flop1 """ . romPath . "\" . romName . romExtension . """"
1361 }Else If (mameID = "vectrex") ; GCE Vectrex
1362 { If (romName = "Mine Storm (World)") ; MAME dumps an error if you try to launch Mine Storm using a rom instead of just booting vectrex w/o a game in it (Mine Storm is built into vectrex)
1363 param1 := ""
1364 }Else If (mameID = "apfm1000") ; APF Imagination Machine/APF M1000
1365 { If (romName = "Rocket Patrol (USA)") ; Rocket Patrol is built into the APF M1000 ROM.
1366 param1 := ""
1367 }Else If (mameID = "adam") ; Coleco ADAM
1368 param1 := (If romExtension = ".ddp" ? " -cass1" : (If romExtension = ".dsk" ? " -flop1" : " -cart1")) . " """ . romPath . "\" . romName . romExtension . """" ; Decide if tape, disk, or cart game
1369 Else If (mameID = "pegasus") ; Aamber Pegasus
1370 { If (romExtension != ".txt")
1371 param1 := " -cart1 """ . romPath . "\" . romName . romExtension . """"
1372 }Else If (mameID = "gp32") ; GamePark 32
1373 { If (romExtension != ".txt")
1374 param1 := " -memc """ . romPath . "\" . romName . romExtension . """"
1375 }Else If (mameID = "svmu") ; Sega VMU
1376 {
1377 param1 := " -quik """ . romPath . "\" . romName . romExtension . """"
1378 }Else If (mameID = "x1turbo40") ; Sharp X1
1379 { If StringUtils.Contains(romExtension,"\.bin|\.rom")
1380 param1 := " -cart """ . romPath . "\" . romName . romExtension . """"
1381 Else If StringUtils.Contains(romExtension,"\.wav|\.tap")
1382 param1 := " -cass """ . romPath . "\" . romName . romExtension . """"
1383 Else
1384 param1 := " -flop1 """ . romPath . "\" . romName . romExtension . """"
1385 }Else If (mameID = "pc8801") ; NEC PC-8801
1386 { If (romExtension = ".d88")
1387 param1 := " -flop1 """ . romPath . "\" . romName . romExtension . """"
1388 }Else If (mameID = "fmnew7") ; Fujitsu FM-7
1389 { If StringUtils.Contains(romExtension,"\.fdi|\.td0|\.imd|\.cqm|\.dsk|\.d77|\.d88|\.1dd")
1390 param1 := " -flop1 """ . romPath . "\" . romName . romExtension . """"
1391 Else If StringUtils.Contains(romExtension,"\.wav|\.t77")
1392 param1 := " -cass """ . romPath . "\" . romName . romExtension . """"
1393 }Else If (mameID = "apple2ep") ; Apple II
1394 { If StringUtils.Contains(romExtension,"\.dsk|\.do|\.po|\.rti|\.edd|\.d77|\.d88|\.1dd|\.dfi|\.imd|\.i pf|\.mfi|\.mfm|\.td0|\.cqm|\.cqi")
1395 param1 := " -flop1 """ . romPath . "\" . romName . romExtension . """"
1396 Else If StringUtils.Contains(romExtension,"\.wav")
1397 param1 := " -cass """ . romPath . "\" . romName . romExtension . """"
1398 }Else If (mameID = "n64dd") ; Nintendo 64DD
1399 {
1400 N64RomFile := new FIle(romPath . "\" . romName . ".n64")
1401 If N64RomFile.Exist()
1402 param1 := " -cart """ . N64RomFile.FileFullPath . """ -quik """ . romPath . "\" . romName . romExtension . """"
1403 Else
1404 param1 := " -quik """ . romPath . "\" . romName . romExtension . """"
1405 }Else If StringUtils.Contains(mameID,"studio2|mpt02") ; RCA Studio 2
1406 {
1407 If (romExtension != ".txt")
1408 param1 := " -cart1 """ . romPath . "\" . romName . romExtension . """"
1409 Else {
1410 If StringUtils.Contains(romName,"Doodle")
1411 button2 := "A 1" ; Press 1 on P1 controller
1412 If StringUtils.Contains(romName,"Patterns")
1413 button2 := "A 2" ; Press 2 on P1 controller
1414 If StringUtils.Contains(romName,"Bowling")
1415 button2 := "A 3" ; Press 3 on P1 controller
1416 If StringUtils.Contains(romName,"Freeway")
1417 button2 := "A 4" ; Press 4 on P1 controller
1418 If StringUtils.Contains(romName,"Addition")
1419 button2 := "A 5" ; Press 5 on P1 controller
1420 }
1421
1422 ; Generate a lua script to press the Clear button so games will start
1423 ScriptFileName := GeneratePressButtonScript("Clear",button2)
1424 bootscript := " -script """ . ScriptFileName . """ -autoboot_delay 1"
1425 }
1426 } Else { ; Use Software List
1427 hashname := mameID
1428 param1 := " """ . romName . """" ; param1 used for launching from software lists
1429
1430 If (mameID = "aes") ; SNK Neo Geo AES
1431 { hashname := "neogeo"
1432 biosRegion := moduleIni.Read(romName, "BIOS_Region","asia","",1)
1433 param2 := " -bios " . biosRegion ; can also be japan, but the asian one has english menus for most games
1434 }
1435 CheckFile(emuPath . "\hash\" . hashname . ".xml","Could not find a software list for the system " . mameID) ;Check if software list for selected system exists
1436 }
1437
1438 If (mameID = "vectrex") { ; GCE Vectrex
1439 VectrexArtFile := new File(emuPath . "\artwork\Vectrex\" . romName . ".png")
1440 param2 := " -view " . (If VectrexArtFile.Exist() ? ("""" . romName . """") : "standard") ; need overlays extracted in the artwork\vectres folder. PNGs must match romName
1441 }
1442
1443 sysStaticParams := If sysStaticParams != "" ? A_Space . sysStaticParams : "" ; tacking on a space in case user forgot to add one
1444 romParams := If romParams != "" ? A_Space . romParams : "" ; tacking on a space in case user forgot to add one
1445
1446 mameRomPaths := StringUtils.Replace(romPathFromIni,"|",`"`;`",1) ; replace all instances of | to ; in the Rom_Path from RL's Emulators.ini so MAME knows where to find your roms
1447 mameRomPaths := " -rompath """ . (If mameRomName ? romPath : mameRomPaths) . (If mameBiosPath ? ";" . mameBiosPath : "") . """" ; If using an alt rom, only supply mame with the path to that rom so it doesn't try to use the original rom. If a bios path was supplied, add it into the rom paths sent to MAME
1448
1449 If StringUtils.InStr(romParams,"-rompath")
1450 ScriptError("""-rompath"" is defined as a parameter for " . romName . ". The MAME module fills this automatically so please remove this from Params in the module's settings.")
1451 If StringUtils.InStr(sysStaticParams,"-rompath")
1452 ScriptError("""-rompath"" is defined as a parameter for " . mameSystem . ". The MAME module fills this automatically so please remove this from Params in the module's settings.")
1453
1454 ; use a custom rom name, not the one from the db
1455 If mameRomName {
1456 MameRomOriginalFile := new File(romPath . "\" . romName . romExtension)
1457 MameRomCustomFile := new File(romPath . "\" . mameRomName . romExtension)
1458 errLvl := MameRomOriginalFile.Move(MameRomCustomFile.FileFullPath) ; rename rom to match what mame needs
1459 originalRomName := romName ; store romName from database so we know what to rename it back to later
1460 romName := mameRomName
1461 If errLvl
1462 ScriptError("There was a problem renaming " . romName . " to " . mameRomName . " in " . romPath . ". Please check you have write permission to this folder/file and you don't already have a file named """ . mameRomName . """ in your rom folder.",8)
1463 Else ; if rename was successful, set var so we know to move it back later
1464 fileRenamed := 1
1465 }
1466
1467 ; use a custom cfg file if it exists and append it to param1
1468 CustomCFGPath := new Folder(emuPath . "\cfg\" . mameID . "\" . dbName)
1469 If CustomCFGPath.Exist()
1470 param1 := " -cfg_directory """ . CustomCFGPath.FileFullPath . """" . param1
1471
1472 If (bilinearFilter = "true")
1473 bilinearEnabled := " -filter"
1474 Else
1475 bilinearEnabled := " -nofilter"
1476
1477 If (cheatMode = "true") {
1478 CheatZipFile := new File(emuPath . "\cheat.zip")
1479 Cheat7zFile := new File(emuPath . "\cheat.7z")
1480 If (!CheatZipFile.Exist() && !Cheat7zFile.Exist())
1481 RLLog.Warning("Module - You have cheats enabled for " . MEmu . " but could not locate a ""cheat.zip"" or ""cheat.7z"" in " . emuPath)
1482 Else {
1483 RLLog.Info("Module - Cheat file found in " . emuPath)
1484 If cheatModeKey ; if user wants to use a key to enable CheatMode
1485 cheatEnabled := If XHotkeyAllKeysPressed(cheatModeKey) ? " -cheat" : "" ; only enables cheatMode when key is held down on launch
1486 Else ; no cheat mode key defined
1487 cheatEnabled := " -cheat"
1488 }
1489 }
1490
1491 If (RequiresReset = "true")
1492 { ; Generate a lua script to send a system soft reset
1493 ScriptFileName := GenerateSoftResetScript()
1494 bootscript := " -script """ . ScriptFileName . """ -autoboot_delay 1"
1495 }
1496
1497 HideAppStart(hideEmuObj,hideEmu)
1498
1499
1500
1501 If (legacyMode = "true")
1502 { RLLog.Info("Module - Running MAME in legacy Mode")
1503 errLvl := primaryExe.Run(" " . (If mameID = "MAME" ? romName : mameID . param1 . param2 . param3 . param4 . param5 . param6) . fullscreenParam . cheatEnabled . volume . mameRomPaths . sysStaticParams . romParams, winstate,"","","",1) ; wrap quotes around exe
1504 } Else {
1505 RLLog.Info("Module - Running MAME in non-legacy mode")
1506 ; If (networkPlayers = 1 || !linkEnabledGame) {
1507 If !networkSession {
1508 RLLog.Info("Module - SinglePlayer session")
1509 errLvl := primaryExe.Run(" " . (If mameID = "MAME" ? romName : mameID . param1 . param2 . param3 . param4 . param5 . param6 ) . ctrlrFile . mameRomPaths . sysStaticParams . romParams . fullscreenParam . glsl . cheatEnabled . volume . inipath . hashpath . verticalRotationMode . artworkCrop . useBezels . useOverlays . useBackdrops . autosave . bootscript . " -skip_gameinfo", winstate,"","","",1) ; wrap quotes around exe
1510 } Else { ; multiplayer game run
1511 RLLog.Info("Module - Network/MultiPlayer session")
1512 BuildNVRAMObject() ; build nvram object
1513 ;screen positions
1514 screenPos := []
1515 screenPos := SplitScreenPos(networkPlayers,splitScreen2PlayersMode,splitScreen3PlayersMode,maxPlayersPerMonitor)
1516 If (networkType="localLink")
1517 globalInputs := " -global_inputs" ; tell mame to accept inputs when its window is not focused
1518 Loop % networkPlayers
1519 {
1520 currentPlayer := A_Index
1521 ; Update NVRAM setting(s)
1522 If (enableNVRAMAutomation = "true") {
1523 If nvramSettings[romName]["Settings"]["Credit"]["Position"].MaxIndex() { ; If nvram settings exist for this game
1524 NVRamFile%currentPlayer% := new File(emuPath . "\nvram" . (If currentPlayer = 1 ? "" : currentPlayer) . "\" . romName . "\" . nvramSettings[romName]["Settings"]["NVRAM"]["File"][1])
1525 If NVRamFile%currentPlayer%.Exist() {
1526 RLLog.Info("Module - Checking nvram file(s) for required changes")
1527 If (networkType = "localLink") { ; only local link is supported for now
1528 ; Parse through each setting of each player and lookup the position to write new setting to the nvram file
1529 for playerOptionLabel, selectedPlayerOption in nvramSettings[romName]["Player"][currentPlayer] ;looping on each player selected options
1530 for index, setting in nvramSettings[romName]["Settings"][playerOptionLabel]["Position"] ;Looping through hex values of the current option
1531 HexCompareWrite(NVRamFile%currentPlayer%.FileFullPath,nvramSettings[romName]["Settings"][playerOptionLabel]["Position"][index],nvramSettings[romName]["Settings"][playerOptionLabel]["Option"][selectedPlayerOption][index])
1532 for index, playerCRC in nvramSettings[romName]["CRC"]["Player"][currentPlayer] ;looping on each player selected options
1533 HexCompareWrite(NVRamFile%currentPlayer%.FileFullPath,nvramSettings[romName]["Settings"]["CRC"]["Position"][index],nvramSettings[romName]["CRC"]["Player"][currentPlayer][index])
1534 } Else If (networkType = "Server") {
1535 RLLog.Info("Module - Converting this nvram to ""Master"" in: " . NVRamFile%currentPlayer%.FileFullPath)
1536 ; RLLog.Info("Module - NVRAM automation for ""Server"" not supported at this time") ; only idea to get this to work is to duplicate nvram edit code from local link here but only set player 1
1537 HexCompareWrite(NVRamFile%currentPlayer%.FileFullPath,nvramSettings[romName]["Settings"]["Link"]["Position"][1],nvramSettings[romName]["Settings"]["Link"]["Option"]["Master"][1])
1538 } Else If (networkType = "Client") {
1539 RLLog.Info("Module - Converting this nvram to ""Slave"" in: " . NVRamFile%currentPlayer%.FileFullPath)
1540 ; RLLog.Info("Module - NVRAM automation for ""Client"" not supported at this time") ; only idea to get this to work is to duplicate nvram edit code from local link here but only set player 2
1541 HexCompareWrite(NVRamFile%currentPlayer%.FileFullPath,nvramSettings[romName]["Settings"]["Link"]["Position"][1],nvramSettings[romName]["Settings"]["Link"]["Option"]["Slave"][1])
1542 }
1543 } Else
1544 RLLog.Info("Module - Did not find an NVRAM file to update for player " . currentPlayer . " (Ignore this if this is the first time you are launching this rom): " . NVRamFile%currentPlayer%.FileFullPath)
1545 } Else
1546 RLLog.Info("Module - This rom does not contain an entry in the NVRAM object")
1547 }
1548 ;;Run Line for each of the multiplayer MAME instances using the nvramPath and cfgPath variables to the extra mames
1549 MameMultiPlayer%currentPlayer%Exe := new Process(emuPath . "\" . executable) ; instantiate a new process for each player
1550 errLvl := MameMultiPlayer%currentPlayer%Exe.Run(" " . (If mameID = "MAME" ? romName : mameID . param1 . param2 . param3 . param4 . param5 . param6) . ctrlrFile . mameRomPaths . multiPlayerObj[currentPlayer]["CfgDir"] . multiPlayerObj[currentPlayer]["NvramDir"] . globalInputs . multiPlayerObj[currentPlayer]["LocalHost"] . multiPlayerObj[currentPlayer]["LocalPort"] . multiPlayerObj[currentPlayer]["RemoteHost"] . multiPlayerObj[currentPlayer]["RemotePort"] . sysStaticParams . romParams . fullscreenParam . hlsl . glsl . cheatEnabled . volume . inipath . hashpath . verticalRotationMode . videomode . artworkCrop . useBezels . useOverlays . useBackdrops . useCpanels . useMarquees . autosave . bootscript . bilinearEnabled . " -skip_gameinfo", winstate,"","","",1) ; wrap quotes around exe
1551 MameMultiPlayer%currentPlayer%Exe.Process("Exist") ; get PID
1552 MameMultiPlayer%currentPlayer%Window := new Window(new WindowTitle("","","","",MameMultiPlayer%currentPlayer%Exe.PID))
1553 MameMultiPlayer%currentPlayer%Window.ExcludeTitle := "MAMEOutput" ; ignore the mame debug window
1554 MameMultiPlayer%currentPlayer%Window.Wait()
1555 }
1556
1557 Loop % networkPlayers
1558 {
1559 MameMultiPlayer%A_Index%Window.Get("ID")
1560 MameMultiPlayer%A_Index%Window.RemoveTitlebar()
1561 MameMultiPlayer%A_Index%Window.ToggleMenu()
1562 MameMultiPlayer%A_Index%Window.RemoveBorder()
1563 MameMultiPlayer%A_Index%Window.Move(screenPos[A_Index].X, screenPos[A_Index].Y, screenPos[A_Index].W, screenPos[A_Index].H)
1564 TimerUtils.Sleep(50)
1565 }
1566 }
1567 }
1568
1569 If errLvl {
1570 If (errLvl = 1)
1571 Error := "Failed Validity"
1572 Else If(errLvl = 2)
1573 Error := "Missing Files"
1574 Else If(errLvl = 3)
1575 Error := "Fatal Error"
1576 Else If(errLvl = 4)
1577 Error := "Device Error"
1578 Else If(errLvl = 5)
1579 Error := "Game Does Not Exist"
1580 Else If(errLvl = 6)
1581 Error := "Invalid Config"
1582 Else If StringUtils.Contains(errLvl,"7|8|9")
1583 Error := "Identification Error"
1584 Else
1585 Error := "MAME Error"
1586 RLLog.Error("MAME Error - " . Error)
1587 }
1588
1589 emuPrimaryWindow.Wait()
1590 emuPrimaryWindow.WaitActive()
1591
1592 If (mameID = "ti99_4a") ; Texas Instruments TI 99-4A
1593 {
1594 KeyUtils.SendCommand("X",1000) ; To bypass the first screen
1595 If (Command)
1596 KeyUtils.SendCommand(Command,,,,,,CommandWaitOffset) ; Send command affect it with an offset if needed
1597 }
1598
1599 ; Close the debugger window if exists
1600 If (closeDebugWindow = "true") {
1601 emuDebugWindow.Wait(2)
1602 emuDebugWindow.Close()
1603 }
1604
1605 BezelDraw()
1606 HideAppEnd(hideEmuObj,hideEmu)
1607
1608 If (networkPlayers = 1 || !linkEnabledGame) {
1609 emuPrimaryWindow.Show() ; Show the emulator
1610 } Else {
1611 Loop % networkPlayers
1612 MameMultiPlayer%A_Index%Window.Show() ; Show the emulator
1613 MameMultiPlayer1Window.Activate() ; Activate first player window so that first player can use keyboard instead of last player
1614 }
1615
1616 FadeInExit()
1617 primaryExe.Process("WaitClose")
1618 7zCleanUp()
1619 BezelExit()
1620
1621 If fileRenamed { ; Rename file back to alternate name for next launch
1622 errLvl := MameRomCustomFile.Move(MameRomOriginalFile.FileFullPath) ; Put original name back
1623 If errLvl ; If rename was successful, set var so we know to move it back later
1624 ScriptError("There was a problem renaming " . MameRomCustomFile.FileName . " back to " . MameRomOriginalFile.FileName)
1625 }
1626
1627 FadeOutExit()
1628 ExitModule()
1629
1630
1631 ListXMLInfo(rom){ ; Returns MAME info about parent rom, orientation angle, resolution
1632 Global emuFullPath,emuPath,RLLog
1633 ListXMLObject := Object()
1634 listXMLVarLog := ""
1635 ComSpecProcess := new Process(ComSpec) ; instantiate cmd.exe process
1636 ComSpecProcess.RunDirect(comspec . " /c " . """" . emuFullPath . """" . " -listxml " . rom . " > tempBezel.txt", emuPath, "Hide", 1) ; Run from emu's folder
1637 TempBezelFile := new File(emuPath . "\tempBezel.txt")
1638 TempBezelFile.Read()
1639 StringUtils.RegExMatch(TempBezelFile.Text, "s)<(machine|game).*name=" . """" . rom . """" . ".*" . "cloneof=" . """" . "[^""""]*", parent)
1640 StringUtils.RegExMatch(parent,"cloneof=" . """" . ".*", parent)
1641 StringUtils.RegExMatch(parent,"""" . ".*", parent)
1642 parent := StringUtils.TrimLeft(parent, 1)
1643 StringUtils.RegExMatch(TempBezelFile.Text, "s)<display.*rotate=" . """" . "[0-9]+" . """", angle)
1644 StringUtils.RegExMatch(angle,"[0-9]+", angle, "-6")
1645 StringUtils.RegExMatch(TempBezelFile.Text, "s)<display.*width=" . """" . "[0-9]+" . """", width)
1646 StringUtils.RegExMatch(width,"[0-9]+", width, "-6")
1647 StringUtils.RegExMatch(TempBezelFile.Text, "s)<display.*height=" . """" . "[0-9]+" . """", Height)
1648 StringUtils.RegExMatch(Height,"[0-9]+", Height, "-6")
1649 StringUtils.RegExMatch(TempBezelFile.Text, "s)<control.*ways=" . """" . "[0-9]+" . """", Ways)
1650 StringUtils.RegExMatch(Ways,"[0-9]+", Ways, "-6")
1651 logVars := "Parent|Angle|Height|Width|Ways"
1652 Loop, Parse, logVars, |
1653 {
1654 currentobj := {}
1655 currentobj.Label := A_Loopfield
1656 currentobj.Value := %A_Loopfield%
1657 ListXMLObject.Insert(currentobj["Label"], currentobj)
1658 listXMLLog .= "`r`n`t`t`t`t`t" . currentobj["Label"] . " = " . currentobj["Value"]
1659 }
1660 RLLog.Info("Module - MAME ListXML values: " . listXMLLog)
1661 If (ListXMLObject["Height"].Value > ListXMLObject["Width"].Value) {
1662 ListXMLObject["Angle"].Value := true
1663 RLLog.Info("Module - This game's height is greater than its width, forcing vertical mode")
1664 }
1665 TempBezelFile.Delete()
1666 Return ListXMLObject
1667 }
1668
1669 GenerateSoftResetScript(){ ; Generates a lua script to send a soft reset to MAME
1670 Global emuPath
1671
1672 SoftScriptFile := new File(emuPath . "\soft_reset.lua")
1673 ScriptFileName := emuPath . "\soft_reset.lua"
1674 SoftScriptFile.Delete()
1675
1676 AppendTxt :="
1677 (
1678 -- This script will reset the machine
1679 local function reset_machine()
1680 if resetcounter == nil then
1681 manager:machine():soft_reset();
1682 resetcounter = 1;
1683 end
1684 end
1685 if resetcounter == nil then
1686 emu.wait(1);
1687 reset_machine();
1688 end
1689 )"
1690 SoftScriptFile.Append(AppendTxt)
1691 Return SoftScriptFile.FileFullPath
1692 }
1693
1694 GeneratePressButtonScript(button1,button2=""){ ; Generates a lua script to send a soft reset to MAME
1695 Global emuPath
1696
1697 PressScriptFile := new File(emuPath . "\press_button.lua")
1698 PressScriptFile.Delete()
1699 If (button2) {
1700 button2str := "`n`t`temu.wait(1);`n`t`tioport[""" . button2 . """]:write(1);`n`t`temu.wait(1);`n`t`tioport[""" . button2 . """]:write(0);"
1701 }
1702
1703 AppendTxt :="
1704 (
1705 local function press_button()
1706 if resetcounter == nil then
1707 ioport[""" . button1 . """]:write(1);
1708 emu.wait(1);
1709 ioport[""" . button1 . """]:write(0);
1710 resetcounter = 1;" . button2str . "
1711 end
1712 end
1713 if resetcounter == nil then
1714 emu.wait(1);
1715 press_button();
1716 end
1717 )"
1718 PressScriptFile.Append(AppendTxt)
1719 Return PressScriptFile.FileFullPath
1720 }
1721
1722 BuildNVRAMObject() {
1723 Global nvramSettings,RLLog
1724 RLLog.Info("BuildNVRAMObject - Started")
1725
1726 nvramSettings := {}
1727
1728 nvramSettings["vr"] := {}
1729 nvramSettings["vr"]["Settings"] := {"BiosCounter":{"Position":["248"], "Option":{0:["00"], 1:["01"], 2:["02"], 3:["03"]}}, "Cabinet":{"Position":["52"], "Option":{"Special":["00"], "Standard":["01"], "Upright":["02"], "2PLink":["03"]}}, "Color":{"Position":["68"], "Option":{"Red":["00"], "Blue":["01"], "Yellow":["02"], "Green":["03"], "Black":["04"], "Pink":["05"], "SkyBlue":["06"], "Orange":["07"]}}, "Country":{"Position":["54"], "Option":{"Japan":["00"], "USA":["01"], "Export":["02"]}}, "Course":{"Position":["66"], "Option":{"Vote":["00"], "Beginner":["01"], "Middle":["02"], "Expert":["03"]}}, "CRC":{"Position":["16","18"]}, "Credit":{"Position":["32","40"], "Option":{"1":["00","00"], "Freeplay":["1A","01"]}}, "Difficulty":{"Position":["64"], "Option":{"Easy":["00"], "Normal":["01"], "Hard":["02"], "Hardest":["03"]}}, "Link":{"Position":["24"], "Option":{"None":["00"], "Master":["01"], "Slave":["02"], "Live":["03"]}}, "Monitor":{"Position":["22"], "Option":{"Standard":["00"], "Wide":["01"]}}, "NVRAM":{"File":["nvram"]}, "Race":{"Position":["70"], "Option":{"Normal":["00"], "Grandprix":["01"]}}, "StartCoin":{"Position":["42"], "Option":{1:["01"], 2:["02"], 3:["03"], 4:["04"], 5:["05"]}}}
1730
1731 nvramSettings["vr"]["Player"] := {}
1732 nvramSettings["vr"]["Player"].Insert(1, {"BiosCounter":"3", "Cabinet":"Standard", "Color":"Red", "Country":"USA", "Course":"Vote", "Credit":"Freeplay", "Difficulty":"Normal", "Link":"Master", "Monitor":"Wide", "Race":"Normal", "StartCoin":"1"})
1733 nvramSettings["vr"]["Player"].Insert(2, {"BiosCounter":"3", "Cabinet":"Standard", "Color":"Blue", "Country":"USA", "Course":"Vote", "Credit":"Freeplay", "Difficulty":"Normal", "Link":"Slave", "Monitor":"Wide", "Race":"Normal", "StartCoin":"1"})
1734 nvramSettings["vr"]["Player"].Insert(3, {"BiosCounter":"3", "Cabinet":"Standard", "Color":"Yellow", "Country":"USA", "Course":"Vote", "Credit":"Freeplay", "Difficulty":"Normal", "Link":"Slave", "Monitor":"Wide", "Race":"Normal", "StartCoin":"1"})
1735 nvramSettings["vr"]["Player"].Insert(4, {"BiosCounter":"3", "Cabinet":"Standard", "Color":"Green", "Country":"USA", "Course":"Vote", "Credit":"Freeplay", "Difficulty":"Normal", "Link":"Slave", "Monitor":"Wide", "Race":"Normal", "StartCoin":"1"})
1736 nvramSettings["vr"]["Player"].Insert(5, {"BiosCounter":"3", "Cabinet":"Standard", "Color":"Black", "Country":"USA", "Course":"Vote", "Credit":"Freeplay", "Difficulty":"Normal", "Link":"Slave", "Monitor":"Wide", "Race":"Normal", "StartCoin":"1"})
1737 nvramSettings["vr"]["Player"].Insert(6, {"BiosCounter":"3", "Cabinet":"Standard", "Color":"Pink", "Country":"USA", "Course":"Vote", "Credit":"Freeplay", "Difficulty":"Normal", "Link":"Slave", "Monitor":"Wide", "Race":"Normal", "StartCoin":"1"})
1738 nvramSettings["vr"]["Player"].Insert(7, {"BiosCounter":"3", "Cabinet":"Standard", "Color":"SkyBlue", "Country":"USA", "Course":"Vote", "Credit":"Freeplay", "Difficulty":"Normal", "Link":"Slave", "Monitor":"Wide", "Race":"Normal", "StartCoin":"1"})
1739 nvramSettings["vr"]["Player"].Insert(8, {"BiosCounter":"3", "Cabinet":"Standard", "Color":"Orange", "Country":"USA", "Course":"Vote", "Credit":"Freeplay", "Difficulty":"Normal", "Link":"Slave", "Monitor":"Wide", "Race":"Normal", "StartCoin":"1"})
1740 nvramSettings["vr"]["CRC"] := {"Player":{1:["06","21"], 2:["3C","C7"], 3:["0E","5F"], 4:["FF","D8"], 5:["4B","7F"], 6:["BA","F8"], 7:["88","60"], 8:["79","E7"]}}
1741
1742 nvramSettings["vformula"] := {}
1743 nvramSettings["vformula"]["Settings"] := {"BiosCounter":{"Position":["248"], "Option":{0:["00"], 1:["01"], 2:["02"], 3:["03"]}}, "Color":{"Position":["68"], "Option":{"Red":["00"], "Blue":["01"], "Yellow":["02"], "Green":["03"], "Black":["04"], "Pink":["05"], "SkyBlue":["06"], "Orange":["07"]}}, "Country":{"Position":["54"], "Option":{"Japan":["00"], "USA":["01"], "Export":["02"]}}, "Course":{"Position":["66"], "Option":{"Vote":["00"], "Beginner":["01"], "Middle":["02"], "Expert":["03"]}}, "CRC":{"Position":["16","18"]}, "Credit":{"Position":["32","40"], "Option":{"1":["00","00"], "Freeplay":["1A","01"]}}, "Difficulty":{"Position":["64"], "Option":{"Easy":["00"], "Normal":["01"], "Hard":["02"], "Hardest":["03"]}}, "Link":{"Position":["24"], "Option":{"None":["00"], "Master":["01"], "Slave":["02"], "Live":["03"]}}, "NVRAM":{"File":["nvram"]}, "Race":{"Position":["70"], "Option":{"Normal":["00"], "Grandprix":["01"]}}, "Sound":{"Position":["22"], "Option":{"On":["00"], "Off":["01"]}}, "StartCoin":{"Position":["42"], "Option":{1:["01"], 2:["02"], 3:["03"], 4:["04"], 5:["05"]}}}
1744
1745 nvramSettings["vformula"]["Player"] := {}
1746 nvramSettings["vformula"]["Player"].Insert(1, {"BiosCounter":"1", "Color":"Red", "Country":"USA", "Course":"Vote", "Credit":"Freeplay", "Difficulty":"Normal", "Link":"Master", "Race":"Normal", "Sound":"On", "StartCoin":"1"})
1747 nvramSettings["vformula"]["Player"].Insert(2, {"BiosCounter":"1", "Color":"Blue", "Country":"USA", "Course":"Vote", "Credit":"Freeplay", "Difficulty":"Normal", "Link":"Slave", "Race":"Normal", "Sound":"On", "StartCoin":"1"})
1748 nvramSettings["vformula"]["Player"].Insert(3, {"BiosCounter":"1", "Color":"Yellow", "Country":"USA", "Course":"Vote", "Credit":"Freeplay", "Difficulty":"Normal", "Link":"Slave", "Race":"Normal", "Sound":"On", "StartCoin":"1"})
1749 nvramSettings["vformula"]["Player"].Insert(4, {"BiosCounter":"1", "Color":"Green", "Country":"USA", "Course":"Vote", "Credit":"Freeplay", "Difficulty":"Normal", "Link":"Slave", "Race":"Normal", "Sound":"On", "StartCoin":"1"})
1750 nvramSettings["vformula"]["Player"].Insert(5, {"BiosCounter":"1", "Color":"Black", "Country":"USA", "Course":"Vote", "Credit":"Freeplay", "Difficulty":"Normal", "Link":"Slave", "Race":"Normal", "Sound":"On", "StartCoin":"1"})
1751 nvramSettings["vformula"]["Player"].Insert(6, {"BiosCounter":"1", "Color":"Pink", "Country":"USA", "Course":"Vote", "Credit":"Freeplay", "Difficulty":"Normal", "Link":"Slave", "Race":"Normal", "Sound":"On", "StartCoin":"1"})
1752 nvramSettings["vformula"]["Player"].Insert(7, {"BiosCounter":"1", "Color":"SkyBlue", "Country":"USA", "Course":"Vote", "Credit":"Freeplay", "Difficulty":"Normal", "Link":"Slave", "Race":"Normal", "Sound":"On", "StartCoin":"1"})
1753 nvramSettings["vformula"]["Player"].Insert(8, {"BiosCounter":"1", "Color":"Orange", "Country":"USA", "Course":"Vote", "Credit":"Freeplay", "Difficulty":"Normal", "Link":"Slave", "Race":"Normal", "Sound":"On", "StartCoin":"1"})
1754 nvramSettings["vformula"]["CRC"] := {"Player":{1:["F2","EB"], 2:["C8","0D"], 3:["FA","95"], 4:["0B","12"], 5:["BF","B5"], 6:["4E","32"], 7:["7C","AA"], 8:["8D","2D"]}}
1755
1756 RLLog.Info("BuildNVRAMObject - Ended")
1757 }
1758
1759 BezelLabel:
1760 emuConsoleWindow.Set("Transparent",0)
1761 Return
1762
1763 HaltEmu:
1764 If (pauseMethod = 1)
1765 { disableSuspendEmu := "true"
1766 disableRestoreEmu := "true"
1767 emuPrimaryWindow.PostMessage("0x211",1)
1768 } Else If (pauseMethod = 2)
1769 { disableSuspendEmu := "true"
1770 emuPrimaryWindow.PostMessage("0x211",1)
1771 } Else If (pauseMethod = 3)
1772 { disableSuspendEmu := "true"
1773 disableRestoreEmu := "true"
1774 emuPrimaryWindow.PostMessage(0x0400+6,1)
1775 } Else If (pauseMethod = 4)
1776 { disableSuspendEmu := "true"
1777 emuPrimaryWindow.PostMessage(0x0400+6,1)
1778 } Else If (pauseMethod = 5)
1779 { disableSuspendEmu := "true"
1780 KeyUtils.Send("{P down}")
1781 TimerUtils.Sleep(1000)
1782 KeyUtils.Send("{P up} ")
1783 }
1784 Return
1785 RestoreEmu:
1786 If (pauseMethod = 1)
1787 emuPrimaryWindow.PostMessage("0x212",1)
1788 Else If (pauseMethod = 2)
1789 emuPrimaryWindow.PostMessage("0x212",1)
1790 Else If (pauseMethod = 3)
1791 emuPrimaryWindow.PostMessage(0x0400+6,0)
1792 Else If (pauseMethod = 4)
1793 emuPrimaryWindow.PostMessage(0x0400+6,0)
1794 Else If (pauseMethod = 5) {
1795 disableSuspendEmu := "true"
1796 KeyUtils.Send("{P down}")
1797 TimerUtils.Sleep(1000)
1798 KeyUtils.Send("{P up} ")
1799 }
1800 emuPrimaryWindow.Activate()
1801 Return
1802
1803 CloseProcess:
1804 FadeOutStart()
1805 If (networkSession && networkPlayers > 1) {
1806 Loop % networkPlayers {
1807 MameMultiPlayer%A_Index%Window.Close()
1808 MameMultiPlayer%A_Index%Window.WaitClose()
1809 }
1810 } Else
1811 emuPrimaryWindow.Close()
1812 Return
1813
181410:56:21:490 | RL | INFO | +63 | BuildScript - Loaded Pause scripts
181510:56:21:496 | RL | INFO | +0 | BuildScript - Loaded Multi-Player scripts
181610:56:21:503 | RL | INFO | +15 | BuildScript - Loaded Statistics.ahk script
181710:56:21:503 | RL | WARNING | +0 | BuildScript - "D:\RocketLauncher\Lib\User Functions.ahk" not found
181810:56:21:503 | RL | INFO | +0 | BuildScript - Finished injecting functions into module
181910:56:21:509 | RL | INFO | +0 | Main - Module is built
182010:56:21:509 | RL | INFO | +0 | CheckFile - Checking if D:\RocketLauncher\AutoHotkey.dll exists
182110:56:21:629 | RL | INFO | +125 | Main - Running module
182210:56:24:387 | MD | INFO | +N/A | Module initialized
182310:56:24:389 | MD | INFO | +0 | Keymapper - Creating Custom Joy Name Array for Name Replacements
182410:56:24:389 | MD | INFO | +0 | LoadPreferredControllers - Started
182510:56:24:389 | MD | INFO | +0 | GetJoystickArray - Started
182610:56:24:629 | MD | INFO | +250 | GetJoystickGUID - Started
182710:56:24:629 | MD | INFO | +0 | GetJoystickGUID - Ended and found GUID: 302322709CDEE8118001444553540000
182810:56:24:632 | MD | INFO | +0 | GetJoystickGUID - Started
182910:56:24:632 | MD | INFO | +0 | GetJoystickGUID - Ended and found GUID: 302322709CDEE8118002444553540000
183010:56:24:632 | MD | INFO | +0 | GetJoystickArray - Ended
183110:56:24:632 | MD | INFO | +0 | LoadPreferredControllers - Sorting Currently Connected joysticks List to match the order of the Preferred Controller List
183210:56:24:633 | MD | INFO | +0 | LoadPreferredControllers - Assigning the New Joystick IDs according to the preferred list for the active controllers
183310:56:24:633 | MD | INFO | +0 | ChangeJoystickID - Started
183410:56:24:633 | MD | INFO | +0 | ChangeJoystickID - Ended
183510:56:24:633 | MD | INFO | +0 | ChangeJoystickID - Started
183610:56:24:633 | MD | INFO | +0 | ChangeJoystickID - Ended
183710:56:24:633 | MD | INFO | +0 | LoadPreferredControllers - Ended
183810:56:24:633 | MD | INFO | +0 | CheckFile - Checking if D:\RocketLauncher\Profiles\JoyToKey\JoyToKey.exe exists
183910:56:24:633 | MD | INFO | +0 | Keymapper - Loading joytokey
184010:56:24:633 | MD | INFO | +0 | RunKeymapper - Started, using method "load"
184110:56:24:633 | MD | INFO | +0 | GetJoystickArray - Started
184210:56:24:877 | MD | INFO | +250 | GetJoystickGUID - Started
184310:56:24:877 | MD | INFO | +0 | GetJoystickGUID - Ended and found GUID: 302322709CDEE8118001444553540000
184410:56:24:880 | MD | INFO | +0 | GetJoystickGUID - Started
184510:56:24:880 | MD | INFO | +0 | GetJoystickGUID - Ended and found GUID: 302322709CDEE8118002444553540000
184610:56:24:881 | MD | INFO | +0 | GetJoystickArray - Ended
184710:56:24:881 | MD | WARNING | +0 | GetProfile - Keymapper support is enabled for "joytokey", but could not find a "terracre", "MAME", "MAME", default, a "" player 1 profile or a blank profile in "D:\RocketLauncher\Profiles\joytokey" for controller ""
184810:56:24:881 | MD | INFO | +0 | RunJoyToKey - Started
184910:56:24:881 | MD | INFO | +0 | WinClose - Closing: JoyToKey ahk_class TMainForm
185010:56:25:252 | MD | INFO | +375 | Process - WaitClose JoyToKey.exe 2
185110:56:25:382 | MD | INFO | +125 | RunJoyToKey - Ended
185210:56:25:382 | MD | INFO | +0 | RunKeymapper - Ended
185310:56:25:385 | MD | INFO | +0 | StartModule - Started
185410:56:25:385 | MD | INFO | +0 | StartModule - MEmu: MAME
1855 MEmuV: v0.166
1856 MURL: http://www.mame.net/
1857 MAuthor: djvj,faahrev,brolly,Tomkun
1858 MVersion: 2.3.7
1859 MCRC: 5C737136
1860 iCRC: 25E2CCF
1861 MID:
1862 MSystem: "AAE","Aamber Pegasus","Acorn Electron","Amstrad CPC","Amstrad GX4000","APF Imagination Machine","Apple II","Apple IIGS","Applied Technology MicroBee","Atari 8-Bit","Atari 2600","Atari 5200","Atari 7800","Atari Classics","Atari Jaguar","Atari Lynx","Bally Astrocade","Bandai Super Vision 8000","Bandai WonderSwan","Bandai WonderSwan Color","Bit Corporation Gamate","Camputers Lynx","Capcom","Capcom Classics","Capcom Play System","Capcom Play System II","Capcom Play System III","Casio PV-1000","Casio PV-2000","Cave","Coleco ADAM","ColecoVision","Commodore 64","Commodore MAX Machine","Creatronic Mega Duck","Data East Classics","EACA EG2000 Colour Genie","Emerson Arcadia 2001","Entex Adventure Vision","Epoch Game Pocket Computer","Epoch Super Cassette Vision","Exidy Sorcerer","Fairchild Channel F","Fujitsu FM-7","Funtech Super Acan","GamePark 32","GCE Vectrex","Hartung Game Master","HBMAME","Interton VC 4000","Irem Classics","JungleTac Sport Vii","Jupiter Ace","Konami Classics","LaserDisc","Magnavox Odyssey 2","MAME","Matra & Hachette Alice","Mattel Aquarius","Mattel Intellivision","MGT Sam Coupe","Midway Classics","Milton Bradley MicroVision","Namco Classics","Namco System 22","NEC PC-8801","NEC PC Engine","NEC PC Engine-CD","NEC SuperGrafx","NEC TurboGrafx-16","NEC TurboGrafx-CD","Nintendo 64","Nintendo 64DD","Nintendo Arcade Systems","Nintendo Classics","Nintendo Entertainment System","Nintendo Famicom","Nintendo Famicom Disk System","Nintendo Game Boy","Nintendo Game Boy Advance","Nintendo Game Boy Color","Nintendo Pokemon Mini","Nintendo Satellaview","Nintendo Super Famicom","Nintendo Super Game Boy","Nintendo Virtual Boy","Othello Multivision","PacMAME","Philips CD-i","Philips VG 5000","Philips Videopac Plus G7400","RCA Studio II","Sega 32X","Sega CD","Sega Classics","Sega Game Gear","Sega Genesis","Sega Master System","Sega Mega Drive","Sega Model 1","Sega Pico","Sega Saturn","Sega SC-3000","Sega SG-1000","Sega ST-V","Sega VMU","Sharp X1","Sinclair ZX81","SNK Classics","SNK Neo Geo","SNK Neo Geo AES","SNK Neo Geo AES","SNK Neo Geo CD","SNK Neo Geo MVS","SNK Neo Geo Pocket","SNK Neo Geo Pocket Color","Sony PlayStation","Sony PocketStation","Sord M5","Soundic Victory MPT-02","Super Nintendo Entertainment System","Taito Classics","Tandy TRS-80 Color Computer","Texas Instruments TI 99-4A","Tiger Game.com","Tomy Tutor","VTech CreatiVision","Watara Supervision","Williams Classics"
186310:56:25:385 | MD | INFO | +0 | StartModule - You have a supported System Name for this module: "MAME"
186410:56:25:387 | MD | INFO | +0 | PluginInit - Started
186510:56:25:387 | MD | DEBUG | +0 | BuildDatabaseTable - Started - Building Table for: Name|Cloneof|Manufacturer|Year|Genre|Rating
186610:56:25:387 | MD | INFO | +0 | CheckFile - Checking if D:\hyperspin\Databases\MAME\MAME.xml exists
186710:56:25:461 | MD | DEBUG | +78 | BuildDatabaseTable - Searching for a "Game Name" in the database
186810:56:25:461 | MD | DEBUG | +0 | BuildDatabaseTable - Found "Game Name" in the database!
186910:56:25:466 | MD | DEBUG | +0 | BuildDatabaseTable - Searching database for: Name
187010:56:25:467 | MD | DEBUG | +0 | BuildDatabaseTable - Found "Name" with a value: "Terra Cresta (YM3526 set 1)"
187110:56:25:467 | MD | DEBUG | +0 | BuildDatabaseTable - Searching database for: Cloneof
187210:56:25:467 | MD | DEBUG | +0 | BuildDatabaseTable - Could not find: Cloneof
187310:56:25:467 | MD | DEBUG | +0 | BuildDatabaseTable - Searching database for: Manufacturer
187410:56:25:467 | MD | DEBUG | +0 | BuildDatabaseTable - Found "Manufacturer" with a value: "Nichibutsu"
187510:56:25:467 | MD | DEBUG | +0 | BuildDatabaseTable - Searching database for: Year
187610:56:25:467 | MD | DEBUG | +0 | BuildDatabaseTable - Found "Year" with a value: "1985"
187710:56:25:467 | MD | DEBUG | +0 | BuildDatabaseTable - Searching database for: Genre
187810:56:25:467 | MD | DEBUG | +0 | BuildDatabaseTable - Found "Genre" with a value: "Shoot-'Em-Up"
187910:56:25:467 | MD | DEBUG | +0 | BuildDatabaseTable - Searching database for: Rating
188010:56:25:467 | MD | DEBUG | +0 | BuildDatabaseTable - Found "Rating" with a value: ""
188110:56:25:467 | MD | DEBUG | +0 | BuildDatabaseTable - Ended
188210:56:25:511 | MD | INFO | +47 | PluginInit - Ended
188310:56:25:511 | MD | DEBUG | +0 | StartModule - Setting romName to the dbName sent to RocketLauncher: terracre
188410:56:25:539 | MD | INFO | +31 | StartModule - Ended
188510:56:25:539 | MD | INFO | +0 | i18n - Started
188610:56:25:539 | MD | DEBUG | +0 | i18n - Section "English_United_States" & key "dialog.open" not found, trying section "English"
188710:56:25:539 | MD | INFO | +0 | i18n - Ended, using "Open" for "dialog.open"
188810:56:25:541 | MD | DEBUG | +0 | Module - Finished building the MAME object
188910:56:25:541 | MD | WARNING | +0 | Module - "MAME" is not a known console or computer system. Defaulting to MAME's Arcade mode for the remainder of this MAME module.
189010:56:25:541 | MD | INFO | +0 | RIniFile.Read - Module - Fullscreen: true (DEFAULT)
189110:56:25:541 | MD | INFO | +0 | RIniFile.Read - Module - LegacyMode: false (DEFAULT)
189210:56:25:541 | MD | INFO | +0 | RIniFile.Read - Module - MAME_BIOS_Path: D:\mame\roms (DEFAULT)
189310:56:25:541 | MD | INFO | +0 | RIniFile.Read - Module - Videomode: d3d (DEFAULT)
189410:56:25:541 | MD | INFO | +0 | RIniFile.Read - Module - PauseMethod: 1 (DEFAULT)
189510:56:25:541 | MD | INFO | +0 | RIniFile.Read - Module - BilinearFilter: false (DEFAULT)
189610:56:25:541 | MD | INFO | +0 | RIniFile.Read - Module - HLSL: false (DEFAULT)
189710:56:25:541 | MD | INFO | +0 | RIniFile.Read - Module - GLSL: false (DEFAULT)
189810:56:25:541 | MD | INFO | +0 | RIniFile.Read - Module - BezelMode: layout (DEFAULT)
189910:56:25:541 | MD | INFO | +0 | RIniFile.Read - Module - VerticalRotationMode: none (DEFAULT)
190010:56:25:541 | MD | INFO | +0 | RIniFile.Read - Module - CheatMode: false (DEFAULT)
190110:56:25:541 | MD | INFO | +0 | RIniFile.Read - Module - CheatModeKey: (NO VALUE)
190210:56:25:541 | MD | INFO | +0 | RIniFile.Read - Module - UseSoftwareList: false (DEFAULT)
190310:56:25:541 | MD | INFO | +0 | RIniFile.Read - Module - StaticParameters: (NO VALUE)
190410:56:25:541 | MD | INFO | +0 | RIniFile.Read - Module - Parameters: (NO VALUE)
190510:56:25:541 | MD | INFO | +0 | RIniFile.Read - Module - Parameters: (NO VALUE)
190610:56:25:541 | MD | INFO | +0 | RIniFile.Read - Module - MameRomName: (NO VALUE)
190710:56:25:541 | MD | INFO | +0 | RIniFile.Read - Module - Autosave: false (DEFAULT)
190810:56:25:541 | MD | INFO | +0 | RIniFile.Read - Module - Volume: (NO VALUE)
190910:56:25:541 | MD | INFO | +0 | RIniFile.Read - Module - Artwork_Crop: true (DEFAULT)
191010:56:25:541 | MD | INFO | +0 | RIniFile.Read - Module - Use_Bezels: false (DEFAULT)
191110:56:25:541 | MD | INFO | +0 | RIniFile.Read - Module - Use_Overlays: true (DEFAULT)
191210:56:25:541 | MD | INFO | +0 | RIniFile.Read - Module - Use_Backdrops: true (DEFAULT)
191310:56:25:542 | MD | INFO | +0 | RIniFile.Read - Module - Use_Cpanels: false (DEFAULT)
191410:56:25:542 | MD | INFO | +0 | RIniFile.Read - Module - Use_Marquees: false (DEFAULT)
191510:56:25:542 | MD | INFO | +0 | RIniFile.Read - Module - IniPath: (NO VALUE)
191610:56:25:542 | MD | INFO | +0 | RIniFile.Read - Module - HashPath: (NO VALUE)
191710:56:25:542 | MD | INFO | +0 | RIniFile.Read - Module - UseControllerRemap: true (DEFAULT)
191810:56:25:542 | MD | INFO | +0 | RIniFile.Read - Module - ControllerRemapPath: D:\mame\ControllerRemap\ControllerRemap.exe (DEFAULT)
191910:56:25:542 | MD | INFO | +0 | RIniFile.Read - Module - ControllerRemapConfigPath: D:\mame\ControllerRemap\ctrlr\ (DEFAULT)
192010:56:25:542 | MD | INFO | +0 | RIniFile.Read - Module - MAMECtrlrPath: D:\mame\ctrlr (DEFAULT)
192110:56:25:543 | MD | INFO | +0 | RIniFile.Read - Module - Enable_Link_Play: false (DEFAULT)
192210:56:35:753 | MD | DEBUG | +10219 | Process.RunDirect - "C:\Windows\system32\cmd.exe /c "D:\mame\mame.exe" -listxml terracre > tempBezel.txt" Process ID: 2324 and ErrorLevel reported as: 0
192310:56:39:368 | MD | INFO | +3610 | Module - MAME ListXML values:
1924 Parent =
1925 Angle =
1926 Height =
1927 Width =
1928 Ways =
192910:56:39:373 | MD | INFO | +0 | Controller Remap: Start
193010:56:39:374 | MD | INFO | +0 | Controller Remap: ControllerRemapConfigPath: D:\mame\ControllerRemap\ctrlr\
193110:56:39:374 | MD | INFO | +0 | Controller Remap: No Controller config file found.
193210:56:39:374 | MD | INFO | +0 | Controller Remap: End
193310:56:39:374 | MD | INFO | +0 | Module - Detected MAME Product Version from 'D:\mame\mame.exe' is
193410:56:39:471 | MD | INFO | +109 | Module - Running MAME in non-legacy mode
193510:56:39:471 | MD | INFO | +0 | Module - SinglePlayer session
193610:56:39:471 | MD | INFO | +0 | Process.Run - Running: "D:\mame\mame.exe" terracre -rompath "D:\mame\roms;D:\Stella\newroms\MAME;D:\mame\roms" -nowindow -artwork_crop -nouse_bezels -use_overlays -use_backdrops -skip_gameinfo
193710:56:40:419 | MD | DEBUG | +937 | Process.Run - "mame.exe terracre -rompath "D:\mame\roms;D:\Stella\newroms\MAME;D:\mame\roms" -nowindow -artwork_crop -nouse_bezels -use_overlays -use_backdrops -skip_gameinfo" Process ID: 1572
193810:56:40:419 | MD | DEBUG | +0 | MiscUtils.GetActiveWindowStatus - Title: HyperSpin | Class: ThunderRT6FormDC | State: 0 | X: 0 | Y: 0 | Width: 1280 | Height: 1024 | Window HWND: 0x30138 | Process ID: 640 | Process Path: D:\hyperspin\HyperSpin.exe
193910:56:40:419 | MD | INFO | +0 | Window.Wait - Waiting for window "ahk_class MAME"
194010:56:41:316 | MD | DEBUG | +907 | MiscUtils.GetActiveWindowStatus - Title: HyperSpin | Class: ThunderRT6FormDC | State: 0 | X: 0 | Y: 0 | Width: 1280 | Height: 1024 | Window HWND: 0x30138 | Process ID: 640 | Process Path: D:\hyperspin\HyperSpin.exe
194110:56:41:317 | MD | DEBUG | +0 | MiscUtils.GetActiveWindowStatus - Title: HyperSpin | Class: ThunderRT6FormDC | State: 0 | X: 0 | Y: 0 | Width: 1280 | Height: 1024 | Window HWND: 0x30138 | Process ID: 640 | Process Path: D:\hyperspin\HyperSpin.exe
194210:56:41:317 | MD | INFO | +0 | Window.WaitActive - Waiting for "ahk_class MAME"
194310:56:41:799 | MD | DEBUG | +484 | MiscUtils.GetActiveWindowStatus - Title: MAME: Terra Cresta (YM3526 set 1) [terracre] | Class: MAME | State: 0 | X: | Y: | Width: | Height: | Window HWND: 0x201a8 | Process ID: 1572 | Process Path: D:\mame\mame.exe
194410:56:42:539 | MD | INFO | +734 | Process.Process - "WaitClose" "mame.exe"
194510:56:51:621 | MD | DEBUG | +9079 | Process.Process - "mame.exe" returned 0 and is now closed. Continuing thread.
194610:56:51:621 | MD | INFO | +0 | ExitModule - Started
194710:56:51:621 | MD | INFO | +0 | Starting Updating Statistics:
194810:56:52:849 | MD | INFO | +1234 | Game section statistics updated.
194910:56:52:849 | MD | INFO | +0 | RunKeymapper - Started, using method "unload"
195010:56:52:849 | MD | INFO | +0 | GetJoystickArray - Started
195110:56:53:275 | MD | INFO | +422 | GetJoystickGUID - Started
195210:56:53:276 | MD | INFO | +0 | GetJoystickGUID - Ended and found GUID: 302322709CDEE8118001444553540000
195310:56:53:278 | MD | INFO | +0 | GetJoystickGUID - Started
195410:56:53:279 | MD | INFO | +0 | GetJoystickGUID - Ended and found GUID: 302322709CDEE8118002444553540000
195510:56:53:279 | MD | INFO | +0 | GetJoystickArray - Ended
195610:56:53:279 | MD | INFO | +0 | GetProfile - Loading Player 1 Profile -> D:\RocketLauncher\Profiles\joytokey\HyperSpin\HyperSpin.cfg
195710:56:53:279 | MD | INFO | +0 | RunJoyToKey - Started
195810:56:53:280 | MD | INFO | +0 | WinClose - Closing: JoyToKey ahk_class TMainForm
195910:56:53:583 | MD | INFO | +312 | Process - WaitClose JoyToKey.exe 2
196010:56:53:584 | MD | INFO | +0 | Run - Running: D:\RocketLauncher\Profiles\JoyToKey\JoyToKey.exe "D:\RocketLauncher\Profiles\joytokey\HyperSpin\HyperSpin.cfg"
196110:56:53:757 | MD | DEBUG | +172 | Run - "JoyToKey.exe "D:\RocketLauncher\Profiles\joytokey\HyperSpin\HyperSpin.cfg"" Process ID: 2852
196210:56:53:757 | MD | INFO | +0 | RunJoyToKey - Ended
196310:56:53:757 | MD | INFO | +0 | RunKeymapper - Ended
196410:56:53:831 | MD | INFO | +78 | ExitModule - Ended
1965End of Module Logs
196610:56:53:841 | RL | INFO | +32203 | Main - Module ended, exiting RocketLauncher normally
196710:56:53:841 | RL | INFO | +0 | ExitScript - Started
196810:56:53:847 | RL | DEBUG | +16 | Registry.Read - Reading from Registry : RootKey=HKEY_LOCAL_MACHINE, SubKey=System\CurrentControlSet\Control\Windows, ValueName=ErrorMode,RegistryVersion=32
196910:56:53:847 | RL | DEBUG | +0 | Registry.Read - Registry Read finished, returning 0
197010:56:53:913 | RL | INFO | +62 | ExitScript - Checking what application is currently in focus.
197110:56:53:913 | RL | INFO | +0 | ExitScript - HyperSpin is currently active. Proceeding with exit
197210:56:53:930 | RL | INFO | +16 | SystemCursor - Restoring mouse cursor
197310:56:53:940 | RL | INFO | +16 | ExitScript - Restored cursor
1974[/code]