There's a bug in MSVCRT_fgetc in 0.9.21 (likely introduced in 0.9.19) in
that it sometimes sign extends the byte read from the file. The
following program illustrates the problem:
#include <stdio.h>
int
main()
{
FILE *f = fopen("tmp.bin", "w+");
fputc(0xe0, f);
fputc(0xe0, f);
rewind(f);
printf("0x%08x\n", fgetc(f));
printf("0x%08x\n", fgetc(f));
fclose(f);
return 0;
}
The output is:
…
[View More]0x000000e0
0xffffffe0 (should be 0x000000e0 too)
The bug is likely this line:
http://source.winehq.org/source/dlls/msvcrt/file.c#L2134
That line is now
i = file->_ptr++;
but should be
i = *(unsigned char*)(file->_ptr++);
I don't have a build environment for Wine, and it felt like overkill to
set one up for this little bug, so I've not been able to verify my
hypothesis. I hope that's acceptable.
/Tobias
[View Less]
On 9/23/06, Mirek <thunder.m(a)email.cz> wrote:
> >
> > Also Wine reports 64MB of video memory not 16MB
>
> I think there shuld be option in winecfg to set this, because it is not easy to
> find how anyone can do that.
http://wiki.winehq.org/UsefulRegistryKeys
Tom
> From: Kai Blin <kai.blin(a)gmail.com>
>
> On Saturday 23 September 2006 10:32, Scott Ritchie wrote:
> > Frankly, all we really need is for Alexandre to write a 10-second
> > reply to wine-devel for each patch he rejects.
>
> On WineConf, we decided against this. That would still slow
> down the overall patch submission speed. Consider you have a
> patch that's just fine, but before you sent that, I sent in
> ten patches with C++ style comments. …
[View More]Alexandre would now have
> to reply to ten patches with "No C++ style comments" before
> processing your patch. Everybody reading wine-patches
> could point out what was wrong with my patches.
You must be kidding. Even in your somewhat convoluted example, it would be
fine to receive just a single notification "No C++ style comments" and I
really wouldn't care if the notification came from Alexandre or from someone
else on wine-patches. The reality is that a lot of patches (I haven't kept a
precise count, but I estimate about a third of my own patches) are dropped
silently, without any feedback at all.
I have absolutely no problem with a strict patch acceptance policy, designed
to keep the Wine quality high. Alexandre is amazingly smart and when he
tells me why a certain patch was rejected I'll usually agree with him and
even if I don't agree, I have enough confidence in him to accept his
judgement. But having your patches dropped silently is pretty annoying. The
usual response from the core Wine developers is "well, just resubmit". I
fail to see how this helps Alexandres productivity (or my own for that
matter). If patches weren't dropped silently the sequence of events would
be:
1) Submit patch
2) Alexandre looks at patch
3) Alexandre writes 10-second rejection reply
With the resubmit:
1) Submit patch
2) Alexandre looks at patch
3) Wait a week
4) Resubmit patch
5) Alexandre looks at patch again
6) Alexandre writes 10-second rejection reply
Seems to me this incurs extra work for Alexandre (number 5).
The patch processes isn't very transparant. For example, I submitted a patch
on 20 June 2006 to dlls/kernel/heap.c (www.winehq.org seems to be
unreachable for me at the moment so I can't give a URL to the message) to
fix a problem with the heap on Win64. This patch was silently dropped. On
July 21 a change very similar to what I submitted was committed but not
attributed to me. Now, either the commit was not based on my patch (in which
case someone else spent another 2-3 days (it was one of those problems where
a chain of out-of-buffer memory writes take place and you have to work your
way up the chain to find the root cause) on tracking down an already known
problem for which a fix was already available) or it was based on my patch
(in which case my patch shouldn't have been dropped and I should have been
given credit).
Like I said before, I have a lot of respect for Alexandres technical
abilities. But when I read comments in the Wineconf report about git:
"Developers might not like it, but Alexandre does so it's a success" (did I
mention I dislike git also???) and the inability of the Wine community to
set up a patch management system (so patches won't disappear into the big
void) because Alexandre refuses to use it if it won't work in Emacs I'm
starting to wonder if people realise that the developers don't work for
Alexandre. He's a great Benovelent Dictator on technical issues, but in my
opinion only a Dictator on patch process management.
Ge van Geldorp.
[View Less]
---------- Forwarded message ----------
From: Steven Edwards <winehacker(a)gmail.com>
Date: Sep 25, 2006 1:27 AM
Subject: Re: Governance revisited
To: Troy Rollo <wine(a)troy.rollo.name>
On 9/25/06, Troy Rollo <wine(a)troy.rollo.name> wrote:
> The present system turns people off even before you've had time to learn
> whether they are capable or not.
Which is why we want to have the ambassadors project to help new people in
to wine. The thinking goes that if we have …
[View More]some people to help hold the
hands of new developers and the developers that are defacto maintainers of a
certain section of code will respond to patches as they seem them, this will
free julliard from having to answer every single patch with a reply. Now in
the case of Ge where he was patching core functions of
ntdll,kernel32,wineserver,etc I guess it would still fall to julliard to
reply personally but in the case of other modules the experts in that area
should take a step up and monitor wine-patches and say what patch
X.Y.Zsucks and julliard most likely will not merge it.
--
Steven Edwards
"There is one thing stronger than all the armies in the world, and that is
an idea whose time has come." - Victor Hugo
--
Steven Edwards
"There is one thing stronger than all the armies in the world, and that is
an idea whose time has come." - Victor Hugo
[View Less]
My ultimate goal was to solve the dsound underruns which were so
horrible that I had to disable sound in World of Warcraft. While I
managed to get the sound working flawlessly (really... I never heard
such clear sound under wine) in WoW, it required WoW-specific hacks so
my patch will never make it (in its current form) into the official git
tree, but maybe someone can use some of my ideas to improve dsound/winealsa.
The basic idea is to let alsa mix the sound instead of the infamous
…
[View More]dsound mixer. The advantage is that if the hardware supports mixing,
there is very little overhead, if not, there's still dmix which can do
that, but dsound doesn't need to care how it's done, it's entirely up to
alsa.
Now to the actual implementation, it's pretty straight-forward: I
'forced' CreateSoundBuffer to create a hardware buffer (right now it
creates a hw buffer only for the primary buffer) and changed the
winealsa driver to support that. Because winealsa driver opens only one
'connection' (snd_pcm_t) to the soundcar (allowing only one buffer per
device), I simply opened a new 'connection' for each buffer and
configured the hardware for 44100Hz/U16LE/stereo (that's what WoW
expects). Up to this point it was easy.
One of the big problems was that WoW requests a 16kb buffer, but alsa is
unable to allocate a buffer with this exact size, and it caused problems
if I passed the alsa buffer to WoW (so WoW could write directly to it).
I had to allocate a separate buffer, keep track of the play/write
positions in both buffers and copy the data from one to the other.
I'm fairly sure this all could be done in a WoW-independent way, eg.
configure the hardware as the application requests it (by passing
LPCDSBUFFERDESC to the low-level driver etc) and keeping track of the
read/write positions could also be done in a better way.
There are a free questions that should be answered before someone can go
on and make a 'proper' implementation. I simply bypassed the primary
buffer, it doesn't exist since the data from the secondary buffers are
written directly to the soundcard. If it should be possible to read the
data from the primary buffer then we should forget this all and look for
another solution. I believe that it's not possible (it's not possible to
write to the primary buffer and the API doesn't differentiate between
reads and writes), but someone should test that under windows.
(this is only one question but I'm sure you'll come up with more ;) )
Here is the complete patch, I also changed the IDirectSound interface
and a lot unrelated code, so the patch is a bit big :-/ There also are a
few memory leaks, I didn't bother freeing the memory etc.
http://dbservice.com/ftpdir/tom/dsound-alsa.patch
tom
[View Less]
Lots of progress has been made in fixing installer bugs lately,
but there are probably many such bugs hiding in plain view still.
It would be very helpful if people could look for bugs which:
a) appear to be MSI or setupapi related, and
b) occur in freely downloadable executables (e.g. trial versions)
c) aren't already in bugzilla
(see
http://bugs.winehq.org/buglist.cgi?product=Wine&component=wine-msi&keywords…
for list)
and file reports as appropriate at http://bugs.winehq.org.
Thanks!
- Dan
I just uploaded a simple wine ASIO driver to
http://bugs.winehq.org/show_bug.cgi?id=2161 for testing and feedback.
Please look at it and give me feedback. Playback works. Recording is
untested due to lack of software. Full duplex doesn't work for me but
I'm not sure if it's a software issue or a problem with my hardware and
OS setup.
The software is a long way from being ready for submission so any
feedback or help would be appreciated.
On 23/09/06, Mirek <thunder.m(a)email.cz> wrote:
> > I also changed what benchmarks I had running at this years WineConf
> > 3DMark2000, 3DMark2001SE and 3DMark2003... I have 3DMark2006 running
> > and its beautiful, well beauty is in the eye of the beholder
> > All of the test run in all three of the benchmarks to completion and
> > there is only two test out of all test that have minor problems, and
> > Henri has one of the test fixed in his tree.
…
[View More]>
> Can you post how i can get sources from his tree?
The 3th and 4th 3DMark03 tests should pretty much work with current
git, actually. The 4th test has some minor issues, afaik because of
the wrong sampler types being bound. If there are other issues, those
are separate bugs, and should probably be reported on bugzilla.
[View Less]
Hi Folks,
The server crashed early yesterday evening, and again
sometime over the night.
It's a new server - and in fact, I think it's the
new 'new' server - seems like it always takes a while
to get a server stabilized).
Jeremy Newman is coming back from England today, and I prefer to leave
these sort of repairs to him, otherwise he grouses at me
(rightly, I might add :-/).
So it's back up now, but I'm not sure for how long that
will be true. Sorry for the hassle; if it gets worse this
…
[View More]afternoon before Jer gets back, I may break down and
start dissecting it.
Cheers,
Jeremy
[View Less]