WELCOME UNIVERSE ROMs

lundi 13 avril 2020

null_DC | DEMUL | RetroArch

"3 ways to emulate Atomiswave and Naomi"





Ver. Française:
Emulation

1/


Exécutez sûr l'émulateur RetroArch avec dat ou bin en choisissant core_libRetro reicast


MEmu := "RetroArch"
MEmuV := "v05-11-2015 Nightly"
MURL := ["http://themaister.net/retroarch.html"]
MAuthor := ["djvj","zerojay"]
MVersion := "2.4.2"
MCRC := ""
iCRC := ""
MID := ""
MSystem := ["Acorn BBC Micro","AAE","Amstrad CPC","Amstrad GX4000","APF Imagination Machine","Applied Technology MicroBee","Apple IIGS","Atari 2600","Atari 5200","Atari 7800","Atari 8-Bit","Atari Classics","Atari Jaguar","Atari Lynx","Atari ST","Atari XEGS","Bally Astrocade","Bandai Gundam RX-78","Bandai Super Vision 8000","WonderSwan","WonderSwan Color","Benesse Pocket Challenge V2","Canon X07","Capcom Classics","Capcom Play System","Capcom Play System II","Capcom Play System III","Casio PV-1000","Casio PV-2000","Cave","Coleco ADAM","ColecoVision","Commodore MAX Machine","Commodore Amiga","Creatronic Mega Duck","Data East Classics","Dragon Data Dragon","Emerson Arcadia 2001","Entex Adventure Vision","Elektronika BK","Epoch Game Pocket Computer","Epoch Super Cassette Vision","Exidy Sorcerer","Fairchild Channel F","Final Burn Alpha","Funtech Super Acan","GamePark 32","GCE Vectrex","Hartung Game Master","Interton VC 4000","Irem Classics","JungleTac Sport Vii","Konami Classics","MAME","Magnavox Odyssey 2","Microsoft MSX","Microsoft MSX2","Matra & Hachette Alice","Mattel HyperScan","Mattel Aquarius","Mattel Intellivision","Midway Classics","M&D Monon Color","Namco Classics","Namco System 22","NEC PC Engine","NEC PC Engine CD","NEC PC-FX","NEC TurboGrafx-16","NEC SuperGrafx","NEC TurboGrafx-CD","Nintendo 64","Nintendo 64DD","Nintendo Arcade Systems","Nintendo Classics","Nintendo DS","Nintendo Entertainment System","Nintendo Famicom","Nintendo Famicom Disk System","Nintendo Game Boy","Nintendo Game Boy Color","Nintendo Game Boy Japan","Nintendo Game Boy Advance","Nintendo Game & Watch","Nintendo Super Game Boy","Nintendo Pokemon Mini","Nintendo Virtual Boy","Nintendo Super Famicom","Nintendo Satellaview","Nintendo SuFami Turbo","Panasonic 3DO","Elektronska Industrija Pecom 64","Philips CD-i","Philips Videopac","RCA Studio II","Samsung Gamboy","ScummVM","Sega 32X","Sega Classics","Sega Mega Drive 32X","Sega Mark III","Sega SC-3000","Sega SG-1000","Sega CD","Sega Dreamcast","Sega Game Gear","Sega Genesis","Sega Master System","Sega Mega Drive","Sega Meganet","Sega Nomad","Sega Pico","Sega Saturn","Sega Saturn Japan","Sega VMU","Sega ST-V","Sharp X1","Sinclair ZX Spectrum","Sony PlayStation","Sony PlayStation Minis","Sony PocketStation","Sony PSP","Sony PSP Minis","Sord M5","SNK Classics","SNK Neo Geo","SNK Neo Geo AES","SNK Neo Geo MVS","SNK Neo Geo Pocket","SNK Neo Geo CD","SNK Neo Geo Pocket Color","Spectravideo","Super Nintendo Entertainment System","Taito Classics","Tandy TRS-80 Color Computer","Technos","Texas Instruments TI 99-4A","Thomson MO5","Thomson TO7","Tiger Game.com","Tiki-100","Tomy Tutor","VTech CreatiVision","Watara Supervision","Williams Classics"]
;----------------------------------------------------------------------------
; Notes:
; If the emu doesn't load and you get no error, usually this means the LibRetro DLL is not working!
; Devs stated they will never add support for mounted images (like via DT)
; Fullscreen is controlled via the module setting in RocketLauncherUI
; This module uses the CLI version of RetroArch (retroarch.exe), not the GUI (retroarch-phoenix.exe).
; The emu may make a mouse cursor appear momentarily during launch, MouseMove and hide_cursor seem to have no effect
; Enable 7z support for archived roms
; Available CLI options: https://github.com/PyroFilmsFX/iOS/blob/master/docs/retroarch.1
;
; LibRetro DLLs:
; LibRetro DLLs come with the emu, but here is another source for them: http://forum.themaister.net/
; Whatever cores you decide to use, make sure they are extracted anywhere in your Emu_Path\cores folder. The module will find and load the default core unless you choose a custom one for each system.
; You can find supported cores that Retroarch supports simply by downloading them from the "retroarch-phoenix.exe" or by visiting here: https://github.com/libretro/libretro.github.com/wiki/Supported-cores
; Some good discussion on cores and filters: http://forum.themaister.net/viewtopic.php?id=270
;
; SRM files:
; srm are stored in a "srm" dir in the emu folder. Each system ran through retroarch gets its own folder inside srm
;
; Save states:
; Save states are stored in a "save" dir in the emu folder. Each system ran through retroarch gets its own folder inside save
;
; Config files:
; By default, the module looks for config files in a folder called config in the RetroArch folder. Example: C:\emus\RetroArch\config. You can change this folder to anything you like by changing the module's ConfigFolder setting in RocketLauncherUI.
; RetroArch's global config file is called "retroarch.cfg". RetroArch will use a system cfg file named to match your System Name (example: Nintendo Entertainment System.cfg).
; RetroArch will also load core config files named after the core name. Example: nestopia_libretro.cfg
; This allows different settings globally, for each system, and for each core. If you want all systems to use the same retroarch.cfg, do not have any system or core cfg files, only have the retroarch.cfg.
; If a core config exists, it takes precedence over the global config. And if a system config exists, it takes precedence over the core config.
;
; MultiGame:
; MultiGame support is currently only available for the Mednafen PSX core. Retroarch uses the same method as Mednafen to load multi-disc games. This method involves m3u playlists which are commonly used for music. The m3u files needed to load multi-disc games are generated for you by the module when you launch a multi-disc game and are saved to your corresponding rom directory. Due to m3u limitations, your multi-disc roms/images cannot be archived -- they must be unzipped. All single disc games can remain archived and you can still enable 7z under system settings. If you do not wish to use MultiGame support you can archive your roms/images and m3u generation will be skipped on launch. 
; The m3u files generated by the module contain a list of paths to all roms/images in the multi-disc set. Retroarch automatically loads the first path in the m3u so the first path will always be the disc you are loading. For example, Final Fantasy VII has 3 discs and if you load Disc 2 first, the order of the paths in the m3u will be disc 2, disc 3, disc 1. If you load Disc 3 first, the order will be disc 3, disc 1, disc 2. The module anticipates this and will load the correct disk, selected from the Pause/MultiDisk menus. However if you choose to manually use Retroarch's UI or disk swap keys to change discs, you will need to keep this in mind.
; In order for RocketLauncher's MultiGame UI to swap discs, you must define Eject_Toggle_Key, Next_Disk_Key, and Previous_Disk_Key under global settings for the emulator in RocketLauncher. Because AHK and Retroarch use different naming conventions for some keyboard keys, it is best to use a letter, a number, or F1-F12.
;
; MAME:
; MAME BIOS roms should be placed in the system\mame folder
;
; System Specific Notes:
; Microsoft MSX/MSX2: Launch an MSX game and in the core options, set the console to be an MSX2 and it will play both just fine.
; Nintendo Famicom Disk System - Requires disksys.rom be placed in the folder you define as system_directory in the RetroArch's cfg.
; Sega CD - Requires "bios_CD_E.bin", "bios_CD_J.bin", "bios_CD_U.bin" all be placed in the folder you define as system_directory in the RetroArch's cfg.
; Super Nintendo Entertainment System - requires split all 10 dsp# & st### roms all be placed in the folder you define as system_directory in the RetroArch's cfg. Many games, like Super Mario Kart require these.
; NEC TurboGrafx-CD (using pce fast core) - Requires "syscard3.pce" be placed in the folder you define as system_directory in the RetroArch's cfg.
; NEC TurboGrafx-CD (using MAME core)
;   - You'll need to update a couple mame specific options in the Retroarch core options file to get it to boot from the cli. These should probably be updated automagically by the module. Turning softlists off, but might not need to.
;       mame_boot_from_cli = "enabled"
;       mame_softlists_enable = "disabled"
;       mame_softlists_auto_media = "disabled"
; - Requires hash folder from MAME/MESS/UME, either from the source or release package. Save this in the system_directory you've defined for RetroArch. Something like \RetroArch\system\mame\hash\
; - Requires the CD bios file(s) saved in the mame bios folder you've defined. Usually \RetroArch\system\mame\bios\
; For PC Engine-CD you'll need the file "[cd] cd-rom system (japan) (v2.1).pce" zipped as cdsys.zip and saved in a pce subfolder in your bios path, so \RetroArch\system\mame\bios\pce\cdsys.zip
; For PC Engine SuperGrafx-CD you'll need the file "[cd] super cd-rom system (japan) (v3.0).pce" zipped as scdsys.zip and saved in a pce subfolder in your bios path, so \RetroArch\system\mame\bios\pce\scdsys.zip
; For TurboGrafx-CD you'll need the file "[cd] turbografx cd system card (usa) (v2.0).pce" zipped as cdsys.zip and saved in a tg16 subfolder in your bios path, so \RetroArch\system\mame\bios\tg16\cdsys.zip
; For TurboDuo you'll need the file "[cd] turbografx cd super system card (usa) (v3.0).pce" zipped as scdsys.zip and saved in a tg16 subfolder in your bios path, so \RetroArch\system\mame\bios\tg16\scdsys.zip
; Nintendo Super Game Boy - Set the Module setting in RocketLauncherUI SuperGameBoy to true to enable a system or only a rom to use SGB mode. This is not needed if your systemName is set to the official name of "Nintendo Super Game Boy". Requires "sgb.boot.rom" and "Super Game Boy (World).sfc" to be placed in the folder you define as system_directory in the RetroArch's cfg. This is needed if you want to use Super game boy mode and color palettes. Also requires using the latest bsnes core. Not all games support SGB mode.
; MAME: The nag screen patch has been removed from the MAME core as of some point in March. We will be investigating our options for this. For MAME-based systems, make sure to set 7z use to false as MAME needs zip files.
; Sony PSP/PlayStation Minis: To avoid the dialog box complaining about ppge_atlas.zim, download it from https://github.com/libretro/libretro-ppsspp/blob/master/assets/ppge_atlas.zim and place it in your Retroarch/system/PPSSPP/ directory.
;----------------------------------------------------------------------------
StartModule()
BezelGUI()
FadeInStart()

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

