]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
4500b16
authorToni Wilen <twilen@winuae.net>
Sat, 23 Jan 2021 14:05:07 +0000 (16:05 +0200)
committerToni Wilen <twilen@winuae.net>
Sat, 23 Jan 2021 14:05:07 +0000 (16:05 +0200)
debug.cpp
gfxboard.cpp
memory.cpp
newcpu.cpp
od-win32/gencpu_msvc/gencpu_msvc.vcxproj
od-win32/win32.h
od-win32/win32gui.cpp
od-win32/winuaechangelog.txt

index 5a596326397d47bab0de9f8c9406776e0e653f58..249571c178104df8559bab3dd3819fa4b17abcbc 100644 (file)
--- a/debug.cpp
+++ b/debug.cpp
@@ -114,16 +114,16 @@ void activate_debugger (void)
        if (isfullscreen() > 0)
                return;
 
-       if (debugger_active) {
-               // already in debugger but some break point triggered
-               // during disassembly etc..
-               return;
-       }
        debugger_load_libraries();
 
        inside_debugger = 1;
        debug_pc = 0xffffffff;
        trace_mode = 0;
+       if (debugger_active) {
+               // already in debugger but some break point triggered
+               // during disassembly etc..
+               return;
+       }
        debug_cycles();
        debugger_active = 1;
        set_special (SPCFLAG_BRK);
index c1b17de0ce139d0cf5837c3031e840bac1af64cd..b8540981916f6ef89c59f34719dd5d16bd39fee9 100644 (file)
@@ -3857,6 +3857,7 @@ static int s3virgeaddr(struct pci_board_state *pcibs, uaecptr *addrp)
        } else if (addr >= pcibs->bar[0] + 0x00000000 && addr < pcibs->bar[0] + 0x01000000) {
                // LFB LE
                addr = ((addr - pcibs->bar[0]) & 0x3fffff) + pcibs->bar[0];
+               swap = -2;
        } else if (addr >= pcibs->bar[0] + 0x01000000 && addr < pcibs->bar[0] + 0x02000000) {
                // MMIO LE
                addr = ((addr - pcibs->bar[0]) & 0xffff) + pcibs->bar[0] + 0x01000000;
@@ -3871,7 +3872,7 @@ static void REGPARAM2 s3virge_mb0_lput(struct pci_board_state *pcibs, uaecptr ad
        if (swap > 0) {
                if (swap == 1)
                        b = do_byteswap_32(b);
-       } else if (swap < 0) {
+       } else if (swap == -1) {
                struct rtggfxboard *gb = getgfxboard(addr);
                int m = gb->lfbbyteswapmode;
                switch (m)
@@ -3884,6 +3885,8 @@ static void REGPARAM2 s3virge_mb0_lput(struct pci_board_state *pcibs, uaecptr ad
                        b = (b >> 16) | (b << 16);
                        break;
                }
+       } else if (swap < -1) {
+
        }
        put_mem_pcem(addr, b, 2);
 }
@@ -3893,7 +3896,7 @@ static void REGPARAM2 s3virge_mb0_wput(struct pci_board_state *pcibs, uaecptr ad
        if (swap > 0) {
                if (swap == 1)
                        b = do_byteswap_16(b);
-       } else if (swap < 0) {
+       } else if (swap <= -1) {
                struct rtggfxboard *gb = getgfxboard(addr);
                int m = gb->lfbbyteswapmode;
                switch (m)
@@ -3905,6 +3908,8 @@ static void REGPARAM2 s3virge_mb0_wput(struct pci_board_state *pcibs, uaecptr ad
                        b = do_byteswap_16(b);
                        break;
                }
+       } else if (swap < -1) {
+
        }
        put_mem_pcem(addr, b, 1);
 }
@@ -3920,7 +3925,7 @@ static uae_u32 REGPARAM2 s3virge_mb0_lget(struct pci_board_state *pcibs, uaecptr
        if (swap > 0) {
                if (swap == 1)
                        v = do_byteswap_32(v);
-       } else if (swap < 0) {
+       } else if (swap == -1) {
                struct rtggfxboard *gb = getgfxboard(addr);
                int m = gb->lfbbyteswapmode;
                switch (m)
@@ -3933,6 +3938,8 @@ static uae_u32 REGPARAM2 s3virge_mb0_lget(struct pci_board_state *pcibs, uaecptr
                        v = do_byteswap_32(v);
                        break;
                }
+       } else if (swap < -1) {
+
        }
        return v;
 }
@@ -3943,7 +3950,7 @@ static uae_u32 REGPARAM2 s3virge_mb0_wget(struct pci_board_state *pcibs, uaecptr
        if (swap > 0) {
                if (swap == 1)
                        v = do_byteswap_16(v);
-       } else if (swap < 0) {
+       } else if (swap == -1) {
                struct rtggfxboard *gb = getgfxboard(addr);
                int m = gb->lfbbyteswapmode;
                switch (m)
@@ -3955,7 +3962,10 @@ static uae_u32 REGPARAM2 s3virge_mb0_wget(struct pci_board_state *pcibs, uaecptr
                        v = do_byteswap_16(v);
                        break;
                }
-       }       return v;
+       } else if (swap < -1) {
+
+       }
+       return v;
 }
 static uae_u32 REGPARAM2 s3virge_mb0_bget(struct pci_board_state *pcibs, uaecptr addr)
 {
index dee6e0c0741068d9f0ef12414f1fb2260faf778b..3a4c26ac93aa633a1d0657c77d99de46f76dff37 100644 (file)
@@ -1143,7 +1143,8 @@ uae_u8 *REGPARAM2 default_xlate (uaecptr addr)
                                        }
                                        write_log (_T("\n"));
                                }
