Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the board
Thread view  Mix view  Order
rr

Homepage E-mail

Berlin, Germany,
25.02.2009, 23:57
 

QEMU trunk builds for Win32 (Announce)

Win32 builds of QEMU's SVN trunk are rare on the net. So I'll release my own builds maybe every second week.

Currently this is nearly a straight build of QEMU trunk for the "i386" architecture only, but I'll plan to make some minor modifications to make it behave a little more nice. I also plan to release source code to my hacks and complete MinGW build instructions, of course.

Some notes:
1) This binary works on Windows 2000. :-)
2) FMOD 3.xx audio driver support is available, (FMOD.DLL included)
3) Before you ask, USB support via libusb-win32 is missing, because I didn't need it so far.
4) It also has the BIOS and VGA BIOS path hardcoded as "C:/Programme/qemu-trunk". If you plan to use it at a different place, use "-L <path>" to override this.
5) If you wish to use the kqemu accelerator, you need kqemu-1.4.0pre1.tar.gz from the QEMU home page.

Home page: http://bellard.org/qemu/
Download (Win32): http://www.bttr-software.de/qemu/

---
Forum admin

Japheth

Homepage

Germany (South),
26.02.2009, 13:34

@ rr

QEMU trunk builds for Win32

Thanks!

Do you have some ideas about what has changed since the v0.91 release?

I might be wrong, but from the mails which I got about Qemu development it seems this program has been captured by KVM guys. As a result, other host OSes are becoming virtually irrelevant.

---
MS-DOS forever!

rr

Homepage E-mail

Berlin, Germany,
26.02.2009, 21:52

@ Japheth

QEMU trunk builds for Win32

> Do you have some ideas about what has changed since the v0.91 release?

At least support for more sound hardware (cs4231a, gus, ac97) and more NICs (e1000). Also Bluetooth. ;-) Not to forget the Tiny Code Generator (TCG) to allow GCC 4.x compilation.

> I might be wrong, but from the mails which I got about Qemu development it
> seems this program has been captured by KVM guys.

No, you're right unfortunately. But if nobody else cares about DOS-on-QEMU-on-Win32 (or -DOS/HX), the gap will become larger and larger. Gladly we still have "malc". :-)

---
Forum admin

rr

Homepage E-mail

Berlin, Germany,
26.02.2009, 22:39

@ rr

QEMU trunk builds for Win32

I've uploaded a new build of r6643 with reversed window captions for SDL and VNC, so it displays "<name of guest> - QEMU <version>" now, e.g., "FreeDOS 1.0 - QEMU 0.9.1". This makes it easier to distinguish between concurrent QEMU sessions on the Windows taskbar.

---
Forum admin

RayeR

Homepage

CZ,
27.02.2009, 23:29

@ rr

QEMU trunk builds for Win32

> I've uploaded a new build of r6643 with reversed window captions for SDL

Just a note. When I started your qemu it failed to find BIOS.BIN file because of hardcoded path C:\Programme\qemu-trunkblabla probably where you compiled it. I had to edit exe file and replace this path by "./" to make it relative, then it works.

---
DOS gives me freedom to unlimited HW access.

rr

Homepage E-mail

Berlin, Germany,
28.02.2009, 00:13

@ RayeR

QEMU trunk builds for Win32

> > I've uploaded a new build of r6643 with reversed window captions for SDL
>
> Just a note. When I started your qemu it failed to find BIOS.BIN file
> because of hardcoded path C:\Programme\qemu-trunkblabla probably where you
> compiled it. I had to edit exe file and replace this path by "./" to make
> it relative, then it works.

Quoting myself: 4) It also has the BIOS and VGA BIOS path hardcoded as "C:/Programme/qemu-trunk". If you plan to use it at a different place, use "-L <path>" to override this.

This will be fixed very soon. Just have to port my patch from 0.9.1 to SVN version.

---
Forum admin

RayeR

Homepage

CZ,
28.02.2009, 02:13
(edited by RayeR, 28.02.2009, 02:36)

@ rr

QEMU trunk builds for Win32

> Quoting myself: 4) It also has the BIOS and VGA BIOS path hardcoded as
> "C:/Programme/qemu-trunk". If you plan to use it at a different place, use
> "-L <path>" to override this.


Uh sorry :-P

---
DOS gives me freedom to unlimited HW access.

rr

Homepage E-mail

Berlin, Germany,
28.02.2009, 20:58

@ rr

QEMU trunk builds for Win32

> 4) It also has the BIOS and VGA BIOS path hardcoded as
> "C:/Programme/qemu-trunk". If you plan to use it at a different place, use
> "-L <path>" to override this.

I've fixed this in my r6656 binary available now.

---
Forum admin

rr

Homepage E-mail

Berlin, Germany,
28.02.2009, 23:22

@ rr

QEMU trunk builds for Win32

> > 4) It also has the BIOS and VGA BIOS path hardcoded as
> > "C:/Programme/qemu-trunk". If you plan to use it at a different place,
> use
> > "-L <path>" to override this.
>
> I've fixed this in my r6656 binary available now.

