1
0
mirror of https://github.com/DxWnd/DxWnd.reloaded synced 2024-12-30 09:25:35 +01:00

v2_02_44_src

Former-commit-id: 3b3df3b7cb1e79218b567f47f3d52959daa225f7
This commit is contained in:
gho tik 2013-11-28 11:38:31 -05:00 committed by Refael ACkermann
parent 75164868ec
commit 573a89d129
91 changed files with 8791 additions and 7474 deletions

2296
Include/amstream.h Normal file

File diff suppressed because it is too large Load Diff

View File

@ -116,6 +116,7 @@
#define NOALPHACHANNEL 0x00000001 // By default, create surfaces with no DDPF_ALPHAPIXELS capability #define NOALPHACHANNEL 0x00000001 // By default, create surfaces with no DDPF_ALPHAPIXELS capability
#define SUPPRESSCHILD 0x00000002 // suppress child process generation (CreateProcessA, ...?) #define SUPPRESSCHILD 0x00000002 // suppress child process generation (CreateProcessA, ...?)
#define FIXREFCOUNTER 0x00000004 // fixes the reference counter for the main directdraw session (the one connected to primary surfaces) #define FIXREFCOUNTER 0x00000004 // fixes the reference counter for the main directdraw session (the one connected to primary surfaces)
#define SHOWTIMESTRETCH 0x00000008 // Shows time stretching multiplier on screen overlay
// logging Tflags DWORD: // logging Tflags DWORD:
#define OUTTRACE 0x00000001 // enables tracing to dxwnd.log in general #define OUTTRACE 0x00000001 // enables tracing to dxwnd.log in general

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,167 +0,0 @@
[window]
posx=1452
posy=365
sizx=320
sizy=514
[target]
title0=Rayman 2 Demo
path0=D:\Games\Rayman2Demo\Rayman2Demo.exe
module0=
opengllib0=
ver0=1
coord0=0
flag0=402653217
flagg0=1210056704
flagh0=2097172
flagi0=0
tflag0=64
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0
title1=Mirror's Edge
path1=D:\Games\Mirror's Edge\Binaries\MirrorsEdge.exe
module1=
opengllib1=
ver1=0
coord1=0
flag1=-2013265882
flagg1=1207959552
flagh1=2097172
flagi1=0
tflag1=5
initx1=0
inity1=0
minx1=0
miny1=0
maxx1=0
maxy1=0
posx1=50
posy1=50
sizx1=800
sizy1=600
maxfps1=0
initts1=6
title2=LastHalfWin.exe
path2=D:\Games\Last Half Of Darkness\LastHalfWin.exe
module2=
opengllib2=
ver2=1
coord2=0
flag2=134217760
flagg2=1207959552
flagh2=4
flagi2=0
tflag2=512
initx2=0
inity2=0
minx2=0
miny2=0
maxx2=0
maxy2=0
posx2=50
posy2=50
sizx2=800
sizy2=600
maxfps2=0
initts2=0
title3=DOOM95.EXE
path3=D:\Games\Doom95i\DOOM95.EXE
module3=
opengllib3=
ver3=0
coord3=0
flag3=134217762
flagg3=1207959552
flagh3=20
flagi3=0
tflag3=512
initx3=0
inity3=0
minx3=0
miny3=0
maxx3=0
maxy3=0
posx3=50
posy3=50
sizx3=800
sizy3=600
maxfps3=0
initts3=0
title4=CNC3.exe
path4=D:\Games\Command & Conquer 3\CNC3.exe
module4=
opengllib4=
ver4=9
coord4=0
flag4=134217762
flagg4=1207959552
flagh4=20
flagi4=0
tflag4=512
initx4=0
inity4=0
minx4=0
miny4=0
maxx4=0
maxy4=0
posx4=50
posy4=50
sizx4=800
sizy4=600
maxfps4=0
initts4=0
title5=Div.exe
path5=D:\Games\Beyond Divinity\Div.exe
module5=
opengllib5=
ver5=0
coord5=0
flag5=134217762
flagg5=1207959552
flagh5=20
flagi5=0
tflag5=512
initx5=0
inity5=0
minx5=0
miny5=0
maxx5=0
maxy5=0
posx5=50
posy5=50
sizx5=800
sizy5=600
maxfps5=0
initts5=0
title6=martian gothic.exe
path6=D:\Games\Martian Gothic\martian gothic.exe
module6=
opengllib6=
ver6=7
coord6=0
flag6=201326626
flagg6=1208090624
flagh6=276
flagi6=0
tflag6=263
initx6=0
inity6=0
minx6=0
miny6=0
maxx6=0
maxy6=0
posx6=50
posy6=50
sizx6=800
sizy6=600
maxfps6=0
initts6=0

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:5c0d2dcaecf0148f5d3ef79ca65a40148ad4b38921a6705d6dcd736f66a71c74 oid sha256:cf9c7d5fd45f8f880656efab5c5db5ef3a0a8e74942d2b2418bf5a49f8fab39b
size 425984 size 426496

Binary file not shown.

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:bfed2b8cff2d31bff7391b371e2913378ac855e390fe9dbd2c1c6384eef71963 oid sha256:97bc60a26fa1ffe141ac022b2baadea04bef5c3b2d9072c19d606d61261266bc
size 532480 size 532992

View File

@ -22,16 +22,16 @@ sizx0=800
sizy0=600 sizy0=600
maxfps0=0 maxfps0=0
initts0=0 initts0=0
title1=Dungeon Keeper 2 (GOG) title1=Duckman
path1=D:\Games\Dungeon Keeper 2 (GOG)\DKII.EXE path1=D:\Games\Duckman\DUCKMAN.EXE
module1= module1=
opengllib1= opengllib1=
ver1=0 ver1=0
coord1=0 coord1=0
flag1=136331298 flag1=134217762
flagg1=1241513984 flagg1=1209008128
flagh1=20 flagh1=20
flagi1=0 flagi1=4
tflag1=259 tflag1=259
initx1=0 initx1=0
inity1=0 inity1=0
@ -45,16 +45,16 @@ sizx1=800
sizy1=600 sizy1=600
maxfps1=0 maxfps1=0
initts1=0 initts1=0
title2=Heroes of Might and Magic IV title2=Dungeon Keeper 2 (GOG)
path2=D:\Games\Heroes of Might and Magic IV\heroes4.exe path2=D:\Games\Dungeon Keeper 2 (GOG)\DKII.EXE
module2= module2=
opengllib2= opengllib2=
ver2=0 ver2=0
coord2=2 coord2=0
flag2=671350818 flag2=136331298
flagg2=1207959568 flagg2=1241513984
flagh2=-2147418092 flagh2=20
flagi2=1 flagi2=0
tflag2=259 tflag2=259
initx2=0 initx2=0
inity2=0 inity2=0
@ -68,17 +68,17 @@ sizx2=800
sizy2=600 sizy2=600
maxfps2=0 maxfps2=0
initts2=0 initts2=0
title3=Motocross Madness (DEMO) title3=Empire Earth
path3=D:\Games\Motocross Madness Trial\mcm.exe path3=D:\Games\Empire Earth\Empire Earth.exe
module3= module3=
opengllib3= opengllib3=
ver3=0 ver3=0
coord3=0 coord3=0
flag3=134217760 flag3=687866016
flagg3=1207959552 flagg3=201326848
flagh3=20 flagh3=65620
flagi3=0 flagi3=0
tflag3=0 tflag3=263
initx3=0 initx3=0
inity3=0 inity3=0
minx3=0 minx3=0
@ -91,17 +91,17 @@ sizx3=800
sizy3=600 sizy3=600
maxfps3=0 maxfps3=0
initts3=0 initts3=0
title4=Project Nomads (DEMO) title4=Grand Prix World
path4=D:\Games\Project Nomads Demo\bin\win32\nomads.exe path4=D:\Games\Grand Prix World\gpw.exe
module4= module4=
opengllib4= opengllib4=
ver4=8 ver4=0
coord4=0 coord4=0
flag4=-1476394974 flag4=134217762
flagg4=1207959808 flagg4=1207959680
flagh4=4 flagh4=84
flagi4=0 flagi4=4
tflag4=274 tflag4=0
initx4=0 initx4=0
inity4=0 inity4=0
minx4=0 minx4=0
@ -114,17 +114,17 @@ sizx4=800
sizy4=600 sizy4=600
maxfps4=0 maxfps4=0
initts4=0 initts4=0
title5=Shadows of the Empire (DEMO) title5=Hearts of Iron 2
path5=D:\Games\Shadows of the Empire\shadows.exe path5=D:\Games\Hearts of Iron 2\HoI2.exe
module5= module5=
opengllib5= opengllib5=
ver5=0 ver5=0
coord5=2 coord5=2
flag5=134479906 flag5=939526179
flagg5=1207959568 flagg5=1207959568
flagh5=33554452 flagh5=32788
flagi5=0 flagi5=2
tflag5=274 tflag5=2
initx5=0 initx5=0
inity5=0 inity5=0
minx5=0 minx5=0
@ -137,17 +137,17 @@ sizx5=800
sizy5=600 sizy5=600
maxfps5=0 maxfps5=0
initts5=0 initts5=0
title6=Tomb Raider 4 (DEMO) title6=Heroes of Might and Magic IV
path6=D:\Games\Tomb Raider - The Last Revelation (Demo)\tomb4.exe path6=D:\Games\Heroes of Might and Magic IV\heroes4.exe
module6= module6=
opengllib6= opengllib6=
ver6=7 ver6=0
coord6=0 coord6=2
flag6=134217760 flag6=671350818
flagg6=1207959552 flagg6=1207959568
flagh6=20 flagh6=-2147418092
flagi6=0 flagi6=1
tflag6=258 tflag6=259
initx6=0 initx6=0
inity6=0 inity6=0
minx6=0 minx6=0
@ -160,13 +160,13 @@ sizx6=800
sizy6=600 sizy6=600
maxfps6=0 maxfps6=0
initts6=0 initts6=0
title7=Tomb Raider II title7=Motocross Madness (DEMO)
path7=D:\Games\Tomb Raider II\Tomb2.exe path7=D:\Games\Motocross Madness Trial\mcm.exe
module7= module7=
opengllib7= opengllib7=
ver7=0 ver7=0
coord7=0 coord7=0
flag7=671088674 flag7=134217760
flagg7=1207959552 flagg7=1207959552
flagh7=20 flagh7=20
flagi7=0 flagi7=0
@ -183,17 +183,17 @@ sizx7=800
sizy7=600 sizy7=600
maxfps7=0 maxfps7=0
initts7=0 initts7=0
title8=Tomb Raider II Gold (DEMO) title8=Praetorians
path8=D:\Games\Tomb Raider II Gold (Demo)\Tomb2.exe path8=D:\games\Praetorians\Praetorians.exe
module8= module8=
opengllib8= opengllib8=
ver8=0 ver8=0
coord8=2 coord8=0
flag8=671088674 flag8=134217760
flagg8=1224736784 flagg8=1207959552
flagh8=20 flagh8=20
flagi8=0 flagi8=4
tflag8=258 tflag8=3
initx8=0 initx8=0
inity8=0 inity8=0
minx8=0 minx8=0
@ -206,17 +206,17 @@ sizx8=800
sizy8=600 sizy8=600
maxfps8=0 maxfps8=0
initts8=0 initts8=0
title9=Tomb Raider III title9=Project Nomads (DEMO)
path9=D:\Games\Tomb Raider III\tomb3.exe path9=D:\Games\Project Nomads Demo\bin\win32\nomads.exe
module9= module9=
opengllib9= opengllib9=
ver9=0 ver9=8
coord9=2 coord9=0
flag9=134217760 flag9=-1476394974
flagg9=1241514000 flagg9=1207959808
flagh9=20 flagh9=4
flagi9=0 flagi9=0
tflag9=322 tflag9=274
initx9=0 initx9=0
inity9=0 inity9=0
minx9=0 minx9=0
@ -229,17 +229,17 @@ sizx9=800
sizy9=600 sizy9=600
maxfps9=0 maxfps9=0
initts9=0 initts9=0
title10=Virtua Fighter 2 (DEMO) title10=Rayman 2 Demo
path10=D:\Games\vf2_demo\VF2DEMO.EXE path10=D:\Games\Rayman2Demo\Rayman2Demo.exe
module10= module10=
opengllib10= opengllib10=
ver10=0 ver10=7
coord10=0 coord10=0
flag10=939524131 flag10=402653219
flagg10=1207959664 flagg10=1208025088
flagh10=20 flagh10=2097172
flagi10=0 flagi10=0
tflag10=1 tflag10=259
initx10=0 initx10=0
inity10=0 inity10=0
minx10=0 minx10=0
@ -251,18 +251,18 @@ posy10=50
sizx10=800 sizx10=800
sizy10=600 sizy10=600
maxfps10=0 maxfps10=0
initts10=0 initts10=4
title11=Virtua Fighter PC title11=Shadows of the Empire (DEMO)
path11=D:\Games\vfpc\VFPC.EXE path11=D:\Games\Shadows of the Empire\shadows.exe
module11= module11=
opengllib11= opengllib11=
ver11=0 ver11=0
coord11=0 coord11=2
flag11=402915362 flag11=134479906
flagg11=1224736784 flagg11=1207959568
flagh11=33562644 flagh11=33554452
flagi11=0 flagi11=0
tflag11=3 tflag11=274
initx11=0 initx11=0
inity11=0 inity11=0
minx11=0 minx11=0
@ -275,17 +275,17 @@ sizx11=800
sizy11=600 sizy11=600
maxfps11=0 maxfps11=0
initts11=0 initts11=0
title12=Wargasm title12=StarCraft
path12=D:\Games\Wargasm\tank.exe path12=D:\Games\Starcraft\StarCraft.exe
module12= module12=
opengllib12= opengllib12=
ver12=0 ver12=0
coord12=2 coord12=0
flag12=687865888 flag12=134217762
flagg12=1207959568 flagg12=134283264
flagh12=65556 flagh12=20
flagi12=0 flagi12=8
tflag12=2 tflag12=64
initx12=0 initx12=0
inity12=0 inity12=0
minx12=0 minx12=0
@ -298,15 +298,15 @@ sizx12=800
sizy12=600 sizy12=600
maxfps12=0 maxfps12=0
initts12=0 initts12=0
title13=Warlords Battlecry II (DEMO) title13=Tomb Raider 4 (DEMO)
path13=D:\Games\Warlords Battlecry II Demo\Battlecry II Demo.exe path13=D:\Games\Tomb Raider - The Last Revelation (Demo)\tomb4.exe
module13= module13=
opengllib13= opengllib13=
ver13=0 ver13=7
coord13=2 coord13=0
flag13=134217762 flag13=134217760
flagg13=1207959568 flagg13=1207959552
flagh13=22 flagh13=20
flagi13=0 flagi13=0
tflag13=258 tflag13=258
initx13=0 initx13=0
@ -321,17 +321,17 @@ sizx13=800
sizy13=600 sizy13=600
maxfps13=0 maxfps13=0
initts13=0 initts13=0
title14=Zax the Alien Hunter (DEMO) title14=Tomb Raider II
path14=D:\Games\ZaxDemo\Zax.exe path14=D:\Games\Tomb Raider II\Tomb2.exe
module14= module14=
opengllib14= opengllib14=
ver14=0 ver14=0
coord14=2 coord14=0
flag14=-2011168734 flag14=671088674
flagg14=1209008144 flagg14=1207959552
flagh14=20 flagh14=20
flagi14=0 flagi14=0
tflag14=258 tflag14=0
initx14=0 initx14=0
inity14=0 inity14=0
minx14=0 minx14=0
@ -344,17 +344,17 @@ sizx14=800
sizy14=600 sizy14=600
maxfps14=0 maxfps14=0
initts14=0 initts14=0
title15=Hearts of Iron 2 title15=Tomb Raider II Gold (DEMO)
path15=D:\Games\Hearts of Iron 2\HoI2.exe path15=D:\Games\Tomb Raider II Gold (Demo)\Tomb2.exe
module15= module15=
opengllib15= opengllib15=
ver15=0 ver15=0
coord15=2 coord15=2
flag15=939526179 flag15=671088674
flagg15=1207959568 flagg15=1224736784
flagh15=32788 flagh15=20
flagi15=2 flagi15=0
tflag15=2 tflag15=258
initx15=0 initx15=0
inity15=0 inity15=0
minx15=0 minx15=0
@ -367,17 +367,17 @@ sizx15=800
sizy15=600 sizy15=600
maxfps15=0 maxfps15=0
initts15=0 initts15=0
title16=Rayman 2 Demo title16=Tomb Raider III
path16=D:\Games\Rayman2Demo\Rayman2Demo.exe path16=D:\Games\Tomb Raider III\tomb3.exe
module16= module16=
opengllib16= opengllib16=
ver16=7 ver16=0
coord16=0 coord16=2
flag16=402653219 flag16=134217760
flagg16=1208025088 flagg16=1241514000
flagh16=2097172 flagh16=20
flagi16=0 flagi16=0
tflag16=259 tflag16=322
initx16=0 initx16=0
inity16=0 inity16=0
minx16=0 minx16=0
@ -389,18 +389,18 @@ posy16=50
sizx16=800 sizx16=800
sizy16=600 sizy16=600
maxfps16=0 maxfps16=0
initts16=4 initts16=0
title17=Empire Earth title17=Virtua Fighter 2 (DEMO)
path17=D:\Games\Empire Earth\Empire Earth.exe path17=D:\Games\vf2_demo\VF2DEMO.EXE
module17= module17=
opengllib17= opengllib17=
ver17=0 ver17=0
coord17=0 coord17=0
flag17=671105057 flag17=939524131
flagg17=134217744 flagg17=1207959664
flagh17=84 flagh17=20
flagi17=0 flagi17=0
tflag17=3 tflag17=1
initx17=0 initx17=0
inity17=0 inity17=0
minx17=0 minx17=0
@ -413,8 +413,238 @@ sizx17=800
sizy17=600 sizy17=600
maxfps17=0 maxfps17=0
initts17=0 initts17=0
title18=Virtua Fighter PC
path18=D:\Games\Virtua Fighter\VFPC.EXE
module18=
opengllib18=
ver18=0
coord18=0
flag18=402653218
flagg18=1224736784
flagh18=33562644
flagi18=0
tflag18=291
initx18=0
inity18=0
minx18=0
miny18=0
maxx18=0
maxy18=0
posx18=50
posy18=50
sizx18=800
sizy18=600
maxfps18=0
initts18=0
title19=Warcraft 2 Battlenet Ed
path19=D:\Games\Warcraft 2 Battlenet Ed\Warcraft II BNE.exe
module19=
opengllib19=
ver19=0
coord19=0
flag19=134217762
flagg19=1210122240
flagh19=148
flagi19=12
tflag19=0
initx19=0
inity19=0
minx19=0
miny19=0
maxx19=0
maxy19=0
posx19=50
posy19=50
sizx19=800
sizy19=600
maxfps19=0
initts19=0
title20=Wargasm
path20=D:\Games\Wargasm\tank.exe
module20=
opengllib20=
ver20=0
coord20=2
flag20=687865888
flagg20=1207959568
flagh20=65556
flagi20=0
tflag20=2
initx20=0
inity20=0
minx20=0
miny20=0
maxx20=0
maxy20=0
posx20=50
posy20=50
sizx20=800
sizy20=600
maxfps20=0
initts20=0
title21=Warlords Battlecry II (DEMO)
path21=D:\Games\Warlords Battlecry II Demo\Battlecry II Demo.exe
module21=
opengllib21=
ver21=0
coord21=2
flag21=134217762
flagg21=1207959568
flagh21=22
flagi21=0
tflag21=258
initx21=0
inity21=0
minx21=0
miny21=0
maxx21=0
maxy21=0
posx21=50
posy21=50
sizx21=800
sizy21=600
maxfps21=0
initts21=0
title22=Whiteout
path22=D:\Games\Whiteout\Whiteout.exe
module22=
opengllib22=
ver22=0
coord22=0
flag22=402653216
flagg22=1207959552
flagh22=20
flagi22=0
tflag22=64
initx22=0
inity22=0
minx22=0
miny22=0
maxx22=0
maxy22=0
posx22=50
posy22=50
sizx22=640
sizy22=480
maxfps22=0
initts22=0
title23=Wildfire
path23=D:\Games\Wildfire\Wildfire.exe
module23=
opengllib23=
ver23=0
coord23=0
flag23=-1476392958
flagg23=1210122240
flagh23=20
flagi23=12
tflag23=0
initx23=0
inity23=0
minx23=0
miny23=0
maxx23=0
maxy23=0
posx23=50
posy23=50
sizx23=800
sizy23=600
maxfps23=0
initts23=0
title24=Worms Pinball
path24=D:\Games\Worms Pinball\WPIB.exe
module24=
opengllib24=
ver24=0
coord24=2
flag24=679477282
flagg24=1744830480
flagh24=20
flagi24=4
tflag24=259
initx24=0
inity24=0
minx24=0
miny24=0
maxx24=0
maxy24=0
posx24=50
posy24=50
sizx24=800
sizy24=600
maxfps24=0
initts24=0
title25=Zanzarah
path25=D:\Games\Zanzarah\System\zanthp.exe
module25=
opengllib25=
ver25=0
coord25=0
flag25=679477280
flagg25=1207959552
flagh25=20
flagi25=0
tflag25=0
initx25=0
inity25=0
minx25=0
miny25=0
maxx25=0
maxy25=0
posx25=50
posy25=50
sizx25=800
sizy25=600
maxfps25=0
initts25=0
title26=Zax the Alien Hunter (DEMO)
path26=D:\Games\ZaxDemo\Zax.exe
module26=
opengllib26=
ver26=0
coord26=2
flag26=-2011168734
flagg26=1209008144
flagh26=20
flagi26=0
tflag26=258
initx26=0
inity26=0
minx26=0
miny26=0
maxx26=0
maxy26=0
posx26=50
posy26=50
sizx26=800
sizy26=600
maxfps26=0
initts26=0
title27=ZPC Zero Population Count
path27=D:\Games\ZPC\ZPC.EXE
module27=
opengllib27=
ver27=0
coord27=0
flag27=134217762
flagg27=1207959552
flagh27=20
flagi27=4
tflag27=0
initx27=0
inity27=0
minx27=0
miny27=0
maxx27=0
maxy27=0
posx27=50
posy27=50
sizx27=800
sizy27=600
maxfps27=0
initts27=0
[window] [window]
posx=1152 posx=1177
posy=191 posy=268
sizx=497 sizx=497
sizy=410 sizy=410