; Here we define all supported systems for this module. This object controls how the module reacts to different systems. RetroArch can play a lot of systems, but needs to know what system you want to run, so this module has to adapt.
; 1 - Official System Name in RocketLauncher
; 2 - Short name used only for easy referencing within module
; 3 - Default core
; 4 - The system ID MAME core recognizes
RLLog.Debug("Module - Started building the " . MEmu . " object")
mTypeVar:="
( LTrim
AAE|LibRetro_AAE|mame_libretro
Acorn BBC Micro|LibRetro_BBCB|mess_libretro|bbcb
Amstrad CPC|LibRetro_CPC|mess_libretro|cpc464
Amstrad GX4000|LibRetro_GX4K|mess_libretro|gx4000
APF Imagination Machine|LibRetro_APF|mess_libretro|apfimag
Apple IIGS|LibRetro_AIIGS|mess_libretro|apple2gs
Applied Technology MicroBee|LibRetro_MBEE|mess_libretro|mbeeic
Atari 2600|LibRetro_2600|stella_libretro|a2600
Atari 5200|LibRetro_5200|mess_libretro|a5200
Atari 7800|LibRetro_7800|prosystem_libretro|a7800
Atari 8-Bit|LibRetro_ATARI8|mess_libretro|a800
Atari Classics|LibRetro_ACLS|mame_libretro
Atari Jaguar|LibRetro_JAG|virtualjaguar_libretro|jaguar
Atari Lynx|LibRetro_LYNX|handy_libretro|lynx
Atari ST|LibRetro_ST|hatari_libretro
Atari XEGS|LibRetro_XEGS|mess_libretro|xegs
        Bally Astrocade|LibRetro_BAST|mess_libretro|astrocde
Bandai Gundam RX-78|LibRetro_BGRX|mess_libretro|rx78
Bandai Super Vision 8000|LibRetro_SV8K|mess_libretro|sv8000
Bandai Wonderswan|LibRetro_WSAN|mednafen_wswan_libretro|wswan
Bandai Wonderswan Color|LibRetro_WSANC|mednafen_wswan_libretro|wscolor
Benesse Pocket Challenge V2|LibRetro_BPC|mednafen_wswan_libretro
        Canon X07|LibRetro_CX07|mess_libretro|x07
Capcom Classics|LibRetro_CAPC|mame_libretro
Capcom Play System|LibRetro_CPS1|fba_cores_cps1_libretro
Capcom Play System II|LibRetro_CPS2|fba_cores_cps2_libretro
Capcom Play System III|LibRetro_CPS3|mame_libretro
Casio PV-1000|LibRetro_CAS1K|mess_libretro|pv1000
Casio PV-2000|LibRetro_CAS2K|mess_libretro|pv2000
Cave|LibRetro_CAVE|mame_libretro
Coleco ADAM|LibRetro_ADAM|mess_libretro|adam
ColecoVision|LibRetro_COLEC|mess_libretro|coleco
Commodore Amiga|LibRetro_PUAE|puae_libretro
Commodore Max Machine|LibRetro_CMAX|mess_libretro|vic10
Creatronic Mega Duck|LibRetro_DUCK|mess_libretro|megaduck
Data East Classics|LibRetro_DATA|mame_libretro
Dragon Data Dragon|LibRetro_DRAG64|mess_libretro|dragon64
Elektronika BK|LibRetro_EBK|mess_libretro|bk0010
Elektronska Industrija Pecom 64|LibRetro_P64|mess_libretro|pecom64
Emerson Arcadia 2001|LibRetro_A2001|mess_libretro|arcadia
Entex Adventure Vision|LibRetro_AVISION|mess_libretro|advision
Epoch Game Pocket Computer|LibRetro_GPCKET|mess_libretro|gamepock
Epoch Super Cassette Vision|LibRetro_SCV|mess_libretro|scv
Exidy Sorcerer|LibRetro_SORCR|mess_libretro|sorcerer
Fairchild Channel F|LibRetro_CHANF|mess_libretro|channelf
Final Burn Alpha|LibRetro_FBA|fb_alpha_libretro
Funtech Super Acan|LibRetro_SACAN|mess_libretro|supracan
GamePark 32|LibRetro_GP32|mame_libretro|gp32
GCE Vectrex|LibRetro_VECTX|mess_libretro|vectrex
Hartung Game Master|LibRetro_GMASTR|mess_libretro|gmaster
Interton VC 4000|LibRetro_VC4K|mess_libretro|vc4000
Irem Classics|LibRetro_IREM|mame_libretro
JungleTac Sport Vii|LibRetro_SPORTV|mess_libretro|vii
Konami Classics|LibRetro_KONC|mame_libretro
Magnavox Odyssey 2|LibRetro_ODYS2|mess_libretro|odyssey2
MAME|LibRetro_MAME|mame_libretro|mame
Matra & Hachette Alice|LibRetro_ALICE|mess_libretro|alice32
Mattel HyperScan|LibRetro_SCAN|mame_libretro|hyprscan
        Mattel Aquarius|LibRetro_AQUA|mess_libretro|aquarius
Mattel Intellivision|LibRetro_INTV|mess_libretro|intv
        MGT Sam Coupe|LibRetro_SAMCP|mess_libretro|
Microsoft MS-DOS|LibRetro_MSDOS|dosbox_libretro
Microsoft MSX|LibRetro_MSX|bluemsx_libretro
Microsoft MSX2|LibRetro_MSX2|bluemsx_libretro
Microsoft Windows 3.x|LibRetro_WIN3X|dosbox_libretro
Midway Classics|LibRetro_MIDC|mame_libretro
M&D Monon Color|LibRetro_MDMC|mame_libretro|mononcol
        Namco Classics|LibRetro_NAMC|mame_libretro
Namco System 22|LibRetro_NAM2|mame_libretro
NEC PC Engine|LibRetro_PCE|mednafen_pce_fast_libretro|pce,cart
NEC PC Engine CD|LibRetro_PCECD|mednafen_pce_fast_libretro|pce,cdrom
NEC PC-FX|LibRetro_PCFX|mednafen_pcfx_libretro|pcfx
NEC SuperGrafx|LibRetro_SGFX|mednafen_supergrafx_libretro|sgx,cart
NEC TurboGrafx-16|LibRetro_TG16|mednafen_pce_fast_libretro|tg16,cart
NEC TurboGrafx-CD|LibRetro_TGCD|mednafen_pce_fast_libretro|tg16,cdrom
Nintendo 64|LibRetro_N64|parallel_n64_libretro|n64
Nintendo 64DD|LibRetro_N64|mupen64plus_libretro
Nintendo Arcade Systems|LibRetro_NINARC|mame_libretro
Nintendo Classics|LibRetro_NINC|mame_libretro
Nintendo DS|LibRetro_DS|desmume_libretro
Nintendo Entertainment System|LibRetro_NES|nestopia_libretro|nes
Nintendo Famicom|LibRetro_NFAM|nestopia_libretro
Nintendo Famicom Disk System|LibRetro_NFDS|nestopia_libretro|famicom
Nintendo Game Boy|LibRetro_GB|gambatte_libretro|gameboy
Nintendo Game Boy Advance|LibRetro_GBA|vba_next_libretro|gba
Nintendo Game Boy Color|LibRetro_GBC|gambatte_libretro|gbcolor
Nintendo Game Boy Japan|LibRetro_GBJ|gambatte_libretro|gameboy
Nintendo Game & Watch|LibRetro_GW|gw_libretro
Nintendo Pokemon Mini|LibRetro_POKE|mess_libretro|pokemini
Nintendo Satellaview|LibRetro_NSFS|snes9x_libretro
Nintendo SuFami Turbo|LibRetro_NSFST|snes9x_libretro
Nintendo Super Famicom|LibRetro_NSF|bsnes_balanced_libretro
Nintendo Super Game Boy|LibRetro_SGB|bsnes_balanced_libretro
Nintendo Virtual Boy|LibRetro_NVB|mednafen_vb_libretro|vboy
Othello Multivision|LibRetro_OTHO|genesis_plus_gx_libretro
Panasonic 3DO|LibRetro_3DO|4do_libretro
Philips CD-i|LibRetro_CDI|mess_libretro|cdimono1
Philips Videopac|LibRetro_PVID|mess_libretro|videopac
RCA Studio II|LibRetro_STUD2|mess_libretro|studio2
Samsung Gamboy|LibRetro_SAMG|genesis_plus_gx_libretro|sms
        SCUMMVM|LibRetro_SCUMM|scummvm_libretro
Sega 32X|LibRetro_32X|picodrive_libretro|32x
Sega CD|LibRetro_SCD|genesis_plus_gx_libretro|segacd
Sega Classics|LibRetro_SEGC|mame_libretro
Sega Dreamcast|LibRetro_DCAST|reicast_libretro
Sega Game Gear|LibRetro_GG|genesis_plus_gx_libretro|gamegear
Sega Genesis|LibRetro_GEN|genesis_plus_gx_libretro|genesis
Sega Mark III|Libretro_SM3|genesis_plus_gx_libretro
Sega Master System|LibRetro_SMS|genesis_plus_gx_libretro|sms
Sega Mega Drive|LibRetro_GEN|genesis_plus_gx_libretro|megadriv
Sega Mega Drive 32X|LibRetro_MD32X|picodrive_libretro
Sega Meganet|LibRetro_GEN|genesis_plus_gx_libretro|genesis
Sega Nomad|LibRetro_GEN|genesis_plus_gx_libretro|genesis
Sega Pico|LibRetro_PICO|picodrive_libretro
Sega Saturn|LibRetro_SAT|yabause_libretro|saturn
Sega Saturn Japan|LibRetro_SAT|yabause_libretro|saturnjp
Sega SC-3000|LibRetro_SC3K|mess_libretro|sc3000
Sega SG-1000|LibRetro_SG1K|genesis_plus_gx_libretro
Sega ST-V|LibRetro_STV|kronos_libretro|stvbios
Sega VMU|LibRetro_SVMU|mess_libretro|svmu
Sharp X1|LibRetro_SX1|mess_libretro|x1
Sinclair ZX Spectrum|LibRetro_SPECZX|fuse_libretro|spectrum
SNK Classics|LibRetro_SNKC|mame_libretro
SNK Neo Geo|LibRetro_NEO|fb_alpha_libretro
SNK Neo Geo AES|LibRetro_NEOAES|mame_libretro|aes
SNK Neo Geo CD|LibRetro_NEOCD|mess_libretro|neocdz
SNK Neo Geo MVS|LibRetro_NEOMVS|mame_libretro
SNK Neo Geo Pocket|LibRetro_NGP|mednafen_ngp_libretro|ngp
SNK Neo Geo Pocket Color|LibRetro_NGPC|mednafen_ngp_libretro|ngpc
Sony PlayStation|LibRetro_PSX|mednafen_psx_libretro|psu
Sony PlayStation Minis|LibRetro_PSXMIN|ppsspp_libretro
Sony PocketStation|LibRetro_POCKS|mess_libretro|pockstat
Sony PSP|LibRetro_PSP|ppsspp_libretro
Sony PSP Minis|LibRetro_PSP|ppsspp_libretro
Sord M5|LibRetro_SORD|mess_libretro|m5
Spectravideo|LibRetro_SV328|mess_libretro|svi328n
Super Nintendo Entertainment System|LibRetro_SNES|bsnes_balanced_libretro|snes
Taito Classics|LibRetro_TAIC|mame_libretro
Tandy TRS-80 Color Computer|LibRetro_TRS80|mame_libretro|coco3
Technos|LibRetro_TECHN|mame_libretro
Texas Instruments TI 99-4A|LibRetro_TI99|mess_libretro|ti99_4a
Thomson MO5|LibRetro_MO5|mess_libretro|mo5
Thomson TO7|LibRetro_TO7|mess_libretro|to7
Tiger Game.com|LibRetro_TCOM|mess_libretro|gamecom
Tiki-100|LibRetro_TIKI|mess_libretro|kontiki
Tomy Tutor|LibRetro_TOMY|mess_libretro|tutor
VTech CreatiVision|LibRetro_VTECH|mess_libretro|crvision
Watara Supervision|LibRetro_SUPRV|mess_libretro|svision
Williams Classics|LibRetro_WILLS|mame_libretro
)"
mType := Object()
Loop, Parse, mTypeVar, `n, `r
{
obj := {}
Loop, Parse, A_LoopField, |
{
If (A_Index = 1)
obj.System := A_LoopField
Else If (A_Index = 2)
obj.ID := A_LoopField
Else If (A_Index = 3)
obj.Core := A_LoopField
Else { ; 4
StringSplit, tmp, A_LoopField, `,
obj.MAMEID := tmp1
obj.MAMEMedia := tmp2
}
}
mType.Insert(obj["System"], obj)
}
RLLog.Debug("Module - Finished building the " . MEmu . " object")
; For easier use throughout the module
retroSystem := mType[systemName].System
retroID := mType[systemName].ID
retroCore := mType[systemName].Core
retroMAMEID := mType[systemName].MAMEID
retroMAMEMedia := mType[systemName].MAMEMedia
RLLog.Info("Module - Using these system variables:")
RLLog.Info("Module - retroSystem: " . retroSystem)
RLLog.Info("Module - retroID: " . retroID)
RLLog.Info("Module - retroCore: " . retroCore)
RLLog.Info("Module - retroMAMEID: " . retroMAMEID)
RLLog.Info("Module - retroMAMEMedia: " . retroMAMEMedia)
If !retroSystem
ScriptError("Your systemName is: " . systemName . "`nIt is not one of the known supported systems for this " . MEmu . " module: " . moduleName)
If !retroCore
ScriptError("Your Core ID is: " . retroID . "`nCould not find a default core to use. Please update the module with a default core.")

Fullscreen := moduleIni.Read("Settings", "Fullscreen","true",,1)
configFolder := moduleIni.Read("Settings", "ConfigFolder",emuPath . "\config",,1)
mameRomPath := moduleIni.Read("MAME", "BIOS_Roms_Folder",,,1)
mameHideNag := If moduleIni.Read("MAME", "Hide_Nag_Screen","false",,1) = "true" ? "enabled" : "disabled"
mameHideInfo := If moduleIni.Read("MAME", "Hide_Info_Screen","false",,1) = "true" ? "enabled" : "disabled"
mameHideWarn := If moduleIni.Read("MAME", "Hide_Warning_Screen","false",,1) = "true" ? "enabled" : "disabled"
hideConsole := moduleIni.Read("Settings", "HideConsole","true",,1)
ejectToggleKey := moduleIni.Read("Settings", "Eject_Toggle_Key",,,1)
nextDiskKey := moduleIni.Read("Settings", "Next_Disk_Key",,,1)
prevDiskKey := moduleIni.Read("Settings", "Previous_Disk_Key",,,1)
core := moduleIni.Read(romName . "|" . systemName, "LibRetro_Core",retroCore,,1)
superGB := moduleIni.Read(romName . "|" . systemName, "SuperGameBoy","false",,1)
enableNetworkPlay := moduleIni.Read(romName . "|Network", "Enable_Network_Play","false",,1)
overlay := moduleIni.Read(romName . "|" . systemName, "Overlay",,,1)
videoShader := moduleIni.Read(romName . "|" . systemName, "VideoShader",,,1)
aspectRatioIndex := moduleIni.Read(romName . "|" . systemName, "AspectRatioIndex",,,1)
customViewportWidth := moduleIni.Read(romName . "|" . systemName, "CustomViewportWidth",,,1)
customViewportHeight := moduleIni.Read(romName . "|" . systemName, "CustomViewportHeight",,,1)
customViewportX := moduleIni.Read(romName . "|" . systemName, "CustomViewportX",,,1)
customViewportY := moduleIni.Read(romName . "|" . systemName, "CustomViewportY",,,1)
stretchToFillBezel := moduleIni.Read(romName . "|" . systemName, "StretchToFillBezel","false",,1)
rotation := moduleIni.Read(romName . "|" . systemName, "Rotation",0,,1)
cropOverscan := moduleIni.Read(romName . "|" . systemName, "CropOverscan",,,1)
threadedVideo := moduleIni.Read(romName . "|" . systemName, "ThreadedVideo",,,1)
vSync := moduleIni.Read(romName . "|" . systemName, "VSync",,,1)
integerScale := moduleIni.Read(romName . "|" . systemName, "IntegerScale",,,1)
configurationPerCore := moduleIni.Read(romName . "|" . systemName, "ConfigurationPerCore","false",,1)

If (StringUtils.Contains(core, "^(mame|mess|ume)") && !retroMAMEID) {
retroMAMEID := "mame" ; set all systems that use a mame core to the default mame ID so any system name is supported
RLLog.Warning("Module - Setting MAMEID to default ""mame"" for """ . retroSystem . """")
}

configFolder := RLObject.getFullPathFromRelative(rlPath,configFolder)
mameRomPath := If mameRomPath ? RLObject.getFullPathFromRelative(rlPath,mameRomPath) : romPath
overlay := RLObject.getFullPathFromRelative(rlPath,overlay)
videoShader := RLObject.getFullPathFromRelative(rlPath,videoShader)
rotateBezel := false

configFolder := new Folder(configFolder)

If (retroID = "LibRetro_SGB" || superGB = "true") ; if system or rom is set to use Super Game Boy
{ superGB := "true" ; setting this just in case it's false and the system is Nintendo Super Game Boy
sgbRomPath := CheckFile(emuPath . "\system\Super Game Boy (World).sfc","Could not find the rom required for Super Game Boy support. Make sure the rom ""Super Game Boy (World).sfc"" is located in: " . emuPath . "\system")
CheckFile(emuPath . "\system\sgb.boot.rom","Could not find the bios required for Super Game Boy support. Make sure the bios ""sgb.boot.rom"" is located in: " . emuPath . "\system")
retroID := "LibRetro_SGB" ; switching to Super Game Boy mode
retroSystem := "Nintendo Super Game Boy"
}

; Find the dll for this system
libDll := CheckFile(emuPath . "\cores\" . core . ".dll", "Your " . retroID . " dll is set to " . core . " but could not locate this file:`n" . emuPath . "\cores\" . core . ".dll")

; Find the cfg file to use
If !configFolder.Exist()
ScriptError("You need to make sure ""ConfigFolder"" is pointing to your RetroArch config folder. By default it is looking here: """ . configFolder.FilePath . """")
globalRetroCfg := emuPath . "\retroarch.cfg"
systemRetroCfg := configFolder.FilePath . "\" . retroSystem . ".cfg"
coreRetroCfg := configFolder.FilePath . "\" . core . ".dll.cfg"
RLLog.Info("Module - Global cfg should be: " . globalRetroCfg)
RLLog.Info("Module - System cfg should be: " . systemRetroCfg)
RLLog.Info("Module - Core cfg should be: " . coreRetroCfg)
foundCfg := ""

systemRetroCfg := new File(systemRetroCfg)
coreRetroCfg := new File(coreRetroCfg)
globalRetroCfg := new File(globalRetroCfg)

If systemRetroCfg.Exist() { ; check for system cfg first
retroCFGFile := systemRetroCfg
foundCfg := 1
RLLog.Info("Module - Found a System cfg!")
} Else If coreRetroCfg.Exist() { ; 2nd option is a core config
retroCFGFile := coreRetroCfg
foundCfg := 1
RLLog.Info("Module - Found a Core cfg!")
} Else If globalRetroCfg.Exist() { ; 3rd is global cfg
retroCFGFile := globalRetroCfg
foundCfg := 1
RLLog.Info("Module - Found a Global cfg!")
}
If foundCfg {
RLLog.Info("Module - " . MEmu . " is using " . retroCFGFile.FileFullPath . " as its config file.")
retroCFG := LoadProperties(retroCFGFile.FileFullPath)
} Else
RLLog.Warning("Module - Could not find a cfg file to update settings. RetroArch will make one for you.")

If StringUtils.Contains(rotation,"1|3") ; use vertical bezel if RA rotation is set to 90 or 270 degrees
rotateBezel := true

If StringUtils.Contains(retroID, "LibRetro_NFDS|LibRetro_SCD|LibRetro_TGCD|LibRetro_PCECD|LibRetro_PCFX") { ; these systems require the retroarch settings to be read
retroSysDir := ReadProperty(retroCFG,"system_directory") ; read value
retroSysDir := ConvertRetroCFGKey(retroSysDir) ; remove dbl quotes
retroSysDirLeft := StringUtils.Left(retroSysDir, 2)
If (retroSysDirLeft = ":\") { ; if retroarch is set to use a default folder
retroSysDir := StringUtils.TrimLeft(retroSysDir, 1)
RLLog.Info("Module - RetroArch is using a relative system path: """ . retroSysDir . """")
retroSysDir := emuPath . retroSysDir
}
If !retroSysDir
ScriptError("RetroArch requires you to set your system_directory and place bios rom(s) in there for """ . retroSystem . """ to function. Please do this first by running ""retroarch-phoenix.exe"" manually.")
checkForSlash := StringUtils.Right(retroSysDir, 1)
If (checkForSlash = "\") ; check if a backslash is the last character. If it is, remove it, as this is non-standard method to define folders
retroSysDir := StringUtils.TrimRight(retroSysDir, 1)
}

If (StringUtils.Contains(core, "^(mame|mess|ume)")) || (StringUtils.Contains(retroID, "LibRetro_N64|LibRetro_NES|LibRetro_LYNX|LibRetro_PSX")) || (StringUtils.Contains(retroID, "LibRetro_NES") && (StringUtils.Contains(core, "nestopia_libretro"))) { ; these systems will use an ini to store game specific settings
RLLog.Info("Module - Reading / creating system ini for specific settings.")
If !StringUtils.Contains(core, "^(mame|mess|ume)") {
If !SystemModuleIni.Exist()
SystemModuleIni.Append ; create a new blank ini file if one does not exist
}

If (configurationPerCore = "true") {
coreOptionsCFGFile := new File(configFolder.FilePath . "\retroarch-core-options.cfg")
coreOptionsCFGFile.CheckFile("Could not find retroarch-core-options.cfg in retroarch directory: """ . configFolder.FilePath . """")
} Else {
coreOptionsCFGFile := new File(emuPath . "\retroarch-core-options.cfg")
coreOptionsCFGFile.CheckFile("Could not find retroarch-core-options.cfg in retroarch directory: """ . emuPath . """")
}
coreOptionsCFG := LoadProperties(coreOptionsCFGFile.FileFullPath)
If StringUtils.Contains(core, "^(mame|mess|ume)") { ; Set some MAME/MESS/UME core options.
tmpCore := If StringUtils.Contains(core, "mame") ? "mame" : "mess"
WriteProperty(coreOptionsCFG, tmpCore . "_read_config", """enabled""", 1)
WriteProperty(coreOptionsCFG, tmpCore . "_boot_from_cli", """enabled""", 1) ; This needs to be enabled in order to run games with RLauncher
WriteProperty(coreOptionsCFG, tmpCore . "_hide_nagscreen", "" . mameHideNag . "", 1)
WriteProperty(coreOptionsCFG, tmpCore . "_hide_infoscreen", "" . mameHideInfo . "", 1)
WriteProperty(coreOptionsCFG, tmpCore . "_hide_warnings", "" . mameHideWarn . "", 1)
} Else If StringUtils.Contains(retroID, "LibRetro_N64") { ; Nintendo 64
mupenGfx := moduleIni.Read(romName . "|" . systemName, "Mupen_Gfx_Plugin", "auto",,1)
mupenRsp := moduleIni.Read(romName . "|" . systemName, "Mupen_RSP_Plugin", "auto",,1)
mupenCpu := moduleIni.Read(romName . "|" . systemName, "Mupen_CPU_Core", "dynamic_recompiler",,1)
mupenPak1 := moduleIni.Read(romName . "|" . systemName, "Mupen_Pak_1", "memory",,1)
mupenPak2 := moduleIni.Read(romName . "|" . systemName, "Mupen_Pak_2", "memory",,1)
mupenPak3 := moduleIni.Read(romName . "|" . systemName, "Mupen_Pak_3", "memory",,1)
mupenPak4 := moduleIni.Read(romName . "|" . systemName, "Mupen_Pak_4", "memory",,1)
mupenGfxAccur := moduleIni.Read(romName . "|" . systemName, "Mupen_Gfx_Accuracy", "high",,1)
mupenExpMem := moduleIni.Read(romName . "|" . systemName, "Mupen_Disable_Exp_Memory", "no",,1)
mupenTexturFilt := moduleIni.Read(romName . "|" . systemName, "Mupen_Texture_Filtering", "nearest",,1)
mupenViRefresh := moduleIni.Read(romName . "|" . systemName, "Mupen_VI_Refresh", "2200",,1)
mupenFramerate := moduleIni.Read(romName . "|" . systemName, "Mupen_Framerate", "fullspeed",,1)
mupenResolution := moduleIni.Read(romName . "|" . systemName, "Mupen_Resolution", "640x480",,1)
mupenPolyOffstFctr := moduleIni.Read(romName . "|" . systemName, "Mupen_Polygon_Offset_Factor", "-3.0",,1)
mupenPolyOffstUnts := moduleIni.Read(romName . "|" . systemName, "Mupen_Polygon_Offset_Units", "-3.0",,1)
mupenViOverlay := moduleIni.Read(romName . "|" . systemName, "Mupen_VI_Overlay", "disabled",,1)
mupenAnalogDzone := moduleIni.Read(romName . "|" . systemName, "Mupen_Analog_Deadzone", "15",,1)

WriteProperty(coreOptionsCFG, "mupen64-gfxplugin", mupenGfx, 1)
WriteProperty(coreOptionsCFG, "mupen64-rspplugin", mupenRsp, 1)
WriteProperty(coreOptionsCFG, "mupen64-cpucore", mupenCpu, 1)
WriteProperty(coreOptionsCFG, "mupen64-pak1", mupenPak1, 1)
WriteProperty(coreOptionsCFG, "mupen64-pak2", mupenPak2, 1)
WriteProperty(coreOptionsCFG, "mupen64-pak3", mupenPak3, 1)
WriteProperty(coreOptionsCFG, "mupen64-pak4", mupenPak4, 1)
WriteProperty(coreOptionsCFG, "mupen64-gfxplugin-accuracy", mupenGfxAccur, 1)
WriteProperty(coreOptionsCFG, "mupen64-disableexpmem", mupenExpMem, 1)
WriteProperty(coreOptionsCFG, "mupen64-filtering", mupenTexturFilt, 1)
WriteProperty(coreOptionsCFG, "mupen64-virefresh", mupenViRefresh, 1)
WriteProperty(coreOptionsCFG, "mupen64-framerate", mupenFramerate, 1)
WriteProperty(coreOptionsCFG, "mupen64-screensize", mupenResolution, 1)
WriteProperty(coreOptionsCFG, "mupen64-polyoffset-factor", mupenPolyOffstFctr, 1)
WriteProperty(coreOptionsCFG, "mupen64-polyoffset-units", mupenPolyOffstUnts, 1)
WriteProperty(coreOptionsCFG, "mupen64-angrylion-vioverlay", mupenViOverlay, 1)
WriteProperty(coreOptionsCFG, "mupen64-astick-deadzone", mupenAnalogDzone, 1)
} Else If StringUtils.Contains(retroID, "LibRetro_NES") { ; these systems will use an ini to store game specific settings
If StringUtils.Contains(core, "nestopia_libretro") { ; Nestopia
nestopiaBlargg := moduleIni.Read(romName . "|Nestopia", "Nestopia_Blargg_NTSC_Filter", "disabled",,1)
nestopiaPalette := moduleIni.Read(romName . "|Nestopia", "Nestopia_Palette", "canonical",,1)
nestopiaNoSprteLimit := moduleIni.Read(romName . "|Nestopia", "Nestopia_Remove_Sprites_Limit", "disabled",,1)
WriteProperty(coreOptionsCFG, "nestopia_blargg_ntsc_filter", nestopiaBlargg, 1)
WriteProperty(coreOptionsCFG, "nestopia_palette", nestopiaPalette, 1)
WriteProperty(coreOptionsCFG, "nestopia_nospritelimit", nestopiaNoSprteLimit, 1)
}
} Else If StringUtils.Contains(retroID, "LibRetro_LYNX") { ; Atari Lynx
If StringUtils.Contains(core, "handy_libretro") {   ; Handy
handyRotate := moduleIni.Read(romName . "|" . systemName, "Handy_Rotation", "None",,1)
If StringUtils.Contains(handyRotate, "240") or StringUtils.Contains(handyRotate, "90")
rotateBezel := true
WriteProperty(coreOptionsCFG, "handy_rot", handyRotate, 1)
}
} Else If StringUtils.Contains(retroID, "LibRetro_PSX") { ; Sony PlayStation
psxCdImageCache := moduleIni.Read(romName . "|" . systemName, "PSX_CD_Image_Cache", """enabled""",,1)
psxMemcardHandling := moduleIni.Read(romName . "|" . systemName, "PSX_Memcard_Handling", """libretro""",,1)
psxDualshockAnalogToggle := moduleIni.Read(romName . "|" . systemName, "PSX_Dualshock_Analog_Toggle", """enabled""",,1)
WriteProperty(coreOptionsCFG, "beetle_psx_cdimagecache", psxCdImageCache, 1)
WriteProperty(coreOptionsCFG, "beetle_psx_use_mednafen_memcard0_method", psxMemcardHandling, 1)
WriteProperty(coreOptionsCFG, "beetle_psx_analog_toggle", psxDualshockAnalogToggle, 1)
}
SaveProperties(coreOptionsCFGFile.FileFullPath, coreOptionsCFG)
}

hideEmuObj := Object(emuConsoleWindow,0,emuPrimaryWindow,1)
7z(romPath, romName, romExtension, sevenZExtractPath)

mgM3UFile := new File(romPath . "\" . romTable[1,4] . ".m3u")

mgRomExtensions := "cue|iso|ccd"
mgValidExtension := false

Loop, Parse, mgRomExtensions, |
If (romExtension = "." . A_LoopField)
mgValidExtension := true

If (StringUtils.Contains(retroID, "LibRetro_PSX") && romTable.MaxIndex() && mgValidExtension) { ; See if MultiGame table is populated
m3uRomIndex := Object()
mgType := romTable[1,6] . " "
mgMaxIndex := romTable.MaxIndex()
mgRomIndex := 0

If mgM3UFile.Exist()
mgM3UFile.Delete()

Loop % mgMaxIndex
{
If (romTable[A_Index, 3] = romName) {
tempType := romTable[A_Index, 5]
mgRomIndex := StringUtils.TrimLeft(tempType, StringUtils.StringLength(mgType))
RLLog.Info("Found rom index in rom set in romTable: " . mgRomIndex)
Break
}
}

If (mgRomIndex > 0) {
tempRomIndex := mgRomIndex
Loop % mgMaxIndex
{
mgTypeIndex := mgType . tempRomIndex
m3uRomIndex.Insert(tempRomIndex)

Loop % mgMaxIndex
{
If (romTable[A_Index, 5] = mgTypeIndex) {
tempRomPath := romTable[A_Index, 1]
mgM3UFile.Append(tempRomPath . "`n")
RLLog.Info("Module - Appending rom path to m3u: " . tempRomPath)
Break
}
}

If (tempRomIndex < mgMaxIndex)
tempRomIndex++
Else
tempRomIndex := 1
}
}
}

; MAME/MESS/UME core options
MAMEParam1 := ""
MAMEParam2 := ""
MAMEParam3 := ""
If StringUtils.Contains(core, "^(mame|mess|ume)") { ; if a MAME/MESS/UME core is used
If !retroMAMEID
ScriptError("Your systemName is: " . systemName . "`nIt is not one of the known supported systems for the MAME/MESS/UME LibRetro core")
Else
RLLog.Info("Module - MAME/MESS/UME mode using a known ident: " . retroMAMEID)

If !mameRomPath
ScriptError("Please set the RetroArch module setting ""BIOS_Roms_Folder"" to the folder that contains your MAME/MESS/UME BIOS roms to use with RetroArch.")
If (retroMAMEID = "mame") { ; want this for arcade mame only
RLLog.Info("Module - Retroarch MAME/MESS/UME Arcade mode enabled")
fullRomPath := " """ . romPath . "\" . romName . romExtension . """"
} Else {
RLLog.Info("Module - Retroarch MAME/MESS/UME Console/PC mode enabled")
MAMEParam1 := ""
MAMEParam2 := " -rompath \""" . mameRomPath . "\"""

; If we already have a media type, then use it.
If (StringUtils.Contains(retroMAMEID, "tg16|pce") && retroMAMEMedia = "cart") {
;MAMEParam3 := " -cart \" . """" . romPath . "\" . romName . romExtension . "\" . """"
MAMEParam3 := " -cart \""" . romPath . "\" . romName . romExtension . "\"""""
; TODO: This needs a better way to handle the cdrom bios files, in my opinion. As it is, there's no clean way to pick between the v2.00 or v3.00 bios.
;       Defaulting to the TurboDuo cdrom bios since it will play 2.00 or 3.00 games.
} Else If (StringUtils.Contains(retroMAMEID, "tg16|pce") && retroMAMEMedia = "cdrom") {
;MAMEParam3 := " -cart cdsys -cdrm \" . """" . romPath . "\" . romName . romExtension . "\" . """"
MAMEParam3 := " -cart scdsys -cdrm \""" . romPath . "\" . romName . romExtension . "\"""""
} Else {
; Build a key/value object containing the different MAMEParam3 choices
MAMEP3 := Object("alice32","cass1","gp32","memc","cpc464","cass","spectrum","cass","dragon64","cass","cdimono1","cdrom","bk0010","cass","neocd","cdrom","neocdz","cdrom","saturn","cdrm","saturnjp","cdrm","svi328n","cass","pecom64","cass","psu","cdrm","svmu","quik","gamecom","cart1","mbeeic","quik1")
MAMEParam3 := MAMEP3[retroMAMEID] ; search object for the retroMAMEID pair
MAMEParam3 := " -" . (If MAMEParam3 ? MAMEParam3 : "cart") . " \" . """" . romPath . "\" . romName . romExtension . "\" . """"
}

If (retroMAMEID = "mbeeic") ; Applied Technology MicroBee
{ microbeeModel := IniReadCheck(MAMESysINI, romName, "MicroBee_Model","mbeeic",,1)
If microbeeModel not in mbee,mbeeic,mbeepc,mbeepc85,mbee56
ScriptError("This is not a known MicroBee model value: " . microbeeModel)
Else If (microbeeModel != "mbeeic")
retroMAMEID := microbeeModel
If romExtension in .mwb,.com,.bee
mediaDeviceType := "quik1"
Else If romExtension in .wav,.tap
mediaDeviceType := "cass"
Else If romExtension in .rom
mediaDeviceType := "cart"
Else If romExtension in .dsk
mediaDeviceType := "flop1"
Else ; .bin format
mediaDeviceType := "quik2"
MAMEParam3 := " -" . mediaDeviceType . " \" . """" . romPath . "\" . romName . romExtension . "\" . """"
}
fullRomPath := MAMEParam1 . MAMEParam2 . MAMEParam3
}
} Else If (superGB = "true") {
RLLog.Info("Module - Retroarch Super Game Boy mode enabled")
fullRomPath := " """ . sgbRomPath . """ --subsystem sgb """ . romPath . "\" . romName . romExtension . """"
} Else {
RLLog.Info("Module - Retroarch standard mode enabled")
fullRomPath := " """ . romPath . "\" . romName . romExtension . """"
}

If (retroID = "LibRetro_NFDS") ; Nintendo Famicom Disk System
{ disksysRom := new File(retroSysDir . "\disksys.rom")
If !disksysRom.Exist()
ScriptError("RetroArch requires ""disksys.rom"" for " . retroSystem . " but could not find it in your system_directory: """ . retroSysDir . """")
} Else If (retroID = "LibRetro_SCD") ; Sega CD
{ If !StringUtils.Contains(romExtension, "\.bin|\.cue|\.iso")
ScriptError("RetroArch only supports Sega CD games in bin|cue|iso format. It does not support:`n" . romExtension)
biosCDEBin := new File(retroSysDir . "\bios_CD_E.bin")
biosCDUBin := new File(retroSysDir . "\bios_CD_U.bin")
biosCDJBin := new File(retroSysDir . "\bios_CD_J.bin")
If !biosCDEBin.Exist()
ScriptError("RetroArch requires ""bios_CD_E.bin"" for " . retroSystem . " but could not find it in your system_directory: """ . retroSysDir . """")
If !biosCDUBin.Exist()
ScriptError("RetroArch requires ""bios_CD_U.bin"" for " . retroSystem . " but could not find it in your system_directory: """ . retroSysDir . """")
If !biosCDJBin.Exist()
ScriptError("RetroArch requires ""bios_CD_J.bin"" for " . retroSystem . " but could not find it in your system_directory: """ . retroSysDir . """")
} Else If StringUtils.Contains(retroID,"LibRetro_PCECD|LibRetro_TGCD") ; NEC PC Engine-CD and NEC TurboGrafx-CD
{ If !StringUtils.Contains(romExtension,"\.chd")
ScriptError("RetroArch only supports " . retroSystem . " games in chd format. It does not support:`n" . romExtension)
sysCard3Pce := new File(retroSysDir . "\syscard3.pce")
If !sysCard3Pce.Exist()
ScriptError("RetroArch requires ""syscard3.pce"" for " . retroSystem . " but could not find it in your system_directory: """ . retroSysDir . """")
} Else If (retroID = "LibRetro_PCFX")
{ If !StringUtils.Contains(romExtension,"\.chd")
ScriptError("RetroArch only supports " . retroSystem . " games in chd format. It does not support:`n" . romExtension)
pcfxBios := new File(retroSysDir . "\pcfx.bios")
If !pcfxBios.Exist()
ScriptError("RetroArch requires ""pcfx.bin"" for " . retroSystem . " but could not find it in your system_directory: """ . retroSysDir . """")
} Else If (retroID = "LibRetro_SCUMM")
{
scummFile := new File(romPath . "\" . romName . ".scummvm")
If !scummFile.Exist()
scummFile.Append("""" . romName . """")
}

networkSession := ""
If (enableNetworkPlay = "true") {
RLLog.Info("Module - Network Multi-Player is an available option for " . dbName)

netplayNickname := moduleIni.Read("Network", "NetPlay_Nickname","Player",,1)
getWANIP := moduleIni.Read("Network", "Get_WAN_IP","false",,1)

If (getWANIP = "true")
myPublicIP := GetPublicIP()

RLLog.Warning("Module - CAREFUL WHEN POSTING THIS LOG PUBLICLY AS IT CONTAINS YOUR IP ON THE NEXT LINE")
defaultServerIP := moduleIni.Read("Network", "Default_Server_IP", myPublicIP,,1)
defaultServerPort := moduleIni.Read("Network", "Default_Server_Port",,,1)
lastIP := moduleIni.Read("Network", "Last_IP", defaultServerIP,,1) ; does not need to be on the ISD
lastPort := moduleIni.Read("Network", "Last_Port", defaultServerPort,,1) ; does not need to be on the ISD

mpMenuStatus := MultiPlayerMenu(lastIP,lastPort,networkType,,0)
If (mpMenuStatus = -1) { ; if user exited menu early
RLLog.Warning("Module - Cancelled MultiPlayer Menu. Exiting module.")
ExitModule()
}
If networkSession {
RLLog.Info("Module - Using a Network for " . dbName)
moduleIni.Write(networkPort, "GlobalModuleIni", "Network", "Last_Port")
; msgbox lastIP: %lastIP%`nlastPort: %lastPort%`nnetworkIP: %networkIP%`nnetworkPort: %networkPort%
If (networkType = "client") {
moduleIni.Write(networkIP, "GlobalModuleIni", "Network", "Last_IP") ; Save last used IP and Port for quicker launching next time
netCommand := " -C " . networkIP . " --port " . networkPort . " --nick """ . netplayNickname . """" ; -C = connect as client
} Else { ; server
netCommand := " -H --port " . networkPort . " --nick """ . netplayNickname . """" ; -H = host as server
}
RLLog.Warning("Module - CAREFUL WHEN POSTING THIS LOG PUBLICLY AS IT CONTAINS YOUR IP ON THE NEXT LINE")
RLLog.Info("Module - Starting a network session using the IP """ . networkIP . """ and PORT """ . networkPort . """")
} Else
RLLog.Info("Module - User chose Single Player mode for this session")
}

BezelStart(,,(If rotateBezel ? 1:""))

If foundCfg {
If (stretchToFillBezel = "true" and bezelEnabled = "true" and bezelPath)
{
customViewportWidth := bezelScreenWidth
customViewportHeight := bezelScreenHeight
customViewportX := 0
customViewportY := 0
aspectRatioIndex := 22
RLLog.Info("Stretching viewport to fit bezel")
}

raCfgHasChanges := ""
WriteRetroProperty("input_overlay", overlay)
WriteRetroProperty("video_shader", videoShader)
WriteRetroProperty("aspect_ratio_index", aspectRatioIndex)
WriteRetroProperty("custom_viewport_width", customViewportWidth)
WriteRetroProperty("custom_viewport_height", customViewportHeight)
WriteRetroProperty("custom_viewport_x", customViewportX)
WriteRetroProperty("custom_viewport_y", customViewportY)
WriteRetroProperty("video_rotation", rotation)
WriteRetroProperty("video_crop_overscan", cropOverscan)
WriteRetroProperty("video_threaded", threadedVideo)
WriteRetroProperty("video_vsync", vSync)
WriteRetroProperty("video_scale_integer", integerScale)
WriteRetroProperty("input_disk_eject_toggle", ejectToggleKey)
WriteRetroProperty("input_disk_next", nextDiskKey)
WriteRetroProperty("input_disk_prev", prevDiskKey)
If StringUtils.Contains(retroID, "LibRetro_PSX") {
Loop, 8 ; Loop 8 times for 8 controllers
{ p%A_Index%ControllerType := moduleIni.Read(romName . "|" . systemName, "P" . A_Index . "_Controller_Type", 517,,1)
WriteRetroProperty("input_libretro_device_p" . A_Index, p%A_Index%ControllerType)
}
}

If raCfgHasChanges {
RLLog.Info("Module - Saving changed settings to: """ . retroCFGFile.FileFullPath . """")
SaveProperties(retroCFGFile.FileFullPath, retroCFG)
}
}

fullscreen := If fullscreen = "true" ? " -f" : ""
srmPath := new Folder(emuPath . "\srm\" . retroSystem) ; path for this system's srm files
saveStatePath := new Folder(emuPath . "\save\" . retroSystem) ; path for this system's save state files
retroCFGFileCLI := If foundCfg ? " -c """ . retroCFGFile.FileFullPath . """" : ""

If !srmPath.Exist("folder")
srmPath.CreateDir() ; creating srm dir if it doesn't exist
If !saveStatePath.Exist("folder")
saveStatePath.CreateDir() ; creating save dir if it doesn't exist

HideAppStart(hideEmuObj,hideEmu)

If (StringUtils.Contains(core, "^(mame|mess|ume)") && (retroMAMEID != "mame")) {    ; if a MAME/MESS/UME core is used
primaryExe.Run(" """ . (retroMAMEID ? retroMAMEID : "") . fullRomPath . """ " . fullscreen . retroCFGFileCLI . " -L """ . libDll . """ -s """ . srmPath.FilePath . "\" . romName . ".srm"" -S """ . saveStatePath.FilePath . "\" . romName . ".state""" . netCommand, "Hide")
} Else If (retroID = "LibRetro_SCUMM") {
primaryExe.Run(" """ . scummFile . """" . fullscreen . retroCFGFileCLI . " -L """ . libDll . """ -s """ . srmPath.FilePath . "\" . romName . ".srm"" -S """ . saveStatePath.FilePath . "\" . romName . ".state""" . netCommand, "Hide")
} Else If (retroID = "LibRetro_SGB" || If superGB = "true") { ; For some reason, the order of our command line matters in this particular case.
primaryExe.Run(fullscreen . retroCFGFileCLI . " -L """ . libDll . """ -s """ . srmPath.FilePath . "\" . romName . ".srm"" -S """ . saveStatePath.FilePath . "\" . romName . ".state""" . fullRomPath . netCommand, "Hide")
} Else If mgM3UFile.Exist() {
primaryExe.Run(" """ . mgM3UFile.FileFullPath . """" . fullscreen . retroCFGFileCLI . " -L """ . libDll . """ -s """ . srmPath.FilePath . "\" . romName . ".srm"" -S """ . saveStatePath.FilePath . "\" . romName . ".state""" . netCommand, "Hide")
} Else {
primaryExe.Run(" " . fullRomPath . fullscreen . retroCFGFileCLI . " -L """ . libDll . """ -s """ . srmPath.FilePath . "\" . romName . ".srm"" -S """ . saveStatePath.FilePath . "\" . romName . ".state""" . netCommand, "Hide")
}

mpMenuStatus := ""
If networkSession {
canceledServerWait := false
multiplayerMenuExit := false
TimerUtils.SetTimer("NetworkConnectedCheck", 500)

If (networkType = "server") {
RLLog.Info("Module - Waiting for a client to connect to your server")
mpMenuStatus := MultiPlayerMenu(,,,,,,,,"You are the server. Please wait for your client to connect.")
} Else { ; client
RLLog.Info("Module - Trying to contact the server to establish a connection.")
mpMenuStatus := MultiPlayerMenu(,,,,,,,,"Attempting to connect to the server...")
}

If (mpMenuStatus = -1) { ; if user exited menu early before a client connected
RLLog.Warning("Module - Cancelled waiting for the " . If (networkType = "server") ? "client to connect" : "server to respond" . ". Exiting module.")
If primaryExe.Process("Exist")
primaryExe.Process("Close") ; must close process as the exe is waiting for a client to connect and no window was drawn yet
ExitModule()
} Else { ; blank response from MultiPlayerMenu, exited properly
RLLog.Info("Module - " . If (networkType = "server") ? "Client has connected" : "Connected to the server")
emuPrimaryWindow.Wait()
emuPrimaryWindow.WaitActive()
}
TimerUtils.SetTimer("NetworkConnectedCheck", "Off")
} Else { ; single player
emuPrimaryWindow.Wait()
emuPrimaryWindow.WaitActive()
}

If (hideConsole = "true")
emuConsoleWindow.Set("Transparent", "On") ; makes the console window transparent so you don't see it on exit

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


; Writes new properties into the retroCFG if defined by user
WriteRetroProperty(key,value="") {
If (value != "") {
Global retroCFG,raCfgHasChanges
WriteProperty(retroCFG, key, value,1,1)
raCfgHasChanges := 1
}
}

; Used to convert between RetroArch keys and usable data
ConvertRetroCFGKey(txt,direction="read"){
Global emuPath,RLLog
If (direction = "read")
{ newtxt := StringUtils.TrimLeft(txt,1,0) ; removes the " from the left of the txt
newtxt := StringUtils.TrimRight(newtxt,1,0) ; removes the " from the right of the txt
relativeCheck := StringUtils.SubStr(newtxt,1,1,0)
If StringUtils.Contains(relativeCheck,":",0) { ; if the path contains a ":" then it is a relative path
RLLog.Debug("ConvertRetroCFGKey - " . newtxt . " is a relative path")
newtxt := StringUtils.TrimLeft(newtxt,1,0) ; removes the : from the left of the txt
newtxt := AbsoluteFromRelative(emuPath, "." . newtxt) ; convert relative to absolute
}
If StringUtils.Contains(newtxt,"/",0)
newtxt := StringUtils.Replace(newtxt,"/","\",1,,0) ; replaces all forward slashes with backslashes
} Else If (direction = "write")
{ newtxt := """" . txt . """" ; wraps the txt with ""
If StringUtils.Contains(newtxt,"\\",0)
newtxt := StringUtils.Replace(newtxt,"\","/",1,,0) ; replaces all backslashes with forward slashes
} Else
ScriptError("Not a valid use of ConvertRetroCFGKey. Only ""read"" or ""write"" are supported.")
RLLog.Debug("ConvertRetroCFGKey - Converted " . txt . " to " . newtxt)
Return newtxt
}

MultiGame:
KeyUtils.SetKeyDelay(100)
emuPrimaryWindow.Activate()
KeyUtils.Send("{" . ejectToggleKey . " down}{" . ejectToggleKey . " up}") ; eject disc in Retroarch
If (!mgLastRomIndex) {
mgLastRomIndex := mgRomIndex
}
selectedRomIndex := 0
selectedRomIndex := StringUtils.TrimLeft(selectedRomNum, StringUtils.StringLength(mgType,0))
Loop % mgMaxIndex
{
If (m3uRomIndex[A_index] = mgLastRomIndex) {
tempLastRomIndex := A_index
RLLog.Debug("Module - Last index: " . tempLastRomIndex)
}
If (m3uRomIndex[A_index] = selectedRomIndex) {
tempSelectedRomIndex := A_index
RLLog.Debug("Module - Selected index: " . tempSelectedRomIndex)
}
}
mgNewIndex := tempLastRomIndex - tempSelectedRomIndex
If (mgNewIndex < 0) {
mgNewIndex := mgNewIndex * -1
Loop % mgNewIndex
{
RLLog.Debug("Module - Sending the next disk key: " . nextDiskKey)
KeyUtils.Send("{" . nextDiskKey . " down}{" . nextDiskKey . " up}")
}
} Else If (mgNewIndex > 0) {
Loop % mgNewIndex
{
RLLog.Debug("Module - Sending the previous disk key: " . mgNewIndex)
KeyUtils.Send("{" . prevDiskKey . " down}{" . prevDiskKey . " up}")
}
}
KeyUtils.Send("{" . ejectToggleKey . " down}{" . ejectToggleKey . " up}") ; close disc in Retroarch
mgLastRomIndex := selectedRomIndex
Return

NetworkConnectedCheck:
If clientConnected
multiplayerMenuExit := true
Else If emuPrimaryWindow.Exist() {
RLLog.Info("Module - RetroArch session started, closing the MultiPlayer menu")
multiplayerMenuExit := true
}
Return

CloseProcess:
FadeOutStart()
emuPrimaryWindow.Close()
Return




2/
Reste également la possibilité avec un autre émulateur nullDC-Naomi-r150





Manuel d'utilisation de nullDC v1.0.3

-------------------------

Sommaire :

1. Qu'est-ce que c'est ?

2. Configuration système requise

3. Préparation/Autres prérequis

4. Utilisation

5.1. Menus

5.2. Menus spécifiques aux plugins

6. Jeu en réseau

7. Conseils, problèmes connus et solutions possibles

8. À propos

Informations pour les utilisateurs pressés :

Si vous rencontrez des problèmes pour lancer l'émulateur, consultez les sections 2 et 7.

Pour en savoir plus sur les options de l'émulateur, consultez les sections 4 et 5.

L'émulateur est préconfiguré avec des options qui conviennent à la plupart des utilisateurs, mais

elles ne sont ni les plus précises, ni les plus rapides.

Si vous rencontrez des erreurs sur certains jeux, modifiez les options ou
les plugins.

1. Qu'est-ce que c'est ?

--------------

nullDC est un émulateur Dreamcast basé sur des plugins pour les ordinateurs x86 fonctionnant sous Windows.

-- 2. Configuration système requise

-------------------

Configuration minimale :

- Processeur : Tout processeur compatible SSE1 (AMD Athlon XP et versions ultérieures, Intel Pentium 3 et versions ultérieures)

- Carte graphique : Carte graphique compatible DirectX 9 avec prise en charge des textures projetées.

(GeForce MX, ATI Radeon)

- Mémoire vive : 256 Mo

- Système d’exploitation : Windows 2000/XP/2003

- Redistributable de décembre de DirectX 9c La dernière version disponible à ce jour est

ici :

Programme d’installation en ligne :

http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b
-bc6a-9b6652cd92a3&DisplayLang=en

Programme d’installation hors ligne :

http://www.microsoft.com/downloads/details.aspx?FamilyID=c1367bc3-4676-481a
-bfaa-5c15d1d7199d&DisplayLang=en

- Environnements d’exécution Visual C++ 2005 Service Pack 1. Ils sont disponibles ici :

http://www.microsoft.com/downloads/details.aspx?familyid=200B2FD9-AE1A-4A14
-984D-389C36F85647&displaylang=en

- WinPcap. Il est nécessaire pour l'émulation de modem et n'est pas requis autrement.

Il est disponible ici :

http://www.winpcap.org/install/default.htm

Les exigences ci-dessus sont considérées comme le strict minimum pour exécuter

l'émulateur avec un minimum d'erreurs,

à condition que les plugins/options sélectionnés soient compatibles avec le matériel. L'émulateur risque de mal fonctionner

ou de ne pas fonctionner du tout sur les systèmes ne répondant pas à ces exigences.

Configuration recommandée :

- Processeur : AMD 3000+ ou Intel Pentium 4 à 2,6 GHz ou équivalent.

- Carte graphique : Carte graphique compatible DirectX 9 avec prise en charge du Shader Model 2. (Ge
force FX, ATi Radeon 9600)

- RAM : 512 Mo DDR333 double canal

Les systèmes répondant aux exigences recommandées devraient offrir des performances acceptables pour la plupart des jeux, avec un minimum d'erreurs.

Configuration idéale :

- Processeur : Intel Core 2 Duo rapide ou AMD 4000+ ou équivalent.

- Carte graphique : Carte graphique compatible DirectX 9 avec prise en charge du Shader Model 4 (Ge
force série 8, Radeon série HD).

- RAM : 1 Go DDR400 double canal

Les systèmes répondant aux exigences idéales devraient offrir des performances optimales pour la plupart des jeux, même avec les options les plus exigeantes.

Remarques :

- Certains jeux ont des exigences plus élevées et peuvent rencontrer des problèmes de performances, même sur les systèmes répondant aux exigences recommandées. Dans ce cas, une configuration proche des exigences idéales est nécessaire pour atteindre les performances optimales.

- Les processeurs Pentium 4 exécutent certaines tâches plus lentement que les autres processeurs ; une fréquence d'horloge de 2,6 GHz est donc nécessaire. En revanche, les processeurs Pentium M exécutent les mêmes tâches beaucoup plus rapidement.

(Un Pentium M 750 à 1,86 GHz devrait suffire pour atteindre la pleine vitesse).

Les processeurs Intel Celeron et AMD Duron sont lents et leurs performances devraient être inférieures.

à celles des autres.

- nullDC fonctionnera sous Windows Vista. Cependant, la configuration matérielle requise sera légèrement supérieure à celle mentionnée ci-dessus et des problèmes de son sont probables (comme pour de nombreuses autres applications fonctionnant sous Vista).

3. Préparation/Autres exigences

----------------------------------

Avant d'exécuter l'émulateur, assurez-vous de disposer des fichiers nécessaires du BIOS Dreamcast, du système d'exploitation et de la mémoire Flash, extraits de votre Dreamcast.

Le BIOS doit être nommé « dc_boot.bin » et la mémoire Flash « dc_flash.bin ».

Ces deux fichiers doivent être placés dans le répertoire « Data », situé à l'emplacement d'installation de l'émulateur.

L'émulateur ne pourra pas se charger si ces fichiers sont absents. Veuillez noter que les disques Dreamcast originaux (GD-ROM) sont des disques spéciaux qui ne sont pas compatibles avec les lecteurs DVD/CD PC classiques.

De ce fait, il est impossible de les exécuter directement sur un émulateur.

La seule solution est d'en faire une copie de sauvegarde (un dump) à l'aide de méthodes spécifiques, soit avec une Dreamcast, soit avec un lecteur DVD/CD PC modifié.

4. Utilisation

--------

Lancer l'émulateur et sélectionner « Options → Sélectionner les plugins » ouvrira le menu de sélection des plugins.

Voici la liste des plugins fournis avec l'émulateur :

- Plugins PowerVR (Graphiques) :

« nullPVR » est le plugin graphique créé par l'équipe nullDC. C'est le plugin graphique recommandé.

« Chankast's video » est un portage du noyau PowerVR (graphiques) utilisé sur Chankast (un autre excellent émulateur Dreamcast).




























MEmu := "NullDC"
MEmuV := "r150"
MURL := [""]
MAuthor := ["Ibn"]
MVersion := ""
MCRC := ""
iCRC := ""
MID := ""
MSystem := ["Sega Naomi","Sammy Atomiswave"]
;----------------------------------------------------------------------------
;----------------------------------------------------------------------------
StartModule()
BezelGUI()
FadeInStart()
BezelStart() 

Run, %emuPath%.\nullDC_Win32_Release-NoTrace.exe

settingsFile := modulePath . "\" . moduleName . ".ini"

nullDCcfg := checkFile(emuPath . "\nullDC.cfg")

rom= %romPath%\%romName%%romExtension%

Sleep, 2000

Send, !{f}

Send, {enter}

Sleep, 2000

Send, %rom% ; sends rompath romfile from exe syntax

Send, {enter}

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.

MyPath = C:\Program Files (x86)\iRotate\iRotate.exe

#+!Up::
Run %MyPath% /2:rotate=0
Return

#+!Down::
Run %MyPath% /2:rotate=180
Return

#+!Left::
Run %MyPath% /2:rotate=270
Return

#+!Right::
Run %MyPath% /2:rotate=90
Return

BezelDraw()
FadeInExit()
BezelExit()

Process("WaitClose", executable)

FadeOutExit()

ExitModule()

CloseProcess:
Process, Close, %executable%
FadeOutStart()
 
 Sleep, 300
        if winc_presses = 2 ; The key was pressed twice
SendInput {Esc}{Esc}

Return

à condition de posséder les fichiers lst nécessaires au démarrage des 
ROMs bin ou dat


nullDC_Naomi-r150.ziphttps://1fichier.com/?ixal3h4udiem24kt2e6r
null_DC.pnghttps://1fichier.com/?a4mgr9rhxthgd3dwtkfj

exemple LST:

Nom du jeu
"bin-file-name", 0x0000000, <longueur du bin-file-name>

- Regardez la taille du fichier
(Propriétés du clic droit)
copiez le nombre en octets
puis dans la calculatrice windows
dans la vue menu sélectionnez scientifique
collez le nombre
et cliquez dans HEX
puis changez 0x0000000 en l'

exemple de valeur HEX souhaité :

Game123456 "Game123456", 0x0000000, 0x0 "0000000" (Insérez la valeur HEX souhaitée dans le devis)

exemple:
Game123456
"Game123456.bin or dat", 0x0000000, 0x01234567


Akatsuki Bk Ausf Achse.dathttps://1fichier.com/?nkwft7794crb821tuwlo
Akatsuki Bk Ausf Achse.lsthttps://1fichier.com/?atuc2xq9toxyuh4dyiur
Animal Basket.binhttps://1fichier.com/?oims2w650x7bud9i1789
Animal Basket.lsthttps://1fichier.com/?jbvno85k6z61fhfaez4o
Atomiswave.dathttps://1fichier.com/?664yfpzj809exmn7uhw9
Azumanga Daioh Puzzle Bobble.dathttps://1fichier.com/?ufj83hg6pccjo8hbae3j
Azumanga Daioh Puzzle Bobble.lsthttps://1fichier.com/?53jeouthhntf483ogp0z
Bass Fishing Challenge.binhttps://1fichier.com/?hbqmt5gpo2d217rrtxdg
Bass Fishing Challenge.lsthttps://1fichier.com/?qu547vegf3wjpv46drfg
Beach Spikers.binhttps://1fichier.com/?c3ckzek8fxelglrryeht
Beach Spikers.lsthttps://1fichier.com/?gyy3o1q9vbd1s4929bae
Border Down (Rev A).dathttps://1fichier.com/?vzdzt0myw8fticrd7fzr
Border Down (Rev A).lsthttps://1fichier.com/?9xt54vxqw0sigja16w5n
Capcom vs SNK 2 Millionaire Fighting 2001 (Rev A).dathttps://1fichier.com/?5o1xp0bs1egwxy8otbpn
Capcom vs SNK 2 Millionaire Fighting 2001 (Rev A).lsthttps://1fichier.com/?7jimnegqa7sbh6cev3wt
Capcom vs SNK Millenium Fight 2000 Pro.dathttps://1fichier.com/?2t5tqd08dqvetf42pepg
Capcom vs SNK Millenium Fight 2000 Pro.lsthttps://1fichier.com/?u178maa7d90x7fjwetvz
Capcom_Vs_SNK_2_Millionaire_Fighting_2001.binhttps://1fichier.com/?b06131bvyw6mp305ojhk
Chaos Field.dathttps://1fichier.com/?noxd3ygi9r09m63snosh
Chaos Field.txthttps://1fichier.com/?idq8796wnur0qfp1cbpm
Clay Challenge.binhttps://1fichier.com/?ssl3t6lt8xtab4nqiw3i
Clay Challenge.lsthttps://1fichier.com/?85s5rmoa18zfd36n73qd
Cleopatra Fortune Plus.dathttps://1fichier.com/?pcf4ng5n6ggd6pzo1y7g
Cleopatra Fortune Plus.lsthttps://1fichier.com/?yzz3p3m2zbjlkc2u78m6
Confidential Mission.dathttps://1fichier.com/?pw4mrpfw9oudw229sdlp
Confidential Mission.lsthttps://1fichier.com/?up6sdz2tt5ye1mqlagzu
Cosmic Smash.binhttps://1fichier.com/?spc7bcbdty6ix7qzu91w
Cosmic Smash.lsthttps://1fichier.com/?wubjnkshguverfjjvcol
Crazy Taxi.lsthttps://1fichier.com/?duy6udbrt6e4gkmkke0z
CrazyTaxi.binhttps://1fichier.com/?czw9194a86n13vwtguyz
Dead Or Alive 2 Millenium.binhttps://1fichier.com/?nor4yo512vgkfr5c6bez
Dead Or Alive 2 Millenium.lsthttps://1fichier.com/?kant2mtlmarpx95ijrzq
Death Crimson OX.dathttps://1fichier.com/?xyhoyx2jmypvjf2zj09v
Death Crimson OX.txthttps://1fichier.com/?9y6rx0ki5zsh4dak9i3b
Demolish Fist.binhttps://1fichier.com/?vd2wx5cdo12kjq1rgi4g
Demolish Fist.lsthttps://1fichier.com/?n23iwp0kev9vtfhx7w4i
Dirty Pigskin.binhttps://1fichier.com/?bgwb5e2lkm69g6dje3ym
Dirty Pigskin.lsthttps://1fichier.com/?6acxi3edpopmdrl9hj8i
Doki Doki Idol Star Seeker.dathttps://1fichier.com/?jy7trxz7n8tuyvay1p4z
Doki Doki Idol Star Seeker.lsthttps://1fichier.com/?m1eo6aa7mlbz0xy99i8p
Dolphin Blue.binhttps://1fichier.com/?84ln763rzdqyizwbzi7y
Dolphin Blue.lsthttps://1fichier.com/?6kgri2j6jf0jyi11v6g1
Dynamic Golf (Virtua Golf) (Japan) (Rev A).cuehttps://1fichier.com/?dyei7rd7s84tnlcf79e7
Dynamite Deka Ex.dathttps://1fichier.com/?2q74hd4ivku8fre4uoga
Dynamite Deka Ex.lsthttps://1fichier.com/?8abjncnt1v86qsqaeep6
Faster Than Speed.binhttps://1fichier.com/?3r1uqk8ymph5dc2d5p2q
Faster Than Speed.lsthttps://1fichier.com/?uekk49ysh5d82wrpp5yn
Fist of the North Star.binhttps://1fichier.com/?y15uoroatwf08ll4tt7d
Fist of the North Star.lsthttps://1fichier.com/?axyf1qqi6ry1ymvhkzhz
Force Five.binhttps://1fichier.com/?wt58k8yxbv66yasu5n5k
Force Five.txthttps://1fichier.com/?lfuct3tovn52oejur5tw
Giant_Gram_EPR-21820_PATCHED.binhttps://1fichier.com/?74dczios49l9w30vpfbs
Giga Wing 2.binhttps://1fichier.com/?nnn0t9jbakv2fn92l1cm
Giga Wing 2.lsthttps://1fichier.com/?ns6wmbi2ce0tg1r5dm57
Guilty Gear Isuka.binhttps://1fichier.com/?64r4j5lbypzrywnuw03b
Guilty Gear Isuka.lsthttps://1fichier.com/?ivko0calguu19umzkf0g
Guilty Gear Isuka.ziphttps://1fichier.com/?8j67dtb5l0tm3q7oo2rs
Guilty Gear Reload.ziphttps://1fichier.com/?f5xafnavdcvx6wdf044l
Guilty Gear X 1.5.binhttps://1fichier.com/?6wpeh7aip37yz7ozxz2f
Guilty Gear X 1.5.lsthttps://1fichier.com/?i32iu745t7xyx512v40a
Guilty Gear X 1.5.ziphttps://1fichier.com/?jngihzcsufv3fo8yhxdj
Guilty Gear XXhttps://1fichier.com/?asjrswhidwam8ufvojdk
Guilty Gear XX Accent Core.dathttps://1fichier.com/?fwjcxzw76t0htp9g8aox
Guilty Gear XX Accent Core.lsthttps://1fichier.com/?4pkvmoqt3knqqa1lztol
Guilty Gear XX Accent Core.ziphttps://1fichier.com/?x4ddvne9106k42j6exnd
Guilty Gear XX Reloadhttps://1fichier.com/?93aug4ysn8ppp3o12och
Guilty Gear XX Reload.lsthttps://1fichier.com/?vyxj45jih19jgasxm7tl
Guilty Gear XX Slash.dathttps://1fichier.com/?dgxck42hm4gp03xyd4ei
Guilty Gear XX Slash.lsthttps://1fichier.com/?5w97u6e8my4j6k50ytzr
Guilty Gear XX Slash.ziphttps://1fichier.com/?d3yjeml2e4px0z4dwnfn
Guilty Gear XX.lsthttps://1fichier.com/?h2c8pddpx9bw9sz6hac6
Guilty Gear XX.ziphttps://1fichier.com/?tbg8wcjbh4bb6ikn6wrs
Gun Spike - Cannon Spike.txthttps://1fichier.com/?jsn3f0t5u9xpeil6x914
Ikaruga.dathttps://1fichier.com/?idd4dtxcagpj29oefhu7
Ikaruga.lsthttps://1fichier.com/?r9cq67cdhjdjgbadlxhm
Jambo Safari.binhttps://1fichier.com/?i0awa9kw7t4l7l8r0o5z
Jambo Safari.lsthttps://1fichier.com/?udbmp3pwyutkt25y8dc4
Jingi Storm - The Arcade.dathttps://1fichier.com/?yin1x5lppt20hehfif3f
Jingi Storm - The Arcade.lsthttps://1fichier.com/?0r5c29gfrmbc1cgro99r
Karous.dathttps://1fichier.com/?r90n8y6xvkkqlvkycjg6
Karous.lsthttps://1fichier.com/?eh6hsvct9ttcb8h78d9x
Kidou Senshi Gundam - Renpou vs. Zeon DX (Japan).cuehttps://1fichier.com/?dr6f8oslwovhfzhoj8se
KingOfFightersNewWave.binhttps://1fichier.com/?owywdrqjyw8fn6082b21
Knights of Valour.binhttps://1fichier.com/?frqfx6nvrslmqpmtpc21
Kuru Kuru Chameleon .dathttps://1fichier.com/?5wk9uj8z5w7mnt09x8x2
Kuru Kuru Chameleon.lsthttps://1fichier.com/?eh8mvfbxh1sjd93x1x95
La Keyboardxyu.dathttps://1fichier.com/?28lom1pozaz3t6jd4igx
La Keyboardxyu.lsthttps://1fichier.com/?jf97tqyd0zfhouypzk81
Lupin The Third - The Shooting.dathttps://1fichier.com/?2fpqirjusijaubpup32k
Lupin The Third - The Shooting.lsthttps://1fichier.com/?q4qhue6nqey9zwg31srd
Lupin The Third - The Typing (Rev A).dathttps://1fichier.com/?c3p5h4pe2zq3vsmut7k0
Lupin The Third - The Typing (Rev A).lsthttps://1fichier.com/?bax8f5xr3g176qvtqrw3
Mamonoro.dathttps://1fichier.com/?7pmrfjd6df3z4gk7bkrl
Mamonoro.lsthttps://1fichier.com/?0vcy3oiy3mwey70ozcz4
Maximum Speed.binhttps://1fichier.com/?kn4tbiuks0bz9zztc26x
Maximum Speed.lsthttps://1fichier.com/?chiy6dg9t6dka4hn43nk
Maze of the Kings, The.dathttps://1fichier.com/?rf6wenufvtqoru5nsh9a
Maze of the Kings, The.lsthttps://1fichier.com/?bxzo2tnafjgggf9iwznu
Melty Blood Act Cadenza (Rev C).dathttps://1fichier.com/?xqsxp5ccsqzwmld64vqd
Melty Blood Act Cadenza (Rev C).lsthttps://1fichier.com/?4z9viplyyrse4cukafpv
Melty Blood Act Cadenza Ver B (Rev A).lsthttps://1fichier.com/?4vprzys141sk19fgmb77
Melty Blood Act Cadenza Ver B.dathttps://1fichier.com/?x6nvegtibsv95j2o81sy
Melty Blood Act Cadenza Ver B.lsthttps://1fichier.com/?qnwhkz6ztu9wvyykrxs6
Metal Slug 6.binhttps://1fichier.com/?8jnunzmybchxx5w8kp87
Metal Slug 6.lsthttps://1fichier.com/?krxfk5ob4jsnjq6uiv8d
Mobile Suit Gundam - Federation VS Zeon DX.dathttps://1fichier.com/?zos6bjuoat6dtc5tfhx2
Mobile Suit Gundam - Federation VS Zeon DX.lsthttps://1fichier.com/?vkq804qchi0yyrp9tvsa
Mobile Suit Gundam - Federation VS Zeon.dathttps://1fichier.com/?1cmlnpu3pzj7aavp4719
Mobile Suit Gundam - Federation VS Zeon.lsthttps://1fichier.com/?r63xlq9rvvc2qsxtch6k
Moeru Casinyo ~ Burning Casino.dathttps://1fichier.com/?yx1m3vyj7mzwhdcosexb
Moeru Casinyo ~ Burning Casino.lsthttps://1fichier.com/?1fzn9ciriahek607pz86
Monkey Ball.dathttps://1fichier.com/?rgs88vxbe3ktagy36pfm
Monkey Ball.lsthttps://1fichier.com/?3qg8a30o9m9vnh2f8c48
Musapey's Choco Marker (Rev A).lsthttps://1fichier.com/?zmatf2xboi1irpyy6qb9
Musapeys Choco Marker.dathttps://1fichier.com/?claook3cx548ib3hr29w
Naomi 2.dathttps://1fichier.com/?p7kuva5lwwncyj20xzxx
Naomi GD-ROM.dathttps://1fichier.com/?6a4g83c5cvruoi7yfl23
Neo Geo Battle Colliseum.binhttps://1fichier.com/?t2c4qaxbgfgovnelswmc
Neo Geo Battle Colliseum.lsthttps://1fichier.com/?mbgx1u1w9u7eosyz71h8
Noukone Puzzle Takoron.dathttps://1fichier.com/?hf9842yfb65j8k8sk00q
Noukone Puzzle Takoron.lsthttps://1fichier.com/?uf6zm9bfnene2luhyksr
Power Stone 2.binhttps://1fichier.com/?09woy07f4q0a79xhxkvc
Power Stone 2.lsthttps://1fichier.com/?nlk7lfsb9bcgdpbn4beg
Power Stone.bathttps://1fichier.com/?g71g0a3r9ewp3zhk47kd
Power Stone.binhttps://1fichier.com/?fxzoi2p1ngawqdo9vwql
Power Stone.lsthttps://1fichier.com/?cj58cviww53gszaz5gpn
Psyvariar 2 - The Will To Fabricate.dathttps://1fichier.com/?09ghc9gqn5h4fd2vwi6c
Psyvariar 2 - The Will To Fabricate.lsthttps://1fichier.com/?n53hqpzbm9on1r6nxe0e
Puyo Pop Fever (World).cuehttps://1fichier.com/?lme4csdx9m7z4pur3i1a
Puyo Puyo Fever.dathttps://1fichier.com/?xv3td1ohnk70ysauvkbm
Puyo Puyo Fever.lsthttps://1fichier.com/?dfd9lq4m5671sikhawjk
Puzzle Takoron.dathttps://1fichier.com/?5zpon14dfztiai0foe1c
Quiz Ah Megamisama.dathttps://1fichier.com/?1i6uvh9o7yl784e442wi
Quiz Ah Megamisama.lsthttps://1fichier.com/?d81umf2i9k68jf4yb9bz
Quiz Ah My Goddess.dathttps://1fichier.com/?m3wu7aupjlu0v4483zus
Quiz Keitai Q mode.dathttps://1fichier.com/?5pdwdw7ctnhl53ui3ttb
Quiz Keitai Q mode.lsthttps://1fichier.com/?cn1yy3nwo603q60s49la
Radilgy Noir.dathttps://1fichier.com/?1oz2vscicpfehvfpsjsm
Radilgy Noir.lsthttps://1fichier.com/?6d8s181gcgz837r60v56
Radirgy.lsthttps://1fichier.com/?5s4ayfgl319il92wu5gg
Rival Schools 2 - Project Justice.binhttps://1fichier.com/?qbx1fgwqixzcw8ilcc21
Rival Schools 2 - Project Justice.lsthttps://1fichier.com/?qqqawgaqympqbvigdzqk
Rumble Fish 2.lsthttps://1fichier.com/?vulm85usyl1xihcgizi2
Rumble Fish.binhttps://1fichier.com/?voq1l52owgkfg9uisu04
Rumble Fish.lsthttps://1fichier.com/?b51srid01w9ohme9scor
Salaryman Kintaro.binhttps://1fichier.com/?a0dj87y49qz0pevhlja1
Salaryman Kintaro.lsthttps://1fichier.com/?l55ma2u7pa9i61rtdlmp
Salaryman Kintaro.ziphttps://1fichier.com/?kq8ne5zx11zu9zek9jpl
Samurai Showdown VI - Samurai Spirits.binhttps://1fichier.com/?dj0gzcjgmxm3tkr2zmhl
Samurai Showdown VI - Samurai Spirits.lsthttps://1fichier.com/?8asvj2gpmdv7qekq4f0f
Sega Strike Fighter (Rev A).dathttps://1fichier.com/?a4kdym4u9w5g2tbya0pi
Sega Strike Fighter (Rev A).lsthttps://1fichier.com/?rrfou01sy7fmfthjg90j
SegaTetris.binhttps://1fichier.com/?lf1jpdvjlsp1jsjtrf9m
Senko No Ronde NEW ver. (Rev A).dathttps://1fichier.com/?cms4tv1k3ytkiuj69oc7
Senko No Ronde NEW ver. (Rev A).lsthttps://1fichier.com/?8tff4uem4w49l6w8qk0s
Senko No Ronde NEW ver. (Rev A).ziphttps://1fichier.com/?uurjfroqoawzmzhtem5x
Senko No Ronde Special.dathttps://1fichier.com/?tnp3ufcn7pmt6wsbui9s
Senko No Ronde Special.lsthttps://1fichier.com/?pdurg4y1sw0mb3sp1jf0
Senko No Ronde Special.ziphttps://1fichier.com/?ssaik63kb9al89esg9bk
Senko No Ronde.dathttps://1fichier.com/?gngki92o5jsg77n5dz03
Senko No Ronde.lsthttps://1fichier.com/?udeqks66570pdye7lcnx
Senko No Ronde.ziphttps://1fichier.com/?fdnevfvara3alqtv8cfu
Shikigami No Shiro II ~ The Castle of Shikigami II.dathttps://1fichier.com/?mb19bdled4oiqzug7l57
Shikigami No Shiro II ~ The Castle of Shikigami II.lsthttps://1fichier.com/?7olvue0k8amjazg91scx
Shooting Love 2007.dathttps://1fichier.com/?orbdzcbnb4jabsio4p18
Shooting Love 2007.lsthttps://1fichier.com/?opg5ezczeg588f6vjsru
Slashout.binhttps://1fichier.com/?or3353p12nx9lo86zsz6
Slashout.dathttps://1fichier.com/?uq0h5qlwr5gcjecfh2ei
Slashout.lsthttps://1fichier.com/?bn9ydcv742olvxu84r9y
Spikers Battle.dathttps://1fichier.com/?tmi6bhgvum6q4owp9soc
Spikers Battle.lsthttps://1fichier.com/?u5td30p0s3tkcjta9r91
SpikersBattle.binhttps://1fichier.com/?9be3j1d7ttgj4pueqdpl
Sports Jam.dathttps://1fichier.com/?ntfzjcn46uyjjocnbiki
Sports Jam.lsthttps://1fichier.com/?olpzm60a36ext2tp9fhy
SportsJam.binhttps://1fichier.com/?fh34o7t6n73q861b3n5j
Super Shanghai 2005 (Rev A).dathttps://1fichier.com/?obvpxlofags06tn1efth
Super Shanghai 2005 (Rev A).lsthttps://1fichier.com/?2uw46qi3txvo64lzycy4
Super Shanghai 2005.dathttps://1fichier.com/?npw2fhpxnhx6mrs7w4bs
Super Shanghai 2005.lsthttps://1fichier.com/?g1l8k9b93ec1g59n3lo0
Sushi Bar.binhttps://1fichier.com/?3932r58g8grqhrjeq86l
Sushi Bar.lsthttps://1fichier.com/?u8qp4ubcvepqyvqn95c5
Tetris Kiwamemichi.dathttps://1fichier.com/?v64znw6ojatr672d05oq
Tetris Kiwamemichi.lsthttps://1fichier.com/?na7409w8vsxy2zfcbk2i
The King of Fighters XI (All Fighters).binhttps://1fichier.com/?ot5l2iza7k1al565vbps
The King of Fighters XI (All Fighters).lsthttps://1fichier.com/?vqb7e9l40vs0at9onqng
The Maze of the Kings.dathttps://1fichier.com/?13a4u18il23yy5atilsi
The Maze of the Kings.lsthttps://1fichier.com/?h20ayzazgt43ti77znpt
Tokyo Bus Tour.binhttps://1fichier.com/?625o253x4x163tvi5tog
Tokyo Bus Tour.lsthttps://1fichier.com/?jnymb6wjewkwza0050qv
Toy Fighter.dathttps://1fichier.com/?ap41c3ypbvmny8kuqor1
Toy Fighter.lsthttps://1fichier.com/?jo8wv2pe64xm2730ak6h
ToyFighter.binhttps://1fichier.com/?8uq9x6gif2rqq941ud6m
Trigger Heart Exelica (Rev A).dathttps://1fichier.com/?iwch2pd885w6pc2yrqu4
Trigger Heart Exelica (Rev A).lsthttps://1fichier.com/?321tmuwtu57v15hwyyuz
Trizeal.dathttps://1fichier.com/?v66iuwia8862l1x7td93
Trizeal.lsthttps://1fichier.com/?5vr37vmby90cy9evrnlm
UnderDefeat.dathttps://1fichier.com/?39s6wqqnymrz9inpdsdj
UnderDefeat.lsthttps://1fichier.com/?gb35lrwh46tztlc8d7t8
Usagui - Yamashiro Mahjong Hen.dathttps://1fichier.com/?kt8enit7q5vh353cck5u
Usagui - Yamashiro Mahjong Hen.lsthttps://1fichier.com/?db3keaecou7hxzornlmf
Violent Metal Slug 6.rarhttps://1fichier.com/?plhqocsxq1kwqy8i1ex5
Virtua Athletics - Virtua Athlete.dathttps://1fichier.com/?wds50vt3yyxdtqnxgnvd
Virtua Athletics - Virtua Athlete.lsthttps://1fichier.com/?d6shl4zlqh630lburbzj
Virtua Golf - Dynamic Golf.dathttps://1fichier.com/?r27tz05g83zgb2kigmnk
Virtua Golf - Dynamic Golf.lsthttps://1fichier.com/?l6n1n7y4eab2flxfwwiw
Virtua NBA.binhttps://1fichier.com/?sh9jxq6w6n2vxkw0z649
Virtua NBA.dathttps://1fichier.com/?346zl27e8dtgoclwoo1k
Virtua NBA.lsthttps://1fichier.com/?n22mpioeh3hxyuifmy7n
Virtua Striker 3 (Japan).cuehttps://1fichier.com/?6xy6dr7v8z2h6ybl0adv
Virtua Tennis - Power Smash.cuehttps://1fichier.com/?0ii14vq6b2jurmu2jgab
Virtua Tennis - Power Smash.dathttps://1fichier.com/?yjpqw4on4quit1fczesk
Virtua Tennis - Power Smash.lsthttps://1fichier.com/?izdlroka82t16hey57x4
Virtua Tennis 2 - Power Smash 2 (Rev A).dathttps://1fichier.com/?5rcqkaxt4jucv9641hfn
Virtua Tennis 2 - Power Smash 2 (Rev A).lsthttps://1fichier.com/?hu59tyuzlecaslxixtxi
VirtuaStriker2-2000.binhttps://1fichier.com/?oqje8cke4irhh4bq4x5i
VirtuaTennis.binhttps://1fichier.com/?pz1ncvg4i2c4zjbq4w3x
VirtuaTennis.lsthttps://1fichier.com/?f5n52ajewut81scyv3p8
World Series Baseball - Super Major League.dathttps://1fichier.com/?5zau4qpnj2e67kbarog5
World Series Baseball - Super Major League.lsthttps://1fichier.com/?h97shwdayri8vqy5dgpz
airlbios.ziphttps://1fichier.com/?ulfkq00b49vnezarw47h
akatsukibk.binhttps://1fichier.com/?dxfi8gtsef2dgccn1mi1
alpilot.binhttps://1fichier.com/?olevgdzq036o9begq4ag
alpilot.txthttps://1fichier.com/?rqf38j82apnqdehc6bl6
azumanga.binhttps://1fichier.com/?w03h45eh54y1hqk5wixh
bdrdown.binhttps://1fichier.com/?8bjtrcebqdnf0y20ypbz
cfield.binhttps://1fichier.com/?b40dkclpumus2399b0y5
chocomk.binhttps://1fichier.com/?22d87jjnjpr62rzi7tqj
cleoftp.binhttps://1fichier.com/?hsmbtqrk3pdi78ysh65c
confmiss.binhttps://1fichier.com/?gdsykp9hld97wgm5ejnv
cvs2gd.binhttps://1fichier.com/?t6o0ni7jzwx1eybmytx6
cvsgd.binhttps://1fichier.com/?gn4wdzdhd24b12o80sqv
dc.ziphttps://1fichier.com/?rgm2e74fioprtas699no
dygolf.binhttps://1fichier.com/?el9nufua9vnkawxayios
dyndekaex.binhttps://1fichier.com/?aqh0j7wjbg4brnoj8f9g
gdrom-ftspeed_v6.binhttps://1fichier.com/?set1763keoq7crr9oynv
gdrom_KOFXI_controles_JVS_OK_Video_OK_v4.binhttps://1fichier.com/?rqtxd0jnaey6gm4r9apu
gdrom_sprtshot_v11.binhttps://1fichier.com/?h9d77f7q3gkm0mv91hxj
ggxx.binhttps://1fichier.com/?ht3397z0le59rtaxan2d
ggxxac.binhttps://1fichier.com/?tmjoypelhor5fwiram4g
ggxxrl.binhttps://1fichier.com/?phl3t06y8vkk3xyez7ph
ggxxsla.binhttps://1fichier.com/?y3a87njtvy6zbb0qz20l
gundmgd.binhttps://1fichier.com/?gcu3v9obkx88gp2xsncl
gundmxgd.binhttps://1fichier.com/?5ia9b5jn3459vsihj3u1
ikaruga.binhttps://1fichier.com/?crtajeg054r8pcgqz6ss
jingystm.binhttps://1fichier.com/?wxp5het5ap4rag0kr603
karous.binhttps://1fichier.com/?kfewhcv3uholrpttpqhx
keyboard.binhttps://1fichier.com/?q515jxwjsgzbga0ie5xs
kofnw.lsthttps://1fichier.com/?i1y75pvn6tkq39clxi3x
kurucham.binhttps://1fichier.com/?2tct0ohpy527bo33wyc9
lupinsho.binhttps://1fichier.com/?8v4p4ncmpc0mtc40yv29
luptype.binhttps://1fichier.com/?7l4881lv1cj8xsivba2c
mamonoro.binhttps://1fichier.com/?n8wr4gvogqfd1uiq5t5k
melty_blood_act_cadenza.dathttps://1fichier.com/?rx3u3ro17h7y06niipx8
melty_blood_act_cadenza_vb2.dathttps://1fichier.com/?ye63plq2yr9ze2gtn6xd
meltyb.binhttps://1fichier.com/?8cz8kwb3ahda1qumnv4r
meltyba.binhttps://1fichier.com/?91pak1ibyvasjau0uews
meltybld.binhttps://1fichier.com/?e8ug42ijm1fxrqne0gty
mie.ziphttps://1fichier.com/?8pnwn7l23cwmo5pfco0e
moeru.binhttps://1fichier.com/?r2l9x2qchvv2oa4ew4ft
mok.binhttps://1fichier.com/?afjgcd48x5k819lq63ex
monkeyba.binhttps://1fichier.com/?lsv8exdjt6io7ow8mxts
mvsc2gd.binhttps://1fichier.com/?pes8h5o1vqjjfa6an321
ngdup23a.ziphttps://1fichier.com/?gi6mbvh1j8loco5wte8t
ngdup23c.ziphttps://1fichier.com/?s9qeoibbi8u5j2bjsg5a
psyvar2.binhttps://1fichier.com/?461vbbucx9iu7x5wtls4
puyofev.binhttps://1fichier.com/?qfzdlv62u78d96bpizsl
quizqgd.binhttps://1fichier.com/?qtqon9dfzbnmx0f7brne
radilgy.dathttps://1fichier.com/?85x263uua6a258dvgrno
radirgy.binhttps://1fichier.com/?4pccrvxwad98hlw9xbxj
radirgynoa.binhttps://1fichier.com/?ez42oqxo5pxmrd3hlc9k
rumblef2.binhttps://1fichier.com/?26v9uarkiryk0cy59pqb
rumblef2.lsthttps://1fichier.com/?fp1fx4gitgsh2d8hqy9r
senko.binhttps://1fichier.com/?l02dwu4z5m1uc9zxljun
senkoo.binhttps://1fichier.com/?durdxzqa0pnr0b59rqay
senkosp.binhttps://1fichier.com/?v61m44bimpsca7lfjy54
settings.dchttps://1fichier.com/?mopvk3adch0ckmckccnp
sfz3ugd.binhttps://1fichier.com/?s80tz7aynw3op4w1obvj
sfz3ugd.dathttps://1fichier.com/?qyvpgk05w2zdjpvbqghj
sfz3ugd.lsthttps://1fichier.com/?f392f14itoajyqdv03xu
shaktamb.binhttps://1fichier.com/?5ja52soubfrx077xry8x
shikgam2.binhttps://1fichier.com/?3xfxw6hxmle9qf1k2c2y
shootlove.binhttps://1fichier.com/?a1zry5v95fvzrtdr4eep
spkrbtl.binhttps://1fichier.com/?0ys37d41ceak1vf5wmz8
sprtjam.binhttps://1fichier.com/?3tg1vqzbxnx8qj57ul0l
ss2005.binhttps://1fichier.com/?pc7z5hk811t5mizbqi6g
ss2005a.binhttps://1fichier.com/?ctfypb6ybndeopkh9njd
starseek.binhttps://1fichier.com/?ck24ylhe5vzd25ken9u2
takoron.binhttps://1fichier.com/?96pjwp3gau19ap5jpe6v
tetkiwam.binhttps://1fichier.com/?aoj3p64zijthmzsb17u1
trgheart.binhttps://1fichier.com/?rx1dbvslqbtz3l1rllqo
trizeal.binhttps://1fichier.com/?iv03vc6d2gk8mp3zzct5
undefeat.binhttps://1fichier.com/?nsckpiur509bqlbzeilm
usagui.binhttps://1fichier.com/?25uitg6def3jcv1vl19t
vathlete.binhttps://1fichier.com/?4gk9brnbthc1dhotujvx
vtennis2.binhttps://1fichier.com/?kj03mwdr6unr7ut788hp
vtennisg.binhttps://1fichier.com/?3d2u0f3j4sn8remkyqf9
wsbbgd.binhttps://1fichier.com/?8lgeaisn3y8adadtrvu7

























































3/
Et enfin ce bon vieux 
DEMUL 

[Guide] Demul v0.7A (31.07.15) (Dreamcast Emulator) - Configuration. 




Demul est un émulateur multi-systèmes qui prend en charge les plateformes suivantes :  
Dreamcast, Naomi, Naomi 2, Atomis Wave, Hikaru, Cave CV1000 et Gaelco , mais 
dans ce guide, nous nous concentrerons uniquement sur  Dreamcast .
Au début, l'émulateur n'était pas très bon, mais grâce au travail constant de 
quelques personnes, on peut dire 
qu'il a finalement atteint un stade de développement assez mature, suffisant pour exécuter 
un grand nombre de titres de manière acceptable. ou pratiquement parfait.

L'une des principales vertus de Demul  est ses plugins vidéo basés sur l'API  
D3D11 , qui corrigent ces problèmes fastidieux 
liés àtransparences et ombres , anomalies subies par d'autres émulateurs
 (Chankast, nullDC, Makaron, etc).  
Une autre qualité à souligner est le support de Windows CE ,requis par certains jeux 
comme Resident Evil 2 , Tomb Raider 4: The Last Revelation , etc. , 
en voici une liste très complète. 


"Certains jeux Dreamcast nécessitent la prise en charge de WinCE"

J'ai analysé les différences avec nullDC dans  cet article.





Considérations à garder à l'esprit avec Demul.

1) Dans les dernières versions , la prise en charge des GPU D3D10 a été supprimée ,
 même s'il y en a ; l'émulation serait beaucoup plus lente et incorrecte par rapport à D3D11
principalement pour cette raison : 

" Besoin de transparence indépendant de l'ordre pour dreamcast. Idéal Oit besoin de Directx11. Directx10 
ne supporte que 8 ou 16 (très lent) couches avec plus d'erreur sur la carte vidéo nvidia. "

Explication :

Transparence indépendante de l'ordre(Oit) est une technique; nécessaire pour dessiner correctement
 les transparences et les ombres (entre autres effets) dans une scène, afin d'obtenir une émulation Dreamcast
 correcte. L'implémentation idéale nécessite D3D11 , puisque D3D10  ne peut supporter qu'entre 
8 et 16 couches de transparence (couches) avec de très faibles performances et de nombreuses erreurs 
sur les GPU nVidia. De plus, cette quantité est insuffisante pour réaliser une émulation 
correcte, il existe des jeux qui nécessitent  au moins 32 couches de transparence et le cas 
de Shenmue (I, II) 64 couches .

Le principal problème est que ce processus est extrêmement exigeant (utilisant beaucoup 
de ressources GPU) même sur des cartes vidéo haut de gamme. comme la série 
actuelle Geforce GTX980 / Radeon FuryX .
Seuls quelques jeux PC utilisent cette méthode ; le plus connu est  Tomb Raider (2013)  
avec sa technologie innovante  TressFX .
Malheureusement, à l'heure actuelle,  il n'existe pas (ou n'est pas encore connu) 
d'autre méthode pour émuler le type de translucidité ( Translucency )  utilisé par le GPU
 " PowerVR Series 2 (CLX)" , il convient de mentionner que Dreamcast prend en charge
 le  matériel accéléré Oit .

Mais au moins, le monde du hardware graphique avance de jour en jour ; tous les GPU 
actuels (2009+) prennent en charge D3D11, et au fil du temps la puissance brute 
s'améliorera beaucoup plus, peut-être qu'un jour cette fonction ne sera plus 
un problème, ou peut-être qu'une autre méthode plus optimale sera découverte
 grâce aux nouvelles API D3D12 / Vulkan .


2) J'ai remarqué que le filtre anisotrope 
ne fonctionne pas, peut-être parce qu'une  
tentative a été faite pour émuler le mipmapping (?)
 Plus précisément . Bien que dans les versions 0.7A 
cela ait fonctionné à nouveau, c'est peut-être à cause du pilote vidéo (?) 
Ou cela peut même dépendre du jeu (?).

Sur cette image agrandie on peut remarquer l'absence de filtre anisotrope 
(en le forçant encore) :





     


















3)  L'émulateur nécessite un GPU très puissant avec beaucoup
 de VRAM disponible , surtout lorsqu'on utilise
 de nombreuses couches de transparence (supérieures à 16 couches) et encore plus
 si une résolution interne supérieure à la résolution native (2x +) est utilisée, donc
 Je recommande moins 3 Go de VRAM et un GPU qui peut le gérer
 efficacement, peut-être que les futures mémoires HBM2 vous aideront.

4) Dans les versions 0.7A, le son s'est beaucoup amélioré ! 
maintenant, cela ressemble plus à du vrai matériel, 
mais vous remarquez toujours le bug étrange. 
De plus, le son est lié à la vitesse d'émulation (synchrone) 
à l'aide de l'étirement du son , puis, si 
le baisse de la fréquence d'images, le son est instantanément déformé.

5)  Lorsque l'émulateur est exécuté en mode fenêtre, vous pouvez voir
 l'écran VMU , mais il n'y a toujours pas d'option 
pour l'afficher en mode plein écran, cette fonction est essentielle, car il existe
 des jeux qui montrent des progrès ou des astuces dans ce domaine. L'interface manque encore de travail.

6)  Demul n'utilise qu'un seul cœur (au moins sur Dreamcast ). 
Pour cette raison, il est très important d'avoir un processeur 
à hautes performances par cœur ( IPC  ) et, si possible, de fonctionner à des fréquences élevées
 (3,5 GHz +). C'est une règle de base pour la plupart des émulateurs existants.

