File: TODO

package info (click to toggle)
bml 0.5.0-2
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 5,416 kB
  • ctags: 11,582
  • sloc: ansic: 21,019; sh: 10,393; cpp: 3,964; makefile: 143; asm: 116
file content (207 lines) | stat: -rw-r--r-- 7,681 bytes parent folder | download
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
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
$Id: TODO 2423 2009-05-07 20:32:20Z ensonic $

= general =
* rename public API in BuzzMachineLoader.h
  BuzzMachine -> BMLMachine
  BuzzMachineProperty -> BMLMachineProperty
  ...
  
* charsets, should we convert all strings to UTF-8 in here already?

= mode tools =
== bmldump_src_skel ==
dump a source skelleton for rewriting a machine

= testing =
modify tests/testmachine.sh
eventually improve scrolling:
  http://www.litotes.demon.co.uk/example_scripts/tableScroll.html
result should go to a given directory (use date-time when not provided)

= unemulated used libs =
      3 wine/module: Win32 LoadLibrary failed to load: COMCTL32.dll
     28 wine/module: Win32 LoadLibrary failed to load: comdlg32.dll
      1 wine/module: Win32 LoadLibrary failed to load: DSOUND.dll
   2588 wine/module: Win32 LoadLibrary failed to load: GDI32.dll
  81803 wine/module: Win32 LoadLibrary failed to load: KERNEL32.dll
    147 wine/module: Win32 LoadLibrary failed to load: MSVCRT.dll
    254 wine/module: Win32 LoadLibrary failed to load: ole32.dll
     30 wine/module: Win32 LoadLibrary failed to load: OLEAUT32.dll
     20 wine/module: Win32 LoadLibrary failed to load: oledlg.dll
     18 wine/module: Win32 LoadLibrary failed to load: OLEPRO32.DLL
      2 wine/module: Win32 LoadLibrary failed to load: SHELL32.dll
      1 wine/module: Win32 LoadLibrary failed to load: SHLWAPI.dll
   4775 wine/module: Win32 LoadLibrary failed to load: USER32.dll
     44 wine/module: Win32 LoadLibrary failed to load: WINMM.dll
     63 wine/module: Win32 LoadLibrary failed to load: WINSPOOL.DRV

* ole stuff could be machines using auxbus
* DSOUND.dll
  Geonik's Dx Input.dll
* SHLWAPI.dll
  BuzzInAMovie.dll
* SHELL32.dll
  Rout VST Plugin Loader.dll
  mimo's miXo.dll

= missing window function entries =

unk_??0_Lockit@std@@QAE@XZ
unk_??1_Lockit@std@@QAE@XZ

unk_joyGetDevCapsA
unk_joyGetNumDevs
unk_joyGetPos

unk_waveInOpen

unk_midiOutGetNumDevs
unk_midiOutOpen

MFC42.DLL (check MFC42.DEF file)
  unk_MFC42.DLL:823 : ??2@YAPAXI@Z
  unk_MFC42.DLL:1176 : ?AfxGetThreadState@@YGPAV_AFX_THREAD_STATE@@XZ
  unk_MFC42.DLL:1243 : ?AfxSetModuleState@@YGPAVAFX_MODULE_STATE@@PAV1@@Z

user32.dll
  unk_CreateDialogParamA : http://msdn.microsoft.com/en-us/library/ms645445(VS.85).aspx
  unk_GetWindowTextA : http://msdn.microsoft.com/en-us/library/ms633520(VS.85).aspx
  unk_LoadIconA : http://msdn.microsoft.com/en-us/library/ms648072.aspx
  unk_SendMessageA : http://msdn.microsoft.com/en-us/library/ms644950.aspx
  unk_SetWindowPos : http://msdn.microsoft.com/en-us/library/ms633545.aspx
  unk_VkKeyScanA : http://msdn.microsoft.com/en-us/library/ms646329.aspx

Microsoft DirectShow 9.0
  unk_DMOEnum : http://msdn.microsoft.com/en-us/library/ms783373(VS.85).aspx

Kernel32.dll
  unk_FlsAlloc : http://msdn.microsoft.com/en-us/library/ms682664(VS.85).aspx
  unk_FlsFree
  unk_FlsSetValue
  unk_ResumeThread : http://msdn.microsoft.com/en-us/library/ms685086(VS.85).aspx

Gdi32.lib
  unk_GetStockObject : http://msdn.microsoft.com/en-us/library/ms533223.aspx

= list missing machine for songs =
for file in *.bmx; do ~/buzztard/bin/bt-cmd 2>/dev/null --command=info --input-file=$file | grep "  bml-"; done | sort | uniq -c | sort -n

= list songs that have no missing machines =
for file in *.bmx; do ~/buzztard/bin/bt-cmd 2>/dev/null --command=info --input-file=$file | grep -q "  bml-" || echo $file; done

= missing features =
* getting access to Patterns/Sequence

= getting better diagnostics on failure
http://www.eptacom.net/pubblicazioni/pub_eng/except.html
http://www.eptacom.net/pubblicazioni/pub_eng/assert.html
http://www.codeproject.com/KB/threads/StackWalker.aspx