View File

@ -0,0 +1,24 @@
[target]
title0=007 NightFire
path0=D:\Games\007_NightFire\Bond.exe
module0=
opengllib0=
ver0=0
coord0=0
flag0=134234146
flagg0=134217728
flagh0=65556
flagi0=0
tflag0=67
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -0,0 +1,24 @@
[target]
title0=101 The Airborne Invasion of Normandy
path0=D:\Games\101air\101.exe
module0=
opengllib0=
ver0=0
coord0=0
flag0=134234146
flagg0=134217728
flagh0=20
flagi0=0
tflag0=192
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -0,0 +1,24 @@
[target]
title0=Age of Empires III
path0=D:\Games\Age of Empires III\age3.exe
module0=
opengllib0=
ver0=0
coord0=0
flag0=-394125278
flagg0=134217728
flagh0=20
flagi0=0
tflag0=3
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -0,0 +1,24 @@
[target]
title0=Akuma Demon Spawn - Lamentation Sword
path0=D:\Games\Akuma Demon Spawn - Lamentation Sword (1999)\Akuma\Akuma.EXE
module0=
opengllib0=
ver0=0
coord0=0
flag0=134234146
flagg0=134217728
flagh0=20
flagi0=0
tflag0=64
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -0,0 +1,24 @@
[target]
title0=Ancient Evil demo
path0=D:\Games\AECSC\aecsc-demo.exe
module0=
opengllib0=
ver0=0
coord0=0
flag0=150994976
flagg0=1207959552
flagh0=25165844
flagi0=0
tflag0=259
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -0,0 +1,24 @@
[target]
title0=Army Men RTS
path0=D:\Games\Army Men RTS\amrts.exe
module0=
opengllib0=
ver0=0
coord0=0
flag0=671088676
flagg0=1207959552
flagh0=20
flagi0=0
tflag0=0
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -0,0 +1,24 @@
[target]
title0=Attack of the Saucerman
path0=D:\Games\Attack of the Saucerman\attack of the saucerman.exe
module0=
opengllib0=
ver0=0
coord0=0
flag0=134217730
flagg0=134217728
flagh0=20
flagi0=0
tflag0=192
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -1,13 +1,13 @@
[target] [target]
title0=Empire Earth title0=Beyond Divinity
path0=D:\Games\Empire Earth\Empire Earth.exe path0=D:\Games\Beyond Divinity\Div.exe
module0= module0=
opengllib0= opengllib0=
ver0=0 ver0=0
coord0=0 coord0=0
flag0=671105057 flag0=134234144
flagg0=134217744 flagg0=134217728
flagh0=84 flagh0=61
flagi0=0 flagi0=0
tflag0=3 tflag0=3
initx0=0 initx0=0

View File

@ -0,0 +1,24 @@
[target]
title0=Chariots of War
path0=D:\Games\Chariots of War\CoW.exe
module0=
opengllib0=
ver0=0
coord0=0
flag0=134217762
flagg0=1744830464
flagh0=20
flagi0=2
tflag0=3
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -0,0 +1,24 @@
[target]
title0=Daikatana
path0=D:\Games\Daikatana\daikatana.exe
module0=
opengllib0=
ver0=12
coord0=0
flag0=269492738
flagg0=537002497
flagh0=20
flagi0=0
tflag0=2
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -0,0 +1,24 @@
[target]
title0=Devastation
path0=D:\Games\Devastation\System\Devastation.exe
module0=
opengllib0=
ver0=0
coord0=0
flag0=134217762
flagg0=1207959552
flagh0=16
flagi0=0
tflag0=67
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

24
build/exports/Diablo.dxw Normal file
View File

@ -0,0 +1,24 @@
[target]
title0=Diablo
path0=D:\Games\Diablo\Diablo.exe
module0=
opengllib0=
ver0=1
coord0=0
flag0=138428450
flagg0=1108344848
flagh0=20
flagi0=0
tflag0=0
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=640
sizy0=480
maxfps0=0
initts0=0

View File

@ -0,0 +1,24 @@
[target]
title0=Doom Shareware for Windows 95
path0=D:\Games\Doom Shareware for Windows 95\Doom95.exe
module0=
opengllib0=
ver0=0
coord0=0
flag0=134217762
flagg0=134217728
flagh0=20
flagi0=0
tflag0=0
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -0,0 +1,24 @@
[target]
title0=Dungeon Keeper II
path0=D:\Games\Dungeon Keeper 2\DKII.exe
module0=
opengllib0=
ver0=0
coord0=0
flag0=16418
flagg0=574619648
flagh0=20
flagi0=0
tflag0=263
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=150
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -0,0 +1,24 @@
[target]
title0=Dungeon Lords MMXII
path0=D:\Games\Dungeon Lords MMXII\dlords2012.exe
module0=
opengllib0=
ver0=0
coord0=2
flag0=-2013265886
flagg0=1207959552
flagh0=20
flagi0=0
tflag0=0
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

24
build/exports/GTA 3.dxw Normal file
View File

@ -0,0 +1,24 @@
[target]
title0=GTA 3
path0=D:\Games\GTA3\gta3.exe
module0=
opengllib0=
ver0=0
coord0=0
flag0=134234150
flagg0=1207975952
flagh0=176
flagi0=0
tflag0=2
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

Binary file not shown.

View File

@ -0,0 +1,24 @@
[target]
title0=Grand Prix World
path0=D:\Games\Grand Prix World\gpwxp2.exe
module0=
opengllib0=
ver0=0
coord0=0
flag0=134283430
flagg0=134217856
flagh0=29
flagi0=0
tflag0=3
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -0,0 +1,24 @@
[target]
title0=Hamsterball
path0=D:\Games\Hamsterball\Hamsterball.exe
module0=
opengllib0=
ver0=8
coord0=0
flag0=134217762
flagg0=1207959552
flagh0=20
flagi0=0
tflag0=323
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -0,0 +1,24 @@
[target]
title0=Heroes of Might and Magic IV
path0=D:\Games\Heroes of Might and Magic IV\heroes4i.exe
module0=
opengllib0=
ver0=0
coord0=0
flag0=134283298
flagg0=1211121728
flagh0=65556
flagi0=0
tflag0=3
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -0,0 +1,24 @@
[target]
title0=Homeworld 2
path0=D:\Games\Homeworld2\Bin\Release\Homeworld2.exe
module0=
opengllib0=
ver0=0
coord0=0
flag0=671088642
flagg0=134217728
flagh0=477
flagi0=0
tflag0=0
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -0,0 +1,24 @@
[target]
title0=Jet Moto
path0=D:\Games\Jet_Moto\JETMOTO.EXE
module0=
opengllib0=
ver0=0
coord0=0
flag0=671088674
flagg0=1207959568
flagh0=20
flagi0=0
tflag0=0
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

