For me ATM :
1 - the gpuDx plugin dx10 and dx11 are totally bugged on seven x64with version 0.5.7.
2 - the version 0.5.8 version works with DX10 and DX11 pluggin but it s too much crappy.
3 - the version 0.5.8 don't work with old plugins.
So ATM I work with version 0.5.7 and gpuDXv3 pluggin, Now the problems
1 - All games don't have same configurations
2 - Fullscreen don't work on atomicswave system (flickering)
3 - All game don't use same bios, and AutoSelect don't work.
I have started an autoit script to solve theses bug but I can't find somes functions like remove the Demul Toolbat, If someone have an idea.
Code: Select all
<System>
<Name>Naomi</Name>
<AppPath>F:\emulateur\arcade\Demul\DemulAutoit.exe</AppPath>
<RomPath>F:\emulateur\arcade\Demul\Roms naomi</RomPath>
<SnapPath>F:\emulateur\Mgalaxy\snapsemul\arcade</SnapPath>
<VidPath />
<Emu selected="0">
<Cmd id="0" name="Naomi (AutoIt)" value="Naomi %file" />
</Emu>
<Ext selected="0">
<Suf id="0" value=".zip" />
</Ext>
<Active>True</Active>
</System>
<System>
<Name>Atomiswave</Name>
<AppPath>F:\emulateur\arcade\Demul\DemulAutoit.exe</AppPath>
<RomPath>F:\emulateur\arcade\Demul\Roms Atomiswave</RomPath>
<SnapPath>F:\emulateur\Mgalaxy\snapsemul\arcade</SnapPath>
<VidPath />
<Emu selected="0">
<Cmd id="0" name="Atomiswave (AutoIt)" value="Atomiswave %file" />
</Emu>
<Ext selected="0">
<Suf id="0" value=".zip" />
</Ext>
<Active>True</Active>
</System>
Code: Select all
#include <WindowsConstants.au3>
#include <WinAPI.au3>
#include <Misc.au3>
If $CmdLine[0] == 0 Then exit
HotKeySet("{ESC}", "Terminate")
Opt("WinTitleMatchMode", 1)
local $file = $CmdLine[2]
local $fullscreenmode = 0 ; 0 = normal fullscreen 1 = special Fullscreen
; here you can use different configuration by game
local $option2 = "false"
local $option1 = IniRead("gpuDXv3.ini","main","transformZ", "")
;for naomi rom
if stringInStr($CmdLine[1],"naomi") then
$type = ' -run=naomi -rom="'
local $bios2 = 0
Local $bios1 = IniRead("demul.ini", "main", "naomiBios", "")
;Special config for house of dead 2
if $file = "hotd2" then
$bios2 = 17
$option2 = "true"
else If $file = "hotd2" then
$bios2 = 19
else If $file = "alpildx" then
$bios2 = 21
else
$bios2 = 10
Endif
If $bios1 <> $bios2 then Iniwrite("demul.ini", "main", "naomiBios", $bios2)
;for atomiswave rom
elseif stringInStr($CmdLine[1],"Atomiswave") then
$type = ' -run=atomiswave -rom="'
$fullscreenmode = 1
;bug
Else
Exit 0
Endif
;Set differents options by game
If $option1 <> $option2 then
Iniwrite("gpuDXv3.ini","main","transformZ", $option2)
Endif
$PID = Run("demul.exe" & $type & $file & '"')
Local $hWnd = WinWaitActive ( "gpu" )
if $fullscreenmode = 1 then
Local $winX = 0
Local $winY = 0
Local $winWidth = @DesktopWidth
Local $winHeight = @DesktopHeight+20
WinSetStyle($hWnd,$WS_POPUP)
WinMove("gpu", "", $winX, $winY, $winWidth, $winHeight)
Send("!{F3}")
_MouseTrap(@DesktopWidth, @DesktopHeight, @DesktopWidth, @DesktopHeight)
__myTaskHS(True)
else
Send("!{ENTER}")
endif
ProcessWaitClose("demul.exe")
if $fullscreenmode = 1 then __myTaskHS(False)
Exit 0
Func Terminate()
While ProcessExists ( $PID )
ProcessClose ( $PID )
WEnd
if $fullscreenmode = 1 then __myTaskHS(False)
Exit 0
EndFunc
Func WinSetStyle($hWnd, $Style = -1, $ExStyle = 0)
Local Const $GWL_STYLE = -16
Local Const $GWL_EXSTYLE = -20
Local Const $SWP_NOMOVE = 0x2
Local Const $SWP_NOSIZE = 0x1
Local Const $SWP_SHOWWINDOW = 0x40
Local Const $SWP_NOZORDER = 0x4
Local $iFlags = BitOR($SWP_SHOWWINDOW, $SWP_NOSIZE, $SWP_NOMOVE, $SWP_NOZORDER)
If $Style = -1 Then $Style = $WS_MINIMIZEBOX + $WS_CAPTION + $WS_POPUP + $WS_SYSMENU
DllCall("User32.dll", "int", "SetWindowLong", "hwnd", $hWnd, "int", $GWL_STYLE, "int", $Style)
DllCall("User32.dll", "int", "SetWindowLong", "hwnd", $hWnd, "int", $GWL_EXSTYLE, "int", $ExStyle)
DllCall("User32.dll", "int", "SetWindowPos", "hwnd", $hWnd, "hwnd", 0, "int", 0, "int", 0, _
"int", 0, "int", 0, "int", $iFlags)
EndFunc
Func __myTaskHS($f_hide = False)
Local $h_task = WinGetHandle("[CLASS:Shell_TrayWnd]")
If Not $h_task Then Return SetError(1, 0, 0)
Local $h_start = 0
Local $a_wlist = WinList("[CLASS:Button]")
If Not IsArray($a_wlist) Then Return SetError(2, 0, 0)
For $iwin = 1 To $a_wlist[0][0]
If _WinAPI_GetParent($a_wlist[$iwin][1]) = $h_task Then
$h_start = $a_wlist[$iwin][1]
ExitLoop
EndIf
Next
If Not $h_start Then Return SetError(3, 0, 0)
If $f_hide Then
_WinAPI_ShowWindow($h_start, @SW_HIDE)
_WinAPI_ShowWindow($h_task, @SW_HIDE)
Else
_WinAPI_ShowWindow($h_start, @SW_SHOW)
_WinAPI_ShowWindow($h_task, @SW_SHOW)
EndIf
EndFunc