== tools ==
use mingw-binutils to dump win32 binaries
/usr/local/i386-mingw32/bin/objdump -t MSVCRT.DLL
/usr/i586-mingw32msvc/bin/objdump ...

= test single plugins =
G_SLICE=always-malloc G_DEBUG=gc-friendly GLIBCPP_FORCE_NEW=1 GLIBCXX_FORCE_NEW=1 valgrind --tool=memcheck --leak-check=full --leak-resolution=high --trace-children=yes --num-callers=20 -v ../src/.libs/bmltest_info ~/buzztard/lib/Gear-real/Effects/Static\ Duafilt\ II.dll 
../src/.libs/bmltest_info ~/buzztard/lib/Gear-real/Effects/Static\ Duafilt\ II.dll

= what windows dll to copy and which not =
== don't (we need to emulate) ==
kernel32.dll ntdll.dll
== seems safe ==
msvcp50.dll  msvcp60.dll MFC42.DLL MSVCRT.DLL


= buzz emulation =
== mdk machine ==
* we need to do ::AddInput() and ::DeleteInput to get input-mixing working
 (even though we would always just give one input).
* before we call WorkXXX() we need to call
  MachineInterfaceEx::Input(float *psamples, int numsamples, float amp)
  
other-sources/buzz-sources/__BUZZ1PLAYER__NOT_FOR_PUBLIC!/CMachine.cpp
* stereo output MIF_DOES_INPUT_MIXING machines will get stereo input
* bm->callbacks->mdkHelper->numChannels
== auxbus machines ==
* currently all auxbus using machines fail

= machine tests =
== hoshi ==
2008.02.22 : Of 532 machine(s) 448 worked and 84 failed to load.
2008.02.23 : Of 533 machine(s) 457 worked and 76 failed to load.
2008.11.19 : Of 533 machine(s) 458 worked and 75 failed to load.
2009.01.29 : Of 533 machine(s) 451 worked, 9 did not processed data and 73 failed to load.

== sterni ==
2008.10.14 : Of 853 machine(s) 759 worked and 94 failed to load.
2008.11.20 : Of 853 machine(s) 758 worked and 95 failed to load.

In gst-buzztard/src/bml/plugin.c I maintain a black list.
== Generators ==
Arguelles Pro4.dll
  registers as a Effect becasue of stereo :/
Geonik's PrimiFun.dll
  if we don't have MFC42.dll
    Called unk_MFC42.DLL:1176
    Called unk_MFC42.DLL:1243
    Called unk_MFC42.DLL:823
      - its library:ordinal
  if we have MFC42.DLL
    Called unk_GetConsoleMode
m4wii.dll
  if we don't have MFC42.dll
    Called unk_MFC42.DLL:1176
    Called unk_MFC42.DLL:1243
  if we have MFC42.DLL
    Called unk__CxxThrowException
    http://www.winehq.org/pipermail/wine-patches/2002-October/003917.html
    http://source.winehq.org/source/dlls/msvcrt/cppexcept.c
    http://source.winehq.org/source/dlls/msvcrt/cppexcept.h
    If we wrap this localy, the unk__ is gone (empty impl), but it segfaults.
    Maybe we need a full impl.
mimo's MidiGen.dll
  win32.c: TLS_COUNT is not enough
Jeskola Bass 2.dll
  buzzmachinecallbackspre12.cpp:105:BuzzMachineCallbacksPre12::MidiOut (dev=1,data=136987296)
Jeskola Tracker.dll
  if we don't have MFC42.dll
    Called unk_MFC42.DLL:823
  if we have MFC42.DLL
    Called unk__CxxThrowException
Ruff SPECCY II.dll
HD Percussive_FM.dll
  crash after ?
  
Aeguelles TB4004
  noisy distortion

== Effects ==
cheapo spread
  hangs after GetInfo()
  or "Called unk_malloc"
  after copying msvcr70.dll to libdir "unk_SetCriticalSectionSpinCount" (this is now implemented)
Arguelles TruePan
Jeskola XDelay (causes distortions)
Jeskola Raverb (causes distortions)
  BuzzMachineCallbacks::GetEnvSize (wave=-96185375,env=0)
  buzzmachinecallbackspre12.cpp:112:BuzzMachineCallbacksPre12::GetOscillatorTable (waveform=-128840458)
Jeskola Stereo Reverb (sometimes silences the whole song, NAN?)
Sonic Verb (seems to work now)
  buzzmachinecallbacks.cpp:199:BuzzMachineCallbacks::GetEnvPoint (wave=-1,env=-1,i=-1076278224,&x,&y,&flags)
  buzzmachinecallbacks.cpp:276:BuzzMachineCallbacks::SetSequenceData (row=-1217504548,ppat=B7A5B3C4)
Dolby Prologic Echo
  Param Direction : val [1 ... d=4096/n=0 ... 255], the def-val for an enum, can't be outside the range
  
Ynzn's Remote Compressor.dll
Ynzn's Remote Gate.dll
  both crash (problem with name?)
PSI Corp's LFO Filter.dll
Repeater.dll
RnZnAnFnCnR VST Effect Adapter.dll
Rnznanf Vst Effect Adapter.dll
Rout VST Plugin Loader.dll
Shaman Chorus.dll
WhiteNoise AuxReturn.dll
  crash