24
build/exports/JetMoto.dxw Normal file
View File

@ -0,0 +1,24 @@
[target]
title0=JetMoto
path0=D:\Games\Jet_Moto\JETMOTO.EXE
module0=
opengllib0=
ver0=0
coord0=0
flag0=671088674
flagg0=1207959552
flagh0=20
flagi0=0
tflag0=64
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -0,0 +1,24 @@
[target]
title0=Kiss Psycho Circus
path0=D:\Games\Kiss\client.exe
module0=
opengllib0=
ver0=0
coord0=0
flag0=134217760
flagg0=1207959552
flagh0=20
flagi0=0
tflag0=67
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -0,0 +1,24 @@
[target]
title0=L'Elefante a Strisce
path0=D:\Games\L'Elefante a Strisce\Pilots1I.EXE
module0=
opengllib0=
ver0=0
coord0=0
flag0=134217762
flagg0=134217728
flagh0=20
flagi0=0
tflag0=64
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -0,0 +1,24 @@
[target]
title0=Land of the Dead
path0=D:\Games\Land of the Dead\System\LOTD.exe
module0=
opengllib0=
ver0=0
coord0=0
flag0=134217766
flagg0=1207959552
flagh0=20
flagi0=0
tflag0=64
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -0,0 +1,24 @@
[target]
title0=Last Bronx
path0=D:\Games\Last_Bronx\LB.EXE
module0=
opengllib0=
ver0=0
coord0=0
flag0=134217762
flagg0=1207959552
flagh0=20
flagi0=0
tflag0=0
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -0,0 +1,24 @@
[target]
title0=Mageslayer
path0=D:\Games\MAGE\MAGESLAY.EXE
module0=
opengllib0=
ver0=0
coord0=0
flag0=134234146
flagg0=134217760
flagh0=20
flagi0=0
tflag0=64
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -0,0 +1,24 @@
[target]
title0=Magic & Mayhem
path0=D:\Games\Magic_&_Mayhem\Chaos.exe
module0=
opengllib0=
ver0=0
coord0=0
flag0=138428450
flagg0=1275068416
flagh0=8388628
flagi0=0
tflag0=259
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -0,0 +1,24 @@
[target]
title0=Mirror's Edge
path0=D:\Games\Mirror's Edge\Binaries\MirrorsEdge.exe
module0=
opengllib0=
ver0=0
coord0=0
flag0=-2013265882
flagg0=1207959552
flagh0=2097172
flagi0=0
tflag0=15
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=6

View File

@ -0,0 +1,24 @@
[target]
title0=Praetorians
path0=D:\Games\Praetorians\Praetorians.exe
module0=
opengllib0=
ver0=0
coord0=0
flag0=134217760
flagg0=1207959552
flagh0=20
flagi0=0
tflag0=259
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -0,0 +1,24 @@
[target]
title0=Premier Manager 98
path0=D:\Games\Premier Manager 98\MANAGER.EXE
module0=
opengllib0=
ver0=0
coord0=0
flag0=671088674
flagg0=1207959552
flagh0=16
flagi0=0
tflag0=0
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -0,0 +1,24 @@
[target]
title0=Primitive Wars
path0=D:\Games\Primitive Wars\Pw.exe
module0=
opengllib0=
ver0=0
coord0=0
flag0=402653218
flagg0=1207959552
flagh0=20
flagi0=0
tflag0=64
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -0,0 +1,24 @@
[target]
title0=Railroad Tycoon II
path0=D:\Games\Railroad.Tycoon.II\RT2.EXE
module0=
opengllib0=
ver0=0
coord0=0
flag0=2082
flagg0=143654912
flagh0=16
flagi0=0
tflag0=0
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -0,0 +1,24 @@
[target]
title0=Sid Meiers SimGolf CLASS
path0=D:\Games\Sid.Meiers.SimGolf-CLASS\golf.exe
module0=
opengllib0=
ver0=0
coord0=0
flag0=402653218
flagg0=1745879040
flagh0=65556
flagi0=0
tflag0=3
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -0,0 +1,24 @@
[target]
title0=Slam Tilt
path0=D:\Games\SlamTilt\slamtilt.exe
module0=
opengllib0=
ver0=0
coord0=0
flag0=671088674
flagg0=1207959554
flagh0=20
flagi0=0
tflag0=0
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -0,0 +1,24 @@
[target]
title0=Space Rangers
path0=D:\Games\Space Rangers\Rangers.exe
module0=
opengllib0=
ver0=1
coord0=0
flag0=134234146
flagg0=1207959552
flagh0=20
flagi0=0
tflag0=0
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -0,0 +1,24 @@
[target]
title0=Star Wars Phantom Menace
path0=D:\Games\Star Wars Phantom Menace\WMAIN.EXE
module0=
opengllib0=
ver0=0
coord0=0
flag0=939524129
flagg0=1207959552
flagh0=20
flagi0=0
tflag0=0
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -0,0 +1,24 @@
[target]
title0=Star Wars Shadow of the Empire (DEMO)
path0=D:\Games\shadowsdemo\shadows.exe
module0=
opengllib0=
ver0=0
coord0=0
flag0=134217762
flagg0=1208483844
flagh0=25165844
flagi0=0
tflag0=275
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -0,0 +1,24 @@
[target]
title0=Star Wars Shadow of the Empire
path0=D:\Games\Star Wars Shadow of the Empire\game\SDATA\SHADOWS.EXE
module0=
opengllib0=
ver0=0
coord0=0
flag0=134217762
flagg0=1476919296
flagh0=25166364
flagi0=0
tflag0=274
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -0,0 +1,24 @@
[target]
title0=StarCraft
path0=D:\Games\Starcraft\StarCraft.exe
module0=
opengllib0=
ver0=0
coord0=0
flag0=134217762
flagg0=136314880
flagh0=20
flagi0=0
tflag0=64
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -0,0 +1,24 @@
[target]
title0=Talis Gear
path0=D:\Games\TailsGear078\DT_MAIN.exe
module0=
opengllib0=
ver0=0
coord0=0
flag0=134217760
flagg0=1207959552
flagh0=20
flagi0=0
tflag0=0
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

24
build/exports/Theseus.dxw Normal file
View File

@ -0,0 +1,24 @@
[target]
title0=Theseus
path0=D:\Games\theseus\Theseus.exe
module0=
opengllib0=
ver0=8
coord0=0
flag0=134217730
flagg0=1207959552
flagh0=20
flagi0=0
tflag0=0
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -0,0 +1,26 @@
[target]
title0=Tomb Raider III (HW acceleration)
path0=D:\Games\Tomb Raider III\tomb3.exe
module0=
opengllib0=
ver0=0
coord0=0
flag0=134217760
flagg0=1241513984
flagh0=25165844
flagi0=0
tflag0=0
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0
; remember to set HW accelerated mode and turn ZBUFFER option off in game setup panel

View File

@ -0,0 +1,26 @@
[target]
title0=Tomb Raider III (SW emulation)
path0=D:\Games\Tomb Raider III\tomb3.exe
module0=
opengllib0=
ver0=0
coord0=0
flag0=134217762
flagg0=1241513984
flagh0=25165844
flagi0=0
tflag0=323
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0
; remember to set SW emulated mode in game setup panel

View File

@ -0,0 +1,24 @@
[target]
title0=Total Annihilation Kingdoms
path0=D:\Games\Total Annihilation Kingdoms\Kingdoms.exe
module0=
opengllib0=
ver0=0
coord0=0
flag0=134234146
flagg0=1073741840
flagh0=16
flagi0=0
tflag0=0
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

24
build/exports/Vangers.dxw Normal file
View File

@ -0,0 +1,24 @@
[target]
title0=Vangers
path0=D:\Games\Vangers\road.exe
module0=
opengllib0=
ver0=0
coord0=0
flag0=402653219
flagg0=671088640
flagh0=20
flagi0=0
tflag0=67
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -0,0 +1,24 @@
[target]
title0=Warcraft 2 Battlenet Ed
path0=D:\Games\Warcraft 2 Battlenet Ed\Warcraft II BNE.exe
module0=
opengllib0=
ver0=0
coord0=0
flag0=134217762
flagg0=1207959552
flagh0=20
flagi0=4
tflag0=0
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -0,0 +1,24 @@
[target]
title0=Wargames (demo)
path0=D:\Games\Wargames\wargames.exe
module0=
opengllib0=
ver0=0
coord0=0
flag0=268435618
flagg0=1207959552
flagh0=20
flagi0=0
tflag0=3
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -0,0 +1,24 @@
[target]
title0=Warlords 3
path0=D:\Games\WARLORDS3\Darklord.exe
module0=
opengllib0=
ver0=0
coord0=0
flag0=-2147483102
flagg0=269484064
flagh0=532
flagi0=0
tflag0=0
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=0
sizy0=0
maxfps0=0
initts0=0

View File

@ -0,0 +1,24 @@
[target]
title0=Whiteout
path0=D:\Games\Whiteout\Whiteout.exe
module0=
opengllib0=
ver0=0
coord0=0
flag0=402653216
flagg0=1207959552
flagh0=20
flagi0=0
tflag0=64
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=640
sizy0=480
maxfps0=0
initts0=0

View File

@ -0,0 +1,24 @@
[target]
title0=Wildfire
path0=D:\Games\Wildfire\Wildfire.exe
module0=
opengllib0=
ver0=0
coord0=0
flag0=-1476392958
flagg0=1207959552
flagh0=20
flagi0=4
tflag0=0
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -0,0 +1,24 @@
[target]
title0=ZPC Zero Population Count
path0=D:\Games\ZPC\ZPC.EXE
module0=
opengllib0=
ver0=0
coord0=0
flag0=134217762
flagg0=1207959552
flagh0=20
flagi0=4
tflag0=0
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -0,0 +1,24 @@
[target]
title0=deadrising2otr.exe
path0=C:\Program Files (x86)\Capcom\Dead Rising 2 Off The Record\deadrising2otr.exe
module0=
opengllib0=
ver0=0
coord0=0
flag0=0
flagg0=134217728
flagh0=16
flagi0=0
tflag0=3
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -1 +1,3 @@
Ancient Evil: working both in emulated / direct mode, but in emulated mode the cursor is not visible. Ancient Evil: working both in emulated / direct mode, but in emulated mode the cursor is not visible.
Whiteout: handling of IMultiMediaStream COM interface for intro movie
window handling for ddraw8 games - see WildFire with keep aspect ratio & client area

View File

@ -293,4 +293,18 @@ Several changes for Empire Earth:
fix: restore 16BPP color mode after directdraw session termination fix: restore 16BPP color mode after directdraw session termination
fix: recovered window destruction fix: recovered window destruction
fix: proper handling of MIPMAP and LOCALVIDMEM surfaces fix: proper handling of MIPMAP and LOCALVIDMEM surfaces
fix: revised color management, now when the program terminates the desktop is restored to the previous color depth fix: color depth handling - now when the program terminates the desktop is brought to the original color depth
v2.02.45
Improved debug logging for all palette operations
fixed a bugged log causing the crash of Empire Earth in debug mode
added show time stretching flag - preliminary version. Some code cleaning as well.
change in automatic screen refresh - should make the "palette update don't blit" flag obsolete.....
added a static definition for the default system palette
added interception for CoCreateInstance following cases:
case 0xe436ebb3: Module="quartz"; Class="CLSID_FilterGraph";
case 0x4fd2a832: Module="ddrawex"; Class="CLSID_DirectDrawEx";
case 0x49c47ce5: Module="amstream"; Class="CLSID_AMMultiMediaStream";
preliminary (proxed) interception for "GetActiveWindow" and "GetForegroundWindow"

View File

