]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
imported winuaesrc1620b6.zip
authorToni Wilen <twilen@winuae.net>
Sun, 9 Aug 2009 11:37:01 +0000 (14:37 +0300)
committerToni Wilen <twilen@winuae.net>
Mon, 22 Feb 2010 19:47:43 +0000 (21:47 +0200)
audio.c
disk.c
gencpu.c
od-win32/posixemu.c
od-win32/sounddep/sound.c
od-win32/sounddep/sound.h
od-win32/win32.c
od-win32/win32.h
od-win32/win32gui.c
od-win32/winuaechangelog.txt

diff --git a/audio.c b/audio.c
index 10f0107b448b3b3ca02f74154b9a7d2c8399ac5c..cf6e0144dcfdcf7c5ab1b1cfaa53dc2a720c0ee3 100644 (file)
--- a/audio.c
+++ b/audio.c
@@ -94,7 +94,9 @@ struct audio_channel_data {
 };
 
 static int samplecnt;
+#if SOUNDSTUFF > 0
 static int extrasamples, outputsample, doublesample;
+#endif
 
 int sampleripper_enabled;
 struct ripped_sample
@@ -1545,7 +1547,7 @@ void update_audio (void)
            if (rounded == best_evtime) {
                /* Before the following addition, next_sample_evtime is in range [-0.5, 0.5) */
                next_sample_evtime += scaled_sample_evtime;
-#if 0
+#if SOUNDSTUFF > 0
                doublesample = 0;
                if (--samplecounter <= 0) {
                    samplecounter = currprefs.sound_freq / 1000;
@@ -1561,7 +1563,7 @@ void update_audio (void)
                }
 #endif
                (*sample_handler) ();
-#if 0
+#if SOUNDSTUFF > 0
                if (outputsample == 0)
                    outputsample = -1;
                else if (outputsample < 0)
@@ -1881,7 +1883,7 @@ uae_u8 *save_audio (int i, int *len, uae_u8 *dstptr)
 
 void audio_vsync (void)
 {
-#if 0
+#if SOUNDSTUFF > 0
     int i, max, min;
     static int lastdir;
 
diff --git a/disk.c b/disk.c
index 8033e96f03f437f5535df728c3233f03504fb1e9..949e0d5192dbe91686bf7ee5bb083f1660e74e44 100644 (file)
--- a/disk.c
+++ b/disk.c
@@ -3456,7 +3456,7 @@ static uae_u32 getadfcrc (drive *drv)
     return crc32;
 }
 
-uae_u8 *save_disk(int num, int *len, uae_u8 *dstptr)
+uae_u8 *save_disk (int num, int *len, uae_u8 *dstptr)
 {
     uae_u8 *dstbak,*dst;
     drive *drv;
@@ -3465,7 +3465,7 @@ uae_u8 *save_disk(int num, int *len, uae_u8 *dstptr)
     if (dstptr)
        dstbak = dst = dstptr;
     else
-       dstbak = dst = (uae_u8*)malloc (2+1+1+1+1+4+4+256);
+       dstbak = dst = malloc (2+1+1+1+1+4+4+256);
     save_u32 (drv->drive_id);      /* drive type ID */
     save_u8 ((drv->motoroff ? 0:1) | ((disabled & (1 << num)) ? 2 : 0) | (drv->idbit ? 4 : 0) | (drv->dskchange ? 8 : 0));
     save_u8 (drv->cyl);                    /* cylinder */
@@ -3481,7 +3481,7 @@ uae_u8 *save_disk(int num, int *len, uae_u8 *dstptr)
 
 /* internal floppy controller variables */
 
-uae_u8 *restore_floppy(uae_u8 *src)
+uae_u8 *restore_floppy (uae_u8 *src)
 {
     word = restore_u16();
     bitoffset = restore_u8();
index 565cb80e056ae9e8f53c513554db4a4ed100486e..fb4b7e65d6e9c1dd7b00564cb3ae09589ec65cf7 100644 (file)
--- a/gencpu.c
+++ b/gencpu.c
@@ -1828,6 +1828,7 @@ static void gen_opcode (unsigned long int opcode)
     case i_STOP:
        if (using_prefetch) {
            printf ("\tregs->sr = regs->irc;\n");
+           m68k_pc_offset += 2;
        } else {
            genamode (curi->smode, "srcreg", curi->size, "src", 1, 0, 0);
            printf ("\tregs->sr = src;\n");
index fd2730e4c1ca0aa9c0884148f01d09530c160b75..5528aeeb6a84d87f5ecda2533d64de8d212453a9 100644 (file)
@@ -295,20 +295,31 @@ int uae_start_thread (TCHAR *name, void *(*f)(void *), void *arg, uae_thread_id
 
 int uae_start_thread_fast (void *(*f)(void *), void *arg, uae_thread_id *tid)
 {
-    return uae_start_thread (NULL, f, arg, tid);
+    int v = uae_start_thread (NULL, f, arg, tid);
+    if (*tid)
+       SetThreadPriority (*tid, THREAD_PRIORITY_HIGHEST);
+    return v;
 }
 
 DWORD_PTR cpu_affinity = 1, cpu_paffinity = 1;
 
 void uae_set_thread_priority (uae_thread_id *tid, int pri)
 {
-    int pri2 = GetThreadPriority (NULL);
+    int pri2;
+    HANDLE th;
 
+    if (tid)
+       th = *tid;
+    else
+       th = GetCurrentThread ();
+    pri2 = GetThreadPriority (th);
+    if (pri2 == THREAD_PRIORITY_ERROR_RETURN)
+       pri2 = 0;
     pri2 += pri;
     if (pri2 > 1)
        pri2 = 1;
     if (pri2 < -1)
        pri2 = -1;
-    SetThreadPriority (tid ? *tid : NULL, pri2);
+    SetThreadPriority (th, pri2);
 }
 
index c1cd412be8f7405bc8a89ef311a950915e58ee5f..1cd7a936b07540d634ca77d246cbb6a45b6997a8 100644 (file)
@@ -92,11 +92,12 @@ struct sound_dp
     IAudioClient *pAudioClient;
     IAudioRenderClient *pRenderClient;
     IMMDeviceEnumerator *pEnumerator;
+#if 0
     IAudioClock *pAudioClock;
+    UINT64 wasapiclock;
+#endif
     REFERENCE_TIME hnsRequestedDuration;
-    HANDLE wasapihandle;
     int bufferFrameCount;
-    UINT64 wasapiclock;
     UINT64 wasapiframes;
     int wasapiexclusive;
     int framecounter;
@@ -208,14 +209,10 @@ static void resume_audio_wasapi (struct sound_data *sd)
     BYTE *pData;
     int framecnt;
 
-    ResetEvent (s->wasapihandle);
     hr = s->pAudioClient->lpVtbl->Reset (s->pAudioClient);
     if (FAILED (hr))
        write_log (L"WASAPI: Reset() %08X\n", hr);
-    if (s->wasapiexclusive)
-       framecnt = s->bufferFrameCount;
-    else
-       framecnt = s->wasapigoodsize;
+    framecnt = s->wasapigoodsize;
     hr = s->pRenderClient->lpVtbl->GetBuffer (s->pRenderClient, framecnt, &pData);
     if (FAILED (hr))
        return;
@@ -223,12 +220,6 @@ static void resume_audio_wasapi (struct sound_data *sd)
     hr = s->pAudioClient->lpVtbl->Start (s->pAudioClient);
     if (FAILED (hr))
        write_log (L"WASAPI: Start() %08X\n", hr);
-    if (s->wasapiexclusive) {
-       WaitForSingleObject (s->wasapihandle, 5 * 1000);
-       hr = s->pRenderClient->lpVtbl->GetBuffer (s->pRenderClient, framecnt, &pData);
-       if (SUCCEEDED (hr))
-           hr = s->pRenderClient->lpVtbl->ReleaseBuffer (s->pRenderClient, framecnt, AUDCLNT_BUFFERFLAGS_SILENT);
-    }
     s->wasapiframes = 0;
     s->framecounter = 0;
     s->sndbuf = 0;
@@ -681,16 +672,16 @@ static void close_audio_wasapi (struct sound_data *sd)
 
     if (s->pRenderClient)
        s->pRenderClient->lpVtbl->Release (s->pRenderClient);
+#if 0
     if (s->pAudioClock)
        s->pAudioClock->lpVtbl->Release (s->pAudioClock);
+#endif
     if (s->pAudioClient)
        s->pAudioClient->lpVtbl->Release (s->pAudioClient);
     if (s->pDevice)
        s->pDevice->lpVtbl->Release (s->pDevice);
     if (s->pEnumerator)
        s->pEnumerator->lpVtbl->Release (s->pEnumerator);
-    if (s->wasapihandle)
-       CloseHandle (s->wasapihandle);
 }
 
 const static GUID XIID_IAudioClient = {0x1CB9AD4C,0xDBFA,0x4c32,{0xB1,0x78,0xC2,0xF5,0x68,0xA7,0x03,0xB2}};
@@ -709,7 +700,7 @@ static int open_audio_wasapi (struct sound_data *sd, int index, int exclusive)
     LPWSTR name = NULL;
     int rn[4], rncnt;
     AUDCLNT_SHAREMODE sharemode;
-    int size;
+    int size, v;
 
     sd->devicetype = SOUND_DEVICE_WASAPI;
     s->wasapiexclusive = exclusive;
@@ -825,14 +816,10 @@ static int open_audio_wasapi (struct sound_data *sd, int index, int exclusive)
        sd->freq = pwfx->nSamplesPerSec;
     }
 
-    if (!s->wasapiexclusive) {
-        size = sd->sndbufsize * sd->channels * 16 / 8;
-       s->snd_configsize = size;
-       sd->sndbufsize = size / 32;
-       size /= (sd->channels * 16 / 8);
-    } else {
-        s->hnsRequestedDuration *= sd->sndbufsize / 512;
-    }
+    size = sd->sndbufsize * sd->channels * 16 / 8;
+    s->snd_configsize = size;
+    sd->sndbufsize = size / 32;
+    size /= (sd->channels * 16 / 8);
 
     s->bufferFrameCount = (UINT32)( // frames =
         1.0 * s->hnsRequestedDuration * // hns *
@@ -841,22 +828,20 @@ static int open_audio_wasapi (struct sound_data *sd, int index, int exclusive)
         10000 // (hns / s) /
         + 0.5); // rounding
 
-    if (!s->wasapiexclusive) {
-       if (s->bufferFrameCount < size) {
-           s->bufferFrameCount = size;
-           s->hnsRequestedDuration = // hns =
-               (REFERENCE_TIME)(
-                   10000.0 * // (hns / ms) *
-                   1000 * // (ms / s) *
-                   s->bufferFrameCount / // frames /
-                   wavfmt.Format.nSamplesPerSec  // (frames / s)
-                   + 0.5 // rounding
-               );
-       }
+    if (s->bufferFrameCount < size) {
+        s->bufferFrameCount = size;
+        s->hnsRequestedDuration = // hns =
+           (REFERENCE_TIME)(
+           10000.0 * // (hns / ms) *
+           1000 * // (ms / s) *
+           s->bufferFrameCount / // frames /
+           wavfmt.Format.nSamplesPerSec  // (frames / s)
+           + 0.5 // rounding
+       );
     }
 
     hr = s->pAudioClient->lpVtbl->Initialize (s->pAudioClient,
-       sharemode, AUDCLNT_STREAMFLAGS_EVENTCALLBACK,
+       sharemode, AUDCLNT_STREAMFLAGS_NOPERSIST,
        s->hnsRequestedDuration, s->wasapiexclusive ? s->hnsRequestedDuration : 0, pwfx ? pwfx : &wavfmt.Format, NULL);
     if (hr == AUDCLNT_E_BUFFER_SIZE_NOT_ALIGNED) {
        hr = s->pAudioClient->lpVtbl->GetBufferSize (s->pAudioClient, &s->bufferFrameCount);
@@ -880,21 +865,14 @@ static int open_audio_wasapi (struct sound_data *sd, int index, int exclusive)
            goto error;
        }
        hr = s->pAudioClient->lpVtbl->Initialize (s->pAudioClient,
-           sharemode, AUDCLNT_STREAMFLAGS_EVENTCALLBACK,
-           s->hnsRequestedDuration, s->wasapiexclusive ? s->hnsRequestedDuration : 0, &wavfmt.Format, NULL);
+           sharemode, AUDCLNT_STREAMFLAGS_NOPERSIST,
+           s->hnsRequestedDuration, s->wasapiexclusive ? s->hnsRequestedDuration : 0, pwfx ? pwfx : &wavfmt.Format, NULL);
     }
     if (FAILED (hr)) {
        write_log (L"WASAPI: Initialize() %08X\n", hr);
        goto error;
     }
 
-    s->wasapihandle = CreateEvent(NULL, FALSE, FALSE, NULL);
-    hr = s->pAudioClient->lpVtbl->SetEventHandle (s->pAudioClient, s->wasapihandle);
-    if (FAILED (hr)) {
-       write_log (L"WASAPI: SetEventHandle() %08X\n", hr);
-       goto error;
-    }
-
     hr = s->pAudioClient->lpVtbl->GetBufferSize (s->pAudioClient, &s->bufferFrameCount);
     if (FAILED (hr)) {
        write_log (L"WASAPI: GetBufferSize() %08X\n", hr);
@@ -915,7 +893,7 @@ static int open_audio_wasapi (struct sound_data *sd, int index, int exclusive)
        write_log (L"WASAPI: GetService(IID_IAudioRenderClient) %08X\n", hr);
        goto error;
     }
-
+#if 0
     hr = s->pAudioClient->lpVtbl->GetService (s->pAudioClient, &XIID_IAudioClock, (void**)&s->pAudioClock);
     if (FAILED (hr)) {
        write_log (L"WASAPI: GetService(IID_IAudioClock) %08X\n", hr);
@@ -925,16 +903,12 @@ static int open_audio_wasapi (struct sound_data *sd, int index, int exclusive)
            write_log (L"WASAPI: GetFrequency() %08X\n", hr);
        }
     }
-
-    if (s->wasapiexclusive) {
-       sd->sndbufsize = s->bufferFrameCount * sd->channels * 16 / 8;
-    } else {
-       int v = s->bufferFrameCount * sd->channels * 16 / 8;
-       v /= 2;
-       if (sd->sndbufsize > v)
-           sd->sndbufsize = v;
-       s->wasapigoodsize =s->bufferFrameCount / 2;
-    }
+#endif
+    v = s->bufferFrameCount * sd->channels * 16 / 8;
+    v /= 2;
+    if (sd->sndbufsize > v)
+        sd->sndbufsize = v;
+    s->wasapigoodsize =s->bufferFrameCount / 2;
     s->sndbufframes = sd->sndbufsize / (sd->channels * 16 / 8);
 
     write_log(L"WASAPI: '%s'\nWASAPI: EX=%d CH=%d FREQ=%d BUF=%d (%d)\n",
@@ -1267,6 +1241,13 @@ static void disable_sound (void)
     currprefs.produce_sound = changed_prefs.produce_sound = 1;
 }
 
+static void reopen_sound (void)
+{
+    close_sound ();
+    open_sound ();
+}
+
+
 #ifdef JIT
 extern uae_u8* compiled_code;
 #else
@@ -1500,8 +1481,8 @@ int blocking_sound_device (struct sound_data *sd)
 
     } else if (sd->devicetype == SOUND_DEVICE_WASAPI) {
 
-       if (WaitForSingleObject (s->wasapihandle, 0) == WAIT_TIMEOUT)
-           return 0;
+//     if (WaitForSingleObject (s->wasapihandle, 0) == WAIT_TIMEOUT)
+//         return 0;
        return 1;
 
     }