-                               memory_map_dump ();
+                               memory_map_dump();
+                               m68k_dumpstate(NULL, 0xffffffff);
                        }
                        if (0 || (gary_toenb && (gary_nonrange(addr) || (size > 1 && gary_nonrange(addr + size - 1))))) {
                                hardware_exception2(addr, 0, true, true, size);
@@ -2017,7 +2018,7 @@ static void add_shmmaps (uae_u32 start, addrbank *what)
        shm_start = y;
 }
 
-#define MAPPED_MALLOC_DEBUG 0
+#define MAPPED_MALLOC_DEBUG 1
 
 bool mapped_malloc (addrbank *ab)
 {
index f6164ab46446131c22de5b0cc81f9884d05c77cb..f453f59891c764c87d327d212d1f6e0d7536a2c3 100644 (file)
@@ -3644,8 +3644,8 @@ static void m68k_reset_restore(void)
 void REGPARAM2 op_unimpl (uae_u32 opcode)
 {
        static int warned;
-       if (warned < 20) {
-               write_log (_T("68060 unimplemented opcode %04X, PC=%08x\n"), opcode, regs.instruction_pc);
+       if (warned < 1000) {
+               write_log (_T("68060 unimplemented opcode %04X, PC=%08x SP=%08x\n"), opcode, regs.instruction_pc, regs.regs[15]);
                warned++;
        }
        ExceptionL (61, regs.instruction_pc);
index f8b0186652338ede62ed210194ee207916503a13..14cdee663adab8ac45789352cabc7d85b96dbfd7 100644 (file)
@@ -21,7 +21,7 @@
   <PropertyGroup Label="Globals">
     <ProjectName>gencpu</ProjectName>
     <ProjectGuid>{DEF7ACF7-050E-4069-BB99-5B5D93F60521}</ProjectGuid>
-    <WindowsTargetPlatformVersion>10.0.18362.0</WindowsTargetPlatformVersion>
+    <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'" Label="Configuration">
index f7c9fa16fc3be09da2ea465fdae7b76a511a0a30..6b1113a96bbbfdc5e198eab42662be439155cedc 100644 (file)
 #define LANG_DLL_FULL_VERSION_MATCH 1
 
 #if WINUAEPUBLICBETA
-#define WINUAEBETA _T("Beta 15")
+#define WINUAEBETA _T("Beta 16")
 #else
 #define WINUAEBETA _T("")
 #endif
 
-#define WINUAEDATE MAKEBD(2021, 1, 9)
+#define WINUAEDATE MAKEBD(2021, 1, 23)
 
 //#define WINUAEEXTRA _T("AmiKit Preview")
 //#define WINUAEEXTRA _T("Amiga Forever Edition")
index 15f2c74715ec53fdd3bdd0c14691c55240b5e2e3..b5ffdddb7db292d883cc98602b8927e29352d411 100644 (file)
@@ -1882,63 +1882,7 @@ static void show_rom_list (void)
                9, 10, -1, 107, 108, -1, -1, // CDTV-CR
                49, 50, 75, 51, 76, 77, -1, 5, 4, -1, -2, // ARCADIA
 
-               53, 54, 55, 56, -1, -1, // A590/A2091
-               57, 58, -1, -1, // A4091
-               174, -1, -1, // a-team
-               132, -1, -1, // add500
-               129, 141, -1, -1, // adide
-               133, -1, -1, // adscsi
-               117, -1, -1, // alf
-               118, -1, -1, // alf+
-               200, -1, -1, // comspec
-               102, -1, -1, // Fastlane
-               111, -1, -1, // GVP Series I
-               109, 110, -1, -1, // GVP Series II
-               173, -1, -1, // hardframe
-               127, 140, -1, -1, // kommos
-               124, -1, -1, // kupke golem
-               157, -1, -1, // golem fast
-               201, -1, -1, // malibu
-               130, 199, -1, -1, // m-tec
-               120, -1, -1, // masoboshi
-               156, -1, -1, // multi evolution
-               139, -1, -1, // nexus
-               103, -1, -1, // Oktagon
-               131, -1, -1, // protar
-               207, -1,-1, // Rapidfire
-               138, 146, -1, -1, // roctec
-               121, 134, 135, 136, -1, -1, // supradrive
-               161, -1, -1, // trumpcard pro
-               128, -1, -2, // vector falcon
-
                18, -1, 19, -1, 74, 23, -1, -1,  // CD32 FMV
-               91, -1, -2, // Picasso IV
-
-               105, 106, -1, -1, // A2630
-               119, -1, -1, // Apollo 1240/1260
-               110, -1, -1, // GVP A530
-               110, -1, -1, // GVP G-Force 030
-               114, -1, -1, // A3001
-               126, -1, -1, // Golem 030
-               144, -1, -1, // E-Matrix 530
-               163, -1, -1, // 1230-II
-               162, -1, -1, // 1230-III
-               89, -1, -1, // 1230-IV
-               162, -1, 167, -1, -1, // 1230-III SCSI
-               89, -1, 94, -1, -1, // 1230-IV SCSI
-               90, -1, -1, // 1260
-               90, -1, 94, -1, -1, // 1260 SCSI
-               92, -1, -1, // 2060
-               93, -1, -1, // Warp Engine
-               105, -1, -1, // TekMagic
-               112, -1, -1, // DKB 12x0
-               143, -1, -1, // DKB WildFire
-               113, -1, -1, // Fusion Forty
-               95, 101, -1, -1, // CS MK I
-               96, -1, -1, // CS MK II
-               97, -1, -1, // CS MK III
-               99, 100, -1, -1, // BPPC
-               98, -1 ,-2, // CSPPC
 
                69, 67, 70, 115, -1, -1, // nordic power
                65, 68, -1, -1, // x-power
@@ -1954,70 +1898,11 @@ static void show_rom_list (void)
 
        p1 = _T("A500 Boot ROM 1.2\0A500 Boot ROM 1.3\0A500+\0A600\0A1000\0A1200\0A3000\0A4000\0A4000T\0")
                _T("CD32\0CDTV\0CDTV-CR\0Arcadia Multi Select\0")
-
-               _T("A590/A2091 SCSI/XT\0")
-               _T("A4091 SCSI\0")
-               _T("Mainhattan A-Team IDE\0")
-               _T("Archos ADD-500\0")
-               _T("AdIDE\0")
-               _T("AdSCSI\0")
-               _T("AlfaPower/AT-BUS 508/2008 SCSI\0")
-               _T("AlfaPower Plus SCSI\0")
-               _T("Comspec SA-1000 SCSI\0")
-               _T("Fastlane SCSI\0")
-               _T("GVP Series I SCSI\0")
-               _T("GVP Series II SCSI\0")
-               _T("Microbotics HardFrame SCSI\0")
-               _T("Kommos A500/A2000 SCSI\0")
-               _T("Golem SCSI\0")
-               _T("Golem Fast SCSI/IDE\0")
-               _T("Malibu SCSI\0")
-               _T("M-Tec AT500/Megabody IDE\0")
-               _T("Masoboshi MC-302/MC-702 IDE/SCSI\0")
-               _T("Multi Evolution SCSI\0")
-               _T("Preferred Technologies Nexus\0")
-               _T("Oktagon 2008 SCSI\0")
-               _T("Protar A500HD SCSI\0")
-               _T("DKB RapidFire SCSI\0")
-               _T("Roctec RH800C\0")
-               _T("SupraDrive SCSI\0")
-               _T("IVS Trumpcard Pro/GrandSlam\0")
-               _T("Vector Falcon 8000 SCSI\0")
-
                _T("CD32 Full Motion Video\0")
-               _T("Picasso IV\0")
-
-               _T("A2620/A2630\0")
-               _T("Apollo 1240/1260+SCSI\0")
-               _T("GVP A530\0")
-               _T("GVP G-FORCE 030\0")
-               _T("GVP A3001 Series I\0")
-               _T("Kupke Golem 030\0")
-               _T("M-Tec E-Matrix 530\0")
-               _T("Blizzard 1230-II\0")
-               _T("Blizzard 1230-III\0")
-               _T("Blizzard 1230-IV\0")
-               _T("Blizzard 1260\0")
-               _T("Blizzard 1230-III/SCSI\0")
-               _T("Blizzard 1230-IV/SCSI\0")
-               _T("Blizzard 1260/SCSI\0")
-               _T("Blizzard 2060\0")
-               _T("Warp Engine\0")
-               _T("TekMagic 2040/2060\0")
-               _T("DKB 1230/1240\0")
-               _T("DKB WildFire\0")
-               _T("Fusion Forty\0")
-               _T("CyberStorm MK I\0")
-               _T("CyberStorm MK II\0")
-               _T("CyberStorm MK III\0")
-               _T("Blizzard PPC\0")
-               _T("CyberStorm PPC\0")
-               
                _T("Nordic Power\0X-Power Professional 500\0Action Cartridge Super IV Professional\0")
                _T("Pro Access\0")
                _T("Action Replay MK I\0Action Replay MK II\0Action Replay MK III\0")
                _T("Action Replay 1200\0")
-               
                _T("\0");
 
        p = xmalloc (TCHAR, 100000);
index 2b87a058a4ee992dfbac16bc7840bae31a86e2be..358adea156fbba51e9df5dcfe50d40e9c6059afe 100644 (file)
@@ -1,4 +1,18 @@
 
+Beta 16:
+
+- Hard reset leaked indirect mode allocated memory banks (outside of JIT compatible address range), for example Z3 RAM outside of partially outside of first ~2G of address space.
+- GUI misc list powerled dims option never worked, option was always cleared. (Only manual config file editing worked)
+- fi debugger command now accepts assembly syntax (for example "fi trap #0"). Only max first 3 words (if it is longer than 3 words) are used in breakpoint condition.
+- CPU% OSD leading zero removed.
+- "Blacker than black" display panel option did nothing in non-AGA modes.
+- 68060 unimplemented integer instruction mode + unimplemented instruction with -(A7)/(A7)+ addressing mode in user mode: exception stack frame was created first, then -(A7)/(A7)+ modification was incorrectly restored using supervisor stack pointer.
+- 68040/060 unimplemented FPU instructions also update FPIAR. Some invalid instructions don't but this seems to be undefined behavior. 6888x only update FPIAR if FPU exception(s) are enabled.
+- 68040/060 unimplemented FPU mode arithmetic exception fixes, all 68060 FPSP test package tests now pass. (and when run using 68040 or 6888x: test errors will match real hardware 100%)
+- Fixed FMOVEM.L #xxx,<more than one control register> disassembly.
+- Windowed mode status bar height is correctly calculated when window is moved to different DPI monitor.
+- Removed ROM scan expansion device result list. It is out of date and code was almost unmaintainable.
+- Hopefully last blitter update related fix, copper blitter waits should work correcly again. (This is a hack. Copper emulation also needs an update.)
 
 Beta 15:
 
@@ -10,6 +24,7 @@ Beta 15:
 - Aranym JIT update missed move from FPU register to data register clamping (for example FPn -150.0 to Dn.B should become -128). Re-added.
 - Fixed FPU instruction JIT blacklist support.
 - Combitec HD 20 A/HD 40 A (not 100% sure it is exactly this model but very likely) emulation.
+- Another blitter/copper timing bug fix. (b12)
 
 Combitec HD 20 A/HD 40 A:
 - OMTI compatible HD controller. Usual OMTI IO offset 0x641. Base address is at $800000 + autoboot ROM at $f00000.
@@ -17,7 +32,6 @@ Combitec HD 20 A/HD 40 A:
 - Boot ROM version string: "autoboot.device (autoboot.device 6.18 (27.8.89) , Rom_1.2, FFS, Bildchen, Search, New Boot Partition Programmiert von Bernhard Möllemann & Hartmut Sprave (C) Combitec 1988,1989"
 - Boot screen ("COMPUTER TOP EQUIPMENT COLOSSUS(R) HD-AutoBoot")
 
-
 Beta 14:
 
 - Fixed possible out of bounds array access when virtual mouse driver is installed.