@ -696,15 +696,8 @@ HRESULT WINAPI extCreatePaletteProxy(LPDIRECTDRAW lpdd, DWORD dwflags, LPPALETTE
HRESULT res; HRESULT res;
OutTraceP("CreatePalette(D): PROXED lpdd=%x dwFlags=%x(%s)\n", lpdd, dwflags, ExplainCreatePaletteFlags(dwflags)); OutTraceP("CreatePalette(D): PROXED lpdd=%x dwFlags=%x(%s)\n", lpdd, dwflags, ExplainCreatePaletteFlags(dwflags));
if(IsDebug && (dwflags & DDPCAPS_8BIT)){ if(IsDebug && (dwflags & DDPCAPS_8BIT)) dxw.DumpPalette(256, lpddpa);
int idx;
OutTrace("CreatePalette: ");
for(idx=0; idx<256; idx++) OutTrace("(%02x.%02x.%02x)",
lpddpa[idx].peRed,
lpddpa[idx].peGreen,
lpddpa[idx].peBlue );
OutTrace("\n");
}
res = (*pCreatePalette)(lpdd, dwflags, lpddpa, lplpddp, pu); res = (*pCreatePalette)(lpdd, dwflags, lpddpa, lplpddp, pu);
if (res) { if (res) {
OutTraceP("CreatePalette(D): ERROR res=%x(%s)\n", res, ExplainDDError(res)); OutTraceP("CreatePalette(D): ERROR res=%x(%s)\n", res, ExplainDDError(res));
@ -1155,8 +1148,9 @@ HRESULT WINAPI extGetCapsPProxy(LPDIRECTDRAWPALETTE lpddp, LPDWORD w)
HRESULT WINAPI extGetEntriesProxy(LPDIRECTDRAWPALETTE lpddp, DWORD dwflags, DWORD dwstart, DWORD dwcount, LPPALETTEENTRY lpentries) HRESULT WINAPI extGetEntriesProxy(LPDIRECTDRAWPALETTE lpddp, DWORD dwflags, DWORD dwstart, DWORD dwcount, LPPALETTEENTRY lpentries)
{ {
HRESULT res; HRESULT res;
OutTraceP("GetEntries(P): PROXED lpddp=%x flags=%x start=%x, count=%d\n", lpddp, dwflags, dwstart, dwcount); OutTraceP("GetEntries(P): PROXED lpddp=%x flags=%x start=%d, count=%d\n", lpddp, dwflags, dwstart, dwcount);
res=(*pGetEntries)(lpddp, dwflags, dwstart, dwcount, lpentries); res=(*pGetEntries)(lpddp, dwflags, dwstart, dwcount, lpentries);
if(IsDebug && !res) dxw.DumpPalette(dwcount, &lpentries[dwstart]);
if (res) OutTraceP("GetEntries(P): ERROR res=%x(%s)\n", res, ExplainDDError(res)); if (res) OutTraceP("GetEntries(P): ERROR res=%x(%s)\n", res, ExplainDDError(res));
return res; return res;
} }
@ -1164,7 +1158,8 @@ HRESULT WINAPI extGetEntriesProxy(LPDIRECTDRAWPALETTE lpddp, DWORD dwflags, DWOR
HRESULT WINAPI extSetEntriesProxy(LPDIRECTDRAWPALETTE lpddp, DWORD dwflags, DWORD dwstart, DWORD dwcount, LPPALETTEENTRY lpentries) HRESULT WINAPI extSetEntriesProxy(LPDIRECTDRAWPALETTE lpddp, DWORD dwflags, DWORD dwstart, DWORD dwcount, LPPALETTEENTRY lpentries)
{ {
HRESULT res; HRESULT res;
OutTraceP("SetEntries(P): PROXED lpddp=%x flags=%x start=%x, count=%d\n", lpddp, dwflags, dwstart, dwcount); OutTraceP("SetEntries(P): PROXED lpddp=%x flags=%x start=%d, count=%d\n", lpddp, dwflags, dwstart, dwcount);
if(IsDebug) dxw.DumpPalette(dwcount, &lpentries[dwstart]);
res=(*pSetEntries)(lpddp, dwflags, dwstart, dwcount, lpentries); res=(*pSetEntries)(lpddp, dwflags, dwstart, dwcount, lpentries);
if (res) OutTraceP("SetEntries(P): ERROR res=%x(%s)\n", res, ExplainDDError(res)); if (res) OutTraceP("SetEntries(P): ERROR res=%x(%s)\n", res, ExplainDDError(res));
return res; return res;
@ -2057,12 +2052,7 @@ UINT WINAPI extGetSystemPaletteEntriesProxy(HDC hdc, UINT iStartIndex, UINT nEnt
ret=(*pGDIGetSystemPaletteEntries)(hdc, iStartIndex, nEntries, lppe); ret=(*pGDIGetSystemPaletteEntries)(hdc, iStartIndex, nEntries, lppe);
OutTrace("GDI.GetSystemPaletteEntries: PROXED hdc=%x start=%d num=%d ret=%d\n", hdc, iStartIndex, nEntries, ret); OutTrace("GDI.GetSystemPaletteEntries: PROXED hdc=%x start=%d num=%d ret=%d\n", hdc, iStartIndex, nEntries, ret);
if(ret && IsDebug){ if(IsDebug && ret) dxw.DumpPalette(nEntries, &lppe[iStartIndex]);
UINT idx;
OutTraceD("PaletteEntries[%x]= ", nEntries);
for(idx=iStartIndex; idx<nEntries; idx++) OutTraceD("(%02x.%02x.%02x-F%02x)", lppe[idx].peRed, lppe[idx].peGreen, lppe[idx].peBlue, lppe[idx].peFlags);
OutTraceD("\n");
}
if(!ret) OutTrace("GDI.GetSystemPaletteEntries: ERROR err=%d\n", GetLastError()); if(!ret) OutTrace("GDI.GetSystemPaletteEntries: ERROR err=%d\n", GetLastError());
return ret; return ret;
} }

4559
dll/ddraw - Copia.cpp Normal file

File diff suppressed because it is too large Load Diff

View File

@ -445,93 +445,51 @@ void mySetPalette(int dwstart, int dwcount, LPPALETTEENTRY lpentries)
int i; int i;
extern DXWNDSTATUS *pStatus; extern DXWNDSTATUS *pStatus;
OutTraceD("mySetPalette DEBUG: BPP=%d GBitMask=%x count=%d\n",
dxw.ActualPixelFormat.dwRGBBitCount, dxw.ActualPixelFormat.dwGBitMask, dwcount);
if(IsDebug){
int idx;
OutTraceD("PaletteEntries: start=%d count=%d ", dwstart, dwcount);
for(idx=0; idx<dwcount; idx++) OutTraceD("(%02x.%02x.%02x)",
lpentries[dwstart+idx].peRed,
lpentries[dwstart+idx].peGreen,
lpentries[dwstart+idx].peBlue );
OutTraceD("\n");
}
for(int idx=0; idx<dwcount; idx++) for(int idx=0; idx<dwcount; idx++)
pStatus->Palette[dwstart+idx]= lpentries[idx]; pStatus->Palette[dwstart+idx]= lpentries[idx];
if (dxw.dwFlags3 & RGB2YUV){ #if 0
int idx; typedef struct {
for(idx=0; idx<dwcount; idx++){ WORD palVersion;
long Y, U, V, R, G, B; WORD palNumEntries;
R=lpentries[dwstart+idx].peRed; PALETTEENTRY palPalEntry[256];
G=lpentries[dwstart+idx].peGreen; } LOGPALETTE256;
B=lpentries[dwstart+idx].peBlue; LOGPALETTE256 GDIPalette;
Y = ((299 * R) + (587 * G) + (114 * B)) / 1000; HPALETTE pal;
U = ((-169 * R) + (-331 * G) + (500 * B)) / 1000 + 128; GDIPalette.palNumEntries=256;
V = ((500 * R) + (-419 * G) + (-813 * B)) / 1000 + 128; GDIPalette.palVersion=0;
//Y = ((299 * R) + (587 * G) + (114 * B)) / 1000; memcpy(GDIPalette.palPalEntry, lpentries, 256*sizeof(PALETTEENTRY));
//U = ((-147 * R) + (-289 * G) + (436 * B)) / 1000 + 128; pal=CreatePalette((LOGPALETTE *)&GDIPalette);
//V = ((615 * R) + (-515 * G) + (-100 * B)) / 1000 + 128; SelectPalette(GetDC(dxw.GethWnd()), pal, 0);
if (Y<0) Y=0; if(Y>255) Y=255; RealizePalette(GetDC(dxw.GethWnd()));
if (U<0) U=0; if(U>255) U=255; #endif
if (V<0) V=0; if(V>255) V=255;
lpentries[dwstart+idx].peRed = (BYTE)Y;
lpentries[dwstart+idx].peGreen = (BYTE)U;
lpentries[dwstart+idx].peBlue = (BYTE)V;
}
}
if (dxw.dwFlags3 & YUV2RGB){ for(i = 0; i < dwcount; i ++){
int idx; PALETTEENTRY PalColor;
for(idx=0; idx<dwcount; idx++){ PalColor = lpentries[i];
long Y, U, V, R, G, B; if (dxw.dwFlags3 & BLACKWHITE){
R=lpentries[dwstart+idx].peRed; // (http://www.codeproject.com/Articles/66253/Converting-Colors-to-Gray-Shades):
G=lpentries[dwstart+idx].peGreen; // gray = (red * 0.30) + (green * 0.59) + (blue * 0.11)
B=lpentries[dwstart+idx].peBlue;
Y = ((1000 * R) + (0 * G) + (1140 * B)) / 1000;
U = ((1000 * R) + (-395 * G) + (-580 * B)) / 1000;
V = ((1000 * R) + (-32 * G) + (0 * B)) / 1000;
if (Y<0) Y=0; if(Y>255) Y=255;
if (U<0) U=0; if(U>255) U=255;
if (V<0) V=0; if(V>255) V=255;
lpentries[dwstart+idx].peRed = (BYTE)Y;
lpentries[dwstart+idx].peGreen = (BYTE)U;
lpentries[dwstart+idx].peBlue = (BYTE)V;
}
}
// actually, it should be like this: R/G/B = (red * 0.30) + (green * 0.59) + (blue * 0.11)
// (http://www.codeproject.com/Articles/66253/Converting-Colors-to-Gray-Shades)
if (dxw.dwFlags3 & BLACKWHITE){
for(i = 0; i < dwcount; i ++){
DWORD grayscale; DWORD grayscale;
//grayscale = ((DWORD)lpentries[i].peRed + (DWORD)lpentries[i].peGreen + (DWORD)lpentries[i].peBlue) / 3; //grayscale = ((DWORD)lpentries[i].peRed + (DWORD)lpentries[i].peGreen + (DWORD)lpentries[i].peBlue) / 3;
grayscale = (((DWORD)lpentries[i].peRed * 30) + ((DWORD)lpentries[i].peGreen * 59) + ((DWORD)lpentries[i].peBlue) * 11) / 100; grayscale = (((DWORD)PalColor.peRed * 30) + ((DWORD)PalColor.peGreen * 59) + ((DWORD)PalColor.peBlue) * 11) / 100;
lpentries[i].peRed = lpentries[i].peGreen = lpentries[i].peBlue = (BYTE)grayscale; PalColor.peRed = PalColor.peGreen = PalColor.peBlue = (BYTE)grayscale;
} }
} switch (dxw.ActualPixelFormat.dwRGBBitCount){
case 32:
switch (dxw.ActualPixelFormat.dwRGBBitCount){
case 32:
for(i = 0; i < dwcount; i ++){
PaletteEntries[i + dwstart] = PaletteEntries[i + dwstart] =
(((DWORD)lpentries[i].peRed) << 16) + (((DWORD)lpentries[i].peGreen) << 8) + ((DWORD)lpentries[i].peBlue); (((DWORD)PalColor.peRed) << 16) + (((DWORD)PalColor.peGreen) << 8) + ((DWORD)PalColor.peBlue);
} break;
break; case 16:
case 16:
for(i = 0; i < dwcount; i ++){
PaletteEntries[i + dwstart] = (dxw.ActualPixelFormat.dwGBitMask == 0x03E0) ? PaletteEntries[i + dwstart] = (dxw.ActualPixelFormat.dwGBitMask == 0x03E0) ?
(((DWORD)lpentries[i].peRed & 0xF8) << 8) + (((DWORD)lpentries[i].peGreen & 0xFC) << 3) + (((DWORD)lpentries[i].peBlue &0xF8) >> 3) (((DWORD)PalColor.peRed & 0xF8) << 8) + (((DWORD)PalColor.peGreen & 0xFC) << 3) + (((DWORD)PalColor.peBlue &0xF8) >> 3)
: :
(((DWORD)lpentries[i].peRed & 0xF8) << 8) + (((DWORD)lpentries[i].peGreen & 0xF8) << 3) + (((DWORD)lpentries[i].peBlue &0xF8) >> 3); (((DWORD)PalColor.peRed & 0xF8) << 8) + (((DWORD)PalColor.peGreen & 0xF8) << 3) + (((DWORD)PalColor.peBlue &0xF8) >> 3);
break;
default:
OutTraceD("ASSERT: unsupported Color BPP=%d\n", dxw.ActualPixelFormat.dwRGBBitCount);
break;
} }
break;
default:
OutTraceD("ASSERT: unsupported Color BPP=%d\n", dxw.ActualPixelFormat.dwRGBBitCount);
break;
} }
isPaletteUpdated = TRUE; isPaletteUpdated = TRUE;
@ -567,7 +525,7 @@ void InitDSScreenParameters(LPDIRECTDRAWSURFACE lpdds)
ddsd.ddpfPixelFormat = p; ddsd.ddpfPixelFormat = p;
OutTraceD("InitDSScreenParameters: Actual %s\n", DumpPixelFormat(&ddsd)); OutTraceD("InitDSScreenParameters: Actual %s\n", DumpPixelFormat(&ddsd));
dxw.ActualPixelFormat=p; dxw.ActualPixelFormat = p;
SetBltTransformations(); SetBltTransformations();
return; return;
} }
@ -2586,7 +2544,7 @@ static HRESULT BuildGenericDir(LPDIRECTDRAW lpdd, CreateSurface_Type pCreateSurf
HookDDSurfaceGeneric(lplpdds, dxversion); HookDDSurfaceGeneric(lplpdds, dxversion);
OutTraceD("CreateSurface: created lpdds=%x type=Generic ret=%x\n", *lplpdds, res); OutTraceD("CreateSurface: created lpdds=%x type=Generic ret=%x\n", *lplpdds, res);
if(IsDebug) DescribeSurface(lpDDSBack, dxversion, "Generic", __LINE__); if(IsDebug) DescribeSurface(*lplpdds, dxversion, "Generic", __LINE__); //v2.02.44 bug fix
return DD_OK; return DD_OK;
} }
@ -3053,6 +3011,7 @@ HRESULT WINAPI sBlt(char *api, LPDIRECTDRAWSURFACE lpdds, LPRECT lpdestrect,
// blit only when source and dest surface are different. Should make ScreenRefresh faster. // blit only when source and dest surface are different. Should make ScreenRefresh faster.
if (lpdds != lpddssrc) { if (lpdds != lpddssrc) {
if (dxw.dwFlags2 & SHOWFPSOVERLAY) dxw.ShowFPS(lpddssrc); if (dxw.dwFlags2 & SHOWFPSOVERLAY) dxw.ShowFPS(lpddssrc);
if (dxw.dwFlags4 & SHOWTIMESTRETCH) dxw.ShowTimeStretching(lpddssrc);
if (IsDebug) BlitTrace("PRIM-NOEMU", lpsrcrect, &destrect, __LINE__); if (IsDebug) BlitTrace("PRIM-NOEMU", lpsrcrect, &destrect, __LINE__);
res= (*pBlt)(lpdds, &destrect, lpddssrc, lpsrcrect, dwflags, lpddbltfx); res= (*pBlt)(lpdds, &destrect, lpddssrc, lpsrcrect, dwflags, lpddbltfx);
} }
@ -3113,6 +3072,7 @@ HRESULT WINAPI sBlt(char *api, LPDIRECTDRAWSURFACE lpdds, LPRECT lpdestrect,
*/ */
if(res==DDERR_UNSUPPORTED){ if(res==DDERR_UNSUPPORTED){
if (dxw.dwFlags2 & SHOWFPSOVERLAY) dxw.ShowFPS(lpddssrc); if (dxw.dwFlags2 & SHOWFPSOVERLAY) dxw.ShowFPS(lpddssrc);
if (dxw.dwFlags4 & SHOWTIMESTRETCH) dxw.ShowTimeStretching(lpddssrc);
if (IsDebug) BlitTrace("UNSUPP", &emurect, &destrect, __LINE__); if (IsDebug) BlitTrace("UNSUPP", &emurect, &destrect, __LINE__);
res=(*pBlt)(lpDDSEmu_Prim, &destrect, lpddssrc, lpsrcrect, dwflags, lpddbltfx); res=(*pBlt)(lpDDSEmu_Prim, &destrect, lpddssrc, lpsrcrect, dwflags, lpddbltfx);
if (res) BlitError(res, lpsrcrect, &destrect, __LINE__); if (res) BlitError(res, lpsrcrect, &destrect, __LINE__);
@ -3151,6 +3111,7 @@ HRESULT WINAPI sBlt(char *api, LPDIRECTDRAWSURFACE lpdds, LPRECT lpdestrect,
} }
if (dxw.dwFlags2 & SHOWFPSOVERLAY) dxw.ShowFPS(lpDDSSource); if (dxw.dwFlags2 & SHOWFPSOVERLAY) dxw.ShowFPS(lpDDSSource);
if (dxw.dwFlags4 & SHOWTIMESTRETCH) dxw.ShowTimeStretching(lpDDSSource);
if (IsDebug) BlitTrace("BACK2PRIM", &emurect, &destrect, __LINE__); if (IsDebug) BlitTrace("BACK2PRIM", &emurect, &destrect, __LINE__);
res=(*pBlt)(lpDDSEmu_Prim, &destrect, lpDDSSource, &emurect, DDBLT_WAIT, 0); res=(*pBlt)(lpDDSEmu_Prim, &destrect, lpDDSSource, &emurect, DDBLT_WAIT, 0);
@ -3338,15 +3299,7 @@ HRESULT WINAPI extCreatePalette(LPDIRECTDRAW lpdd, DWORD dwflags, LPPALETTEENTRY
HRESULT res; HRESULT res;
OutTraceD("CreatePalette: dwFlags=%x(%s)\n", dwflags, ExplainCreatePaletteFlags(dwflags)); OutTraceD("CreatePalette: dwFlags=%x(%s)\n", dwflags, ExplainCreatePaletteFlags(dwflags));
if(IsDebug && (dwflags & DDPCAPS_8BIT)){ if(IsDebug && (dwflags & DDPCAPS_8BIT)) dxw.DumpPalette(256, lpddpa);
int idx;
OutTrace("CreatePalette: ");
for(idx=0; idx<256; idx++) OutTrace("(%02x.%02x.%02x)",
lpddpa[idx].peRed,
lpddpa[idx].peGreen,
lpddpa[idx].peBlue );
OutTrace("\n");
}
if (dwflags & ~(DDPCAPS_PRIMARYSURFACE|DDPCAPS_8BIT|DDPCAPS_ALLOW256|DDPCAPS_INITIALIZE_LEGACY)) STOPPER("Palette flags"); if (dwflags & ~(DDPCAPS_PRIMARYSURFACE|DDPCAPS_8BIT|DDPCAPS_ALLOW256|DDPCAPS_INITIALIZE_LEGACY)) STOPPER("Palette flags");
@ -3396,7 +3349,7 @@ HRESULT WINAPI extSetPalette(LPDIRECTDRAWSURFACE lpdds, LPDIRECTDRAWPALETTE lpdd
lpentries = (LPPALETTEENTRY)PaletteEntries; lpentries = (LPPALETTEENTRY)PaletteEntries;
res2=lpddp->GetEntries(0, 0, 256, lpentries); res2=lpddp->GetEntries(0, 0, 256, lpentries);
if(res2) OutTraceE("SetPalette: GetEntries ERROR res=%x(%s)\n", res2, ExplainDDError(res2)); if(res2) OutTraceE("SetPalette: GetEntries ERROR res=%x(%s)\n", res2, ExplainDDError(res2));
mySetPalette(0, 256, lpentries); //mySetPalette(0, 256, lpentries);
} }
res=0; res=0;
} }
@ -3410,6 +3363,7 @@ HRESULT WINAPI extSetEntries(LPDIRECTDRAWPALETTE lpddp, DWORD dwflags, DWORD dws
OutTraceD("SetEntries: lpddp=%x dwFlags=%x, start=%d, count=%d entries=%x\n", //GHO: added trace infos OutTraceD("SetEntries: lpddp=%x dwFlags=%x, start=%d, count=%d entries=%x\n", //GHO: added trace infos
lpddp, dwflags, dwstart, dwcount, lpentries); lpddp, dwflags, dwstart, dwcount, lpentries);
if(IsDebug) dxw.DumpPalette(dwcount, &lpentries[dwstart]);
res = (*pSetEntries)(lpddp, dwflags, dwstart, dwcount, lpentries); res = (*pSetEntries)(lpddp, dwflags, dwstart, dwcount, lpentries);
if(res) OutTraceE("SetEntries: ERROR res=%x(%s)\n", res, ExplainDDError(res)); if(res) OutTraceE("SetEntries: ERROR res=%x(%s)\n", res, ExplainDDError(res));
@ -3523,46 +3477,46 @@ HRESULT WINAPI extLockDir(LPDIRECTDRAWSURFACE lpdds, LPRECT lprect, LPDIRECTDRAW
if(res2) if(res2)
OutTraceE("Lock: GetGDISurface ERROR res=%x(%s) at %d\n", res2, ExplainDDError(res2), __LINE__); OutTraceE("Lock: GetGDISurface ERROR res=%x(%s) at %d\n", res2, ExplainDDError(res2), __LINE__);
else else
(*pReleaseS)(lpDDSPrim); (*pReleaseS)(lpDDSPrim);
if(lpdds==lpDDSPrim){ if(lpdds==lpDDSPrim){
if(dxw.dwFlags1 & LOCKEDSURFACE){ if(dxw.dwFlags1 & LOCKEDSURFACE){
DDSURFACEDESC2 ddsd; DDSURFACEDESC2 ddsd;
DDBLTFX fx; DDBLTFX fx;
memset(&ddsd, 0, sizeof(ddsd)); memset(&ddsd, 0, sizeof(ddsd));
//ddsd.dwSize=SurfaceDescrSize(lpdds); //ddsd.dwSize=SurfaceDescrSize(lpdds);
ddsd.dwSize=sizeof(DDSURFACEDESC); ddsd.dwSize=sizeof(DDSURFACEDESC);
ddsd.dwFlags = DDSD_WIDTH | DDSD_HEIGHT | DDSD_CAPS; ddsd.dwFlags = DDSD_WIDTH | DDSD_HEIGHT | DDSD_CAPS;
ddsd.dwWidth = dxw.GetScreenWidth(); ddsd.dwWidth = dxw.GetScreenWidth();
ddsd.dwHeight = dxw.GetScreenHeight(); ddsd.dwHeight = dxw.GetScreenHeight();
ddsd.ddsCaps.dwCaps = 0; ddsd.ddsCaps.dwCaps = 0;
//if (SurfaceDescrSize(lpdds)==sizeof(DDSURFACEDESC2)) ddsd.ddsCaps.dwCaps |= DDSCAPS_OFFSCREENPLAIN; //if (SurfaceDescrSize(lpdds)==sizeof(DDSURFACEDESC2)) ddsd.ddsCaps.dwCaps |= DDSCAPS_OFFSCREENPLAIN;
DumpSurfaceAttributes((LPDDSURFACEDESC)&ddsd, "[Dir FixBuf]" , __LINE__); DumpSurfaceAttributes((LPDDSURFACEDESC)&ddsd, "[Dir FixBuf]" , __LINE__);
res=(*pCreateSurface1)(lpPrimaryDD, (DDSURFACEDESC *)&ddsd, (LPDIRECTDRAWSURFACE *)&lpDDSBuffer, 0); res=(*pCreateSurface1)(lpPrimaryDD, (DDSURFACEDESC *)&ddsd, (LPDIRECTDRAWSURFACE *)&lpDDSBuffer, 0);
if(res){ if(res){
OutTraceE("CreateSurface: ERROR on DDSBuffer res=%x(%s) at %d\n",res, ExplainDDError(res), __LINE__); OutTraceE("CreateSurface: ERROR on DDSBuffer res=%x(%s) at %d\n",res, ExplainDDError(res), __LINE__);
return res; return res;
}
memset(&fx, 0, sizeof(fx));
fx.dwSize=sizeof(DDBLTFX);
fx.dwFillColor=0;
res=(*pBlt)((LPDIRECTDRAWSURFACE)lpDDSBuffer, NULL, NULL, NULL, DDBLT_WAIT|DDBLT_COLORFILL, &fx);
if(res){
OutTraceE("Blt: ERROR on DDSBuffer res=%x(%s) at %d\n",res, ExplainDDError(res), __LINE__);
}
lpdds=(LPDIRECTDRAWSURFACE)lpDDSBuffer;
} }
memset(&fx, 0, sizeof(fx)); else{
fx.dwSize=sizeof(DDBLTFX); // since it can't scale, at least the updated rect is centered into the window.
fx.dwFillColor=0; (*pGetClientRect)(dxw.GethWnd(), &client);
res=(*pBlt)((LPDIRECTDRAWSURFACE)lpDDSBuffer, NULL, NULL, NULL, DDBLT_WAIT|DDBLT_COLORFILL, &fx); (*pClientToScreen)(dxw.GethWnd(), &upleft);
if(res){ if (!lprect) lprect=&client;
OutTraceE("Blt: ERROR on DDSBuffer res=%x(%s) at %d\n",res, ExplainDDError(res), __LINE__); OffsetRect(lprect,
upleft.x+(client.right-dxw.GetScreenWidth())/2,
upleft.y+(client.bottom-dxw.GetScreenHeight())/2);
OutTraceD("Lock: NULL rect remapped to (%d,%d)-(%d,%d)\n",
lprect->left, lprect->top, lprect->right, lprect->bottom);
} }
lpdds=(LPDIRECTDRAWSURFACE)lpDDSBuffer;
} }
else{
// since it can't scale, at least the updated rect is centered into the window.
(*pGetClientRect)(dxw.GethWnd(), &client);
(*pClientToScreen)(dxw.GethWnd(), &upleft);
if (!lprect) lprect=&client;
OffsetRect(lprect,
upleft.x+(client.right-dxw.GetScreenWidth())/2,
upleft.y+(client.bottom-dxw.GetScreenHeight())/2);
OutTraceD("Lock: NULL rect remapped to (%d,%d)-(%d,%d)\n",
lprect->left, lprect->top, lprect->right, lprect->bottom);
}
}
} }
res=(*pLock)(lpdds, lprect, lpdds2, flags, hEvent); res=(*pLock)(lpdds, lprect, lpdds2, flags, hEvent);

View File

@ -65,7 +65,7 @@ static char *Flag3Names[32]={
}; };
static char *Flag4Names[32]={ static char *Flag4Names[32]={
"NOALPHACHANNEL", "SUPPRESSCHILD", "", "", "NOALPHACHANNEL", "SUPPRESSCHILD", "FIXREFCOUNTER", "SHOWTIMESTRETCH",
"", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "",

View File

@ -678,6 +678,14 @@ POINT dxwCore::SubCoordinates(POINT p1, POINT p2)
return ps; return ps;
} }
void dxwCore::DumpPalette(DWORD dwcount, LPPALETTEENTRY lpentries)
{
for(DWORD idx=0; idx<dwcount; idx++)
OutTrace("(%02x.%02x.%02x:%02x)",
lpentries[idx].peRed, lpentries[idx].peGreen, lpentries[idx].peBlue, lpentries[idx].peFlags);
OutTrace("\n");
}
void dxwCore::ScreenRefresh(void) void dxwCore::ScreenRefresh(void)
{ {
// optimization: don't blit too often! // optimization: don't blit too often!
@ -693,14 +701,15 @@ void dxwCore::ScreenRefresh(void)
int tn = (*pGetTickCount)(); int tn = (*pGetTickCount)();
if (tn-t < DXWREFRESHINTERVAL) return; if (tn-t < DXWREFRESHINTERVAL) return;
lpDDSPrim=dxw.GetPrimarySurface();
// if too early ....
if (lpDDSPrim)
extBlt(lpDDSPrim, NULL, lpDDSPrim, NULL, 0, NULL);
(*pInvalidateRect)(hWnd, NULL, FALSE);
t = tn; t = tn;
// if not too early, refresh colors on primary surface ....
lpDDSPrim=dxw.GetPrimarySurface();
if (lpDDSPrim) extBlt(lpDDSPrim, NULL, lpDDSPrim, NULL, 0, NULL);
// v2.02.44 - used for what? Commenting out seems to fix the palette update glitches
// and make the "Palette updates don't blit"option useless....
//(*pInvalidateRect)(hWnd, NULL, FALSE);
} }
void dxwCore::DoSlow(int delay) void dxwCore::DoSlow(int delay)
@ -913,6 +922,14 @@ void dxwCore::ShowFPS()
this->ShowFPS(GetDC(hWnd)); this->ShowFPS(GetDC(hWnd));
} }
void dxwCore::ShowFPS(LPDIRECTDRAWSURFACE lpdds)
{
HDC hdc; // the working dc
if (FAILED(lpdds->GetDC(&hdc))) return;
this->ShowFPS(hdc);
lpdds->ReleaseDC(hdc);
}
void dxwCore::ShowFPS(HDC xdc) void dxwCore::ShowFPS(HDC xdc)
{ {
char sBuf[81]; char sBuf[81];
@ -942,34 +959,56 @@ void dxwCore::ShowFPS(HDC xdc)
TextOut(xdc, x, y, sBuf, strlen(sBuf)); TextOut(xdc, x, y, sBuf, strlen(sBuf));
} }
void dxwCore::ShowFPS(LPDIRECTDRAWSURFACE lpdds) void dxwCore::ShowTimeStretching()
{
HDC hdc;
hdc=GetDC(hWnd);
if(hdc)this->ShowTimeStretching(hdc);
}
void dxwCore::ShowTimeStretching(LPDIRECTDRAWSURFACE lpdds)
{
HDC hdc; // the working dc
__try {
if (FAILED(lpdds->GetDC(&hdc))) return;
}
__except(EXCEPTION_EXECUTE_HANDLER){
return;
}
if(hdc)this->ShowTimeStretching(hdc);
lpdds->ReleaseDC(hdc);
}
void dxwCore::ShowTimeStretching(HDC xdc)
{ {
HDC xdc; // the working dc
char sBuf[81]; char sBuf[81];
static DWORD dwTimer = 0; static DWORD dwTimer = 0;
static int corner = 0; static int corner = 0;
static int x, y; static int x, y;
static DWORD color; static DWORD color;
static int LastTimeShift = 1000; // any initial number different from -8 .. +8
if((*pGetTickCount)()-dwTimer > 4000){ if((*pGetTickCount)()-dwTimer > 4000){
RECT rect;
if(LastTimeShift==TimeShift) return; // after a while, stop the show
dwTimer = (*pGetTickCount)(); dwTimer = (*pGetTickCount)();
LastTimeShift=TimeShift;
corner = dwTimer % 4; corner = dwTimer % 4;
color=0xFF0000; // blue color=0x0000FF; // red
(*pGetClientRect)(hWnd, &rect);
switch (corner) { switch (corner) {
case 0: x=10; y=10; break; case 0: x=10; y=10; break;
case 1: x=dwScreenWidth-60; y=10; break; case 1: x=rect.right-60; y=10; break;
case 2: x=dwScreenWidth-60; y=dwScreenHeight-20; break; case 2: x=rect.right-60; y=rect.bottom-20; break;
case 3: x=10; y=dwScreenHeight-20; break; case 3: x=10; y=rect.bottom-20; break;
} }
} }
if (FAILED(lpdds->GetDC(&xdc))) return;
SetTextColor(xdc,color); SetTextColor(xdc,color);
//SetBkMode(xdc, TRANSPARENT); //SetBkMode(xdc, TRANSPARENT);
SetBkMode(xdc, OPAQUE); SetBkMode(xdc, OPAQUE);
sprintf_s(sBuf, 80, "FPS: %d", GetHookInfo()->FPSCount); sprintf_s(sBuf, 80, "Time %s", dxw.GetTSCaption());
TextOut(xdc, x, y, sBuf, strlen(sBuf)); TextOut(xdc, x, y, sBuf, strlen(sBuf));
lpdds->ReleaseDC(xdc);
} }
char *dxwCore::GetTSCaption(int shift) char *dxwCore::GetTSCaption(int shift)
@ -983,6 +1022,7 @@ char *dxwCore::GetTSCaption(int shift)
if (shift<(-8) || shift>(+8)) return "???"; if (shift<(-8) || shift>(+8)) return "???";
return sTSCaption[shift+8]; return sTSCaption[shift+8];
} }
char *dxwCore::GetTSCaption(void) char *dxwCore::GetTSCaption(void)
{ {
return GetTSCaption(TimeShift); return GetTSCaption(TimeShift);

View File

@ -66,8 +66,11 @@ public: // methods
DWORD StretchTime(DWORD); DWORD StretchTime(DWORD);
DWORD StretchCounter(DWORD); DWORD StretchCounter(DWORD);
void ShowFPS(LPDIRECTDRAWSURFACE); void ShowFPS(LPDIRECTDRAWSURFACE);
void ShowTimeStretching(LPDIRECTDRAWSURFACE);
void ShowFPS(void); void ShowFPS(void);
void ShowTimeStretching(void);
void ShowFPS(HDC); void ShowFPS(HDC);
void ShowTimeStretching(HDC);
char *GetTSCaption(int); char *GetTSCaption(int);
char *GetTSCaption(void); char *GetTSCaption(void);
void DoSlow(int); void DoSlow(int);
@ -81,6 +84,7 @@ public: // methods
BOOL IsVirtual(HDC); BOOL IsVirtual(HDC);
void ResetEmulatedDC(); void ResetEmulatedDC();
int VirtualOffsetX, VirtualOffsetY; int VirtualOffsetX, VirtualOffsetY;
void DumpPalette(DWORD, LPPALETTEENTRY);
public: // simple data variables public: // simple data variables
DDPIXELFORMAT ActualPixelFormat; DDPIXELFORMAT ActualPixelFormat;

View File

@ -24,7 +24,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "dxwnd.h" #include "dxwnd.h"
#include "dxwcore.hpp" #include "dxwcore.hpp"
#define VERSION "2.02.43" #define VERSION "2.02.44"
#define DDTHREADLOCK 1 #define DDTHREADLOCK 1

Binary file not shown.

View File

@ -14,7 +14,7 @@ static void Stopper(char *s, int line)
MessageBox(0, sMsg, "break", MB_OK | MB_ICONEXCLAMATION); MessageBox(0, sMsg, "break", MB_OK | MB_ICONEXCLAMATION);
} }
#define STOPPER_TEST // comment out to eliminate //#define STOPPER_TEST // comment out to eliminate
#ifdef STOPPER_TEST #ifdef STOPPER_TEST
#define STOPPER(s) Stopper(s, __LINE__) #define STOPPER(s) Stopper(s, __LINE__)
#else #else
@ -512,7 +512,7 @@ HPALETTE WINAPI extSelectPalette(HDC hdc, HPALETTE hpal, BOOL bForceBackground)
BOOL WINAPI extAnimatePalette(HPALETTE hpal, UINT iStartIndex, UINT cEntries, const PALETTEENTRY *ppe) BOOL WINAPI extAnimatePalette(HPALETTE hpal, UINT iStartIndex, UINT cEntries, const PALETTEENTRY *ppe)
{ {
// Invoked by "Pharaoh's Ascent 1.4" // Invoked by "Pharaoh's Ascent 1.4"
//STOPPER("AnimatePalette"); STOPPER("AnimatePalette");
return TRUE; return TRUE;
} }
@ -525,14 +525,9 @@ UINT WINAPI extRealizePalette(HDC hdc)
if((OBJ_DC == GetObjectType(hdc)) && (dxw.dwFlags1 & EMULATESURFACE)){ if((OBJ_DC == GetObjectType(hdc)) && (dxw.dwFlags1 & EMULATESURFACE)){
PALETTEENTRY PalEntries[256]; PALETTEENTRY PalEntries[256];
UINT nEntries; UINT nEntries;
nEntries=GetPaletteEntries(hDesktopPalette, 0, 255, PalEntries); nEntries=GetPaletteEntries(hDesktopPalette, 0, 256, PalEntries);
mySetPalette(0, nEntries, PalEntries); mySetPalette(0, nEntries, PalEntries);
if(IsDebug){ if(IsDebug) dxw.DumpPalette(nEntries, PalEntries);
UINT idx;
OutTraceD("PaletteEntries[%x]= ", nEntries);
for(idx=0; idx<256; idx++) OutTraceD("(%02x.%02x.%02x)", PalEntries[idx].peRed, PalEntries[idx].peGreen, PalEntries[idx].peBlue);
OutTraceD("\n");
}
ret=DD_OK; ret=DD_OK;
} }
else else
@ -546,6 +541,73 @@ UINT WINAPI extRealizePalette(HDC hdc)
// returns 0. "Mission Force Cyberstorm" is one of these. Returning the same // returns 0. "Mission Force Cyberstorm" is one of these. Returning the same
// value as nEntries, even though lppe is untouched, fixes the problem. // value as nEntries, even though lppe is untouched, fixes the problem.
static PALETTEENTRY dp[256]={ // default palette, captured on my PC with video mode set to 8BPP
{0x00,0x00,0x00,0x00},{0x80,0x00,0x00,0x00},{0x00,0x80,0x00,0x00},{0x80,0x80,0x00,0x00},
{0x00,0x00,0x80,0x00},{0x80,0x00,0x80,0x00},{0x00,0x80,0x80,0x00},{0xc0,0xc0,0xc0,0x00},
{0xa0,0xa0,0xa0,0x00},{0xf0,0xf0,0xf0,0x00},{0xc0,0xdc,0xc0,0x00},{0xa6,0xca,0xf0,0x00},
{0x04,0x04,0x04,0x00},{0x08,0x08,0x08,0x00},{0x0c,0x0c,0x0c,0x00},{0x11,0x11,0x11,0x00},
{0x16,0x16,0x16,0x00},{0x1c,0x1c,0x1c,0x00},{0x22,0x22,0x22,0x00},{0x29,0x29,0x29,0x00},
{0x55,0x55,0x55,0x00},{0x4d,0x4d,0x4d,0x00},{0x42,0x42,0x42,0x00},{0x39,0x39,0x39,0x00},
{0xff,0x7c,0x80,0x00},{0xff,0x50,0x50,0x00},{0xd6,0x00,0x93,0x00},{0xcc,0xec,0xff,0x00},
{0xef,0xd6,0xc6,0x00},{0xe7,0xe7,0xd6,0x00},{0xad,0xa9,0x90,0x00},{0x33,0x00,0x00,0x00},
{0x66,0x00,0x00,0x00},{0x99,0x00,0x00,0x00},{0xcc,0x00,0x00,0x00},{0x00,0x33,0x00,0x00},
{0x33,0x33,0x00,0x00},{0x66,0x33,0x00,0x00},{0x99,0x33,0x00,0x00},{0xcc,0x33,0x00,0x00},
{0xff,0x33,0x00,0x00},{0x00,0x66,0x00,0x00},{0x33,0x66,0x00,0x00},{0x66,0x66,0x00,0x00},
{0x99,0x66,0x00,0x00},{0xcc,0x66,0x00,0x00},{0xff,0x66,0x00,0x00},{0x00,0x99,0x00,0x00},
{0x33,0x99,0x00,0x00},{0x66,0x99,0x00,0x00},{0x99,0x99,0x00,0x00},{0xcc,0x99,0x00,0x00},
{0xff,0x99,0x00,0x00},{0x00,0xcc,0x00,0x00},{0x33,0xcc,0x00,0x00},{0x66,0xcc,0x00,0x00},
{0x99,0xcc,0x00,0x00},{0xcc,0xcc,0x00,0x00},{0xff,0xcc,0x00,0x00},{0x66,0xff,0x00,0x00},
{0x99,0xff,0x00,0x00},{0xcc,0xff,0x00,0x00},{0x00,0x00,0x33,0x00},{0x33,0x00,0x33,0x00},
{0x66,0x00,0x33,0x00},{0x99,0x00,0x33,0x00},{0xcc,0x00,0x33,0x00},{0xff,0x00,0x33,0x00},
{0x00,0x33,0x33,0x00},{0x33,0x33,0x33,0x00},{0x66,0x33,0x33,0x00},{0x99,0x33,0x33,0x00},
{0xcc,0x33,0x33,0x00},{0xff,0x33,0x33,0x00},{0x00,0x66,0x33,0x00},{0x33,0x66,0x33,0x00},
{0x66,0x66,0x33,0x00},{0x99,0x66,0x33,0x00},{0xcc,0x66,0x33,0x00},{0xff,0x66,0x33,0x00},
{0x00,0x99,0x33,0x00},{0x33,0x99,0x33,0x00},{0x66,0x99,0x33,0x00},{0x99,0x99,0x33,0x00},
{0xcc,0x99,0x33,0x00},{0xff,0x99,0x33,0x00},{0x00,0xcc,0x33,0x00},{0x33,0xcc,0x33,0x00},
{0x66,0xcc,0x33,0x00},{0x99,0xcc,0x33,0x00},{0xcc,0xcc,0x33,0x00},{0xff,0xcc,0x33,0x00},
{0x33,0xff,0x33,0x00},{0x66,0xff,0x33,0x00},{0x99,0xff,0x33,0x00},{0xcc,0xff,0x33,0x00},
{0xff,0xff,0x33,0x00},{0x00,0x00,0x66,0x00},{0x33,0x00,0x66,0x00},{0x66,0x00,0x66,0x00},
{0x99,0x00,0x66,0x00},{0xcc,0x00,0x66,0x00},{0xff,0x00,0x66,0x00},{0x00,0x33,0x66,0x00},
{0x33,0x33,0x66,0x00},{0x66,0x33,0x66,0x00},{0x99,0x33,0x66,0x00},{0xcc,0x33,0x66,0x00},
{0xff,0x33,0x66,0x00},{0x00,0x66,0x66,0x00},{0x33,0x66,0x66,0x00},{0x66,0x66,0x66,0x00},
{0x99,0x66,0x66,0x00},{0xcc,0x66,0x66,0x00},{0x00,0x99,0x66,0x00},{0x33,0x99,0x66,0x00},
{0x66,0x99,0x66,0x00},{0x99,0x99,0x66,0x00},{0xcc,0x99,0x66,0x00},{0xff,0x99,0x66,0x00},
{0x00,0xcc,0x66,0x00},{0x33,0xcc,0x66,0x00},{0x99,0xcc,0x66,0x00},{0xcc,0xcc,0x66,0x00},
{0xff,0xcc,0x66,0x00},{0x00,0xff,0x66,0x00},{0x33,0xff,0x66,0x00},{0x99,0xff,0x66,0x00},
{0xcc,0xff,0x66,0x00},{0xff,0x00,0xcc,0x00},{0xcc,0x00,0xff,0x00},{0x00,0x99,0x99,0x00},
{0x99,0x33,0x99,0x00},{0x99,0x00,0x99,0x00},{0xcc,0x00,0x99,0x00},{0x00,0x00,0x99,0x00},
{0x33,0x33,0x99,0x00},{0x66,0x00,0x99,0x00},{0xcc,0x33,0x99,0x00},{0xff,0x00,0x99,0x00},
{0x00,0x66,0x99,0x00},{0x33,0x66,0x99,0x00},{0x66,0x33,0x99,0x00},{0x99,0x66,0x99,0x00},
{0xcc,0x66,0x99,0x00},{0xff,0x33,0x99,0x00},{0x33,0x99,0x99,0x00},{0x66,0x99,0x99,0x00},
{0x99,0x99,0x99,0x00},{0xcc,0x99,0x99,0x00},{0xff,0x99,0x99,0x00},{0x00,0xcc,0x99,0x00},
{0x33,0xcc,0x99,0x00},{0x66,0xcc,0x66,0x00},{0x99,0xcc,0x99,0x00},{0xcc,0xcc,0x99,0x00},
{0xff,0xcc,0x99,0x00},{0x00,0xff,0x99,0x00},{0x33,0xff,0x99,0x00},{0x66,0xcc,0x99,0x00},
{0x99,0xff,0x99,0x00},{0xcc,0xff,0x99,0x00},{0xff,0xff,0x99,0x00},{0x00,0x00,0xcc,0x00},
{0x33,0x00,0x99,0x00},{0x66,0x00,0xcc,0x00},{0x99,0x00,0xcc,0x00},{0xcc,0x00,0xcc,0x00},
{0x00,0x33,0x99,0x00},{0x33,0x33,0xcc,0x00},{0x66,0x33,0xcc,0x00},{0x99,0x33,0xcc,0x00},
{0xcc,0x33,0xcc,0x00},{0xff,0x33,0xcc,0x00},{0x00,0x66,0xcc,0x00},{0x33,0x66,0xcc,0x00},
{0x66,0x66,0x99,0x00},{0x99,0x66,0xcc,0x00},{0xcc,0x66,0xcc,0x00},{0xff,0x66,0x99,0x00},
{0x00,0x99,0xcc,0x00},{0x33,0x99,0xcc,0x00},{0x66,0x99,0xcc,0x00},{0x99,0x99,0xcc,0x00},
{0xcc,0x99,0xcc,0x00},{0xff,0x99,0xcc,0x00},{0x00,0xcc,0xcc,0x00},{0x33,0xcc,0xcc,0x00},
{0x66,0xcc,0xcc,0x00},{0x99,0xcc,0xcc,0x00},{0xcc,0xcc,0xcc,0x00},{0xff,0xcc,0xcc,0x00},
{0x00,0xff,0xcc,0x00},{0x33,0xff,0xcc,0x00},{0x66,0xff,0x99,0x00},{0x99,0xff,0xcc,0x00},
{0xcc,0xff,0xcc,0x00},{0xff,0xff,0xcc,0x00},{0x33,0x00,0xcc,0x00},{0x66,0x00,0xff,0x00},
{0x99,0x00,0xff,0x00},{0x00,0x33,0xcc,0x00},{0x33,0x33,0xff,0x00},{0x66,0x33,0xff,0x00},
{0x99,0x33,0xff,0x00},{0xcc,0x33,0xff,0x00},{0xff,0x33,0xff,0x00},{0x00,0x66,0xff,0x00},
{0x33,0x66,0xff,0x00},{0x66,0x66,0xcc,0x00},{0x99,0x66,0xff,0x00},{0xcc,0x66,0xff,0x00},
{0xff,0x66,0xcc,0x00},{0x00,0x99,0xff,0x00},{0x33,0x99,0xff,0x00},{0x66,0x99,0xff,0x00},
{0x99,0x99,0xff,0x00},{0xcc,0x99,0xff,0x00},{0xff,0x99,0xff,0x00},{0x00,0xcc,0xff,0x00},
{0x33,0xcc,0xff,0x00},{0x66,0xcc,0xff,0x00},{0x99,0xcc,0xff,0x00},{0xcc,0xcc,0xff,0x00},
{0xff,0xcc,0xff,0x00},{0x33,0xff,0xff,0x00},{0x66,0xff,0xcc,0x00},{0x99,0xff,0xff,0x00},
{0xcc,0xff,0xff,0x00},{0xff,0x66,0x66,0x00},{0x66,0xff,0x66,0x00},{0xff,0xff,0x66,0x00},
{0x66,0x66,0xff,0x00},{0xff,0x66,0xff,0x00},{0x66,0xff,0xff,0x00},{0xa5,0x00,0x21,0x00},
{0x5f,0x5f,0x5f,0x00},{0x77,0x77,0x77,0x00},{0x86,0x86,0x86,0x00},{0x96,0x96,0x96,0x00},
{0xcb,0xcb,0xcb,0x00},{0xb2,0xb2,0xb2,0x00},{0xd7,0xd7,0xd7,0x00},{0xdd,0xdd,0xdd,0x00},
{0xe3,0xe3,0xe3,0x00},{0xea,0xea,0xea,0x00},{0xff,0xfb,0xf0,0x00},{0xa0,0xa0,0xa4,0x00},
{0x80,0x80,0x80,0x00},{0xff,0x00,0x00,0x00},{0x00,0xff,0x00,0x00},{0xff,0xff,0x00,0x00},
{0x00,0x00,0xff,0x00},{0xff,0x00,0xff,0x00},{0x00,0xff,0xff,0x00},{0xff,0xff,0xff,0x00}
};
UINT WINAPI extGetSystemPaletteEntries(HDC hdc, UINT iStartIndex, UINT nEntries, LPPALETTEENTRY lppe) UINT WINAPI extGetSystemPaletteEntries(HDC hdc, UINT iStartIndex, UINT nEntries, LPPALETTEENTRY lppe)
{ {
int ret; int ret;
@ -554,20 +616,12 @@ UINT WINAPI extGetSystemPaletteEntries(HDC hdc, UINT iStartIndex, UINT nEntries,
ret=(*pGDIGetSystemPaletteEntries)(hdc, iStartIndex, nEntries, lppe); ret=(*pGDIGetSystemPaletteEntries)(hdc, iStartIndex, nEntries, lppe);
OutTraceD("GetSystemPaletteEntries: ret=%d\n", ret); OutTraceD("GetSystemPaletteEntries: ret=%d\n", ret);
if((ret == 0) && (dxw.dwFlags1 & EMULATESURFACE)) { if((ret == 0) && (dxw.dwFlags1 & EMULATESURFACE)) {
// this seems to build a more reasonable system palette .... // use static default data...
HPALETTE hpal; for(UINT idx=0; idx<nEntries; idx++) lppe[idx]=dp[iStartIndex+idx];
hpal=CreateHalftonePalette(NULL); OutTraceD("GetSystemPaletteEntries: FIXED ret=%d\n", ret);
ret = GetPaletteEntries(hpal, iStartIndex, nEntries, lppe); ret = nEntries;
//ret = nEntries;
OutTraceD("GetSystemPaletteEntries: fixing with halftone ret=%d\n", ret);
if(IsDebug){
UINT idx;
OutTraceD("PaletteEntries[%x]= ", nEntries);
for(idx=0; idx<nEntries; idx++) OutTraceD("(%02x.%02x.%02x)", lppe[idx].peRed, lppe[idx].peGreen, lppe[idx].peBlue);
OutTraceD("\n");
}
for(UINT idx=iStartIndex; idx<iStartIndex+nEntries; idx++) lppe[idx].peFlags=0; // not useful, but ....
} }
if(IsDebug) dxw.DumpPalette(nEntries, &lppe[iStartIndex]);
return ret; return ret;
} }
@ -902,6 +956,7 @@ BOOL WINAPI extGDIBitBlt(HDC hdcDest, int nXDest, int nYDest, int nWidth, int nH
dxw.MapClient(&nXDest, &nYDest, &nWDest, &nHDest); dxw.MapClient(&nXDest, &nYDest, &nWDest, &nHDest);
res=(*pGDIStretchBlt)(hdcDest, nXDest, nYDest, nWDest, nHDest, hdcSrc, nXSrc, nYSrc, nWidth, nHeight, dwRop); res=(*pGDIStretchBlt)(hdcDest, nXDest, nYDest, nWDest, nHDest, hdcSrc, nXSrc, nYSrc, nWidth, nHeight, dwRop);
if (dxw.dwFlags2 & SHOWFPSOVERLAY) dxw.ShowFPS(hdcDest); if (dxw.dwFlags2 & SHOWFPSOVERLAY) dxw.ShowFPS(hdcDest);
if (dxw.dwFlags4 & SHOWTIMESTRETCH) dxw.ShowTimeStretching(hdcDest);
OutTrace("Debug: DC dest=(%d,%d) size=(%d,%d)\n", nXDest, nYDest, nWDest, nHDest); OutTrace("Debug: DC dest=(%d,%d) size=(%d,%d)\n", nXDest, nYDest, nWDest, nHDest);
} }
else if(WindowFromDC(hdcDest)==NULL){ else if(WindowFromDC(hdcDest)==NULL){
@ -912,6 +967,7 @@ BOOL WINAPI extGDIBitBlt(HDC hdcDest, int nXDest, int nYDest, int nWidth, int nH
dxw.MapWindow(&nXDest, &nYDest, &nWDest, &nHDest); dxw.MapWindow(&nXDest, &nYDest, &nWDest, &nHDest);
res=(*pGDIStretchBlt)(hdcDest, nXDest, nYDest, nWDest, nHDest, hdcSrc, nXSrc, nYSrc, nWidth, nHeight, dwRop); res=(*pGDIStretchBlt)(hdcDest, nXDest, nYDest, nWDest, nHDest, hdcSrc, nXSrc, nYSrc, nWidth, nHeight, dwRop);
if (dxw.dwFlags2 & SHOWFPSOVERLAY) dxw.ShowFPS(hdcDest); if (dxw.dwFlags2 & SHOWFPSOVERLAY) dxw.ShowFPS(hdcDest);
if (dxw.dwFlags4 & SHOWTIMESTRETCH) dxw.ShowTimeStretching(hdcDest);
OutTrace("Debug: NULL dest=(%d,%d) size=(%d,%d)\n", nXDest, nYDest, nWDest, nHDest); OutTrace("Debug: NULL dest=(%d,%d) size=(%d,%d)\n", nXDest, nYDest, nWDest, nHDest);
} }
else{ else{
@ -949,6 +1005,7 @@ BOOL WINAPI extGDIPatBlt(HDC hdcDest, int nXDest, int nYDest, int nWidth, int nH
if (dxw.IsFullScreen()){ if (dxw.IsFullScreen()){
dxw.MapClient(&nXDest, &nYDest, &nWidth, &nHeight); dxw.MapClient(&nXDest, &nYDest, &nWidth, &nHeight);
if (dxw.dwFlags2 & SHOWFPSOVERLAY) dxw.ShowFPS(hdcDest); if (dxw.dwFlags2 & SHOWFPSOVERLAY) dxw.ShowFPS(hdcDest);
if (dxw.dwFlags4 & SHOWTIMESTRETCH) dxw.ShowTimeStretching(hdcDest);
res=(*pGDIPatBlt)(hdcDest, nXDest, nYDest, nWidth, nHeight, dwRop); res=(*pGDIPatBlt)(hdcDest, nXDest, nYDest, nWidth, nHeight, dwRop);
} }
else if(WindowFromDC(hdcDest)==NULL){ else if(WindowFromDC(hdcDest)==NULL){
@ -961,6 +1018,7 @@ BOOL WINAPI extGDIPatBlt(HDC hdcDest, int nXDest, int nYDest, int nWidth, int nH
res=(*pGDIPatBlt)(hdcDest, nXDest, nYDest, nWidth, nHeight, dwRop); res=(*pGDIPatBlt)(hdcDest, nXDest, nYDest, nWidth, nHeight, dwRop);
} }
if (IsToScreen && (dxw.dwFlags2 & SHOWFPSOVERLAY)) dxw.ShowFPS(hdcDest); if (IsToScreen && (dxw.dwFlags2 & SHOWFPSOVERLAY)) dxw.ShowFPS(hdcDest);
if (IsToScreen && (dxw.dwFlags4 & SHOWTIMESTRETCH)) dxw.ShowTimeStretching(hdcDest);
if(!res) OutTraceE("GDI.PatBlt: ERROR err=%d at %d\n", GetLastError(), __LINE__); if(!res) OutTraceE("GDI.PatBlt: ERROR err=%d at %d\n", GetLastError(), __LINE__);
return res; return res;
@ -996,6 +1054,7 @@ BOOL WINAPI extGDIStretchBlt(HDC hdcDest, int nXDest, int nYDest, int nWidth, in
res=(*pGDIStretchBlt)(hdcDest, nXDest, nYDest, nWidth, nHeight, hdcSrc, nXSrc, nYSrc, nWSrc, nHSrc, dwRop); res=(*pGDIStretchBlt)(hdcDest, nXDest, nYDest, nWidth, nHeight, hdcSrc, nXSrc, nYSrc, nWSrc, nHSrc, dwRop);
if (IsToScreen && (dxw.dwFlags2 & SHOWFPSOVERLAY)) dxw.ShowFPS(hdcDest); if (IsToScreen && (dxw.dwFlags2 & SHOWFPSOVERLAY)) dxw.ShowFPS(hdcDest);
if (IsToScreen && (dxw.dwFlags4 & SHOWTIMESTRETCH)) dxw.ShowTimeStretching(hdcDest);
if(!res) OutTraceE("GDI.StretchBlt: ERROR err=%d at %d\n", GetLastError(), __LINE__); if(!res) OutTraceE("GDI.StretchBlt: ERROR err=%d at %d\n", GetLastError(), __LINE__);
return res; return res;
} }

View File

@ -524,6 +524,7 @@ HRESULT WINAPI extPresent(void *pd3dd, CONST RECT *pSourceRect, CONST RECT *pDes
// proxy .... // proxy ....
res=(*pPresent)(pd3dd, pSourceRect, pDestRect, hDestWindowOverride, pDirtyRegion); res=(*pPresent)(pd3dd, pSourceRect, pDestRect, hDestWindowOverride, pDirtyRegion);
if (dxw.dwFlags2 & SHOWFPSOVERLAY) dxw.ShowFPS(); if (dxw.dwFlags2 & SHOWFPSOVERLAY) dxw.ShowFPS();
if (dxw.dwFlags4 & SHOWTIMESTRETCH) dxw.ShowTimeStretching();
return res; return res;
} }

View File

@ -243,7 +243,7 @@ void HookViewport(LPDIRECT3DVIEWPORT *lpViewport, int dxversion)
} }
} }
HRESULT WINAPI extQueryInterfaceD3(void *lpd3d, REFIID riid, LPVOID * ppvObj) HRESULT WINAPI extQueryInterfaceD3(void *lpd3d, REFIID riid, LPVOID *ppvObj)
{ {
HRESULT res; HRESULT res;
int d3dversion; int d3dversion;

View File

@ -41,16 +41,6 @@ HRESULT STDAPICALLTYPE extCoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter,
OutTraceD("CoCreateInstance: rclsid=%x UnkOuter=%x ClsContext=%x refiid=%x(%s)\n", OutTraceD("CoCreateInstance: rclsid=%x UnkOuter=%x ClsContext=%x refiid=%x(%s)\n",
rclsid, pUnkOuter, dwClsContext, riid.Data1, ExplainGUID((GUID *)&riid)); rclsid, pUnkOuter, dwClsContext, riid.Data1, ExplainGUID((GUID *)&riid));
// CLSID e436ebb3 implies loading quartz.dll to play movies through dshow:
// quartz.dll must be hooked.
if (*(DWORD *)&rclsid==0xe436ebb3){
HMODULE qlib;
OutTraceD("CoCreateInstance: CLSID_FilterGraph RIID=%x\n", *(DWORD *)&riid);
qlib=(*pLoadLibraryA)("quartz.dll");
OutTraceD("CoCreateInstance: quartz lib handle=%x\n", qlib);
HookModule(qlib, 0);
}
res=(*pCoCreateInstance)(rclsid, pUnkOuter, dwClsContext, riid, ppv); res=(*pCoCreateInstance)(rclsid, pUnkOuter, dwClsContext, riid, ppv);
if(res) if(res)
OutTraceE("CoCreateInstance: ERROR res=%x\n", res); OutTraceE("CoCreateInstance: ERROR res=%x\n", res);
@ -93,6 +83,26 @@ HRESULT STDAPICALLTYPE extCoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter,
else else
if (*(DWORD *)&rclsid==*(DWORD *)&CLSID_DxDiagProvider) res=HookDxDiag(riid, ppv); if (*(DWORD *)&rclsid==*(DWORD *)&CLSID_DxDiagProvider) res=HookDxDiag(riid, ppv);
// hook of library modules loaded by CoCreateInstance without going through LoadLibrary call....
char *Module=NULL;
char *Class=NULL;
HMODULE hModule=NULL;
switch (*(DWORD *)&rclsid){
case 0xe436ebb3: Module="quartz"; Class="CLSID_FilterGraph"; break;
case 0x4fd2a832: Module="ddrawex"; Class="CLSID_DirectDrawEx"; break;
case 0x49c47ce5: Module="amstream"; Class="CLSID_AMMultiMediaStream"; break;
}
if(Module){
hModule=GetModuleHandle(Module);
if(hModule){
OutTraceD("CoCreateInstance: Class=%s RIID=%x lib=%s handle=%x\n", Class, *(DWORD *)&riid, Module, hModule);
HookModule(hModule, 0);
}
else {
OutTraceE("CoCreateInstance: GetModuleHandle(%s) ERROR err=%d at %d\n", Module, GetLastError(), __LINE__);
}
}
return res; return res;
} }

View File

@ -220,6 +220,7 @@ void WINAPI extglDrawBuffer(GLenum mode)
} }
(*pglDrawBuffer)(mode); (*pglDrawBuffer)(mode);
if (dxw.dwFlags2 & SHOWFPSOVERLAY) dxw.ShowFPS(); if (dxw.dwFlags2 & SHOWFPSOVERLAY) dxw.ShowFPS();
if (dxw.dwFlags4 & SHOWTIMESTRETCH) dxw.ShowTimeStretching();
} }
void WINAPI extglPolygonMode(GLenum face, GLenum mode) void WINAPI extglPolygonMode(GLenum face, GLenum mode)

View File

@ -175,6 +175,8 @@ typedef BOOL (WINAPI *UpdateWindow_Type)(HWND);
typedef BOOL (WINAPI *GetWindowPlacement_Type)(HWND, WINDOWPLACEMENT *); typedef BOOL (WINAPI *GetWindowPlacement_Type)(HWND, WINDOWPLACEMENT *);
typedef BOOL (WINAPI *SetWindowPlacement_Type)(HWND, WINDOWPLACEMENT *); typedef BOOL (WINAPI *SetWindowPlacement_Type)(HWND, WINDOWPLACEMENT *);
typedef HWND (WINAPI *SetCapture_Type)(HWND); typedef HWND (WINAPI *SetCapture_Type)(HWND);
typedef HWND (WINAPI *GetForegroundWindow_Type)(void);
typedef HWND (WINAPI *GetActiveWindow_Type)(void);
// Winmm.dll: // Winmm.dll:
typedef MCIERROR(WINAPI *mciSendCommand_Type)(MCIDEVICEID, UINT, DWORD_PTR, DWORD_PTR); typedef MCIERROR(WINAPI *mciSendCommand_Type)(MCIDEVICEID, UINT, DWORD_PTR, DWORD_PTR);
@ -358,6 +360,8 @@ DXWEXTERN UpdateWindow_Type pUpdateWindow DXWINITIALIZED;
DXWEXTERN GetWindowPlacement_Type pGetWindowPlacement DXWINITIALIZED; DXWEXTERN GetWindowPlacement_Type pGetWindowPlacement DXWINITIALIZED;
DXWEXTERN SetWindowPlacement_Type pSetWindowPlacement DXWINITIALIZED; DXWEXTERN SetWindowPlacement_Type pSetWindowPlacement DXWINITIALIZED;
DXWEXTERN SetCapture_Type pSetCapture DXWINITIALIZED; DXWEXTERN SetCapture_Type pSetCapture DXWINITIALIZED;
DXWEXTERN GetForegroundWindow_Type pGetForegroundWindow DXWINITIALIZED;
DXWEXTERN GetActiveWindow_Type pGetActiveWindow DXWINITIALIZED;
// Winmm.dll: // Winmm.dll:
DXWEXTERN mciSendCommand_Type pmciSendCommand DXWINITIALIZED; DXWEXTERN mciSendCommand_Type pmciSendCommand DXWINITIALIZED;
@ -539,6 +543,8 @@ extern BOOL WINAPI extUpdateWindow(HWND);
extern BOOL WINAPI extGetWindowPlacement(HWND, WINDOWPLACEMENT *); extern BOOL WINAPI extGetWindowPlacement(HWND, WINDOWPLACEMENT *);
extern BOOL WINAPI extSetWindowPlacement(HWND, WINDOWPLACEMENT *); extern BOOL WINAPI extSetWindowPlacement(HWND, WINDOWPLACEMENT *);
extern HWND WINAPI extSetCapture(HWND); extern HWND WINAPI extSetCapture(HWND);
extern HWND WINAPI extGetForegroundWindow(void);
extern HWND WINAPI extGetActiveWindow(void);
// Winmm.dll: // Winmm.dll:
extern MCIERROR WINAPI extmciSendCommand(MCIDEVICEID, UINT, DWORD_PTR, DWORD_PTR); extern MCIERROR WINAPI extmciSendCommand(MCIDEVICEID, UINT, DWORD_PTR, DWORD_PTR);

