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=