forked from rygorous/kkapture
-
Notifications
You must be signed in to change notification settings - Fork 2
/
changelog.txt
146 lines (130 loc) · 9.4 KB
/
changelog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
version 1.03-wip:
* added direct x264 capture (requires x264.exe to be in the PATH, and a user that knows how its command line arguments work)
* initial attempt at a 64-bit version, doesn't support DirectShow capture yet;
note that you need to know if the demo you're capturing is 32-bit or 64-bit, because:
- 32-bit kkapture can't run 64-bit demos at all
- 64-bit kkapture runs 32-bit demos as if they are started without kkapture
* d3d11: D3D11CreateDeviceAndSwapChain support
* sound: force BASS to use DirectSound instead of WASAPI (this should fix audio in all demos which use a recent version of BASS)
* various other bugfixes
version 1.02:
* added "fake additional screen resolution" option (thanks KeyJ)
* switched from (long defunct) detours 1.5 to free mhook-2.2 (http://codefromthe70s.org/mhook22.aspx).
* redid startup interception yet again: now using simple DLL injection via CreateRemoteThread. should work fine with .NET executables and be less flaky in general.
* sound: lock entire directsound buffer when dwBytes=0 (fix for "mother mother, my ears bleed")
* d3d11 support
version 1.01:
* "skip frames on frequent timer checks" can now be turned off; threshold set to a substantially higher value.
* "virtual framebuffer" mode for old, badly written ddraw apps (e.g. "fall equals winter"). won't work with hw accelerated blits and clears! use as a last resort.
version 1.00:
* major bump in version number! :)
* timing: fixed a regression from version 0.07 (should work a lot better on vista and windows 7 now)
* sound/timing: automatically advance frame after some time when app asks for the current time a certain number of times (helps with several quite intros)
* sound: force fmodex to use dsound on vista/windows 7 (i won't write a windows audio session implementation if i don't have to)
* sound: some tweaks in waveOut support. now works just fine with the MS GS synthesizer.
* sound: make sure to return 0 as estimated latency for demos that use BASS. fixes asm 2009 invitation by andromeda.
* video: can now capture programs that use GDI for output as well. not particularly well-tested. original code by iq.
* "deep capture". can now kkapture demos that have a seperate launcher directly. tested on borg, etch-a-sketch. logfiles are now named
differently since there may be several! behavior if more than one program in the chain starts rendering is undefined (i.e. it won't work).
version 0.09:
* new startup instrumentation: yet another new approach to entry point determination (to work with address space layout randomization)
* "attempt clean exit" key (right ctrl; has good chances of producing a usable .AVI, unlike ctrl-break)
* audio: automatically reduce WAVEFORMATEXTENSIBLE to WAVEFORMATEX if possible (for compatibility)
* audio: can now mix both stereo->mono and mono->stereo if required
* audio: WAVE_FORMAT_IEEE_FLOAT support (should help a lot with 4k intros using 4klang)
* waveOutGetTime fix (apparently, TIME_MS is *broken* and returns offsets in bytes too. ah well. fixes kindercrasher/rgba and probably some others too)
version 0.08:
* "frame rate" edit control now supports arbitrary positive decimal ("12.3456") and fractional ("60000/1001") framerates
* "BASS/FMOD interception" added. BASS interception removes the need for the fairlight hack, FMOD interception fixes FMODs
broken timing code to make demos run at a higher framerate than 43fps.
* separate encoder thread option (makes everything much faster on multicore systems, but the code isn't very well tested)
* ddraw capture fix: now also grad frames on primary buffer unlock (fixes voidspace/woorlic, fall equals winter/replay)
* post a dummy WM_NULL message to foreground window every frame (fix for some old hjb intros)
* new startup interception fix: treat calls in startup code differently ("dead cells" now works)
* d3d10 support (only tried it on texas though, so it's not particularly well-tested).
version 0.07:
* "frame timed out" now mentions *which* frame was skipped (if you want to check whether the video is fine or if it causes problems)
* if kkapture is being debugged, main.cpp now gives you time to attach the debugger to the target demo aswell.
(this is the deluxe version of a hack i've been using for ages - thought it might be useful for others trying to debug, too :)
* fixed some bugs in the cleanup code that may have caused crashes after recording was complete.
* waveOutGetPosition now even accepts wrong size specifications for MMTIME struct as long as they're big enough (helps candystall)
* ddraw code temp surface handling should now be more stable (helps with moral hard candy)
* seeding of all timers now synchronized. helps with demos that mix timing values returned from independent sources (not a good idea!!!).
in any case, fixes problems with ante dominum.
* "power down after completion" switch
version 0.06b:
* now default to vfw video encoder on new installations.
* "fairlight hack" switch now explicit due to request - turn it on for track one and possibly other flt demos, otherwise leave it off.
(was implicitly on in all versions from 0.05 upwards)
* more new startup instrumentation fixes (yaay!)
version 0.06:
* magic exit key (ctrl+break) improved: now uses lowlevel hook, should always work now.
* d3d8 capture fixes: r08028, nature v2.0 work now.
* vfw .avi writer can now also handle format changes while the demo is running
* should now work with demos that use FMODEx: at least first offence works fine now.
* now automatically advances time if frames take too long.
fixes a LOT of demos that do busy waits somewhere, including:
- frameskool by equinox
- mupe by playpsyco
- abstinens by keyboards
- noumenon by andromeda
and probably a lot of other demos too.
how to use: check "Enable automatic frameskip on timeout".
the two timeout values define how much time the application has to render
the first/subsequent frames; if it takes longer, kkapture will skip a
frame and write a log message. lower timeouts mean faster kkapturing for
apps that explicitly perform waits every frame, but the lower you set those
values, the higher the risk that kkapture will drop a frame just because
rendering took a tad longer than expected. so be careful!
version 0.05b:
* IDirectSoundBuffer::SetFrequency handling fixed (affects onwards, 2^5 by traction)
* debug force-windowed code for d3d9 removed :)
version 0.05:
* small bugfix in dshow video encoder (thanks malc)
* "new startup instrumentation" button now actually does something :)
* startup instrumentation code now less picky about executable files
* startup instrumentation now works when first instr. is call/jmp (helps with several demos)
* added dc/rendering context tracking for opengl (fixes problem with animal attraction)
* synchronization policy changed in dsound code (fixes problems with mega hilter expansion pack, maybe some threading issues too?)
* old fallback gdi capture code removed (not required anymore and it never worked properly anyway)
version 0.04:
* switched to visual c++ 2005 express edition
* "new startup interception" that works on 64bit host machines (always on on 64bit, default off on 32bit)
* kkapturing on 64bit host machines works now
* kkapture is now under the artistic license v2.0beta5
* small waveout code fix by manx included (thanks)
* automatic segmenting code for avi-vfw encoder by bartman included (thanks to you too :)
* automatically disables VSync during recording for most supported APIs (improves capturing speed somewhat)
* basic SetTimer support (i'm not particularly happy with it)
* improved resolution determination for opengl demos
* magic exit key: press ctrl+break to safely abort a capture.
* writes (approximate) capturing frame rate on exit
* small fix in doneTiming() to make sure no waits are currently active when timing is deinitialized
* improvements in d3d8/9 reference handling code
* support for demos that initialize/deinitialize the graphics API several times
version 0.04alpha:
* some performance improvements for directdraw capturing
* several bugfixes
* new directshow-based avi writer, currently the only one available (0.04 final will have both the old and new avi writer)
* automatic audio resampling (required for dshow, currently converts everything to 16bit 44.1kHz stereo)
version 0.03:
* waveout capturing finally works (now that was one stupid bug)
* directdraw/old d3d support (both software and hardware)
* kkapture now sets the executables' directory as current working dir before starting
* "skip silence" option added (required for e.g. fr-08); currently only works for
directsound
* "make sleeps last one frame" option added (required for some old BASS and FMOD
versions to work correctly)
* the .bmp/.wav writer now compensates for frames at the beginning without sound
* capture audio/capture video flags
version 0.02:
* direct xvid/divx encoding works now.
* windowed capture support for both opengl and d3d - beware, some demos do not use correct window sizes in windowed mode, so you get e.g. a 630x472 capture for a 640x480 demo - most video codecs don't like sizes that aren't multiples of 4.
* opengl capturing bugfix - on swapbuffers(), frames were accidentially advanced twice.
* some QueryPerformanceCounter-related fixes.
* vastly improved Direct3D9 capture speed.
* Direct3D8 support (co-written by kb/farbrausch).
* .bmp/.wav output added (uncompressed highres captures easily hit the avifile 4gb limit).
* lots of tiny fixes here and there.
version 0.01:
* initial release; still missing d3d8, ddraw support, waveout completely untested.