View File

@ -39,6 +39,9 @@ static HookEntry_Type Hooks[]={
{"DestroyWindow", (FARPROC)NULL, (FARPROC *)&pDestroyWindow, (FARPROC)extDestroyWindow}, {"DestroyWindow", (FARPROC)NULL, (FARPROC *)&pDestroyWindow, (FARPROC)extDestroyWindow},
{"SetSysColors", (FARPROC)NULL, (FARPROC *)&pSetSysColors, (FARPROC)extSetSysColors}, {"SetSysColors", (FARPROC)NULL, (FARPROC *)&pSetSysColors, (FARPROC)extSetSysColors},
{"SetCapture", (FARPROC)NULL, (FARPROC *)&pSetCapture, (FARPROC)extSetCapture}, {"SetCapture", (FARPROC)NULL, (FARPROC *)&pSetCapture, (FARPROC)extSetCapture},
{"GetActiveWindow", (FARPROC)NULL, (FARPROC *)&pGetActiveWindow, (FARPROC)extGetActiveWindow},
{"GetForegroundWindow", (FARPROC)NULL, (FARPROC *)&pGetForegroundWindow, (FARPROC)extGetForegroundWindow},
{0, NULL, 0, 0} // terminator {0, NULL, 0, 0} // terminator
}; };
@ -155,6 +158,24 @@ void HookUser32Init()
HookLibInit(MouseHooks2); HookLibInit(MouseHooks2);
} }
/* ------------------------------------------------------------------------------ */
// auxiliary (static) functions
/* ------------------------------------------------------------------------------ */
static void Stopper(char *s, int line)
{
char sMsg[81];
sprintf(sMsg,"break: \"%s\"", s);
MessageBox(0, sMsg, "break", MB_OK | MB_ICONEXCLAMATION);
}
//#define STOPPER_TEST // comment out to eliminate
#ifdef STOPPER_TEST
#define STOPPER(s) Stopper(s, __LINE__)
#else
#define STOPPER(s)
#endif
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
// //
// globals, externs, static functions... // globals, externs, static functions...
@ -1880,4 +1901,22 @@ HWND WINAPI extSetCapture(HWND hwnd)
ret=(*pSetCapture)(hwnd); ret=(*pSetCapture)(hwnd);
OutTraceD("SetCapture: ret=%x\n", ret); OutTraceD("SetCapture: ret=%x\n", ret);
return ret; return ret;
}
HWND WINAPI extGetActiveWindow(void)
{
HWND ret;
ret=(*pGetActiveWindow)();
OutTraceD("GetActiveWindow: ret=%x\n", ret);
STOPPER("GetActiveWindow");
return ret;
}
HWND WINAPI extGetForegroundWindow(void)
{
HWND ret;
ret=(*pGetForegroundWindow)();
OutTraceD("GetForegroundWindow: ret=%x\n", ret);
STOPPER("GetForegroundWindow");
return ret;
} }

