· 8 years ago · Jun 24, 2018, 07:36 AM
1[code]
200:19:51:419 | RL | INFO | +N/A | Main - RocketLauncher v1.2.0.1 (www.rlauncher.com)
300:19:51:497 | RL | INFO | +78 | Main - System Specs:
4 RocketLauncher Dir: D:\Arcade\RocketLauncher
5 RocketLauncher is: 32-bit
6 OS: Microsoft Windows 7 Ultimate
7 SKU: Ultimate
8 Total Memory: 8144.36 MB
9 Free Memory: 6130.64 MB
10 Used Memory: 2013.715 MB
11 SystemType: 64-bit
12 Physical Processors: 1
13 Logical Processors: 4
14 GPU 1 Name: NVIDIA GeForce GTX 1050 Ti
15 GPU 1 RAM: -1.00 MB
16 GPU 1 Driver Version: 24.21.13.9811
17 Sound 1 Device: HD Webcam C615
18 Sound 1 Status: Enabled
19 Sound 2 Device: NVIDIA Virtual Audio Device (Wave Extensible) (WDM)
20 Sound 2 Status: Enabled
21 Sound 3 Device: NVIDIA High Definition Audio
22 Sound 3 Status: Enabled
23 Sound 4 Device: High Definition Audio Device
24 Sound 4 Status: Enabled
25 OS Language: English_United_States
26 System Locale: en-US
27 Formats Locale: en-US
28 Windows UI Language: en-US
29 Text Encoding: Windows-1252
30 OS Admin Status: Yes
31 RL Compatibility Flags: HIGHDPIAWARE
32 Latest .Net Version: v4.0.30319
33 Monitor #1 (\\.\DISPLAY1): 1920x1080 (1920x1032 work) [32bit] [60hz] [Landscape] (Primary)
34 Current AHK Desktop Width: 1920
35 Current AHK Desktop Height: 1080
36 Monitor #1 DPI: 125
37 ErrorMode: 0
38 AutoHotkey Path:
39 AHK Version: 1.1.13.00
40 Unicode: No
4100:19:51:497 | RL | INFO | +0 | CheckFile - Checking if D:\Arcade\RocketLauncher\RocketLauncher.exe exists
4200:19:51:498 | RL | INFO | +0 | Main - Raw CLI received: "-s Sega Saturn -r Guardian Heroes (USA) -f D:\Arcade\HyperSpin.exe -p HyperSpin -c 1 -o 1"
4300:19:51:498 | RL | INFO | +0 | Main - Loading Front End Plugin: "HyperSpin"
4400:19:51:498 | RL | INFO | +0 | Main - RocketLauncher received "Sega Saturn" and "Guardian Heroes (USA)"
4500:19:51:502 | RL | INFO | +0 | Main - Did not find a "D:\Arcade\RocketLauncher\Settings\Sega Saturn\Game Options.ini" file, skipping any game-specific options.
4600:19:51:502 | RL | INFO | +0 | Main - Guardian Heroes (USA) is using the default emulator: RetroArch
4700:19:51:502 | RL | INFO | +0 | Main - Checking for a [RetroArch] section in D:\Arcade\RocketLauncher\Settings\Sega Saturn\Emulators.ini
4800:19:51:502 | RL | INFO | +0 | Main - Checking for a [RetroArch] section in D:\Arcade\RocketLauncher\Settings\Global Emulators.ini
4900:19:51:503 | RL | INFO | +0 | Main - Found [RetroArch] in D:\Arcade\RocketLauncher\Settings\Global Emulators.ini
5000:19:51:503 | RL | INFO | +0 | CheckFile - Checking if D:\Arcade\RocketLauncher\Modules\RetroArch\RetroArch.ahk exists
5100:19:51:506 | RL | INFO | +0 | Main - CRC Check - CRC matches, this is an official unedited module.
5200:19:51:506 | RL | INFO | +0 | Main - Guardian Heroes (USA) will use module: D:\Arcade\RocketLauncher\Modules\RetroArch\RetroArch.ahk
5300:19:51:516 | RL | INFO | +15 | Main - Using standard method with "Rom Extension" SkipChecks or without any SkipChecks.
5400:19:51:517 | RL | INFO | +0 | CheckFile - Checking if D:\Arcade\Emulators\RetroArch\retroarch.exe exists
5500:19:51:517 | RL | INFO | +0 | Main - INI Keys read
5600:19:51:517 | RL | INFO | +0 | CheckFile - Checking if D:\Arcade\RocketLauncher\Module Extensions\7z.exe exists
5700:19:51:517 | RL | INFO | +0 | CheckFile - Checking if D:\Arcade\RocketLauncher\Module Extensions\7z.dll exists
5800:19:51:518 | RL | INFO | +0 | Main - "Guardian Heroes (USA)" does not qualify for MultiGame. Only roms with any of these strings in their name are acceptable: \(Disc|\(Disk|\(Cart|\(Tape|\(Cassette|\(Part|\(Side
5900:19:51:518 | RL | INFO | +0 | CheckPaths - Started
6000:19:51:519 | RL | INFO | +0 | CheckPaths - Looking for rom: D:\Arcade\Sega Saturn\Roms\Guardian Heroes (USA).lzh
6100:19:51:519 | RL | INFO | +0 | CheckPaths - Looking for rom by name in subfolder: D:\Arcade\Sega Saturn\Roms\Guardian Heroes (USA)\Guardian Heroes (USA).lzh
6200:19:51:519 | RL | INFO | +0 | CheckPaths - Looking for rom by extension: D:\Arcade\Sega Saturn\Roms\Guardian Heroes (USA)\*.lzh
6300:19:51:519 | RL | INFO | +0 | CheckPaths - Looking for rom: D:\Arcade\Sega Saturn\Roms\Guardian Heroes (USA).gzip
6400:19:51:519 | RL | INFO | +0 | CheckPaths - Looking for rom by name in subfolder: D:\Arcade\Sega Saturn\Roms\Guardian Heroes (USA)\Guardian Heroes (USA).gzip
6500:19:51:519 | RL | INFO | +0 | CheckPaths - Looking for rom by extension: D:\Arcade\Sega Saturn\Roms\Guardian Heroes (USA)\*.gzip
6600:19:51:519 | RL | INFO | +0 | CheckPaths - Looking for rom: D:\Arcade\Sega Saturn\Roms\Guardian Heroes (USA).tar
6700:19:51:519 | RL | INFO | +0 | CheckPaths - Looking for rom by name in subfolder: D:\Arcade\Sega Saturn\Roms\Guardian Heroes (USA)\Guardian Heroes (USA).tar
6800:19:51:519 | RL | INFO | +0 | CheckPaths - Looking for rom by extension: D:\Arcade\Sega Saturn\Roms\Guardian Heroes (USA)\*.tar
6900:19:51:519 | RL | INFO | +0 | CheckPaths - Looking for rom: D:\Arcade\Sega Saturn\Roms\Guardian Heroes (USA).zip
7000:19:51:519 | RL | INFO | +0 | CheckPaths - Found rom: D:\Arcade\Sega Saturn\Roms\Guardian Heroes (USA).zip
7100:19:51:519 | RL | INFO | +0 | CheckPaths - Ended
7200:19:51:519 | RL | INFO | +0 | BuildScript - User Variables:
73 ;----------------------------------------------------------------------------
74 ; INJECTED VARIABLES
75 ;----------------------------------------------------------------------------
76
77 #NoTrayIcon
78 #InstallKeybdHook
79 MiscUtils.DetectHiddenWindows("On")
80 SetTitleMatchMode, 2
81 SendMode, Event
82 Global RLLog
83 Global RLObject
84 0 := "12"
85 rlPath := "D:\Arcade\RocketLauncher"
86 pluginPath := "D:\Arcade\RocketLauncher\Plugins"
87 pluginName := "HyperSpin"
88 pluginExt := ".plugin"
89 contextOnExit := "1"
90 rlMode := ""
91 rlTitle := "RocketLauncher"
92 rlVersion := "1.2.0.1"
93 rlAuthor := "djvj"
94 rlURL := "www.rlauncher.com"
95 langFile := "D:\Arcade\RocketLauncher\Data\Language\Localization.ini"
96 primMonitor := "1"
97 frontendPID := ""
98 frontendPath := "D:\Arcade"
99 frontendExe := "HyperSpin.exe"
100 frontendExt := "exe"
101 frontendName := "HyperSpin"
102 frontendDrive := "D"
103 exitEmulatorKey := "~Esc"
104 restoreFE := "false"
105 exitScriptKey := "~q & ~s"
106 toggleCursorKey := "~e & ~t"
107 emuFullPath := "D:\Arcade\Emulators\RetroArch\retroarch.exe"
108 emuPath := "D:\Arcade\Emulators\RetroArch"
109 emuName := "RetroArch"
110 emuExt := "exe"
111 baseRomPath := ""
112 romPath := "D:\Arcade\Sega Saturn\Roms"
113 romPathFromIni := "D:\Arcade\Sega Saturn\Roms|D:\Arcade\Sega Saturn Japan\roms"
114 romExtension := ".zip"
115 romExtensionOrig := ".zip"
116 romExtensions := "lzh|gzip|tar|zip|7z|rar|mgw|bs|sfc|smc|fds|gba|bin|a26|col|sg|sc|gb|gbc|nes|ngc|ngp|gg|sms|md|a26|a52|pce|cso|iso|smc|cdi|sg|nds|vb|rom|z64|n64|j64|lnx|wsc|ws|32x|a78|ST|STT|MSA|DIM|STZ|STS|STC|ZIP|RAR|7Z|STX|TXT|tap|cpr|dsk|ipf|gme|adf|fdi|hdf|cue|iso|ccd|toc|lha|uae|adf|dms"
117 executable := "retroarch.exe"
118 systemDbName := "Sega Saturn"
119 systemName := "Sega Saturn"
120 dbPath := ""
121 dbName := "Guardian Heroes (USA)"
122 dbExt := ""
123 romFoundByExt := ""
124 romName := "Guardian Heroes (USA)"
125 romMapPath := ""
126 romMappingEnabled := "false"
127 romMappingLaunchMenuEnabled := "false"
128 romMappingFirstMatchingExt := "false"
129 romMappingShowAllRomsInArchive := "true"
130 romMappingNumberOfGamesByScreen := "7"
131 romMappingHideParent := "false"
132 romMappingMenuWidth := "300"
133 romMappingMenuMargin := "50"
134 romMappingTextFont := "Bebas Neue"
135 romMappingTextOptions := "cFFFFFFFF r4 s40 Bold"
136 romMappingDisabledTextColor := "ff888888"
137 romMappingTextSizeDifference := "5"
138 romMappingTextMargin := "10"
139 romMappingTitleTextFont := "Bebas Neue"
140 romMappingTitleTextOptions := "cFFFFFFFF r4 s60 Bold"
141 romMappingTitle2TextFont := "Bebas Neue"
142 romMappingTitle2TextOptions := "cFFFFFFFF r4 s15 Bold"
143 romMappingGameInfoTextFont := "Bebas Neue"
144 romMappingGameInfoTextOptions := "cFFFFFFFF r4 s15 Regular"
145 romMappingGameNameTextFont := "Bebas Neue"
146 romMappingGameNameTextOptions := "cFFFFFFFF r4 s40 Regular"
147 romMappingBackgroundBrush := "aa000000"
148 romMappingColumnBrush := "33000000"
149 romMappingButtonBrush1 := "6f000000"
150 romMappingButtonBrush2 := "33000000"
151 romMappingBackgroundAlign := "Stretch and Lose Aspect"
152 romMappingMenuFlagWidth := "40"
153 romMappingMenuFlagSeparation := "5"
154 romMappingDefaultMenuList := "FullList"
155 romMappingSingleFilteredRomAutomaticLaunch := "false"
156 altArchiveNameOnly := ""
157 altRomNameOnly := ""
158 altArchiveAndRomName := ""
159 altArchiveAndManyRomNames := ""
160 altRomNamesOnly := ""
161 romMapScenario := ""
162 skipchecks := "false"
163 romMatchExt := "true"
164 blockInputTime := "0"
165 blockInputFile := "D:\Arcade\RocketLauncher\Module Extensions\BlockInput.exe"
166 errorLevelReporting := "false"
167 lockLaunch := "false"
168 lockLaunchGame := ""
169 screenRotationAngle := "0"
170 screenRotationAngleGame := ""
171 setResolution := ""
172 logFile := ""
173 logLabel := [" INFO"," WARNING"," ERROR"," DEBUG"," TRACE"]
174 logLevel := "1"
175 logShowDebugConsole := "false"
176 logShowCommandWindow := "false"
177 logCommandWindow := "false"
178 logIncludeModule := "true"
179 logIncludeFileProperties := "false"
180 logIncludeDLLLogs := "false"
181 errorSounds := "true"
182 rlDebugConsoleStdout := ""
183 sysLang := "English_United_States"
184 sysType := "64-bit"
185 broadcastWindowTitle := ""
186 navUpKey := "Up"
187 navDownKey := "Down"
188 navLeftKey := "Left"
189 navRightKey := "Right"
190 navSelectKey := "Enter"
191 navP2UpKey := "Numpad8"
192 navP2DownKey := "Numpad2"
193 navP2LeftKey := "Numpad4"
194 navP2RightKey := "Numpad6"
195 navP2SelectKey := "NumpadEnter"
196 originalWidth := "1920"
197 originalHeight := "1080"
198 vdEnabled := "true"
199 vdFullPath := "C:\Program Files (x86)\DAEMON Tools Lite\DTLite.exe"
200 vdUseSCSI := "false"
201 vdDriveLetter := "k"
202 vdDriveLetterScsi := ""
203 vdAddDrive := "true"
204 demulShooterPath := "D:\Arcade\RocketLauncher\Profiles\Demulshooter\DemulShooter.exe"
205 servoStikEnabled := "false"
206 servoStikExitMode := "false"
207 ledblinkyEnabled := "false"
208 ledblinkySystemName := ""
209 ledblinkyFullPath := ""
210 ledblinkyProfilePath := "D:\Arcade\RocketLauncher\Profiles\LEDBlinky"
211 ledblinkyRLProfile := "D:\Arcade\RocketLauncher\Profiles\LEDBlinky\RocketLauncher"
212 winIPACFullPath := ""
213 ultraMapEnabled := "false"
214 ultraMapFullPath := ""
215 emuIdleShutdown := "0"
216 launchPasswordHash := "UpUpDownDownLeftRightLeftRight"
217 cursorSize := ""
218 hideCursor := "false"
219 hideEmu := "false"
220 hideFE := "false"
221 suspendFE := "false"
222 fadeIn := "false"
223 fadeInDuration := "500"
224 fadeInTransitionAnimation := "DefaultAnimateFadeIn"
225 fadeInDelay := "3000"
226 fadeInExitDelay := "0"
227 fadeOutExitDelay := "0"
228 fadeOut := "false"
229 fadeOutExtraScreen := "false"
230 fadeOutDuration := "500"
231 fadeOutTransitionAnimation := "DefaultAnimateFadeOut"
232 fadeOutDelay := "0"
233 fadeLyrInterpolation := "7"
234 fadeMuteEmulator := "false"
235 fadeUseBackgrounds := "true"
236 fadeClickThrough := "false"
237 fadeSounds := "true"
238 fade7zProgressMode := "extraction"
239 fadeWidthBaseRes := "1920"
240 fadeHeightBaseRes := "1080"
241 fadeLyr1Color := "FF000000"
242 fadeLyr1AlignImage := "Stretch and Lose Aspect"
243 fadeLyr2Pos := "No Alignment"
244 fadeLyr2X := ""
245 fadeLyr2Y := ""
246 fadeLyr2W := ""
247 fadeLyr2H := ""
248 fadeLyr2Adjust := "1"
249 fadeLyr2PicPad := "0"
250 fadeLyr2Prefix := "Extra Layer 1 - Console"
251 fadeLyr3Pos := "Center"
252 fadeLyr3X := "450"
253 fadeLyr3Y := "450"
254 fadeLyr3W := ""
255 fadeLyr3H := ""
256 fadeLyr3Adjust := "0.8"
257 fadeLyr3PicPad := "0"
258 fadeLyr3Speed := "750"
259 fadeLyr3Animation := "DefaultFadeAnimation"
260 fadeLyr37zAnimation := "DefaultFadeAnimation"
261 fadeLyr3Type := "imageandbar"
262 fadeLyr3ImgFollow7zProgress := "true"
263 fadeLyr3Repeat := "1"
264 fadeLyr3BackImageTransparency := "30"
265 fadeLyr3StaticPos := "No Alignment"
266 fadeLyr3StaticX := ""
267 fadeLyr3StaticY := "870|1575"
268 fadeLyr3StaticW := ""
269 fadeLyr3StaticH := ""
270 fadeLyr3StaticAdjust := "1"
271 fadeLyr3StaticPicPad := "0"
272 fadeLyr3StaticPrefix := "Info Bar"
273 fadeLyr4Adjust := "1"
274 fadeLyr4X := "1490|952"
275 fadeLyr4Y := "740|1596"
276 fadeLyr4W := ""
277 fadeLyr4H := ""
278 fadeLyr4Pos := "No Alignment"
279 fadeLyr4FPS := "50"
280 fadeLyr4PicPad := "0"
281 fadeTranspGifColor := "FFFFFF"
282 fadeBarWindow := "Image"
283 fadeBarWindowX := ""
284 fadeBarWindowY := ""
285 fadeBarWindowW := "900"
286 fadeBarWindowH := "180"
287 fadeBarWindowR := "30"
288 fadeBarWindowM := "30"
289 fadeBarWindowHatchStyle := "8"
290 fadeBar := "7zOnly"
291 fadeProgressDuration := "0"
292 fadeBarBack := "true"
293 fadeBarBackColor := "FF555555"
294 fadeBarH := "30"
295 fadeBarR := "10"
296 fadeBarColor := "DD00BFFF"
297 fadeBarHatchStyle := "8"
298 fadeBarPercentageText := "true"
299 fadeBarInfoText := "true"
300 fadeBarXOffset := "0"
301 fadeBarYOffset := "150"
302 fadeRomInfoDescription := "filtered text"
303 fadeRomInfoSystemName := "disabled"
304 fadeRomInfoYear := "text with label"
305 fadeRomInfoDeveloper := "text with label"
306 fadeRomInfoPublisher := "text with label"
307 fadeRomInfoGenre := "disabled"
308 fadeRomInfoRating := "image"
309 fadeRomInfoOrder := "Description|SystemName|Year|Manufacturer|Genre|Rating"
310 fadeRomInfoTextPlacement := "User Defined"
311 fadeRomInfoTextMargin := "7"
312 fadeRomInfoText1Options := "w1600|787 h90 x165 y870|1575 cFFE1E1E1 r4 s90 Left Regular"
313 fadeRomInfoText2Options := "w400 x8 y15 cFF555555 r4 s60 Bold"
314 fadeRomInfoText3Options := "w310 x165 y960|1665 cFFE1E1E1 r4 s66 Left Regular"
315 fadeRomInfoText4Options := "w1305|492 h66 x460 y960|1665 cFFE1E1E1 r4 s66 Left Regular"
316 fadeRomInfoText5Options := "cFF555555 r4 s42 Bold"
317 fadeRomInfoText6Options := "h135 x15 y885|1590 cFFCFCFCA r4 s120 Regular"
318 fadeRomInfoText7Options := "h135 x15 y885|1590 cFFCFCFCA r4 s120 Regular"
319 fadeStats_Number_of_Times_Played := "text with label"
320 fadeStats_Last_Time_Played := "text with label"
321 fadeStats_Average_Time_Played := "text with label"
322 fadeStats_Total_Time_Played := "text with label"
323 fadeStats_System_Total_Played_Time := "text with label"
324 fadeStats_Total_Global_Played_Time := "text with label"
325 fadeStatsInfoOrder := "Number_of_Times_Played|Last_Time_Played|Average_Time_Played|Total_Time_Played|System_Total_Played_Time|Total_Global_Played_Time"
326 fadeStatsInfoTextPlacement := "topRight"
327 fadeStatsInfoTextMargin := "7"
328 fadeStatsInfoText1Options := "cFFB4B4B4 r4 s22 Bold"
329 fadeStatsInfoText2Options := "cFFB4B4B4 r4 s22 Bold"
330 fadeStatsInfoText3Options := "cFFB4B4B4 r4 s22 Bold"
331 fadeStatsInfoText4Options := "cFFB4B4B4 r4 s22 Bold"
332 fadeStatsInfoText5Options := "cFFB4B4B4 r4 s22 Bold"
333 fadeStatsInfoText6Options := "cFFB4B4B4 r4 s22 Bold"
334 fadeText1X := "0"
335 fadeText1Y := "0"
336 fadeText1Options := "cFFB4B4B4 r4 s30 Right Bold"
337 fadeText1 := "Extraction In Progress, Please Wait"
338 fadeText2X := "0"
339 fadeText2Y := "0"
340 fadeText2Options := "cFFB4B4B4 r4 s30 Right Bold"
341 fadeText2 := "Extraction Complete, Ready"
342 fadeText3 := "Loading Game"
343 fadeText4 := "Loading Complete"
344 fadeFont := "Bebas Neue"
345 fadeSystemAndRomLayersOnly := "false"
346 fadeExtractionTime := "disabled"
347 fadeExtractionTimeTextX := "0"
348 fadeExtractionTimeTextY := "0"
349 fadeExtractionTimeTextOptions := "cFF555555 r4 s20 Bold"
350 fadeInterruptKey := ""
351 detectFadeErrorEnabled := "true"
352 fadeImgPath := "D:\Arcade\RocketLauncher\Media\Fade"
353 RLDataPath := "D:\Arcade\RocketLauncher\Data"
354 RLMediaPath := "D:\Arcade\RocketLauncher\Media"
355 RLErrSoundPath := "D:\Arcade\RocketLauncher\Media\Sounds\Error"
356 modulesPath := "D:\Arcade\RocketLauncher\Modules"
357 moduleFullName := "D:\Arcade\RocketLauncher\Modules\RetroArch\RetroArch.ahk"
358 moduleName := "RetroArch"
359 modulePath := "D:\Arcade\RocketLauncher\Modules\RetroArch"
360 moduleExtension := "ahk"
361 moduleExtensionsPath := "D:\Arcade\RocketLauncher\Module Extensions"
362 libPath := "D:\Arcade\RocketLauncher\Lib"
363 sevenZEnabled := "true"
364 sevenZPath := "D:\Arcade\RocketLauncher\Module Extensions\7z.exe"
365 sevenZDllPath := "D:\Arcade\RocketLauncher\Module Extensions\7z.dll"
366 sevenZExtractPath := "D:\Arcade\cache"
367 sevenZExtractPathOrig := ""
368 sevenZAttachSystemName := "false"
369 sevenZDelTemp := "true"
370 sevenZFormats := ".zip|.rar|.7z|.lha|.lzh|.gzip|.tar"
371 sevenZFormatsNoP := "zip|rar|7z|lha|lzh|gzip|tar"
372 sevenZFormatsRegEx := "\.zip|\.rar|\.7z|\.lha|\.lzh|\.gzip|\.tar"
373 sevenZGamesToKeep := ""
374 sevenZDeletePerSystem := "false"
375 sevenZExtensions := "zip|rar|7z|lha|lzh|gzip|tar"
376 7zExtractPath := "D:\Arcade\cache"
377 mgEnabled := "false"
378 mgKey := "~NumpadSub"
379 mgBackgroundColor := "FF000000"
380 mgSidePadding := "0.2"
381 mgWidthBaseRes := "1920"
382 mgHeightBaseRes := "1080"
383 mgYOffset := "500"
384 mgFont := "Arial"
385 mgText1Options := "x10p y30p w80p Center cBBFFFFFF r4 s100 BoldItalic"
386 mgText1Text := "Please select a game"
387 mgText2Options := "w96p cFFFFFFFF r4 s50 Center BoldItalic"
388 mgText2Offset := "70"
389 mgUseSound := "true"
390 mgSoundfreq := "300"
391 mgExitEffect := "none"
392 mgSelectedEffect := "rotate"
393 mgUseGameArt := "false"
394 mgCandidate := ""
395 mgValidTypes := "\(Disc|\(Disk|\(Cart|\(Tape|\(Cassette|\(Part|\(Side"
396 mgOnLaunch := "false"
397 pauseEnabled := "true"
398 pauseKey := "~NumpadAdd|2joy13"
399 pauseBackToMenuBarKey := "X"
400 pauseZoomInKey := "C"
401 pauseZoomOutKey := "V"
402 pauseScreenshotKey := "~PrintScreen"
403 pauseHiToTextPath := "D:\Arcade\RocketLauncher\Module Extensions\HiToText.exe"
404 pauseSaveStateKeyCodes := "{Shift down}{1 down}{1 up}{Shift up}{F2 down}{F2 up}|{Shift down}{2 down}{2 up}{Shift up}{F2 down}{F2 up}|{Shift down}{3 down}{3 up}{Shift up}{F2 down}{F2 up}|{Shift down}{4 down}{4 up}{Shift up}{F2 down}{F2 up}|{Shift down}{5 down}{5 up}{Shift up}{F2 down}{F2 up}|{Shift down}{6 down}{6 up}{Shift up}{F2 down}{F2 up}|{Shift down}{7 down}{7 up}{Shift up}{F2 down}{F2 up}|{Shift down}{8 down}{8 up}{Shift up}{F2 down}{F2 up}|{Shift down}{9 down}{9 up}{Shift up}{F2 down}{F2 up}|{Shift down}{10 down}{10 up}{Shift up}{F2 down}{F2 up}"
405 pauseLoadStateKeyCodes := "{Shift down}{1 down}{1 up}{Shift up}{F4 down}{F4 up}|{Shift down}{2 down}{2 up}{Shift up}{F4 down}{F4 up}|{Shift down}{3 down}{3 up}{Shift up}{F4 down}{F4 up}|{Shift down}{4 down}{4 up}{Shift up}{F4 down}{F4 up}|{Shift down}{5 down}{5 up}{Shift up}{F4 down}{F4 up}|{Shift down}{6 down}{6 up}{Shift up}{F4 down}{F4 up}|{Shift down}{7 down}{7 up}{Shift up}{F4 down}{F4 up}|{Shift down}{8 down}{8 up}{Shift up}{F4 down}{F4 up}|{Shift down}{9 down}{9 up}{Shift up}{F4 down}{F4 up}|{Shift down}{10 down}{10 up}{Shift up}{F4 down}{F4 up}"
406 keyboardEncoder := ""
407 keyboardEncoderEnabled := "true"
408 keymapperEnabled := "true"
409 keymapperAHKMethod := "false"
410 keymapper := "joytokey"
411 xpadderFullPath := "D:\Arcade\RocketLauncher\Profiles\JoyToKey\JoyToKey.exe"
412 joyToKeyFullPath := "D:\Arcade\RocketLauncher\Profiles\JoyToKey\JoyToKey.exe"
413 profilePath := "D:\Arcade\RocketLauncher\Profiles"
414 keymapperProfilePath := "D:\Arcade\RocketLauncher\Profiles\joytokey"
415 keymapperFrontEndProfileName := "HyperSpin"
416 keymapperFrontEndProfile := "joytokey"
417 keymapperRocketLauncherProfileEnabled := "true"
418 joyIDsEnabled := "true"
419 joyIDsPreferredControllersGlobal := "Controller (XBOX 360 For Windows)"
420 joyIDsPreferredControllersSystem := "use_global"
421 joyIDsPreferredControllersOnExit := ""
422 CustomJoyNamesEnabled := "false"
423 CustomJoyNames := ""
424 rotateMethod := "irotate"
425 FEProfile := "D:\Arcade\RocketLauncher\Profiles\joytokey\HyperSpin"
426 defaultProfile := "D:\Arcade\RocketLauncher\Profiles\joytokey\_Default"
427 systemProfile := "D:\Arcade\RocketLauncher\Profiles\joytokey\Sega Saturn"
428 xPadderSystemProfile := "D:\Arcade\RocketLauncher\Profiles\joytokey\Sega Saturn\_Default"
429 emuProfile := "D:\Arcade\RocketLauncher\Profiles\joytokey\Sega Saturn\RetroArch"
430 romProfile := "D:\Arcade\RocketLauncher\Profiles\joytokey\Sega Saturn\Guardian Heroes (USA)"
431 RocketLauncherProfile := "D:\Arcade\RocketLauncher\Profiles\joytokey\RocketLauncher"
432 blankProfile := "D:\Arcade\RocketLauncher\Profiles\joytokey\blank"
433 ahkFEProfile := "D:\Arcade\RocketLauncher\Profiles\AHK\HyperSpin"
434 ahkDefaultProfile := "D:\Arcade\RocketLauncher\Profiles\AHK\_Default"
435 ahkSystemProfile := "D:\Arcade\RocketLauncher\Profiles\AHK\Sega Saturn"
436 ahkEmuProfile := "D:\Arcade\RocketLauncher\Profiles\AHK\Sega Saturn\RetroArch"
437 ahkRomProfile := "D:\Arcade\RocketLauncher\Profiles\AHK\Sega Saturn\Guardian Heroes (USA)"
438 ahkRocketLauncherProfile := "D:\Arcade\RocketLauncher\Profiles\AHK\RocketLauncher"
439 bezelEnabled := "false"
440 bezelICEnabled := "false"
441 shaderName := "false"
442 shaderColor := ""
443 shaderTransparency := ""
444 statisticsEnabled := "true"
445 pressDuration := "-1"
446 emuVolume := "1"
447 dxwndIni := "D:\Arcade\RocketLauncher\Module Extensions\dxwnd\dxwnd.ini"
448 dxwndFullPath := "D:\Arcade\RocketLauncher\Module Extensions\dxwnd\dxwnd.exe"
449 qResFullPath := "D:\Arcade\RocketLauncher\Module Extensions\QRes.exe"
450 mon1O := ""
451 pacDrivedllFile := "D:\Arcade\RocketLauncher\Module Extensions\PacDrive32.dll"
452 userFadeAnimIniFile := "D:\Arcade\RocketLauncher\Lib\User Fade Animations.ini"
453 testFile := ""
454 testDuration := ""
455 initialErrorMode := "0"
456
45700:19:51:521 | RL | INFO | +0 | BuildScript - Loaded XHotkey Init.ahk scripts
45800:19:51:521 | RL | INFO | +0 | BuildScript - Loaded Keymapper Init.ahk scripts
45900:19:51:521 | RL | INFO | +0 | BuildScript - Loaded Pause Init.ahk scripts
46000:19:51:521 | RL | INFO | +0 | BuildScript - Loaded Statistics Init.ahk scripts
46100:19:51:521 | RL | INFO | +0 | BuildScript - Validating module
46200:19:51:525 | RL | INFO | +0 | BuildScript - Validation complete
46300:19:51:525 | RL | INFO | +0 | BuildScript - Module:
464 MEmu := "RetroArch"
465 MEmuV := "v1.3.6"
466 MURL := ["http://themaister.net/retroarch.html"]
467 MAuthor := ["djvj","zerojay","SweatyPickle"]
468 MVersion := "2.4.3"
469 MCRC := "699AB8F7"
470 iCRC := "FB2DB971"
471 MID := "635038268922229162"
472 MSystem := ["Acorn BBC Micro","AAE","Amstrad CPC","Amstrad GX4000","APF Imagination Machine","Applied Technology MicroBee","Apple IIGS","Arcade Classics","Atari 2600","Atari 5200","Atari 7800","Atari 8-Bit","Atari Classics","Atari Jaguar","Atari Lynx","Atari ST","Atari XEGS","Bally Astrocade","Bandai Gundam RX-78","Bandai Super Vision 8000","Bandai Wonderswan","Bandai Wonderswan Color","Canon X07","Capcom Classics","Capcom Play System","Capcom Play System II","Capcom Play System III","Casio PV-1000","Casio PV-2000","Cave","Coleco ADAM","ColecoVision","Commodore MAX Machine","Commodore Amiga","Creatronic Mega Duck","Data East Classics","Dragon Data Dragon","Emerson Arcadia 2001","Entex Adventure Vision","Elektronika BK","Epoch Game Pocket Computer","Epoch Super Cassette Vision","Exidy Sorcerer","Fairchild Channel F","Final Burn Alpha","Funtech Super Acan","GamePark 32","GCE Vectrex","Hartung Game Master","Interton VC 4000","Irem Classics","JungleTac Sport Vii","Konami Classics","MAME","Magnavox Odyssey 2","Microsoft MSX","Microsoft MSX2","Matra & Hachette Alice","Mattel Aquarius","Mattel Intellivision","Midway Classics","Namco Classics","Namco System 22","NEC PC Engine","NEC PC Engine-CD","NEC PC-FX","NEC TurboGrafx-16","NEC SuperGrafx","NEC TurboGrafx-CD","Nintendo 64","Nintendo 64DD","Nintendo Arcade Systems","Nintendo Classics","Nintendo DS","Nintendo Entertainment System","Nintendo Famicom","Nintendo Famicom Disk System","Nintendo Game Boy","Nintendo Game Boy Color","Nintendo Game Boy Japan","Nintendo Game Boy Advance","Nintendo Game & Watch","Nintendo Super Game Boy","Nintendo Pokemon Mini","Nintendo Virtual Boy","Nintendo Super Famicom","Nintendo Satellaview","Nintendo SuFami Turbo","Panasonic 3DO","Elektronska Industrija Pecom 64","Philips CD-i","Philips Videopac","RCA Studio II","ScummVM","Sega 32X","Sega Classics","Sega Mega Drive 32X","Sega Mark III","Sega SC-3000","Sega SG-1000","Sega CD","Sega Dreamcast","Sega Game Gear","Sega Genesis","Sega Master System","Sega Mega Drive","Sega Meganet","Sega Nomad","Sega Pico","Sega Saturn","Sega Saturn Japan","Sega VMU","Sega ST-V","Sharp X1","Sharp X68000","Sinclair ZX Spectrum","Sinclair ZX81","Sony PlayStation","Sony PlayStation Minis","Sony PocketStation","Sony PSP","Sony PSP Minis","Sord M5","SNK Classics","SNK Neo Geo","SNK Neo Geo AES","SNK Neo Geo MVS","SNK Neo Geo Pocket","SNK Neo Geo CD","SNK Neo Geo Pocket Color","Spectravideo","Super Nintendo Entertainment System","Taito Classics","Tandy TRS-80 Color Computer","Technos","Texas Instruments TI 99-4A","Thomson MO5","Thomson TO7","Tiger Game.com","Tiki-100","Tomy Tutor","VTech CreatiVision","Watara Supervision","Williams Classics"]
473 ;----------------------------------------------------------------------------
474 ; Notes:
475 ; If the emu doesn't load and you get no error, usually this means the LibRetro DLL is not working!
476 ; Devs stated they will never add support for mounted images (like via DT)
477 ; Fullscreen is controlled via the module setting in RocketLauncherUI
478 ; This module uses the CLI version of RetroArch (retroarch.exe), not the GUI (retroarch-phoenix.exe).
479 ; The emu may make a mouse cursor appear momentarily during launch, MouseMove and hide_cursor seem to have no effect
480 ; Enable 7z support for archived roms
481 ; Available CLI options: https://github.com/PyroFilmsFX/iOS/blob/master/docs/retroarch.1
482 ;
483 ; LibRetro DLLs:
484 ; LibRetro DLLs come with the emu, but here is another source for them: http://forum.themaister.net/
485 ; Whatever cores you decide to use, make sure they are extracted anywhere in your Emu_Path\cores folder. The module will find and load the default core unless you choose a custom one for each system.
486 ; You can find supported cores that Retroarch supports simply by downloading them from the "retroarch-phoenix.exe" or by visiting here: https://github.com/libretro/libretro.github.com/wiki/Supported-cores
487 ; Some good discussion on cores and filters: http://forum.themaister.net/viewtopic.php?id=270
488 ;
489 ; SRM files:
490 ; The srm files location is determined by the configuration file used (savefile_directory = ":\whatever") The default RetroArch srm directory is ":\saves" You can select to sort into core folders (ie: :/saves/Mednafen PSX) by changing sort_savefiles_enable = "true" in the configuration file.
491 ;
492 ; Save states:
493 ; The save state files location is determined by the configuration file used (savestate_directory = ":\whatever") The default RetroArch savestate directory is ":\states" You can select to sort into core folders (ie: :/states/Mednafen PSX) by changing sort_savestates_enable = "true" in the configuration file.
494 ;
495 ; Config files:
496 ; By default, the module looks for config files in a folder called config in the RetroArch folder. Example: C:\emus\RetroArch\config. You can change this folder to anything you like by changing the module's ConfigFolder setting in RocketLauncherUI. This will be the config folder for the module and will NOT change the location of RetroArch's own /config directory.
497 ; RetroArch's global config file is called "retroarch.cfg". RetroArch will use a system cfg file named to match your System Name (example: Nintendo Entertainment System.cfg).
498 ; RetroArch will also load core config files named after the core name. Example: nestopia_libretro.cfg
499 ; This allows different settings globally, for each system, and for each core. If you want all systems to use the same retroarch.cfg, do not have any system or core cfg files, only have the retroarch.cfg.
500 ; If a core config exists, it takes precedence over the global config. And if a system config exists, it takes precedence over the core config.
501 ;
502 ; Core Options:
503 ; By default, RetroArch creates a retroarch-core-options.cfg in it's root directory. Example: C:\emus\RetroArch\retroarch-core-options.cfg. This will always be used if the default RetroArch.cfg is loaded. If a configuration file from any other location is used, RetroArch will create a retroarch-core-options.cfg file in the root of that directory. The module has an option to have RetroArch use only the default retroarch-core-options.cfg file no matter the path of the config directory or location of the configuiration file being used. To enable this option set Single_Core_Options to true.
504
505 ; MultiGame:
506 ; MultiGame support is currently only available for the Mednafen PSX core. Retroarch uses the same method as Mednafen to load multi-disc games. This method involves m3u playlists which are commonly used for music. The m3u files needed to load multi-disc games are generated for you by the module when you launch a multi-disc game and are saved to your corresponding rom directory. Due to m3u limitations, your multi-disc roms/images cannot be archived -- they must be unzipped. All single disc games can remain archived and you can still enable 7z under system settings. If you do not wish to use MultiGame support you can archive your roms/images and m3u generation will be skipped on launch.
507 ; The m3u files generated by the module contain a list of paths to all roms/images in the multi-disc set. Retroarch automatically loads the first path in the m3u so the first path will always be the disc you are loading. For example, Final Fantasy VII has 3 discs and if you load Disc 2 first, the order of the paths in the m3u will be disc 2, disc 3, disc 1. If you load Disc 3 first, the order will be disc 3, disc 1, disc 2. The module anticipates this and will load the correct disk, selected from the Pause/MultiDisk menus. However if you choose to manually use Retroarch's UI or disk swap keys to change discs, you will need to keep this in mind.
508 ; In order for RocketLauncher's MultiGame UI to swap discs, you must define Eject_Toggle_Key, Next_Disk_Key, and Previous_Disk_Key under global settings for the emulator in RocketLauncher. Because AHK and Retroarch use different naming conventions for some keyboard keys, it is best to use a letter, a number, or F1-F12.
509 ;
510 ; MAME:
511 ; MAME BIOS roms should be placed in Rom Path's directory. Some systems require the BIOS roms be placed in the MAME internal name directory. (Example: :\Rom Folder\a5200). The MAME BIOS_Roms_Folder option will have no effect unless you are using an older version of the mess core.
512 ;
513 ; System Specific Notes:
514 ; Microsoft MSX/MSX2: Launch an MSX game and in the core options, set the console to be an MSX2 and it will play both just fine.
515 ; Nintendo Famicom Disk System - Requires disksys.rom be placed in the folder you define as system_directory in the RetroArch's cfg.
516 ; Sega CD - Requires "bios_CD_E.bin", "bios_CD_J.bin", "bios_CD_U.bin" all be placed in the folder you define as system_directory in the RetroArch's cfg.
517 ; Super Nintendo Entertainment System - requires split all 10 dsp# & st### roms all be placed in the folder you define as system_directory in the RetroArch's cfg. Many games, like Super Mario Kart require these.
518 ; NEC TurboGrafx-CD (using pce fast core) - Requires "syscard3.pce" be placed in the folder you define as system_directory in the RetroArch's cfg.
519 ; NEC TurboGrafx-CD (using MAME core)
520 ; - You'll need to update a couple mame specific options in the Retroarch core options file to get it to boot from the cli. These should probably be updated automagically by the module. Turning softlists off, but might not need to.
521 ; mame_boot_from_cli = "enabled"
522 ; mame_softlists_enable = "disabled"
523 ; mame_softlists_auto_media = "disabled"
524 ; - Requires hash folder from MAME/MESS/UME, either from the source or release package. Save this in the system_directory you've defined for RetroArch. Something like \RetroArch\system\mame\hash\
525 ; - Requires the CD bios file(s) saved in the mame bios folder you've defined. Usually \RetroArch\system\mame\bios\
526 ; For PC Engine-CD you'll need the file "[cd] cd-rom system (japan) (v2.1).pce" zipped as cdsys.zip and saved in a pce subfolder in your bios path, so \RetroArch\system\mame\bios\pce\cdsys.zip
527 ; For PC Engine SuperGrafx-CD you'll need the file "[cd] super cd-rom system (japan) (v3.0).pce" zipped as scdsys.zip and saved in a pce subfolder in your bios path, so \RetroArch\system\mame\bios\pce\scdsys.zip
528 ; For TurboGrafx-CD you'll need the file "[cd] turbografx cd system card (usa) (v2.0).pce" zipped as cdsys.zip and saved in a tg16 subfolder in your bios path, so \RetroArch\system\mame\bios\tg16\cdsys.zip
529 ; For TurboDuo you'll need the file "[cd] turbografx cd super system card (usa) (v3.0).pce" zipped as scdsys.zip and saved in a tg16 subfolder in your bios path, so \RetroArch\system\mame\bios\tg16\scdsys.zip
530 ; Nintendo Super Game Boy - Set the Module setting in RocketLauncherUI SuperGameBoy to true to enable a system or only a rom to use SGB mode. This is not needed if your systemName is set to the official name of "Nintendo Super Game Boy". Requires "sgb.boot.rom" and "Super Game Boy (World).sfc" to be placed in the folder you define as system_directory in the RetroArch's cfg. This is needed if you want to use Super game boy mode and color palettes. Also requires using the latest bsnes core. Not all games support SGB mode.
531 ; Sony PSP/PlayStation Minis: To avoid the dialog box complaining about ppge_atlas.zim, download it from https://github.com/libretro/libretro-ppsspp/blob/master/assets/ppge_atlas.zim and place it in your Retroarch/system/PPSSPP/ directory.
532 ;----------------------------------------------------------------------------
533 StartModule()
534 BezelGUI()
535 FadeInStart()
536
537 primaryExe := new Emulator(emuPath . "\" . executable) ; instantiate emulator executable object
538 emuPrimaryWindow := new Window(new WindowTitle("RetroArch","RetroArch")) ; instantiate primary emulator window object
539 emuConsoleWindow := new Window(new WindowTitle("","ConsoleWindowClass")) ; instantiate emulator console window object
540
541 ; Here we define all supported systems for this module. This object controls how the module reacts to different systems. RetroArch can play a lot of systems, but needs to know what system you want to run, so this module has to adapt.
542 ; 1 - Official System Name in RocketLauncher
543 ; 2 - Short name used only for easy referencing within module
544 ; 3 - Default core
545 ; 4 - The system ID MAME core recognizes
546 RLLog.Debug("Module - Started building the " . MEmu . " object")
547 mTypeVar:="
548 ( LTrim
549 AAE|LibRetro_AAE|mame_libretro
550 Acorn BBC Micro|LibRetro_BBCB|mame_libretro|bbcb
551 Amstrad CPC|LibRetro_CPC|mame_libretro|cpc464
552 Amstrad GX4000|LibRetro_GX4K|mame_libretro|gx4000
553 APF Imagination Machine|LibRetro_APF|mame_libretro|apfimag
554 Apple IIGS|LibRetro_AIIGS|mame_libretro|apple2gs
555 Applied Technology MicroBee|LibRetro_MBEE|mame_libretro|mbeeic
556 Arcade Classics|LibRetro_ARCADE|mame_libretro
557 Atari 2600|LibRetro_2600|stella_libretro|a2600
558 Atari 5200|LibRetro_5200|mame_libretro|a5200
559 Atari 7800|LibRetro_7800|prosystem_libretro|a7800
560 Atari 8-Bit|LibRetro_ATARI8|mame_libretro|a800
561 Atari Classics|LibRetro_ACLS|mame_libretro
562 Atari Jaguar|LibRetro_JAG|virtualjaguar_libretro|jaguar
563 Atari Lynx|LibRetro_LYNX|handy_libretro|lynx
564 Atari ST|LibRetro_ST|hatari_libretro
565 Atari XEGS|LibRetro_XEGS|mame_libretro|xegs
566 Bally Astrocade|LibRetro_BAST|mame_libretro|astrocde
567 Bandai Gundam RX-78|LibRetro_BGRX|mame_libretro|rx78
568 Bandai Super Vision 8000|LibRetro_SV8K|mame_libretro|sv8000
569 Bandai Wonderswan|LibRetro_WSAN|mednafen_wswan_libretro|wswan
570 Bandai Wonderswan Color|LibRetro_WSANC|mednafen_wswan_libretro|wscolor
571 Canon X07|LibRetro_CX07|mame_libretro|x07
572 Capcom Classics|LibRetro_CAPC|mame_libretro
573 Capcom Play System|LibRetro_CPS1|fbalpha_libretro
574 Capcom Play System II|LibRetro_CPS2|fbalpha_libretro
575 Capcom Play System III|LibRetro_CPS3|mame_libretro
576 Casio PV-1000|LibRetro_CAS1K|mame_libretro|pv1000
577 Casio PV-2000|LibRetro_CAS2K|mame_libretro|pv2000
578 Cave|LibRetro_CAVE|mame_libretro
579 Coleco ADAM|LibRetro_ADAM|mame_libretro|adam
580 ColecoVision|LibRetro_COLEC|mame_libretro|coleco
581 Commodore Amiga|LibRetro_PUAE|puae_libretro
582 Commodore Max Machine|LibRetro_CMAX|mame_libretro|vic10
583 Creatronic Mega Duck|LibRetro_DUCK|mame_libretro|megaduck
584 Data East Classics|LibRetro_DATA|mame_libretro
585 Dragon Data Dragon|LibRetro_DRAG64|mame_libretro|dragon64
586 Elektronika BK|LibRetro_EBK|mame_libretro|bk0010
587 Elektronska Industrija Pecom 64|LibRetro_P64|mame_libretro|pecom64
588 Emerson Arcadia 2001|LibRetro_A2001|mame_libretro|arcadia
589 Entex Adventure Vision|LibRetro_AVISION|mame_libretro|advision
590 Epoch Game Pocket Computer|LibRetro_GPCKET|mame_libretro|gamepock
591 Epoch Super Cassette Vision|LibRetro_SCV|mame_libretro|scv
592 Exidy Sorcerer|LibRetro_SORCR|mame_libretro|sorcerer
593 Fairchild Channel F|LibRetro_CHANF|mame_libretro|channelf
594 Final Burn Alpha|LibRetro_FBA|fbalpha_libretro
595 Funtech Super Acan|LibRetro_SACAN|mame_libretro|supracan
596 GamePark 32|LibRetro_GP32|mame_libretro|gp32
597 GCE Vectrex|LibRetro_VECTX|mame_libretro|vectrex
598 Hartung Game Master|LibRetro_GMASTR|mame_libretro|gmaster
599 Interton VC 4000|LibRetro_VC4K|mame_libretro|vc4000
600 Irem Classics|LibRetro_IREM|mame_libretro
601 JungleTac Sport Vii|LibRetro_SPORTV|mame_libretro|vii
602 Konami Classics|LibRetro_KONC|mame_libretro
603 Magnavox Odyssey 2|LibRetro_ODYS2|mame_libretro|odyssey2
604 MAME|LibRetro_MAME|mame_libretro|mame
605 Matra & Hachette Alice|LibRetro_ALICE|mame_libretro|alice32
606 Mattel Aquarius|LibRetro_AQUA|mame_libretro|aquarius
607 Mattel Intellivision|LibRetro_INTV|mame_libretro|intv
608 MGT Sam Coupe|LibRetro_SAMCP|mame_libretro|
609 Microsoft MS-DOS|LibRetro_MSDOS|dosbox_libretro
610 Microsoft MSX|LibRetro_MSX|bluemsx_libretro
611 Microsoft MSX2|LibRetro_MSX2|bluemsx_libretro
612 Microsoft Windows 3.x|LibRetro_WIN3X|dosbox_libretro
613 Midway Classics|LibRetro_MIDC|mame_libretro
614 Namco Classics|LibRetro_NAMC|mame_libretro
615 Namco System 22|LibRetro_NAM2|mame_libretro
616 NEC PC Engine|LibRetro_PCE|mednafen_pce_fast_libretro|pce,cart
617 NEC PC Engine-CD|LibRetro_PCECD|mednafen_pce_fast_libretro|pce,cdrom
618 NEC PC-FX|LibRetro_PCFX|mednafen_pcfx_libretro
619 NEC SuperGrafx|LibRetro_SGFX|mednafen_supergrafx_libretro|sgx,cart
620 NEC TurboGrafx-16|LibRetro_TG16|mednafen_pce_fast_libretro|tg16,cart
621 NEC TurboGrafx-CD|LibRetro_TGCD|mednafen_pce_fast_libretro|tg16,cdrom
622 Nintendo 64|LibRetro_N64|mupen64plus_libretro|n64
623 Nintendo 64DD|LibRetro_N64|mupen64plus_libretro
624 Nintendo Arcade Systems|LibRetro_NINARC|mame_libretro
625 Nintendo Classics|LibRetro_NINC|mame_libretro
626 Nintendo DS|LibRetro_DS|desmume_libretro
627 Nintendo Entertainment System|LibRetro_NES|nestopia_libretro|nes
628 Nintendo Famicom|LibRetro_NFAM|nestopia_libretro
629 Nintendo Famicom Disk System|LibRetro_NFDS|nestopia_libretro|famicom
630 Nintendo Game Boy|LibRetro_GB|gambatte_libretro|gameboy
631 Nintendo Game Boy Advance|LibRetro_GBA|vba_next_libretro|gba
632 Nintendo Game Boy Color|LibRetro_GBC|gambatte_libretro|gbcolor
633 Nintendo Game Boy Japan|LibRetro_GBJ|gambatte_libretro|gameboy
634 Nintendo Game & Watch|LibRetro_GW|gw_libretro
635 Nintendo Pokemon Mini|LibRetro_POKE|mame_libretro|pokemini
636 Nintendo Satellaview|LibRetro_NSFS|snes9x_libretro
637 Nintendo SuFami Turbo|LibRetro_NSFST|snes9x_libretro
638 Nintendo Super Famicom|LibRetro_NSF|bsnes_balanced_libretro
639 Nintendo Super Game Boy|LibRetro_SGB|bsnes_balanced_libretro
640 Nintendo Virtual Boy|LibRetro_NVB|mednafen_vb_libretro|vboy
641 Othello Multivision|LibRetro_OTHO|genesis_plus_gx_libretro
642 Panasonic 3DO|LibRetro_3DO|4do_libretro
643 Philips CD-i|LibRetro_CDI|mame_libretro|cdimono1
644 Philips Videopac|LibRetro_PVID|mame_libretro|videopac
645 RCA Studio II|LibRetro_STUD2|mame_libretro|studio2
646 SCUMMVM|LibRetro_SCUMM|scummvm_libretro
647 Sega 32X|LibRetro_32X|picodrive_libretro|32x
648 Sega CD|LibRetro_SCD|genesis_plus_gx_libretro|segacd
649 Sega Classics|LibRetro_SEGC|mame_libretro
650 Sega Dreamcast|LibRetro_DCAST|reicast_libretro
651 Sega Game Gear|LibRetro_GG|genesis_plus_gx_libretro|gamegear
652 Sega Genesis|LibRetro_GEN|genesis_plus_gx_libretro|genesis
653 Sega Mark III|Libretro_SM3|genesis_plus_gx_libretro
654 Sega Master System|LibRetro_SMS|genesis_plus_gx_libretro|sms
655 Sega Mega Drive|LibRetro_GEN|genesis_plus_gx_libretro|megadriv
656 Sega Mega Drive 32X|LibRetro_MD32X|picodrive_libretro
657 Sega Meganet|LibRetro_GEN|genesis_plus_gx_libretro|genesis
658 Sega Nomad|LibRetro_GEN|genesis_plus_gx_libretro|genesis
659 Sega Pico|LibRetro_PICO|picodrive_libretro
660 Sega Saturn|LibRetro_SAT|yabause_libretro|saturn
661 Sega Saturn Japan|LibRetro_SAT|yabause_libretro|saturnjp
662 Sega SC-3000|LibRetro_SC3K|mame_libretro|sc3000
663 Sega SG-1000|LibRetro_SG1K|genesis_plus_gx_libretro
664 Sega ST-V|LibRetro_STV|mame_libretro
665 Sega VMU|LibRetro_SVMU|mame_libretro|svmu
666 Sharp X1|LibRetro_SX1|mame_libretro|x1
667 Sharp X68000|LibRetro_SX68000|mame_libretro|x68000
668 Sinclair ZX Spectrum|LibRetro_SPECZX|mame_libretro|spectrum
669 Sinclair ZX81|LibRetro_ZX81|81_libretro|zx81
670 SNK Classics|LibRetro_SNKC|mame_libretro
671 SNK Neo Geo|LibRetro_NEO|fbalpha_libretro
672 SNK Neo Geo AES|LibRetro_NEOAES|mame_libretro|aes
673 SNK Neo Geo CD|LibRetro_NEOCD|mame_libretro|neocdz
674 SNK Neo Geo MVS|LibRetro_NEOMVS|mame_libretro
675 SNK Neo Geo Pocket|LibRetro_NGP|mednafen_ngp_libretro|ngp
676 SNK Neo Geo Pocket Color|LibRetro_NGPC|mednafen_ngp_libretro|ngpc
677 Sony PlayStation|LibRetro_PSX|mednafen_psx_libretro|psu
678 Sony PlayStation Minis|LibRetro_PSXMIN|ppsspp_libretro
679 Sony PocketStation|LibRetro_POCKS|mame_libretro|pockstat
680 Sony PSP|LibRetro_PSP|ppsspp_libretro
681 Sony PSP Minis|LibRetro_PSP|ppsspp_libretro
682 Sord M5|LibRetro_SORD|mame_libretro|m5
683 Spectravideo|LibRetro_SV328|mame_libretro|svi328n
684 Super Nintendo Entertainment System|LibRetro_SNES|bsnes_balanced_libretro|snes
685 Taito Classics|LibRetro_TAIC|mame_libretro
686 Tandy TRS-80 Color Computer|LibRetro_TRS80|mame_libretro|coco3
687 Technos|LibRetro_TECHN|mame_libretro
688 Texas Instruments TI 99-4A|LibRetro_TI99|mame_libretro|ti99_4a
689 Thomson MO5|LibRetro_MO5|mame_libretro|mo5
690 Thomson TO7|LibRetro_TO7|mame_libretro|to7
691 Tiger Game.com|LibRetro_TCOM|mame_libretro|gamecom
692 Tiki-100|LibRetro_TIKI|mame_libretro|kontiki
693 Tomy Tutor|LibRetro_TOMY|mame_libretro|tutor
694 VTech CreatiVision|LibRetro_VTECH|mame_libretro|crvision
695 Watara Supervision|LibRetro_SUPRV|mame_libretro|svision
696 Williams Classics|LibRetro_WILLS|mame_libretro
697 )"
698 mType := Object()
699 Loop, Parse, mTypeVar, `n, `r
700 {
701 obj := {}
702 Loop, Parse, A_LoopField, |
703 {
704 If (A_Index = 1)
705 obj.System := A_LoopField
706 Else If (A_Index = 2)
707 obj.ID := A_LoopField
708 Else If (A_Index = 3)
709 obj.Core := A_LoopField
710 Else { ; 4
711 StringSplit, tmp, A_LoopField, `,
712 obj.MAMEID := tmp1
713 obj.MAMEMedia := tmp2
714 }
715 }
716 mType.Insert(obj["System"], obj)
717 }
718 RLLog.Debug("Module - Finished building the " . MEmu . " object")
719 ; For easier use throughout the module
720 retroSystem := mType[systemName].System
721 retroID := mType[systemName].ID
722 retroCore := mType[systemName].Core
723 retroMAMEID := mType[systemName].MAMEID
724 retroMAMEMedia := mType[systemName].MAMEMedia
725 RLLog.Info("Module - Using these system variables:")
726 RLLog.Info("Module - retroSystem: " . retroSystem)
727 RLLog.Info("Module - retroID: " . retroID)
728 RLLog.Info("Module - retroCore: " . retroCore)
729 RLLog.Info("Module - retroMAMEID: " . retroMAMEID)
730 RLLog.Info("Module - retroMAMEMedia: " . retroMAMEMedia)
731 If !retroSystem
732 ScriptError("Your systemName is: " . systemName . "`nIt is not one of the known supported systems for this " . MEmu . " module: " . moduleName)
733 If !retroCore
734 ScriptError("Your Core ID is: " . retroID . "`nCould not find a default core to use. Please update the module with a default core.")
735
736 Fullscreen := moduleIni.Read("Settings", "Fullscreen","true",,1)
737 configFolder := moduleIni.Read("Settings", "ConfigFolder",emuPath . "\config",,1)
738 singlecoreoptions := moduleIni.Read("Settings", "single_core_options","false",,1) = "true" ? ":\retroarch-core-options.cfg" : """"
739 mameRomPath := moduleIni.Read("MAME", "BIOS_Roms_Folder",,,1)
740 mameHideNag := If moduleIni.Read("MAME", "Hide_Nag_Screen","false",,1) = "true" ? "enabled" : "disabled"
741 mameHideInfo := If moduleIni.Read("MAME", "Hide_Info_Screen","false",,1) = "true" ? "enabled" : "disabled"
742 mameHideWarn := If moduleIni.Read("MAME", "Hide_Warning_Screen","false",,1) = "true" ? "enabled" : "disabled"
743 hideConsole := moduleIni.Read("Settings", "HideConsole","true",,1)
744 ejectToggleKey := moduleIni.Read("Settings", "Eject_Toggle_Key",,,1)
745 nextDiskKey := moduleIni.Read("Settings", "Next_Disk_Key",,,1)
746 prevDiskKey := moduleIni.Read("Settings", "Previous_Disk_Key",,,1)
747 core := moduleIni.Read(romName . "|" . systemName, "LibRetro_Core",retroCore,,1)
748 superGB := moduleIni.Read(romName . "|" . systemName, "SuperGameBoy","false",,1)
749 enableNetworkPlay := moduleIni.Read(romName . "|Network", "Enable_Network_Play","false",,1)
750 overlay := moduleIni.Read(romName . "|" . systemName, "Overlay",,,1)
751 videoShader := moduleIni.Read(romName . "|" . systemName, "VideoShader",,,1)
752 aspectRatioIndex := moduleIni.Read(romName . "|" . systemName, "AspectRatioIndex",,,1)
753 customViewportWidth := moduleIni.Read(romName . "|" . systemName, "CustomViewportWidth",,,1)
754 customViewportHeight := moduleIni.Read(romName . "|" . systemName, "CustomViewportHeight",,,1)
755 customViewportX := moduleIni.Read(romName . "|" . systemName, "CustomViewportX",,,1)
756 customViewportY := moduleIni.Read(romName . "|" . systemName, "CustomViewportY",,,1)
757 stretchToFillBezel := moduleIni.Read(romName . "|" . systemName, "StretchToFillBezel","false",,1)
758 rotation := moduleIni.Read(romName . "|" . systemName, "Rotation",0,,1)
759 cropOverscan := moduleIni.Read(romName . "|" . systemName, "CropOverscan",,,1)
760 threadedVideo := moduleIni.Read(romName . "|" . systemName, "ThreadedVideo",,,1)
761 vSync := moduleIni.Read(romName . "|" . systemName, "VSync",,,1)
762 integerScale := moduleIni.Read(romName . "|" . systemName, "IntegerScale",,,1)
763 configurationPerCore := moduleIni.Read(romName . "|" . systemName, "ConfigurationPerCore","false",,1)
764
765 If (StringUtils.Contains(core, "^(mame|mess|ume)") && !retroMAMEID) {
766 retroMAMEID := "mame" ; set all systems that use a mame core to the default mame ID so any system name is supported
767 RLLog.Warning("Module - Setting MAMEID to default ""mame"" for """ . retroSystem . """")
768 }
769
770 configFolder := RLObject.getFullPathFromRelative(rlPath,configFolder)
771 mameRomPath := If mameRomPath ? RLObject.getFullPathFromRelative(rlPath,mameRomPath) : romPath
772 overlay := RLObject.getFullPathFromRelative(rlPath,overlay)
773 videoShader := RLObject.getFullPathFromRelative(rlPath,videoShader)
774 rotateBezel := false
775
776 configFolder := new Folder(configFolder)
777
778 If (retroID = "LibRetro_SGB" || superGB = "true") ; if system or rom is set to use Super Game Boy
779 { superGB := "true" ; setting this just in case it's false and the system is Nintendo Super Game Boy
780 sgbRomPath := CheckFile(emuPath . "\system\Super Game Boy (World).sfc","Could not find the rom required for Super Game Boy support. Make sure the rom ""Super Game Boy (World).sfc"" is located in: " . emuPath . "\system")
781 CheckFile(emuPath . "\system\sgb.boot.rom","Could not find the bios required for Super Game Boy support. Make sure the bios ""sgb.boot.rom"" is located in: " . emuPath . "\system")
782 retroID := "LibRetro_SGB" ; switching to Super Game Boy mode
783 retroSystem := "Nintendo Super Game Boy"
784 }
785
786 ; Find the dll for this system
787 libDll := CheckFile(emuPath . "\cores\" . core . ".dll", "Your " . retroID . " dll is set to " . core . " but could not locate this file:`n" . emuPath . "\cores\" . core . ".dll")
788
789 ; Find the cfg file to use
790 If !configFolder.Exist()
791 ScriptError("You need to make sure ""ConfigFolder"" is pointing to your RetroArch config folder. By default it is looking here: """ . configFolder.FilePath . """")
792 globalRetroCfg := emuPath . "\retroarch.cfg"
793 systemRetroCfg := configFolder.FilePath . "\" . retroSystem . ".cfg"
794 coreRetroCfg := configFolder.FilePath . "\" . core . ".cfg"
795 RLLog.Info("Module - Global cfg should be: " . globalRetroCfg)
796 RLLog.Info("Module - System cfg should be: " . systemRetroCfg)
797 RLLog.Info("Module - Core cfg should be: " . coreRetroCfg)
798 foundCfg := ""
799
800 systemRetroCfg := new File(systemRetroCfg)
801 coreRetroCfg := new File(coreRetroCfg)
802 globalRetroCfg := new File(globalRetroCfg)
803
804 If systemRetroCfg.Exist() { ; check for system cfg first
805 retroCFGFile := systemRetroCfg
806 foundCfg := 1
807 RLLog.Info("Module - Found a System cfg!")
808 } Else If coreRetroCfg.Exist() { ; 2nd option is a core config
809 retroCFGFile := coreRetroCfg
810 foundCfg := 1
811 RLLog.Info("Module - Found a Core cfg!")
812 } Else If globalRetroCfg.Exist() { ; 3rd is global cfg
813 retroCFGFile := globalRetroCfg
814 foundCfg := 1
815 RLLog.Info("Module - Found a Global cfg!")
816 }
817 If foundCfg {
818 RLLog.Info("Module - " . MEmu . " is using " . retroCFGFile.FileFullPath . " as its config file.")
819 retroCFG := LoadProperties(retroCFGFile.FileFullPath)
820 } Else
821 RLLog.Warning("Module - Could not find a cfg file to update settings. RetroArch will make one for you.")
822
823 If StringUtils.Contains(rotation,"1|3") ; use vertical bezel if RA rotation is set to 90 or 270 degrees
824 rotateBezel := true
825
826 If StringUtils.Contains(retroID, "LibRetro_NFDS|LibRetro_SCD|LibRetro_TGCD|LibRetro_PCECD|LibRetro_PCFX") { ; these systems require the retroarch settings to be read
827 retroSysDir := ReadProperty(retroCFG,"system_directory") ; read value
828 retroSysDir := ConvertRetroCFGKey(retroSysDir) ; remove dbl quotes
829 retroSysDirLeft := StringUtils.Left(retroSysDir, 2)
830 If (retroSysDirLeft = ":\") { ; if retroarch is set to use a default folder
831 retroSysDir := StringUtils.TrimLeft(retroSysDir, 1)
832 RLLog.Info("Module - RetroArch is using a relative system path: """ . retroSysDir . """")
833 retroSysDir := emuPath . retroSysDir
834 }
835 If !retroSysDir
836 ScriptError("RetroArch requires you to set your system_directory and place bios rom(s) in there for """ . retroSystem . """ to function. Please do this first by running ""retroarch-phoenix.exe"" manually.")
837 checkForSlash := StringUtils.Right(retroSysDir, 1)
838 If (checkForSlash = "\") ; check if a backslash is the last character. If it is, remove it, as this is non-standard method to define folders
839 retroSysDir := StringUtils.TrimRight(retroSysDir, 1)
840 }
841
842 If (StringUtils.Contains(core, "^(mame|mess|ume)")) || (StringUtils.Contains(retroID, "LibRetro_N64|LibRetro_NES|LibRetro_LYNX|LibRetro_PSX")) || (StringUtils.Contains(retroID, "LibRetro_NES") && (StringUtils.Contains(core, "nestopia_libretro"))) { ; these systems will use an ini to store game specific settings
843 RLLog.Info("Module - Reading / creating system ini for specific settings.")
844 If !StringUtils.Contains(core, "^(mame|mess|ume)") {
845 If !SystemModuleIni.Exist()
846 SystemModuleIni.Append ; create a new blank ini file if one does not exist
847 }
848
849 coreOptionsCFG := LoadProperties(coreOptionsCFGFile.FileFullPath)
850
851 If StringUtils.Contains(core, "^(mame|mess|ume)") { ; Set some MAME/MESS/UME core options.
852 tmpCore := If StringUtils.Contains(core, "mame") ? "mame" : "mess"
853 WriteProperty(coreOptionsCFG, tmpCore . "_read_config", """enabled""", 1)
854 WriteProperty(coreOptionsCFG, tmpCore . "_boot_from_cli", """enabled""", 1) ; This needs to be enabled in order to run games with RLauncher
855 WriteProperty(coreOptionsCFG, tmpCore . "_hide_nagscreen", "" . mameHideNag . "", 1)
856 WriteProperty(coreOptionsCFG, tmpCore . "_hide_infoscreen", "" . mameHideInfo . "", 1)
857 WriteProperty(coreOptionsCFG, tmpCore . "_hide_warnings", "" . mameHideWarn . "", 1)
858 } Else If StringUtils.Contains(retroID, "LibRetro_N64") { ; Nintendo 64
859 mupenGfx := moduleIni.Read(romName . "|" . systemName, "Mupen_Gfx_Plugin", "auto",,1)
860 mupenRsp := moduleIni.Read(romName . "|" . systemName, "Mupen_RSP_Plugin", "auto",,1)
861 mupenCpu := moduleIni.Read(romName . "|" . systemName, "Mupen_CPU_Core", "dynamic_recompiler",,1)
862 mupenPak1 := moduleIni.Read(romName . "|" . systemName, "Mupen_Pak_1", "memory",,1)
863 mupenPak2 := moduleIni.Read(romName . "|" . systemName, "Mupen_Pak_2", "memory",,1)
864 mupenPak3 := moduleIni.Read(romName . "|" . systemName, "Mupen_Pak_3", "memory",,1)
865 mupenPak4 := moduleIni.Read(romName . "|" . systemName, "Mupen_Pak_4", "memory",,1)
866 mupenGfxAccur := moduleIni.Read(romName . "|" . systemName, "Mupen_Gfx_Accuracy", "high",,1)
867 mupenExpMem := moduleIni.Read(romName . "|" . systemName, "Mupen_Disable_Exp_Memory", "no",,1)
868 mupenTexturFilt := moduleIni.Read(romName . "|" . systemName, "Mupen_Texture_Filtering", "nearest",,1)
869 mupenViRefresh := moduleIni.Read(romName . "|" . systemName, "Mupen_VI_Refresh", "2200",,1)
870 mupenFramerate := moduleIni.Read(romName . "|" . systemName, "Mupen_Framerate", "fullspeed",,1)
871 mupenResolution := moduleIni.Read(romName . "|" . systemName, "Mupen_Resolution", "640x480",,1)
872 mupenPolyOffstFctr := moduleIni.Read(romName . "|" . systemName, "Mupen_Polygon_Offset_Factor", "-3.0",,1)
873 mupenPolyOffstUnts := moduleIni.Read(romName . "|" . systemName, "Mupen_Polygon_Offset_Units", "-3.0",,1)
874 mupenViOverlay := moduleIni.Read(romName . "|" . systemName, "Mupen_VI_Overlay", "disabled",,1)
875 mupenAnalogDzone := moduleIni.Read(romName . "|" . systemName, "Mupen_Analog_Deadzone", "15",,1)
876
877 WriteProperty(coreOptionsCFG, "mupen64-gfxplugin", mupenGfx, 1)
878 WriteProperty(coreOptionsCFG, "mupen64-rspplugin", mupenRsp, 1)
879 WriteProperty(coreOptionsCFG, "mupen64-cpucore", mupenCpu, 1)
880 WriteProperty(coreOptionsCFG, "mupen64-pak1", mupenPak1, 1)
881 WriteProperty(coreOptionsCFG, "mupen64-pak2", mupenPak2, 1)
882 WriteProperty(coreOptionsCFG, "mupen64-pak3", mupenPak3, 1)
883 WriteProperty(coreOptionsCFG, "mupen64-pak4", mupenPak4, 1)
884 WriteProperty(coreOptionsCFG, "mupen64-gfxplugin-accuracy", mupenGfxAccur, 1)
885 WriteProperty(coreOptionsCFG, "mupen64-disableexpmem", mupenExpMem, 1)
886 WriteProperty(coreOptionsCFG, "mupen64-filtering", mupenTexturFilt, 1)
887 WriteProperty(coreOptionsCFG, "mupen64-virefresh", mupenViRefresh, 1)
888 WriteProperty(coreOptionsCFG, "mupen64-framerate", mupenFramerate, 1)
889 WriteProperty(coreOptionsCFG, "mupen64-screensize", mupenResolution, 1)
890 WriteProperty(coreOptionsCFG, "mupen64-polyoffset-factor", mupenPolyOffstFctr, 1)
891 WriteProperty(coreOptionsCFG, "mupen64-polyoffset-units", mupenPolyOffstUnts, 1)
892 WriteProperty(coreOptionsCFG, "mupen64-angrylion-vioverlay", mupenViOverlay, 1)
893 WriteProperty(coreOptionsCFG, "mupen64-astick-deadzone", mupenAnalogDzone, 1)
894 } Else If StringUtils.Contains(retroID, "LibRetro_NES") { ; these systems will use an ini to store game specific settings
895 If StringUtils.Contains(core, "nestopia_libretro") { ; Nestopia
896 nestopiaBlargg := moduleIni.Read(romName . "|Nestopia", "Nestopia_Blargg_NTSC_Filter", "disabled",,1)
897 nestopiaPalette := moduleIni.Read(romName . "|Nestopia", "Nestopia_Palette", "canonical",,1)
898 nestopiaNoSprteLimit := moduleIni.Read(romName . "|Nestopia", "Nestopia_Remove_Sprites_Limit", "disabled",,1)
899
900 WriteProperty(coreOptionsCFG, "nestopia_blargg_ntsc_filter", nestopiaBlargg, 1)
901 WriteProperty(coreOptionsCFG, "nestopia_palette", nestopiaPalette, 1)
902 WriteProperty(coreOptionsCFG, "nestopia_nospritelimit", nestopiaNoSprteLimit, 1)
903 }
904 } Else If StringUtils.Contains(retroID, "LibRetro_LYNX") { ; Atari Lynx
905 If StringUtils.Contains(core, "handy_libretro") { ; Handy
906 handyRotate := moduleIni.Read(romName . "|" . systemName, "Handy_Rotation", "None",,1)
907 If StringUtils.Contains(handyRotate, "240") or StringUtils.Contains(handyRotate, "90")
908 rotateBezel := true
909 WriteProperty(coreOptionsCFG, "handy_rot", handyRotate, 1)
910 }
911 } Else If StringUtils.Contains(retroID, "LibRetro_PSX") { ; Sony PlayStation
912 psxCdImageCache := moduleIni.Read(romName . "|" . systemName, "PSX_CD_Image_Cache", """enabled""",,1)
913 psxMemcardHandling := moduleIni.Read(romName . "|" . systemName, "PSX_Memcard_Handling", """libretro""",,1)
914 psxDualshockAnalogToggle := moduleIni.Read(romName . "|" . systemName, "PSX_Dualshock_Analog_Toggle", """enabled""",,1)
915
916 WriteProperty(coreOptionsCFG, "beetle_psx_cdimagecache", psxCdImageCache, 1)
917 WriteProperty(coreOptionsCFG, "beetle_psx_use_mednafen_memcard0_method", psxMemcardHandling, 1)
918 WriteProperty(coreOptionsCFG, "beetle_psx_analog_toggle", psxDualshockAnalogToggle, 1)
919 }
920 SaveProperties(coreOptionsCFGFile.FileFullPath, coreOptionsCFG)
921 }
922
923 hideEmuObj := Object(emuConsoleWindow,0,emuPrimaryWindow,1)
924 7z(romPath, romName, romExtension, sevenZExtractPath)
925
926 mgM3UFile := new File(romPath . "\" . romTable[1,4] . ".m3u")
927
928 mgRomExtensions := "cue|iso|ccd"
929 mgValidExtension := false
930
931 Loop, Parse, mgRomExtensions, |
932 If (romExtension = "." . A_LoopField)
933 mgValidExtension := true
934
935 If (StringUtils.Contains(retroID, "LibRetro_PSX") && romTable.MaxIndex() && mgValidExtension) { ; See if MultiGame table is populated
936 m3uRomIndex := Object()
937 mgType := romTable[1,6] . " "
938 mgMaxIndex := romTable.MaxIndex()
939 mgRomIndex := 0
940
941 If mgM3UFile.Exist()
942 mgM3UFile.Delete()
943
944 Loop % mgMaxIndex
945 {
946 If (romTable[A_Index, 3] = romName) {
947 tempType := romTable[A_Index, 5]
948 mgRomIndex := StringUtils.TrimLeft(tempType, StringUtils.StringLength(mgType))
949 RLLog.Info("Found rom index in rom set in romTable: " . mgRomIndex)
950 Break
951 }
952 }
953
954 If (mgRomIndex > 0) {
955 tempRomIndex := mgRomIndex
956 Loop % mgMaxIndex
957 {
958 mgTypeIndex := mgType . tempRomIndex
959 m3uRomIndex.Insert(tempRomIndex)
960
961 Loop % mgMaxIndex
962 {
963 If (romTable[A_Index, 5] = mgTypeIndex) {
964 tempRomPath := romTable[A_Index, 1]
965 mgM3UFile.Append(tempRomPath . "`n")
966 RLLog.Info("Module - Appending rom path to m3u: " . tempRomPath)
967 Break
968 }
969 }
970
971 If (tempRomIndex < mgMaxIndex)
972 tempRomIndex++
973 Else
974 tempRomIndex := 1
975 }
976 }
977 }
978
979 ; MAME/MESS/UME core options
980 MAMEParam1 := ""
981 MAMEParam2 := ""
982 MAMEParam3 := ""
983 If StringUtils.Contains(core, "^(mame|mess|ume)") { ; if a MAME/MESS/UME core is used
984 If !retroMAMEID
985 ScriptError("Your systemName is: " . systemName . "`nIt is not one of the known supported systems for the MAME/MESS/UME LibRetro core")
986 Else
987 RLLog.Info("Module - MAME/MESS/UME mode using a known ident: " . retroMAMEID)
988
989 If !mameRomPath
990 ScriptError("Please set the RetroArch module setting ""BIOS_Roms_Folder"" to the folder that contains your MAME/MESS/UME BIOS roms to use with RetroArch.")
991
992 If (retroMAMEID = "mame") { ; want this for arcade mame only
993 RLLog.Info("Module - Retroarch MAME/MESS/UME Arcade mode enabled")
994 fullRomPath := " """ . romPath . "\" . romName . romExtension . """"
995 } Else {
996 RLLog.Info("Module - Retroarch MAME/MESS/UME Console/PC mode enabled")
997 MAMEParam1 := ""
998 MAMEParam2 := " -rompath \""" . mameRomPath . "\"""
999
1000 ; If we already have a media type, then use it.
1001 If (StringUtils.Contains(retroMAMEID, "tg16|pce") && retroMAMEMedia = "cart") {
1002 ;MAMEParam3 := " -cart \" . """" . romPath . "\" . romName . romExtension . "\" . """"
1003 MAMEParam3 := " -cart \""" . romPath . "\" . romName . romExtension . "\"""""
1004 ; TODO: This needs a better way to handle the cdrom bios files, in my opinion. As it is, there's no clean way to pick between the v2.00 or v3.00 bios.
1005 ; Defaulting to the TurboDuo cdrom bios since it will play 2.00 or 3.00 games.
1006 } Else If (StringUtils.Contains(retroMAMEID, "tg16|pce") && retroMAMEMedia = "cdrom") {
1007 ;MAMEParam3 := " -cart cdsys -cdrm \" . """" . romPath . "\" . romName . romExtension . "\" . """"
1008 MAMEParam3 := " -cart scdsys -cdrm \""" . romPath . "\" . romName . romExtension . "\"""""
1009 } Else {
1010 ; Build a key/value object containing the different MAMEParam3 choices
1011 MAMEP3 := Object("alice32","cass1","gp32","memc","cpc464","cass","spectrum","cass","dragon64","cass","cdimono1","cdrom","bk0010","cass","neocd","cdrom","neocdz","cdrom","saturn","cdrm","saturnjp","cdrm","svi328n","cass","pecom64","cass","psu","cdrm","svmu","quik","gamecom","cart1","mbeeic","quik1")
1012 MAMEParam3 := MAMEP3[retroMAMEID] ; search object for the retroMAMEID pair
1013 MAMEParam3 := " -" . (If MAMEParam3 ? MAMEParam3 : "cart") . " \" . """" . romPath . "\" . romName . romExtension . "\" . """"
1014 }
1015
1016 If (retroMAMEID = "mbeeic") ; Applied Technology MicroBee
1017 { microbeeModel := IniReadCheck(MAMESysINI, romName, "MicroBee_Model","mbeeic",,1)
1018 If microbeeModel not in mbee,mbeeic,mbeepc,mbeepc85,mbee56
1019 ScriptError("This is not a known MicroBee model value: " . microbeeModel)
1020 Else If (microbeeModel != "mbeeic")
1021 retroMAMEID := microbeeModel
1022 If romExtension in .mwb,.com,.bee
1023 mediaDeviceType := "quik1"
1024 Else If romExtension in .wav,.tap
1025 mediaDeviceType := "cass"
1026 Else If romExtension in .rom
1027 mediaDeviceType := "cart"
1028 Else If romExtension in .dsk
1029 mediaDeviceType := "flop1"
1030 Else ; .bin format
1031 mediaDeviceType := "quik2"
1032 MAMEParam3 := " -" . mediaDeviceType . " \" . """" . romPath . "\" . romName . romExtension . "\" . """"
1033 }
1034
1035 If (retroMAMEID = "x68000") ; Sharp X68000
1036 {
1037 If romExtension in .xdf,.hdm,.2hd,.dim,.d77,.d88,.1dd,.dfi,.imd,.ipf,.mfi,.mfm,.td0,.cqm,.cqi,.dsk
1038 mediaDeviceType := "flop1"
1039 Else ; .bin format
1040 mediaDeviceType := "sasi"
1041 MAMEParam3 := " -" . mediaDeviceType . " \" . """" . romPath . "\" . romName . romExtension . "\" . """"
1042 }
1043
1044 fullRomPath := MAMEParam1 . MAMEParam2 . MAMEParam3
1045 }
1046 } Else If (superGB = "true") {
1047 RLLog.Info("Module - Retroarch Super Game Boy mode enabled")
1048 fullRomPath := " """ . sgbRomPath . """ --subsystem sgb """ . romPath . "\" . romName . romExtension . """"
1049 } Else {
1050 RLLog.Info("Module - Retroarch standard mode enabled")
1051 fullRomPath := " """ . romPath . "\" . romName . romExtension . """"
1052 }
1053
1054 If (retroID = "LibRetro_NFDS") ; Nintendo Famicom Disk System
1055 { disksysRom := new File(retroSysDir . "\disksys.rom")
1056 If !disksysRom.Exist()
1057 ScriptError("RetroArch requires ""disksys.rom"" for " . retroSystem . " but could not find it in your system_directory: """ . retroSysDir . """")
1058 } Else If (retroID = "LibRetro_SCD") ; Sega CD
1059 { If !StringUtils.Contains(romExtension, "\.bin|\.cue|\.iso")
1060 ScriptError("RetroArch only supports Sega CD games in bin|cue|iso format. It does not support:`n" . romExtension)
1061 biosCDEBin := new File(retroSysDir . "\bios_CD_E.bin")
1062 biosCDUBin := new File(retroSysDir . "\bios_CD_U.bin")
1063 biosCDJBin := new File(retroSysDir . "\bios_CD_J.bin")
1064 If !biosCDEBin.Exist()
1065 ScriptError("RetroArch requires ""bios_CD_E.bin"" for " . retroSystem . " but could not find it in your system_directory: """ . retroSysDir . """")
1066 If !biosCDUBin.Exist()
1067 ScriptError("RetroArch requires ""bios_CD_U.bin"" for " . retroSystem . " but could not find it in your system_directory: """ . retroSysDir . """")
1068 If !biosCDJBin.Exist()
1069 ScriptError("RetroArch requires ""bios_CD_J.bin"" for " . retroSystem . " but could not find it in your system_directory: """ . retroSysDir . """")
1070 } Else If StringUtils.Contains(retroID,"LibRetro_PCECD|LibRetro_TGCD") ; NEC PC Engine-CD and NEC TurboGrafx-CD
1071 { If !StringUtils.Contains(romExtension,"\.ccd|\.cue")
1072 ScriptError("RetroArch only supports " . retroSystem . " games in ccd or cue format. It does not support:`n" . romExtension)
1073 sysCard3Pce := new File(retroSysDir . "\syscard3.pce")
1074 If !sysCard3Pce.Exist()
1075 ScriptError("RetroArch requires ""syscard3.pce"" for " . retroSystem . " but could not find it in your system_directory: """ . retroSysDir . """")
1076 } Else If (retroID = "LibRetro_PCFX")
1077 { If !StringUtils.Contains(romExtension,"\.ccd|\.cue")
1078 ScriptError("RetroArch only supports " . retroSystem . " games in ccd or cue format. It does not support:`n" . romExtension)
1079 pcfxBios := new File(retroSysDir . "\pcfx.bios")
1080 If !pcfxBios.Exist()
1081 ScriptError("RetroArch requires ""pcfx.bios"" for " . retroSystem . " but could not find it in your system_directory: """ . retroSysDir . """")
1082 } Else If (retroID = "LibRetro_SCUMM")
1083 {
1084 scummFile := new File(romPath . "\" . romName . ".scummvm")
1085 If !scummFile.Exist()
1086 scummFile.Append("""" . romName . """")
1087 }
1088
1089 networkSession := ""
1090 If (enableNetworkPlay = "true") {
1091 RLLog.Info("Module - Network Multi-Player is an available option for " . dbName)
1092
1093 netplayNickname := moduleIni.Read("Network", "NetPlay_Nickname","Player",,1)
1094 getWANIP := moduleIni.Read("Network", "Get_WAN_IP","false",,1)
1095
1096 If (getWANIP = "true")
1097 myPublicIP := GetPublicIP()
1098
1099 RLLog.Warning("Module - CAREFUL WHEN POSTING THIS LOG PUBLICLY AS IT CONTAINS YOUR IP ON THE NEXT LINE")
1100 defaultServerIP := moduleIni.Read("Network", "Default_Server_IP", myPublicIP,,1)
1101 defaultServerPort := moduleIni.Read("Network", "Default_Server_Port",,,1)
1102 lastIP := moduleIni.Read("Network", "Last_IP", defaultServerIP,,1) ; does not need to be on the ISD
1103 lastPort := moduleIni.Read("Network", "Last_Port", defaultServerPort,,1) ; does not need to be on the ISD
1104
1105 mpMenuStatus := MultiPlayerMenu(lastIP,lastPort,networkType,,0)
1106 If (mpMenuStatus = -1) { ; if user exited menu early
1107 RLLog.Warning("Module - Cancelled MultiPlayer Menu. Exiting module.")
1108 ExitModule()
1109 }
1110 If networkSession {
1111 RLLog.Info("Module - Using a Network for " . dbName)
1112 moduleIni.Write(networkPort, "GlobalModuleIni", "Network", "Last_Port")
1113 ; msgbox lastIP: %lastIP%`nlastPort: %lastPort%`nnetworkIP: %networkIP%`nnetworkPort: %networkPort%
1114 If (networkType = "client") {
1115 moduleIni.Write(networkIP, "GlobalModuleIni", "Network", "Last_IP") ; Save last used IP and Port for quicker launching next time
1116 netCommand := " -C " . networkIP . " --port " . networkPort . " --nick """ . netplayNickname . """" ; -C = connect as client
1117 } Else { ; server
1118 netCommand := " -H --port " . networkPort . " --nick """ . netplayNickname . """" ; -H = host as server
1119 }
1120 RLLog.Warning("Module - CAREFUL WHEN POSTING THIS LOG PUBLICLY AS IT CONTAINS YOUR IP ON THE NEXT LINE")
1121 RLLog.Info("Module - Starting a network session using the IP """ . networkIP . """ and PORT """ . networkPort . """")
1122 } Else
1123 RLLog.Info("Module - User chose Single Player mode for this session")
1124 }
1125
1126 BezelStart(,,(If rotateBezel ? 1:""))
1127
1128 If foundCfg {
1129 If (stretchToFillBezel = "true" and bezelEnabled = "true" and bezelPath)
1130 {
1131 customViewportWidth := bezelScreenWidth
1132 customViewportHeight := bezelScreenHeight
1133 customViewportX := 0
1134 customViewportY := 0
1135 aspectRatioIndex := 22
1136 RLLog.Info("Stretching viewport to fit bezel")
1137 }
1138
1139 raCfgHasChanges := ""
1140 WriteRetroProperty("core_options_path", singlecoreoptions)
1141 WriteRetroProperty("input_overlay", overlay)
1142 WriteRetroProperty("video_shader", videoShader)
1143 WriteRetroProperty("aspect_ratio_index", aspectRatioIndex)
1144 WriteRetroProperty("custom_viewport_width", customViewportWidth)
1145 WriteRetroProperty("custom_viewport_height", customViewportHeight)
1146 WriteRetroProperty("custom_viewport_x", customViewportX)
1147 WriteRetroProperty("custom_viewport_y", customViewportY)
1148 WriteRetroProperty("video_rotation", rotation)
1149 WriteRetroProperty("video_crop_overscan", cropOverscan)
1150 WriteRetroProperty("video_threaded", threadedVideo)
1151 WriteRetroProperty("video_vsync", vSync)
1152 WriteRetroProperty("video_scale_integer", integerScale)
1153 WriteRetroProperty("input_disk_eject_toggle", ejectToggleKey)
1154 WriteRetroProperty("input_disk_next", nextDiskKey)
1155 WriteRetroProperty("input_disk_prev", prevDiskKey)
1156 If StringUtils.Contains(retroID, "LibRetro_PSX") {
1157 Loop, 8 ; Loop 8 times for 8 controllers
1158 { p%A_Index%ControllerType := moduleIni.Read(romName . "|" . systemName, "P" . A_Index . "_Controller_Type", 517,,1)
1159 WriteRetroProperty("input_libretro_device_p" . A_Index, p%A_Index%ControllerType)
1160 }
1161 }
1162
1163 If raCfgHasChanges {
1164 RLLog.Info("Module - Saving changed settings to: """ . retroCFGFile.FileFullPath . """")
1165 SaveProperties(retroCFGFile.FileFullPath, retroCFG)
1166 }
1167 }
1168
1169 fullscreen := If fullscreen = "true" ? " -f" : ""
1170 retroCFGFileCLI := If foundCfg ? " -c """ . retroCFGFile.FileFullPath . """" : ""
1171
1172
1173
1174 HideAppStart(hideEmuObj,hideEmu)
1175
1176 If (StringUtils.Contains(core, "^(mame|mess|ume)") && (retroMAMEID != "mame")) { ; if a MAME/MESS/UME core is used
1177 primaryExe.Run(" """ . (retroMAMEID ? retroMAMEID : "") . fullRomPath . """ " . fullscreen . retroCFGFileCLI . " -L """ . libDll . netCommand, "Hide")
1178 } Else If (retroID = "LibRetro_SCUMM") {
1179 primaryExe.Run(" """ . scummFile . """" . fullscreen . retroCFGFileCLI . " -L """ . libDll . "" . netCommand, "Hide")
1180 } Else If (retroID = "LibRetro_SGB" || If superGB = "true") { ; For some reason, the order of our command line matters in this particular case.
1181 primaryExe.Run(fullscreen . retroCFGFileCLI . " -L """ . libDll . fullRomPath . netCommand, "Hide")
1182 } Else If mgM3UFile.Exist() {
1183 primaryExe.Run(" """ . mgM3UFile.FileFullPath . """" . fullscreen . retroCFGFileCLI . " -L """ . libDll . netCommand, "Hide")
1184 } Else {
1185 primaryExe.Run(" " . fullRomPath . fullscreen . retroCFGFileCLI . " -L """ . libDll . netCommand, "Hide")
1186 }
1187
1188 mpMenuStatus := ""
1189 If networkSession {
1190 canceledServerWait := false
1191 multiplayerMenuExit := false
1192 TimerUtils.SetTimer("NetworkConnectedCheck", 500)
1193
1194 If (networkType = "server") {
1195 RLLog.Info("Module - Waiting for a client to connect to your server")
1196 mpMenuStatus := MultiPlayerMenu(,,,,,,,,"You are the server. Please wait for your client to connect.")
1197 } Else { ; client
1198 RLLog.Info("Module - Trying to contact the server to establish a connection.")
1199 mpMenuStatus := MultiPlayerMenu(,,,,,,,,"Attempting to connect to the server...")
1200 }
1201
1202 If (mpMenuStatus = -1) { ; if user exited menu early before a client connected
1203 RLLog.Warning("Module - Cancelled waiting for the " . If (networkType = "server") ? "client to connect" : "server to respond" . ". Exiting module.")
1204 If primaryExe.Process("Exist")
1205 primaryExe.Process("Close") ; must close process as the exe is waiting for a client to connect and no window was drawn yet
1206 ExitModule()
1207 } Else { ; blank response from MultiPlayerMenu, exited properly
1208 RLLog.Info("Module - " . If (networkType = "server") ? "Client has connected" : "Connected to the server")
1209 emuPrimaryWindow.Wait()
1210 emuPrimaryWindow.WaitActive()
1211 }
1212 TimerUtils.SetTimer("NetworkConnectedCheck", "Off")
1213 } Else { ; single player
1214 emuPrimaryWindow.Wait()
1215 emuPrimaryWindow.WaitActive()
1216 }
1217
1218 If (hideConsole = "true")
1219 emuConsoleWindow.Set("Transparent", "On") ; makes the console window transparent so you don't see it on exit
1220
1221 BezelDraw()
1222 HideAppEnd(hideEmuObj,hideEmu)
1223 FadeInExit()
1224 primaryExe.Process("WaitClose")
1225 7zCleanUp()
1226 BezelExit()
1227 FadeOutExit()
1228 ExitModule()
1229
1230
1231 ; Writes new properties into the retroCFG if defined by user
1232 WriteRetroProperty(key,value="") {
1233 If (value != "") {
1234 Global retroCFG,raCfgHasChanges
1235 WriteProperty(retroCFG, key, value,1,1)
1236 raCfgHasChanges := 1
1237 }
1238 }
1239
1240 ; Used to convert between RetroArch keys and usable data
1241 ConvertRetroCFGKey(txt,direction="read"){
1242 Global emuPath,RLLog
1243 If (direction = "read")
1244 { newtxt := StringUtils.TrimLeft(txt,1,0) ; removes the " from the left of the txt
1245 newtxt := StringUtils.TrimRight(newtxt,1,0) ; removes the " from the right of the txt
1246 relativeCheck := StringUtils.SubStr(newtxt,1,1,0)
1247 If StringUtils.Contains(relativeCheck,":",0) { ; if the path contains a ":" then it is a relative path
1248 RLLog.Debug("ConvertRetroCFGKey - " . newtxt . " is a relative path")
1249 newtxt := StringUtils.TrimLeft(newtxt,1,0) ; removes the : from the left of the txt
1250 newtxt := AbsoluteFromRelative(emuPath, "." . newtxt) ; convert relative to absolute
1251 }
1252 If StringUtils.Contains(newtxt,"/",0)
1253 newtxt := StringUtils.Replace(newtxt,"/","\",1,,0) ; replaces all forward slashes with backslashes
1254 } Else If (direction = "write")
1255 { newtxt := """" . txt . """" ; wraps the txt with ""
1256 If StringUtils.Contains(newtxt,"\\",0)
1257 newtxt := StringUtils.Replace(newtxt,"\","/",1,,0) ; replaces all backslashes with forward slashes
1258 } Else
1259 ScriptError("Not a valid use of ConvertRetroCFGKey. Only ""read"" or ""write"" are supported.")
1260 RLLog.Debug("ConvertRetroCFGKey - Converted " . txt . " to " . newtxt)
1261 Return newtxt
1262 }
1263
1264 MultiGame:
1265 KeyUtils.SetKeyDelay(100)
1266 emuPrimaryWindow.Activate()
1267 KeyUtils.Send("{" . ejectToggleKey . " down}{" . ejectToggleKey . " up}") ; eject disc in Retroarch
1268 If (!mgLastRomIndex) {
1269 mgLastRomIndex := mgRomIndex
1270 }
1271 selectedRomIndex := 0
1272 selectedRomIndex := StringUtils.TrimLeft(selectedRomNum, StringUtils.StringLength(mgType,0))
1273
1274 Loop % mgMaxIndex
1275 {
1276 If (m3uRomIndex[A_index] = mgLastRomIndex) {
1277 tempLastRomIndex := A_index
1278 RLLog.Debug("Module - Last index: " . tempLastRomIndex)
1279 }
1280 If (m3uRomIndex[A_index] = selectedRomIndex) {
1281 tempSelectedRomIndex := A_index
1282 RLLog.Debug("Module - Selected index: " . tempSelectedRomIndex)
1283 }
1284 }
1285
1286 mgNewIndex := tempLastRomIndex - tempSelectedRomIndex
1287
1288 If (mgNewIndex < 0) {
1289 mgNewIndex := mgNewIndex * -1
1290 Loop % mgNewIndex
1291 {
1292 RLLog.Debug("Module - Sending the next disk key: " . nextDiskKey)
1293 KeyUtils.Send("{" . nextDiskKey . " down}{" . nextDiskKey . " up}")
1294 }
1295 } Else If (mgNewIndex > 0) {
1296 Loop % mgNewIndex
1297 {
1298 RLLog.Debug("Module - Sending the previous disk key: " . mgNewIndex)
1299 KeyUtils.Send("{" . prevDiskKey . " down}{" . prevDiskKey . " up}")
1300 }
1301 }
1302
1303 KeyUtils.Send("{" . ejectToggleKey . " down}{" . ejectToggleKey . " up}") ; close disc in Retroarch
1304 mgLastRomIndex := selectedRomIndex
1305 Return
1306
1307 NetworkConnectedCheck:
1308 If clientConnected
1309 multiplayerMenuExit := true
1310 Else If emuPrimaryWindow.Exist() {
1311 RLLog.Info("Module - RetroArch session started, closing the MultiPlayer menu")
1312 multiplayerMenuExit := true
1313 }
1314 Return
1315
1316 CloseProcess:
1317 FadeOutStart()
1318 emuPrimaryWindow.Close()
1319 Return
1320
132100:19:51:527 | RL | INFO | +0 | BuildScript - Loaded Pause scripts
132200:19:51:527 | RL | INFO | +0 | BuildScript - Loaded Multi-Player scripts
132300:19:51:527 | RL | INFO | +0 | BuildScript - Loaded Statistics.ahk script
132400:19:51:527 | RL | INFO | +0 | BuildScript - "D:\Arcade\RocketLauncher\Lib\User Functions\Global.ahk" not found
132500:19:51:527 | RL | INFO | +0 | BuildScript - "D:\Arcade\RocketLauncher\Lib\User Functions\Sega Saturn.ahk" not found
132600:19:51:527 | RL | INFO | +0 | BuildScript - "D:\Arcade\RocketLauncher\Lib\User Functions\Emulators\RetroArch.ahk" not found
132700:19:51:527 | RL | INFO | +0 | BuildScript - "D:\Arcade\RocketLauncher\Lib\User Functions\Sega Saturn\Emulators\RetroArch.ahk" not found
132800:19:51:527 | RL | INFO | +0 | BuildScript - "D:\Arcade\RocketLauncher\Lib\User Functions\Sega Saturn\Guardian Heroes (USA).ahk" not found
132900:19:51:527 | RL | INFO | +0 | BuildScript - Finished injecting functions into module
133000:19:51:527 | RL | INFO | +0 | Main - Module is built
133100:19:51:527 | RL | INFO | +0 | CheckFile - Checking if D:\Arcade\RocketLauncher\AutoHotkey.dll exists
133200:19:51:530 | RL | INFO | +16 | Main - Hiding taskbar
133300:19:51:750 | RL | INFO | +218 | Main - Running module
133400:19:51:940 | MD | INFO | +N/A | Module initialized
133500:19:51:942 | MD | INFO | +0 | LoadPreferredControllers - Started
133600:19:51:942 | MD | INFO | +0 | GetJoystickArray - Started
133700:19:52:031 | MD | INFO | +94 | GetJoystickGUID - Started
133800:19:52:032 | MD | INFO | +0 | GetJoystickGUID - Ended and found GUID: 50C4E647C05DE8118001444553540000
133900:19:52:035 | MD | INFO | +0 | GetJoystickGUID - Started
134000:19:52:035 | MD | INFO | +0 | GetJoystickGUID - Ended and found GUID: 50CA8E05C35DE8118001444553540000
134100:19:52:038 | MD | INFO | +0 | GetJoystickGUID - Started
134200:19:52:038 | MD | INFO | +0 | GetJoystickGUID - Ended and found GUID: F0572D399563E8118002444553540000
134300:19:52:041 | MD | INFO | +0 | GetJoystickGUID - Started
134400:19:52:041 | MD | INFO | +0 | GetJoystickGUID - Ended and found GUID: 2001BE5A8263E8118004444553540000
134500:19:52:041 | MD | INFO | +0 | GetJoystickArray - Ended
134600:19:52:041 | MD | INFO | +0 | LoadPreferredControllers - Sorting Currently Connected joysticks List to match the order of the Preferred Controller List
134700:19:52:041 | MD | INFO | +0 | LoadPreferredControllers - Assigning the New Joystick IDs according to the preferred list for the active controllers
134800:19:52:041 | MD | INFO | +0 | ChangeJoystickID - Started
134900:19:52:042 | MD | INFO | +0 | ChangeJoystickID - Ended
135000:19:52:042 | MD | INFO | +0 | ChangeJoystickID - Started
135100:19:52:042 | MD | INFO | +0 | ChangeJoystickID - Ended
135200:19:52:042 | MD | INFO | +0 | ChangeJoystickID - Started
135300:19:52:063 | MD | INFO | +31 | ChangeJoystickID - Ended
135400:19:52:063 | MD | INFO | +0 | ChangeJoystickID - Started
135500:19:52:063 | MD | INFO | +0 | ChangeJoystickID - Ended
135600:19:52:063 | MD | INFO | +0 | LoadPreferredControllers - Ended
135700:19:52:064 | MD | INFO | +0 | CheckFile - Checking if D:\Arcade\RocketLauncher\Profiles\JoyToKey\JoyToKey.exe exists
135800:19:52:064 | MD | INFO | +0 | Keymapper - Loading joytokey
135900:19:52:064 | MD | INFO | +0 | RunKeymapper - Started, using method "load"
136000:19:52:064 | MD | INFO | +0 | GetJoystickArray - Started
136100:19:52:127 | MD | INFO | +63 | GetJoystickGUID - Started
136200:19:52:128 | MD | INFO | +0 | GetJoystickGUID - Ended and found GUID: 50C4E647C05DE8118001444553540000
136300:19:52:131 | MD | INFO | +0 | GetJoystickGUID - Started
136400:19:52:131 | MD | INFO | +0 | GetJoystickGUID - Ended and found GUID: 50CA8E05C35DE8118001444553540000
136500:19:52:134 | MD | INFO | +0 | GetJoystickGUID - Started
136600:19:52:134 | MD | INFO | +0 | GetJoystickGUID - Ended and found GUID: F0572D399563E8118002444553540000
136700:19:52:159 | MD | INFO | +31 | GetJoystickGUID - Started
136800:19:52:159 | MD | INFO | +0 | GetJoystickGUID - Ended and found GUID: 2001BE5A8263E8118004444553540000
136900:19:52:159 | MD | INFO | +0 | GetJoystickArray - Ended
137000:19:52:160 | MD | INFO | +0 | GetProfile - Loading Player 1 Profile -> D:\Arcade\RocketLauncher\Profiles\joytokey\Sega Saturn\Sega Saturn.cfg
137100:19:52:160 | MD | INFO | +0 | RunJoyToKey - Started
137200:19:52:160 | MD | INFO | +0 | Process - Exist JoyToKey.exe
137300:19:52:163 | MD | INFO | +0 | WinClose - Closing: JoyToKey ahk_class TMainForm
137400:19:52:265 | MD | INFO | +109 | Process - WaitClose JoyToKey.exe 2
137500:19:52:269 | MD | INFO | +0 | Run - Running: D:\Arcade\RocketLauncher\Profiles\JoyToKey\JoyToKey.exe "D:\Arcade\RocketLauncher\Profiles\joytokey\Sega Saturn\Sega Saturn.cfg"
137600:19:52:339 | MD | INFO | +78 | RunJoyToKey - Ended
137700:19:52:339 | MD | INFO | +0 | RunKeymapper - Ended
137800:19:52:340 | MD | INFO | +0 | StartModule - Started
137900:19:52:340 | MD | INFO | +0 | StartModule - MEmu: RetroArch
1380 MEmuV: v1.3.6
1381 MURL: http://themaister.net/retroarch.html
1382 MAuthor: djvj|zerojay|SweatyPickle
1383 MVersion: 2.4.3
1384 MCRC: 699AB8F7
1385 iCRC: FB2DB971
1386 MID: 635038268922229162
1387 MSystem: Acorn BBC Micro|AAE|Amstrad CPC|Amstrad GX4000|APF Imagination Machine|Applied Technology MicroBee|Apple IIGS|Arcade Classics|Atari 2600|Atari 5200|Atari 7800|Atari 8-Bit|Atari Classics|Atari Jaguar|Atari Lynx|Atari ST|Atari XEGS|Bally Astrocade|Bandai Gundam RX-78|Bandai Super Vision 8000|Bandai Wonderswan|Bandai Wonderswan Color|Canon X07|Capcom Classics|Capcom Play System|Capcom Play System II|Capcom Play System III|Casio PV-1000|Casio PV-2000|Cave|Coleco ADAM|ColecoVision|Commodore MAX Machine|Commodore Amiga|Creatronic Mega Duck|Data East Classics|Dragon Data Dragon|Emerson Arcadia 2001|Entex Adventure Vision|Elektronika BK|Epoch Game Pocket Computer|Epoch Super Cassette Vision|Exidy Sorcerer|Fairchild Channel F|Final Burn Alpha|Funtech Super Acan|GamePark 32|GCE Vectrex|Hartung Game Master|Interton VC 4000|Irem Classics|JungleTac Sport Vii|Konami Classics|MAME|Magnavox Odyssey 2|Microsoft MSX|Microsoft MSX2|Matra & Hachette Alice|Mattel Aquarius|Mattel Intellivision|Midway Classics|Namco Classics|Namco System 22|NEC PC Engine|NEC PC Engine-CD|NEC PC-FX|NEC TurboGrafx-16|NEC SuperGrafx|NEC TurboGrafx-CD|Nintendo 64|Nintendo 64DD|Nintendo Arcade Systems|Nintendo Classics|Nintendo DS|Nintendo Entertainment System|Nintendo Famicom|Nintendo Famicom Disk System|Nintendo Game Boy|Nintendo Game Boy Color|Nintendo Game Boy Japan|Nintendo Game Boy Advance|Nintendo Game & Watch|Nintendo Super Game Boy|Nintendo Pokemon Mini|Nintendo Virtual Boy|Nintendo Super Famicom|Nintendo Satellaview|Nintendo SuFami Turbo|Panasonic 3DO|Elektronska Industrija Pecom 64|Philips CD-i|Philips Videopac|RCA Studio II|ScummVM|Sega 32X|Sega Classics|Sega Mega Drive 32X|Sega Mark III|Sega SC-3000|Sega SG-1000|Sega CD|Sega Dreamcast|Sega Game Gear|Sega Genesis|Sega Master System|Sega Mega Drive|Sega Meganet|Sega Nomad|Sega Pico|Sega Saturn|Sega Saturn Japan|Sega VMU|Sega ST-V|Sharp X1|Sharp X68000|Sinclair ZX Spectrum|Sinclair ZX81|Sony PlayStation|Sony PlayStation Minis|Sony PocketStation|Sony PSP|Sony PSP Minis|Sord M5|SNK Classics|SNK Neo Geo|SNK Neo Geo AES|SNK Neo Geo MVS|SNK Neo Geo Pocket|SNK Neo Geo CD|SNK Neo Geo Pocket Color|Spectravideo|Super Nintendo Entertainment System|Taito Classics|Tandy TRS-80 Color Computer|Technos|Texas Instruments TI 99-4A|Thomson MO5|Thomson TO7|Tiger Game.com|Tiki-100|Tomy Tutor|VTech CreatiVision|Watara Supervision|Williams Classics
138800:19:52:340 | MD | INFO | +0 | StartModule - You have a supported System Name for this module: "Sega Saturn"
138900:19:52:340 | MD | INFO | +0 | LocaleUtils.i18n - Started
139000:19:52:341 | MD | INFO | +0 | LocaleUtils.i18n - Ended, using "Open" for "dialog.open"
139100:19:52:341 | MD | INFO | +0 | LocaleUtils.i18n - Started
139200:19:52:341 | MD | INFO | +0 | LocaleUtils.i18n - Ended, using "Start" for "dialog.start"
139300:19:52:341 | MD | INFO | +0 | PluginInit - Started
139400:19:52:341 | MD | INFO | +0 | CheckFile - Checking if D:\Arcade\Databases\Sega Saturn\Sega Saturn.xml exists
139500:19:52:342 | MD | INFO | +0 | BuildAssetsTable - Started - Building Table for: Game Logo|System Logo
139600:19:52:342 | MD | INFO | +0 | BuildAssetsTable - Ended
139700:19:52:342 | MD | INFO | +0 | BuildAssetsTable - Started - Building Table for: Artwork1|Box Art|Cartridge|Flyers|Letters|Other
139800:19:52:350 | MD | INFO | +0 | BuildAssetsTable - Ended
139900:19:52:350 | MD | INFO | +0 | BuildAssetsTable - Started - Building Table for: MP4 Game Video|FLV Game Video|MP4 System Video|FLV System Video
140000:19:52:350 | MD | INFO | +0 | BuildAssetsTable - Ended
140100:19:52:350 | MD | INFO | +0 | PluginInit - Ended
140200:19:52:350 | MD | INFO | +0 | - Started with mode: START
140300:19:52:353 | MD | INFO | +0 | StartModule - Ended
140400:19:52:354 | MD | INFO | +0 | Module - Using these system variables:
140500:19:52:354 | MD | INFO | +0 | Module - retroSystem: Sega Saturn
140600:19:52:354 | MD | INFO | +0 | Module - retroID: LibRetro_SAT
140700:19:52:354 | MD | INFO | +0 | Module - retroCore: yabause_libretro
140800:19:52:354 | MD | INFO | +0 | Module - retroMAMEID: saturn
140900:19:52:354 | MD | INFO | +0 | Module - retroMAMEMedia: cdrom
141000:19:52:354 | MD | INFO | +0 | RIniFile.Read - Module {GlobalModuleIni} - [Settings] - Fullscreen: true
141100:19:52:354 | MD | INFO | +0 | RIniFile.Read - Module {GlobalModuleIni} - [Settings] - ConfigFolder: ..\emulators\RetroArch\config
141200:19:52:354 | MD | INFO | +0 | RIniFile.Read - Module - single_core_options: false (DEFAULT)
141300:19:52:371 | MD | INFO | +0 | RIniFile.Read - Module - BIOS_Roms_Folder: (NO VALUE)
141400:19:52:371 | MD | INFO | +0 | RIniFile.Read - Module - Hide_Nag_Screen: false (DEFAULT)
141500:19:52:371 | MD | INFO | +0 | RIniFile.Read - Module - Hide_Info_Screen: false (DEFAULT)
141600:19:52:371 | MD | INFO | +0 | RIniFile.Read - Module - Hide_Warning_Screen: false (DEFAULT)
141700:19:52:371 | MD | INFO | +0 | RIniFile.Read - Module {GlobalModuleIni} - [Settings] - HideConsole: true
141800:19:52:371 | MD | INFO | +0 | RIniFile.Read - Module - Eject_Toggle_Key: (NO VALUE)
141900:19:52:371 | MD | INFO | +0 | RIniFile.Read - Module - Next_Disk_Key: (NO VALUE)
142000:19:52:371 | MD | INFO | +0 | RIniFile.Read - Module - Previous_Disk_Key: (NO VALUE)
142100:19:52:371 | MD | INFO | +0 | RIniFile.Read - Module {GlobalModuleIni} - [Sega Saturn] - LibRetro_Core: mednafen_saturn_libretro
142200:19:52:371 | MD | INFO | +0 | RIniFile.Read - Module - SuperGameBoy: false (DEFAULT)
142300:19:52:371 | MD | INFO | +0 | RIniFile.Read - Module - Enable_Network_Play: false (DEFAULT)
142400:19:52:371 | MD | INFO | +0 | RIniFile.Read - Module - Overlay: (NO VALUE)
142500:19:52:371 | MD | INFO | +0 | RIniFile.Read - Module - VideoShader: (NO VALUE)
142600:19:52:371 | MD | INFO | +0 | RIniFile.Read - Module - AspectRatioIndex: (NO VALUE)
142700:19:52:371 | MD | INFO | +0 | RIniFile.Read - Module - CustomViewportWidth: (NO VALUE)
142800:19:52:371 | MD | INFO | +0 | RIniFile.Read - Module - CustomViewportHeight: (NO VALUE)
142900:19:52:372 | MD | INFO | +0 | RIniFile.Read - Module - CustomViewportX: (NO VALUE)
143000:19:52:372 | MD | INFO | +0 | RIniFile.Read - Module - CustomViewportY: (NO VALUE)
143100:19:52:372 | MD | INFO | +0 | RIniFile.Read - Module - StretchToFillBezel: false (DEFAULT)
143200:19:52:372 | MD | INFO | +0 | RIniFile.Read - Module - Rotation: 0 (DEFAULT)
143300:19:52:372 | MD | INFO | +0 | RIniFile.Read - Module - CropOverscan: (NO VALUE)
143400:19:52:372 | MD | INFO | +0 | RIniFile.Read - Module - ThreadedVideo: (NO VALUE)
143500:19:52:372 | MD | INFO | +0 | RIniFile.Read - Module - VSync: (NO VALUE)
143600:19:52:372 | MD | INFO | +0 | RIniFile.Read - Module - IntegerScale: (NO VALUE)
143700:19:52:372 | MD | INFO | +0 | RIniFile.Read - Module - ConfigurationPerCore: false (DEFAULT)
143800:19:52:372 | MD | INFO | +0 | CheckFile - Checking if D:\Arcade\Emulators\RetroArch\cores\mednafen_saturn_libretro.dll exists
143900:19:52:372 | MD | INFO | +0 | Module - Global cfg should be: D:\Arcade\Emulators\RetroArch\retroarch.cfg
144000:19:52:372 | MD | INFO | +0 | Module - System cfg should be: D:\Arcade\emulators\RetroArch\config\Sega Saturn.cfg
144100:19:52:372 | MD | INFO | +0 | Module - Core cfg should be: D:\Arcade\emulators\RetroArch\config\mednafen_saturn_libretro.cfg
144200:19:52:372 | MD | INFO | +0 | Module - Found a Global cfg!
144300:19:52:372 | MD | INFO | +0 | Module - RetroArch is using D:\Arcade\Emulators\RetroArch\retroarch.cfg as its config file.
144400:19:52:372 | MD | INFO | +0 | LoadProperties - Started and loading this cfg into memory: D:\Arcade\Emulators\RetroArch\retroarch.cfg
144500:19:52:374 | MD | INFO | +0 | LoadProperties - Ended
144600:19:52:374 | MD | INFO | +0 | 7z - Started, received D:\Arcade\Sega Saturn\Roms\Guardian Heroes (USA).zip. If rom is an archive, it will extract to D:\Arcade\cache
144700:19:52:374 | MD | INFO | +0 | CheckFile - Checking if D:\Arcade\Sega Saturn\Roms\Guardian Heroes (USA).zip exists
144800:19:52:453 | MD | INFO | +78 | 7z - Archive name matches rom name; DLL found rom inside archive using "findFileInZip": "Guardian Heroes (USA).bin"
144900:19:52:480 | MD | INFO | +31 | 7z - Ended
145000:19:52:480 | MD | INFO | +0 | Module - Retroarch standard mode enabled
145100:19:52:487 | MD | INFO | +0 | Module - Saving changed settings to: "D:\Arcade\Emulators\RetroArch\retroarch.cfg"
145200:19:52:487 | MD | INFO | +0 | SaveProperties - Started and saving this cfg to disk: D:\Arcade\Emulators\RetroArch\retroarch.cfg
145300:19:52:491 | MD | INFO | +0 | SaveProperties - Ended
145400:19:52:491 | MD | INFO | +0 | Process.Run - Running: D:\Arcade\Emulators\RetroArch\retroarch.exe "D:\Arcade\cache\Guardian Heroes (USA)\Guardian Heroes (USA).bin" -f -c "D:\Arcade\Emulators\RetroArch\retroarch.cfg" -L "D:\Arcade\Emulators\RetroArch\cores\mednafen_saturn_libretro.dll
145500:19:52:517 | MD | INFO | +32 | Window.Wait - Waiting for window "RetroArch ahk_class RetroArch"
145600:19:52:699 | MD | INFO | +187 | Window.WaitActive - Waiting for "RetroArch ahk_class RetroArch"
145700:19:52:870 | MD | INFO | +171 | Process.Process - "WaitClose" "retroarch.exe"
145800:20:11:358 | MD | INFO | +18486 | CloseProcess - Started, user requested to end launched application
145900:20:11:656 | MD | INFO | +297 | CloseProcess - Ended
146000:20:11:657 | MD | INFO | +0 | 7zCleanUp - Started
146100:20:11:730 | MD | INFO | +78 | 7zCleanUp - Deleted D:\Arcade\cache\Guardian Heroes (USA)
146200:20:11:730 | MD | INFO | +0 | 7zCleanUp - Ended
146300:20:11:730 | MD | INFO | +0 | ExitModule - Started
146400:20:11:730 | MD | INFO | +0 | UpdateStatistics - Starting Updating Statistics
146500:20:11:803 | MD | INFO | +62 | UpdateStatistics - Game section statistics updated.
146600:20:11:803 | MD | INFO | +0 | RunKeymapper - Started, using method "unload"
146700:20:11:803 | MD | INFO | +0 | GetJoystickArray - Started
146800:20:11:831 | MD | INFO | +31 | GetJoystickGUID - Started
146900:20:11:831 | MD | INFO | +0 | GetJoystickGUID - Ended and found GUID: 50C4E647C05DE8118001444553540000
147000:20:11:832 | MD | INFO | +0 | GetJoystickGUID - Started
147100:20:11:832 | MD | INFO | +0 | GetJoystickGUID - Ended and found GUID: 50CA8E05C35DE8118001444553540000
147200:20:11:832 | MD | INFO | +0 | GetJoystickGUID - Started
147300:20:11:832 | MD | INFO | +0 | GetJoystickGUID - Ended and found GUID: F0572D399563E8118002444553540000
147400:20:11:833 | MD | INFO | +0 | GetJoystickGUID - Started
147500:20:11:833 | MD | INFO | +0 | GetJoystickGUID - Ended and found GUID: 2001BE5A8263E8118004444553540000
147600:20:11:833 | MD | INFO | +0 | GetJoystickArray - Ended
147700:20:11:833 | MD | INFO | +0 | RunJoyToKey - Started
147800:20:11:834 | MD | INFO | +0 | Process - Exist JoyToKey.exe
147900:20:11:835 | MD | INFO | +0 | Run - Running: D:\Arcade\RocketLauncher\Profiles\JoyToKey\JoyToKey.exe /C
148000:20:11:855 | MD | INFO | +32 | Process - Exist JoyToKey.exe
148100:20:11:856 | MD | INFO | +0 | Process - Close JoyToKey.exe
148200:20:11:858 | MD | INFO | +0 | WinClose - Closing: JoyToKey ahk_class TMainForm
148300:20:11:964 | MD | INFO | +109 | Process - WaitClose JoyToKey.exe 2
148400:20:11:968 | MD | INFO | +0 | RunJoyToKey - Ended
148500:20:11:968 | MD | INFO | +0 | RunKeymapper - Ended
148600:20:11:968 | MD | INFO | +0 | - Started with mode: END
148700:20:11:971 | MD | INFO | +0 | ExitModule - Ended
1488End of Module Logs
148900:20:12:078 | RL | INFO | +20327 | Main - Module ended, exiting RocketLauncher normally
149000:20:12:078 | RL | INFO | +0 | ExitScript - Started
149100:20:12:101 | RL | INFO | +16 | ExitScript - Restoring taskbar
149200:20:12:346 | RL | INFO | +249 | SystemCursor - Restoring mouse cursor
149300:20:12:363 | RL | INFO | +16 | ExitScript - Restored cursor
149400:20:12:363 | RL | INFO | +0 | ExitScript - Ended
1495[/code]