r6657 is up. I also applied a tiny patch by Alex Ivanov to avoid a SIGSEGV during async block I/O.

---
Forum admin

DOS386

01.03.2009, 13:48

@ rr

QEMU trunk builds for DOS

> release my own builds maybe every second week.

:-)

> This binary works on Windows 2000.

Possibly irrelevant, but I tested in DOS and seems to work :-)

> > had to edit exe file and replace this path by "./" to make it relative, then it works
> Quoting myself: 4) It also has the BIOS and VGA BIOS path hardcoded as
> "C:/Programme/qemu-trunk". If you plan to use it at a different place,
> use "-L <path>" to override this.

> I've fixed this in my r6656 binary available now.

The most hard-to-fix bug is indeed fixed. :-)

OTOH, the "trivial" one, the "Fully-automatic-keystroke-doubler-BUG" is still in there :crying:

> plan to make some minor modifications to make it behave a little more nice.

Maybe fix this one also ?

> plan to release source code to my hacks and complete MinGW build instructions

GPL requirement. :-P

---
This is a LOGITECH mouse driver, but some software expect here
the following string:*** This is Copyright 1983 Microsoft ***

ecm

Homepage E-mail

Düsseldorf, Germany,
01.03.2009, 16:22

@ DOS386

QEMU trunk builds for DOS - keyboard bug

> OTOH, the "trivial" one, the "Fully-automatic-keystroke-doubler-BUG" is
> still in there :crying:

I also experienced this bug running on Windows XP, with KQEMU. It seems to double keystrokes if you type too fast.

---
l

rr

Homepage E-mail

Berlin, Germany,
01.03.2009, 22:00

@ DOS386

QEMU trunk builds for DOS

> > This binary works on Windows 2000.
>
> Possibly irrelevant, but I tested in DOS and seems to work :-)

Glad to hear that, because I didn't test.

> OTOH, the "trivial" one, the "Fully-automatic-keystroke-doubler-BUG" is
> still in there :crying:

Malc is probably still waiting for Japheth's test case. :-P

> > plan to make some minor modifications to make it behave a little more
> nice.
>
> Maybe fix this one also ?

Yes, if someone else provides proper source code, because it's beyond my knowledge of C.

---
Forum admin

rr

Homepage E-mail

Berlin, Germany,
03.03.2009, 23:07

@ rr

QEMU trunk builds for Win32

> > I've fixed this in my r6656 binary available now.
>
> r6657 is up. I also applied a tiny patch by Alex Ivanov to avoid a SIGSEGV
> during async block I/O.

I've updated my r6657 build by adding EXE version information and an icon already "resized" by Khusraw in October 2008. This also includes a small SDL window icon when QEMU is running. The latter looks a bit distorted in the taskbar. :-|

---
Forum admin

rr

Homepage E-mail

Berlin, Germany,
09.03.2009, 22:41

@ rr

QEMU trunk builds for Win32

> Home page: http://bellard.org/qemu/

Now http://www.nongnu.org/qemu/ according to Anthony Liguori.

> Download (Win32): http://www.bttr-software.de/qemu/

I've uploaded separate downloads for fmod.dll and SDL.dll to make future downloads smaller. FMOD is closed source anyway and SDL didn't require any changes so far.

---
Forum admin

Japheth

Homepage

Germany (South),
15.03.2009, 11:52

@ rr

QEMU trunk builds for DOS - keyboard bug fix

> > OTOH, the "trivial" one, the "Fully-automatic-keystroke-doubler-BUG" is
> > still in there :crying:
>
> Malc is probably still waiting for Japheth's test case. :-P

Good, patience is a virtue.

However, I won't supply such a test case. IMO the buggy behavior is obvious and anyone who is interested in the matter can easily reproduce it.

But I played with the Qemu v0.91 source for myself and "fixed" the bug. Here is the modified source code.

Before you ask: there's no binary available. You'll have to create it yourself with MinGW. Happy compiling!

---
MS-DOS forever!

rr

Homepage E-mail

Berlin, Germany,
15.03.2009, 22:14

@ Japheth

QEMU trunk builds for DOS - keyboard bug fix

> But I played with the Qemu v0.91 source for myself and "fixed" the bug.
>
> Here is the modified
> source code.

Thanks! :-) I'll have a look at it.

> Before you ask: there's no binary available. You'll have to create it
> yourself with MinGW. Happy compiling!

If your "fix" works nice, I'll include this in my future builds, if you agree.

---
Forum admin

Japheth

Homepage

Germany (South),
16.03.2009, 07:04

@ rr

QEMU trunk builds for DOS - keyboard bug fix

> If your "fix" works nice, I'll include this in my future builds, if you
> agree.

It's Public Domain.

However, there are still some issues with the keyboard:

1. Caps-Lock and Num-Lock are handled a bit strangely. This is an SDL issue, it's documented and probably has little impact for DOS.

2. There's no auto-repeat in Qemu for the Ctrl, Alt and Shift keys. This might confuse a few DOS apps.

---
MS-DOS forever!

Rugxulo

Homepage

Usono,
17.03.2009, 00:42