View File

@ -189,6 +189,7 @@
#define IDC_NOALPHACHANNEL 1143 #define IDC_NOALPHACHANNEL 1143
#define IDC_SUPPRESSCHILD 1144 #define IDC_SUPPRESSCHILD 1144
#define IDC_FIXREFCOUNTER 1145 #define IDC_FIXREFCOUNTER 1145
#define IDC_SHOWTIMESTRETCH 1146
#define ID_MODIFY 32771 #define ID_MODIFY 32771
#define ID_DELETE 32772 #define ID_DELETE 32772
#define ID_ADD 32773 #define ID_ADD 32773

View File

@ -32,6 +32,7 @@ void CTabTiming::DoDataExchange(CDataExchange* pDX)
DDX_Check(pDX, IDC_SKIPFPS, cTarget->m_SkipFPS); DDX_Check(pDX, IDC_SKIPFPS, cTarget->m_SkipFPS);
DDX_Check(pDX, IDC_SHOWFPS, cTarget->m_ShowFPS); DDX_Check(pDX, IDC_SHOWFPS, cTarget->m_ShowFPS);
DDX_Check(pDX, IDC_SHOWFPSOVERLAY, cTarget->m_ShowFPSOverlay); DDX_Check(pDX, IDC_SHOWFPSOVERLAY, cTarget->m_ShowFPSOverlay);
DDX_Check(pDX, IDC_SHOWTIMESTRETCH, cTarget->m_ShowTimeStretch);
DDX_Check(pDX, IDC_TIMESTRETCH, cTarget->m_TimeStretch); DDX_Check(pDX, IDC_TIMESTRETCH, cTarget->m_TimeStretch);
DDX_Text(pDX, IDC_MAXFPS, cTarget->m_MaxFPS); DDX_Text(pDX, IDC_MAXFPS, cTarget->m_MaxFPS);
DDX_LBIndex(pDX, IDC_LISTTS, cTarget->m_InitTS); DDX_LBIndex(pDX, IDC_LISTTS, cTarget->m_InitTS);

