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 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 SHOWTIMESTRETCH 0x00000008 // Shows time stretching multiplier on screen overlay
// logging Tflags DWORD:
#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
oid sha256:5c0d2dcaecf0148f5d3ef79ca65a40148ad4b38921a6705d6dcd736f66a71c74
size 425984
oid sha256:cf9c7d5fd45f8f880656efab5c5db5ef3a0a8e74942d2b2418bf5a49f8fab39b
size 426496

Binary file not shown.

View File

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

View File

@ -22,16 +22,16 @@ sizx0=800
sizy0=600
maxfps0=0
initts0=0
title1=Dungeon Keeper 2 (GOG)
path1=D:\Games\Dungeon Keeper 2 (GOG)\DKII.EXE
title1=Duckman
path1=D:\Games\Duckman\DUCKMAN.EXE
module1=
opengllib1=
ver1=0
coord1=0
flag1=136331298
flagg1=1241513984
flag1=134217762
flagg1=1209008128
flagh1=20
flagi1=0
flagi1=4
tflag1=259
initx1=0
inity1=0
@ -45,16 +45,16 @@ sizx1=800
sizy1=600
maxfps1=0
initts1=0
title2=Heroes of Might and Magic IV
path2=D:\Games\Heroes of Might and Magic IV\heroes4.exe
title2=Dungeon Keeper 2 (GOG)
path2=D:\Games\Dungeon Keeper 2 (GOG)\DKII.EXE
module2=
opengllib2=
ver2=0
coord2=2
flag2=671350818
flagg2=1207959568
flagh2=-2147418092
flagi2=1
coord2=0
flag2=136331298
flagg2=1241513984
flagh2=20
flagi2=0
tflag2=259
initx2=0
inity2=0
@ -68,17 +68,17 @@ sizx2=800
sizy2=600
maxfps2=0
initts2=0
title3=Motocross Madness (DEMO)
path3=D:\Games\Motocross Madness Trial\mcm.exe
title3=Empire Earth
path3=D:\Games\Empire Earth\Empire Earth.exe
module3=
opengllib3=
ver3=0
coord3=0
flag3=134217760
flagg3=1207959552
flagh3=20
flag3=687866016
flagg3=201326848
flagh3=65620
flagi3=0
tflag3=0
tflag3=263
initx3=0
inity3=0
minx3=0
@ -91,17 +91,17 @@ sizx3=800
sizy3=600
maxfps3=0
initts3=0
title4=Project Nomads (DEMO)
path4=D:\Games\Project Nomads Demo\bin\win32\nomads.exe
title4=Grand Prix World
path4=D:\Games\Grand Prix World\gpw.exe
module4=
opengllib4=
ver4=8
ver4=0
coord4=0
flag4=-1476394974
flagg4=1207959808
flagh4=4
flagi4=0
tflag4=274
flag4=134217762
flagg4=1207959680
flagh4=84
flagi4=4
tflag4=0
initx4=0
inity4=0
minx4=0
@ -114,17 +114,17 @@ sizx4=800
sizy4=600
maxfps4=0
initts4=0
title5=Shadows of the Empire (DEMO)
path5=D:\Games\Shadows of the Empire\shadows.exe
title5=Hearts of Iron 2
path5=D:\Games\Hearts of Iron 2\HoI2.exe
module5=
opengllib5=
ver5=0
coord5=2
flag5=134479906
flag5=939526179
flagg5=1207959568
flagh5=33554452
flagi5=0
tflag5=274
flagh5=32788
flagi5=2
tflag5=2
initx5=0
inity5=0
minx5=0
@ -137,17 +137,17 @@ sizx5=800
sizy5=600
maxfps5=0
initts5=0
title6=Tomb Raider 4 (DEMO)
path6=D:\Games\Tomb Raider - The Last Revelation (Demo)\tomb4.exe
title6=Heroes of Might and Magic IV
path6=D:\Games\Heroes of Might and Magic IV\heroes4.exe
module6=
opengllib6=
ver6=7
coord6=0
flag6=134217760
flagg6=1207959552
flagh6=20
flagi6=0
tflag6=258
ver6=0
coord6=2
flag6=671350818
flagg6=1207959568
flagh6=-2147418092
flagi6=1
tflag6=259
initx6=0
inity6=0
minx6=0
@ -160,13 +160,13 @@ sizx6=800
sizy6=600
maxfps6=0
initts6=0
title7=Tomb Raider II
path7=D:\Games\Tomb Raider II\Tomb2.exe
title7=Motocross Madness (DEMO)
path7=D:\Games\Motocross Madness Trial\mcm.exe
module7=
opengllib7=
ver7=0
coord7=0
flag7=671088674
flag7=134217760
flagg7=1207959552
flagh7=20
flagi7=0
@ -183,17 +183,17 @@ sizx7=800
sizy7=600
maxfps7=0
initts7=0
title8=Tomb Raider II Gold (DEMO)
path8=D:\Games\Tomb Raider II Gold (Demo)\Tomb2.exe
title8=Praetorians
path8=D:\games\Praetorians\Praetorians.exe
module8=
opengllib8=
ver8=0
coord8=2
flag8=671088674
flagg8=1224736784
coord8=0
flag8=134217760
flagg8=1207959552
flagh8=20
flagi8=0
tflag8=258
flagi8=4
tflag8=3
initx8=0
inity8=0
minx8=0
@ -206,17 +206,17 @@ sizx8=800
sizy8=600
maxfps8=0
initts8=0
title9=Tomb Raider III
path9=D:\Games\Tomb Raider III\tomb3.exe
title9=Project Nomads (DEMO)
path9=D:\Games\Project Nomads Demo\bin\win32\nomads.exe
module9=
opengllib9=
ver9=0
coord9=2
flag9=134217760
flagg9=1241514000
flagh9=20
ver9=8
coord9=0
flag9=-1476394974
flagg9=1207959808
flagh9=4
flagi9=0
tflag9=322
tflag9=274
initx9=0
inity9=0
minx9=0
@ -229,17 +229,17 @@ sizx9=800
sizy9=600
maxfps9=0
initts9=0
title10=Virtua Fighter 2 (DEMO)
path10=D:\Games\vf2_demo\VF2DEMO.EXE
title10=Rayman 2 Demo
path10=D:\Games\Rayman2Demo\Rayman2Demo.exe
module10=
opengllib10=
ver10=0
ver10=7
coord10=0
flag10=939524131
flagg10=1207959664
flagh10=20
flag10=402653219
flagg10=1208025088
flagh10=2097172
flagi10=0
tflag10=1
tflag10=259
initx10=0
inity10=0
minx10=0
@ -251,18 +251,18 @@ posy10=50
sizx10=800
sizy10=600
maxfps10=0
initts10=0
title11=Virtua Fighter PC
path11=D:\Games\vfpc\VFPC.EXE
initts10=4
title11=Shadows of the Empire (DEMO)
path11=D:\Games\Shadows of the Empire\shadows.exe
module11=
opengllib11=
ver11=0
coord11=0
flag11=402915362
flagg11=1224736784
flagh11=33562644
coord11=2
flag11=134479906
flagg11=1207959568
flagh11=33554452
flagi11=0
tflag11=3
tflag11=274
initx11=0
inity11=0
minx11=0
@ -275,17 +275,17 @@ sizx11=800
sizy11=600
maxfps11=0
initts11=0
title12=Wargasm
path12=D:\Games\Wargasm\tank.exe
title12=StarCraft
path12=D:\Games\Starcraft\StarCraft.exe
module12=
opengllib12=
ver12=0
coord12=2
flag12=687865888
flagg12=1207959568
flagh12=65556
flagi12=0
tflag12=2
coord12=0
flag12=134217762
flagg12=134283264
flagh12=20
flagi12=8
tflag12=64
initx12=0
inity12=0
minx12=0
@ -298,15 +298,15 @@ sizx12=800
sizy12=600
maxfps12=0
initts12=0
title13=Warlords Battlecry II (DEMO)
path13=D:\Games\Warlords Battlecry II Demo\Battlecry II Demo.exe
title13=Tomb Raider 4 (DEMO)
path13=D:\Games\Tomb Raider - The Last Revelation (Demo)\tomb4.exe
module13=
opengllib13=
ver13=0
coord13=2
flag13=134217762
flagg13=1207959568
flagh13=22
ver13=7
coord13=0
flag13=134217760
flagg13=1207959552
flagh13=20
flagi13=0
tflag13=258
initx13=0
@ -321,17 +321,17 @@ sizx13=800
sizy13=600
maxfps13=0
initts13=0
title14=Zax the Alien Hunter (DEMO)
path14=D:\Games\ZaxDemo\Zax.exe
title14=Tomb Raider II
path14=D:\Games\Tomb Raider II\Tomb2.exe
module14=
opengllib14=
ver14=0
coord14=2
flag14=-2011168734
flagg14=1209008144
coord14=0
flag14=671088674
flagg14=1207959552
flagh14=20
flagi14=0
tflag14=258
tflag14=0
initx14=0
inity14=0
minx14=0
@ -344,17 +344,17 @@ sizx14=800
sizy14=600
maxfps14=0
initts14=0
title15=Hearts of Iron 2
path15=D:\Games\Hearts of Iron 2\HoI2.exe
title15=Tomb Raider II Gold (DEMO)
path15=D:\Games\Tomb Raider II Gold (Demo)\Tomb2.exe
module15=
opengllib15=
ver15=0
coord15=2
flag15=939526179
flagg15=1207959568
flagh15=32788
flagi15=2
tflag15=2
flag15=671088674
flagg15=1224736784
flagh15=20
flagi15=0
tflag15=258
initx15=0
inity15=0
minx15=0
@ -367,17 +367,17 @@ sizx15=800
sizy15=600
maxfps15=0
initts15=0
title16=Rayman 2 Demo
path16=D:\Games\Rayman2Demo\Rayman2Demo.exe
title16=Tomb Raider III
path16=D:\Games\Tomb Raider III\tomb3.exe
module16=
opengllib16=
ver16=7
coord16=0
flag16=402653219
flagg16=1208025088
flagh16=2097172
ver16=0
coord16=2
flag16=134217760
flagg16=1241514000
flagh16=20
flagi16=0
tflag16=259
tflag16=322
initx16=0
inity16=0
minx16=0
@ -389,18 +389,18 @@ posy16=50
sizx16=800
sizy16=600
maxfps16=0
initts16=4
title17=Empire Earth
path17=D:\Games\Empire Earth\Empire Earth.exe
initts16=0
title17=Virtua Fighter 2 (DEMO)
path17=D:\Games\vf2_demo\VF2DEMO.EXE
module17=
opengllib17=
ver17=0
coord17=0
flag17=671105057
flagg17=134217744
flagh17=84
flag17=939524131
flagg17=1207959664
flagh17=20
flagi17=0
tflag17=3
tflag17=1
initx17=0
inity17=0
minx17=0
@ -413,8 +413,238 @@ sizx17=800
sizy17=600
maxfps17=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]
posx=1152
posy=191
posx=1177
posy=268
sizx=497
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]
title0=Empire Earth
path0=D:\Games\Empire Earth\Empire Earth.exe
title0=Beyond Divinity
path0=D:\Games\Beyond Divinity\Div.exe
module0=
opengllib0=
ver0=0
coord0=0
flag0=671105057
flagg0=134217744
flagh0=84
flag0=134234144
flagg0=134217728
flagh0=61
flagi0=0
tflag0=3
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.
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: recovered window destruction
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;
OutTraceP("CreatePalette(D): PROXED lpdd=%x dwFlags=%x(%s)\n", lpdd, dwflags, ExplainCreatePaletteFlags(dwflags));
if(IsDebug && (dwflags & DDPCAPS_8BIT)){
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(IsDebug && (dwflags & DDPCAPS_8BIT)) dxw.DumpPalette(256, lpddpa);
res = (*pCreatePalette)(lpdd, dwflags, lpddpa, lplpddp, pu);
if (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 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);
if(IsDebug && !res) dxw.DumpPalette(dwcount, &lpentries[dwstart]);
if (res) OutTraceP("GetEntries(P): ERROR res=%x(%s)\n", res, ExplainDDError(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 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);
if (res) OutTraceP("SetEntries(P): ERROR res=%x(%s)\n", res, ExplainDDError(res));
return res;
@ -2057,12 +2052,7 @@ UINT WINAPI extGetSystemPaletteEntriesProxy(HDC hdc, UINT iStartIndex, UINT nEnt
ret=(*pGDIGetSystemPaletteEntries)(hdc, iStartIndex, nEntries, lppe);
OutTrace("GDI.GetSystemPaletteEntries: PROXED hdc=%x start=%d num=%d ret=%d\n", hdc, iStartIndex, nEntries, ret);
if(ret && IsDebug){
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(IsDebug && ret) dxw.DumpPalette(nEntries, &lppe[iStartIndex]);
if(!ret) OutTrace("GDI.GetSystemPaletteEntries: ERROR err=%d\n", GetLastError());
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;
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++)
pStatus->Palette[dwstart+idx]= lpentries[idx];
if (dxw.dwFlags3 & RGB2YUV){
int idx;
for(idx=0; idx<dwcount; idx++){
long Y, U, V, R, G, B;
R=lpentries[dwstart+idx].peRed;
G=lpentries[dwstart+idx].peGreen;
B=lpentries[dwstart+idx].peBlue;
Y = ((299 * R) + (587 * G) + (114 * B)) / 1000;
U = ((-169 * R) + (-331 * G) + (500 * B)) / 1000 + 128;
V = ((500 * R) + (-419 * G) + (-813 * B)) / 1000 + 128;
//Y = ((299 * R) + (587 * G) + (114 * B)) / 1000;
//U = ((-147 * R) + (-289 * G) + (436 * B)) / 1000 + 128;
//V = ((615 * R) + (-515 * G) + (-100 * B)) / 1000 + 128;
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;
}
}
#if 0
typedef struct {
WORD palVersion;
WORD palNumEntries;
PALETTEENTRY palPalEntry[256];
} LOGPALETTE256;
LOGPALETTE256 GDIPalette;
HPALETTE pal;
GDIPalette.palNumEntries=256;
GDIPalette.palVersion=0;
memcpy(GDIPalette.palPalEntry, lpentries, 256*sizeof(PALETTEENTRY));
pal=CreatePalette((LOGPALETTE *)&GDIPalette);
SelectPalette(GetDC(dxw.GethWnd()), pal, 0);
RealizePalette(GetDC(dxw.GethWnd()));
#endif
if (dxw.dwFlags3 & YUV2RGB){
int idx;
for(idx=0; idx<dwcount; idx++){
long Y, U, V, R, G, B;
R=lpentries[dwstart+idx].peRed;
G=lpentries[dwstart+idx].peGreen;
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 ++){
for(i = 0; i < dwcount; i ++){
PALETTEENTRY PalColor;
PalColor = lpentries[i];
if (dxw.dwFlags3 & BLACKWHITE){
// (http://www.codeproject.com/Articles/66253/Converting-Colors-to-Gray-Shades):
// gray = (red * 0.30) + (green * 0.59) + (blue * 0.11)
DWORD grayscale;
//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;
lpentries[i].peRed = lpentries[i].peGreen = lpentries[i].peBlue = (BYTE)grayscale;
grayscale = (((DWORD)PalColor.peRed * 30) + ((DWORD)PalColor.peGreen * 59) + ((DWORD)PalColor.peBlue) * 11) / 100;
PalColor.peRed = PalColor.peGreen = PalColor.peBlue = (BYTE)grayscale;
}
}
switch (dxw.ActualPixelFormat.dwRGBBitCount){
case 32:
for(i = 0; i < dwcount; i ++){
switch (dxw.ActualPixelFormat.dwRGBBitCount){
case 32:
PaletteEntries[i + dwstart] =
(((DWORD)lpentries[i].peRed) << 16) + (((DWORD)lpentries[i].peGreen) << 8) + ((DWORD)lpentries[i].peBlue);
}
break;
case 16:
for(i = 0; i < dwcount; i ++){
(((DWORD)PalColor.peRed) << 16) + (((DWORD)PalColor.peGreen) << 8) + ((DWORD)PalColor.peBlue);
break;
case 16:
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;
@ -567,7 +525,7 @@ void InitDSScreenParameters(LPDIRECTDRAWSURFACE lpdds)
ddsd.ddpfPixelFormat = p;
OutTraceD("InitDSScreenParameters: Actual %s\n", DumpPixelFormat(&ddsd));
dxw.ActualPixelFormat=p;
dxw.ActualPixelFormat = p;
SetBltTransformations();
return;
}
@ -2586,7 +2544,7 @@ static HRESULT BuildGenericDir(LPDIRECTDRAW lpdd, CreateSurface_Type pCreateSurf
HookDDSurfaceGeneric(lplpdds, dxversion);
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;
}
@ -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.
if (lpdds != lpddssrc) {
if (dxw.dwFlags2 & SHOWFPSOVERLAY) dxw.ShowFPS(lpddssrc);
if (dxw.dwFlags4 & SHOWTIMESTRETCH) dxw.ShowTimeStretching(lpddssrc);
if (IsDebug) BlitTrace("PRIM-NOEMU", lpsrcrect, &destrect, __LINE__);
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 (dxw.dwFlags2 & SHOWFPSOVERLAY) dxw.ShowFPS(lpddssrc);
if (dxw.dwFlags4 & SHOWTIMESTRETCH) dxw.ShowTimeStretching(lpddssrc);
if (IsDebug) BlitTrace("UNSUPP", &emurect, &destrect, __LINE__);
res=(*pBlt)(lpDDSEmu_Prim, &destrect, lpddssrc, lpsrcrect, dwflags, lpddbltfx);
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.dwFlags4 & SHOWTIMESTRETCH) dxw.ShowTimeStretching(lpDDSSource);
if (IsDebug) BlitTrace("BACK2PRIM", &emurect, &destrect, __LINE__);
res=(*pBlt)(lpDDSEmu_Prim, &destrect, lpDDSSource, &emurect, DDBLT_WAIT, 0);
@ -3338,15 +3299,7 @@ HRESULT WINAPI extCreatePalette(LPDIRECTDRAW lpdd, DWORD dwflags, LPPALETTEENTRY
HRESULT res;
OutTraceD("CreatePalette: dwFlags=%x(%s)\n", dwflags, ExplainCreatePaletteFlags(dwflags));
if(IsDebug && (dwflags & DDPCAPS_8BIT)){
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(IsDebug && (dwflags & DDPCAPS_8BIT)) dxw.DumpPalette(256, lpddpa);
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;
res2=lpddp->GetEntries(0, 0, 256, lpentries);
if(res2) OutTraceE("SetPalette: GetEntries ERROR res=%x(%s)\n", res2, ExplainDDError(res2));
mySetPalette(0, 256, lpentries);
//mySetPalette(0, 256, lpentries);
}
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
lpddp, dwflags, dwstart, dwcount, lpentries);
if(IsDebug) dxw.DumpPalette(dwcount, &lpentries[dwstart]);
res = (*pSetEntries)(lpddp, dwflags, dwstart, dwcount, lpentries);
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)
OutTraceE("Lock: GetGDISurface ERROR res=%x(%s) at %d\n", res2, ExplainDDError(res2), __LINE__);
else
(*pReleaseS)(lpDDSPrim);
if(lpdds==lpDDSPrim){
if(dxw.dwFlags1 & LOCKEDSURFACE){
DDSURFACEDESC2 ddsd;
DDBLTFX fx;
memset(&ddsd, 0, sizeof(ddsd));
//ddsd.dwSize=SurfaceDescrSize(lpdds);
ddsd.dwSize=sizeof(DDSURFACEDESC);
ddsd.dwFlags = DDSD_WIDTH | DDSD_HEIGHT | DDSD_CAPS;
ddsd.dwWidth = dxw.GetScreenWidth();
ddsd.dwHeight = dxw.GetScreenHeight();
ddsd.ddsCaps.dwCaps = 0;
//if (SurfaceDescrSize(lpdds)==sizeof(DDSURFACEDESC2)) ddsd.ddsCaps.dwCaps |= DDSCAPS_OFFSCREENPLAIN;
DumpSurfaceAttributes((LPDDSURFACEDESC)&ddsd, "[Dir FixBuf]" , __LINE__);
res=(*pCreateSurface1)(lpPrimaryDD, (DDSURFACEDESC *)&ddsd, (LPDIRECTDRAWSURFACE *)&lpDDSBuffer, 0);
if(res){
OutTraceE("CreateSurface: ERROR on DDSBuffer res=%x(%s) at %d\n",res, ExplainDDError(res), __LINE__);
return res;
(*pReleaseS)(lpDDSPrim);
if(lpdds==lpDDSPrim){
if(dxw.dwFlags1 & LOCKEDSURFACE){
DDSURFACEDESC2 ddsd;
DDBLTFX fx;
memset(&ddsd, 0, sizeof(ddsd));
//ddsd.dwSize=SurfaceDescrSize(lpdds);
ddsd.dwSize=sizeof(DDSURFACEDESC);
ddsd.dwFlags = DDSD_WIDTH | DDSD_HEIGHT | DDSD_CAPS;
ddsd.dwWidth = dxw.GetScreenWidth();
ddsd.dwHeight = dxw.GetScreenHeight();
ddsd.ddsCaps.dwCaps = 0;
//if (SurfaceDescrSize(lpdds)==sizeof(DDSURFACEDESC2)) ddsd.ddsCaps.dwCaps |= DDSCAPS_OFFSCREENPLAIN;
DumpSurfaceAttributes((LPDDSURFACEDESC)&ddsd, "[Dir FixBuf]" , __LINE__);
res=(*pCreateSurface1)(lpPrimaryDD, (DDSURFACEDESC *)&ddsd, (LPDIRECTDRAWSURFACE *)&lpDDSBuffer, 0);
if(res){
OutTraceE("CreateSurface: ERROR on DDSBuffer res=%x(%s) at %d\n",res, ExplainDDError(res), __LINE__);
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));
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__);
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);
}
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);

View File

@ -65,7 +65,7 @@ static char *Flag3Names[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;
}
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)
{
// optimization: don't blit too often!
@ -693,14 +701,15 @@ void dxwCore::ScreenRefresh(void)
int tn = (*pGetTickCount)();
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;
// 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)
@ -913,6 +922,14 @@ void dxwCore::ShowFPS()
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)
{
char sBuf[81];
@ -942,34 +959,56 @@ void dxwCore::ShowFPS(HDC xdc)
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];
static DWORD dwTimer = 0;
static int corner = 0;
static int x, y;
static DWORD color;
static int LastTimeShift = 1000; // any initial number different from -8 .. +8
if((*pGetTickCount)()-dwTimer > 4000){
RECT rect;
if(LastTimeShift==TimeShift) return; // after a while, stop the show
dwTimer = (*pGetTickCount)();
LastTimeShift=TimeShift;
corner = dwTimer % 4;
color=0xFF0000; // blue
color=0x0000FF; // red
(*pGetClientRect)(hWnd, &rect);
switch (corner) {
case 0: x=10; y=10; break;
case 1: x=dwScreenWidth-60; y=10; break;
case 2: x=dwScreenWidth-60; y=dwScreenHeight-20; break;
case 3: x=10; y=dwScreenHeight-20; break;
case 1: x=rect.right-60; y=10; break;
case 2: x=rect.right-60; y=rect.bottom-20; break;
case 3: x=10; y=rect.bottom-20; break;
}
}
}
if (FAILED(lpdds->GetDC(&xdc))) return;
SetTextColor(xdc,color);
//SetBkMode(xdc, TRANSPARENT);
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));
lpdds->ReleaseDC(xdc);
}
char *dxwCore::GetTSCaption(int shift)
@ -983,6 +1022,7 @@ char *dxwCore::GetTSCaption(int shift)
if (shift<(-8) || shift>(+8)) return "???";
return sTSCaption[shift+8];
}
char *dxwCore::GetTSCaption(void)
{
return GetTSCaption(TimeShift);

View File

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

View File

@ -24,7 +24,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "dxwnd.h"
#include "dxwcore.hpp"
#define VERSION "2.02.43"
#define VERSION "2.02.44"
#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);
}
#define STOPPER_TEST // comment out to eliminate
//#define STOPPER_TEST // comment out to eliminate
#ifdef STOPPER_TEST
#define STOPPER(s) Stopper(s, __LINE__)
#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)
{
// Invoked by "Pharaoh's Ascent 1.4"
//STOPPER("AnimatePalette");
STOPPER("AnimatePalette");
return TRUE;
}
@ -525,14 +525,9 @@ UINT WINAPI extRealizePalette(HDC hdc)
if((OBJ_DC == GetObjectType(hdc)) && (dxw.dwFlags1 & EMULATESURFACE)){
PALETTEENTRY PalEntries[256];
UINT nEntries;
nEntries=GetPaletteEntries(hDesktopPalette, 0, 255, PalEntries);
nEntries=GetPaletteEntries(hDesktopPalette, 0, 256, PalEntries);
mySetPalette(0, nEntries, PalEntries);
if(IsDebug){
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");
}
if(IsDebug) dxw.DumpPalette(nEntries, PalEntries);
ret=DD_OK;
}
else
@ -546,6 +541,73 @@ UINT WINAPI extRealizePalette(HDC hdc)
// returns 0. "Mission Force Cyberstorm" is one of these. Returning the same
// 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)
{
int ret;
@ -554,20 +616,12 @@ UINT WINAPI extGetSystemPaletteEntries(HDC hdc, UINT iStartIndex, UINT nEntries,
ret=(*pGDIGetSystemPaletteEntries)(hdc, iStartIndex, nEntries, lppe);
OutTraceD("GetSystemPaletteEntries: ret=%d\n", ret);
if((ret == 0) && (dxw.dwFlags1 & EMULATESURFACE)) {
// this seems to build a more reasonable system palette ....
HPALETTE hpal;
hpal=CreateHalftonePalette(NULL);
ret = GetPaletteEntries(hpal, iStartIndex, nEntries, lppe);
//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 ....
// use static default data...
for(UINT idx=0; idx<nEntries; idx++) lppe[idx]=dp[iStartIndex+idx];
OutTraceD("GetSystemPaletteEntries: FIXED ret=%d\n", ret);
ret = nEntries;
}
if(IsDebug) dxw.DumpPalette(nEntries, &lppe[iStartIndex]);
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);
res=(*pGDIStretchBlt)(hdcDest, nXDest, nYDest, nWDest, nHDest, hdcSrc, nXSrc, nYSrc, nWidth, nHeight, dwRop);
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);
}
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);
res=(*pGDIStretchBlt)(hdcDest, nXDest, nYDest, nWDest, nHDest, hdcSrc, nXSrc, nYSrc, nWidth, nHeight, dwRop);
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);
}
else{
@ -949,6 +1005,7 @@ BOOL WINAPI extGDIPatBlt(HDC hdcDest, int nXDest, int nYDest, int nWidth, int nH
if (dxw.IsFullScreen()){
dxw.MapClient(&nXDest, &nYDest, &nWidth, &nHeight);
if (dxw.dwFlags2 & SHOWFPSOVERLAY) dxw.ShowFPS(hdcDest);
if (dxw.dwFlags4 & SHOWTIMESTRETCH) dxw.ShowTimeStretching(hdcDest);
res=(*pGDIPatBlt)(hdcDest, nXDest, nYDest, nWidth, nHeight, dwRop);
}
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);
}
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__);
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);
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__);
return res;
}

