[EN COURS]Emulateurs Citra et ahk

Ici se règle les problèmes concernant une configuration Hyperspin tournant sous HyperLaunch 3.

Modérateurs : Porko, Modérateurs

Avatar de l’utilisateur
tetrafred
Gourou
Gourou
Messages : 930
Inscription : 10 oct. 2013 - 01:00
Localisation : La Mothe Achard
A remercié : 71 fois
A été remercié : 64 fois

Emulateurs Citra et ahk

Message par tetrafred » 18 nov. 2017 - 00:09

Salut la compagnie,

je me suis lancé à intégrer l'émulateur 3DS Citra dans Rocketlauncher à savoir la dernière version vu qu'on peut littéralement piller le nintendo eshop si on veut mais là n'est pas le sujet.
Bref, j'ai pris la version "canary-mingw" puisqu'elle ne me fait pas de bug en quittant un jeu comme la version "nightly-mingw".

J'ai tout bien mis dans Rocketlauncher UI, avec en extension des lnk vu que toutes les roms portent le même nom (game.cxi) et j'ai pris le dernier module ahk connu:
Image
ahk
MEmu := "Citra"
MEmuV := "2016-11-23"
MURL := ["http://citra-emu.org/"]
MAuthor := ["djvj","bleasby"]
MVersion := "1.0.1"
MCRC := "B2CEA0A2"
iCRC := "8131AB6F"
MID := "635740704032217117"
MSystem := ["Nintendo 3DS"]
;----------------------------------------------------------------------------
; Notes:
; Roms must be decrypted to run in the emu
; See here for a guide on decrypting games you own: https://gbatemp.net/threads/tutorial-ho ... te.383055/" onclick="window.open(this.href);return false;
;----------------------------------------------------------------------------
StartModule()
BezelGUI()
FadeInStart()

