]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
3200b2
authorToni Wilen <twilen@winuae.net>
Tue, 7 Jul 2015 17:25:09 +0000 (20:25 +0300)
committerToni Wilen <twilen@winuae.net>
Tue, 7 Jul 2015 17:25:09 +0000 (20:25 +0300)
mame/a2410.cpp
mame/tm34010/34010gfx.c
mame/tm34010/tms34010.cpp
od-win32/parser.cpp
od-win32/resources/winuae.rc
od-win32/win32.h
od-win32/win32gui.cpp
od-win32/winuaechangelog.txt

index ef840c11d85976d46eb06ef1897249caa27a2082..48dc1369688c93539c3b823b6f784e87a58634e9 100644 (file)
@@ -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);
index d0d4801bef42573c4f9a6a22a0748eda0a59334b..4acb98fa2c8009a37c1b8bb1a13dcdda847ee558 100644 (file)
@@ -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)
 
 
index 683b8bf7af1b4f02a116c06ad6b482a30d96f1e2..3ba8102ac8b90046c8b6fe579f5cde23841bc851 100644 (file)
@@ -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)
 
index 3fcf3f4ab5d3270db1a94ba8557516543ff51f5f..7de113727c076d54933ff8054adb5f26888298c7 100644 (file)
@@ -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];
index 5d4638166a17b342e7d60bc49aeeb2273c8d996b..8e525c871640eab193442f5dd84e22c6fa14a86b 100644 (file)
@@ -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,
index 00e420be838fc41a717fcefe573bb3f5a73c3444..20ecf6dad0961f2db5f0a79297739d2539719bb7 100644 (file)
 #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")
index a0bb29d8f6265afebab6376dadefc4331488dafc..ed6742f4006e086f66e14cd6bf5785ab30ddd192 100644 (file)
@@ -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);
index 156d1ad66095e78662a299ef382838f623924790..56c61c6175c53f7b3d74e0ced79391ec13151eed 100644 (file)
@@ -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.