View File

@ -109,6 +109,7 @@ CTargetDlg::CTargetDlg(CWnd* pParent /*=NULL*/)
m_SkipFPS = FALSE; m_SkipFPS = FALSE;
m_ShowFPS = FALSE; m_ShowFPS = FALSE;
m_ShowFPSOverlay = FALSE; m_ShowFPSOverlay = FALSE;
m_ShowTimeStretch = FALSE;
m_TimeStretch = FALSE; m_TimeStretch = FALSE;
m_HookOpenGL = FALSE; m_HookOpenGL = FALSE;
m_ForceHookOpenGL = FALSE; m_ForceHookOpenGL = FALSE;

View File

@ -99,6 +99,7 @@ public:
BOOL m_LimitFPS; BOOL m_LimitFPS;
BOOL m_ShowFPS; BOOL m_ShowFPS;
BOOL m_ShowFPSOverlay; BOOL m_ShowFPSOverlay;
BOOL m_ShowTimeStretch;
BOOL m_TimeStretch; BOOL m_TimeStretch;
BOOL m_HookOpenGL; BOOL m_HookOpenGL;
BOOL m_ForceHookOpenGL; BOOL m_ForceHookOpenGL;

Binary file not shown.

View File

@ -377,11 +377,12 @@ BEGIN
LTEXT "delay (msec)",IDC_STATIC,52,25,50,9 LTEXT "delay (msec)",IDC_STATIC,52,25,50,9
GROUPBOX "Frame per Second",IDC_STATIC,7,7,140,78 GROUPBOX "Frame per Second",IDC_STATIC,7,7,140,78
CONTROL "Show FPS on title",IDC_SHOWFPS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,60,84,10 CONTROL "Show FPS on title",IDC_SHOWFPS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,60,84,10
CONTROL "Time Stretch - initial:",IDC_TIMESTRETCH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,123,87,10 CONTROL "Time Stretch - initial:",IDC_TIMESTRETCH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,122,87,10
CONTROL "Show FPS overlay",IDC_SHOWFPSOVERLAY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,72,84,10 CONTROL "Show FPS overlay",IDC_SHOWFPSOVERLAY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,72,84,10
EDITTEXT IDC_MAXFPS,104,23,31,14,ES_AUTOHSCROLL | ES_NUMBER,WS_EX_RIGHT EDITTEXT IDC_MAXFPS,104,23,31,14,ES_AUTOHSCROLL | ES_NUMBER,WS_EX_RIGHT
LISTBOX IDC_LISTTS,104,102,31,55,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP LISTBOX IDC_LISTTS,104,104,31,55,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
GROUPBOX "Time Stretching",IDC_STATIC,7,94,139,70 GROUPBOX "Time Stretching",IDC_STATIC,7,94,139,71
CONTROL "Show time stretch",IDC_SHOWTIMESTRETCH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,134,84,10
END END
IDD_TAB_WINDOW DIALOGEX 0, 0, 300, 240 IDD_TAB_WINDOW DIALOGEX 0, 0, 300, 240

Binary file not shown.

View File

@ -213,6 +213,7 @@ static void SetTargetFromDlg(TARGETMAP *t, CTargetDlg *dlg)
if(dlg->m_SkipFPS) t->flags2 |= SKIPFPS; if(dlg->m_SkipFPS) t->flags2 |= SKIPFPS;
if(dlg->m_ShowFPS) t->flags2 |= SHOWFPS; if(dlg->m_ShowFPS) t->flags2 |= SHOWFPS;
if(dlg->m_ShowFPSOverlay) t->flags2 |= SHOWFPSOVERLAY; if(dlg->m_ShowFPSOverlay) t->flags2 |= SHOWFPSOVERLAY;
if(dlg->m_ShowTimeStretch) t->flags4 |= SHOWTIMESTRETCH;
if(dlg->m_TimeStretch) t->flags2 |= TIMESTRETCH; if(dlg->m_TimeStretch) t->flags2 |= TIMESTRETCH;
if(dlg->m_HookOpenGL) t->flags2 |= HOOKOPENGL; if(dlg->m_HookOpenGL) t->flags2 |= HOOKOPENGL;
if(dlg->m_ForceHookOpenGL) t->flags3 |= FORCEHOOKOPENGL; if(dlg->m_ForceHookOpenGL) t->flags3 |= FORCEHOOKOPENGL;
@ -351,6 +352,7 @@ static void SetDlgFromTarget(TARGETMAP *t, CTargetDlg *dlg)
dlg->m_SkipFPS = t->flags2 & SKIPFPS ? 1 : 0; dlg->m_SkipFPS = t->flags2 & SKIPFPS ? 1 : 0;
dlg->m_ShowFPS = t->flags2 & SHOWFPS ? 1 : 0; dlg->m_ShowFPS = t->flags2 & SHOWFPS ? 1 : 0;
dlg->m_ShowFPSOverlay = t->flags2 & SHOWFPSOVERLAY ? 1 : 0; dlg->m_ShowFPSOverlay = t->flags2 & SHOWFPSOVERLAY ? 1 : 0;
dlg->m_ShowTimeStretch = t->flags4 & SHOWTIMESTRETCH ? 1 : 0;
dlg->m_TimeStretch = t->flags2 & TIMESTRETCH ? 1 : 0; dlg->m_TimeStretch = t->flags2 & TIMESTRETCH ? 1 : 0;
dlg->m_HookOpenGL = t->flags2 & HOOKOPENGL ? 1 : 0; dlg->m_HookOpenGL = t->flags2 & HOOKOPENGL ? 1 : 0;
dlg->m_ForceHookOpenGL = t->flags3 & FORCEHOOKOPENGL ? 1 : 0; dlg->m_ForceHookOpenGL = t->flags3 & FORCEHOOKOPENGL ? 1 : 0;