7) Les utilisateurs de GPU AMD ont détecté des défaillances graphiques dans certains jeux
 (textures anormales). Celles-ci sont attribuées aux "optimisations" (Hacks) qu'AMD a incluses 
dans leurs pilotes, cependant, il est toujours conseillé de les maintenir à jour.

8) Dans l'émulateur, les jeux prenant en charge WinCE sont limités 
en CPU , en utilisant 100%, dans certains cas, la vitesse maximale
 n'est pas atteinte, et comme Demul n'occupe qu'un seul cœur, le problème est encore amplifié.





Utilisation et configuration en Demul 0.7A.

Pour exécuter l'émulateur,  Visual C++ 2010 x86  doit être installé sur notre ordinateur.

La dernière version de Demul l' obtenir d'ici  t LSO besoin du bios .
 Ces fichiers compressés ( .7zip ) doivent être copiés dans le dossier roms .

Lorsque nous exécutons l'émulateur, la fenêtre suivante s'ouvrira.

Fenêtre principale:

Comme dans nullDC nous avons des tabulations menus de type , ce qui est bon puisque
 nous sommes plus familiers avec ces maintenant.
 
Les touches de raccourci par défaut sont :

Alt + Entrée : Bascule du mode fenêtré au mode plein écran  (ou vice versa).
Alt + F4 : Fermez l'émulateur.
F3 :  Il affiche/masque le menu (fonctionne uniquement en mode fenêtré).
F5 :  Fait pivoter l'écran à 90° / 180° et 270° .
F6 :  modifiez le rapport d'  aspect (rapport d'aspect) en temps réel , les modes autorisés sont  Strech
  (étiré) 4: 3 et 16: 9 .


Fichier:
À partir de là, l'émulation des plates-formes prises en charge commence .


Enregistrer les États :
L'émulateur prend en charge la fonction Save States . Les touches  
doivent être affectées dans le menu  Config >>> Commandes .

REMARQUE : je vous rappelle que leur utilisation peut provoquer 
un  plantage , ajouté au problème que dans certaines versions cette option
 est cassée, à  utiliser avec  prudence.


Configuration :
Dans cet onglet, nous pouvons accéder à  la configuration de l'émulateur.



[Vidéo]

Avant de continuer, il est nécessaire de comprendre comment
 fonctionne le GPU Dreamcast (ou presque n'importe quel autre) :

1- La première étape effectuée par un GPU ; est de collecter  les  textures 
et la géométrie nécessaires pour un rendu ultérieur.

2- Une fois terminé, le GPU commence à rendre et  à dessiner une scène.

3- L'image rendue est stockée dans la mémoire vidéo (VRAM), pendant le processus ; 
Cela peut être mis à l' échelle , obtenir des données de couleur  
et les transformer au format cible en utilisant le tramage, etc.

4- Le processeur SH4 peut lire ou écrire des données / informations vers (ou depuis) 
​​l'image précédemment rendue, un processus appelé CPU Framebuffer Access .

5- Une ou plusieurs trames peuvent être lues ultérieurement à partir 
de la mémoire vidéo (étape 3). Ce qui sera établi comme source 
pour la sortie vidéo et sera finalement 
ce qui est affiché à l'écran , pouvant utiliser une mise à l'échelle matérielle
 optionnelle si nécessaire / nécessaire.

L'émulation des effets graphiques réalisés dans le frame buffer est indispensable
 pour visualiser correctement les jeux. Il est très courant de voir
 que la plupart des émulateurs modernes n'ont pas cette fonction ; par exemple. 
Project64 (Jabo, Glide, etc.). Dans  N64,  il existe des jeux qui effectuent certains effets à ce stade
 (par exemple,  Perfect Dark 
"faisceaux de lumière",  Beetle Adventure Racing > "transitions 2D")
 et l'émulateur n'est pas en mesure d'effectuer cette tâche, ce qui rend ces jeux incomplets.

Dans le cas particulier de la Dreamcast ; Nous avons Sega Extreme Sports 
qui a des effets de soleil spectaculaires, Vigilante8 a des effets de transition 
intéressants dans les menus,  Rayman2  affiche également des transitions
 lorsque nous entrons dans un niveau, dans  Silent Scope2, 
vous pouvez voir le réticule dessiné sur l'écran VMU
qui est en fait une fraction de l'image réelle lue directement à partir de la mémoire vidéo,
  Virtua Tennis fait également quelque chose de similaire , et
 peut même être lu en ne regardant que le VMU.  


Dans l'émulateur on peut actuellement choisir deux plugins vidéo :

- gpuDX11 : Ce plugin est le premier à prendre en  charge 
 l'api D3D11 , travaillant actuellement dessus 
en corrigeant les fonctions, mais apparemment ses jours sont comptés, puisqu'il 
ne prend en charge que les étapes 1 et 2 (décrit précédemment)
 affichant immédiatement les informations à l'écran , devant recourir 
aux infâmes hacks (connus dans certains émulateurs sous le nom de
 « correctifs du jeu » toux toux toux PCSX2 toux toux ) ou des astuces pour obtenir des effets visibles.

- gpuDX11ng (new gen) : Ce plugin est nouveau et "révolutionnaire" 
 (fini en terme d'émulation)  puisqu'en théorie il supporte les 5 étapes (décrit précédemment),
 donc il pourrait être possible d' émuler un grand nombre d' effets utilisés dans certains jeux,
 réalisant une émulation beaucoup plus précise
Peut-être qu'à l'avenir ce sera le plugin choisi pour continuer
 à travailler dessus , laissant gpuDX11 à ses propres appareils. 
La mauvaise chose est qu'il souffre de lacunes, à l'heure actuelle 
ce plugin ne supporte pas les résolutions supérieures au natif *  (1x), 
ni ne supporte les  shaders (pour le moment) .
 J'ai également remarqué que dans certains jeux, 
cela peut être un peu plus exigeant (1x @ 64 couches
 -  Shenmue 2 dans la 1ère scène du navire). 
Bien que si vous êtes un puriste, et que vous avez le bon matériel (moyen/haut de gamme)
  c'est votre option ;).

* Et on ne sait pas si un jour je pourrais le supporter. cela demanderait beaucoup de travail.


Voyons maintenant les options de chaque plugin graphique.

Configuration graphique Demul Direct3D11 :

- Résolution Windows : Ici, nous sélectionnons la résolution 
que nous utiliserons pour le mode fenêtre .

- V-Sync : Dans cette case vous pouvez désactiver/activer la synchronisation verticale ,
 il est très important de garder cette option activée 
pour synchroniser les fps avec le taux de rafraîchissement de notre moniteur (Hz),
 afin d'obtenir une plus grande fluidité dans l'émulation, 
bien que si vous n'avez pas une machine puissante, essayez de l'éteindre.

- Démarrer en plein écran : En ayant cette case automatiquement activée, l'émulation 
 démarrera en mode plein écran (réel) , avec Alt + Enter vous pourrez entrer et sortir de ce mode. 

- Ratio d'aspect : Ici, vous configurez le rapport d'aspect
l majorité des jeux Dreamcast sont au  4: 3 
(bien que s'il y en a quelques-uns, ils prennent en charge le panoramique)
 et vous pouvez le modifier en temps réel en  appuyant sur la touche F6 .

- Résolution interne (uniquement disponible avec gpuDX11 )
 : Plus la valeur est élevée, meilleure est la qualité de l'image finale, 
voici les résolutions internes disponibles :

1x : 640x480 * .
2x : 1280x960.
3x : 1920x1440.
4x : 2560x1920.
5x : 3200x2400.
6x : 3840x2880. * La grande majorité des jeux ont une résolution native de 480p, 
mais il y en a quelques-uns qui utilisent une résolution interne
 plus élevée avec une réduction à 480p,
 Wacky Races aurait un IR de 1280x960. 
En revanche,  le jeu Street Fighter 3 : Third Strike a  un IR de 320x240, 




Le problème avec l'augmentation de l'IR est qu'elle nécessite trop de  VRAM 
et si nous utilisons également de nombreuses couches (couches de transparence),
 nous pouvons facilement faire s'effondrer l'émulateur en raison du manque de ressources :

Échec de la création du tampon :
Vous pouvez effectuer l'astuce de changer le nombre de couches
 une fois que l'émulation a commencé pour essayer 
d'échapper aux limites de la mémoire graphique, mais avec le risque conséquent de problèmes
 graphiques et de plantage de l'émulateur à tout moment. 
Je vous laisse quelques résultats référentiels utilisant le jeu Shenmue (I)
pour vous donner une idée de la quantité de VRAM nécessaire :

Testez la Geforce GTX970 3,5 Go VRAM@v355.60 (Win7 SP1 x86) :

1x @ 32 couches : 600 Mo de VRAM.
1x @ 64 couches : 750 Mo de VRAM.
2x @ 32 couches : 1100 Mo de VRAM.
2x @ 64 couches : 1700 Mo de VRAM.
3x @ 32 couches : 1900 Mo de VRAM.
3x @ 64 couches : 3 300 Mo de VRAM.
4x @ 32 couches : 3 100 Mo de VRAM.

En bref, l' IR que nous sélectionnerons dépendra de la quantité de couches utilisées, 
de la VRAM disponible et de la puissance de notre GPU , ce dernier est le facteur limitant,
 probablement une carte vidéo qui n'existe pas encore est nécessaire ,
 bien qu'une Geforce GTX980Ti devrait beaucoup aider.


- Couches max : C'est la quantité de couches de transparence que l'émulateur va utiliser,
 les valeurs disponibles sont :  8 , 16 , 32 et 64 ,  plus c'est mieux , mais l'émulateur 
devient beaucoup plus exigeant à chaque augmentation de valeur.
 J'ai fait quelques tests avec le jeu Shenmue II dans la scène mythique où Joy
 a failli renverser Ryo dans le port avec sa toute nouvelle moto
c'est un excellent endroit pour tester l'impact de cette option,
 en raison de la grande quantité de fumée qui est généré lorsque les roues de la moto dérapent.

1x @ 8 couches
8 couches est une valeur trop faible pour avoir l'un de ces effets ...

1x @ 16 couches
Avec 16 couches Ryo me rappelle beaucoup le protagoniste d' AC : Unity , je ne sais pas pourquoi...

1x @ 32 couches
Avec 32 couches  ça a l'air beaucoup mieux, mais ce n'est pas parfait,
 il y a quelques erreurs que je n'ai pas pu capturer dans cette image, 
mais ici elles sont clairement visibles ( 1 et 2 )

1x @ 64 couches :
Enfin avec le maximum de couches appliquées (64 couches) tout est parfait (?).

Fatigué de voir des images ? eh bien tu as de la chance, j'ai fait une vidéo comparative :

Fondamentalement, la valeur qui doit être attribuée  dépendra exclusivement du jeu que
 nous voulons émuler, en général, avec 32 couches,
 des résultats acceptables sont obtenus, comme dans le cas de  Shenmue
car il n'abuse pas de cette ressource, mais dans Shenmue 2 nous besoin de 64 couches
 pour qu'il ait toujours l'air correct. Il doit y avoir d'autres jeux qui avec 16 couches passent bien,
 c'est une question de test, même si autant on veut utiliser le maximum de couches,
 ce ne sera pas toujours possible, par exemple. cette scène est très exigeante
 et vous pouvez déjà
 voir de sérieux ralentissements en utilisant 2x @64layers sur une Geforce GTX970 .

REMARQUE : chaque fois que le nombre de couches change
vous devez supprimer le dossier "scache" (cache de shader) 
pour éviter une éventuelle corruption visuelle
Le contenu temporaire est stocké dans ce dossier en tant que cache
pour cette raison, il est normal que la première fois que 
vous lancez un jeu (ou entrez dans une nouvelle zone)
 vous remarquez des macro-charges (bégaiement) 
la deuxième fois ça devrait aller beaucoup mieux, comme c'est ainsi que fonctionne cet émulateur.


- Effets Shaders  (uniquement disponible avec  gpuDX11 ) :
 Cet émulateur permet d'utiliser jusqu'à  deux passes de Shaders , parmi lesquelles sont disponibles : 
 FXAA , HDR-TV , SCANLINES , CARTOON , RGB DOT et BLUR .
 Le choix dépendra des goûts de chacun, par exemple, dans les jeux Shenmue  
j'aime à quoi ils ressemblent quand on utilise le shader cartoon .

- Tweaks  (uniquement disponible avec  gpuDX11ng ) : 
 Deux options sont disponibles ici ; Activer Translucent Join et Network Sort
ce ne sont rien de plus que des optimisations , mais pour l'instant les deux produisent 
des anomalies graphiques, je recommande donc de les laisser désactivées.

- Hacks :  Ici, nous avons quatre hacks disponibles , mais chacun d'eux ruine l'image, 
en particulier les  transparences  et les  ombres
Ils peuvent être utilisés si vous souhaitez utiliser Demul et que vous n'avez pas une équipe puissante,
 le résultat de chaque option dépendra de chaque match.

- Rotation :  Permet de faire pivoter  l'écran , très utile pour les jeux de shoot-em-up
cela peut être fait en temps réel en appuyant sur la touche F5 .

- Blitter Limit Pix/sec : Apparemment cette option n'est utile que pour l'émulation des 
jeux de shoot-em-up Cave  , donc elle n'apporte aucune modification à l'émulation Dreamcast
ou du moins je n'ai pas remarqué qu'elle fait quelque chose (? ).

REMARQUE : il est conseillé de forcer le GPU 
à fonctionner au maximum de ses performances 
lorsque l'émulateur est actif, car il subit des variations de charge soudaines .
 Parfois, la charge GPU 
monte beaucoup en une fraction de seconde  
laissant derrière elle l'auto-détection des horloges fournie par le pilote vidéo, 
générant des ralentissements .



[Du son]

Démul SPU :
- Taille de la mémoire tampon : Pour les systèmes d'exploitation modernes ( Vista +)  2048 
 est généralement la valeur optimale.

- Désactiver le son :  cela désactive tous les sons.

- Désactiver CDDA :  Ici, seul l' audio BGM est désactivé .

- Désactiver le DSP : Il désactive certains effets audio utilisés dans des jeux comme Grandia II
mais il peut également corriger certains bugs d'émulation 
dans le son et augmenter la fréquence d'images si vous n'avez pas un PC puissant.

- Désactiver le filtre : En théorie cela désactive le filtre audio 
qui intègre le plugin audio, ce changement peut être fait en temps réel
 si l'émulation est maintenue en mode fenêtré, peut-être que cela peut aider dans certains jeux...

- Filtre alternatif : vous permet d' utiliser un filtre audio alternatif
peut-être à partir d'une ancienne version de Demul (?).

- Enregistrer le son :  En théorie cela permet d'  enregistrer l'audio ,
 mais il me semble que ce n'est pas activé (?).



[GD-ROM]

Ici, nous avons le choix entre trois plugins :

- gdrCHD : Ce plugin était à l'origine utilisé pour charger uniquement les images CHD
mais depuis la mise à jour v0.7 (19/07/2015),
 il est recommandé de charger également les images .gdi , en raison des correctifs qu'il intègre,
 mais c'est très probable qui ne peut pas charger des images modifiées 
(par exemple une image avec une traduction appliquée) 
et nous jeter dans le bios de la console, dans ce cas je recommande d'utiliser le plugin gdrImage .

- gdrDemul : Ceci est utilisé pour charger les jeux à partir d'un lecteur physique ou virtuel 
(par exemple des outils démons).

- gdrImage : Ce plugin est le plus compatible, puisqu'il charge toutes sortes d'images :
  .gdi,  .cdi ,  .mds .ccd .nrg  et  .cue .


Alternativement, il est fortement recommandé d' activer l'option :
  « popup this window before start emulation » :

Étant donné que cette fenêtre s'ouvrira à chaque fois que nous démarrons l'émulation, 
nous pourrons choisir le chemin où se trouve le jeu.

REMARQUE : je recommande toujours d'utiliser des images .gdi
de cette façon vous éviterez certains problèmes.

NOTE2 : Si vous voulez entrer dans le bios 
(pour régler l'heure, la date, formater une mémoire, etc.) 
vous ne devriez avoir aucune image chargée dans le plugin GD-ROM ,
 vous devez cliquer sur  "Ejecter" et lancer l'émulation.



[Les contrôles]

padDemul :
Dans cette fenêtre , vous pouvez configurer les h ot les touches  (raccourcis),
 la zone morte ( zone morte ) du contrôle analogique,
 ainsi que la carte chaque bouton sur notre joystick .
 Si vous n'êtes pas familier avec le contrôle de la console Dreamcast, je laisse l'image suivante :

Il est très important de NE PAS mapper les boutons étendus
 ( Analog  2 , Digital 2 , C , D et Z
car il y a plusieurs jeux que sur la vraie console ;
 ils ne prennent pas en charge les contrôles non officiels 
avec des fonctions étendues ;
 résultant en un contrôle erratique, 
par exemple, ils peuvent fonctionner correctement dans les menus,
 mais une fois dans le jeu, aucun contrôle de plug-in n'a été détecté, etc.



[Plugins et chemins]

Plugins, Maple et chemins :
Ici, nous pouvons changer les plugins de Video , Sound , GD-ROM , Control et Netplay
ainsi que changer les chemins de l'émulateur. 
Une erreur typique que font certains utilisateurs
 est de mal attribuer les chemins du bios ou à un moment donné,
 ils ont déplacé l'émulateur vers un autre dossier, 
modifiant les chemins, ce qui pose des problèmes à l'émulateur.



[Gestionnaire de périphériques Mapple]
Dans cette fenêtre, chaque port peut se voir attribuer un Control , Keyboard
 Lightgun  ou  Mouse , il permet également 
d'  activer la fonctionnalité multijoueur local en  
ajoutant plus de contrôles (jusqu'à 4). 
On peut aussi sélectionner le chemin du VMU/VMS 
que l'on veut choisir, au cas où nous en aurions plusieurs créés ou dans des chemins différents :

 Et enfin, nous pouvons  désactiver l'écran VMU .

À ce stade, je veux m'arrêter pour expliquer que chaque 
Joystick Dreamcast avait deux emplacements d'extension :


Les accessoires suivants peuvent y être insérés  :

VMU : C'est la mémoire officielle/d'origine, elle avait un écran LCD monochrome
Il existe  un nombre considérable de jeux qui l'utilisent, par exemple dans 
Resident Evil Code: Veronica, 
nous pouvons voir notre statut sans avoir à entrer dans le menu, dans Shenmue,
 nous obtenons des indices sur les boutons sur lesquels
 nous devons appuyer lorsqu'ils nous apprennent un nouveau mouvement , etc. 
Sa capacité est de  200 blocs  où nous pouvons enregistrer des progrès. 
Last but not least, la mémoire génère un bip aigu lorsqu'elle a sauvegardé le contenu 
(ou lorsqu'une piste est donnée), 
dans l'émulateur on l'entend aussi mais très bas, en fait,
 beaucoup penseront que c'est un bruit dû à une mauvaise émulation audio.


VMS : Mémoire qui n'a pas d'écran LCD, le plus de ceux-ci est sa  plus grande capacité 
par rapport à l'original, par ex. Il y avait environ 800 blocs (200x4),
 mais ils pouvaient être incompatibles avec un jeu et/ou se comporter de manière erratique 
(non détectée) si la mémoire était modifiée au milieu du jeu.

Clavier / Souris : Dreamcast a été un pionnier en matière
 d'  Internet et de multijoueur en ligne ;
 la console série comprenait un modem ( 33,6K , 56K ou un  adaptateur haut débit )
 avec lequel nous pouvions naviguer "librement" sur le Web en utilisant le navigateur qui intégrait le GD 
( PlanetWeb Browser ). Pour cette raison, ces accessoires ont été mis en vente, 
en plus il y avait quelques jeux de tir compatibles, comme Quake III Arena .

Microphone (non fonctionnel dans l'émulateur) : 
Cet accessoire n'a pas été beaucoup utilisé, il n'est compatible qu'avec une
  liste réduite de jeux , parmi lesquels Seaman se démarque .


L'émulateur prend en charge jusqu'à cinq accessoires, 
mais je  ne recommande pas de mettre plus de deux accessoires 
par contrôleur, pour des raisons de compatibilité. 
L'autre chose à prendre en compte est qu'il y a des rapports de certains jeux WinCE 
 qui se comportent/contrôlent de manière erratique ou
 ne reconnaissent pas qu'il y a une mémoire insérée
Dans  ces cas, je vous recommande d'essayer d'échanger entre VMU et VMS
vous pouvez également désactiver les contrôles qui ne sont pas utilisés... 
une de ces prdures a corrigé un bug dans le jeu Tomb Raider 4: The Last Revelation



[Dreamcast Bios]
Ici, nous  sélectionnons le bios que nous voulons sélectionner / charger, 
je recommande la v1.01d .
 Il n'est plus nécessaire de le changer puisque l'émulateur est  Region free
 (s'il est configuré d'une certaine manière).



[Mode CPU]
Permet de choisir l' émulation CPU , l'option DynaRec 
est recommandée pour être la plus rapide. 
La version Interpreter est plus précise mais très lente, destinée au débogage et aux tests (blocages).



[Mode vidéo]

En mode Vidéo  on peut choisir la sortie vidéo que l' on veut émuler, 
Dreamcast disposait d'un accessoire intéressant appelé VGA-BOX
 qui délivre une qualité d'image supérieure ( 480p )
 par rapport au simple RCA , de nombreux jeux sont compatibles avec
 ( liste des jeux compatibles ), c'est donc l'option recommandée, 

Si vous obtenez le message suivant ( Ce jeu n'est pas compatible avec le câble... ) :
Ils doivent sélectionner les autres modes disponibles :  TV (RGB) et TV (VBS/S, RF)
Par ex. le jeu  Vigilante 8 - 2nd Offense ne démarre qu'en mode TV (VBS/S, RF), 
donc le pire en terme de qualité d'image.

REMARQUE : Si  lorsque vous démarrez un jeu vous  voyez un écran de  sélection Hz
c'est parce que vous avez sélectionné l'un des modes TV
il est crucial de savoir qu'il est choisi dès le début, 
car cela pourrait être lié aux parties sauvegardées
si je me souviens bien, dans Shenmue si un jeu était enregistré en utilisant un mode TV, 
alors  il n'était pas possible de charger ce jeu en utilisant le  mode VGA
je ne sais pas s'il s'agit d'un échec d'émulation, 
car dans Dreamcast toutes les horloges étaient synchronisées 
( CPU, GPU, Inputs, etc) et je n'ai jamais eu l'opportunité de posséder une VGA-BOX. 



[Région]

Ici, nous pouvons changer la région de la console (émulée), 
mais ce n'est pas nécessaire si nous avons activé les options  
Auto Region et Auto Broadcast ensemble,
 nous pouvons donc charger des jeux de n'importe quelle région, sans importer le bios sélectionné.
L'option Time Hack permet au bios (flash) de lire la date et l'heure de notre système 
et de rester synchronisé de cette manière, 

- Pause lorsque le focus est perdu : Lorsque cette option est activée,
 l'émulation est arrêtée (en pause) si la fenêtre est en arrière-plan.



MEmu := "Demul"
MEmuV := "v0.7a 221215"
MURL := ["http://demul.emulation64.com/"]
MAuthor := ["djvj","bleasby"]
MVersion := "2.1.10"
MCRC := 
iCRC := 
MID := "636025126320548084"
MSystem := ["Cave 3rd","Gaelco","Gaelco 3D","Sammy Atomiswave","Sega System SP","Sega Dreamcast","Sega Hikaru","Sega Naomi","Sega Naomi 2"]
;----------------------------------------------------------------------------
; Notes:
; Required - control and nvram files setup for each game/control type
; Required - moduleName ini example can be found on GIT in the Demul module folder
; moduleName ini must be placed in same folder as this module if you use the provided example, just be sure to rename it to just Demul.ini first so it matches the module's name
; GDI images must match mame zip names and be extracted and have a .dat extension
; Rom_Extension should include 7z|zip|gdi|cue|cdi|chd|mds|ccd|nrg
; Module will automatically set your rom path for you on first launch
;
; Make sure the awbios, dc, hikaru, naomi, naomi2, saturn.zip bios archives are in any of your rom paths as they are needed to play all the games.
; Set your Video Plugin to gpuDX11 and set your desired resolution there
; In case your control codes do not match mine, set your desired control type in demul, then open the demul.ini and find section PORTB and look for the device key. Use this number instead of the one I provided
; gpuDX10 and gpuDX11 are the only supported plugins. You can define what plugin you want to use for each game in the module settings in RocketLauncherUI
; Read the tooltip for the Fullscreen module setting in RocketLauncherUI on how to control windowed fullscreen, true fullscreen, or windowed mode
; Windowed fullscreen will take effect the 2nd time you run the emu. It has to calculate your resolution on first run.
;
; Controls:
; Start a game of each control type (look in the RocketLauncherUI's module settings for these types, they all have their own tabs) and configure your controls to play the game. After configuring your controls manually in Demul, open padDemul.ini and Copy/paste the JAMMA0_0 and JAMMA0_1 (for naomi) or the ATOMISWAVE0_0 and ATOMISWAVE0_1 (for atomiswave) into RocketLauncherUI's module settings for each controls tab (standard, sfstyle, etc).
; Each pair of control tabs designates another real arcade control schema for a grouping of games. Demul does not handle this like MAME, so the module does instead.
;
; Gaelco:
; There is no known way to launch the desired Gaelco rom from CLI. You will always be presented with the rom selection window on launch.
; GPUDX11 does not yet support Gaelco in true fullscreen mode. Either use DX10 which does support fullscreen for Gaelco
; or if using DX11, choose fullscreen in the video options and then match the windows resolution to your desktop. This will give a pseudo fullscreen mode.
;
; Sega Hikaru:
; Windowed Fullscreen doesn't seem to work as demul does not allow stretching of its window
;
; Troubleshooting:
; For some reason demul's ini files can get corrupted and ahk can't read/write to them correctly.
; If your ini keys are not being read or not writing to their existing keys in the demul inis, create a new file and copy/paste everything from the old ini into the new one and save.
; If you use Fade_Out, the module will disable it. Demul crashes when Fade tries to draw on top of it in windowed and fullscreen modes.
;
;Bezel:
;If the game has the wrong aspect ratio, go to demul module settings, rom settings, and set the aspect ratio option to stretch. The game will follow the aspect ratio defined by the bezel.
;----------------------------------------------------------------------------
StartModule()
BezelGUI()
ExtraFixedResBezelGUI()
FadeInStart()

primaryExe := new Emulator(emuPath . "\" . executable) ; instantiate emulator executable object
emuPrimaryWindow := new Window(new WindowTitle("","window")) ; instantiate primary emulator window object
emuLCD0Window := new Window(new WindowTitle("LCD 0","LCD 0"))
-run=%2% -rom=%1%
sleep 4000
MouseMove, 1920,1080
; This object controls how the module reacts to different systems. Demul can play a few systems, but needs to know what system you want to run, so this module has to adapt.
mType := Object("Cave 3rd","cave3rd","Gaelco","gaelco","Gaelco 3D","gaelco","Sammy Atomiswave","awave","Sega System SP","naomi","Sega Dreamcast","dc","Sega Hikaru","hikaru","Sega Naomi","naomi","Sega Naomi 2","naomi2","Demul Gun Games","awave")
ident := mType[systemName] ; search object for the systemName identifier Demul uses
If !ident
ScriptError("Your systemName is: " . systemName . "`nIt is not one of the known supported systems for this Demul module: " . moduleName)

DemuleIni := new IniFile(emuPath . "\Demul.ini")


demuleIniEncoding := RLObject.getFileEncoding(DemuleIni.FileFullPath)
If demuleIniEncoding {
If (demuleIniEncoding = "ERROR")
RLLog.Warning("Module - Demul.ini set to Read-only and BOM cannot be changed. Check the DLL log for further details: " . DemuleIni.FileFullPath)
Else {
RLLog.Info("Module - Recreating " . DemuleIni.FileFullPath . " as ANSI because UTF-8 format cannot be read")
If RLObject.removeBOM(DemuleIni.FileFullPath)
RLLog.Info("Module - Successfully converted " . DemuleIni.FileFullPath . " to ANSI")
Else
RLLog.Error("Module - Failed to convert " . DemuleIni.FileFullPath . " to ANSI")
}
}

maxHideTaskbar := moduleIni.Read("Settings", "MaxHideTaskbar", "true",,1)
controllerCode := moduleIni.Read("Settings", "ControllerCode", "16777216",,1)
mouseCode := moduleIni.Read("Settings", "MouseCode", "131072",,1)
keyboardCode := moduleIni.Read("Settings", "KeyboardCode", "1073741824",,1)
lightgunCode := moduleIni.Read("Settings", "LightgunCode", "-2147483648",,1)
hideDemulGUI := moduleIni.Read("Settings", "HideDemulGUI", "true",,1)
PerGameMemoryCards := moduleIni.Read("Settings", "PerGameMemoryCards", "true",,1)
memCardPath := moduleIni.Read("Settings", "MemCardPath", emuPath . "\memsaves",,1)
memCardPath := AbsoluteFromRelative(emuPath, memCardPath)

fullscreen := moduleIni.Read(romName . "|Settings", "Fullscreen", "windowedfullscreen",,1)
plugin := moduleIni.Read(romName . "|Settings", "Plugin", "gpuDX11",,1)
shaderUsePass1 := moduleIni.Read(romName . "|Settings", "ShaderUsePass1", "false",,1)
shaderUsePass2 := moduleIni.Read(romName . "|Settings", "ShaderUsePass2", "false",,1)
shaderNamePass1 := moduleIni.Read(romName . "|Settings", "ShaderNamePass1",,,1)
shaderNamePass2 := moduleIni.Read(romName . "|Settings", "ShaderNamePass2",,,1)
listSorting := moduleIni.Read(romName . "|Settings", "ListSorting", "true",,1)
OpaqueMod := moduleIni.Read(romName . "|Settings", "OModifier", "true",,1)
TransMod := moduleIni.Read(romName . "|Settings", "TModifier", "true",,1)
internalResolutionScale := moduleIni.Read(romName . "|Settings", "InternalResolutionScale", "1",,1)
videomode := moduleIni.Read(romName . "|Settings", "VideoMode", "0",,1)
aspectRatio := moduleIni.Read(romName . "|Settings", "AspectRatio", "1",,1)
MaxLayers := moduleIni.Read(romName . "|Settings", "MaxLayers", "32",,1)
demulShooterEnabled := moduleIni.Read(romName . "|Settings", "DemulShooterEnabled", "false",,1)

showVMU := moduleIni.Read("Settings", "showVMU", "true",,1)
VMU1Pos := moduleIni.Read("Settings", "VMU1Pos", "topLeft",,1) ; topRight, topCenter, topLeft, leftCenter, bottomLeft, bottomCenter, bottomRight, rightCenter 
VMU2Pos := moduleIni.Read("Settings", "VMU2Pos", "topRight",,1) ; topRight, topCenter, topLeft, leftCenter, bottomLeft, bottomCenter, bottomRight, rightCenter 
VMU3Pos := moduleIni.Read("Settings", "VMU3Pos", "bottomLeft",,1) ; topRight, topCenter, topLeft, leftCenter, bottomLeft, bottomCenter, bottomRight, rightCenter 
VMU4Pos := moduleIni.Read("Settings", "VMU4Pos", "bottomRight",,1) ; topRight, topCenter, topLeft, leftCenter, bottomLeft, bottomCenter, bottomRight, rightCenter 
VMUHideKey := moduleIni.Read("Settings", "VMUHideKey","F10",,1)

Bios := moduleIni.Read(romName, "Bios",,,1)
LoadDecrypted := moduleIni.Read(romName, "LoadDecrypted",,,1) ; not currently supported

; Read all the control values
controls := moduleIni.Read(romname, "Controls", "standard",,1) ; have to read this first so the below ini reads work
push1_0 := moduleIni.Read(controls . "_JAMMA0_0", "push1",,,1)
push2_0 := moduleIni.Read(controls . "_JAMMA0_0", "push2",,,1)
push3_0 := moduleIni.Read(controls . "_JAMMA0_0", "push3",,,1)
push4_0 := moduleIni.Read(controls . "_JAMMA0_0", "push4",,,1)
push5_0 := moduleIni.Read(controls . "_JAMMA0_0", "push5",,,1)
push6_0 := moduleIni.Read(controls . "_JAMMA0_0", "push6",,,1)
push7_0 := moduleIni.Read(controls . "_JAMMA0_0", "push7",,,1)
push8_0 := moduleIni.Read(controls . "_JAMMA0_0", "push8",,,1)
service_0 := moduleIni.Read(controls . "_JAMMA0_0", "SERVICE",,,1)
start_0 := moduleIni.Read(controls . "_JAMMA0_0", "START",,,1)
coin_0 := moduleIni.Read(controls . "_JAMMA0_0", "COIN",,,1)
digitalup_0 := moduleIni.Read(controls . "_JAMMA0_0", "DIGITALUP",,,1)
digitaldown_0 := moduleIni.Read(controls . "_JAMMA0_0", "DIGITALDOWN",,,1)
digitalleft_0 := moduleIni.Read(controls . "_JAMMA0_0", "DIGITALLEFT",,,1)
digitalright_0 := moduleIni.Read(controls . "_JAMMA0_0", "DIGITALRIGHT",,,1)
analogup_0 := moduleIni.Read(controls . "_JAMMA0_0", "ANALOGUP",,,1)
analogdown_0 := moduleIni.Read(controls . "_JAMMA0_0", "ANALOGDOWN",,,1)
analogleft_0 := moduleIni.Read(controls . "_JAMMA0_0", "ANALOGLEFT",,,1)
analogright_0 := moduleIni.Read(controls . "_JAMMA0_0", "ANALOGRIGHT",,,1)
analogup2_0 := moduleIni.Read(controls . "_JAMMA0_0", "ANALOGUP2",,,1)
analogdown2_0 := moduleIni.Read(controls . "_JAMMA0_0", "ANALOGDOWN2",,,1)
analogleft2_0 := moduleIni.Read(controls . "_JAMMA0_0", "ANALOGLEFT2",,,1)
analogright2_0 := moduleIni.Read(controls . "_JAMMA0_0", "ANALOGRIGHT2",,,1)
push1_1 := moduleIni.Read(controls . "_JAMMA0_1", "push1",,,1)
push2_1 := moduleIni.Read(controls . "_JAMMA0_1", "push2",,,1)
push3_1 := moduleIni.Read(controls . "_JAMMA0_1", "push3",,,1)
push4_1 := moduleIni.Read(controls . "_JAMMA0_1", "push4",,,1)
push5_1 := moduleIni.Read(controls . "_JAMMA0_1", "push5",,,1)
push6_1 := moduleIni.Read(controls . "_JAMMA0_1", "push6",,,1)
push7_1 := moduleIni.Read(controls . "_JAMMA0_1", "push7",,,1)
push8_1 := moduleIni.Read(controls . "_JAMMA0_1", "push8",,,1)
service_1 := moduleIni.Read(controls . "_JAMMA0_1", "SERVICE",,,1)
start_1 := moduleIni.Read(controls . "_JAMMA0_1", "START",,,1)
coin_1 := moduleIni.Read(controls . "_JAMMA0_1", "COIN",,,1)
digitalup_1 := moduleIni.Read(controls . "_JAMMA0_1", "DIGITALUP",,,1)
digitaldown_1 := moduleIni.Read(controls . "_JAMMA0_1", "DIGITALDOWN",,,1)
digitalleft_1 := moduleIni.Read(controls . "_JAMMA0_1", "DIGITALLEFT",,,1)
digitalright_1 := moduleIni.Read(controls . "_JAMMA0_1", "DIGITALRIGHT",,,1)
analogup_1 := moduleIni.Read(controls . "_JAMMA0_1", "ANALOGUP",,,1)
analogdown_1 := moduleIni.Read(controls . "_JAMMA0_1", "ANALOGDOWN",,,1)
analogleft_1 := moduleIni.Read(controls . "_JAMMA0_1", "ANALOGLEFT",,,1)
analogright_1 := moduleIni.Read(controls . "_JAMMA0_1", "ANALOGRIGHT",,,1)
analogup2_1 := moduleIni.Read(controls . "_JAMMA0_1", "ANALOGUP2",,,1)
analogdown2_1 := moduleIni.Read(controls . "_JAMMA0_1", "ANALOGDOWN2",,,1)
analogleft2_1 := moduleIni.Read(controls . "_JAMMA0_1", "ANALOGLEFT2",,,1)
analogright2_1 := moduleIni.Read(controls . "_JAMMA0_1", "ANALOGRIGHT2",,,1)

;Bezel settings
bezelTopOffset := moduleIni.Read(romName . "|Settings", "Bezel_Top_Offset","0",,1)
bezelBottomOffset := moduleIni.Read(romName . "|Settings", "Bezel_Bottom_Offset","0",,1)
bezelRightOffset := moduleIni.Read(romName . "|Settings", "Bezel_Right_Offset", "0",,1)
bezelLeftOffset := moduleIni.Read(romName . "|Settings", "Bezel_Left_Offset", "0",,1)
If (plugin = "gpuDX11ng") ; this is for legacy support. Original demul 0.7 used gpuDX11ng
plugin := "gpuDX11old"

If (InStr(systemName, "Hikaru") && plugin != "gpuDX11")
plugin := "gpuDX11" ; Hikaru does not work with gpuDX10 gpu plugin, setting it dumps an error

; Verify user set desired gpu plugin name correctly
If (plugin != "gpuDX11old" && plugin != "gpuDX11" && plugin != "gpuDX10" && plugin != "")
ScriptError(plugin . " is not a supported gpu plugin.`nLeave the plugin blank to use the default ""gpuDX11"".`nValid options are gpuDX11old, gpuDX11 or gpuDX10.")

; Read and write videomode value for cable type
rvideomode := DemuleIni.Read("main", "videomode")
RLLog.Info("Module - Demul is reading the config with videomode = " . rvideomode)
DemuleIni.Write(videomode, "main", "videomode")
RLLog.Info("Module - Demul is updating the config with videomode = " . videomode)

; Handle Demul's rom paths so the user doesn't have to
romPathCount := DemuleIni.Read("files", "romsPathsCount")
RLLog.Info("Module - Demul is configured with " . romPathCount . " rom path(s). Scanning these for a romPath to this rom.")
Loop % romPathCount
{ demulRomPath := A_Index - 1 ; rompaths in demul start with 0
path%A_Index% := DemuleIni.Read("files", "roms" . demulRomPath)
RLLog.Info("Module - Path" . demulRomPath . ": " . path%A_Index%)
; msgbox % path%A_Index%
If (path%A_Index% = romPath . "\") ; demul tacks on the backslash at the end
{ romPathFound := 1 ; flag that demul has this romPath in its config and no need to add it
RLLog.Info("Module - Stopping search because Demul is already configured with the correct romPath to this rom: " . path%A_Index%)
Break ; stop looking for a correct romPath
}
}
If !romPathFound ; if demul doesn't have the romPath in its ini, add it
{ RLLog.Warning("Module - Demul does not have this romPath in Demul.ini, adding it for you.")
nextPath := romPathCount + 1 ; add 1 to the romPathCount and write that to the ini
DemuleIni.Write(nextPath, "files", "romsPathsCount")
DemuleIni.Write(romPath . "\", "files", "roms" . romPathCount) ; write the rompath to the ini
}

; Force Fade_Out to disabled as it causes demul to not close properly
; fadeOut = false
; RLLog.Warning("Module - Turning off Fade_Out because it doesn't let Demul exit properly.")

GpuIni := new IniFile(emuPath . "\" . plugin . ".ini")
GpuIni.CheckFile("Please run Demul manually first and select the " . plugin . " gpu plugin so it creates this file for you: " . GpuIni.FileFullPath)

demulFileEncoding := RLObject.getFileEncoding(GpuIni.FileFullPath)
If demulFileEncoding {
If (demulFileEncoding = "ERROR")
RLLog.Warning("Module - GPU ini set to Read-only and BOM cannot be changed. Check the DLL log for further details: " . GpuIni.FileFullPath)
Else {
RLLog.Info("Module - Recreating " . GpuIni.FileFullPath . " as ANSI because UTF-8 format cannot be read")
If RLObject.removeBOM(GpuIni.FileFullPath)
RLLog.Info("Module - Successfully converted " . GpuIni.FileFullPath . " to ANSI")
Else
RLLog.Error("Module - Failed to convert " . GpuIni.FileFullPath . " to ANSI")
}
}

BezelStart()

; Setting emu resolution if bezel is enabled 
If (BezelPath)
{ If (plugin = "gpuDX11" || plugin = "gpuDX11old") {
GpuIni.Write(bezelScreenWidth, "resolution", "Width")
GpuIni.Write(bezelScreenHeight, "resolution", "Height")
} Else {
GpuIni.Write(bezelScreenWidth, "resolution", "wWidth")
GpuIni.Write(bezelScreenHeight, "resolution", "wHeight")
}
}

; This updates the DX11gpu ini file to turn List Sorting on or off. Depending on the games, turning this on for some games may remedy missing graphics, having it off on other games may fix corrupted graphics. Untill they improve the DX11gpu, this is the best it's gonna get.
If (ListSorting = "true")
GpuIni.Write(0, "main", "AutoSort")
Else
GpuIni.Write(1, "main", "AutoSort")
; This will set the Opaque or Trans modifier for each game
If (OpaqueMod = "true")
GpuIni.Write(0, "main", "OModifier")
Else
GpuIni.Write(1, "main", "OModifier")

If (TransMod = "true")
GpuIni.Write(0, "main", "TModifier")
Else
GpuIni.Write(1, "main", "TModifier")

; This updates the DX10gpu or DX11gpu ini file to the ratio and scale you want to use for this game
GpuIni.Write(aspectRatio, "main", "aspect")
GpuIni.Write(InternalResolutionScale, "main", "scaling")

If (plugin = "gpuDX11" || plugin = "gpuDX11old") {
GpuIni.Write(MaxLayers, "main", "MaxLayers")
}

; This updates the demul.ini with your gpu plugin choice for the selected rom
DemuleIni.Write(plugin . ".dll", "plugins", "gpu")

; This updates the demul.ini with your VMU display choice
VMUscreendisable := If (showVMU = "true") ? "false" : "true"
DemuleIni.Write(VMUscreendisable, "main", "VMUscreendisable")
 
 ; Shader Effects
Loop, 2 {
shaderUsePass%A_Index% := If (ShaderUsePass%A_Index% != "" and ShaderUsePass%A_Index% != "ERROR" ? (ShaderUsePass%A_Index%) : (GlobalShaderUsePass%A_Index%)) ; determine what shaderUsePass to use
currentusePass%A_Index% := GpuIni.Read("shaders", "usePass" . A_Index)
If (shaderUsePass%A_Index% = "true")
{
shaderNamePass%A_Index% := If (ShaderNamePass%A_Index% != "" and ShaderNamePass%A_Index% != "ERROR" ? (ShaderNamePass%A_Index%) : (GlobalShaderNamePass%A_Index%)) ; determine what shaderNamePass to use
If !StringUtils.Contains(shaderNamePass%A_Index%,"FXAA|HDR-TV|SCANLINES|CARTOON|RGB DOT\(MICRO\)|RGB DOT\(TINY\)|BLUR")
ScriptError(shaderNamePass%A_Index% . " is not a valid choice for a shader. Your options are FXAA, HDR-TV, SCANLINES, CARTOON, RGB DOT(MICRO), RGB DOT(TINY), or BLUR.")
If (currentusePass%A_Index% = 0)
GpuIni.Write(1, "shaders", "usePass" . A_Index) ; turn shader on in gpuDX11 ini
GpuIni.Write(shaderNamePass%A_Index%, "shaders", "shaderPass" . A_Index) ; update gpuDX11 ini with the shader name to use
}Else If (shaderUsePass%A_Index% != "true" and currentusePass%A_Index% = 1)
GpuIni.Write(0, "shaders", "usePass" . A_Index) ; turn shader off in gpuDX11 ini
}

If (ident = "dc")
{
7z(romPath, romName, romExtension, sevenZExtractPath)
defaultIni := "[main]`r`nimageFileName = `r`nopenDialog = false"
If (romExtension = ".cdi" || romExtension = ".mds" || romExtension = ".ccd" || romExtension = ".nrg" || romExtension = ".gdi" || romExtension = ".cue") {
GdrImageIni := new IniFile(emuPath . "\gdrImage.ini")
If !GdrImageIni.Exist() {
GdrImageIni.Append(defaultIni) ; Create a default gdrImage.ini in your emu folder if one does not exist already.
; GdrImageIni.Delete(gdrImageFile) ; don't know why this was in the old module, no point in deleting the file I just made
}
TimerUtils.Sleep(500)
DemuleIni.Write("gdrImage.dll", "plugins", "gdr")
GdrImageIni.Write("false", "Main", "openDialog")
GdrImageIni.Write(romPath . "\" . romName . romExtension, "Main", "imagefilename")
} Else If (romExtension = ".chd")
{
GdrCHDIni := new IniFile(emuPath . "\gdrCHD.ini")
If !GdrCHDIni.Exist() {
GdrCHDIni.Append(defaultIni) ; Create a default gdrCHD.ini in your emu folder if one does not exist already.
; GdrCHDIni.Delete(gdrCHDFile) ; don't know why this was in the old module, no point in deleting the file I just made
}
TimerUtils.Sleep(500)
GdrCHDIni.Write("false", "Main", "openDialog")
DemuleIni.Write("gdrCHD.dll", "plugins", "gdr")
GdrCHDIni.Write(romPath . "\" . romName . romExtension, "Main", "imagefilename")
} Else
ScriptError(romExtension . " is not a supported file type for this " . moduleName . " module.")

DemuleIni.Write(1, "main", "region") ; Set BIOS to Auto Region
} Else { ; all other systems, Naomi and Atomiswave
; This updates the demul.ini with your Bios choice for the selected rom
If (Bios != "" && Bios != "ERROR") {
Bios := StringUtils.RegExReplace(Bios,"\s.*") ; Cleans off the added text from the key's value so only the number is left
DemuleIni.Write("false", "main", "naomiBiosAuto") ; turning auto bios off so we can use a specific one instead
DemuleIni.Write(Bios, "main", "naomiBios") ; setting specific bios user has set from the moduleName ini
} Else
DemuleIni.Write("true", "main", "naomiBiosAuto") ; turning auto bios on if user did not specify a specific one
}

; This section writes your custom keys to the padDemul.ini. Naomi games had many control panel layouts. The only way we can accomodate these differing controls, is to keep track of them all and write them to the ini at the launch of each game.
; First we check if the last controls used are the same as the game we want to play, so we don't waste time updating the ini if it is not necessary. For example playing 2 sfstyle type games in a row, we wouldn't need to write to the ini.

; This section tells demul what arcade control type should be connected to the game. Options are standard (aka controller), mouse, lightgun, or keyboard
If (controls = "lightgun" || controls = "mouse") {
RLLog.Info("Module - This game uses a Mouse or Lightgun control type.")
DemuleIni.Write(MouseCode, "PORTB", "device")
} Else If (controls = "keyboard") {
RLLog.Info("Module - This game uses a Keyboard control type.")
DemuleIni.Write(KeyboardCode, "PORTB", "device")
} Else { ; accounts for all other control types
RLLog.Info("Module - This game uses a standard (controller) control type.")
DemuleIni.Write(ControllerCode, "PORTB", "device")
}

WriteControls(0,push1_0,push2_0,push3_0,push4_0,push5_0,push6_0,push7_0,push8_0,SERVICE_0,START_0,COIN_0,DIGITALUP_0,DIGITALDOWN_0,DIGITALLEFT_0,DIGITALRIGHT_0,ANALOGUP_0,ANALOGDOWN_0,ANALOGLEFT_0,ANALOGRIGHT_0,ANALOGUP2_0,ANALOGDOWN2_0,ANALOGLEFT2_0,ANALOGRIGHT2_0)

WriteControls(1,push1_1,push2_1,push3_1,push4_1,push5_1,push6_1,push7_1,push8_1,SERVICE_1,START_1,COIN_1,DIGITALUP_1,DIGITALDOWN_1,DIGITALLEFT_1,DIGITALRIGHT_1,ANALOGUP_1,ANALOGDOWN_1,ANALOGLEFT_1,ANALOGRIGHT_1,ANALOGUP2_1,ANALOGDOWN2_1,ANALOGLEFT2_1,ANALOGRIGHT2_1)

RLLog.Info("Module - Wrote " . controls . " controls to padDemul.ini.")

; This will check the save game files and create per game ones if enabled.
If (PerGameMemoryCards = "true")
{
MemCardFolder := new Folder(memCardPath)
DefaultMemCard := new File(memCardPath . "\default_vms.bin") ; defining default blank VMU file
If !DefaultMemCard.Exist("Folder")
DefaultMemCard.CreateDir() ; create memcard folder if it doesn't exist
If defaultMemCard.Exist()
{
RLLog.Info("VMU - Default VMU file location - " . defaultMemCard.FileFullPath)
Loop, 4
{
outerLoop := A_Index
If (A_Index = 1)
contrPort := "A"
Else If (A_Index = 2)
contrPort := "B"
Else If (A_Index = 3)
contrPort := "C"
Else If (A_Index = 4)
contrPort := "D"
controllerPort%contrPort% := DemuleIni.Read("PORT" . contrPort, "device")
RLLog.Info("VMU - Config for controller PORT" . contrPort . " = " . controllerPort%contrPort%)
If (controllerPort%contrPort% = -1)
Continue
Loop, 2
{
SubCount := A_Index - 1
VMUPort%SubCount% := DemuleIni.Read("PORT" . contrPort, "port" . SubCount)
RLLog.Info("VMU - Config Plugin VMUPort" . contrPort . SubCount . " for controller PORT" . contrPort . " = " . VMUPort%SubCount%)
If (VMUPort%SubCount% <> -1)
{
VMUPortFile%SubCount% := DemuleIni.Read("VMS", "VMS" . contrPort . SubCount)
RLLog.Info("VMU - VMUPortFile" . contrPort . SubCount . " controllerVMU" . contrPort . SubCount . " " . "VMS" . contrPort . SubCount . " = " . VMUPortFile%SubCount%)
memCardName := If romTable[1,5] ? romTable[1,4] : romName ; defining rom name for multi disc rom
PerGameVMUBin%A_Index% := new File(memCardPath . "\" . memCardName . "_vms_" . contrPort . SubCount . ".bin")
RLLog.Info("VMU - PerGameVMUBin = " . PerGameVMUBin%A_Index%.FileFullPath)
If PerGameVMUBin%A_Index%.Exist()
{
RLLog.Info("VMU - PerGameVMU file exists at " . PerGameVMUBin%A_Index%.FileFullPath)
} Else {
RLLog.Info("VMU - PerGameVMU file does not exist. So we will create one at " . PerGameVMUBin%A_Index%.FileFullPath)
DefaultMemCard.Copy(PerGameVMUBin%A_Index%.FileFullPath)
}
DemuleIni.Write(PerGameVMUBin%A_Index%.FileFullPath, "VMS", "VMS" . contrPort . SubCount)
RLLog.Info("VMU - PerGameVMU file written to " . DemuleIni.FileFullPath . " at section VMS to variable VMS" . contrPort . SubCount . " as " . PerGameVMUBin%A_Index%.FileFullPath)
} Else {
RLLog.Info("VMU - No VMU Plugged In.")
}
}
}
} Else {
RLLog.Info("VMU - No default VMU file at " . DefaultMemCard.FileFullPath)
}
}

; Setting demul to use true fullscreen if defined in settings.ini, otherwise sets demul to run windowed. This is for gpuDX11 plugin only
If (plugin = "gpuDX11" || plugin = "gpuDX11old")
If (fullscreen = "truefullscreen")
GpuIni.Write(1, "main", "UseFullscreen")
Else
GpuIni.Write(0, "main", "UseFullscreen")

If (fullscreen = "windowedfullscreen")
{
If (plugin = "gpuDX11" || plugin = "gpuDX11old") {
GpuIni.Write(appWidthNew, "resolution", "Width")
GpuIni.Write(appHeightNew, "resolution", "Height")
} Else {
GpuIni.Write(appWidthNew, "resolution", "wWidth")
GpuIni.Write(appHeightNew, "resolution", "wHeight")
}
If (maxHideTaskbar = "true") {
RLLog.Info("Module - Hiding Taskbar and Start Button.")
MiscUtils.TaskBar("off")
}
; Create black background to give the emu the fullscreen look
RLLog.Info("Module - Creating black background to simulate a fullscreen look.")
Gui demulGUI: -Caption +ToolWindow +0x08000000
Gui demulGUI: Color, Black
Gui demulGUI: Show, x0 y0 h%A_ScreenHeight% w%A_ScreenWidth%
}

If (ident != "dc" && demulShooterEnabled = "true") { ; If demulshooter is enabled for this game, launch it with relevant options
DemulShooterExe := New DemulShooter()
DemulShooterExe.Launch("demul07a",romName,"-noresize")
}

TimerUtils.Sleep(250)

;  Construct the CLI for demul and send romName if naomi or atomiswave. Dreamcast needs a full path and romName.
If (LoadDecrypted = "true") ; decrypted naomi rom
romCLI := "-customrom=" . """" . romPath . "\" . romName . ".bin"""
Else If (ident = "dc") ; dreamcast game
romCLI := " -image=" . """" . romPath . "\" . romName . romExtension . """"
Else ; standard naomi rom
romCLI := "-rom=" . romName

hideEmuObj := Object(emuLCD0Window,0,emuPrimaryWindow,1)
HideAppStart(hideEmuObj,hideEmu)

primaryExe.Run(" -run=" . ident . " " . romCLI, (If hideDemulGUI = "true" ? "min" : "")) ; launching minimized, then restoring later hides the launch completely

TimerUtils.Sleep(1000) ; Need a second for demul to launch, increase if yours takes longer and the emu is NOT appearing and staying minimized. This is required otherwise bezel backgrounds do not appear

DetectHiddenWindows, On
If (hideDemulGUI = "true")
{
emuPrimaryWindow.Restore()
emuPrimaryWindow.Activate()
}

RLLog.Info("Module - Waiting for Demul to finish loading game.")
winTextSplit := []
Loop { ; looping until demul is done loading rom and gpu starts showing frames
TimerUtils.Sleep(200,0)
winTitle := emuPrimaryWindow.GetTitle(0) ; do not update the wintitle otherwise emu won't close on exit
winTextSplit := StringUtils.Split(winTitle, A_Space)
If (winTextSplit[5] = "gpu:" And winTextSplit[6] != "0" And winTextSplit[6] != "1")
Break
}
RLLog.Info("Module - Demul finished loading game.")

If (StringUtils.Contains(systemName, "Gaelco|Hikaru") && fullscreen = "truefullscreen")
KeyUtils.Send("!{Enter}") ; Automatic fullscreen seems to be broken in the Gaelco driver, must alt+Enter to get fullscreen

; This is where we calculate and maximize demul's window using our pseudo fullscreen code
If (fullscreen = "windowedfullscreen")
{
emuPrimaryWindow.Maximize() ; this will take effect after you run demul once because we cannot stretch demul's screen while it is running.
}

BezelDraw()

If (showVMU = "true"){
ExtraFixedResBezel := new Window(new WindowTitle("ahk_ID " . extraFixedRes_Bezel_hwnd))
SetTimer, CheckforVMU, 5000
}

HideAppEnd(hideEmuObj,hideEmu)
FadeInExit()
primaryExe.Process("WaitClose")

If (fullscreen = "windowedfullscreen")
{ Gui demulGUI: Destroy
RLLog.Info("Module - Destroyed black gui background.")
}

If (ident = "dc")
7zCleanUp()

BezelExit()
ExtraFixedResBezelExit()
FadeOutExit()

If (fullscreen = "windowedfullscreen" && maxHideTaskbar = "true") {
RLLog.Info("Module - Showing Taskbar and Start Button.")
MiscUtils.TaskBar("on")
}

ExitModule()

 ; Write new controls to padDemul.ini
WriteControls(player,push1,push2,push3,push4,push5,push6,push7,push8,service,start,coin,digitalup,digitaldown,digitalleft,digitalright,analogup,analogdown,analogleft,analogright,analogup2,analogdown2,analogleft2,analogright2) {
Global PadIni
PadIni.Write(push1, "JAMMA0_" . player, "PUSH1")
PadIni.Write(push2, "JAMMA0_" . player, "PUSH2")
PadIni.Write(push3, "JAMMA0_" . player, "PUSH3")
PadIni.Write(push4, "JAMMA0_" . player, "PUSH4")
PadIni.Write(push5, "JAMMA0_" . player, "PUSH5")
PadIni.Write(push6, "JAMMA0_" . player, "PUSH6")
PadIni.Write(push7, "JAMMA0_" . player, "PUSH7")
PadIni.Write(push8, "JAMMA0_" . player, "PUSH8")
PadIni.Write(service, "JAMMA0_" . player, "SERVICE")
PadIni.Write(start, "JAMMA0_" . player, "START")
PadIni.Write(coin, "JAMMA0_" . player, "COIN")
PadIni.Write(digitalup, "JAMMA0_" . player, "DIGITALUP")
PadIni.Write(digitaldown, "JAMMA0_" . player, "DIGITALDOWN")
PadIni.Write(digitalleft, "JAMMA0_" . player, "DIGITALLEFT")
PadIni.Write(digitalright, "JAMMA0_" . player, "DIGITALRIGHT")
PadIni.Write(analogup, "JAMMA0_" . player, "ANALOGUP")
PadIni.Write(analogdown, "JAMMA0_" . player, "ANALOGDOWN")
PadIni.Write(analogleft, "JAMMA0_" . player, "ANALOGLEFT")
PadIni.Write(analogright, "JAMMA0_" . player, "ANALOGRIGHT")
PadIni.Write(analogup2, "JAMMA0_" . player, "ANALOGUP2")
PadIni.Write(analogdown2, "JAMMA0_" . player, "ANALOGDOWN2")
PadIni.Write(analogleft2, "JAMMA0_" . player, "ANALOGLEFT2")
PadIni.Write(analogright2, "JAMMA0_" . player, "ANALOGRIGHT2")
}

HaltEmu:
If (fullscreen = "truefullscreen")
KeyUtils.Send("!{Enter}")
If VMUHideKey
XHotKeywrapper(VMUHideKey,"VMUHide","OFF")
Return
RestoreEmu:
If (fullscreen = "truefullscreen")
KeyUtils.Send("!{Enter}")
If (showVMU = "true") {
Loop, 4
{ VMUWindow%A_Index%.Set("Transparent", 0)
VMUWindow%A_Index%.Activate()
VMUWindow%A_Index%.Set("AlwaysOnTop", "On")
ExtraFixedResBezel.Set("AlwaysOnTop", "On")
If !(VMUHidden)
VMUWindow%A_Index%.Set("Transparent", "off")
}
emuPrimaryWindow.Activate()
}
If VMUHideKey
XHotKeywrapper(VMUHideKey,"VMUHide","ON")
Return

HideGUIWindow:
emuPrimaryWindow.Set("Transparent", "On")
emuPrimaryWindow.Activate() ; once activated, demul starts loading the rom
Return

CheckforVMU:
Loop, 4
{ Transform, letter, Chr, % A_Index + asc("A") - 1  ; transform number to letter
If ((!(VMUWindow%A_Index%)) and (VMUScreenID%A_Index%:=WinExist("PORT " . letter . " VMU 0 ahk_class PORT " . letter . " VMU 0")))
{ VMUWindow%A_Index% := new Window(new WindowTitle("ahk_ID " . VMUScreenID%A_Index%))
VMUWindow%A_Index%.Set("Transparent", 0)
ExtraFixedResBezelDraw(VMUScreenID%A_Index%, "VMU",VMU%A_Index%Pos, 144, 96, 8, 8, 28, 8)
VMUWindow%A_Index%.Activate()
VMUWindow%A_Index%.Set("AlwaysOnTop", "On")
ExtraFixedResBezel.Set("AlwaysOnTop", "On")
VMU%A_Index%Draw := true
If !(VMUHidden)
VMUWindow%A_Index%.Set("Transparent", "off")
If !(VMULoaded){
VMUHideKey := xHotKeyVarEdit(VMUHideKey,"VMUHideKey","~","Add")
xHotKeywrapper(VMUHideKey,"VMUHide")
VMULoaded := true
}
emuPrimaryWindow.Activate()
}
}
If ((VMU1Draw) and (VMU2Draw) and (VMU3Draw) and (VMU4Draw))
SetTimer, CheckforVMU, off
Return

VMUHide:
If VMUHidden {
Loop, 4
VMUWindow%a_index%.Set("Transparent", "off")
UpdateLayeredWindow(extraFixedRes_Bezel_hwnd, extraFixedRes_Bezel_hdc,0,0, A_ScreenWidth, A_ScreenHeight,255)
VMUHidden := false
} Else {
Loop, 4
VMUWindow%a_index%.Set("Transparent", 0)
UpdateLayeredWindow(extraFixedRes_Bezel_hwnd, extraFixedRes_Bezel_hdc,0,0, A_ScreenWidth, A_ScreenHeight,0)
VMUHidden := true
}
Return

CloseProcess:
FadeOutStart()
If (demulShooterEnabled = "true") {
DemulShooterExe.Close()
}
emuPrimaryWindow.PostMessage("0x111", "40085") ; Stop emulation first for a clean exit
TimerUtils.Sleep(5) ; just like to give a little time before closing
emuPrimaryWindow.PostMessage("0x111", "40080") ; Exit


~Escape::
Process, Close, demul.exe
ExitAPP
return


qui a besoin des 
ROMs en Zip

Atoms_v055.ziphttps://1fichier.com/?8pg0jt7dypneen4p052l
DEMUL.pnghttps://1fichier.com/?uia15n9czx7yeva61tmw
demul0582.ziphttps://1fichier.com/?anbu5l16lugir8kqcj3y
demul07_111117.ziphttps://1fichier.com/?ai1u2895iascep56lsvc
demul07_180428.ziphttps://1fichier.com/?0kqaoxachdsnbucldzrq

Atomiswave.pnghttps://1fichier.com/?81adl5srgjxk8qd8xdws
anmlbskt.ziphttps://1fichier.com/?jz7jwqybbl7j0ofkzkfy
awbios.ziphttps://1fichier.com/?fmtr7xhoe4483k4xry9r
basschal.ziphttps://1fichier.com/?o1pgjbcyblsrpnj53kdo
blokpong.ziphttps://1fichier.com/?oi2b6zx0wnaf1fobdpet
claychal.ziphttps://1fichier.com/?tuirw4mm536mtjykphqm
demofist.ziphttps://1fichier.com/?7z3orf1p4vct619etxa1
dirtypig.ziphttps://1fichier.com/?e43fksz8z3c6jepzc51h
dolphin.ziphttps://1fichier.com/?ihg18t4dupyzljy29lxv
fotns.ziphttps://1fichier.com/?3ii9llfaz484hzbru7jk
ftspeed.ziphttps://1fichier.com/?l8rnyv5jydvawvgjsf36
ggisuka.ziphttps://1fichier.com/?mru9mcs3pa9rslzw18y7
ggx15.ziphttps://1fichier.com/?owg4wzopqxhv5ao27q8g
kofnw.ziphttps://1fichier.com/?b4e2x5exbs74gzadhf14
kofxi.ziphttps://1fichier.com/?er8kr9nqq1202n27iy9a
kov7sprt.ziphttps://1fichier.com/?1lxn5o3t9jde80ow1h49
maxspeed.ziphttps://1fichier.com/?7u7u8v9v4nsswhyu7k5h
mslug6.ziphttps://1fichier.com/?ra7pvwp180wkbyoc36ei
ngbc.ziphttps://1fichier.com/?ufs1aq655j1cqkoykr9x
rumblef.ziphttps://1fichier.com/?9nstan0vykqg9x7zi3p8
rumblef2.ziphttps://1fichier.com/?sdg2eqxxt7k1avx1l3ir
salmankt.ziphttps://1fichier.com/?s6u1icvwqxlo6sdi6fqr
samsptk.ziphttps://1fichier.com/?2hz6aemlkmu6vsv3o5fb
vfurlong.ziphttps://1fichier.com/?x97gmy2hpim5jgfizdby
waidrive.ziphttps://1fichier.com/?90wqrmqrgenp0hlgtt0m
xtrmhunt.ziphttps://1fichier.com/?ce5guo6qsfuqg1tr6ses

18wheelr.ziphttps://1fichier.com/?zo63l0bebuuxtpz5e2ca
18wheels.ziphttps://1fichier.com/?q1u6gpqag7xe193ps0db
18whlrur.ziphttps://1fichier.com/?ucmcadjll3whai0uvpsb
alienfnt.ziphttps://1fichier.com/?6xf8bqexysimt3v813ck
alienfnta.ziphttps://1fichier.com/?pyjtauol4ab5042h5a4f
alpilota.ziphttps://1fichier.com/?0apgqgraghkciji062pc
alpiltdx.ziphttps://1fichier.com/?quxttygbtc8kh311iaw6
asndynmt.ziphttps://1fichier.com/?uv7cctaom1rllrlzf3fn
aurora.ziphttps://1fichier.com/?2i938t816awjp9afsgga
ausfache.ziphttps://1fichier.com/?daxrmlqaw7rutqyw71um
azumanga.ziphttps://1fichier.com/?olqx0bfzwk9my1olvdwa
bdrdown.ziphttps://1fichier.com/?8kwp4onucqq321pzgoer
beachspi.ziphttps://1fichier.com/?tfiknhmxehi99nlokao8
brickppl.ziphttps://1fichier.com/?iy1e2r4tx1oijvpgvs8e
capsnk.ziphttps://1fichier.com/?qaui3zjbxskkmbxlghoa
capsnka.ziphttps://1fichier.com/?esdl0pug32307zfbu8b1
capsnkb.ziphttps://1fichier.com/?0yivlnr1efc8qpav0zkz
cfield.ziphttps://1fichier.com/?o28q7s8244o8si3w17w7
chocomk.ziphttps://1fichier.com/?v21gk6byczjyvf0parv5
claychal.ziphttps://1fichier.com/?hx0vnz6bbgecz56o0kbx
cleoftp.ziphttps://1fichier.com/?9hb9cvud6x5u2cy3ogox
clubkrtd.ziphttps://1fichier.com/?ofvovgt53pse8bcezq52
clubkrte.ziphttps://1fichier.com/?dp2c9u2njruhkclvu6rh
confmiss.ziphttps://1fichier.com/?q04p28tyk4im48gu487r
crackndj.ziphttps://1fichier.com/?bxcejhvs0s30ku9uvtiv
crakndj2.ziphttps://1fichier.com/?9pvnctxsgdx8mq9dh0z6
crzytaxi.ziphttps://1fichier.com/?vueheydruzglamr9gbnd
csmash.ziphttps://1fichier.com/?z7235sjwcizud3905w7j
csmasho.ziphttps://1fichier.com/?bvkv0qdntx5uj4bwqfct
cspike.ziphttps://1fichier.com/?715hmv6rjflufekzl0gt
cvs2gd.ziphttps://1fichier.com/?yvd0ett2xaqk92c7zagw
cvsgd.ziphttps://1fichier.com/?ecdsww1ikaxsmhgouzpe
dc.ziphttps://1fichier.com/?xc5wkxknxpqxihlb6x64
deathcox.ziphttps://1fichier.com/?wz8vs1cz0548y5tsaq4i
derbyoc.ziphttps://1fichier.com/?mxnhukh1vkdvzwys9v37
derbyoc2.ziphttps://1fichier.com/?y36a1oaz5fb3rl3zat7z
dinoki25.ziphttps://1fichier.com/?t70j6vghh0wbc6y0qtom
dinoking.ziphttps://1fichier.com/?0272nzrjm9ag9dy1amvn
dinokior.ziphttps://1fichier.com/?6lmrwe0bmqmle5ua3auj
doa2.ziphttps://1fichier.com/?3sbhh3215gfke69iq20g
doa2m.ziphttps://1fichier.com/?4azuzimrkm3mmk873x18
dybb99.ziphttps://1fichier.com/?u3licskapokal9y93n6v
dybbnao.ziphttps://1fichier.com/?velddyoe9s6ak103ivsz
dygolf.ziphttps://1fichier.com/?ekog0xt33itsq0gki1k5
f355.ziphttps://1fichier.com/?yqxzgi4qtcbjn9hv3716
f355bios.ziphttps://1fichier.com/?v9g64dkippyw7jn27jq8
f355dlx.ziphttps://1fichier.com/?afopvperken4595c72nm
f355twin.ziphttps://1fichier.com/?jjuuk0goj4q0q7604602
f355twn2.ziphttps://1fichier.com/?zkfuwie1uh5bnqfaxp1m
ggram2.ziphttps://1fichier.com/?ngvu63equayciib62sht
ggx.ziphttps://1fichier.com/?w4k4v457bq9wsb7ifgke
ggxx.ziphttps://1fichier.com/?zh4ds2pj7g5w9qk0ahfl
ggxxac.ziphttps://1fichier.com/?j8yv6sh6yhl6kzsheh6s
ggxxrl.ziphttps://1fichier.com/?8e0n6bqf46wubhacg25c
ggxxsla.ziphttps://1fichier.com/?nwdps0cwsd4lflbxq4r0
gram2000.ziphttps://1fichier.com/?rvrbcpc0pyybgy3ugqwx
gundmct.ziphttps://1fichier.com/?yv915m8gegn5jfrgt534
gundmxgd.ziphttps://1fichier.com/?ucgh1x5pmpi7zx1uy7hq
gunsur2.ziphttps://1fichier.com/?2fxfp6ilrtoupkbbc8pl
gunsur2e.ziphttps://1fichier.com/?s6d582qzwqpfuvrz4m2o
gwing2.ziphttps://1fichier.com/?kkqp403moyq3nwl8gv6f
hikaru.ziphttps://1fichier.com/?b02j4pn8zngjl4ojqs6s
hmgeo.ziphttps://1fichier.com/?5lmdjo7wxcaxt79e2i5u
hopperbd.ziphttps://1fichier.com/?3ty8hpq3cd4ntqkwjmse
hotd2.ziphttps://1fichier.com/?31u7j6lgvrsdlevg5n51
hotd2o.ziphttps://1fichier.com/?duh27bqjphlu204xyly3
ikaruga.ziphttps://1fichier.com/?tkjg73cb7zax3d2ef2il
illvelo.ziphttps://1fichier.com/?iur7q69fxld9hyhkv0ig
initd.ziphttps://1fichier.com/?jjcj3ne6591027h7g4d2
initdexp.ziphttps://1fichier.com/?bjmledkr9bu9quet8oyc
inunoos.ziphttps://1fichier.com/?px7by9tqj6uzl0mo5k47
jambo.ziphttps://1fichier.com/?t9gtykcrsedpz4g35e8p
jingystm.ziphttps://1fichier.com/?wq3125bj640vnwaxr61o
karous.ziphttps://1fichier.com/?a98fn9cjpe3xb2jn7w11
keyboard.ziphttps://1fichier.com/?8mddojgswo4s4f7lm1nz
kick4csh.ziphttps://1fichier.com/?9351w4ddb8u50bphxv20
kingrt66.ziphttps://1fichier.com/?hekjlpqm3zpzygpuexmk
kof11.ziphttps://1fichier.com/?kx0o8molz8ejkzl2gz0u
kofnwj.ziphttps://1fichier.com/?8cmi4vg2jn190n8vkq0i
kurucham.ziphttps://1fichier.com/?5so8oh3u0trih3qpgm2z
loveber3.ziphttps://1fichier.com/?7vl347k4k8wn3h28z0t0
lovebero.ziphttps://1fichier.com/?exsi10hnocvlp8iqn5tr
lovebery.ziphttps://1fichier.com/?2tg5hm70lfr5obwjdks7
lupinsho.ziphttps://1fichier.com/?yjem8dsmb9g348p87bhg
luptype.ziphttps://1fichier.com/?3wz2ihz0vq4tj7xg8c17
marstv.ziphttps://1fichier.com/?ozooq1xbjrov91wbg2x7
mazan.ziphttps://1fichier.com/?mjkt6gydexofoiv9dw6t
mazana.ziphttps://1fichier.com/?jqspjw8zdi5si4dzzqz7
meltyb.ziphttps://1fichier.com/?zi9s0o72bvuy8jhkxad4
meltyba.ziphttps://1fichier.com/?tgqgxpo5s7v5uvlviw66
meltybld.ziphttps://1fichier.com/?2ce9w9962xed7l5s93ca
mie.ziphttps://1fichier.com/?a6ss3afe2fzq0ysapv14
moeru.ziphttps://1fichier.com/?42eumm2yfjfxuuvk977i
mok.ziphttps://1fichier.com/?0kvebtj05k4efmt87k0g
monkeyba.ziphttps://1fichier.com/?juniuoy1jrfjk38nbezf
mvsc2.ziphttps://1fichier.com/?7h8nmwc5rimtdyg0bk9k
mvsc2u.ziphttps://1fichier.com/?wbfiolv6x77krie9lnbd
naomi.ziphttps://1fichier.com/?j3m7jak427gqdnmdz8l4
naomi2.ziphttps://1fichier.com/?ias2pp5lnc5hmhj66t1v
naomigd.ziphttps://1fichier.com/?hm2xs61d2q89w7mw196p
ninjaslt.ziphttps://1fichier.com/?efk05ns36j5kgu9f64si
oinori.ziphttps://1fichier.com/?w7x1sa0vxghknxu1w43m
otrigger.ziphttps://1fichier.com/?k8jp3hs7tpqynjwv9uj5
pjustic.ziphttps://1fichier.com/?c5pmsxyt06qb1jm4i2zm
pstone.ziphttps://1fichier.com/?ozfbhavim5ghtno1p0oy
pstone2.ziphttps://1fichier.com/?al1cnyqurbjeqd1bhz6v
psyvar2.ziphttps://1fichier.com/?q7fbrng6h6f30wnhes43
puyofev.ziphttps://1fichier.com/?djlrb4xo0yzui2scobls
qmegamis.ziphttps://1fichier.com/?iuss3mkvsq38piq3ktvv
quizqgd.ziphttps://1fichier.com/?q0nln7kug0z3dc7k032f
radirgy.ziphttps://1fichier.com/?w9n3t839z6nq210zk9xr
radirgya.ziphttps://1fichier.com/?urn0l3aitx4tql9ly36t
radirgyn.ziphttps://1fichier.com/?h5a8bz5hm1v552g6ozle
ringout.ziphttps://1fichier.com/?f5sib6uier7pjyki8q53
samba.ziphttps://1fichier.com/?uilwl8geza1bd3ff2wqd
samba2k.ziphttps://1fichier.com/?u0qbzzlkojn7jfmcqdmn
sambap.ziphttps://1fichier.com/?f8qxvpum9fdx01g7htkp
segasp.ziphttps://1fichier.com/?vwj6sg5s3qd9p8qw0blz
senko.ziphttps://1fichier.com/?2uo0wfhx2c8g07j738uf
senkoo.ziphttps://1fichier.com/?0kxxk4ws871289qly4gg
senkosp.ziphttps://1fichier.com/?eeocjfuu7teeugvqldh1
sfz3ugd.ziphttps://1fichier.com/?6avjjz9uhqvu3q5qi5ln
sgtetris.ziphttps://1fichier.com/?evu71diy3ot8cdd11lsw
shaktamb.ziphttps://1fichier.com/?angh385npnhxlv25motc
shaktmsp.ziphttps://1fichier.com/?vsklwbgxoznfbczwwphk
shangril.ziphttps://1fichier.com/?zdzlc01a8ny9jxfe0ezz
shikgam2.ziphttps://1fichier.com/?0ei3btodakmlvut8tq8f
shootopl.ziphttps://1fichier.com/?gi3iit6ckqqng35d663u
shootpl.ziphttps://1fichier.com/?diwhnxwjoef8k7t7hm0k
shootplm.ziphttps://1fichier.com/?x1yi6j828xqj2ygjsvs9
sl2007.ziphttps://1fichier.com/?283i24z86vehsu530yb9
slasho.ziphttps://1fichier.com/?9ajt0w8o6rfcjjmqa7ts
slashout.ziphttps://1fichier.com/?z16r3xd7pw9ygr7lk88g
smarinef.ziphttps://1fichier.com/?w5sbhj1jid14jq1stlhs
smlg99.ziphttps://1fichier.com/?7q88wlfe1e4yn9yrdtcs
soulsurf.ziphttps://1fichier.com/?o2reqm8911n4hs9rsaz4
spawn.ziphttps://1fichier.com/?s8u4zmfvw4ovuhm9dgme
spkrbtl.ziphttps://1fichier.com/?gihwebpt5g1n3mgn9chj
sprtjam.ziphttps://1fichier.com/?xqmswk2gaad8pt9lq4nk
ss2005.ziphttps://1fichier.com/?wf510o48dip88yj3fevx
ss2005a.ziphttps://1fichier.com/?mb2mr2g5g9k56h4pzvcd
sstrkfgt.ziphttps://1fichier.com/?56vmytrfh2aw84ksq9d4
starseek.ziphttps://1fichier.com/?g4lt8usflzgord0djgmv
suchie3.ziphttps://1fichier.com/?oabvfpqo01820m9oxhwn
takoron.ziphttps://1fichier.com/?e1m1uscy521pxbzrl98d
tduno2.ziphttps://1fichier.com/?49k214p7mrsvjhmpp3v1
tetkiwam.ziphttps://1fichier.com/?k6tc6exf4kz4kmzuko5f
totd.ziphttps://1fichier.com/?90ba791xvdndm9zdgy0b
toyfight.ziphttps://1fichier.com/?nn3ao0n5cffv53c9lstf
trgheart.ziphttps://1fichier.com/?uzarytz0hlzfcf4t0j5i
trizeal.ziphttps://1fichier.com/?sbxsrbgq15un78jc0bja
undefeat.ziphttps://1fichier.com/?6qk4xbuy5wxbf1kd0cj4
usagui.ziphttps://1fichier.com/?d3c1qfnnk7ztxvvm5rd9
vathlete.ziphttps://1fichier.com/?lzpvdu6m5xm7re848r8l
vf4.ziphttps://1fichier.com/?0y36b1wo17vwgyvn7nnl
vf4b.ziphttps://1fichier.com/?ibitd96jp98hdy9xx7q1
vf4c.ziphttps://1fichier.com/?ceks8dauf8omq98fgeyn
vf4evo.ziphttps://1fichier.com/?lczo56dozjlyl0s6qa32
vf4evoa.ziphttps://1fichier.com/?v6mwi73ieh7b735xo75q
vf4tuned.ziphttps://1fichier.com/?4sk2ttgy8r61y5z83n23
vf4tuneda.ziphttps://1fichier.com/?1kbxpvphprf6ua8fqeak
vf4tunedd.ziphttps://1fichier.com/?4lh1nfpznkq4zoxau7zh
virnba.ziphttps://1fichier.com/?013yc6b26mrc6kwmxo7f
virnbao.ziphttps://1fichier.com/?ispt8u0jpobobb2rixpm
virnbap.ziphttps://1fichier.com/?pd0pjwdt3481myxy84ay
vonot.ziphttps://1fichier.com/?ux7gbfujcon7ltp6r7cj
vs2_2k.ziphttps://1fichier.com/?9rsnzs0oxx8txxwr37hg
vstrik3.ziphttps://1fichier.com/?ou8ng9sdv6z98ci9qvvl
vstrik3c.ziphttps://1fichier.com/?dxo2waug22dnzgex1i42
vtenis2c.ziphttps://1fichier.com/?v7cklf89dc6wkdy90x6k
vtennis.ziphttps://1fichier.com/?cptl67dudoxef95udtpo
vtennis2.ziphttps://1fichier.com/?fitv7grg944a7sbhdvpe
vtennisg.ziphttps://1fichier.com/?kufahhrvc5ue8px14z8q
wldkicks.ziphttps://1fichier.com/?xecy6pmnaraxrqznx45w
wldrider.ziphttps://1fichier.com/?pa3hah4cytc3cgfc62s9
wsbbgd.ziphttps://1fichier.com/?v5zt41vnyjewinfug6xq
wwfroyal.ziphttps://1fichier.com/?g0yfcgalb9exh58g7htm
zombrvn.ziphttps://1fichier.com/?1bkrk90iaygm70g50d7g
zunou.ziphttps://1fichier.com/?m1q4nfy50p822qup30fu

naomi.ziphttps://1fichier.com/?czgq365oaursglfm8ip5
vf4b.ziphttps://1fichier.com/?ihw8v675cpe9six94xar
vf4evo.ziphttps://1fichier.com/?p8x53on2r9c09b2wkan6
vf4evoa.ziphttps://1fichier.com/?3ju6wqnm0x9uwtj0ywos
vf4tuned.ziphttps://1fichier.com/?012dv03lfabyho7c0l1n
vf4tuneda.ziphttps://1fichier.com/?e6o1b60qo7e17tpucqlf
vf4tunedd.ziphttps://1fichier.com/?dcmc6zgnuem7sty00ud5


SEGA
& various BIOS

airtrix.ziphttps://desfichiers.com/?j6qm4dnzqu7xi4hngqgy
airtrixo.ziphttps://desfichiers.com/?kloca7u8i6twpz8xy7oa
awbios.7zhttps://desfichiers.com/?hkgomyh9g88yk93hky1f
braveff.ziphttps://desfichiers.com/?46lmjvyztqcafulukhzk
crp.7zhttps://desfichiers.com/?zrriitk1v0xrublpqc4q
cvs2gd.ziphttps://desfichiers.com/?y1t4ez95snq6s6fy28lc
cvsgd.ziphttps://desfichiers.com/?uyasnoybfnfzfe9a4mvx
dc.7zhttps://desfichiers.com/?4hqgbpp35hf90ez85fzh
dimm.7zhttps://desfichiers.com/?3rcqpb0dp7s9kqz848o5
dragntr2.ziphttps://desfichiers.com/?xlwjust30czrulen63w3
dragntr3.ziphttps://desfichiers.com/?hm0g7af8kuk3er9mp236
f355bios.ziphttps://desfichiers.com/?mszptedx1d06ixhy7qyv
hikaru.7zhttps://desfichiers.com/?1hp1bdpgucpzyyrgnwf0
mie.7zhttps://desfichiers.com/?caz8irzet3g6s4wmf3un
naomi.7zhttps://desfichiers.com/?x1vezy78z5balt8xhwe6
naomi2.7zhttps://desfichiers.com/?o4hok9fyx7njoog5jxb5
pharrier.ziphttps://desfichiers.com/?l7ufhv3z8daugumrllmg
segasp.7zhttps://desfichiers.com/?nnj8tvlppsw3ud2bz8k4
sgnascar.ziphttps://desfichiers.com/?wzc37g368bqd2rt9oc0t
sgnascaro.ziphttps://desfichiers.com/?6kd1bfnvkdoaj9y5atjg
shaktamb.ziphttps://desfichiers.com/?l5mduur8wfie86dghj6t
spkrbtl.ziphttps://desfichiers.com/?g9gefan2certzebtnusf
swracer.ziphttps://desfichiers.com/?ve88qzsrpehh5awdkcxd










Atomiswave_Custom_1P_orangeAtomiswave_Insert_Coin_100_YenAtomiswave_Logo

Click thumbnail to get the corresponding vector file.


Atomiswave_Custom_1P_green.ai 163 Kb     back to top



Atomiswave_Custom_1P_orange.ai 173 Kb     back to top



Atomiswave_Insert_Coin_100_Yen.pdf 1.1 Mb     back to top



Atomiswave_Logo.ai 450 Kb     back to top