@ rr

QEMU trunk builds for DOS - keyboard bug fix

> > But I played with the Qemu v0.91 source for myself and "fixed" the bug.
> >
> > Here is the modified
> > source code.
>
> Thanks! :-) I'll have a look at it.

Rod. P. on news://comp.os.msdos.djgpp mentioned a small QEMU patch of his too, which may or may not be interesting for you:

> QEMU 0.8.2 works on Win98SE, but QEMU 0.9.1 needs some help.
> I posted a patch here. IIRC, it didn't fix cdrom images.
> But, (since I didn't/don't have email to send to them) I don't
> think ever got to the QEMU team:
>
> http://groups.google.com/group/alt.os.development/msg/b4dc0fc1a7d501fc?hl=en

diff -Naur qemu-0.9.1/block-raw-win32.c qemu-0.9.1.win98se/block-raw-win32.c
--- qemu-0.9.1/block-raw-win32.c 2008-01-06 14:38:42.000000000 +0000
+++ qemu-0.9.1.win98se/block-raw-win32.c 2008-02-13 20:37:46.000000000 +0000
@@ -34,6 +34,10 @@
 #define FTYPE_CD     1
 #define FTYPE_HARDDISK 2

+#if 1
+#define WIN98SE
+#endif
+
 typedef struct BDRVRawState {
     HANDLE hfile;
     int type;
@@ -103,7 +107,11 @@
 #ifdef QEMU_IMG
     overlapped = FILE_ATTRIBUTE_NORMAL;
 #else
+#ifndef WIN98SE
     overlapped = FILE_FLAG_OVERLAPPED;
+#else
+    overlapped = FILE_ATTRIBUTE_NORMAL;
+#endif
 #endif
     if (flags & BDRV_O_DIRECT)
         overlapped |= FILE_FLAG_NO_BUFFERING | FILE_FLAG_WRITE_THROUGH;
@@ -131,7 +139,12 @@
     memset(&ov, 0, sizeof(ov));
     ov.Offset = offset;
     ov.OffsetHigh = offset >> 32;
+#ifndef WIN98SE
     ret = ReadFile(s->hfile, buf, count, &ret_count, &ov);
+#else
+    SetFilePointer(s->hfile,ov.Offset,&ov.OffsetHigh,FILE_BEGIN);
+    ret = ReadFile(s->hfile, buf, count, &ret_count, NULL);
+#endif
     if (!ret) {
         ret = GetOverlappedResult(s->hfile, &ov, &ret_count, TRUE);
         if (!ret)
@@ -153,7 +166,12 @@
     memset(&ov, 0, sizeof(ov));
     ov.Offset = offset;
     ov.OffsetHigh = offset >> 32;
+#ifndef WIN98SE
     ret = WriteFile(s->hfile, buf, count, &ret_count, &ov);
+#else
+    SetFilePointer(s->hfile,ov.Offset,&ov.OffsetHigh,FILE_BEGIN);
+    ret = WriteFile(s->hfile, buf, count, &ret_count, NULL);
+#endif
     if (!ret) {
         ret = GetOverlappedResult(s->hfile, &ov, &ret_count, TRUE);
         if (!ret)

Japheth

Homepage

Germany (South),
17.03.2009, 08:31

@ rr

QEMU trunk builds for DOS - keyboard bug fix

> > But I played with the Qemu v0.91 source for myself and "fixed" the bug.
> >
> > Here is the modified
> > source code.
>
> Thanks! :-) I'll have a look at it.

It's probably better to ignore it because

- it has problems with CAPSLOCK and NUMLOCK
- I'm going to change it so the timer code is no longer Win32 specific

---
MS-DOS forever!

rr

Homepage E-mail

Berlin, Germany,
17.03.2009, 13:41

@ Japheth

QEMU trunk builds for DOS - keyboard bug fix

> > Thanks! :-) I'll have a look at it.
>
> It's probably better to ignore it because
>
> - it has problems with CAPSLOCK and NUMLOCK
> - I'm going to change it so the timer code is no longer Win32 specific

Then I'm awaiting your new release. :-)

---
Forum admin

Japheth

Homepage

Germany (South),
17.03.2009, 17:11

@ rr

QEMU trunk builds for DOS - keyboard bug fix

> > > Thanks! :-) I'll have a look at it.
> >
> > It's probably better to ignore it because
> >
> > - it has problems with CAPSLOCK and NUMLOCK
> > - I'm going to change it so the timer code is no longer Win32 specific
>
> Then I'm awaiting your new release. :-)

Ok, it's done. Improvements:

- works - at least: "should" work - with CAPS/NUM lock keys.
- no Win32 specific code anymore
- CAPS/NUM lock status is reset when VM starts. And state of both keys + LEDs are saved/restored when the window becomes inactive/active. This should be same behavior as in VPC.

http://www.japheth.de/Download/qemukbd.zip (source only!)

---
MS-DOS forever!

Back to the board
Thread view  Mix view  Order
22632 Postings in 2109 Threads, 402 registered users, 421 users online (0 registered, 421 guests)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum