From: Toni Wilen Date: Tue, 7 Jul 2015 17:25:09 +0000 (+0300) Subject: 3200b2 X-Git-Tag: 3200~143 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=ba336190f516ef8dc3112969fc1aeeb2c1e9ec49;p=francis%2Fwinuae.git 3200b2 --- diff --git a/mame/a2410.cpp b/mame/a2410.cpp index ef840c11..48dc1369 100644 --- a/mame/a2410.cpp +++ b/mame/a2410.cpp @@ -63,7 +63,7 @@ int mscreen::vpos() static void tms_execute_single(void) { - tms_device.m_icount = 0; + tms_device.m_icount = 2; tms_device.execute_run(); } @@ -737,7 +737,7 @@ void tms_hsync_handler(void) if (!tms_configured) return; - tms_device.m_icount = 50; + tms_device.m_icount = 100; tms_device.execute_run(); int a2410_vpos = tms_vp; tms_vp = tms_device.scanline_callback(NULL, tms_vp, a2410_interlace < 0); diff --git a/mame/tm34010/34010gfx.c b/mame/tm34010/34010gfx.c index d0d4801b..4acb98fa 100644 --- a/mame/tm34010/34010gfx.c +++ b/mame/tm34010/34010gfx.c @@ -13,7 +13,7 @@ #define LOG_GFX_OPS 0 -#define LOGGFX(x) do { logerror x; } while(0) +#define LOGGFX(x) do { if (LOG_GFX_OPS) { logerror x; } } while(0) //#define LOGGFX(x) do { if (LOG_GFX_OPS && machine().input().code_pressed(KEYCODE_L)) logerror x; } while (0) diff --git a/mame/tm34010/tms34010.cpp b/mame/tm34010/tms34010.cpp index 683b8bf7..3ba8102a 100644 --- a/mame/tm34010/tms34010.cpp +++ b/mame/tm34010/tms34010.cpp @@ -20,9 +20,9 @@ DEBUG STATE & STRUCTURES ***************************************************************************/ -#define VERBOSE 1 -#define LOG_CONTROL_REGS 1 -#define LOG_GRAPHICS_OPS 1 +#define VERBOSE 0 +#define LOG_CONTROL_REGS 0 +#define LOG_GRAPHICS_OPS 0 #define LOG(x) do { if (VERBOSE) logerror x; } while (0) diff --git a/od-win32/parser.cpp b/od-win32/parser.cpp index 3fcf3f4a..7de11372 100644 --- a/od-win32/parser.cpp +++ b/od-win32/parser.cpp @@ -1101,6 +1101,7 @@ static void outser (void) void writeser (int c) { + //write_log(_T("writeser %d (buf=%d)\n"), c, datainoutput); if (tcpserial) { if (tcp_is_connected ()) { char buf[1]; diff --git a/od-win32/resources/winuae.rc b/od-win32/resources/winuae.rc index 5d463816..8e525c87 100644 --- a/od-win32/resources/winuae.rc +++ b/od-win32/resources/winuae.rc @@ -1094,10 +1094,10 @@ STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD FONT 8, "MS Sans Serif", 0, 0, 0x1 BEGIN GROUPBOX "RTG Graphics Card",IDC_STATIC,1,0,393,189 - COMBOBOX IDC_RTG_Z2Z3,26,14,118,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_RTG_Z2Z3,26,14,215,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP RTEXT "VRAM size: [] Graphics card memory. Required for RTG (Picasso96) emulation.",IDC_GFXCARDTEXT,2,35,76,10,SS_NOTIFY | SS_CENTERIMAGE - CONTROL "",IDC_P96MEM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,88,31,60,20 - EDITTEXT IDC_P96RAM,152,34,40,12,ES_CENTER | ES_READONLY + CONTROL "",IDC_P96MEM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,88,31,103,20 + EDITTEXT IDC_P96RAM,201,34,40,12,ES_CENTER | ES_READONLY CONTROL "Match host and RTG color depth if possible",IDC_RTG_MATCH_DEPTH, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,54,212,10 CONTROL "Scale if smaller than display size setting",IDC_RTG_SCALE, diff --git a/od-win32/win32.h b/od-win32/win32.h index 00e420be..20ecf6da 100644 --- a/od-win32/win32.h +++ b/od-win32/win32.h @@ -20,12 +20,12 @@ #define LANG_DLL_FULL_VERSION_MATCH 1 #if WINUAEPUBLICBETA -#define WINUAEBETA _T("1") +#define WINUAEBETA _T("2") #else #define WINUAEBETA _T("") #endif -#define WINUAEDATE MAKEBD(2015, 6, 26) +#define WINUAEDATE MAKEBD(2015, 7, 7) //#define WINUAEEXTRA _T("AmiKit Preview") //#define WINUAEEXTRA _T("Amiga Forever Edition") diff --git a/od-win32/win32gui.cpp b/od-win32/win32gui.cpp index a0bb29d8..ed6742f4 100644 --- a/od-win32/win32gui.cpp +++ b/od-win32/win32gui.cpp @@ -6283,7 +6283,7 @@ static INT_PTR CALLBACK AboutDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM static void enable_for_displaydlg (HWND hDlg) { - int rtg = ((!workprefs.address_space_24 || !gfxboard_is_z3 (workprefs.rtgmem_type)) && workprefs.rtgmem_size) || workprefs.rtgmem_type >= GFXBOARD_HARDWARE; + int rtg = ((!workprefs.address_space_24 || gfxboard_get_configtype(workprefs.rtgmem_type) == 2) && workprefs.rtgmem_size) || workprefs.rtgmem_type >= GFXBOARD_HARDWARE; #ifndef PICASSO96 rtg = FALSE; #endif @@ -7700,7 +7700,7 @@ static void setmax32bitram (HWND hDlg) uae_u32 size, rtgz3size, z3size; uae_u32 sizealign = 16 * 1024 * 1024 - 1; - rtgz3size = gfxboard_is_z3 (workprefs.rtgmem_type) ? workprefs.rtgmem_size : 0; + rtgz3size = gfxboard_get_configtype(workprefs.rtgmem_type) == 3 ? workprefs.rtgmem_size : 0; size = ((workprefs.z3fastmem_size + sizealign) & ~sizealign) + ((workprefs.z3fastmem2_size + sizealign) & ~sizealign) + ((rtgz3size + sizealign) & ~sizealign); if (cfgfile_board_enabled(&currprefs, ROMTYPE_A4091, 0)) @@ -8146,11 +8146,12 @@ static void init_expansion2(HWND hDlg) _tcscat(name, _T("* ")); else if (cnt > 1) _stprintf(name + _tcslen(name), _T("[%d] "), cnt); + _tcscat(name, expansionroms[i].friendlyname); if (expansionroms[i].friendlymanufacturer) { + _tcscat(name, _T(" (")); _tcscat(name, expansionroms[i].friendlymanufacturer); - _tcscat(name, _T(" ")); + _tcscat(name, _T(")")); } - _tcscat(name, expansionroms[i].friendlyname); gui_add_string(scsiromselect_table, hDlg, IDC_SCSIROMSELECT, i, name); } SendDlgItemMessage(hDlg, IDC_SCSIROMSELECTNUM, CB_RESETCONTENT, 0, 0); @@ -8799,7 +8800,7 @@ static void values_to_expansiondlg(HWND hDlg) int min_mem = MIN_P96_MEM; int max_mem = MAX_P96_MEM_Z3; - if (!gfxboard_is_z3(workprefs.rtgmem_type)) { + if (gfxboard_get_configtype(workprefs.rtgmem_type) == 2) { int v = workprefs.rtgmem_size; max_mem = 0; workprefs.rtgmem_size = 1024 * 1024; @@ -8812,11 +8813,9 @@ static void values_to_expansiondlg(HWND hDlg) if (workprefs.rtgmem_type >= GFXBOARD_HARDWARE && v < gfxboard_get_vram_min(workprefs.rtgmem_type)) v = gfxboard_get_vram_min(workprefs.rtgmem_type); workprefs.rtgmem_size = v; -// if (workprefs.rtgmem_size > 8 * 1024 * 1024) -// mem_size = 8 * 1024 * 1024; while (getz2size(&workprefs) < 0 && workprefs.rtgmem_size > 0) workprefs.rtgmem_size -= 1024 * 1024; - } else { + } else if (gfxboard_get_configtype(workprefs.rtgmem_type) == 3) { int v = workprefs.rtgmem_size; if (workprefs.rtgmem_type >= GFXBOARD_HARDWARE && v > gfxboard_get_vram_max(workprefs.rtgmem_type)) v = gfxboard_get_vram_max(workprefs.rtgmem_type); @@ -8911,7 +8910,7 @@ static void values_to_expansiondlg(HWND hDlg) static INT_PTR CALLBACK ExpansionDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam) { int v; - TCHAR tmp[100]; + TCHAR tmp[256]; static int recursive = 0; static int enumerated; @@ -8925,19 +8924,21 @@ static INT_PTR CALLBACK ExpansionDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LP SendDlgItemMessage (hDlg, IDC_RTG_Z2Z3, CB_RESETCONTENT, 0, 0); SendDlgItemMessage (hDlg, IDC_RTG_Z2Z3, CB_ADDSTRING, 0, (LPARAM)_T("-")); - SendDlgItemMessage (hDlg, IDC_RTG_Z2Z3, CB_ADDSTRING, 0, (LPARAM)_T("UAE Zorro II")); - SendDlgItemMessage (hDlg, IDC_RTG_Z2Z3, CB_ADDSTRING, 0, (LPARAM)_T("UAE Zorro III (*)")); - SendDlgItemMessage (hDlg, IDC_RTG_Z2Z3, CB_ADDSTRING, 0, (LPARAM)_T("Picasso II Zorro II")); - SendDlgItemMessage (hDlg, IDC_RTG_Z2Z3, CB_ADDSTRING, 0, (LPARAM)_T("Picasso II+ Zorro II")); - SendDlgItemMessage (hDlg, IDC_RTG_Z2Z3, CB_ADDSTRING, 0, (LPARAM)_T("Piccolo Zorro II")); - SendDlgItemMessage (hDlg, IDC_RTG_Z2Z3, CB_ADDSTRING, 0, (LPARAM)_T("Piccolo Zorro III")); - SendDlgItemMessage (hDlg, IDC_RTG_Z2Z3, CB_ADDSTRING, 0, (LPARAM)_T("Piccolo SD64 Zorro II")); - SendDlgItemMessage (hDlg, IDC_RTG_Z2Z3, CB_ADDSTRING, 0, (LPARAM)_T("Piccolo SD64 Zorro III")); - SendDlgItemMessage (hDlg, IDC_RTG_Z2Z3, CB_ADDSTRING, 0, (LPARAM)_T("EGS-28/24 Spectrum Zorro II")); - SendDlgItemMessage (hDlg, IDC_RTG_Z2Z3, CB_ADDSTRING, 0, (LPARAM)_T("EGS-28/24 Spectrum Zorro III")); - SendDlgItemMessage (hDlg, IDC_RTG_Z2Z3, CB_ADDSTRING, 0, (LPARAM)_T("Picasso IV Zorro II")); - SendDlgItemMessage(hDlg, IDC_RTG_Z2Z3, CB_ADDSTRING, 0, (LPARAM)_T("Picasso IV Zorro III")); - SendDlgItemMessage(hDlg, IDC_RTG_Z2Z3, CB_ADDSTRING, 0, (LPARAM)_T("A2410")); + v = 0; + for (;;) { + const TCHAR *n1 = gfxboard_get_name(v); + const TCHAR *n2 = gfxboard_get_manufacturername(v); + if (!n1 && !n2) + break; + v++; + _tcscpy(tmp, n1); + if (n2) { + _tcscat(tmp, _T(" (")); + _tcscat(tmp, n2); + _tcscat(tmp, _T(")")); + } + SendDlgItemMessage (hDlg, IDC_RTG_Z2Z3, CB_ADDSTRING, 0, (LPARAM)tmp); + } WIN32GUI_LoadUIString(IDS_ALL, tmp, sizeof tmp / sizeof (TCHAR)); SendDlgItemMessage (hDlg, IDC_RTG_8BIT, CB_RESETCONTENT, 0, 0); @@ -8964,7 +8965,7 @@ static INT_PTR CALLBACK ExpansionDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LP SendDlgItemMessage (hDlg, IDC_RTG_32BIT, CB_ADDSTRING, 0, (LPARAM)_T("A8B8G8R8")); SendDlgItemMessage (hDlg, IDC_RTG_32BIT, CB_ADDSTRING, 0, (LPARAM)_T("R8G8B8A8")); SendDlgItemMessage (hDlg, IDC_RTG_32BIT, CB_ADDSTRING, 0, (LPARAM)_T("B8G8R8A8 (*)")); - SendDlgItemMessage (hDlg, IDC_P96MEM, TBM_SETRANGE, TRUE, MAKELONG (MIN_P96_MEM, gfxboard_is_z3 (workprefs.rtgmem_type) ? MAX_P96_MEM_Z3 : MAX_P96_MEM_Z2)); + SendDlgItemMessage (hDlg, IDC_P96MEM, TBM_SETRANGE, TRUE, MAKELONG (MIN_P96_MEM, gfxboard_get_configtype(workprefs.rtgmem_type) == 3 ? MAX_P96_MEM_Z3 : MAX_P96_MEM_Z2)); SendDlgItemMessage (hDlg, IDC_RTG_SCALE_ASPECTRATIO, CB_RESETCONTENT, 0, 0); WIN32GUI_LoadUIString (IDS_DISABLED, tmp, sizeof tmp / sizeof (TCHAR)); SendDlgItemMessage (hDlg, IDC_RTG_SCALE_ASPECTRATIO, CB_ADDSTRING, 0, (LPARAM)tmp); diff --git a/od-win32/winuaechangelog.txt b/od-win32/winuaechangelog.txt index 156d1ad6..56c61c61 100644 --- a/od-win32/winuaechangelog.txt +++ b/od-win32/winuaechangelog.txt @@ -1,4 +1,148 @@ +Beta 2: + +- Borderblanking works again (b1) +- RTL8029 received packets got sometimes stuck in receive buffer until next packet was received. +- Fixed PCI bridge unreliable interrupts in some situations. +- Added Mainhattan Data Paradox SCSI emulation. +- Added Spirit Technology HDA-506 HD controller. +- Added Elaborate Bytes A.L.F. HD controller. +- Built-in wave recording created huge files, bytes-to-write variable was never reset (3.1). +- Added Mediator 1200 autoconfig data. +- Added support for multi-function PCI devices. +- Added ES1370 from QEMU. (PCI sound card), common ES1370 based card is SB128. +- Added FM801 emulation. (PCI sound card). +- Added Vortex System 2000 HD controller. +- A2410 display card emulation! TMS34010 emulation core from MAME. + +A2410 notes: +- Very strange display board.. Very flexible TMS34010 CPU on board, code uploaded to internal + RAM from Amiga-side. Unfortunately board never had good software support. +- Current WinUAE direct RTG system requires Amiga-side mapped VRAM, but because A2410 + does not have any linear mapped Amiga-visible VRAM, A2410 internal VRAM is "fake" mapped at 0xa00000 + (normally unused CIA space). It shouldn't cause any problems. +- Interlaced modes are not supported (Original code didn't support it all, I added quick hack + that doubles height in interlaced modes), either CGX4 driver is wrong or TMS34010 documentation + is wrong, documentation says "The size of the DUDATE increment specified for an interlaced display + should be twice that required for a noninterlaced display of the same dimensions" but CGX4 driver + uses same width value in both interlaced and non-interlaced 1024*768 mode. +- BT458 RAMDAC Overlay bitplanes fully emulated, including blinking features. +- CGX4, Amix, NetBSD console and demo programs from DevCD (Milan 1991 DevCon) confirmed working. +- END+F9 can be used to manually switch between native and A2410 display. +- CGX4 driver seems to have bug in overlay (mouse pointer) color setup routine. +- Emulated Amiga randomly hangs when switching CGX display modes. Reason unknown. +- TMS34010 CPU execution speed is probably totally wrong and very random. +- Because TMS34010 can update any register or RAM data any time it wants (like copper but more flexible), + emulation needs to be at least line-based (not frame like other RTG boards) and because emulation + also needs to execute TMS34010 code, A2410 emulation is slower than other RTG boards. +- A2410 has DMA and hardware byte swap circuitry (can be seen in schematics) but so far I haven't found + programs that use it. (A2410 DMA = TMS34010 CPU can directly access Amiga address space). +- Must use 32-bit host display depth. 16-bit is not supported. + +Mainhattan Data Paradox SCSI: +- Parallel port to SCSI adapter. +- Non autoboot. +- Make sure no other parallel port devices are enabled at the same time. + +Spirit Technology HDA-506: +- Supports autoboot but it is not implemented, ROM dump not available. +- OMTI controller, uses early SCSI-like protocol but addressing uses CHS instead of LBA. + +Elaborate Bytes A.L.F.: +- Non autoboot. +- MFM/RLL controller. +- Same protocol as HDA-506 but there can be differences in some commands. + +Vortex System 2000: +- Supports autoboot but ROM image is not available. +- Non autoconfig, ROM and IO hardwired at 0xf00000. +- Again same protocol as HDA-506. +- Fake DMA, 2xword data port size. Some sites incorrectly lists it as a DMA controller. + +Beta 1: + +- Emulated sprite undocumented special case, sprite start hpos from 2 to 9 will be visible at the + very far right overscan border of display. +- WinPCap network mode didn't detect any devices (broken some time ago) +- ROM type configuration for expansion sub devices. SupraDrive A2000 DMA does not anymore list + incompatible AMABx ROMs. (A2000 DMA model ROM is still MIA) +- Improved SCSI/IDE controller init log messages. +- Fastlane and Z3 RAM configured: use Fastlane Z3 RAM autoconfig data. +- Handle recursive default_xlate() calls, can happen if autoconfig mapping is really bad. +- Accelerator with GVP Series II SCSI controller + GVP Series II SCSI expansion controller combination + didn't work. +- Accelerators that include autoconfig RAM (Only GVP A530 currently) now include matching RAM autoconfig + parameter data. +- WASAPI audio init may have caused crash if some WASAPI query functions returned error code. +- Implemented support framework for PCI bridges. +- dm debugger command shows PCI bridges and PCI boards. +- Added DKB Wildfire accelerator board. +- Check and halt if any illegal autoconfig remap is done. (Instead of causing pointless reset loop) +- Added support for ECS Denise genlock features. (Did any program ever use ECS genlock features?) +- Expansions boards without ROM now have simple enable/disable checkbox. +- PCI Realtek 8029 added from QEMU (NE2000 clone), automatically connected to any enabled PCI bridge. +- Moved accelerator and expansion board GUI items to new Expansions panel. Old Expansion panel + is now RTG settings only panel. +- More 68030 data cache emulation fixes. +- Added generic SASI (SCSI predecessor) controller emulation and SASI HD GUI selection. +- Added Tecmar T-Card/T-Disk expansion/SASI HD controller. +- Added Xebec 9720H HD controller. +- Audio period modulation with zero period value stopped modulated channel. +- Blizzard 1230IV default ROM was incorrect. +- If no physical/virtual CD drives available and image drive was not manually selected: + automatically select empty image drive. Previously emulated drive was removed. +- Blizzard SCSI Kit IV configuration weirdness fixed, old config is not compatible anymore. +- SSE2 capable CPU is now required. +- If you use WINE, 1.7.44 or newer required. +- Files are now 7zip compressed. + +New Most Pointless Feature Ever: +- Genlock emulation can now replace transparent pixels with noise pattern or static image. +- Implements also ECS new genlock features (I still think there is no software that uses them..) +- Transparency control. + +DKB Wildfire: +- Interesting design, SCSI and ethernet chips are connected to internal PCI bus that boot ROM + initializes. (Reason why PCI bridge emulation had to exist first) +- SCSI is emulated, uses same QEMU 53c895 emulation as CSPPC. +- Ethernet is not emulated. +- Boot ROM is stored in 2*32k parallel EEPROM chips. Wildfire flash update program supported but + but modified data is not saved back to rom image file. +- ROM image is from install disk. +- Boot menu (keep right mouse button pressed while booting) options are not yet saved to file, + it looks like it is saved to 3rd(!) Flash/EEPROM chip via 53C815 built-in ROM support circuitry. + High resolution image of the board is needed. +- Board config space ($ffff0000) bits are not emulated, except 68000 mode which only halts the + emulation. + +PCI bridges: +- Wildfire with 53C815 chip connected to first internal PCI slot. +- Prometheus. +- G-REX. NOTE: only supported by latest 44.71 CSPPC/BPPC boot ROM. +- Mediator 1200TX and 4000MK2. (If you have other model, please contact me) +- Only 53C815 (Wildfire only) and Realtek 8029 PCI devices implemented so far. + +Try not to ask non-emulation related PCI bridge questions (like which driver to use, where to find +them, how to install them, how to configure 8029 driver and so on..), thanks. + +Tecmar T-Card/T-Disk: +- The very first Amiga harddrive controller. +- No autoboot, no automount, no RDB. +- KS 1.0 and 1.1 compatible, possibly also earlier version. Not KS 1.2+ compatible. +- SASI controller, make sure SASI drive type is selected. +- Implements old style autoconfig that was documented in first HRM revision, Appendix_G, + Disk based autoconfig driver ("xbus.resource"). Not compatible with KS 1.2+ ROM based + expansion.device. Possibly the only released hardware with old style autoconfig. +- Memory board emulated (Use second fast ram slider, autoconfig must be disabled). +- Clock emulated. + +Xebec 9720H: +- Another very early Amiga harddrive controller. +- No autoboot, no automount, no RDB, SASI. +- Not autoconfig, hardwired at $600000. +- 5380 based, on-board 16k SRAM, 5380<>SRAM DMA. SRAM<>CPU PIO. + + 3.1.0 - Unticked "Game controllers disabled" works now in DirectInput mode.