primaryExe := new Emulator(emuPath . "\" . executable) ; instantiate emulator executable object
primaryWindowClassName := "Qt5QWindowIcon"
emuPrimaryWindow := new Window(new WindowTitle("Citra",primaryWindowClassName)) ; instantiate primary emulator window object
emuConsoleWindow := new Window(new WindowTitle(,"ConsoleWindowClass"))

Fullscreen := moduleIni.Read("Settings", "Fullscreen","true",,1)
bezelTopOffset := moduleIni.Read("Settings", "Bezel_Top_Offset","30",,1)
bezelBottomOffset := moduleIni.Read("Settings", "Bezel_Bottom_Offset","8",,1)
bezelRightOffset := moduleIni.Read("Settings", "Bezel_Right_Offset", "8",,1)
bezelLeftOffset := moduleIni.Read("Settings", "Bezel_Left_Offset", "8",,1)

CitraIni := new IniFile(emuPath . "\user\config\qt-config.ini")
CitraIni.CheckFile("Could not find Citra's ini file. Please run Citra manually first and make sure that you use the module recomended emulator version.")

; Disabling the emu exit confirmation
confirmClose := CitraIni.Read("UI", "confirmClose")
If (confirmClose = "true")
CitraIni.Write("false", "UI", "confirmClose")

; Setting the game to launch on an extra window.
singleWindowMode := CitraIni.Read("UI", "singleWindowMode")
If (singleWindowMode = "true")
CitraIni.Write("false", "UI", "singleWindowMode")

BezelStart()

hideEmuObj := Object(emuConsoleWindow,0,emuPrimaryWindow,1)

7z(romPath, romName, romExtension, SevenZExtractPath)

HideAppStart(hideEmuObj,hideEmu)
primaryExe.Run("""" . romPath . "\" . romName . romExtension . """")

; Waiting for main emu window
emuPrimaryWindow.Wait()
emuPrimaryWindow.WaitActive()

; Hiding citra console window
emuConsoleWindow.Set("Transparent",0)

; Waiting for game to load
TimeOut := 3000
StartTime := A_TickCount
Loop, {
WinGet, IDList, List, ahk_class %primaryWindowClassName% ; get a list of all windows which match this windowTitle
Loop, % IDList ; IDList set to number of matches found
{ id := IDList%A_Index%
ControlGet, OutputVar, Hwnd,, Qt5QWindowOwnDCIcon1, ahk_id %id%
If !ErrorLevel
{ gameWindowID := id
Break
}
}
If (TimeOut && A_TickCount - StartTime > TimeOut)
Break
}
; Saving id of extra emulator window to be hidden
WinGet, IDList, List, ahk_class %primaryWindowClassName% ; Get a list of all windows which match this windowTitle
Loop, % IDList ; IDList set to number of matches found
{ id := IDList%A_Index%
If !(id = gameWindowID) {
launchWindowID := id
launchWindow := new Window(new WindowTitle(,,,launchWindowID))
Break
}
}

; Hiding extra emulator window
If (launchWindowID) {
launchWindow.Hide()
}

; Waiting for game window to be active if it is not
gameWindow := new Window(new WindowTitle(,,,gameWindowID))
gameWindow.WaitActive()

if (Fullscreen = "true"){ ; Creating fake full screen as the emu always launches in windowed mode
WinGet emulatorID, ID, A
emulatorWindow := new Window(new WindowTitle(,,,emulatorID))
RLObject.hideWindowTitleBar(emulatorID)
RLObject.hideWindowBorder(emulatorID)
emulatorWindow.Move(0,0,A_screenWidth,A_screenHeight + 38)
}

BezelDraw()
HideAppEnd(hideEmuObj,hideEmu)
FadeInExit()
primaryExe.Process("WaitClose")
7zCleanUp()
BezelExit()
FadeOutExit()
ExitModule()


CloseProcess:
FadeOutStart()
If (launchWindowID)
launchWindow.Close()
Else
gameWindow.Close()
Return

BezelLabel:
disableHideBorder := "true"
disableHideTitleBar := "true"
disableHideToggleMenu := "true"
Return
Mon setting.ini:
[exe info]
path=\HFSBoxSP\RocketLauncher\
rompath=
userompath=
exe=RocketLauncher.exe
romextension=
parameters="3ds" -f "\HFSBoxSP\HyperSpin.exe" -p "HyperSpin"
searchsubfolders=
pcgame=false
winstate=normal
hyperlaunch=true
Mon soucis est que j'ai ce message qui s'affiche lorsque je lance une roms via RocketlauncherUI:
Image

Je suis un peut perdu. Au tout début j'avais le message comme quoi il manquait un fichier ini, je l'ai donc recup dans le appdata pour le recoller dans un répertoire "D:\HFSBoxSP\Emulators\citra\canary-mingw\user\config" et j'ai depuis ce fameux message au dessus.
Au début mon nom de système était 3ds tout court que j'ai renommer en Nintendo 3ds mais rien n'y fait....

Une petite idée ou une piste svp?

Merci ;)

edit: je n'arrive pas à cacher le module ahk en spoil pour que ce soit plus lisible :(

Avatar de l’utilisateur
strblast
Initié
Initié
Messages : 103
Inscription : 30 nov. 2016 - 20:15
A remercié : 39 fois
A été remercié : 3 fois

Re: Emulateurs Citra et ahk

Message par strblast » 20 mai 2018 - 19:52

bonjour,
As tu réglé ton problème?

Avatar de l’utilisateur
tetrafred
Gourou
Gourou
Messages : 930
Inscription : 10 oct. 2013 - 01:00
Localisation : La Mothe Achard
A remercié : 71 fois
A été remercié : 64 fois

Re: Emulateurs Citra et ahk

Message par tetrafred » 20 mai 2018 - 21:31

Non et j'ai pas creusé après. Désolé.

Répondre

Revenir à « Aide sur RocketLauncher »