View File

@ -524,6 +524,7 @@ HRESULT WINAPI extPresent(void *pd3dd, CONST RECT *pSourceRect, CONST RECT *pDes
// proxy ....
res=(*pPresent)(pd3dd, pSourceRect, pDestRect, hDestWindowOverride, pDirtyRegion);
if (dxw.dwFlags2 & SHOWFPSOVERLAY) dxw.ShowFPS();
if (dxw.dwFlags4 & SHOWTIMESTRETCH) dxw.ShowTimeStretching();
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;
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",
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);
if(res)
OutTraceE("CoCreateInstance: ERROR res=%x\n", res);
@ -93,6 +83,26 @@ HRESULT STDAPICALLTYPE extCoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter,
else
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;
}

View File

@ -220,6 +220,7 @@ void WINAPI extglDrawBuffer(GLenum mode)
}
(*pglDrawBuffer)(mode);
if (dxw.dwFlags2 & SHOWFPSOVERLAY) dxw.ShowFPS();
if (dxw.dwFlags4 & SHOWTIMESTRETCH) dxw.ShowTimeStretching();
}
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 *SetWindowPlacement_Type)(HWND, WINDOWPLACEMENT *);
typedef HWND (WINAPI *SetCapture_Type)(HWND);
typedef HWND (WINAPI *GetForegroundWindow_Type)(void);
typedef HWND (WINAPI *GetActiveWindow_Type)(void);
// Winmm.dll:
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 SetWindowPlacement_Type pSetWindowPlacement DXWINITIALIZED;
DXWEXTERN SetCapture_Type pSetCapture DXWINITIALIZED;
DXWEXTERN GetForegroundWindow_Type pGetForegroundWindow DXWINITIALIZED;
DXWEXTERN GetActiveWindow_Type pGetActiveWindow DXWINITIALIZED;
// Winmm.dll:
DXWEXTERN mciSendCommand_Type pmciSendCommand DXWINITIALIZED;
@ -539,6 +543,8 @@ extern BOOL WINAPI extUpdateWindow(HWND);
extern BOOL WINAPI extGetWindowPlacement(HWND, WINDOWPLACEMENT *);
extern BOOL WINAPI extSetWindowPlacement(HWND, WINDOWPLACEMENT *);
extern HWND WINAPI extSetCapture(HWND);
extern HWND WINAPI extGetForegroundWindow(void);
extern HWND WINAPI extGetActiveWindow(void);
// Winmm.dll:
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},
{"SetSysColors", (FARPROC)NULL, (FARPROC *)&pSetSysColors, (FARPROC)extSetSysColors},
{"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
};
@ -155,6 +158,24 @@ void HookUser32Init()
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...
@ -1880,4 +1901,22 @@ HWND WINAPI extSetCapture(HWND hwnd)
ret=(*pSetCapture)(hwnd);
OutTraceD("SetCapture: ret=%x\n", 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_SUPPRESSCHILD 1144
#define IDC_FIXREFCOUNTER 1145
#define IDC_SHOWTIMESTRETCH 1146
#define ID_MODIFY 32771
#define ID_DELETE 32772
#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_SHOWFPS, cTarget->m_ShowFPS);
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_Text(pDX, IDC_MAXFPS, cTarget->m_MaxFPS);
DDX_LBIndex(pDX, IDC_LISTTS, cTarget->m_InitTS);

View File

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

View File

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

Binary file not shown.

View File

@ -377,11 +377,12 @@ BEGIN
LTEXT "delay (msec)",IDC_STATIC,52,25,50,9
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 "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
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
GROUPBOX "Time Stretching",IDC_STATIC,7,94,139,70
LISTBOX IDC_LISTTS,104,104,31,55,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
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
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_ShowFPS) t->flags2 |= SHOWFPS;
if(dlg->m_ShowFPSOverlay) t->flags2 |= SHOWFPSOVERLAY;
if(dlg->m_ShowTimeStretch) t->flags4 |= SHOWTIMESTRETCH;
if(dlg->m_TimeStretch) t->flags2 |= TIMESTRETCH;
if(dlg->m_HookOpenGL) t->flags2 |= HOOKOPENGL;
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_ShowFPS = t->flags2 & SHOWFPS ? 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_HookOpenGL = t->flags2 & HOOKOPENGL ? 1 : 0;
dlg->m_ForceHookOpenGL = t->flags3 & FORCEHOOKOPENGL ? 1 : 0;