@@ -1568,6 +1549,9 @@ static void finish_sound_buffer_wasapi (struct sound_data *sd, uae_u16 *sndbuffe
     BYTE *pData;
     DWORD v;
     double skipmode;
+    int numFramesPadding, avail;
+    int stuck = 2000;
+    int oldpadding = 0;
 
     if (sd->paused)
        return;
@@ -1577,93 +1561,38 @@ static void finish_sound_buffer_wasapi (struct sound_data *sd, uae_u16 *sndbuffe
        s->sndbuf = s->sndbuf / s->framecounter;
        s->framecounter = 2;
     }
-    if (s->wasapiexclusive) {
-
-       v = WaitForSingleObject (s->wasapihandle, 0);
-       if (v == WAIT_OBJECT_0) {
-           gui_data.sndbuf_status = -1;
-           statuscnt = SND_STATUSCNT;
-           pause_audio_wasapi (sd);
-           resume_audio_wasapi (sd);
-           return;
-       } else if (v == WAIT_TIMEOUT) {
-           if (WaitForSingleObject (s->wasapihandle, 2000) != WAIT_OBJECT_0) {
-               write_log (L"WASAPI: event timed out\n");
-               return;
-           }
-       } else {
-           return;
-       }
-
-       if (s->wasapiclock) {
-
-           double v, v2;
-           UINT64 pos;
-           hr = s->pAudioClock->lpVtbl->GetPosition (s->pAudioClock, &pos, NULL);
-           if (FAILED (hr))
-               return;
-           v = (double)pos;
-           v /= s->wasapiclock;
-           v2 = s->wasapiframes / (double)sd->freq;
-           v = v2 - v;
-           v2 = v * 10000.0  / ((double)s->bufferFrameCount / (double)sd->freq);
-           s->sndbuf += v2 + 10000.0;
-           gui_data.sndbuf = s->sndbuf / s->framecounter;
-           if ((s->framecounter & 7) == 7) {
-               skipmode = sync_sound (gui_data.sndbuf / 70.0);
-               sound_setadjust (skipmode);
-           }
-
-       }
-
-       hr = s->pRenderClient->lpVtbl->GetBuffer (s->pRenderClient, s->bufferFrameCount, &pData);
+    for (;;) {
+       hr = s->pAudioClient->lpVtbl->GetCurrentPadding (s->pAudioClient, &numFramesPadding);
        if (FAILED (hr)) {
-           write_log (L"WASAPI: GetBuffer() %08X\n", hr);
+           write_log (L"WASAPI: GetCurrentPadding() %08X\n", hr);
            return;
        }
-       memcpy (pData, sndbuffer, s->bufferFrameCount * sd->channels * 16 / 8);
-       hr = s->pRenderClient->lpVtbl->ReleaseBuffer (s->pRenderClient, s->bufferFrameCount, 0);
-       s->wasapiframes += s->bufferFrameCount;
-
-    } else {
-
-       int numFramesPadding, avail;
-       int stuck = 2000;
-       int oldpadding = 0;
-
-       for (;;) {
-           hr = s->pAudioClient->lpVtbl->GetCurrentPadding (s->pAudioClient, &numFramesPadding);
-           if (FAILED (hr)) {
-               write_log (L"WASAPI: GetCurrentPadding() %08X\n", hr);
+       avail = s->bufferFrameCount - numFramesPadding;
+       if (avail >= s->sndbufframes)
+           break;
+       gui_data.sndbuf_status = 1;
+       statuscnt = SND_STATUSCNT;
+       sleep_millis (1);
+       if (oldpadding == numFramesPadding) {
+           if (stuck-- < 0) {
+               write_log (L"WASAPI: sound stuck %d %d %d !?\n", s->bufferFrameCount, numFramesPadding, s->sndbufframes);
+               reopen_sound ();
                return;
            }
-           avail = s->bufferFrameCount - numFramesPadding;
-           if (avail >= s->sndbufframes)
-               break;
-           gui_data.sndbuf_status = 1;
-           statuscnt = SND_STATUSCNT;
-           sleep_millis (1);
-           if (oldpadding == numFramesPadding) {
-               if (stuck-- < 0) {
-                   write_log (L"WASAPI: sound stuck %d %d %d !?\n", s->bufferFrameCount, numFramesPadding, s->sndbufframes);
-                   disable_sound ();
-                   return;
-               }
-           }
-           oldpadding = numFramesPadding;
-       }
-        s->sndbuf += (s->wasapigoodsize - avail) * 1000 / s->wasapigoodsize;
-       gui_data.sndbuf = s->sndbuf / s->framecounter;
-       if (s->framecounter == 2) {
-           skipmode = sync_sound (gui_data.sndbuf / 70.0);
-           sound_setadjust (skipmode);
        }
-        hr = s->pRenderClient->lpVtbl->GetBuffer (s->pRenderClient, s->sndbufframes, &pData);
-        if (SUCCEEDED (hr)) {
-           memcpy (pData, sndbuffer, sd->sndbufsize);
-           s->pRenderClient->lpVtbl->ReleaseBuffer (s->pRenderClient, s->sndbufframes, 0);
-       }
-
+       oldpadding = numFramesPadding;
+    }
+    s->sndbuf += (s->wasapigoodsize - avail) * 1000 / s->wasapigoodsize;
+    gui_data.sndbuf = s->sndbuf / s->framecounter;
+    if (s->framecounter == 2) {
+        skipmode = sync_sound (gui_data.sndbuf / 70.0);
+        sound_setadjust (skipmode);
+    }
+    hr = s->pRenderClient->lpVtbl->GetBuffer (s->pRenderClient, s->sndbufframes, &pData);
+    if (SUCCEEDED (hr)) {
+        memcpy (pData, sndbuffer, sd->sndbufsize);
+        s->pRenderClient->lpVtbl->ReleaseBuffer (s->pRenderClient, s->sndbufframes, 0);
     }
 
 }
@@ -1803,7 +1732,7 @@ static void finish_sound_buffer_ds (struct sound_data *sd, uae_u16 *sndbuffer)
            if (counter < 0) {
                write_log (L"DSSOUND: sound system got stuck!?\n");
                restore_ds (sd, DSERR_BUFFERLOST);
-               disable_sound ();
+               reopen_sound ();
                return;
            }
            continue;
index 215af0d483da934becac38d6ac1acdae07ab5b97..ffd0f248bd3c2a14ee4a581b78a493726982a3ac 100644 (file)
@@ -6,6 +6,8 @@
   * Copyright 1997 Bernd Schmidt
   */
 
+#define SOUNDSTUFF 1
+
 extern uae_u16 paula_sndbuffer[];
 extern uae_u16 *paula_sndbufpt;
 extern int paula_sndbufsize;
@@ -50,11 +52,15 @@ void set_volume_sound_device (struct sound_data *sd, int volume, int mute);
 int get_offset_sound_device (struct sound_data *sd);
 int blocking_sound_device (struct sound_data *sd);
 
+#if SOUNDSTUFF > 0
+extern int outputsample, doublesample;
+#endif
+
 static uae_u16 *paula_sndbufpt_prev, *paula_sndbufpt_start;
 
 STATIC_INLINE void set_sound_buffers (void)
 {
-#if 0
+#if SOUNDSTUFF > 0
     paula_sndbufpt_prev = paula_sndbufpt_start;
     paula_sndbufpt_start = paula_sndbufpt;
 #endif
@@ -62,7 +68,7 @@ STATIC_INLINE void set_sound_buffers (void)
 
 STATIC_INLINE void check_sound_buffers (void)
 {
-#if 0
+#if SOUNDSTUFF > 0
     int len;
 #endif
 
@@ -80,7 +86,7 @@ STATIC_INLINE void check_sound_buffers (void)
        p[1] = sum >> 3;
        paula_sndbufpt = (uae_u16 *)(((uae_u8 *)paula_sndbufpt) + 4 * 2);
     }
-#if 0
+#if SOUNDSTUFF > 0
     if (outputsample == 0)
        return;
     len = paula_sndbufpt - paula_sndbufpt_start;
@@ -98,7 +104,7 @@ STATIC_INLINE void check_sound_buffers (void)
        finish_sound_buffer ();
        paula_sndbufpt = paula_sndbuffer;
     }
-#if 0
+#if SOUNDSTUFF > 0
     while (doublesample-- > 0) {
        memcpy (paula_sndbufpt, paula_sndbufpt_start, len * 2);
        paula_sndbufpt += len;
index e3b65987934cd072d859e5178e864c5fed643cb0..39fb24e31cca1bc9f74e0a5e6bbd06a33c83b298 100644 (file)
@@ -652,10 +652,12 @@ static void winuae_active (HWND hWnd, int minimized)
        lcd_priority (1);
 #endif
     clipboard_active (hAmigaWnd, 1);
+#if 0
     if (os_vista && AVTask == NULL) {
        DWORD taskIndex = 0;
-       AVTask = AvSetMmThreadCharacteristics (TEXT("Pro Audio"), &taskIndex);
+       AVTask = AvSetMmThreadCharacteristics (TEXT("Games"), &taskIndex);
     }
+#endif
 }
 
 static void winuae_inactive (HWND hWnd, int minimized)
@@ -664,9 +666,11 @@ static void winuae_inactive (HWND hWnd, int minimized)
     int wasfocus = focus;
 
     write_log (L"winuae_inactive(%d)\n", minimized);
+#if 0
     if (AVTask)
        AvRevertMmThreadCharacteristics (AVTask);
     AVTask = NULL;
+#endif
     if (minimized)
        exit_gui (0);
     focus = 0;
index d674d7d66be429069f4ee9d3c0ade8120f4acf16..6d0d51a5e0b2deedd4ad8363bd43fd94a4f46f1e 100644 (file)
@@ -17,8 +17,8 @@
 
 #define WINUAEPUBLICBETA 1
 
-#define WINUAEBETA L"5"
-#define WINUAEDATE MAKEBD(2009, 8, 6)
+#define WINUAEBETA L"6"
+#define WINUAEDATE MAKEBD(2009, 8, 9)
 #define WINUAEEXTRA L""
 #define WINUAEREV L""
 
index bf1c2732ccc136f614c279e716def89d39bf7874..c69b2fd4e501baf01fe676e8a65d73e76c657f3c 100644 (file)
@@ -608,7 +608,7 @@ static int popupmenu (HWND hwnd, TCHAR **items)
     HMENU menu;
     POINT pt;
 
-    menu = CreatePopupMenu();
+    menu = CreatePopupMenu ();
     i = 0;
     while (items[i]) {
         MENUITEMINFO mii = { 0 };
index aecf226cb13570728e6728da473c6a6e4009e5a3..59eb664e29560112f5aa8ab993b3ca8b7ee56339 100644 (file)
@@ -1,4 +1,14 @@
 
+Beta 6:
+
+- STOP increased PC only by 2 if trace was active (copy protections..)
+- WASAPI exclusive mode improved (final Windows 7 SDK had much better
+  examples than RC or Vista versions)
+- restart sound (close and open) if sound gets stuck instead of killing
+  sound completely
+- thread priority updates and fixes (perhaps this fixes reported slow
+  filesystem emulation)
+
 Beta 5:
 
 Biggest A500 cycle-exact updates should be done now.