[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

Emulateurs Citra et ahk

Messagepar 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

[spoiler=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/
;----------------------------------------------------------------------------
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
[/spoiler]

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 :(
1 mercis !
(Porko)
Image
Avatar de l’utilisateur
tetrafred
Gourou
Gourou
 
Messages: 894
Âge: 38
Inscription: 10 Oct 2013 - 01:00
Localisation: La Mothe Achard

Re: Emulateurs Citra et ahk

Messagepar strblast » 20 Mai 2018 - 19:52

bonjour,
As tu réglé ton problème?
Avatar de l’utilisateur
strblast
Habitué
Habitué
 
Messages: 94
Inscription: 30 Nov 2016 - 20:15

Re: Emulateurs Citra et ahk

Messagepar tetrafred » 20 Mai 2018 - 21:31

Non et j'ai pas creusé après. Désolé.
Image
Avatar de l’utilisateur
tetrafred
Gourou
Gourou
 
Messages: 894
Âge: 38
Inscription: 10 Oct 2013 - 01:00
Localisation: La Mothe Achard



Retourner vers Aide sur RocketLauncher



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité