Hypseus.Singe-v2.8.2b-win64
Hypseus formerly Daphne
MEmu := "Daphne"
MEmuV := "v1.0.12"
MURL := ["http://www.daphne-emu.com/"]
MAuthor := ["djvj"]
MVersion := "2.0.9"
MCRC := ""
iCRC := ""
MID := ""
MSystem := ["Daphne","LaserDisc"]
;----------------------------------------------------------------------------
; Notes:
; Executable should be Daphne.exe NOT Daphneloader.exe
; You need the module's ini from GIT, remove the (Example) from the filename. It has settings for each game so they work properly.
; If you want to define custom controls for each game, follow this process:
; 1) Manually run DaphneLoader.exe
; 2) Select each game you want to configure and click the Configure button. Select the Input tab and define your controls and hit OK and repeat for each game.
; 3) Create a folder in your emu directory called "controls" and copy your current dapinput.ini into it. This will be your default controls used for all games that a custom one was not created.
; 4) Launch each game you defined controls for through DaphneLoader. DaphneLoader will set your custom controls in the dapinput.ini. Now exit the game.
; 5) After each game you launch, copy the dapinput.ini into the controls folder and name it after the rom name you use in your xml: Example: lair.ini
;
; First time users, please follow the guide found @ http://www.hyperspin-fe.com/topic/2161-complete-guide-for-daphne-in-hyperspin-and-hl3/page-1
;----------------------------------------------------------------------------
StartModule()
BezelGUI()
FadeInStart()
settingsFile := modulePath . "\" . moduleName . ".ini"
globalParams := IniReadCheck(settingsFile,"settings","globalParams","vldp -blank_searches -prefer_samples -noissues -fastboot",,1)
fullscreen := IniReadCheck(settingsFile, "Settings", "Fullscreen","true",,1)
screenWidth := IniReadCheck(settingsFile, "Settings", "ScreenWidth",A_ScreenWidth,,1)
screenHeight := IniReadCheck(settingsFile, "Settings", "ScreenHeight",A_ScreenHeight,,1)
pauseOnExit := IniReadCheck(settingsFile,"settings","pauseOnExit","false",,1)
hwAccel := IniReadCheck(settingsFile,"settings","hwAccel","true",,1)
keepAspect := IniReadCheck(settingsFile,"settings" . "|" . romName,"KeepAspect","true",,1)
min_seek_delay := IniReadCheck(settingsFile,romName,"min_seek_delay",A_Space,,1)
seek_frames_per_ms := IniReadCheck(settingsFile,romName,"seek_frames_per_ms",A_Space,,1)
homedir := IniReadCheck(settingsFile,romName,"homedir",".",,1)
bank0 := IniReadCheck(settingsFile,romName,"bank0",A_Space,,1)
bank1 := IniReadCheck(settingsFile,romName,"bank1",A_Space,,1)
bank2 := IniReadCheck(settingsFile,romName,"bank2",A_Space,,1)
bank3 := IniReadCheck(settingsFile,romName,"bank3",A_Space,,1)
sound_buffer := IniReadCheck(settingsFile,romName,"sound_buffer",A_Space,,1)
params := IniReadCheck(settingsFile,romName,"params",A_Space,,1)
version := IniReadCheck(settingsFile,romName,"version",romName,,1)
frameFile = %romName% ; storing parent romName to send as the framefile name so we don't send wrong name when using an alternate version of a game
BezelStart()
fullscreen := If fullscreen = "true" ? " -fullscreen" : ""
If (keepAspect = "false")
params .= " -ignore_aspect_ratio"
If bezelPath ; this variable is only filled if bezel is enabled and a valid bezel image is found
{ screenWidth := " -x " . Round(bezelScreenWidth) ;bezelScreenWidth variable is defined on the BezelStart function and it gives the desired width that your game screen should have while using this bezel
screenHeight := " -y " . Round(bezelScreenHeight) ;idem above
} Else {
screenWidth := " -x " . screenWidth
screenHeight := " -y " . screenHeight
}
min_seek_delay := If min_seek_delay ? " -min_seek_delay " . min_seek_delay : ""
seek_frames_per_ms := If seek_frames_per_ms ? " -seek_frames_per_ms " . seek_frames_per_ms : ""
homedir := If homedir ? " -homedir " . homedir : ""
bank0 := If bank0 ? " -bank 0 " . bank0 : ""
bank1 := If bank1 ? " -bank 1 " . bank1 : ""
bank2 := If bank2 ? " -bank 2 " . bank2 : ""
bank3 := If bank3 ? " -bank 3 " . bank3 : ""
sound_buffer := If sound_buffer ? " -sound_buffer " . sound_buffer : ""
hwAccel := If hwAccel = "true" ? " -opengl" : " -nohwaccel"
params := globalParams . " " . params
hideEmuObj := Object("ahk_class SDL_app",1) ; Hide_Emu will hide these windows. 0 = will never unhide, 1 = will unhide later
7z(romPath, romName, romExtension, 7zExtractPath)
; If you have alternate controls for a specific game, this will overwrite the current dapinput.ini with your custom one
romControlIni := emuPath . "\controls\" . romName . ".ini"
defaultControlIni := emuPath . "\controls\dapinput.ini"
daphneControlIni := emuPath . "\dapinput.ini"
If FileExist(romControlIni) { ; if a romName control ini exists
Log("Module - Found a romName input ini and will overwrite the existing dapinput.ini: " . romControlIni)
FileCopy, %romControlIni%, %daphneControlIni%, 1 ; copy rom dapinput, overwriting working one
} Else If FileExist(defaultControlIni) { ; if a default control ini exists
Log("Module - No romName input ini found, overwriting the current dapinput.ini with a default one: " . defaultControlIni)
FileCopy, %defaultControlIni%, %daphneControlIni%, 1 ; copy default dapinput, overwriting working one in case a rom one was set from previous launch
} Else
Log("Module - No romName or default inis found, leaving the current dapinput.ini alone")
; If launched game is an alternate version of a parent, this will send the alternate's name to daphne.
romName = %version%
HideEmuStart() ; This fully ensures windows are completely hidden even faster than winwait
; This allows us to send variables, that when empty, are not sent to the Run command
; msgbox % executable . A_Space . romName . A_Space . params . fullscreen . screenWidth . screenHeight . min_seek_delay . seek_frames_per_ms . homedir . bank0 . bank1 . bank2 . bank3 . sound_buffer . " -framefile """ . romPath . "\" . frameFile . romExtension . """"
Run(executable . A_Space . romName . A_Space . params . hwAccel . fullscreen . screenWidth . screenHeight . min_seek_delay . seek_frames_per_ms . homedir . bank0 . bank1 . bank2 . bank3 . sound_buffer . " -framefile """ . romPath . "\" . frameFile . romExtension . """", emuPath)
WinWait("ahk_class SDL_app")
WinWaitActive("ahk_class SDL_app")
BezelDraw()
HideEmuEnd()
FadeInExit()
Process("WaitClose", executable)
7zCleanUp()
FadeOutExit()
ExitModule()
HaltEmu:
Send, {P}
Return
RestoreEmu:
Winrestore, AHK_class %EmulatorClass%
Send, {P}
Return
CloseProcess:
FadeOutStart()
BezelExit()
If pauseOnExit = true
{ Send, {P}
Sleep, 100
}
WinClose("ahk_class SDL_app")
Return
<?xml version="1.0" encoding="UTF-8"?>
<INISCHEMA>
<INIFILES>
<INIFILE name="%ModuleName%" required="false">
<INITYPE>Module</INITYPE>
<SECTIONS>
<SECTION name="settings" required="false">
<SECTIONTYPE>Global</SECTIONTYPE>
<KEYS>
<KEY name="globalParams" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION># -noissues is for Esh's Aurunmilla. It stops daphne's warning about issues at launch.
# -fastboot is for Dragon's Lair and Space Ace, It skips the self test in the beginning.</DESCRIPTION>
</KEY>
<KEY name="Fullscreen" required="false" nullable="false">
<KEYTYPE>Boolean</KEYTYPE>
<DESCRIPTION>Enables/Disables Fullscreen</DESCRIPTION>
</KEY>
<KEY name="KeepAspect" required="false" nullable="false">
<KEYTYPE>Boolean</KEYTYPE>
<DESCRIPTION>Enables/Disables the original aspect ratio. The default is true.</DESCRIPTION>
</KEY>
<KEY name="ScreenWidth" required="false" nullable="true">
<KEYTYPE>Integer</KEYTYPE>
<DESCRIPTION>Set the width of the emu. Default is your desktop width.</DESCRIPTION>
</KEY>
<KEY name="ScreenHeight" required="false" nullable="true">
<KEYTYPE>Integer</KEYTYPE>
<DESCRIPTION>Set the height of the emu. Default is your desktop height.</DESCRIPTION>
</KEY>
<KEY name="pauseOnExit" required="false" nullable="false">
<KEYTYPE>Boolean</KEYTYPE>
<DESCRIPTION>If true, will pause Daphne before exiting by sending "P". If your monitor is not the same resolution as daphne, Fade_Out will not display correctly. Pausing Daphne tries to prevent this.</DESCRIPTION>
</KEY>
<KEY name="hwAccel" required="false" nullable="false">
<KEYTYPE>Boolean</KEYTYPE>
<DESCRIPTION>Should Daphne use hardware acceleration? Default is true, which uses OpenGL.</DESCRIPTION>
</KEY>
</KEYS>
</SECTION>
<SECTION name="%RomName%" required="false">
<SECTIONTYPE>Rom</SECTIONTYPE>
<KEYS>
<KEY name="min_seek_delay" required="false" nullable="true">
<KEYTYPE>Integer</KEYTYPE>
</KEY>
<KEY name="seek_frames_per_ms" required="false" nullable="true">
<KEYTYPE>Integer</KEYTYPE>
</KEY>
<KEY name="homedir" required="false" nullable="true">
<KEYTYPE>String</KEYTYPE>
</KEY>
<KEY name="bank0" required="false" minLength="8" maxLength="8">
<KEYTYPE>Binary</KEYTYPE>
</KEY>
<KEY name="bank1" required="false" minLength="8" maxLength="8">
<KEYTYPE>Binary</KEYTYPE>
</KEY>
<KEY name="bank2" required="false" minLength="8" maxLength="8">
<KEYTYPE>Binary</KEYTYPE>
</KEY>
<KEY name="bank3" required="false" minLength="8" maxLength="8">
<KEYTYPE>Binary</KEYTYPE>
</KEY>
<KEY name="sound_buffer" required="false" nullable="true">
<KEYTYPE>Integer</KEYTYPE>
</KEY>
<KEY name="params" required="false" nullable="true">
<KEYTYPE>String</KEYTYPE>
</KEY>
<KEY name="KeepAspect" required="false" nullable="false">
<KEYTYPE>Boolean</KEYTYPE>
<DESCRIPTION>Enables/Disables the original aspect ratio. The default is true.</DESCRIPTION>
</KEY>
<KEY name="version" required="false" nullable="true">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Use this if you want to use a different rom for this version of the game. Useful if you want to have several entries for the same game with different settings in your database. Those with * are recommended.</DESCRIPTION>
<VALUES>
<VALUE description="Space Ace: Rev A3 *">ace</VALUE>
<VALUE description="Space Ace: Enhanced V1.0">sae</VALUE>
<VALUE description="Space Ace: Rev A">ace_a</VALUE>
<VALUE description="Space Ace: Rev A2">ace_a2</VALUE>
<VALUE description="Space Ace: Remake (1991)">ace91</VALUE>
<VALUE description="Space Ace: European">aceeuro</VALUE>
<VALUE description="Astron Belt: Hitachi *">astron</VALUE>
<VALUE description="Astron Belt: Pioneer">astronp</VALUE>
<VALUE description="Badlands: Standard *">badlands</VALUE>
<VALUE description="Badlands: Prototype">badlandp</VALUE>
<VALUE description="Bega's Battle: Revision 3 *">bega</VALUE>
<VALUE description="Bega's Battle: Revision 1">begar1</VALUE>
<VALUE description="Cliff Hanger: Standard *">cliff</VALUE>
<VALUE description="Cliff Hanger: Alternate #1">cliffalt</VALUE>
<VALUE description="Cobra Command: Astron Belt Hardware *">cobraab</VALUE>
<VALUE description="Cobra Command: Dedicated/Bega's Battle Hardware">cobra</VALUE>
<VALUE description="Cobra Command: Cliff Hanger/Interstellar/Dragon's Lair Conversion">cobraconv</VALUE>
<VALUE description="Cobra Command: MACH 3 Hardware">cobram3</VALUE>
<VALUE description="Esh's Aurumilla: Standard *">esh</VALUE>
<VALUE description="Esh's Aurumilla: Alternate #1">eshalt</VALUE>
<VALUE description="Esh's Aurumilla: Alternate #2">eshalt2</VALUE>
<VALUE description="Galaxy Ranger: Hitachi *">galaxy</VALUE>
<VALUE description="Galaxy Ranger: Pioneer">galaxyp</VALUE>
<VALUE description="GP World: Standard *">gpworld</VALUE>
<VALUE description="Interstellar: Standard *">interstellar</VALUE>
<VALUE description="Dragon's Lair: Rev F2 *">lair</VALUE>
<VALUE description="Dragon's Lair: Enhancement 1.1">dle11</VALUE>
<VALUE description="Dragon's Lair: Enhancement 2.1">dle21</VALUE>
<VALUE description="Dragon's Lair: Enhancement 2.1 - prototype mode">dle21</VALUE>
<VALUE description="Dragon's Lair: Rev A">lair_a</VALUE>
<VALUE description="Dragon's Lair: Rev B">lair_b</VALUE>
<VALUE description="Dragon's Lair: Rev C">lair_c</VALUE>
<VALUE description="Dragon's Lair: Rev D">lair_d</VALUE>
<VALUE description="Dragon's Lair: Rev E">lair_e</VALUE>
<VALUE description="Dragon's Lair: Rev F">lair_f</VALUE>
<VALUE description="Dragon's Lair: Italian">lair_ita</VALUE>
<VALUE description="Dragon's Lair: Beta 1 (serial #1)">lair_n1</VALUE>
<VALUE description="Dragon's Lair: Beta 2">lair_x</VALUE>
<VALUE description="Dragon's Lair: European">laireuro</VALUE>
<VALUE description="Dragon's Lair 2: Version 3.19 *">lair2</VALUE>
<VALUE description="Dragon's Lair 2: Version 2.11">lair2_211</VALUE>
<VALUE description="Dragon's Lair 2: Version 3.00">lair2_300</VALUE>
<VALUE description="Dragon's Lair 2: Version 3.14">lair2_314</VALUE>
<VALUE description="Dragon's Lair 2: Version 3.15">lair2_315</VALUE>
<VALUE description="Dragon's Lair 2: Version 3.16 (European)">lair2_316_euro</VALUE>
<VALUE description="Dragon's Lair 2: Version 3.18">lair2_318</VALUE>
<VALUE description="Dragon's Lair 2: Version 3.19 (European)">lair2_319_euro</VALUE>
<VALUE description="Dragon's Lair 2: Version 3.19 (Spanish)">lair2_319_span</VALUE>
<VALUE description="M.A.C.H. 3: Standard *">mach3</VALUE>
<VALUE description="Road Blaster: Standard *">roadblaster</VALUE>
<VALUE description="Star Blazer: Standard *">blazer</VALUE>
<VALUE description="Super Don Quix-ote: Standard *">sdq</VALUE>
<VALUE description="Super Don Quix-ote: Shortened Scenes">sdqshort</VALUE>
<VALUE description="Super Don Quix-ote: Shortened Scenes, Alternate">sdqshortalt</VALUE>
<VALUE description="Thayer's Quest: Standard *">tq</VALUE>
<VALUE description="Thayer's Quest: Alternate">tq_alt</VALUE>
<VALUE description="Thayer's Quest: 'Swearing' ROM Hack">tq_swear</VALUE>
<VALUE description="Us vs Them: Standard *">uvt</VALUE>
</VALUES>
</KEY>
</KEYS>
</SECTION>
</SECTIONS>
</INIFILE>
</INIFILES>
</INISCHEMA>
Example
# pauseOnExit - If true, will pause Daphne before exiting by sending "P". If your monitor is not the same resolution as daphne, Fade_Out will not display correctly. Pausing Daphne tries to prevent this.
# -noissues is for Esh's Aurunmilla. It stops daphne's warning about issues at launch.
# -fastboot is for Dragon's Lair and Space Ace, It skips the self test in the beginning.
# version - see version info below each game
[settings]
globalParams = vldp -blank_searches -prefer_samples -fullscreen -noissues -opengl -fastboot -x 1024 -y 768
pauseOnExit = false
[ace]
min_seek_delay = 1000
seek_frames_per_ms = 20
homedir = .
bank0 = 00000010
bank1 = 00000001
bank2 =
bank3 =
sound_buffer = 2048
params = -useoverlaysb 1
version = ace
# Rev A3 = ace
# Enhanced v1.0 = sae
# Rev A2 = ace_a2
# Rev A = ace_a
[astron]
min_seek_delay =
seek_frames_per_ms = 20
homedir = .
bank0 = 00000000
bank1 = 00000000
bank2 =
bank3 =
sound_buffer = 2048
params =
version = astron
# Astron Belt (Hitachi) = astron
# Astron Belt (Pioneer) = astronp
[badlands]
min_seek_delay = 1000
seek_frames_per_ms = 20
homedir = .
bank0 = 00000000
bank1 = 10000011
bank2 =
bank3 =
sound_buffer = 2048
params =
version = badlands
# Standard = badlands
# Prototype = badlandp
[bega]
min_seek_delay = 1000
seek_frames_per_ms = 20
homedir = .
bank0 = 00000000
bank1 = 00000111
bank2 =
bank3 =
sound_buffer = 2048
params =
version = bega
# Revision 3 = bega
# Revision 1 = begar1
[cliff]
min_seek_delay = 1000
seek_frames_per_ms = 20
homedir = .
bank0 = 00000000
bank1 = 01000000
bank2 = 00000000
bank3 = 01111011
sound_buffer = 2048
params =
version = cliff
# Standard = cliff
# Alternate #1 = cliffalt
[cobra]
min_seek_delay =
seek_frames_per_ms = 20
homedir = .
bank0 = 00000000
bank1 = 01001000
bank2 =
bank3 =
sound_buffer = 2048
params =
version = cobraab
# Astron Belt Hardware = cobraab
# MACH 3 Hardware = cobram3
# Dedicated / Bega's Battle Hardware = cobra
# Cliff Hanger / Interstellar / Dragon's Lair Conversion = cobraconv
[esh]
min_seek_delay =
seek_frames_per_ms = 20
homedir = .
bank0 =
bank1 =
bank2 =
bank3 =
sound_buffer = 2048
params =
version = esh
# Standard = esh
# Alternate #1 = eshalt
# Alternate #2 = eshalt2
[galaxyr]
min_seek_delay =
seek_frames_per_ms = 20
homedir = .
bank0 = 00000000
bank1 = 00000000
bank2 =
bank3 =
sound_buffer = 2048
params =
version = galaxy
# Hitachi = galaxy
# Pioneer = galaxyp
# Star Blazer = blazer
[gpworld]
min_seek_delay =
seek_frames_per_ms = 20
homedir = .
bank0 =
bank1 =
bank2 =
bank3 =
sound_buffer = 2048
params =
version = gpworld
# Standard = gpworld
[interstellar]
min_seek_delay = 1000
seek_frames_per_ms = 20
homedir = .
bank0 = 00110001
bank1 = 00000000
bank2 =
bank3 =
sound_buffer = 2048
params =
version = interstellar
# Standard = interstellar
[lair]
min_seek_delay = 1000
seek_frames_per_ms = 20
homedir = .
bank0 = 11011001
bank1 = 00100111
bank2 =
bank3 =
sound_buffer = 2048
params = -useoverlaysb 1
version = lair
# Rev F2 = lair
# Enhancement v2.1 = dle21
# Enhancement v1.1 = dle11
# Rev F = lair_f
# Rev E = lair_e
# Rev D = lair_d
# Rev C = lair_c
# Rev B = lair_b
# Rev A = lair_a
# Beta 2 = lair_x
# Beta 1 (serial #1) = lair_n1
[lair2]
min_seek_delay =
seek_frames_per_ms = 20
homedir = .
bank0 =
bank1 =
bank2 =
bank3 =
sound_buffer = 2048
params =
version = lair2
# Version 3.19 = lair2
# Version 3.19 (European) = lair2_319_euro
# Version 3.19 (Spanish) = lair2_318
# Version 3.18 = lair2_318
# Version 3.16 (European) = lair2_316_euro
# Version 3.15 = lair2_315
# Version 3.14 = lair2_314
# Version 3.00 = lair2_300
[mach3]
min_seek_delay = 1000
seek_frames_per_ms = 20
homedir = .
bank0 = 01000100
bank1 =
bank2 =
bank3 =
sound_buffer = 2048
params =
version = mach3
# Standard = mach3
[rb]
min_seek_delay = 1000
seek_frames_per_ms = 20
homedir = .
bank0 = 00000000
bank1 = 00000001
bank2 =
bank3 =
sound_buffer = 2048
params =
version = roadblaster
# Standard = roadblaster
[sdq]
min_seek_delay = 1000
seek_frames_per_ms = 20
homedir = .
bank0 = 00100001
bank1 = 00000000
bank2 =
bank3 =
sound_buffer = 2048
params =
version = sdq
# Standard = sdq
# Shortened Scenes = sdqshort
# Shortened Scenes, Alternate = sdqshortalt
[tq]
min_seek_delay =
seek_frames_per_ms = 20
homedir = .
bank0 =
bank1 =
bank2 =
bank3 =
sound_buffer = 2048
params = -useoverlaysb 1
params =
version = tq
# Standard = tq
# Alternate = tq_alt
# 'Swearing' ROM Hack = tq_swear
[uvt]
min_seek_delay =
seek_frames_per_ms = 20
homedir = .
bank0 = 00000000
bank1 =
bank2 =
bank3 =
sound_buffer = 2048
params =
version = uvt
# Standard = uvt
Hypseus Singe formerly Daphne Singe
MEmu := "Daphne Singe"
MEmuV := "v1.14"
MURL := ["http://www.singeengine.com/cms/"]
MAuthor := ["djvj"]
MVersion := "2.0.1"
MCRC := ""
iCRC := ""
MID := ""
MSystem := ["Daphne","American Laser Games","WoW Action Max"]
;----------------------------------------------------------------------------
; Notes:
; Rom_Extension should be singe
; Your framefiles need to exist in the same dir as your Rom_Path, in each game's subfolder, and have a txt extension. The filename should match the name in your xml.
; American Laser Games
; For example, If you rompath is C:Hyperspin\Games\American Laser Games\, the drugwars game would be found in C:Hyperspin\Games\American Laser Games\maddog\
; and the framefile would be in C:Hyperspin\Games\American Laser Games\maddog\maddog.txt
; To change the dir you want to run your games from:
; 1. Backup all your /daphne/singe/ROMNAME/ROMNAME.singe, cdrom-globals.singe, and service.singe files, most games all three in each romdir
; 2. Move all the folders in your /daphne/singe/ folder to the new location you want. You should have one folder for each game.
; 3. Open each ROMNAME.singe, cdrom-globals.singe, and service.singe in notepad and do a find/replace of all instances shown below. For example using an SMB share:
; Old
; ("singe/
; New:
; ("//BLACKPC/Hyperspin/Games/American Laser Games/
;
; If using a local drive, it would look something like this C:/Hyperspin/Games/American Laser Games/
; WoW Action Max
; Emu_Path should be something like this C:\HyperSpin\Emulators\WoW Action Max\daphne-singe\
; Rom_Path has to point to where all the m2v video files are kept
; Rom_Extension should be singe
; Your framefiles need to exist in the same dir as your rompath and all have txt extensions. The filename should match the name in your xml.
; To change the dir you want to run your games from:
; 1. Backup your /daphne/singe/Action Max/Emulator.singe file
; 2. Move all the files (except Emulator.singe) in your /daphne/singe/Action Max/ folder to the new location you want.
; 3. Open Emulator.singe in notepad and do a find/replace of all instances shown below. For example using an SMB share:
; Old
; "singe/Action Max/
; New:
; "//BLACKPC/Hyperspin/Games/WoW Action Max/
;
; If using a local drive, it would look something like this C:/Hyperspin/Games/WoW Action Max/
;
; There should be 18 instances that need replacing.
; 4. The only file that should be in your /daphne/singe/Action Max/ dir should be the edited Emulator.singe file (and your backup).
;
; If you are upgrading from the old daphne-singe-v1.0 to 1.14, don't forget to copy the old singe dir to the new emu folder, it doesn't come with the contents of that folder that you need.
;----------------------------------------------------------------------------
StartModule()
FadeInStart()
settingsFile := modulePath . "\" . moduleName . ".ini"
Fullscreen := IniReadCheck(settingsFile, "settings", "Fullscreen","true",,1)
daphneWidth := IniReadCheck(settingsFile, "settings", "daphneWidth","1024",,1)
daphneHeight := IniReadCheck(settingsFile, "settings", "daphneHeight","768",,1)
; Emptying variables if they are not set
fullscreen := (If Fullscreen = "true" ? ("-fullscreen_window") : ("")) ; fullscreen_window mode allows guncon and aimtraks to work
daphneWidth := (daphneWidth ? ("-x " . daphneWidth) : (""))
daphneHeight := (daphneHeight ? ("-y " . daphneHeight) : (""))
7z(romPath, romName, romExtension, 7zExtractPath)
; This allows us to send variables, that when empty, are not sent to the Run command
Run(executable . " singe vldp " . daphneWidth . A_Space . daphneHeight . A_Space . fullscreen . A_Space . "-framefile """ . romPath . "\" . romName . ".txt""" . A_Space . "-script """ . romPath . "\" . romName . ".singe""", emuPath)
WinWait("HYPSEUS Singe ahk_class SDL_app")
WinWaitActive("HYPSEUS Singe ahk_class SDL_app")
FadeInExit()
Process("WaitClose", executable)
7zCleanUp()
FadeOutExit()
ExitModule()
HaltEmu:
Send, {P}
Return
RestoreEmu:
Winrestore, AHK_class %EmulatorClass%
Send, {P}
Return
CloseProcess:
FadeOutStart()
WinClose("HYPSEUS Singe ahk_class SDL_app")
;Process, Close, %executable% ; WoW Action Max module used this
Return
<?xml version="1.0" encoding="UTF-8"?>
<INISCHEMA>
<INIFILES>
<INIFILE name="%ModuleName%" required="false">
<INITYPE>Module</INITYPE>
<SECTIONS>
<SECTION name="settings" required="false">
<SECTIONTYPE>Global</SECTIONTYPE>
<KEYS>
<KEY name="Fullscreen" required="false" nullable="false">
<KEYTYPE>Boolean</KEYTYPE>
<DESCRIPTION>If true emulator will run fullscreen.</DESCRIPTION>
</KEY>
<KEY name="globalParams" required="false" nullable="true">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Pass additional CLI paramteres to all Daphne Singe games.</DESCRIPTION>
</KEY>
<KEY name="daphneWidth" required="false" nullable="true" minLength="1">
<KEYTYPE>Integer</KEYTYPE>
<DESCRIPTION>Set fullscreen width.</DESCRIPTION>
</KEY>
<KEY name="daphneHeight" required="false" nullable="true" minLength="1">
<KEYTYPE>Integer</KEYTYPE>
<DESCRIPTION>Set fullscreen height.</DESCRIPTION>
</KEY>
<KEY name="SingePathUpdate" required="false" nullable="false">
<KEYTYPE>Boolean</KEYTYPE>
<DESCRIPTION>If true, the module will update paths in your singe files to point correctly to the rest of the files referenced. Default is true.</DESCRIPTION>
</KEY>
<KEY name="ForcePathUpdate" required="false" nullable="false">
<KEYTYPE>Boolean</KEYTYPE>
<DESCRIPTION>If true, the module will always update paths in your singe files regardless if they "look" correct or not. Use this if some games are not launching correctly and you feel its related to a path problem.</DESCRIPTION>
</KEY>
</KEYS>
</SECTION>
<SECTION name="%RomName%" required="false">
<SECTIONTYPE>Rom</SECTIONTYPE>
<KEYS>
<KEY name="params" required="false" nullable="true">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Pass additional CLI paramteres this Daphne Singe game.</DESCRIPTION>
</KEY>
</KEYS>
</SECTION>
</SECTIONS>
</INIFILE>
</INIFILES>
</INISCHEMA>
Settings
Daphne
Emulators.ini
[Daphne]
Emu_Path=..\Emulators\Hypseus.Singe-v2.8.2b-win64\hypseus.exe
Rom_Extension=txt
Module=..\Hypseus\Hypseus.ahk
Pause_Save_State_Keys=
Pause_Load_State_Keys=
[ROMS]
Default_Emulator=Daphne
Rom_Path=..\Emulators\Hypseus.Singe-v2.8.2b-win64\framefile|..\Emulators\Hypseus.Singe-v2.8.2b-win64\singe|..\Emulators\Daphne_v1.0.9_win32\singe
*Global Emulators.ini
[Singe]
Emu_Path=..\Emulators\Daphne_v1.0.9_win32\daphne.exe
Rom_Extension=txt
Module=..\Daphne Singe\Daphne Singe.ahk
Pause_Save_State_Keys=
Pause_Load_State_Keys=