Jump to content

ERROR IN DOLPHIN


greenhunter1983

Recommended Posts

http://postimg.org/image/hs7x1s24b/

 

 

this error iin image is displayed when I load a game cube-game

 

PLEASE HELP ME!!!

 

LOG:

 

17:30:04:606 | RL |     INFO  | +N/A   | Main - RocketLauncher v1.0.1.5a (www.rlauncher.com)
17:30:04:725 | RL |     INFO  | +125   | Main - System Specs:
                    RocketLauncher Dir: E:\RocketLauncher
                    RocketLauncher is: 32-bit
                    OS: Microsoft Windows 7 Ultimate
                    SKU: Ultimate
                    Total Memory: 8183.12 MB
                    Free Memory: 5915.96 MB
                    Used Memory: 2267.156 MB
                    SystemType: 64-bit
                    Physical Processors: 1
                    Logical Processors: 4
                    GPU 1 Name: AMD Radeon HD 6570
                    GPU 1 RAM: 1024.00 MB
                    GPU 1 Driver Version: 15.200.1062.1004
                    Sound 1 Device: Dispositivo de áudio USB
                    Sound 1 Status: Enabled
                    Sound 2 Device: AMD High Definition Audio Device
                    Sound 2 Status: Enabled
                    Sound 3 Device: Realtek High Definition Audio
                    Sound 3 Status: Enabled
                    OS Language: Portuguese_Brazilian
                    System Locale: pt-BR
                    Formats Locale: pt-BR
                    Windows UI Language: pt-BR
                    Text Encoding: Windows-1252
                    OS Admin Status: No
                    Latest .Net Version: v4.0.30319
                    Monitor #1 (\\.\DISPLAY1): 1920x1080 (1920x1040 work) [32bit] [60hz] [Landscape]  (Primary)
                    Current AHK Desktop Width: 1920
                    Current AHK Desktop Height: 1080
                    AutoHotkey Path: C:\Program Files\AutoHotkey\AutoHotkey.exe
                    AHK Version: 1.1.09.04
                    Unicode: No
17:30:04:725 | RL |     INFO  | +0     | CheckFile - Checking if E:\RocketLauncher\RocketLauncher.exe exists
17:30:04:726 | RL |     INFO  | +0     | Main - Loading Front End Plugin: "HyperSpin"
17:30:04:726 | RL |     INFO  | +0     | Main - RocketLauncher received "Nintendo GameCube" and "Super Mario Strikers (USA)"
17:30:04:733 | RL |     INFO  | +0     | Main - Did not find a "E:\RocketLauncher\Settings\Nintendo GameCube\Game Options.ini" file, skipping any game-specific options.
17:30:04:733 | RL |     INFO  | +0     | Main - Super Mario Strikers (USA) is using the default emulator: Dolphin
17:30:04:733 | RL |     INFO  | +0     | Main - Checking for a [Dolphin] section in E:\RocketLauncher\Settings\Nintendo GameCube\Emulators.ini
17:30:04:733 | RL |     INFO  | +0     | Main - Checking for a [Dolphin] section in E:\RocketLauncher\Settings\Global Emulators.ini
17:30:04:734 | RL |     INFO  | +0     | Main - Found [Dolphin] in E:\RocketLauncher\Settings\Global Emulators.ini
17:30:04:734 | RL |     INFO  | +0     | CheckFile - Checking if E:\RocketLauncher\Modules\Dolphin\Dolphin.ahk exists
17:30:04:738 | RL |     INFO  | +16    | Main - CRC Check - CRC matches, this is an official unedited module.
17:30:04:738 | RL |     INFO  | +0     | Main - Super Mario Strikers (USA) will use module: E:\RocketLauncher\Modules\Dolphin\Dolphin.ahk
17:30:04:753 | RL |     INFO  | +15    | Main - Using standard method with "Rom Extension" SkipChecks or without any SkipChecks.
17:30:04:754 | RL |     INFO  | +0     | CheckFile - Checking if E:\Hyperspin\Emulators\Dolphin\Dolphin.exe exists
17:30:04:755 | RL |     INFO  | +0     | Main - INI Keys read
17:30:04:755 | RL |     INFO  | +0     | CheckFile - Checking if E:\RocketLauncher\Module Extensions\7z.exe exists
17:30:04:756 | RL |     INFO  | +0     | CheckFile - Checking if E:\RocketLauncher\Module Extensions\7z.dll exists
17:30:04:758 | RL |     INFO  | +0     | Main - "Super Mario Strikers (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
17:30:04:758 | RL |     INFO  | +0     | CheckPaths - Started
17:30:04:759 | RL |     INFO  | +0     | CheckPaths - Found rom: E:\Hyperspin\Roms\Nintendo Gamecube\Super Mario Strikers (USA).gcz
17:30:04:759 | RL |     INFO  | +0     | CheckPaths - Ended
17:30:04:759 | RL |     INFO  | +0     | BuildScript - User Variables:
                    ;----------------------------------------------------------------------------
                    ; INJECTED VARIABLES
                    ;----------------------------------------------------------------------------
                    
                    #NoTrayIcon
                    #InstallKeybdHook
                    DetectHiddenWindows, ON
                    SetTitleMatchMode, 2
                    SendMode, Event
                    0 = 12
                    pluginPath = E:\RocketLauncher\Plugins
                    pluginName = HyperSpin
                    pluginExt = .plugin
                    contextOnExit = 1
                    rlMode =
                    rlTitle = RocketLauncher
                    rlVersion = 1.0.1.5a
                    rlAuthor = djvj
                    rlURL = www.rlauncher.com
                    langFile = E:\RocketLauncher\Data\Language\Localization.ini
                    primMonitor = 1
                    frontendPID =
                    frontendPath = E:\Hyperspin
                    frontendExe = HyperSpin.exe
                    frontendExt = exe
                    frontendName = HyperSpin
                    frontendDrive = E:
                    exitEmulatorKey = ~Esc
                    restoreFE = false
                    exitScriptKey = ~q & ~s
                    toggleCursorKey = ~e & ~t
                    emuFullPath = E:\Hyperspin\Emulators\Dolphin\Dolphin.exe
                    emuPath = E:\Hyperspin\Emulators\Dolphin
                    emuName = Dolphin
                    emuExt = exe
                    baseRomPath = \Nintendo GameCube
                    romPath = E:\Hyperspin\Roms\Nintendo Gamecube
                    romPathFromIni = E:\Hyperspin\Roms\Nintendo Gamecube
                    romExtension = .gcz
                    romExtensionOrig = .gcz
                    romExtensions = 7z|zip|wbfs|ciso|iso|elf|dol|gcm|wad|gcz
                    executable = Dolphin.exe
                    systemDbName = Nintendo GameCube
                    systemName = Nintendo GameCube
                    dbPath =
                    dbName = Super Mario Strikers (USA)
                    dbExt =
                    romName = Super Mario Strikers (USA)
                    romMapPath =
                    romMappingEnabled = false
                    romMappingLaunchMenuEnabled = false
                    romMappingFirstMatchingExt = false
                    romMappingShowAllRomsInArchive = true
                    romMappingNumberOfGamesByScreen = 7
                    romMappingHideParent = false
                    romMappingMenuWidth = 400
                    romMappingMenuMargin = 65
                    romMappingTextFont = Bebas Neue
                    romMappingTextOptions = cFFFFFFFF r4 s60 Bold
                    romMappingDisabledTextColor = ff888888
                    romMappingTextSizeDifference = 7
                    romMappingTextMargin = 15
                    romMappingTitleTextFont = Bebas Neue
                    romMappingTitleTextOptions = cFFFFFFFF r4 s90 Bold
                    romMappingTitle2TextFont = Bebas Neue
                    romMappingTitle2TextOptions = cFFFFFFFF r4 s22 Bold
                    romMappingGameInfoTextFont = Bebas Neue
                    romMappingGameInfoTextOptions = cFFFFFFFF r4 s22 Regular
                    romMappingGameNameTextFont = Bebas Neue
                    romMappingGameNameTextOptions = cFFFFFFFF r4 s40 Regular
                    romMappingBackgroundBrush = aa000000
                    romMappingColumnBrush = 33000000
                    romMappingButtonBrush1 = 6f000000
                    romMappingButtonBrush2 = 33000000
                    romMappingBackgroundAlign = Stretch and Lose Aspect
                    romMappingMenuFlagWidth = 55
                    romMappingMenuFlagSeparation = 7
                    romMappingDefaultMenuList = FullList
                    romMappingSingleFilteredRomAutomaticLaunch = false
                    altArchiveNameOnly =
                    altRomNameOnly =
                    altArchiveAndRomName =
                    altArchiveAndManyRomNames =
                    altRomNamesOnly =
                    romMapScenario =
                    skipchecks = false
                    romMatchExt = false
                    blockInputTime = 0
                    blockInputFile = E:\RocketLauncher\Module Extensions\BlockInput.exe
                    errorLevelReporting = false
                    lockLaunch = false
                    lockLaunchGame =
                    screenRotationAngle = 0
                    screenRotationAngleGame =
                    setResolution =
                    logFile = E:\RocketLauncher\RocketLauncher.log
                    logLabel := ["    INFO"," WARNING","   ERROR","  DEBUG1","  DEBUG2"]
                    logLevel = 3
                    logShowDebugConsole = false
                    logIncludeModule = true
                    logIncludeFileProperties = true
                    logShowCommandWindow = false
                    logCommandWindow = false
                    rlDebugConsoleStdout =
                    sysLang = Portuguese_Brazilian
                    sysType = 64-bit
                    broadcastWindowTitle =
                    navUpKey = Up
                    navDownKey = Down
                    navLeftKey = Left
                    navRightKey = Right
                    navSelectKey = Enter
                    navP2UpKey = Numpad8
                    navP2DownKey = Numpad2
                    navP2LeftKey = Numpad4
                    navP2RightKey = Numpad6
                    navP2SelectKey = NumpadEnter
                    originalWidth = 1920
                    originalHeight = 1080
                    vdEnabled = false
                    vdFullPath = C:\Program Files (x86)\DAEMON Tools Lite\DTLite.exe
                    vdUseSCSI = true
                    vdDriveLetter = S
                    vdAddDrive = true
                    servoStikEnabled = false
                    servoStikExitMode = false
                    ledblinkyEnabled = false
                    ledblinkySystemName =
                    ledblinkyFullPath =
                    ledblinkyProfilePath = E:\RocketLauncher\Profiles\LEDBlinky
                    ledblinkyRLProfile = E:\RocketLauncher\Profiles\LEDBlinky\RocketLauncher
                    winIPACFullPath =
                    ultraMapEnabled = false
                    ultraMapFullPath =
                    emuIdleShutdown = 0
                    launchPasswordHash = UpUpDownDownLeftRightLeftRight
                    hideCursor = false
                    hideEmu = false
                    hideFE = false
                    fadeIn = false
                    fadeInDuration = 500
                    fadeInTransitionAnimation = DefaultAnimateFadeIn
                    fadeInDelay = 0
                    fadeInExitDelay = 0
                    fadeOutExitDelay = 0
                    fadeOut = false
                    fadeOutExtraScreen = false
                    fadeOutDuration = 500
                    fadeOutTransitionAnimation = DefaultAnimateFadeOut
                    fadeOutDelay = 0
                    fadeLyrInterpolation = 7
                    fadeMuteEmulator = false
                    fadeUseBackgrounds = false
                    fadeClickThrough = false
                    fadeWidthBaseRes = 1920
                    fadeHeightBaseRes = 1080
                    fadeLyr1Color = FF000000
                    fadeLyr1AlignImage = Stretch and Lose Aspect
                    fadeLyr2Pos = Stretch and Lose Aspect
                    fadeLyr2X = 0
                    fadeLyr2Y = 0
                    fadeLyr2W =
                    fadeLyr2H =
                    fadeLyr2Adjust = 1
                    fadeLyr2PicPad = 0
                    fadeLyr2Prefix = Extra Layer 1 - Console
                    fadeLyr3Pos = Center
                    fadeLyr3X = 450
                    fadeLyr3Y = 450
                    fadeLyr3W =
                    fadeLyr3H =
                    fadeLyr3Adjust = 1
                    fadeLyr3PicPad = 0
                    fadeLyr3Speed = 750
                    fadeLyr3Animation = DefaultFadeAnimation
                    fadeLyr37zAnimation = DefaultFadeAnimation
                    fadeLyr3Type = imageandbar
                    fadeLyr3ImgFollow7zProgress = true
                    fadeLyr3Repeat = 1
                    fadeLyr3BackImageTransparency = 30
                    fadeLyr3StaticPos = No Alignment
                    fadeLyr3StaticX = 0
                    fadeLyr3StaticY = 870|1575
                    fadeLyr3StaticW =
                    fadeLyr3StaticH =
                    fadeLyr3StaticAdjust = 1
                    fadeLyr3StaticPicPad = 0
                    fadeLyr3StaticPrefix = Info Bar
                    fadeLyr4Adjust = 1
                    fadeLyr4X = 1792|952
                    fadeLyr4Y = 891|1596
                    fadeLyr4W = 128
                    fadeLyr4H =
                    fadeLyr4Pos = No Alignment
                    fadeLyr4FPS = 50
                    fadeLyr4PicPad = 0
                    fadeTranspGifColor = FFFFFF
                    fadeBarWindow = Image
                    fadeBarWindowX =
                    fadeBarWindowY =
                    fadeBarWindowW = 900
                    fadeBarWindowH =
                    fadeBarWindowR = 30
                    fadeBarWindowM = 30
                    fadeBarWindowHatchStyle = 8
                    fadeBar = 7zOnly
                    fadeBarNon7zProgressTime = 0
                    fadeBarBack = true
                    fadeBarBackColor = FF555555
                    fadeBarH = 30
                    fadeBarR = 10
                    fadeBarColor = DD00BFFF
                    fadeBarHatchStyle = 8
                    fadeBarPercentageText = true
                    fadeBarInfoText = true
                    fadeBarXOffset = 0
                    fadeBarYOffset = 150
                    fadeRomInfoDescription = filtered text
                    fadeRomInfoSystemName = image
                    fadeRomInfoYear = text with label
                    fadeRomInfoDeveloper = text with label
                    fadeRomInfoPublisher = text with label
                    fadeRomInfoGenre = disabled
                    fadeRomInfoRating = image
                    fadeRomInfoOrder = Description|SystemName|Year|Developer|Genre|Rating|Publisher
                    fadeRomInfoTextPlacement = User Defined
                    fadeRomInfoTextMargin = 7
                    fadeRomInfoText1Options = w1600|787 h90 x165 y870|1575 cFFE1E1E1 r4 s90 Left Regular
                    fadeRomInfoText2Options = w400 x8 y15 cFF555555 r4 s60 Bold
                    fadeRomInfoText3Options = w310 x165 y960|1665 cFFE1E1E1 r4 s66 Left Regular
                    fadeRomInfoText4Options = w1305|492 h66 x460 y960|1665 cFFE1E1E1 r4 s66 Left Regular
                    fadeRomInfoText5Options = cFF555555 r4 s42 Bold
                    fadeRomInfoText6Options = h135 x15 y885|1590 cFFCFCFCA r4 s120 Regular
                    fadeRomInfoText7Options = h135 x500 y960|1665 cFFCFCFCA r4 s66 Regular
                    fadeStats_Number_of_Times_Played = text with label
                    fadeStats_Last_Time_Played = text with label
                    fadeStats_Average_Time_Played = text with label
                    fadeStats_Total_Time_Played = text with label
                    fadeStats_System_Total_Played_Time = text with label
                    fadeStats_Total_Global_Played_Time = text with label
                    fadeStatsInfoOrder = Number_of_Times_Played|Last_Time_Played|Average_Time_Played|Total_Time_Played|System_Total_Played_Time|Total_Global_Played_Time
                    fadeStatsInfoTextPlacement = topRight
                    fadeStatsInfoTextMargin = 7
                    fadeStatsInfoText1Options = cFFB4B4B4 r4 s22 Bold
                    fadeStatsInfoText2Options = cFFB4B4B4 r4 s22 Bold
                    fadeStatsInfoText3Options = cFFB4B4B4 r4 s22 Bold
                    fadeStatsInfoText4Options = cFFB4B4B4 r4 s22 Bold
                    fadeStatsInfoText5Options = cFFB4B4B4 r4 s22 Bold
                    fadeStatsInfoText6Options = cFFB4B4B4 r4 s22 Bold
                    fadeText1X = 0
                    fadeText1Y = 0
                    fadeText1Options = cFFB4B4B4 r4 s30 Right Bold
                    fadeText1 = Loading Game
                    fadeText2X = 0
                    fadeText2Y = 0
                    fadeText2Options = cFFB4B4B4 r4 s30 Right Bold
                    fadeText2 = Extraction Complete, Ready
                    fadeText3 = Loading Game
                    fadeText4 = Loading Complete
                    fadeFont = Bebas Neue
                    fadeSystemAndRomLayersOnly = false
                    fadeExtractionTime = disabled
                    fadeExtractionTimeTextX = 0
                    fadeExtractionTimeTextY = 0
                    fadeExtractionTimeTextOptions = cFF555555 r4 s20 Bold
                    fadeInterruptKey =
                    detectFadeErrorEnabled = true
                    fadeImgPath = E:\RocketLauncher\Media\Fade
                    RLDataPath = E:\RocketLauncher\Data
                    RLMediaPath = E:\RocketLauncher\Media
                    RLErrSoundPath = E:\RocketLauncher\Media\Sounds\Error
                    modulesPath = E:\RocketLauncher\Modules
                    moduleFullName = E:\RocketLauncher\Modules\Dolphin\Dolphin.ahk
                    moduleName = Dolphin
                    modulePath = E:\RocketLauncher\Modules\Dolphin
                    moduleExtension = ahk
                    moduleExtensionsPath = E:\RocketLauncher\Module Extensions
                    libPath = E:\RocketLauncher\Lib
                    sevenZEnabled = false
                    sevenZPath = E:\RocketLauncher\Module Extensions\7z.exe
                    sevenZDllPath = E:\RocketLauncher\Module Extensions\7z.dll
                    sevenZExtractPath = E:\RocketLauncher\temp
                    sevenZExtractPathOrig =
                    sevenZAttachSystemName = false
                    sevenZDelTemp = true
                    sevenZSounds = true
                    sevenZFormats = .zip|.rar|.7z|.lzh|.gzip|.tar
                    sevenZFormatsNoP = zip|rar|7z|lzh|gzip|tar
                    sevenZFormatsRegEx = \.zip|\.rar|\.7z|\.lzh|\.gzip|\.tar
                    7zExtractPath = E:\RocketLauncher\temp
                    mgEnabled = true
                    mgKey = ~NumpadSub
                    mgBackgroundColor = FF000000
                    mgSidePadding = 0.2
                    mgWidthBaseRes = 1920
                    mgHeightBaseRes = 1080
                    mgYOffset = 500|800
                    mgFont = Arial
                    mgText1Options = x10p y250|500 w80p Center cBBFFFFFF r4 s100 BoldItalic
                    mgText1Text = Please select a game
                    mgText2Options = w96p cFFFFFFFF r4 s50 Center BoldItalic
                    mgText2Offset = 100
                    mgUseSound = true
                    mgSoundfreq = 300
                    mgExitEffect = none
                    mgSelectedEffect = rotate
                    mgUseGameArt = false
                    mgCandidate =
                    mgValidTypes = \(Disc|\(Disk|\(Cart|\(Tape|\(Cassette|\(Part|\(Side
                    mgOnLaunch = false
                    pauseEnabled = false
                    pauseKey = ~NumpadAdd
                    pauseBackToMenuBarKey = X
                    pauseZoomInKey = C
                    pauseZoomOutKey = V
                    pauseScreenshotKey = ~PrintScreen
                    pauseHiToTextPath = E:\RocketLauncher\Module Extensions\HiToText.exe
                    pauseSaveStateKeyCodes = {Shift down}{F1 down}{F1 up}{Shift up}|{Shift down}{F2 down}{F2 up}{Shift up}|{Shift down}{F3 down}{F3 up}{Shift up}|{Shift down}{F4 down}{F4 up}{Shift up}|{Shift down}{F5 down}{F5 up}{Shift up}|{Shift down}{F6 down}{F6 up}{Shift up}|{Shift down}{F7 down}{F7 up}{Shift up}|{Shift down}{F8 down}{F8 up}{Shift up}
                    pauseLoadStateKeyCodes = {F1 down}{F1 up}|{F2 down}{F2 up}|{F3 down}{F3 up}|{F4 down}{F4 up}|{F5 down}{F5 up}|{F6 down}{F6 up}|{F7 down}{F7 up}|{F8 down}{F8 up}
                    keyboardEncoder =
                    keyboardEncoderEnabled = false
                    keymapperEnabled = false
                    keymapperAHKMethod = false
                    keymapper = xpadder
                    xpadderFullPath = E:\Utilities\Xpadder\xpadder.exe
                    joyToKeyFullPath = E:\Utilities\JoyToKey\JoyToKey.exe
                    profilePath = E:\RocketLauncher\Profiles
                    keymapperProfilePath = E:\RocketLauncher\Profiles\xpadder
                    keymapperFrontEndProfileName = HyperSpin
                    keymapperFrontEndProfile = false
                    keymapperRocketLauncherProfileEnabled = false
                    joyIDsEnabled = false
                    joyIDsPreferredControllersGlobal =
                    joyIDsPreferredControllersSystem = use_global
                    joyIDsPreferredControllersOnExit =
                    CustomJoyNamesEnabled = false
                    CustomJoyNames =
                    rotateMethod = false
                    FEProfile = E:\RocketLauncher\Profiles\xpadder\HyperSpin
                    defaultProfile = E:\RocketLauncher\Profiles\xpadder\_Default
                    systemProfile = E:\RocketLauncher\Profiles\xpadder\Nintendo GameCube
                    xPadderSystemProfile = E:\RocketLauncher\Profiles\xpadder\Nintendo GameCube\_Default
                    emuProfile = E:\RocketLauncher\Profiles\xpadder\Nintendo GameCube\Dolphin
                    romProfile = E:\RocketLauncher\Profiles\xpadder\Nintendo GameCube\Super Mario Strikers (USA)
                    RocketLauncherProfile = E:\RocketLauncher\Profiles\xpadder\RocketLauncher
                    blankProfile = E:\RocketLauncher\Profiles\xpadder\_Default\blank
                    ahkFEProfile = E:\RocketLauncher\Profiles\AHK\HyperSpin
                    ahkDefaultProfile = E:\RocketLauncher\Profiles\AHK\_Default
                    ahkSystemProfile = E:\RocketLauncher\Profiles\AHK\Nintendo GameCube
                    ahkEmuProfile = E:\RocketLauncher\Profiles\AHK\Nintendo GameCube\Dolphin
                    ahkRomProfile = E:\RocketLauncher\Profiles\AHK\Nintendo GameCube\Super Mario Strikers (USA)
                    ahkRocketLauncherProfile = E:\RocketLauncher\Profiles\AHK\RocketLauncher
                    bezelEnabled = false
                    bezelICEnabled = false
                    statisticsEnabled = true
                    pressDuration = -1
                    emuVolume = 1
                    dxwndIni = E:\RocketLauncher\Module Extensions\dxwnd\dxwnd.ini
                    dxwndFullPath = E:\RocketLauncher\Module Extensions\dxwnd\dxwnd.exe
                    qResFullPath = E:\RocketLauncher\Module Extensions\QRes.exe
                    mon1O =
                    pacDrivedllFile = E:\RocketLauncher\Module Extensions\PacDrive32.dll
                    userFadeAnimIniFile = E:\RocketLauncher\Lib\User Fade Animations.ini

17:30:04:760 | RL |     INFO  | +0     | BuildScript - Loaded XHotkey Init.ahk scripts
17:30:04:760 | RL |     INFO  | +0     | BuildScript - Loaded Statistics Init.ahk scripts
17:30:04:760 | RL |     INFO  | +0     | BuildScript - Loaded MultiGame Init.ahk scripts
17:30:04:760 | RL |  WARNING  | +0     | BuildScript - "E:\RocketLauncher\Lib\User Functions Init.ahk" not found
17:30:04:760 | RL |     INFO  | +0     | BuildScript - Validating module
17:30:04:764 | RL |     INFO  | +0     | BuildScript - Validation complete
17:30:04:764 | RL |     INFO  | +0     | BuildScript - Module:
                    MEmu = Dolphin
                    MEmuV =  v4.0 r6928
                    MURL = https://dolphin-emu.org/
                    MAuthor = djvj & bleasby
                    MVersion = 2.1.1
                    MCRC = 8FAA6960
                    iCRC = C6A0A085
                    MID = 635038268884477733
                    MSystem = "Nintendo Gamecube","Nintendo Wii","Nintendo WiiWare"
                    ;----------------------------------------------------------------------------
                    ; Notes:
                    ; Be sure you are running at least Dolphin v4.0 or greater.
                    ; If you get an error that you are missing a vcomp100.dll, install Visual C++ 2010: http://www.microsoft.com/download/en/details.aspx?id=14632
                    ; Also make sure you are running latest directx: http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3
                    ; Dolphin will sometimes crash when connnecting a Wiimote, then going back to the game. After all Wiimotes are connected that you want to use, it shouldn't have anymore issues.
                    ; Convert all your games to ciso using Wii Backup Manager to save alot of space by stripping everything but the game partition. http://www.wiibackupmanager.tk/
                    ; If you want to keep your Dolphin.ini in the emu folder, create a "portable.txt" file in MyDocuments\Dolphin Emulator\
                    ;
                    ; Bezels:
                    ; If the game does not fit the window, you can try setting stretch to window manually in dolphin.
                    ;
                    ; Setting up custom Wiimote or GCPad profiles:
                    ; First set UseCustomWiimoteProfiles or UseCustomGCpadProfiles to true in RocketLauncherUI for this module
                    ; Launch Dolphin manually and goto Options->(Wiimote or Gamecube Pad) Settings and configure all your controls how you want your default setup to look like. This will be used for all games that you don't set a custom profile for. No need to save any profiles.
                    ; All your controls are stored in WiimoteNew.ini or GCPadNew.ini and get copied to a _Default_(WiimoteNew or GCPadNew).ini on first launch. This ini contains all the controls for all 4 controllers.
                    ; Do not confuse this with Dolphin's built-in profiles as those only contain info for only one controller. The (WiimoteNew or GCPadNew).ini and all the profiles RocketLauncher uses contain info for all controllers in one file.
                    ; This new profile now called _Default_(WiimoteNew or GCPadNew).ini will be found in Dolphins settings folder: \Config\Profiles\(Wiimote or GCPad) (RL)\Default.ini
                    ; For each game or custom control sets you want to use, edit the controls for all the controllers to work for that game and exit Dolphin. Now copy the (WiimoteNew or GCPadNew).ini to the "(Wiimote or GCPad) (RL)" folder and name it whatever you like.
                    ; In RocketLauncherUI's module settings for Dolphin, Click the Rom Settings tab and add each game from your xml you want to use a this custom profile for.
                    ; Now for all those games you added, make sure the Profile setting it set to the custom profile you want to load when that game is launched.
                    ; Any game not added will use the "_Default_(WiimoteNew or GCPadNew).ini" profile RocketLauncher makes on first launch.
                    ;
                    ; To Pair a Wiimote:
                    ; Highly suggest getting a Mayflash DolphinBar as it makes pairing and using wiimotes as easy as with a real Wii: http://www.amazon.com/TOTALCONSOLE-W010-Wireless-Sensor-DolphinBar/dp/B00HZWEB74
                    ; If using the DolphinBar, just make sure Dolphin is set to continuously scan for wiimotes and set controls to use real wiimotes for as many wiimotes you have.
                    ; You do not need to pair the wiimote with the PC first as you would with a standard blueooth and wiimote.
                    ; DolphinBar should be on Mode 4. Wiimotes don't get paired until after Dolphin is running, not before!!
                    ; After Dolphin is running, press 1+2 on each wiimote and after a few moments, the wiimote will pair and vibrate and one led will lock solid. Do this for each wiimote. That's it!
                    ;
                    ; If using a standard LED Bar:
                    ; Make sure all your wiimotes have already been paired with your PC's bluetooth adapter
                    ; All 4 leds on the wiimote should be flashing
                    ; Press your Refresh key (set in RocketLauncherUI for this module) or enable continuous scanning in Dolphin
                    ; Press 1 + 2 on the wiimote and one led should go solid designating the player number
                    ;
                    ; Netplay:
                    ; If you're using a GameCube game with saves, synchronize your memory cards, Wii NAND needs to be synchronized, and some settings (such as CPU Clock Override) must be either synchronized or disabled.
                    ; Because netplay may require different settings than you would normally use with local play, the module will look for any inis in your Dolphin user config folder ending with "_netplay" and use those configs instead of your normal ones.
                    ; So for example, after you tweak all your dolphin settings for netplay, copy your dolphin.ini to dolphin_netplay.ini in the same folder.
                    ; When the module launches and you choose multiplayer from RocketLauncher on screen menu, the module will backup dolphin.ini and copy dolphin_network.ini to dolphin.IniDelete
                    ; On exit, the module will restore your backed up dolphin.ini and any other ini files in this folder (and all subfolders) that had the "_netplay" in the name.
                    ; Guide on tweaking performance for netplay: https://dolphin-emu.org/docs/guides/netplay-guide/
                    ; Another guide: https://docs.google.com/document/d/1CIkBAGcf_-kBUa4urn4KUj2U4UA6y_2a7stXJz85yiE/
                    ;
                    ; Linking a GameCube game with VBA-M
                    ; Game tested: Legend of Zelda, The - Four Swords Adventures (USA)
                    ; VBA-M emulator tested: visualboyadvance-m2.0.0Beta1
                    ; dolphin emulator tested: dolphin-master-4.0-6725-x64
                    ; On RocketLaunchUI, dolphin, GameCube Module settings set your VBA-M executable and VBA Bios file path on the VBALink tab.
                    ; On RocketLaunchUI, dolphin, GameCube, Game name Module Settings enable VBA Link
                    ; If your Game Boy Advanced Windows appear frozen after the RocketLauncher fade screen loads, increase the value of the VBADelay on GameCube, VBALink settings. Default value is 500 milliseconds.
                    ; A game with one VBA window will use a two screens bezel file, Bezel [2S].png, the first screen for the GameCube game and the second one for the VBA screen. Two VBAs = Bezel [3S].png, again first screen for the GameCube game and second and third for the VBA screens, and so on.
                    ;----------------------------------------------------------------------------
                    StartModule()
                    BezelGui()
                    FadeInStart()
                        
                    settingsFile := modulePath . "\" . moduleName . ".ini"
                    Fullscreen := IniReadCheck(settingsFile, "Settings", "Fullscreen","true",,1)
                    UseCustomWiimoteProfiles := IniReadCheck(settingsFile, "Settings", "UseCustomWiimoteProfiles","false",,1)    ; set to true if you want to setup custom Wiimote profiles for games
                    UseCustomGCPadProfiles := IniReadCheck(settingsFile, "Settings", "UseCustomGCPadProfiles","false",,1)    ; set to true if you want to setup custom GCPad profiles for games
                    HideMouse := IniReadCheck(settingsFile, "Settings", "HideMouse","true",,1)                    ; hides mouse cursor in the emu options
                    RefreshKey := IniReadCheck(settingsFile, "Settings", "RefreshKey","",,1)                        ; hotkey to "Refresh" Wiimotes, delete the key to disable it
                    Timeout := IniReadCheck(settingsFile, "Settings", "Timeout","5",,1)                            ; amount in seconds we should wait for the above hotkeys to timeout
                    renderToMain := IniReadCheck(settingsFile, "Settings", "Render_To_Main","false",,1)
                    enableNetworkPlay := IniReadCheck(settingsFile, "Network", "Enable_Network_Play","false",,1)
                    
                    ;options to Gamecube and VBA Link
                    enableVBALink := IniReadCheck(settingsFile, romName, "enableVBALink", "false",,1)
                    VBAExePath := IniReadCheck(settingsFile, "VBA Link", "VBAExePath", ,,1)
                    VBABiosPath := IniReadCheck(settingsFile, "VBA Link", "VBABiosPath", ,,1)
                    VBADelay := IniReadCheck(settingsFile, "VBA Link", "VBADelay", 500,,1)  
                    
                    ; Determine where Dolphin is storing its ini, this will act as the base folder for settings and profiles related to this emu
                    dolphinININewPath := A_MyDocuments . "\Dolphin Emulator\Config\Dolphin.ini"    ; location of Dolphin.ini for v4.0+
                    dolphinINIOldPath := emuPath . "\User\Config\Dolphin.ini"    ; location of Dolphin.ini prior to v4.0
                    portableTxtFile := emuPath . "\portable.txt"
                    If (!FileExist(portableTxtFile) && FileExist(dolphinININewPath))
                    {    dolphinBasePath := A_MyDocuments . "\Dolphin Emulator"
                        Log("Module - Dolphin's base settings folder is not portable and found in: " . dolphinBasePath)
                    } Else If (FileExist(portableTxtFile) || FileExist(dolphinINIOldPath))
                    {    dolphinBasePath := emuPath . "\User"
                        Log("Module - Dolphin's base settings folder is portable and found in: " . dolphinBasePath)
                    } Else
                        ScriptError("Could not find your Dolphin.ini in either of these folders. Please run Dolphin manually first to create it.`n" . dolphinINIOldPath . "`n" . dolphinININewPath)
                    dolphinINI := dolphinBasePath . "\Config\Dolphin.ini"
                    
                    If (enableVBALink = "true"){
                        VBAExePath := AbsoluteFromRelative(EmuPath, VBAExePath)
                        VBABiosPath := AbsoluteFromRelative(EmuPath, VBABiosPath)
                        SplitPath, VBAExePath, VBAFile, VBAPath
                        SelectedNumberofPlayers :=NumberOfPlayersSelectionMenu(4)
                        If (SelectedNumberofPlayers=1){
                            enableVBALink = "false"
                        } Else {
                            ; backup original ini
                            FileCopy, %dolphinINI%, %dolphinINIBackup%
                            dolphinINIBackup := dolphinBasePath . "\Config\Dolphin_Backup.ini"
                            Loop, % SelectedNumberofPlayers
                            {     tempCount := a_index-1
                                IniWrite, 5, %dolphinINI%, Controls, PadType%tempCount%
                            }
                        }
                    }
                    
                    ; Win titles used throughout module
                    dolphinTitle := "Dolphin ahk_class wxWindowNR"
                    dolphinGameTitle := If renderToMain = "true" ? dolphinTitle : "FPS ahk_class wxWindowNR"
                    dolphinScanningTitle := "Scanning for ISOs ahk_class #32770"
                    dolphinNetPlaySetupTitle := "Dolphin NetPlay Setup ahk_class wxWindowNR"
                    dolphinNetPlayTitle := "Dolphin NetPlay ahk_class wxWindowNR"
                    dolphinErrorTitle1 := "Warning ahk_class #32770"
                    dolphinErrorTitle2 := "Error ahk_class #32770"
                    
                    If (enableVBALink = "true")
                        BezelStart(SelectedNumberofPlayers+1)    
                    Else
                        BezelStart()
                    
                    If (enableVBALink = "true" and !bezelPath)   ; disabling fullscreen if VBA Link mode
                        Fullscreen := "false"
                    
                    If (renderToMain = "true" && (enableVBALink = "true" || bezelEnabled = "true")) {   ; disabling toolbar and statusbar if bezels or vba link is used as it will show when rendering to the main window
                        IniWrite, False, %dolphinINI%, Interface, ShowToolbar
                        IniWrite, False, %dolphinINI%, Interface, ShowStatusbar
                    }
                    
                    hideEmuObj := Object(dolphinScanningTitle,0,dolphinNetPlayTitle,0,dolphinNetPlaySetupTitle,0,dolphinErrorTitle1,0,dolphinErrorTitle2,0,dolphinTitle,0,dolphinGameTitle,1)    ; Hide_Emu will hide these windows. 0 = will never unhide, 1 = will unhide later
                    7z(romPath, romName, romExtension, 7zExtractPath)
                    
                    If romExtension in .zip,.7z,.rar
                        ScriptError(MEmu . " does not support compressed roms. Please enable 7z support in RocketLauncherUI to use this module/emu.")
                    
                    If RefreshKey {
                        RefreshKey := xHotKeyVarEdit(RefreshKey,"RefreshKey","~","Add")
                        xHotKeywrapper(RefreshKey,"RefreshWiimote")
                    }
                    
                    Fullscreen := (If ( Fullscreen = "true" ) ? ("True") : ("False"))
                    HideMouse := (If ( HideMouse = "true" ) ? ("True") : ("False"))
                    
                    networkSession :=
                    If (enableNetworkPlay = "true") {
                        Log("Module - Network Multi-Player is an available option for " . dbName,4)
                        IniRead, dolphinNickname, %dolphinINI%, NetPlay, Nickname
                        IniRead, dolphinAddress, %dolphinINI%, NetPlay, Address
                        IniRead, dolphinCPort, %dolphinINI%, NetPlay, ConnectPort
                        IniRead, dolphinHPort, %dolphinINI%, NetPlay, HostPort
                        netplayNickname := IniReadCheck(settingsFile, "Network", "NetPlay_Nickname","Player",,1)
                        getWANIP := IniReadCheck(settingsFile, "Network", "Get_WAN_IP","false",,1)
                        networkPlayers := 4    ; Max amount of networkable players
                    
                        If (getWANIP = "true")
                            myPublicIP := GetPublicIP()
                    
                        defaultServerIP := IniReadCheck(settingsFile, "Network", "Default_Server_IP", myPublicIP,,1)
                        defaultServerPort := IniReadCheck(settingsFile, "Network", "Default_Server_Port",,,1)
                        lastIP := IniReadCheck(settingsFile, "Network", "Last_IP", defaultServerIP,,1)    ; does not need to be on the ISD
                        lastPort := IniReadCheck(settingsFile, "Network", "Last_Port", defaultServerPort,,1)    ; does not need to be on the ISD
                    
                        If (netplayNickname != dolphinNickname)
                            IniWrite, %netplayNickname%, %dolphinINI%, NetPlay, Nickname
                    
                        MultiplayerMenu(lastIP,lastPort,networkType,networkPlayers,0)
                        If networkSession {
                            Log("Module - Using a Network for " . dbName,4)
                    
                            restoreIniObject := Object()    ; initialize object
                            currentObj :=
                            dolphinConfigPath := dolphinBasePath . "\Config"
                            Loop, %dolphinConfigPath%\*.ini
                            {
                                If InStr(A_LoopFileName, "_netplay.ini") {
                                    Log("Module - Found a network specific ini: " . A_LoopFileFullPath,4)
                                    networkIni := A_LoopFileFullPath
                                    originalIni := RegExReplace(A_LoopFileFullPath, "_netplay","","",-1,15)
                                    backupIni := originalIni . ".backup"
                                    FileMove, %originalIni%, %backupIni%,1    ; backup original ini
                                    FileCopy, %networkIni%, %originalIni%    ; copy network ini to original name
                                    currentObj++
                                    restoreIniObject[currentObj,"originalIni"] := originalIni
                                    restoreIniObject[currentObj,"backupIni"] := backupIni
                                }
                            }
                            
                            IniWrite, %lastPort%, %settingsFile%, Network, Last_Port
                    
                            If (networkType = "client") {
                                IniWrite, %lastIP%, %settingsFile%, Network, Last_IP    ; Save last used IP and Port for quicker launching next time
                                IniWrite, %lastIP%, %dolphinINI%, NetPlay, Address
                                IniWrite, %lastPort%, %dolphinINI%, NetPlay, ConnectPort
                            } Else    ; server
                                IniWrite, %lastPort%, %dolphinINI%, NetPlay, HostPort
                    
                            IniWrite, %romPath%, %dolphinINI%, General, ISOPath0    ; makes browser only show the one game we want to play
                            IniWrite, 1, %dolphinINI%, General, ISOPaths    ; makes browser only show the first path set
                            IniWrite, %romPath%\%romName%%romExtension%, %dolphinINI%, General, LastFilename
                            Log("Module - Starting a network session using the IP """ . networkIP . """ and PORT """ . networkPort . """",4)
                        } Else
                            Log("Module - User chose Single Player mode for this session",4)
                    }
                    
                    gcSerialPort = 5    ; this puts the BBA network adapter into the serial port. If previous launch was Triforce, AM-Baseboard would be set here and would result in Unknown DVD command errors
                    
                    iniLookup =
                    ( ltrim c
                        Display, Fullscreen, %Fullscreen%
                        Display, RenderToMain, %renderToMain%
                        Interface, HideCursor, %HideMouse%
                        Interface, ConfirmStop, False
                        Interface, UsePanicHandlers, False
                        Core, SerialPort1, %gcSerialPort%
                    )
                    Loop, Parse, iniLookup, `n
                    {
                        StringSplit, split, A_LoopField, `,, %A_Space%%A_Tab%
                        IniRead, tempVar, %dolphinINI%, %split1%, %split2%
                        If ( tempVar != split3 )
                            IniWrite, % split3, %dolphinINI%, %split1%, %split2%
                    }
                    
                     ; Load default or user specified Wiimote or GCPad profiles for launching
                    If (InStr(systemName, "wii") && UseCustomWiimoteProfiles = "true")
                        ChangeDolphinProfile("Wiimote")
                    If (UseCustomGCPadProfiles = "true")
                        ChangeDolphinProfile("GCPad")
                    
                    HideEmuStart()
                    
                    If networkSession
                        Run(executable, emuPath)    ; must be launched w/o /b for browser list to work
                    Else
                        Run(executable . " /b /e """ . romPath . "\" . romName . romExtension . """", emuPath)    ; /b = batch (exit dolphin with emu), /e = load file
                    
                    Prev_TitleMatchMode := A_TitleMatchMode
                    SetTitleMatchMode RegEx
                    If (renderToMain = "false") {
                        WinWait("(Dolphin.*\|)")
                        WinGet, dolphinID, ID
                        dolphinTitle = ahk_ID %dolphinID%
                        WinWaitActive(dolphinTitle)
                    } Else {
                        WinWait(dolphinTitle)
                        WinGet, dolphinID, ID
                    }
                    SetTitleMatchMode %Prev_TitleMatchMode%        
                    
                    If networkSession {
                        Log("Module - Opening NetPlay window")
                    
                        ; Get the 6-letter ID of the game
                        If (romExtension = ".wbfs")
                            gameID := COM_Invoke(RLObject,"readFileData",romPath . "\" . romName . romExtension,512,6,"UTF8")
                        Else If (romExtension = ".iso")
                            gameID := COM_Invoke(RLObject,"readFileData",romPath . "\" . romName . romExtension,0,6,"UTF8")
                        Else If (romExtension = ".ciso")
                            gameID := COM_Invoke(RLObject,"readFileData",romPath . "\" . romName . romExtension,32768,6,"UTF8")
                    
                        ; Must wait for Dolphin to finish scanning isos before netplay window can be opened so the game list is populated. Opening too early and the game list will be blank or partially filled.
                        If WinExist(dolphinScanningTitle)
                            WinWaitClose(dolphinScanningTitle,,60)    ; wait 60 seconds max. hopefully doesn't take longer than that to scan your isos...
                        Else {
                            WinWait, %dolphinScanningTitle%,,5    ; wait 5 seconds max to appear
                            If ErrorLevel
                                Log("Module - Timed out waiting for ""Scanning for ISOs"" window to appear. It may have finished before it could be detected, moving on.")
                            Else
                                Log("Module - ""Scanning for ISOs"" window found.")
                        }
                        WinMenuSelectItem, %dolphinTitle%,, Tools, Start NetPlay
                        matchMode := A_TitleMatchMode    ; store for restoration later
                        SetTitleMatchMode, 3    ; changes match mode so title must match exactly
                        WinWait(dolphinNetPlaySetupTitle)
                        WinWaitActive(dolphinNetPlaySetupTitle)
                        If (networkType = "client") {
                            Log("Module - Clicking Connect button")
                            While !breakLoops {
                                ControlClick, Button1, %dolphinNetPlaySetupTitle%    ; click connect button
                                Log("Module - Waiting for Host to start game")
                                WinWait, %dolphinNetPlayTitle%,,2,%dolphinNetPlaySetupTitle%    ; waits 2 seconds
                                If ErrorLevel {    ; 1 if timed out, now check for any error windows and close them
                                    Loop, 2        ; loop through both error windows
                                        If WinExist(dolphinErrorTitle%A_Index%)    ; error windows that can appear when host is not running yet
                                            ControlClick, Button1, % dolphinErrorTitle%A_Index%    ; click ok to clear error
                                    Log("Module - Host not running yet, trying again")
                                    Continue
                                } Else {    ; window exists
                                    Log("Module - Connected to host, waiting for host to start game")
                                    Break
                                }
                            }
                        } Else {    ; server
                            ControlGet, List, List,, ListBox1, %dolphinNetPlaySetupTitle%    ; get list of selectable games
                            Loop, Parse, List, `n
                                If InStr(A_Loopfield, gameID) {
                                    idLocation := A_Index    ; record the location in the ListBox of our game
                                    Log("Module - Game list shows """ . A_LoopField . """ as item " . A_Index)    ; logging each items in ListBox
                                }
                            If !idLocation {    ; game was not found in list
                                ScriptError("Could not find your """ . romName . """ in the game selection window for netplay. Possibly the gameID could not be found in your game. Please check your the RocketLauncher log and report this error.",,,,,1)
                                Gosub, CloseProcess
                                FadeInExit()
                                Goto, CloseDolphin
                            }
                            Control, Choose, %idLocation%, ListBox1, %dolphinNetPlaySetupTitle%    ; selects our game in the ListBox
                            Log("Module - Clicking Host button")
                            ControlClick, Button2, %dolphinNetPlaySetupTitle%    ; click host button
                            WinWait(dolphinNetPlayTitle,,,dolphinNetPlaySetupTitle)    ; this window should now appear when hosted correctly
                            Log("Module - Waiting for " . networkPlayers . " players until the game is started")
                            While !breakLoops {
                                ControlGet, List, List,, ListBox1, %dolphinNetPlayTitle%
                                If InStr(List,"[" . networkPlayers . "]") {
                                    Log("Module - All players have joined, starting game")
                                    Break
                                }
                                Sleep, 100
                            }
                            ControlClick, Button8, %dolphinNetPlayTitle%,,,,,dolphinNetPlaySetupTitle    ; click start button
                        }
                        SetTitleMatchMode, %matchMode%    ; restore old match mode
                    }
                    
                    
                    If (enableVBALink = "true") {
                        Screen1ID := dolphinID
                        vbaINI := CheckFile(VBAPath . "\vbam.ini")
                        vbaINIBackup := VBAPath . "\vbam_Backup.ini"
                        FileCopy, %vbaINI%, %vbaINIBackup%
                        ;removing fullscreen from VBA-M
                        IniWrite, 0, %vbaINI%, preferences, fullScreen
                        ;setting other VBA-M ini options
                        StringReplace, VBABiosPathDoubleSlash,VBABiosPath, \, \\, all
                        IniWrite, 0, %vbaINI%, preferences, pauseWhenInactive
                        IniWrite, %VBABiosPathDoubleSlash%, %vbaINI%, GBA, BiosFile
                        IniWrite, 1, %vbaINI%, GBA, LinkAuto
                        IniWrite, 127.0.0.1, %vbaINI%, GBA, LinkHost
                        IniWrite, 3, %vbaINI%, GBA, LinkType
                        IniWrite, %SelectedNumberofPlayers%, %vbaINI%, preferences, LinkNumPlayers
                        IniWrite, 1, %vbaINI%, preferences, useBiosGBA
                        IniWrite, 1, %vbaINI%, Display, Stretch
                        IniWrite, 1, %vbaINI%, Display, Scale
                        
                        ;running VBA-M
                        Loop, %SelectedNumberofPlayers%
                        {    currentScreen := a_index + 1
                            Run(VBAFile . " " . """" . VBABiosPath . """",VBAPath,, Screen%currentScreen%PID)
                            WinWait("ahk_pid " . Screen%currentScreen%PID)
                            sleep, %VBADelay%
                            bezelScreen%currentScreen%H := bezelScreen%currentScreen%H+24 ; to hide emu bottom bar
                        }
                        ;waiting for VBA-M windows bios loading
                        timeout := A_TickCount
                        Loop
                        {    WinGet, id, list, gba_bios - VisualBoyAdvance-M
                            If (id=SelectedNumberofPlayers){
                                Loop, %id%
                                {    currentScreen := a_index + 1
                                    Screen%currentScreen%ID := id%A_Index%
                                }
                                Break
                            }
                            If (timeout<A_TickCount-10000)
                                Break
                            Sleep, 100
                        }
                        ;Resizing Windows to fill screen if no bezel file is found
                        If !(bezelPath) {
                            Loop, % (SelectedNumberofPlayers+1)
                            {    If (a_index=1){
                                    X1 := 0 , Y1 := 0 ,    W1 := A_ScreenWidth//2 , H1 := A_ScreenHeight
                                } Else {
                                    X%a_index% := A_ScreenWidth//2 , Y%a_index% := (a_index-2)*(A_ScreenHeight//SelectedNumberofPlayers) ,    W%a_index% := A_ScreenWidth//2 , H%a_index% := (A_ScreenHeight//SelectedNumberofPlayers)
                                }
                                WinSet, Style, -0xC00000, % "ahk_id " . Screen%A_Index%ID
                                ToggleMenu(Screen%A_Index%ID)
                                WinSet, Style, -0xC40000, % "ahk_id " . Screen%A_Index%ID
                                WinMove,  % "ahk_id " . Screen%A_Index%ID, , % X%A_Index%, % Y%A_Index%, % W%A_Index%, % H%A_Index%
                                ;check If window moved
                                timeout := A_TickCount
                                Loop
                                {    WinGetPos, X, Y, W, H, % "ahk_id " . Screen%A_Index%ID
                                    If (X=X%A_Index%) and (Y=Y%A_Index%) and (W=W%A_Index%) and (H=H%A_Index%)
                                        Break
                                    If (timeout<A_TickCount-4000)
                                        Break
                                    Sleep, 50
                                    WinMove, % "ahk_id " . Screen%A_Index%ID, , % X%A_Index%, % Y%A_Index%, % W%A_Index%, % H%A_Index%
                                }
                            }
                            Sleep, 50
                        }    
                    }
                    
                    BezelDraw()
                    WinActivate, %dolphinGameTitle%
                    HideEmuEnd()
                    FadeInExit()
                    Process("WaitClose", executable)
                    
                    CloseDolphin:
                    If (networkSession && restoreIniObject.MaxIndex()) {
                        Loop % restoreIniObject.MaxIndex()
                        {    Log("Module - Restoring the original ini: " . restoreIniObject[A_Index,"backupIni"] . " to " . restoreIniObject[A_Index,"originalIni"],4)
                            FileMove, % restoreIniObject[A_Index,"backupIni"], % restoreIniObject[A_Index,"originalIni"],1        ; restore all backed up inis
                        }
                    }
                    
                    7zCleanUp()
                    BezelExit()
                    FadeOutExit()
                    ExitModule()
                    
                    
                    ChangeDolphinProfile(profileType) {
                        Global settingsFile,romName,dolphinBasePath
                        profile := IniReadCheck(settingsFile, romName, "profile", "Default",,1)
                        RLProfilePath := dolphinBasePath . "\Config\Profiles\" . profileType . " (RL)"
                        currentProfile := dolphinBasePath . "\Config\" . profileType . "New.ini"
                        defaultProfile := RLProfilePath . "\_Default_" . profileType . "New.ini"
                        customProfile := RLProfilePath . "\" . profile . ".ini"
                        If !FileExist(currentProfile) {
                            Log("Module - You have custom " . profileType . " profiles enabled, but could not locate " . currentProfile . ". This file stores all your current controls in Dolphin. Please setup your controls in Dolphin first.",2)
                            Return
                        }
                        If !FileExist(defaultProfile) {
                            Log("Module - Creating initial Default " . profileType . " profile by copying " . profileType . ".ini to " . defaultProfile, 2)
                            FileCreateDir % RLProfilePath
                            FileCopy, %currentProfile%, %defaultProfile%    ; create the initial default profile on first launch
                        }
                        If (profile != "Default" && !FileExist(customProfile))
                            Log("Module - " . romName . " is set to load a custom " . profileType . " profile`, but it could not be found: " . customProfile,2)
                        FileRead, cProfile, %currentProfile%    ; read current profile into memory
                        FileRead, nProfile, %customProfile%    ; read custom profile into memory
                        If ( cProfile != nProfile ) {    ; if both profiles do not match exactly
                            Log("Module - Current " . profileType . " profile does not match the one this game should use.")
                            If (profile != "Default") {    ; if user set to use a custom profile
                                Log("Module - Copying this defined " . profileType . " profile to replace the current one: " . customProfile)
                                FileCopy, %customProfile%, %currentProfile%, 1
                            } Else {    ; load default profile
                                Log("Module - Copying the default " . profileType . " profile to replace the current one: " . defaultProfile)
                                FileCopy, %defaultProfile%, %currentProfile%, 1
                            }
                        } Else
                            Log("Module - Current " . profileType . " profile is already the correct one for this game, not touching it.")
                    }
                    
                    ConnectWiimote(key) {
                        Global Timeout
                        wiimoteClass := "Dolphin Controller Configuration ahk_class #32770"
                        IfWinNotExist, %wiimoteClass%
                        {
                            DetectHiddenWindows, OFF ; this needs to be off otherwise WinMenuSelectItem doesn't work for some odd reason
                            WinActivate, Dolphin ahk_class wxWindowNR,,,FPS
                            WinMenuSelectItem, ahk_class wxWindowNR,, Options, Controller Settings,,,,,,FPS
                            WinWait(wiimoteClass)
                            WinWaitActive(wiimoteClass)
                        }
                        ;WinActivate, %wiimoteClass% ; test if window needs to be active
                        ControlClick, %key%, %wiimoteClass%
                        ControlClick, OK, %wiimoteClass%
                        ; WinActivate, FPS ahk_class wxWindowClassNR ; for older dolphins
                        WinActivate, %dolphinGameTitle%
                    }
                    
                    PairWiimote:
                        ConnectWiimote("Pair Up")
                    Return
                    
                    RefreshWiimote:
                        ConnectWiimote("Refresh")
                    Return
                    
                    CloseProcess:
                        breakLoops := 1
                        FadeOutStart()
                        If (enableVBALink = "true"){
                            Loop, %SelectedNumberofPlayers%
                            {    currentScreen := a_index + 1
                                ;WinActivate, % "ahk_pid " . Screen%currentScreen%PID
                                WinClose("ahk_id " . Screen%currentScreen%ID)
                                sleep, 100
                            }
                            FileMove, %dolphinINIBackup%, %dolphinINI%
                            FileMove, %vbaINIBackup%, %vbaINI%,1
                        }
                        If networkSession {
                            If WinExist(dolphinNetPlaySetupTitle)
                                WinClose(dolphinNetPlaySetupTitle)
                            If WinExist(dolphinNetPlayTitle)
                                WinClose(dolphinNetPlayTitle)
                            If !WinExist(dolphinGameTitle)    ; if game never launched, close the main emu window
                                WinClose(dolphinTitle)
                        }
                        If WinExist(dolphinGameTitle)
                            WinClose(dolphinGameTitle) ; this needs to close the window the game is running in otherwise dolphin crashes on exit
                    Return

17:30:04:772 | RL |     INFO  | +16    | BuildScript - Loaded MultiGame scripts
17:30:04:773 | RL |     INFO  | +0     | BuildScript - Loaded Multi-Player scripts
17:30:04:774 | RL |     INFO  | +0     | BuildScript - Loaded Statistics.ahk script
17:30:04:774 | RL |  WARNING  | +0     | BuildScript - "E:\RocketLauncher\Lib\User Functions.ahk" not found
17:30:04:774 | RL |     INFO  | +0     | BuildScript - Finished injecting functions into module
17:30:04:776 | RL |     INFO  | +0     | Main - Module is built
17:30:04:776 | RL |     INFO  | +0     | CheckFile - Checking if E:\RocketLauncher\AutoHotkey.dll exists
17:30:04:790 | RL |     INFO  | +15    | Main - Running module
17:43:47:318 | RL |     INFO  | +822531 | Main - Module ended, exiting RocketLauncher normally
17:43:47:318 | RL |     INFO  | +0     | ExitScript - Started
17:43:47:554 | RL |     INFO  | +234   | SystemCursor - Restoring mouse cursor
17:43:47:565 | RL |     INFO  | +16    | ExitScript - Ended
 
Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...