From: Toni Wilen Date: Sun, 29 Nov 2009 17:47:27 +0000 (+0200) Subject: imported winuaesrc2000b23.zip X-Git-Tag: 2100~48 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=b88d7c37933fae2bb6535d86b899b7b6f44fe1f9;p=francis%2Fwinuae.git imported winuaesrc2000b23.zip --- diff --git a/akiko.c b/akiko.c index c50488ad..6cc35e0f 100644 --- a/akiko.c +++ b/akiko.c @@ -334,22 +334,22 @@ static uae_u32 akiko_c2p_read (int offset) * 0xb80004-0xb80028 */ -#define CDINTERRUPT_SUBCODE 0x80000000 -#define CDINTERRUPT_DRIVEXMIT 0x40000000 /* not used by ROM */ -#define CDINTERRUPT_DRIVERECV 0x20000000 /* not used by ROM */ -#define CDINTERRUPT_RXDMADONE 0x10000000 -#define CDINTERRUPT_TXDMADONE 0x08000000 -#define CDINTERRUPT_PBX 0x04000000 -#define CDINTERRUPT_OVERFLOW 0x02000000 - -#define CDFLAG_SUBCODE 0x80000000 -#define CDFLAG_TXD 0x40000000 -#define CDFLAG_RXD 0x20000000 -#define CDFLAG_CAS 0x10000000 -#define CDFLAG_PBX 0x08000000 -#define CDFLAG_ENABLE 0x04000000 -#define CDFLAG_RAW 0x02000000 -#define CDFLAG_MSB 0x01000000 +#define CDINTERRUPT_SUBCODE 0x80000000 +#define CDINTERRUPT_DRIVEXMIT 0x40000000 /* not used by ROM */ +#define CDINTERRUPT_DRIVERECV 0x20000000 /* not used by ROM */ +#define CDINTERRUPT_RXDMADONE 0x10000000 +#define CDINTERRUPT_TXDMADONE 0x08000000 +#define CDINTERRUPT_PBX 0x04000000 +#define CDINTERRUPT_OVERFLOW 0x02000000 + +#define CDFLAG_SUBCODE 0x80000000 +#define CDFLAG_TXD 0x40000000 +#define CDFLAG_RXD 0x20000000 +#define CDFLAG_CAS 0x10000000 +#define CDFLAG_PBX 0x08000000 +#define CDFLAG_ENABLE 0x04000000 +#define CDFLAG_RAW 0x02000000 +#define CDFLAG_MSB 0x01000000 #define CDS_ERROR 0x80 #define CDS_PLAYING 0x08 @@ -1775,6 +1775,9 @@ uae_u8 *restore_akiko (uae_u8 *src) restore_u32 (); cdrom_addressdata = restore_u32 (); cdrom_addressmisc = restore_u32 (); + subcode_address = cdrom_addressmisc | 0x100; + cdrx_address = cdrom_addressmisc; + cdtx_address = cdrom_addressmisc | 0x200; cdrom_subcodeoffset = restore_u8 (); cdcomtxinx = restore_u8 (); cdcomrxinx = restore_u8 (); diff --git a/blitter.c b/blitter.c index 321c391f..a735665d 100644 --- a/blitter.c +++ b/blitter.c @@ -65,7 +65,7 @@ static int blit_maxcyclecounter, blit_slowdown, blit_totalcyclecounter; static int blit_startcycles, blit_misscyclecounter; #ifdef CPUEMU_12 -extern uae_u8 cycle_line[]; +extern uae_u8 cycle_line[256]; #endif static long blit_firstline_cycles; @@ -597,9 +597,14 @@ static void blitter_line (void) static void blitter_line_proc (void) { - if (!blitsign) { - if (bltcon0 & 0x800) + if (bltcon0 & 0x800) { + if (!blitsign) bltapt += (uae_s16)blt_info.bltamod; + else + bltapt += (uae_s16)blt_info.bltbmod; + } + + if (!blitsign) { if (bltcon1 & 0x10) { if (bltcon1 & 0x8) blitter_line_decy (); @@ -611,9 +616,6 @@ static void blitter_line_proc (void) else blitter_line_incx (); } - } else { - if (bltcon0 & 0x800) - bltapt += (uae_s16)blt_info.bltbmod; } if (bltcon1 & 0x10) { if (bltcon1 & 0x4) @@ -626,6 +628,7 @@ static void blitter_line_proc (void) else blitter_line_incy (); } + blitsign = 0 > (uae_s16)bltapt; bltstate = BLT_write; } @@ -1086,7 +1089,7 @@ static void blitter_force_finish (void) if (blitter_cycle_exact) { int rounds = 10000; while (bltstate != BLT_done && rounds > 0) { - memset (cycle_line, 0, maxhpos); + memset (cycle_line, 0, sizeof cycle_line); decide_blitter (maxhpos); rounds--; } @@ -1216,6 +1219,8 @@ void reset_blit (int bltcon) { if (bltcon & 1) blinea_shift = bltcon0 >> 12; + if (bltcon & 2) + blitsign = bltcon1 & 0x40; if (bltstate == BLT_done) return; if (bltcon) @@ -1266,11 +1271,10 @@ static void do_blitter2 (int hpos, int copper) blit_interrupt = 0; if (blitline) { - blitsing = bltcon1 & 0x2; blinea = blt_info.bltadat; blineb = (blt_info.bltbdat >> blt_info.blitbshift) | (blt_info.bltbdat << (16 - blt_info.blitbshift)); - blitsign = bltcon1 & 0x40; blitonedot = 0; + blitsing = bltcon1 & 0x2; cycles = vblitsize; } else { blit_firstline_cycles = blit_first_cycle + (blit_diag[0] * hblitsize + cpu_cycles) * CYCLE_UNIT; diff --git a/debug.c b/debug.c index 799962a3..7a12dc23 100644 --- a/debug.c +++ b/debug.c @@ -89,7 +89,6 @@ static TCHAR help[] = { L" r Dump state of the CPU\n" L" r Modify CPU registers (Dx,Ax,USP,ISP,VBR,...)\n" L" m
[] Memory dump starting at
\n" - L" m r Memory dump starting at \n" L" d
[] Disassembly starting at
\n" L" t [instructions] Step one or more instructions\n" L" z Step through one instruction - useful for JSR, DBRA etc\n" @@ -97,7 +96,7 @@ static TCHAR help[] = { L" f
Add/remove breakpoint\n" L" fa
[] []\n" L" Find effective address
\n" - L" fi Step forward until PC points to RTS/RTD or RTE\n" + L" fi Step forward until PC points to RTS, RTD or RTE\n" L" fi Step forward until PC points to \n" L" fp \"\"/ Step forward until process or is active\n" L" fl List breakpoints\n" @@ -136,6 +135,7 @@ static TCHAR help[] = { L" smc [<0-1>] Enable self-modifying code detector. 1 = enable break.\n" L" dm Dump current address space map\n" L" v [] Show DMA data (accurate only in cycle-exact mode)\n" + L" v [-1 to -4] = enable visual DMA debugger\n" L" ? Hex/Bin/Dec converter\n" #ifdef _WIN32 L" x Close debugger.\n" diff --git a/od-win32/avioutput.c b/od-win32/avioutput.c index 7364930d..4697550d 100644 --- a/od-win32/avioutput.c +++ b/od-win32/avioutput.c @@ -64,7 +64,7 @@ static int videoallocated; int avioutput_width, avioutput_height, avioutput_bits; int avioutput_fps = VBLANK_HZ_PAL; -DWORD avioutput_framelimiter = 0, avioutput_nosoundoutput = 0; +DWORD avioutput_framelimiter = 0, avioutput_nosoundoutput = 0, avioutput_nosoundsync = 1; TCHAR avioutput_filename[MAX_DPATH]; static TCHAR avioutput_filename_tmp[MAX_DPATH]; @@ -214,6 +214,7 @@ static void storesettings (UAEREG *avikey) { regsetint (avikey, L"FrameLimiter", avioutput_framelimiter); regsetint (avikey, L"NoSoundOutput", avioutput_nosoundoutput); + regsetint (avikey, L"NoSoundSync", avioutput_nosoundsync); regsetint (avikey, L"FPS", avioutput_fps); } static void getsettings (UAEREG *avikey) @@ -221,6 +222,8 @@ static void getsettings (UAEREG *avikey) DWORD val; if (regqueryint (avikey, L"NoSoundOutput", &val)) avioutput_nosoundoutput = val; + if (regqueryint (avikey, L"NoSoundSync", &val)) + avioutput_nosoundsync = val; if (regqueryint (avikey, L"FrameLimiter", &val)) avioutput_framelimiter = val; if (!avioutput_framelimiter) @@ -1306,7 +1309,7 @@ static void *AVIOutput_worker (void *arg) #define ADJUST_SIZE 10 #define EXP 1.1 -void frame_drawn(void) +void frame_drawn (void) { #if 0 double diff, skipmode; diff --git a/od-win32/avioutput.h b/od-win32/avioutput.h index 29cdcdb5..0ba67cfb 100644 --- a/od-win32/avioutput.h +++ b/od-win32/avioutput.h @@ -10,7 +10,7 @@ extern int avioutput_video, avioutput_audio, avioutput_enabled, avioutput_reques extern int avioutput_width, avioutput_height, avioutput_bits; extern int avioutput_fps; -extern DWORD avioutput_framelimiter, avioutput_nosoundoutput; +extern DWORD avioutput_framelimiter, avioutput_nosoundoutput, avioutput_nosoundsync; extern TCHAR avioutput_filename[MAX_DPATH]; diff --git a/od-win32/parser.c b/od-win32/parser.c index f7f04c37..991b4eac 100644 --- a/od-win32/parser.c +++ b/od-win32/parser.c @@ -9,7 +9,7 @@ #include "sysconfig.h" -//#undef SERIAL_ENET +#undef SERIAL_ENET #include #include diff --git a/od-win32/resources/resource b/od-win32/resources/resource index 21de335e..2f9dd6cc 100644 --- a/od-win32/resources/resource +++ b/od-win32/resources/resource @@ -323,7 +323,6 @@ #define IDS_PRINTER_EPSON 352 #define IDS_PRINTER_EPSON9 352 #define IDS_PRINTER_POSTSCRIPT_DETECTION 353 -#define IDI_ICON4 353 #define IDI_EXPANSION 353 #define IDS_PRINTER_POSTSCRIPT_EMULATION 354 #define IDS_PRINTER_PASSTHROUGH 355 @@ -796,6 +795,8 @@ #define IDC_AVIOUTPUT_DIMENSIONS_STATIC 1648 #define IDC_STATE_BUFFERSIZE_TEXT 1648 #define IDC_CONFIGTREE 1648 +#define IDC_AVIOUTPUT_NOSOUNDOUTPUT2 1648 +#define IDC_AVIOUTPUT_NOSOUNDSYNC 1648 #define IDC_AVIOUTPUT_OPTIONS 1649 #define IDC_STATE_RATE_TEXT 1649 #define IDC_DISKLISTREMOVE 1649 diff --git a/od-win32/resources/winuae.rc b/od-win32/resources/winuae.rc index 98cc8aae..c3e29425 100644 --- a/od-win32/resources/winuae.rc +++ b/od-win32/resources/winuae.rc @@ -674,13 +674,13 @@ BEGIN CONTROL "",IDC_AVIOUTPUT_AUDIO_STATIC,"Static",SS_LEFTNOWORDWRAP | SS_CENTERIMAGE | SS_SUNKEN | WS_GROUP,59,34,209,13 CONTROL "Video",IDC_AVIOUTPUT_VIDEO,"Button",BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_FLAT | WS_TABSTOP,15,50,39,14 CONTROL "",IDC_AVIOUTPUT_VIDEO_STATIC,"Static",SS_LEFTNOWORDWRAP | SS_CENTERIMAGE | SS_SUNKEN | WS_GROUP,59,51,209,13 - CONTROL "Disable frame rate limit while recording",IDC_AVIOUTPUT_FRAMELIMITER, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,68,158,10 + CONTROL "Disable frame rate limit",IDC_AVIOUTPUT_FRAMELIMITER, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,71,158,10 CONTROL "AVI output enabled",IDC_AVIOUTPUT_ACTIVATED,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,15,103,108,14 CONTROL "PAL",IDC_AVIOUTPUT_PAL,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,131,103,66,14 CONTROL "NTSC",IDC_AVIOUTPUT_NTSC,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,204,103,66,14 - CONTROL "Slider1",IDC_AVIOUTPUT_FPS,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | TBS_ENABLESELRANGE | WS_TABSTOP,166,84,87,11 - LTEXT "fps",IDC_AVIOUTPUT_FPS_STATIC,255,84,19,8 + CONTROL "Slider1",IDC_AVIOUTPUT_FPS,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | TBS_ENABLESELRANGE | WS_TABSTOP,143,74,87,11 + LTEXT "fps",IDC_AVIOUTPUT_FPS_STATIC,237,74,19,8 PUSHBUTTON "Save screenshot",IDC_SCREENSHOT,16,141,77,14 GROUPBOX "Ripper",IDC_STATIC,5,127,274,38 PUSHBUTTON "Pro Wizard 1.62",IDC_PROWIZARD,104,141,77,14,WS_DISABLED @@ -689,8 +689,9 @@ BEGIN CONTROL "Record",IDC_INPREC_RECORD,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,192,178,77,14 CONTROL "Playback",IDC_INPREC_PLAY,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,16,178,77,14 CONTROL "Alt. playback mode",IDC_INPREC_PLAYMODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,103,180,78,10 - CONTROL "Disable sound output while recording",IDC_AVIOUTPUT_NOSOUNDOUTPUT, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,85,148,10 + CONTROL "Disable sound output",IDC_AVIOUTPUT_NOSOUNDOUTPUT, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,88,123,10 + CONTROL "Disable sound sync",IDC_AVIOUTPUT_NOSOUNDSYNC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,147,88,120,10 END IDD_INPUT DIALOGEX 0, 0, 300, 242 diff --git a/od-win32/sounddep/sound.c b/od-win32/sounddep/sound.c index f25d7a37..d654d746 100644 --- a/od-win32/sounddep/sound.c +++ b/od-win32/sounddep/sound.c @@ -1296,9 +1296,9 @@ void sound_setadjust (double v) v = 0; mult = (1000.0 + v); - if (avioutput_audio) + if (avioutput_audio && avioutput_enabled && avioutput_nosoundsync) mult = 1000.0; - if (isvsync () || (avioutput_audio && !compiled_code)) { + if (isvsync () || (avioutput_audio && avioutput_enabled && !compiled_code)) { vsynctime = vsynctime_orig; scaled_sample_evtime = scaled_sample_evtime_orig * mult / 1000.0; } else if (compiled_code || currprefs.m68k_speed != 0) { @@ -1855,7 +1855,7 @@ void finish_sound_buffer (void) driveclick_mix ((uae_s16*)paula_sndbuffer, sdp->sndbufsize / 2); #endif #ifdef AVIOUTPUT - if (avioutput_audio) + if (avioutput_enabled && avioutput_audio) AVIOutput_WriteAudio ((uae_u8*)paula_sndbuffer, sdp->sndbufsize); if (avioutput_enabled && (!avioutput_framelimiter || avioutput_nosoundoutput)) return; diff --git a/od-win32/win32.c b/od-win32/win32.c index 2cb62bf2..01af1d63 100644 --- a/od-win32/win32.c +++ b/od-win32/win32.c @@ -835,7 +835,7 @@ static LRESULT CALLBACK AmigaWindowProc (HWND hWnd, UINT message, WPARAM wParam, return 0; case WM_LBUTTONDOWN: case WM_LBUTTONDBLCLK: - if (!mouseactive && !gui_active && (!mousehack_alive () || currprefs.input_tablet != TABLET_MOUSEHACK || isfullscreen () > 0)) { + if (!mouseactive && !gui_active && (!mousehack_alive () || currprefs.input_tablet != TABLET_MOUSEHACK || (currprefs.input_tablet == TABLET_MOUSEHACK && !currprefs.input_magic_mouse) || isfullscreen () > 0)) { setmouseactive ((message == WM_LBUTTONDBLCLK || isfullscreen() > 0) ? 2 : 1); } else if (dinput_winmouse () >= 0 && isfocus ()) { setmousebuttonstate (dinput_winmouse (), 0, 1); @@ -1975,6 +1975,7 @@ void logging_init (void) int wow64 = 0; static int started; static int first; + TCHAR tmp[MAX_DPATH]; if (first > 1) { write_log (L"** RESTART **\n"); @@ -2008,6 +2009,9 @@ void logging_init (void) L"\nPress F12 to show the Settings Dialog (GUI), Alt-F4 to quit." L"\nEnd+F1 changes floppy 0, End+F2 changes floppy 1, etc." L"\n"); + tmp[0] = 0; + GetModuleFileName (NULL, tmp, sizeof (tmp) / sizeof (TCHAR)); + write_log (L"'%s'\n", tmp); write_log (L"EXE: '%s', DATA: '%s'\n", start_path_exe, start_path_data); regstatus (); } diff --git a/od-win32/win32.h b/od-win32/win32.h index 23073583..08e2652b 100644 --- a/od-win32/win32.h +++ b/od-win32/win32.h @@ -17,8 +17,8 @@ #define WINUAEPUBLICBETA 1 -#define WINUAEBETA L"22" -#define WINUAEDATE MAKEBD(2009, 11, 21) +#define WINUAEBETA L"23" +#define WINUAEDATE MAKEBD(2009, 11, 29) #define WINUAEEXTRA L"" #define WINUAEREV L"" diff --git a/od-win32/win32gfx.c b/od-win32/win32gfx.c index ba50802f..152fabd6 100644 --- a/od-win32/win32gfx.c +++ b/od-win32/win32gfx.c @@ -172,6 +172,7 @@ int WIN32GFX_GetHeight (void) return currentmode->current_height; } +static int init_round; static BOOL doInit (void); uae_u32 default_freq = 0; @@ -1136,6 +1137,7 @@ static int open_windows (int full) return 0; write_log (L"DirectDraw GUID=%s\n", outGUID (displayGUID)); + init_round = 0; ret = -2; do { if (ret < -1) { @@ -1143,6 +1145,12 @@ static int open_windows (int full) update_gfxparams (); } ret = doInit (); + init_round++; + if (ret < -9) { + DirectDraw_Release (); + if (!DirectDraw_Start (displayGUID)) + return 0; + } } while (ret < 0); if (!ret) { @@ -2336,7 +2344,7 @@ static BOOL doInit (void) int ret = 0; int mult = 0; - colortype = DirectDraw_GetPixelFormat(); + colortype = DirectDraw_GetPixelFormat (); gfxmode_reset (); for (;;) { @@ -2559,7 +2567,7 @@ static BOOL doInit (void) return 1; oops: - close_hwnds(); + close_hwnds (); return ret; } diff --git a/od-win32/win32gui.c b/od-win32/win32gui.c index 6b28c102..47f8e577 100644 --- a/od-win32/win32gui.c +++ b/od-win32/win32gui.c @@ -1317,8 +1317,17 @@ int target_cfgfile_load (struct uae_prefs *p, TCHAR *filename, int type, int isd discard_prefs (p, 0); } type2 = type; - if (type == 0) + if (type == 0) { default_prefs (p, type); +#if 0 + if (isdefault == 0) { + fetch_configurationpath (tmp1, sizeof (tmp1) / sizeof (TCHAR)); + _tcscat (tmp1, OPTIONSFILENAME); + cfgfile_load (p, tmp1, NULL, 0, 0); + } +#endif + } + regqueryint (NULL, L"ConfigFile_NoAuto", &ct2); v = cfgfile_load (p, fname, &type2, ct2, isdefault ? 0 : 1); if (!v) @@ -1347,7 +1356,7 @@ int target_cfgfile_load (struct uae_prefs *p, TCHAR *filename, int type, int isd static int gui_width = 640, gui_height = 480; static int mm = 0; -static void m(void) +static void m (void) { write_log (L"%d:0: %dx%d %dx%d %dx%d\n", mm, currprefs.gfx_size.width, currprefs.gfx_size.height, workprefs.gfx_size.width, workprefs.gfx_size.height, changed_prefs.gfx_size.width, changed_prefs.gfx_size.height); @@ -11215,9 +11224,6 @@ static void values_to_avioutputdlg (HWND hDlg) _stprintf (tmpstr, L"%d fps", avioutput_fps); SendMessage (GetDlgItem(hDlg, IDC_AVIOUTPUT_FPS_STATIC), WM_SETTEXT, (WPARAM) 0, (LPARAM) tmpstr); - _stprintf (tmpstr, L"Actual: %d x %d", workprefs.gfx_size.width, workprefs.gfx_size.height); - SendMessage (GetDlgItem(hDlg, IDC_AVIOUTPUT_DIMENSIONS_STATIC), WM_SETTEXT, (WPARAM) 0, (LPARAM) tmpstr); - switch(avioutput_fps) { case VBLANK_HZ_PAL: @@ -11236,6 +11242,7 @@ static void values_to_avioutputdlg (HWND hDlg) CheckDlgButton (hDlg, IDC_AVIOUTPUT_FRAMELIMITER, avioutput_framelimiter ? FALSE : TRUE); CheckDlgButton (hDlg, IDC_AVIOUTPUT_NOSOUNDOUTPUT, avioutput_nosoundoutput ? TRUE : FALSE); + CheckDlgButton (hDlg, IDC_AVIOUTPUT_NOSOUNDSYNC, avioutput_nosoundsync ? TRUE : FALSE); CheckDlgButton (hDlg, IDC_AVIOUTPUT_ACTIVATED, avioutput_requested ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton (hDlg, IDC_SAMPLERIPPER_ACTIVATED, sampleripper_enabled ? BST_CHECKED : BST_UNCHECKED); } @@ -11305,6 +11312,7 @@ static void enable_for_avioutputdlg(HWND hDlg) avioutput_nosoundoutput = 1; CheckDlgButton (hDlg, IDC_AVIOUTPUT_FRAMELIMITER, avioutput_framelimiter ? FALSE : TRUE); CheckDlgButton (hDlg, IDC_AVIOUTPUT_NOSOUNDOUTPUT, avioutput_nosoundoutput ? TRUE : FALSE); + CheckDlgButton (hDlg, IDC_AVIOUTPUT_NOSOUNDSYNC, avioutput_nosoundsync ? TRUE : FALSE); ew (hDlg, IDC_AVIOUTPUT_ACTIVATED, (!avioutput_audio && !avioutput_video) ? FALSE : TRUE); @@ -11370,6 +11378,10 @@ static INT_PTR CALLBACK AVIOutputDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LP avioutput_nosoundoutput = IsDlgButtonChecked (hDlg, IDC_AVIOUTPUT_NOSOUNDOUTPUT) ? 1 : 0; AVIOutput_SetSettings (); break; + case IDC_AVIOUTPUT_NOSOUNDSYNC: + avioutput_nosoundsync = IsDlgButtonChecked (hDlg, IDC_AVIOUTPUT_NOSOUNDSYNC) ? 1 : 0; + AVIOutput_SetSettings (); + break; case IDC_INPREC_PLAYMODE: break; diff --git a/od-win32/winuaechangelog.txt b/od-win32/winuaechangelog.txt index cc846d4a..c12ecafb 100644 --- a/od-win32/winuaechangelog.txt +++ b/od-win32/winuaechangelog.txt @@ -1,3 +1,16 @@ + +- mouse capture didn't work if mouse driver (tablet) mode was enabled + without magic mouse +- selecting wave recording (file select) disabled audio sync even if + recording was not activated +- added disable sound sync option to output panel. Previously it was + always disabled (for best sound quality), option was added because + audio only recording with sync disabled can cause sound glitches and + emulation slowdowns and vsync issues (recorded sound was still fine) +- CD32 state restore compatibility update +- only update BLTSIGN when writing to BPLCON1, not when starting the + the blit (Anesthesia / Possessed and probably others) + Beta 22: - do not load multiple harddrives (directory and regular hardfile) from @@ -6,8 +19,7 @@ Beta 22: - added simple validation to harddrive device and volume labels - fixed small graphics glitch in Sequential / Andromeda "18 frames!" - slightly smaller on screen leds, fits in 320 pixel wide display -- "write to BPLCON1 immediately after BPL1DAT" handling was buggy, in - some cases bpl delay change had too long delay (Demo2 / Parasite) +- BPLCON1 to bitplane delay timing fix in some specific situations - KS 1.x interlace screen setup was incompatible with "scandoubler" Beta 21: diff --git a/zfile.c b/zfile.c index 4f4b8a0a..6ddf30a9 100644 --- a/zfile.c +++ b/zfile.c @@ -1517,7 +1517,6 @@ static struct zfile *zfile_fopen_x (const TCHAR *name, const TCHAR *mode, int ma if (_tcslen (name) == 0) return NULL; manglefilename (path, name); - //write_log (L"zfile_fopen('%s','%s',%08x)\n", path, mode, mask); l = zfile_fopen_2 (path, mode, mask); if (!l) return 0; @@ -1642,7 +1641,7 @@ end: } #endif -static struct zfile *zfile_fopenx (const TCHAR *name, const TCHAR *mode, int mask, int index) +static struct zfile *zfile_fopenx2 (const TCHAR *name, const TCHAR *mode, int mask, int index) { struct zfile *f; TCHAR tmp[MAX_DPATH]; @@ -1685,6 +1684,16 @@ static struct zfile *zfile_fopenx (const TCHAR *name, const TCHAR *mode, int mas #endif return NULL; } + +static struct zfile *zfile_fopenx (const TCHAR *name, const TCHAR *mode, int mask, int index) +{ + struct zfile *zf; + //write_log (L"zfile_fopen('%s','%s',%08x,%d)\n", name, mode, mask, index); + zf = zfile_fopenx2 (name, mode, mask, index); + //write_log (L"=%p\n", zf); + return zf; +} + struct zfile *zfile_fopen (const TCHAR *name, const TCHAR *mode, int mask) { return zfile_fopenx (name, mode, mask, 0); @@ -2462,7 +2471,7 @@ static struct zvolume *prepare_recursive_volume (struct zvolume *zv, const TCHAR { struct zfile *zf = NULL; struct zvolume *zvnew = NULL; - int i; +// int i; int done = 0; #ifdef ZFILE_DEBUG