MEmu := "Flycast"
MEmuV := "v1.0-64-gc27180fb (2021-08-11)"
MURL := ["https://flyinghead.github.io/flycast-builds/"]
MAuthor := ["Maximumstyle","Pegafun","GustavoALara","Majerolandia"]
MVersion := "0.1.4"
MCRC := ""
iCRC := ""
MID := ""
MSystem := ["Sega Dreamcast","Sega Naomi","Sammy Atomiswave","Gun Games","Lightgun Games","Shooting Games"]
;-----------------------------------------------------------------------------------------------------------------------------------
;
; Notes:
; This module has been designed to be used with the last "Master" and with all the "fh/directx" branch releases of the Flycast emulator
; since this are the only ones with RawInput support. Previous "Master" releases does not support full RawInput.
;
; A Sega Dreamcast BIOS file is not required but recommended for better compatibility with some games.
; Place your Sega Dreamcast BIOS file into the / data / directory located in the same folder as the flycast executable.
;
; By default the per game VMU setting is set to false.
; Attention: The controler INPUT 1 is the last SDL PHYSICAL DEVICES in Setting Controls in FLYCAST.
; No VMU in the lightGun so no save, use VMU of DEVICE B.
;
; RawInput must be enabled in order to use independent lightguns/mouses/keyboards for players 1, 2, 3 and 4.
;
; In order to use Bezels Fullscreen must be dissabled.
;
;-----------------------------------------------------------------------------------------------------------------------------------
StartModule()
BezelGUI()
FadeInStart()
primaryExe := new Process(emuPath . "\" . executable)
emuPrimaryWindow := new Window(new WindowTitle("Flycast","SDL_app"))
settingsFile := modulePath . "\" . moduleName . ".ini"
flycastCfg := new IniFile(emuPath . "\emu.cfg", ":")
; Determine if emu.cfg exists in the emulator folder
If (flycastCfg.Exist()) {
RLLog.Info("emu.cfg found in: " . emuPath)
} Else
ScriptError("Could not find emu.cfg in: " . emuPath)
;---------------------------------------------General-------------------------------------------------------------------------------
Language := moduleIni.Read(romName . "|General", "Language","1",,1) ; language setting. 0=Japanese, 1=English, 2=German, 3=French, 4=Spanish, 5=Italian.
Broadcast := moduleIni.Read(romName . "|General", "Broadcast","0",,1) ; Broadcast setting. 0=NTSC, 1=PAL, 2=PAL/M, 3=PAL/N
region := moduleIni.Read(romName . "|General", "region","1",,1) ; Region setting. 0=Japan, 1=USA, 2=Europe
Cable := moduleIni.Read(romName . "|General", "Cable","3",,1) ; Cable setting. 1=VGA, 2=RGB Component, 3=TV Composite
;-----------------------------------------------Video-------------------------------------------------------------------------------
GAPI := moduleIni.Read(romName . "|Video", "GAPI","2",,1) ; Graphics API. 0=OpenGL, 1=DirectX, 4=Vulkan
Fullscreen := moduleIni.Read(romName . "|Video", "Fullscreen","yes",,1)
ShowFPS := moduleIni.Read(romName . "|Video", "ShowFPS","no",,1)
ScreenScaling := moduleIni.Read(romName . "|Video", "Scaling SSAA","100",,1)
RenderToTextureUpscale := moduleIni.Read(romName . "|Video", "Render to Texture Upscaling","1",,1)
TextureUpscale := moduleIni.Read(romName . "|Video", "Texture Upscale","1",,1)
RenderToTextureBuffer := moduleIni.Read(romName . "|Video", "Copy to VRAM","no",,1)
CustomTextures := moduleIni.Read(romName . "|Video", "Load Custom Textures","no",,1)
FloatVMUs := moduleIni.Read(romName . "|Video", "Show VMU in game","no",,1)
WideScreen := moduleIni.Read(romName . "|Video", "WideScreen","no",,1)
WidescreenGameHacks := moduleIni.Read(romName . "|Video", "WideScreen Game Cheats","no",,1)
;----------------------------------------Advanced-----------------------------------------------------------------------------------
Network := moduleIni.Read(romName . "|Advanced", "Network","no",,1)
UseReios := moduleIni.Read(romName . "|Advanced", "HLE BIOS","no",,1)
ForceWindowsCE := moduleIni.Read(romName . "|Advanced", "Force Windows CE","no",,1)
;----------------------------------------Control A----------------------------------------------------------------------------------
device1 := moduleIni.Read(romName . "|Control A", "Device A","0",,1) ; None=10 Sega Controller=0 Ascii Stick=4 Keybord=5 Mouse=6 LightGun=7 Twin Stick=8
device1_1 := moduleIni.Read(romName . "|Control A", "Expansion Socket 1.1","0",,1) ; None=0 Sega VMU=1 Microphone=2 Purupuru=3
device1_2 := moduleIni.Read(romName . "|Control A", "Expansion Socket 1.2","0",,1) ; None=0 Sega VMU=1 Microphone=2 Purupuru=3 ( Only Sega Controller )
device2 := moduleIni.Read(romName . "|Control B", "Device B","0",,1) ; None=10 Sega Controller=0 Ascii Stick=4 Keybord=5 Mouse=6 LightGun=7 Twin Stick=8
device2_1 := moduleIni.Read(romName . "|Control B", "Expansion Socket 2.1","0",,1) ; None=0 Sega VMU=1 Microphone=2 Purupuru=3
device2_2 := moduleIni.Read(romName . "|Control B", "Expansion Socket 2.2","0",,1) ; None=0 Sega VMU=1 Microphone=2 Purupuru=3 ( Only Sega Controller )
device3 := moduleIni.Read(romName . "|Control C", "Device C","10",,1) ; None=10 Sega Controller=0 Ascii Stick=4 Keybord=5 Mouse=6 LightGun=7 Twin Stick=8
device3_1 := moduleIni.Read(romName . "|Control C", "Expansion Socket 3.1","0",,1) ; None=0 Sega VMU=1 Microphone=2 Purupuru=3
device3_2 := moduleIni.Read(romName . "|Control C", "Expansion Socket 3.2","0",,1) ; None=0 Sega VMU=1 Microphone=2 Purupuru=3 ( Only Sega Controller )
device4 := moduleIni.Read(romName . "|Control D", "Device D","10",,1) ; None=10 Sega Controller=0 Ascii Stick=4 Keybord=5 Mouse=6 LightGun=7 Twin Stick=8
device4_1 := moduleIni.Read(romName . "|Control D", "Expansion Socket 4.1","0",,1) ; None=0 Sega VMU=1 Microphone=2 Purupuru=3
device4_2 := moduleIni.Read(romName . "|Control D", "Expansion Socket 4.2","0",,1) ; None=0 Sega VMU=1 Microphone=2 Purupuru=3 ( Only Sega Controller )
;-----------------------------------------Physical Devices-------------------------------------------------------------------------------
RawInput := moduleIni.Read(romName . "|Physical Devices", "RawInput","no",,1)
CrosshairP1 := moduleIni.Read(romName . "|Control A", "Crosshair Player 1","0",,1) ; False=0 True=-1057159931
CrosshairP2 := moduleIni.Read(romName . "|Control B", "Crosshair Player 2","0",,1) ; False=0 True=-1072820518
CrosshairP3 := moduleIni.Read(romName . "|Control C", "Crosshair Player 3","0",,1) ; False=0 True=-1072956925
CrosshairP4 := moduleIni.Read(romName . "|Control D", "Crosshair Player 4","0",,1) ; False=0 True=-1073676826
MouseSensitivity := moduleIni.Read(romName . "|Physical Devices", "Mouse Sensitivity","100",,1)
VirtualGamepadVibration := moduleIni.Read(romName . "|Physical Devices", "Gamepad Vibration","20",,1)
maple_sdl_keyboard := moduleIni.Read(romName . "|Physical Devices", "keyboard","4",,1) ; None=-1 Port_A=0 Port_B=1 Port_C=2 Port_D=3 All=4
maple_sdl_mouse := moduleIni.Read(romName . "|Physical Devices", "Mouse","0",,1) ; None=-1 Port_A=0 Port_B=1 Port_C=2 Port_D=3 All=4
maple_sdl_joystick_0 := moduleIni.Read(romName . "|Physical Devices", "Input 1","0",,1) ; None=-1 Port_A=0 Port_B=1 Port_C=2 Port_D=3
maple_sdl_joystick_1 := moduleIni.Read(romName . "|Physical Devices", "Input 2","0",,1) ; None=-1 Port_A=0 Port_B=1 Port_C=2 Port_D=3
maple_sdl_joystick_2 := moduleIni.Read(romName . "|Physical Devices", "Input 3","0",,1) ; None=-1 Port_A=0 Port_B=1 Port_C=2 Port_D=3
maple_sdl_joystick_3 := moduleIni.Read(romName . "|Physical Devices", "Input 4","0",,1) ; None=-1 Port_A=0 Port_B=1 Port_C=2 Port_D=3
maple_sdl_joystick_4 := moduleIni.Read(romName . "|Physical Devices", "Input 5","0",,1) ; None=-1 Port_A=0 Port_B=1 Port_C=2 Port_D=3
;-----------------------------------------------------------------------------------------------------------------------------------------
flycastCfg.CheckFile()
flycastCfg.Write("" . Language . "" , "config", "Dreamcast.Language", 1)
flycastCfg.Write("" . Broadcast . "" , "config", "Dreamcast.Broadcast", 1)
flycastCfg.Write("" . region . "" , "config", "Dreamcast.Region", 1)
flycastCfg.Write("" . Cable . "" , "config", "Dreamcast.Cable", 1)
flycastCfg.Write("" . Fullscreen . "" , "window", "fullscreen", 1)
flycastCfg.Write("" . GAPI . "" , "config", "pvr.rend", 1)
flycastCfg.Write("" . ShowFPS . "" , "config", "rend.ShowFPS", 1)
flycastCfg.Write("" . ScreenScaling . "" , "config", "rend.ScreenScaling", 1)
flycastCfg.Write("" . RenderToTextureUpscale . "" , "config", "rend.RenderToTextureUpscale", 1)
flycastCfg.Write("" . TextureUpscale . "" , "config", "rend.TextureUpscale", 1)
flycastCfg.Write("" . RenderToTextureBuffer . "" , "config", "rend.RenderToTextureBuffer", 1)
flycastCfg.Write("" . CustomTextures . "" , "config", "rend.CustomTextures", 1)
flycastCfg.Write("" . FloatVMUs . "" , "config", "rend.FloatVMUs", 1)
flycastCfg.Write("" . WideScreen . "" , "config", "rend.WideScreen", 1)
flycastCfg.Write("" . WidescreenGameHacks . "" , "config", "rend.WidescreenGameHacks", 1)
flycastCfg.Write("" . Network . "" , "network", "Enable", 1)
flycastCfg.Write("" . UseReios . "" , "config", "bios.UseReios", 1)
flycastCfg.Write("" . ForceWindowsCE . "" , "config", "Dreamcast.ForceWindowsCE", 1)
flycastCfg.Write("" . device1 . "" , "input", "device1", 1)
flycastCfg.Write("" . device1_1 . "" , "input", "device1.1", 1)
flycastCfg.Write("" . device1_2 . "" , "input", "device1.2", 1)
flycastCfg.Write("" . device2 . "" , "input", "device2", 1)
flycastCfg.Write("" . device2_1 . "" , "input", "device2.1", 1)
flycastCfg.Write("" . device2_2 . "" , "input", "device2.2", 1)
flycastCfg.Write("" . device3 . "" , "input", "device3", 1)
flycastCfg.Write("" . device3_1 . "" , "input", "device3.1", 1)
flycastCfg.Write("" . device3_2 . "" , "input", "device3.2", 1)
flycastCfg.Write("" . device4 . "" , "input", "device4", 1)
flycastCfg.Write("" . device4_1 . "" , "input", "device4.1", 1)
flycastCfg.Write("" . device4_2 . "" , "input", "device4.2", 1)
flycastCfg.Write("" . RawInput . "" , "window", "RawInput", 1)
flycastCfg.Write("" . MouseSensitivity . "" , "input", "MouseSensitivity", 1)
flycastCfg.Write("" . CrosshairP1 . "" , "config", "rend.CrossHairColor1", 1)
flycastCfg.Write("" . CrosshairP2 . "" , "config", "rend.CrossHairColor2", 1)
flycastCfg.Write("" . CrosshairP3 . "" , "config", "rend.CrossHairColor3", 1)
flycastCfg.Write("" . CrosshairP4 . "" , "config", "rend.CrossHairColor4", 1)
flycastCfg.Write("" . VirtualGamepadVibration . "" , "input", "VirtualGamepadVibration", 1)
flycastCfg.Write("" . maple_sdl_keyboard . "" , "input", "maple_sdl_keyboard", 1)
flycastCfg.Write("" . maple_sdl_mouse . "" , "input", "maple_sdl_mouse", 1)
flycastCfg.Write("" . maple_sdl_joystick_0 . "" , "input", "maple_sdl_joystick_0", 1)
flycastCfg.Write("" . maple_sdl_joystick_1 . "" , "input", "maple_sdl_joystick_1", 1)
flycastCfg.Write("" . maple_sdl_joystick_2 . "" , "input", "maple_sdl_joystick_2", 1)
flycastCfg.Write("" . maple_sdl_joystick_3 . "" , "input", "maple_sdl_joystick_3", 1)
flycastCfg.SaveProperties()
BezelStart()
hideEmuObj := Object(emuPrimaryWindow,1)
7z(romPath, romName, romExtension, 7zExtractPath)
HideAppStart(hideEmuObj,hideEmu)
primaryExe.Run("""" . romPath . "\" . romName . romExtension . """")
emuPrimaryWindow.Wait()
emuPrimaryWindow.WaitActive()
BezelDraw()
HideAppEnd(hideEmuObj,hideEmu)
FadeInExit()
primaryExe.Process("WaitClose")
BezelExit()
7zCleanUp()
FadeOutExit()
ExitModule()
CloseProcess:
FadeOutStart()
primaryExe.Process("Close", emuPID)
Return
<?xml version="1.0" encoding="UTF-8"?>
<INISCHEMA>
<INIFILES>
<INIFILE name="%SystemName%" required="false">
<INITYPE>System</INITYPE>
<SECTIONS>
<SECTION name="General" required="false">
<SECTIONTYPE>Global</SECTIONTYPE>
<KEYS>
<KEY name="Language" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>The language as configured in the Dreamcast BIOS. (Default = English)</DESCRIPTION>
<VALUES>
<VALUE description="Japanese">0</VALUE>
<VALUE description="English">1</VALUE>
<VALUE description="German">2</VALUE>
<VALUE description="French">3</VALUE>
<VALUE description="Spanish">4</VALUE>
<VALUE description="Italian">5</VALUE>
</VALUES>
</KEY>
<KEY name="Broadcast" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>TV broadcasting standard for non-VGA modes. (Default = NTSC)</DESCRIPTION>
<VALUES>
<VALUE description="NTSC">0</VALUE>
<VALUE description="PAL">1</VALUE>
<VALUE description="PAL-M (Brazil)">2</VALUE>
<VALUE description="PAL-N (Argentina, Paraguay and Uruguay)">3</VALUE>
</VALUES>
</KEY>
<KEY name="Region" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>BIOS region. (Default = USA)</DESCRIPTION>
<VALUES>
<VALUE description="Japan">0</VALUE>
<VALUE description="USA">1</VALUE>
<VALUE description="Europe">2</VALUE>
</VALUES>
</KEY>
<KEY name="Cable" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Video connection type. (Default = TV Composite)</DESCRIPTION>
<VALUES>
<VALUE description="VGA">1</VALUE>
<VALUE description="RGB">2</VALUE>
<VALUE description="TV Composite">3</VALUE>
</VALUES>
</KEY>
</KEYS>
</SECTION>
<SECTION name="Video" required="false">
<SECTIONTYPE>Global</SECTIONTYPE>
<KEYS>
<KEY name="GAPI" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Graphics API. (Default = DirectX)</DESCRIPTION>
<VALUES>
<VALUE description="OpenGL">0</VALUE>
<VALUE description="OpenGL (per-pixel)">3</VALUE>
<VALUE description="Vulkan">4</VALUE>
<VALUE description="Vulkan (per-pixel)">5</VALUE>
<VALUE description="DirectX">1</VALUE>
<VALUE description="Software renderer">2</VALUE>
</VALUES>
</KEY>
<KEY name="Fullscreen" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Fullscreen. (Default = True)</DESCRIPTION>
<VALUES>
<VALUE description="True">yes</VALUE>
<VALUE description="False">no</VALUE>
</VALUES>
</KEY>
<KEY name="ShowFPS" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Show on-screen frame/sec counter. (Default = False)</DESCRIPTION>
<VALUES>
<VALUE description="True">yes</VALUE>
<VALUE description="False">no</VALUE>
</VALUES>
</KEY>
<KEY name="Scaling SSAA" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Downscaling/Upscaling/factor relative to native resolution, Highter is better but more demanding. (Default = 1)</DESCRIPTION>
<VALUES>
<VALUE description="0.1">10</VALUE>
<VALUE description="0.2">20</VALUE>
<VALUE description="0.3">30</VALUE>
<VALUE description="0.4">40</VALUE>
<VALUE description="0.5">50</VALUE>
<VALUE description="0.6">60</VALUE>
<VALUE description="0.7">70</VALUE>
<VALUE description="0.8">80</VALUE>
<VALUE description="0.9">90</VALUE>
<VALUE description="1">100</VALUE>
<VALUE description="2">200</VALUE>
<VALUE description="3">300</VALUE>
<VALUE description="4">400</VALUE>
<VALUE description="5">500</VALUE>
<VALUE description="6">600</VALUE>
<VALUE description="7">700</VALUE>
<VALUE description="8">800</VALUE>
</VALUES>
</KEY>
<KEY name="Render to Texture Upscaling" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Upscale rendered-to textures, should be the same as the screen or window upscale ration or lower for slow platform. (Default = 1)</DESCRIPTION>
<VALUES>
<VALUE description="1">1</VALUE>
<VALUE description="2">2</VALUE>
<VALUE description="3">3</VALUE>
<VALUE description="4">4</VALUE>
<VALUE description="5">5</VALUE>
<VALUE description="6">6</VALUE>
<VALUE description="7">7</VALUE>
<VALUE description="8">8</VALUE>
</VALUES>
</KEY>
<KEY name="Texture Upscale" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Upscale textures with xBRZ algorithm, Only on fast platforms and for certain 2D games. (Default = 1)</DESCRIPTION>
<VALUES>
<VALUE description="0">0</VALUE>
<VALUE description="1">1</VALUE>
<VALUE description="2">2</VALUE>
<VALUE description="3">3</VALUE>
<VALUE description="4">4</VALUE>
<VALUE description="5">5</VALUE>
<VALUE description="6">6</VALUE>
<VALUE description="7">7</VALUE>
<VALUE description="8">8</VALUE>
</VALUES>
</KEY>
<KEY name="Copy to VRAM" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Copy rendered-to textures back VRAM. Slower but accurate. (Default = False)</DESCRIPTION>
<VALUES>
<VALUE description="True">yes</VALUE>
<VALUE description="False">no</VALUE>
</VALUES>
</KEY>
<KEY name="Load Custom Textures" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Load custom/hight-res textures from data/textures/game id. (Default = False)</DESCRIPTION>
<VALUES>
<VALUE description="True">yes</VALUE>
<VALUE description="False">no</VALUE>
</VALUES>
</KEY>
<KEY name="Show VMU in game" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Show the VMU LCD screens while in-game. (Default = False)</DESCRIPTION>
<VALUES>
<VALUE description="True">yes</VALUE>
<VALUE description="False">no</VALUE>
</VALUES>
</KEY>
<KEY name="WideScreen" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Draw geometry ourside of the normal 4:3 aspect ratio. May produce graphical glitches in the revealed areas. (Default = False)</DESCRIPTION>
<VALUES>
<VALUE description="True">yes</VALUE>
<VALUE description="False">no</VALUE>
</VALUES>
</KEY>
<KEY name="WideScreen Game Cheats" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Modify the game so that it displays in 16:9 anomorphic format and use horizontal screen stretching. Only some games are supported. (Default = False)</DESCRIPTION>
<VALUES>
<VALUE description="True">yes</VALUE>
<VALUE description="False">no</VALUE>
</VALUES>
</KEY>
</KEYS>
</SECTION>
<SECTION name="Physical Devices" required="false">
<SECTIONTYPE>Global</SECTIONTYPE>
<KEYS>
<KEY name="RawInput" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Activate RawInput. (Default = False)</DESCRIPTION>
<VALUES>
<VALUE description="True">yes</VALUE>
<VALUE description="False">no</VALUE>
</VALUES>
</KEY>
<KEY name="Mouse Sensitivity" required="false" nullable="false">
<KEYTYPE>Integer</KEYTYPE>
<DESCRIPTION>Mouse Sensitivity 0-->100.</DESCRIPTION>
</KEY>
<KEY name="Gamepad Vibration" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Gamepad Vibration. (Default = 20)</DESCRIPTION>
<VALUES>
<VALUE description="0">0</VALUE>
<VALUE description="20">20</VALUE>
<VALUE description="40">40</VALUE>
<VALUE description="60">60</VALUE>
<VALUE description="80">80</VALUE>
<VALUE description="100">100</VALUE>
</VALUES>
</KEY>
<KEY name="Keyboard" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Keyboard. (Default = All)</DESCRIPTION>
<VALUES>
<VALUE description="None">-1</VALUE>
<VALUE description="Port A">0</VALUE>
<VALUE description="Port B">1</VALUE>
<VALUE description="Port C">2</VALUE>
<VALUE description="Port D">3</VALUE>
<VALUE description="All">4</VALUE>
</VALUES>
</KEY>
<KEY name="Mouse" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Mouse. (Default = Port A)</DESCRIPTION>
<VALUES>
<VALUE description="None">-1</VALUE>
<VALUE description="Port A">0</VALUE>
<VALUE description="Port B">1</VALUE>
<VALUE description="Port C">2</VALUE>
<VALUE description="Port D">3</VALUE>
<VALUE description="All">4</VALUE>
</VALUES>
</KEY>
<KEY name="Input 1" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Input 1. (Default = Port A)</DESCRIPTION>
<VALUES>
<VALUE description="None">-1</VALUE>
<VALUE description="Port A">0</VALUE>
<VALUE description="Port B">1</VALUE>
<VALUE description="Port C">2</VALUE>
<VALUE description="Port D">3</VALUE>
</VALUES>
</KEY>
<KEY name="Input 2" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Input 2. (Default = Port A)</DESCRIPTION>
<VALUES>
<VALUE description="None">-1</VALUE>
<VALUE description="Port A">0</VALUE>
<VALUE description="Port B">1</VALUE>
<VALUE description="Port C">2</VALUE>
<VALUE description="Port D">3</VALUE>
</VALUES>
</KEY>
<KEY name="Input 3" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Input 3. (Default = Port A)</DESCRIPTION>
<VALUES>
<VALUE description="None">-1</VALUE>
<VALUE description="Port A">0</VALUE>
<VALUE description="Port B">1</VALUE>
<VALUE description="Port C">2</VALUE>
<VALUE description="Port D">3</VALUE>
</VALUES>
</KEY>
<KEY name="Input 4" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Input 4. (Default = Port A)</DESCRIPTION>
<VALUES>
<VALUE description="None">-1</VALUE>
<VALUE description="Port A">0</VALUE>
<VALUE description="Port B">1</VALUE>
<VALUE description="Port C">2</VALUE>
<VALUE description="Port D">3</VALUE>
</VALUES>
</KEY>
<KEY name="Input 5" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Input 5. (Default = Port A)</DESCRIPTION>
<VALUES>
<VALUE description="None">-1</VALUE>
<VALUE description="Port A">0</VALUE>
<VALUE description="Port B">1</VALUE>
<VALUE description="Port C">2</VALUE>
<VALUE description="Port D">3</VALUE>
</VALUES>
</KEY>
</KEYS>
</SECTION>
<SECTION name="Advanced" required="false">
<SECTIONTYPE>Global</SECTIONTYPE>
<KEYS>
<KEY name="Network" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Enable networking for support Naomi games. (Default = False)</DESCRIPTION>
<VALUES>
<VALUE description="True">yes</VALUE>
<VALUE description="False">no</VALUE>
</VALUES>
</KEY>
<KEY name="HLE BIOS" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Force hight-level BIOS emulation. (Default = False)</DESCRIPTION>
<VALUES>
<VALUE description="True">yes</VALUE>
<VALUE description="False">no</VALUE>
</VALUES>
</KEY>
<KEY name="Force Windows CE" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Enable full MMU emulation and other Windows CE settings. Do not enable unless necessary. (Default = False)</DESCRIPTION>
<VALUES>
<VALUE description="True">yes</VALUE>
<VALUE description="False">no</VALUE>
</VALUES>
</KEY>
</KEYS>
</SECTION>
<SECTION name="Control A" required="false">
<SECTIONTYPE>Global</SECTIONTYPE>
<KEYS>
<KEY name="Device A" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Gamepad A. (Default = Sega Controller)</DESCRIPTION>
<VALUES>
<VALUE description="None">10</VALUE>
<VALUE description="Sega Controller">0</VALUE>
<VALUE description="Ascii Stick">4</VALUE>
<VALUE description="Keybord">5</VALUE>
<VALUE description="Mouse">6</VALUE>
<VALUE description="Light Gun">7</VALUE>
<VALUE description="Twin Stick">8</VALUE>
</VALUES>
</KEY>
<KEY name="Crosshair Player 1" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Shows a blue crosshair for Player 1. (Default = False)</DESCRIPTION>
<VALUES>
<VALUE description="True">-1057159931</VALUE>
<VALUE description="False">0</VALUE>
</VALUES>
</KEY>
<KEY name="Expansion Socket 1.1" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Expansion Socket. (Default = None)</DESCRIPTION>
<VALUES>
<VALUE description="None">0</VALUE>
<VALUE description="Sega VMU">1</VALUE>
<VALUE description="Microphone">2</VALUE>
<VALUE description="Purupuru">3</VALUE>
</VALUES>
</KEY>
<KEY name="Expansion Socket 1.2" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Expansion Socket. Only Sega Controler. (Default = None)</DESCRIPTION>
<VALUES>
<VALUE description="None">0</VALUE>
<VALUE description="Sega VMU">1</VALUE>
<VALUE description="Microphone">2</VALUE>
<VALUE description="Purupuru">3</VALUE>
</VALUES>
</KEY>
</KEYS>
</SECTION>
<SECTION name="Control B" required="false">
<SECTIONTYPE>Global</SECTIONTYPE>
<KEYS>
<KEY name="Device B" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Gamepad B. (Default = Sega Controller)</DESCRIPTION>
<VALUES>
<VALUE description="None">10</VALUE>
<VALUE description="Sega Controller">0</VALUE>
<VALUE description="Ascii Stick">4</VALUE>
<VALUE description="Keybord">5</VALUE>
<VALUE description="Mouse">6</VALUE>
<VALUE description="Light Gun">7</VALUE>
<VALUE description="Twin Stick">8</VALUE>
</VALUES>
</KEY>
<KEY name="Crosshair Player 2" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Shows a red crosshair for Player 2. (Default = False)</DESCRIPTION>
<VALUES>
<VALUE description="True">-1072820518</VALUE>
<VALUE description="False">0</VALUE>
</VALUES>
</KEY>
<KEY name="Expansion Socket 2.1" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Expansion Socket. (Default = None)</DESCRIPTION>
<VALUES>
<VALUE description="None">0</VALUE>
<VALUE description="Sega VMU">1</VALUE>
<VALUE description="Microphone">2</VALUE>
<VALUE description="Purupuru">3</VALUE>
</VALUES>
</KEY>
<KEY name="Expansion Socket 2.2" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Expansion Socket. Only Sega Controler. (Default = None)</DESCRIPTION>
<VALUES>
<VALUE description="None">0</VALUE>
<VALUE description="Sega VMU">1</VALUE>
<VALUE description="Microphone">2</VALUE>
<VALUE description="Purupuru">3</VALUE>
</VALUES>
</KEY>
</KEYS>
</SECTION>
<SECTION name="Control C" required="false">
<SECTIONTYPE>Global</SECTIONTYPE>
<KEYS>
<KEY name="Device C" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Gamepad C. (Default = None)</DESCRIPTION>
<VALUES>
<VALUE description="None">10</VALUE>
<VALUE description="Sega Controller">0</VALUE>
<VALUE description="Ascii Stick">4</VALUE>
<VALUE description="Keybord">5</VALUE>
<VALUE description="Mouse">6</VALUE>
<VALUE description="Light Gun">7</VALUE>
<VALUE description="Twin Stick">8</VALUE>
</VALUES>
</KEY>
<KEY name="Crosshair Player 3" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Shows a green crosshair for Player 3. (Default = False)</DESCRIPTION>
<VALUES>
<VALUE description="True">-1072956925</VALUE>
<VALUE description="False">0</VALUE>
</VALUES>
</KEY>
<KEY name="Expansion Socket 3.1" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Expansion Socket. (Default = None)</DESCRIPTION>
<VALUES>
<VALUE description="None">0</VALUE>
<VALUE description="Sega VMU">1</VALUE>
<VALUE description="Microphone">2</VALUE>
<VALUE description="Purupuru">3</VALUE>
</VALUES>
</KEY>
<KEY name="Expansion Socket 3.2" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Expansion Socket. Only Sega Controler. (Default = None)</DESCRIPTION>
<VALUES>
<VALUE description="None">0</VALUE>
<VALUE description="Sega VMU">1</VALUE>
<VALUE description="Microphone">2</VALUE>
<VALUE description="Purupuru">3</VALUE>
</VALUES>
</KEY>
</KEYS>
</SECTION>
<SECTION name="Control D" required="false">
<SECTIONTYPE>Global</SECTIONTYPE>
<KEYS>
<KEY name="Device D" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Gamepad D. (Default = None)</DESCRIPTION>
<VALUES>
<VALUE description="None">10</VALUE>
<VALUE description="Sega Controller">0</VALUE>
<VALUE description="Ascii Stick">4</VALUE>
<VALUE description="Keybord">5</VALUE>
<VALUE description="Mouse">6</VALUE>
<VALUE description="Light Gun">7</VALUE>
<VALUE description="Twin Stick">8</VALUE>
</VALUES>
</KEY>
<KEY name="Crosshair Player 4" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Shows a yellow crosshair for Player 4. (Default = False)</DESCRIPTION>
<VALUES>
<VALUE description="True">-1073676826</VALUE>
<VALUE description="False">0</VALUE>
</VALUES>
</KEY>
<KEY name="Expansion Socket 4.1" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Expansion Socket. (Default = None)</DESCRIPTION>
<VALUES>
<VALUE description="None">0</VALUE>
<VALUE description="Sega VMU">1</VALUE>
<VALUE description="Microphone">2</VALUE>
<VALUE description="Purupuru">3</VALUE>
</VALUES>
</KEY>
<KEY name="Expansion Socket 4.2" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Expansion Socket. Only Sega Controler. (Default = None)</DESCRIPTION>
<VALUES>
<VALUE description="None">0</VALUE>
<VALUE description="Sega VMU">1</VALUE>
<VALUE description="Microphone">2</VALUE>
<VALUE description="Purupuru">3</VALUE>
</VALUES>
</KEY>
</KEYS>
</SECTION>
<SECTION name="%RomName%" required="false">
<SECTIONTYPE>Rom</SECTIONTYPE>
<GROUPS>
<GROUP name="General"/>
<GROUP name="Video"/>
<GROUP name="Advanced"/>
<GROUP name="Physical Devices"/>
<GROUP name="Control A"/>
<GROUP name="Control B"/>
<GROUP name="Control C"/>
<GROUP name="Control D"/>
</GROUPS>
<KEYS>
<KEY name="Language" required="false" nullable="false" group="General">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>The language as configured in the Dreamcast BIOS. (Default = English)</DESCRIPTION>
<VALUES>
<VALUE description="Japanese">0</VALUE>
<VALUE description="English">1</VALUE>
<VALUE description="German">2</VALUE>
<VALUE description="French">3</VALUE>
<VALUE description="Spanish">4</VALUE>
<VALUE description="Italian">5</VALUE>
</VALUES>
</KEY>
<KEY name="Broadcast" required="false" nullable="false" group="General">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>TV broadcasting standard for non-VGA modes. (Default = NTSC)</DESCRIPTION>
<VALUES>
<VALUE description="NTSC">0</VALUE>
<VALUE description="PAL">1</VALUE>
<VALUE description="PAL-M (Brazil)">2</VALUE>
<VALUE description="PAL-N (Argentina, Paraguay and Uruguay)">3</VALUE>
</VALUES>
</KEY>
<KEY name="Region" required="false" nullable="false" group="General">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>BIOS region. (Default = USA)</DESCRIPTION>
<VALUES>
<VALUE description="Japan">0</VALUE>
<VALUE description="USA">1</VALUE>
<VALUE description="Europe">2</VALUE>
</VALUES>
</KEY>
<KEY name="Cable" required="false" nullable="false" group="General">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Video connection type. (Default = TV Composite)</DESCRIPTION>
<VALUES>
<VALUE description="VGA">1</VALUE>
<VALUE description="RGB">2</VALUE>
<VALUE description="TV Composite">3</VALUE>
</VALUES>
</KEY>
<KEY name="GAPI" required="false" nullable="false" group="Video">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Graphics API. (Default = DirectX)</DESCRIPTION>
<VALUES>
<VALUE description="OpenGL">0</VALUE>
<VALUE description="Vulkan">4</VALUE>
<VALUE description="DirectX">1</VALUE>
</VALUES>
</KEY>
<KEY name="Fullscreen" required="false" nullable="false" group="Video">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Fullscreen. (Default = True)</DESCRIPTION>
<VALUES>
<VALUE description="True">yes</VALUE>
<VALUE description="False">no</VALUE>
</VALUES>
</KEY>
<KEY name="ShowFPS" required="false" nullable="false" group="Video">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Shox on-screen frame/sec counter. (Default = False)</DESCRIPTION>
<VALUES>
<VALUE description="True">yes</VALUE>
<VALUE description="False">no</VALUE>
</VALUES>
</KEY>
<KEY name="Scaling SSAA" required="false" nullable="false" group="Video">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Downscaling/Upscaling/factor relative to native resolution, Highter is better but more demanding. (Default = 1)</DESCRIPTION>
<VALUES>
<VALUE description="0.1">10</VALUE>
<VALUE description="0.2">20</VALUE>
<VALUE description="0.3">30</VALUE>
<VALUE description="0.4">40</VALUE>
<VALUE description="0.5">50</VALUE>
<VALUE description="0.6">60</VALUE>
<VALUE description="0.7">70</VALUE>
<VALUE description="0.8">80</VALUE>
<VALUE description="0.9">90</VALUE>
<VALUE description="1">100</VALUE>
<VALUE description="2">200</VALUE>
<VALUE description="3">300</VALUE>
<VALUE description="4">400</VALUE>
<VALUE description="5">500</VALUE>
<VALUE description="6">600</VALUE>
<VALUE description="7">700</VALUE>
<VALUE description="8">800</VALUE>
</VALUES>
</KEY>
<KEY name="Render to Texture Upscaling" required="false" nullable="false" group="Video">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Upscale rendered-to textures, should be the same as the screen or window upscale ration or lower for slow platform. (Default = 1)</DESCRIPTION>
<VALUES>
<VALUE description="1">1</VALUE>
<VALUE description="2">2</VALUE>
<VALUE description="3">3</VALUE>
<VALUE description="4">4</VALUE>
<VALUE description="5">5</VALUE>
<VALUE description="6">6</VALUE>
<VALUE description="7">7</VALUE>
<VALUE description="8">8</VALUE>
</VALUES>
</KEY>
<KEY name="Texture Upscale" required="false" nullable="false" group="Video">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Upscale textures with xBRZ algorithm, Only on fast platforms and for certain 2D games. (Default = 1)</DESCRIPTION>
<VALUES>
<VALUE description="0">0</VALUE>
<VALUE description="1">1</VALUE>
<VALUE description="2">2</VALUE>
<VALUE description="3">3</VALUE>
<VALUE description="4">4</VALUE>
<VALUE description="5">5</VALUE>
<VALUE description="6">6</VALUE>
<VALUE description="7">7</VALUE>
<VALUE description="8">8</VALUE>
</VALUES>
</KEY>
<KEY name="Copy to VRAM" required="false" nullable="false" group="Video">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Copy rendered-to textures back VRAM. Slower but accurate. (Default = False)</DESCRIPTION>
<VALUES>
<VALUE description="True">yes</VALUE>
<VALUE description="False">no</VALUE>
</VALUES>
</KEY>
<KEY name="Load Custom Textures" required="false" nullable="false" group="Video">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Load custom/hight-res textures from data/textures/game id. (Default = False)</DESCRIPTION>
<VALUES>
<VALUE description="True">yes</VALUE>
<VALUE description="False">no</VALUE>
</VALUES>
</KEY>
<KEY name="Show VMU in game" required="false" nullable="false" group="Video">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Show the VMU LCD screens while in-game. (Default = False)</DESCRIPTION>
<VALUES>
<VALUE description="True">yes</VALUE>
<VALUE description="False">no</VALUE>
</VALUES>
</KEY>
<KEY name="WideScreen" required="false" nullable="false" group="Video">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Draw geometry ourside of the normal 4:3 aspect ratio. May produce graphical glitches in the revealed areas. (Default = False)</DESCRIPTION>
<VALUES>
<VALUE description="True">yes</VALUE>
<VALUE description="False">no</VALUE>
</VALUES>
</KEY>
<KEY name="WideScreen Game Cheats" required="false" nullable="false" group="Video">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Modify the game so that it displays in 16:9 anomorphic format and use horizontal screen stretching. Only some games are supported. (Default = False)</DESCRIPTION>
<VALUES>
<VALUE description="True">yes</VALUE>
<VALUE description="False">no</VALUE>
</VALUES>
</KEY>
<KEY name="Network" required="false" nullable="false" group="Advanced">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Enable networking for support Naomi games. (Default = False)</DESCRIPTION>
<VALUES>
<VALUE description="True">yes</VALUE>
<VALUE description="False">no</VALUE>
</VALUES>
</KEY>
<KEY name="HLE BIOS" required="false" nullable="false" group="Advanced">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Force hight-level BIOS emulation. (Default = False)</DESCRIPTION>
<VALUES>
<VALUE description="True">yes</VALUE>
<VALUE description="False">no</VALUE>
</VALUES>
</KEY>
<KEY name="Force Windows CE" required="false" nullable="false" group="Advanced">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Enable full MMU emulation and other Windows CE settings. Do not enable unless necessary. (Default = False)</DESCRIPTION>
<VALUES>
<VALUE description="True">yes</VALUE>
<VALUE description="False">no</VALUE>
</VALUES>
</KEY>
<KEY name="Device A" required="false" nullable="false" group="Control A">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Gamepad A. (Default = Sega Controller)</DESCRIPTION>
<VALUES>
<VALUE description="None">10</VALUE>
<VALUE description="Sega Controller">0</VALUE>
<VALUE description="Ascii Stick">4</VALUE>
<VALUE description="Keybord">5</VALUE>
<VALUE description="Mouse">6</VALUE>
<VALUE description="Light Gun">7</VALUE>
<VALUE description="Twin Stick">8</VALUE>
</VALUES>
</KEY>
<KEY name="Crosshair Player 1" required="false" nullable="false" group="Control A">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Shows a blue crosshair for Player 1. (Default = False)</DESCRIPTION>
<VALUES>
<VALUE description="True">-1057159931</VALUE>
<VALUE description="False">0</VALUE>
</VALUES>
</KEY>
<KEY name="Expansion Socket 1.1" required="false" nullable="false" group="Control A">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Expansion Socket. (Default = False)</DESCRIPTION>
<VALUES>
<VALUE description="None">0</VALUE>
<VALUE description="Sega VMU">1</VALUE>
<VALUE description="Microphone">2</VALUE>
<VALUE description="Purupuru">3</VALUE>
</VALUES>
</KEY>
<KEY name="Expansion Socket 1.2" required="false" nullable="false" group="Control A">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Expansion Socket. Only Sega Controller. (Default = None)</DESCRIPTION>
<VALUES>
<VALUE description="None">0</VALUE>
<VALUE description="Sega VMU">1</VALUE>
<VALUE description="Microphone">2</VALUE>
<VALUE description="Purupuru">3</VALUE>
</VALUES>
</KEY>
<KEY name="Device B" required="false" nullable="false" group="Control B">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Gamepad B. (Default = Sega Controller)</DESCRIPTION>
<VALUES>
<VALUE description="None">10</VALUE>
<VALUE description="Sega Controller">0</VALUE>
<VALUE description="Ascii Stick">4</VALUE>
<VALUE description="Keybord">5</VALUE>
<VALUE description="Mouse">6</VALUE>
<VALUE description="Light Gun">7</VALUE>
<VALUE description="Twin Stick">8</VALUE>
</VALUES>
</KEY>
<KEY name="Crosshair Player 2" required="false" nullable="false" group="Control B">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Shows a red crosshair for Player 2. (Default = False)</DESCRIPTION>
<VALUES>
<VALUE description="True">-1072820518</VALUE>
<VALUE description="False">0</VALUE>
</VALUES>
</KEY>
<KEY name="Expansion Socket 2.1" required="false" nullable="false" group="Control B">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Expansion Socket. (Default = None)</DESCRIPTION>
<VALUES>
<VALUE description="None">0</VALUE>
<VALUE description="Sega VMU">1</VALUE>
<VALUE description="Microphone">2</VALUE>
<VALUE description="Purupuru">3</VALUE>
</VALUES>
</KEY>
<KEY name="Expansion Socket 2.2" required="false" nullable="false" group="Control B">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Expansion Socket. Only Sega Controller. (Default = None)</DESCRIPTION>
<VALUES>
<VALUE description="None">0</VALUE>
<VALUE description="Sega VMU">1</VALUE>
<VALUE description="Microphone">2</VALUE>
<VALUE description="Purupuru">3</VALUE>
</VALUES>
</KEY>
<KEY name="Device C" required="false" nullable="false" group="Control C">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Gamepad C. (Default = None)</DESCRIPTION>
<VALUES>
<VALUE description="None">10</VALUE>
<VALUE description="Sega Controller">0</VALUE>
<VALUE description="Ascii Stick">4</VALUE>
<VALUE description="Keybord">5</VALUE>
<VALUE description="Mouse">6</VALUE>
<VALUE description="Light Gun">7</VALUE>
<VALUE description="Twin Stick">8</VALUE>
</VALUES>
</KEY>
<KEY name="Crosshair Player 3" required="false" nullable="false" group="Control C">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Shows a green crosshair for Player 3. (Default = False)</DESCRIPTION>
<VALUES>
<VALUE description="True">-1072956925</VALUE>
<VALUE description="False">0</VALUE>
</VALUES>
</KEY>
<KEY name="Expansion Socket 3.1" required="false" nullable="false" group="Control C">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Expansion Socket. (Default = None)</DESCRIPTION>
<VALUES>
<VALUE description="None">0</VALUE>
<VALUE description="Sega VMU">1</VALUE>
<VALUE description="Microphone">2</VALUE>
<VALUE description="Purupuru">3</VALUE>
</VALUES>
</KEY>
<KEY name="Expansion Socket 3.2" required="false" nullable="false" group="Control C">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Expansion Socket. Only Sega Controller. (Default = None)</DESCRIPTION>
<VALUES>
<VALUE description="None">0</VALUE>
<VALUE description="Sega VMU">1</VALUE>
<VALUE description="Microphone">2</VALUE>
<VALUE description="Purupuru">3</VALUE>
</VALUES>
</KEY>
<KEY name="Device D" required="false" nullable="false" group="Control D">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Gamepad D. (Default = None)</DESCRIPTION>
<VALUES>
<VALUE description="None">10</VALUE>
<VALUE description="Sega Controller">0</VALUE>
<VALUE description="Ascii Stick">4</VALUE>
<VALUE description="Keybord">5</VALUE>
<VALUE description="Mouse">6</VALUE>
<VALUE description="Light Gun">7</VALUE>
<VALUE description="Twin Stick">8</VALUE>
</VALUES>
</KEY>
<KEY name="Crosshair Player 4" required="false" nullable="false" group="Control D">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Shows a yellow crosshair for Player 4. (Default = False)</DESCRIPTION>
<VALUES>
<VALUE description="True">-1073676826</VALUE>
<VALUE description="False">0</VALUE>
</VALUES>
</KEY>
<KEY name="Expansion Socket 4.1" required="false" nullable="false" group="Control D">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Expansion Socket. (Default = None)</DESCRIPTION>
<VALUES>
<VALUE description="None">0</VALUE>
<VALUE description="Sega VMU">1</VALUE>
<VALUE description="Microphone">2</VALUE>
<VALUE description="Purupuru">3</VALUE>
</VALUES>
</KEY>
<KEY name="Expansion Socket 4.2" required="false" nullable="false" group="Control D">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Expansion Socket. Only Sega Controller. (Default = None)</DESCRIPTION>
<VALUES>
<VALUE description="None">0</VALUE>
<VALUE description="Sega VMU">1</VALUE>
<VALUE description="Microphone">2</VALUE>
<VALUE description="Purupuru">3</VALUE>
</VALUES>
</KEY>
<KEY name="RawInput" required="false" nullable="false" group="Physical Devices">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Activates RawInput. (Default = False)</DESCRIPTION>
<VALUES>
<VALUE description="True">yes</VALUE>
<VALUE description="False">no</VALUE>
</VALUES>
</KEY>
<KEY name="Keyboard" required="false" nullable="false" group="Physical Devices">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Keyboard. (Default = All)</DESCRIPTION>
<VALUES>
<VALUE description="None">-1</VALUE>
<VALUE description="Port A">0</VALUE>
<VALUE description="Port B">1</VALUE>
<VALUE description="Port C">2</VALUE>
<VALUE description="Port D">3</VALUE>
<VALUE description="All">4</VALUE>
</VALUES>
</KEY>
<KEY name="Mouse" required="false" nullable="false" group="Physical Devices">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Mouse. (Default = Port A)</DESCRIPTION>
<VALUES>
<VALUE description="None">-1</VALUE>
<VALUE description="Port A">0</VALUE>
<VALUE description="Port B">1</VALUE>
<VALUE description="Port C">2</VALUE>
<VALUE description="Port D">3</VALUE>
<VALUE description="All">4</VALUE>
</VALUES>
</KEY>
<KEY name="Input 1" required="false" nullable="false" group="Physical Devices">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Input 1. (Default = Port A)</DESCRIPTION>
<VALUES>
<VALUE description="None">-1</VALUE>
<VALUE description="Port A">0</VALUE>
<VALUE description="Port B">1</VALUE>
<VALUE description="Port C">2</VALUE>
<VALUE description="Port D">3</VALUE>
</VALUES>
</KEY>
<KEY name="Input 2" required="false" nullable="false" group="Physical Devices">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Input 2. (Default = Port A)</DESCRIPTION>
<VALUES>
<VALUE description="None">-1</VALUE>
<VALUE description="Port A">0</VALUE>
<VALUE description="Port B">1</VALUE>
<VALUE description="Port C">2</VALUE>
<VALUE description="Port D">3</VALUE>
</VALUES>
</KEY>
<KEY name="Input 3" required="false" nullable="false" group="Physical Devices">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Input 3. (Default = Port A)</DESCRIPTION>
<VALUES>
<VALUE description="None">-1</VALUE>
<VALUE description="Port A">0</VALUE>
<VALUE description="Port B">1</VALUE>
<VALUE description="Port C">2</VALUE>
<VALUE description="Port D">3</VALUE>
</VALUES>
</KEY>
<KEY name="Input 4" required="false" nullable="false" group="Physical Devices">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Input 4. (Default = Port A)</DESCRIPTION>
<VALUES>
<VALUE description="None">-1</VALUE>
<VALUE description="Port A">0</VALUE>
<VALUE description="Port B">1</VALUE>
<VALUE description="Port C">2</VALUE>
<VALUE description="Port D">3</VALUE>
</VALUES>
</KEY>
<KEY name="Input 5" required="false" nullable="false" group="Physical Devices">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Input 5. (Default = Port A)</DESCRIPTION>
<VALUES>
<VALUE description="None">-1</VALUE>
<VALUE description="Port A">0</VALUE>
<VALUE description="Port B">1</VALUE>
<VALUE description="Port C">2</VALUE>
<VALUE description="Port D">3</VALUE>
</VALUES>
</KEY>
</KEYS>
</SECTION>
</SECTIONS>
</INIFILE>
</INIFILES>
</INISCHEMA>
MEmu := "Flycast"
MEmuV := "v0.1"
MURL := [""]
MAuthor := ["adamgp"]
MVersion := "1.0"
MCRC := ""
iCRC := ""
MID := ""
MSystem := ["Sammy Atomiswave","Sega Dreamcast","Sega Naomi"]
;----------------------------------------------------------------------------
; Notes:
;----------------------------------------------------------------------------
StartModule()
BezelGUI()
FadeInStart()
fullscreen := moduleIni.Read(romName . "|Settings", "Fullscreen", "no",,1)
widescreen := moduleIni.Read(romName . "|Settings", "WidescreenHack", "no",,1)
primaryExe := new Emulator(emuPath . "\" . executable)
BezelStart()
FadeInExit()
BezelDraw()
config := ""
config := config . " -config window:fullscreen=" . fullscreen
config := config . " -config config:rend.WideScreen=" . widescreen
primaryExe.Run(config . " """ . romPath . "\" . romName . romExtension . """")
primaryExe.Process("WaitClose")
BezelExit()
FadeOutExit()
ExitModule()
CloseProcess:
FadeOutStart()
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>String</KEYTYPE>
<DESCRIPTION>Default is Windowed. This setting controls fullscreen for all games.</DESCRIPTION>
<VALUES>
<VALUE description="Fullscreen">yes</VALUE>
<VALUE description="Windowed">no</VALUE>
</VALUES>
</KEY>
<KEY name="WidescreenHack" required="false" nullable="false">
<KEYTYPE>String</KEYTYPE>
<DESCRIPTION>Default is No. This setting controls enabling of the Widescreen hack for all games.</DESCRIPTION>
<VALUES>
<VALUE description="Yes">yes</VALUE>
<VALUE description="No">no</VALUE>
</VALUES>
</KEY>
</KEYS>
</SECTION>
</SECTIONS>
</INIFILE>
</INIFILES>
</INISCHEMA>