From ef51b5eec65105c254664e4e6464da7b9baaff5f Mon Sep 17 00:00:00 2001 From: Dimitris Panokostas Date: Sun, 2 Apr 2017 15:23:38 +0200 Subject: [PATCH 1/3] Fixed Picasso96 modes should always scale using "linear" mode --- src/osdep/amiberry_gfx.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/osdep/amiberry_gfx.cpp b/src/osdep/amiberry_gfx.cpp index b870a745..fdfc719e 100644 --- a/src/osdep/amiberry_gfx.cpp +++ b/src/osdep/amiberry_gfx.cpp @@ -131,6 +131,7 @@ static void open_screen(struct uae_prefs* p) { width = picasso_vidinfo.width; height = picasso_vidinfo.height; + SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "linear"); // we always use linear for Picasso96 modes } else #endif From 0b6fc80b200e1a8b906e46563ee6f1bbbf456ad7 Mon Sep 17 00:00:00 2001 From: Dimitris Panokostas Date: Wed, 5 Apr 2017 00:26:08 +0200 Subject: [PATCH 2/3] Fixed compiler warnings (and suppressed write-strings related ones) --- Makefile | 2 +- VisualGDB/Amiberry/Amiberry.vcxproj | 32 +++++----- src/cfgfile.cpp | 2 +- src/include/zarchive.h | 29 +++++---- src/jit/compemu_support.cpp | 28 --------- src/osdep/amiberry_gfx.h | 1 + src/osdep/picasso96.cpp | 2 +- src/osdep/sigsegv_handler.cpp | 92 +++-------------------------- src/zfile_archive.cpp | 45 +++++++------- 9 files changed, 68 insertions(+), 165 deletions(-) diff --git a/Makefile b/Makefile index 31857f5e..748b344d 100644 --- a/Makefile +++ b/Makefile @@ -44,7 +44,7 @@ LDFLAGS += -lpthread -lm -lz -lpng -lrt -lxml2 -lFLAC -lmpg123 -ldl -lprofiler - LDFLAGS += -lSDL2 -lSDL2_image -lSDL2_ttf -lguisan -L/opt/vc/lib -Lsrc/guisan/lib ifndef DEBUG -MORE_CFLAGS += -Ofast -pipe +MORE_CFLAGS += -Ofast -pipe -Wno-write-strings else MORE_CFLAGS += -g -DDEBUG -Wl,--export-dynamic diff --git a/VisualGDB/Amiberry/Amiberry.vcxproj b/VisualGDB/Amiberry/Amiberry.vcxproj index 05a76900..b4c28b7c 100644 --- a/VisualGDB/Amiberry/Amiberry.vcxproj +++ b/VisualGDB/Amiberry/Amiberry.vcxproj @@ -48,29 +48,29 @@ GNUPP14 - C:\SysGCC\raspberry\lib\gcc\arm-linux-gnueabihf\4.9\include;C:\SysGCC\raspberry\arm-linux-gnueabihf\include\c++\4.9;C:\SysGCC\raspberry\arm-linux-gnueabihf\include;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\usr\include;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\opt\vc\include;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\opt\vc\include\interface\vmcs_host\linux;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\opt\vc\include\interface\vcos\pthreads;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\usr\local\include;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\usr\local\include\SDL2;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\usr\include\libxml2;../../src;../../src/include;../../src/osdep;../../src/threaddep;../../src/guisan/include;=/opt/vc/include;=/opt/vc/include/interface/vmcs_host/linux;=/opt/vc/include/interface/vcos/pthreads;=/usr/local/include;=/usr/local/include/SDL2;=/usr/include/libxml2;%(ClCompile.AdditionalIncludeDirectories) + C:\SysGCC\raspberry\lib\gcc\arm-linux-gnueabihf\4.9\include;C:\SysGCC\raspberry\arm-linux-gnueabihf\include\c++\4.9;C:\SysGCC\raspberry\arm-linux-gnueabihf\include;../../src;../../src/include;../../src/osdep;../../src/threaddep;../../src/guisan/include;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\opt\vc\include;=/opt/vc/include;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\opt\vc\include\interface\vmcs_host\linux;=/opt/vc/include/interface/vmcs_host/linux;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\opt\vc\include\interface\vcos\pthreads;=/opt/vc/include/interface/vcos/pthreads;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\usr\include;=/usr/include;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\usr\include\SDL2;=/usr/include/SDL2;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\usr\include\libxml2;=/usr/include/libxml2;%(ClCompile.AdditionalIncludeDirectories) DEBUG=1;_REENTRANT;CAPSLOCK_DEBIAN_WORKAROUND;ARMV6T2;USE_ARMNEON;ARMV6_ASSEMBLY;AMIBERRY;USE_SDL;CPU_arm;ROM_PATH_PREFIX=\"./\";DATA_PREFIX=\"./data/\";SAVE_PREFIX=\"./saves/\";GCCCONSTFUNC="__attribute__((const))";%(ClCompile.PreprocessorDefinitions) - -march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard -pipe %(AdditionalOptions) + -march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard -pipe -Wno-write-strings %(AdditionalOptions) - -Wl,-gc-sections,-rpath,/usr/local/lib;%(Link.AdditionalLinkerInputs) - ../../src/guisan/lib;=/opt/vc/lib;=/usr/local/lib;%(Link.LibrarySearchDirectories) + ../../src/guisan/lib;=/opt/vc/lib;=/usr/lib/arm-linux-gnueabihf;%(Link.LibrarySearchDirectories) SDL2;SDL2_image;SDL2_ttf;pthread;m;z;png;rt;xml2;FLAC;mpg123;dl;guisan;profiler;tcmalloc;%(Link.AdditionalLibraryNames) + -Wl,-gc-sections;%(Link.AdditionalLinkerInputs) GNUPP14 - C:\SysGCC\raspberry\lib\gcc\arm-linux-gnueabihf\4.9\include;C:\SysGCC\raspberry\arm-linux-gnueabihf\include\c++\4.9;C:\SysGCC\raspberry\arm-linux-gnueabihf\include;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\usr\include;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\opt\vc\include;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\opt\vc\include\interface\vmcs_host\linux;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\opt\vc\include\interface\vcos\pthreads;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\usr\local\include;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\usr\local\include\SDL2;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\usr\include\libxml2;../../src;../../src/include;../../src/osdep;../../src/threaddep;../../src/guisan/include;=/opt/vc/include;=/opt/vc/include/interface/vmcs_host/linux;=/opt/vc/include/interface/vcos/pthreads;=/usr/local/include;=/usr/local/include/SDL2;=/usr/include/libxml2;%(ClCompile.AdditionalIncludeDirectories) + C:\SysGCC\raspberry\lib\gcc\arm-linux-gnueabihf\4.9\include;C:\SysGCC\raspberry\arm-linux-gnueabihf\include\c++\4.9;C:\SysGCC\raspberry\arm-linux-gnueabihf\include;../../src;../../src/include;../../src/osdep;../../src/threaddep;../../src/guisan/include;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\opt\vc\include;=/opt/vc/include;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\opt\vc\include\interface\vmcs_host\linux;=/opt/vc/include/interface/vmcs_host/linux;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\opt\vc\include\interface\vcos\pthreads;=/opt/vc/include/interface/vcos/pthreads;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\usr\include;=/usr/include;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\usr\include\SDL2;=/usr/include/SDL2;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\usr\include\libxml2;=/usr/include/libxml2;%(ClCompile.AdditionalIncludeDirectories) NDEBUG=1;RELEASE=1;_REENTRANT;CAPSLOCK_DEBIAN_WORKAROUND;ARMV6T2;USE_ARMNEON;ARMV6_ASSEMBLY;AMIBERRY;USE_SDL;CPU_arm;ROM_PATH_PREFIX=\"./\";DATA_PREFIX=\"./data/\";SAVE_PREFIX=\"./saves/\";GCCCONSTFUNC="__attribute__((const))";%(ClCompile.PreprocessorDefinitions) - -march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard -pipe -fweb %(AdditionalOptions) + -march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard -pipe -Wno-write-strings %(AdditionalOptions) true true - -Wl,-gc-sections,-rpath,/usr/local/lib;%(Link.AdditionalLinkerInputs) - ../../src/guisan/lib;=/opt/vc/lib;=/usr/local/lib;%(Link.LibrarySearchDirectories) + -Wl,-gc-sections;%(Link.AdditionalLinkerInputs) + ../../src/guisan/lib;=/opt/vc/lib;=/usr/lib/arm-linux-gnueabihf;%(Link.LibrarySearchDirectories) SDL2;SDL2_image;SDL2_ttf;pthread;m;z;png;rt;xml2;FLAC;mpg123;dl;guisan;profiler;tcmalloc;%(Link.AdditionalLibraryNames) @@ -80,15 +80,15 @@ GNUPP14 - C:\SysGCC\raspberry\lib\gcc\arm-linux-gnueabihf\4.9\include;C:\SysGCC\raspberry\arm-linux-gnueabihf\include\c++\4.9;C:\SysGCC\raspberry\arm-linux-gnueabihf\include;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\usr\include;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\opt\vc\include;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\opt\vc\include\interface\vmcs_host\linux;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\opt\vc\include\interface\vcos\pthreads;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\usr\local\include;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\usr\local\include\SDL2;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\usr\include\libxml2;../../src;../../src/include;../../src/osdep;../../src/threaddep;../../src/guisan/include;=/opt/vc/include;=/opt/vc/include/interface/vmcs_host/linux;=/opt/vc/include/interface/vcos/pthreads;=/usr/local/include;=/usr/local/include/SDL2;=/usr/include/libxml2;%(ClCompile.AdditionalIncludeDirectories) + C:\SysGCC\raspberry\lib\gcc\arm-linux-gnueabihf\4.9\include;C:\SysGCC\raspberry\arm-linux-gnueabihf\include\c++\4.9;C:\SysGCC\raspberry\arm-linux-gnueabihf\include;../../src;../../src/include;../../src/osdep;../../src/threaddep;../../src/guisan/include;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\opt\vc\include;=/opt/vc/include;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\opt\vc\include\interface\vmcs_host\linux;=/opt/vc/include/interface/vmcs_host/linux;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\opt\vc\include\interface\vcos\pthreads;=/opt/vc/include/interface/vcos/pthreads;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\usr\include;=/usr/include;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\usr\include\SDL2;=/usr/include/SDL2;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\usr\include\libxml2;=/usr/include/libxml2;%(ClCompile.AdditionalIncludeDirectories) NDEBUG=1;RELEASE=1;_REENTRANT;CAPSLOCK_DEBIAN_WORKAROUND;ARMV6T2;USE_ARMNEON;ARMV6_ASSEMBLY;AMIBERRY;USE_SDL;CPU_arm;ROM_PATH_PREFIX=\"./\";DATA_PREFIX=\"./data/\";SAVE_PREFIX=\"./saves/\";GCCCONSTFUNC="__attribute__((const))";%(ClCompile.PreprocessorDefinitions) - -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -pipe -fweb %(AdditionalOptions) + -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -pipe -Wno-write-strings %(AdditionalOptions) true true - -Wl,-gc-sections,-rpath,/usr/local/lib;%(Link.AdditionalLinkerInputs) - ../../src/guisan/lib;=/opt/vc/lib;=/usr/local/lib;%(Link.LibrarySearchDirectories) + -Wl,-gc-sections;%(Link.AdditionalLinkerInputs) + ../../src/guisan/lib;=/opt/vc/lib;=/usr/lib/arm-linux-gnueabihf;%(Link.LibrarySearchDirectories) SDL2;SDL2_image;SDL2_ttf;pthread;m;z;png;rt;xml2;FLAC;mpg123;dl;guisan;profiler;tcmalloc;%(Link.AdditionalLibraryNames) @@ -99,15 +99,15 @@ GNUPP14 - C:\SysGCC\raspberry\lib\gcc\arm-linux-gnueabihf\4.9\include;C:\SysGCC\raspberry\arm-linux-gnueabihf\include\c++\4.9;C:\SysGCC\raspberry\arm-linux-gnueabihf\include;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\usr\include;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\opt\vc\include;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\opt\vc\include\interface\vmcs_host\linux;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\opt\vc\include\interface\vcos\pthreads;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\usr\local\include;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\usr\local\include\SDL2;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\usr\include\libxml2;../../src;../../src/include;../../src/osdep;../../src/threaddep;../../src/guisan/include;=/opt/vc/include;=/opt/vc/include/interface/vmcs_host/linux;=/opt/vc/include/interface/vcos/pthreads;=/usr/local/include;=/usr/local/include/SDL2;=/usr/include/libxml2;%(ClCompile.AdditionalIncludeDirectories) + C:\SysGCC\raspberry\lib\gcc\arm-linux-gnueabihf\4.9\include;C:\SysGCC\raspberry\arm-linux-gnueabihf\include\c++\4.9;C:\SysGCC\raspberry\arm-linux-gnueabihf\include;../../src;../../src/include;../../src/osdep;../../src/threaddep;../../src/guisan/include;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\opt\vc\include;=/opt/vc/include;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\opt\vc\include\interface\vmcs_host\linux;=/opt/vc/include/interface/vmcs_host/linux;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\opt\vc\include\interface\vcos\pthreads;=/opt/vc/include/interface/vcos/pthreads;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\usr\include;=/usr/include;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\usr\include\SDL2;=/usr/include/SDL2;C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\usr\include\libxml2;=/usr/include/libxml2;%(ClCompile.AdditionalIncludeDirectories) NDEBUG=1;RELEASE=1;_REENTRANT;CAPSLOCK_DEBIAN_WORKAROUND;ARMV6_ASSEMBLY;AMIBERRY;USE_SDL;CPU_arm;ROM_PATH_PREFIX=\"./\";DATA_PREFIX=\"./data/\";SAVE_PREFIX=\"./saves/\";GCCCONSTFUNC="__attribute__((const))";%(ClCompile.PreprocessorDefinitions) - -march=armv6zk -mfpu=vfp -mfloat-abi=hard -pipe -fweb %(AdditionalOptions) + -march=armv6zk -mfpu=vfp -mfloat-abi=hard -pipe -Wno-write-strings %(AdditionalOptions) true true - -Wl,-gc-sections,-rpath,/usr/local/lib;%(Link.AdditionalLinkerInputs) - ../../src/guisan/lib;=/opt/vc/lib;=/usr/local/lib;%(Link.LibrarySearchDirectories) + -Wl,-gc-sections;%(Link.AdditionalLinkerInputs) + ../../src/guisan/lib;=/opt/vc/lib;=/usr/lib/arm-linux-gnueabihf;%(Link.LibrarySearchDirectories) SDL2;SDL2_image;SDL2_ttf;pthread;m;z;png;rt;xml2;FLAC;mpg123;dl;guisan;profiler;tcmalloc;%(Link.AdditionalLibraryNames) diff --git a/src/cfgfile.cpp b/src/cfgfile.cpp index fa8f2ad5..e4aa0f06 100644 --- a/src/cfgfile.cpp +++ b/src/cfgfile.cpp @@ -753,7 +753,7 @@ static void write_filesys_config(struct uae_prefs *p, struct zfile *f) { int i; TCHAR tmp[MAX_DPATH], tmp2[MAX_DPATH], tmp3[MAX_DPATH]; - TCHAR *hdcontrollers[] = { _T("uae"), + char const *hdcontrollers[] = { _T("uae"), _T("ide0"), _T("ide1"), _T("ide2"), _T("ide3"), _T("scsi0"), _T("scsi1"), _T("scsi2"), _T("scsi3"), _T("scsi4"), _T("scsi5"), _T("scsi6"), _T("scsram"), _T("scide") }; /* scsram = smart card sram = pcmcia sram card */ diff --git a/src/include/zarchive.h b/src/include/zarchive.h index 6eab72b8..98396a45 100644 --- a/src/include/zarchive.h +++ b/src/include/zarchive.h @@ -1,3 +1,4 @@ +#pragma once typedef uae_s64 (*ZFILEREAD)(void*, uae_u64, uae_u64, struct zfile*); typedef uae_s64 (*ZFILEWRITE)(const void*, uae_u64, uae_u64, struct zfile*); @@ -84,19 +85,21 @@ struct zarchive_info struct mytimeval tv; }; -#define ArchiveFormat7Zip '7z ' -#define ArchiveFormatRAR 'rar ' -#define ArchiveFormatZIP 'zip ' -#define ArchiveFormatLHA 'lha ' -#define ArchiveFormatLZX 'lzx ' -#define ArchiveFormatPLAIN '----' -#define ArchiveFormatDIR 'DIR ' -#define ArchiveFormatAA 'aa ' // method only -#define ArchiveFormatADF 'DOS ' -#define ArchiveFormatRDB 'RDSK' -#define ArchiveFormatMBR 'MBR ' -#define ArchiveFormatFAT 'FAT ' -#define ArchiveFormatTAR 'tar ' +#define MCC(a,b,c,d) (((a)<<24) | ((b)<<16) | ((c)<<8) | (d)) + +#define ArchiveFormat7Zip MCC('7', 'z', ' ', ' ') +#define ArchiveFormatRAR MCC('r', 'a', 'r', ' ') +#define ArchiveFormatZIP MCC('z', 'i', 'p', ' ') +#define ArchiveFormatLHA MCC('l', 'h', 'a', ' ') +#define ArchiveFormatLZX MCC('l', 'z', 'x', ' ') +#define ArchiveFormatPLAIN MCC('-', '-', '-', '-') +#define ArchiveFormatDIR MCC('D', 'I', 'R', ' ') +#define ArchiveFormatAA MCC('a', 'a', ' ', ' ') // method only +#define ArchiveFormatADF MCC('D', 'O', 'S', ' ') +#define ArchiveFormatRDB MCC('R', 'D', 'S', 'K') +#define ArchiveFormatMBR MCC('M', 'B', 'R', ' ') +#define ArchiveFormatFAT MCC('F', 'A', 'T', ' ') +#define ArchiveFormatTAR MCC('t', 'a', 'r', ' ') #define PEEK_BYTES 1024 #define FILE_PEEK 1 diff --git a/src/jit/compemu_support.cpp b/src/jit/compemu_support.cpp index e9fcb0c3..8ec67254 100644 --- a/src/jit/compemu_support.cpp +++ b/src/jit/compemu_support.cpp @@ -45,16 +45,8 @@ #include "comptbl.h" #include "compemu.h" #include "SDL.h" - -#define DEBUG 0 #include "debug.h" -#if DEBUG -#define PROFILE_COMPILE_TIME 1 -#define PROFILE_UNTRANSLATED_INSNS 1 -#define bug printf -#endif - #ifdef JIT_DEBUG #undef abort #define abort() do { \ @@ -65,26 +57,6 @@ } while (0) #endif -#ifdef PROFILE_COMPILE_TIME -#include -static uae_u32 compile_count = 0; -static clock_t compile_time = 0; -static clock_t emul_start_time = 0; -static clock_t emul_end_time = 0; -#endif - -#ifdef PROFILE_UNTRANSLATED_INSNS -static int untranslated_top_ten = 30; -static uae_u32 raw_cputbl_count[65536] = { 0, }; -static uae_u16 opcode_nums[65536]; - - -static int untranslated_compfn(const void *e1, const void *e2) -{ - return raw_cputbl_count[*(const uae_u16 *)e1] < raw_cputbl_count[*(const uae_u16 *)e2]; -} -#endif - #define NATMEM_OFFSETX (uae_u32)natmem_offset // %%% BRIAN KING WAS HERE %%% diff --git a/src/osdep/amiberry_gfx.h b/src/osdep/amiberry_gfx.h index 089e7aa1..6a0d5a7e 100644 --- a/src/osdep/amiberry_gfx.h +++ b/src/osdep/amiberry_gfx.h @@ -1,4 +1,5 @@ #pragma once +#include extern SDL_Window* sdlWindow; extern SDL_Renderer* renderer; extern SDL_Texture* texture; diff --git a/src/osdep/picasso96.cpp b/src/osdep/picasso96.cpp index 222fd88b..4c874bec 100644 --- a/src/osdep/picasso96.cpp +++ b/src/osdep/picasso96.cpp @@ -3499,7 +3499,7 @@ static uaecptr uaegfx_card_install(TrapContext* ctx, uae_u32 extrasize) uaecptr exec = get_long(4); if (uaegfx_old || !gfxmem_bank.start) - return NULL; + return 0; uaegfx_resid = ds(_T("UAE Graphics Card 3.3")); uaegfx_vblankname = ds(_T("UAE Graphics Card VBLANK")); diff --git a/src/osdep/sigsegv_handler.cpp b/src/osdep/sigsegv_handler.cpp index 1bce6c7d..594b1a8e 100644 --- a/src/osdep/sigsegv_handler.cpp +++ b/src/osdep/sigsegv_handler.cpp @@ -39,7 +39,6 @@ #include #include "SDL.h" -#define DEBUG 0 #include "debug.h" @@ -78,8 +77,8 @@ static bool handle_arm_instruction(unsigned long *pregs, uintptr addr) { unsigned int *pc = (unsigned int *)pregs[ARM_REG_PC]; - panicbug("IP: %p [%08x] %p\n", pc, pc[0], addr); - if (pc == 0) + panicbug("IP: %p [%08x] %u\n", pc, pc[0], addr); + if (pc == nullptr) return false; if (in_handler > 0) @@ -149,26 +148,6 @@ static bool handle_arm_instruction(unsigned long *pregs, uintptr addr) transfer_type = TYPE_STORE; int rd = (opcode >> 12) & 0xf; -#if DEBUG - static const char * reg_names[] = - { - "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", - "r8", "r9", "sl", "fp", "ip", "sp", "lr", "pc" - }; - panicbug("%s %s register %s\n", - transfer_size == SIZE_BYTE ? "byte" : - transfer_size == SIZE_WORD ? "word" : - transfer_size == SIZE_INT ? "long" : "unknown", - transfer_type == TYPE_LOAD ? "load to" : "store from", - reg_names[rd]); - panicbug("\n"); -// for (int i = 0; i < 16; i++) { -// panicbug("%s : %p", reg_names[i], pregs[i]); -// } -#endif - -// if ((addr < 0x00f00000) || (addr > 0x00ffffff)) -// goto buserr; if (transfer_type == TYPE_LOAD) { @@ -176,12 +155,12 @@ static bool handle_arm_instruction(unsigned long *pregs, uintptr addr) { case SIZE_BYTE: { - pregs[rd] = style == SIGNED ? (uae_s8)get_byte(addr) : (uae_u8)get_byte(addr); + pregs[rd] = style == SIGNED ? uae_s8(get_byte(addr)) : uae_u8(get_byte(addr)); break; } case SIZE_WORD: { - pregs[rd] = do_byteswap_16(style == SIGNED ? (uae_s16)get_word(addr) : (uae_u16)get_word(addr)); + pregs[rd] = do_byteswap_16(style == SIGNED ? uae_s16(get_word(addr)) : uae_u16(get_word(addr))); break; } case SIZE_INT: @@ -214,18 +193,11 @@ static bool handle_arm_instruction(unsigned long *pregs, uintptr addr) } pregs[ARM_REG_PC] += 4; - panicbug("processed: %p \n", pregs[ARM_REG_PC]); + panicbug("processed: %lu \n", pregs[ARM_REG_PC]); in_handler--; return true; - -buserr: - panicbug("Amiga bus error\n"); - in_handler--; - -// BUS_ERROR(addr); - return false; } @@ -250,8 +222,8 @@ void signal_segv(int signum, siginfo_t* info, void*ptr) mcontext_t *context = &(ucontext->uc_mcontext); unsigned long *regs = &context->arm_r0; - uintptr addr = (uintptr)info->si_addr; - addr = (uae_u32) addr - (uae_u32) natmem_offset; + uintptr addr = uintptr(info->si_addr); + addr = uae_u32(addr) - uae_u32(natmem_offset); if (handle_arm_instruction(regs, addr)) return; @@ -289,57 +261,11 @@ void signal_segv(int signum, siginfo_t* info, void*ptr) printf("Err Code = 0x%08x\n", ucontext->uc_mcontext.error_code); printf("Old Mask = 0x%08x\n", ucontext->uc_mcontext.oldmask); -// dump_compiler((uae_u32*)ucontext->uc_mcontext.arm_pc); - void *getaddr = (void *)ucontext->uc_mcontext.arm_lr; if(dladdr(getaddr, &dlinfo)) - printf("LR - 0x%08X: <%s> (%s)\n", getaddr, dlinfo.dli_sname, dlinfo.dli_fname); + printf("LR - 0x%08p: <%s> (%s)\n", getaddr, dlinfo.dli_sname, dlinfo.dli_fname); else - printf("LR - 0x%08X: symbol not found\n", getaddr); - -// printf("Stack trace:\n"); - - /* - #define MAX_BACKTRACE 10 - - void *array[MAX_BACKTRACE]; - int size = backtrace(array, MAX_BACKTRACE); - for(int i=0; i (%s)\n", array[i], symname, - (unsigned long)array[i] - (unsigned long)dlinfo.dli_saddr, dlinfo.dli_fname); - } - } - */ - - /* - ip = (void*)ucontext->uc_mcontext.arm_r10; - bp = (void**)ucontext->uc_mcontext.arm_r10; - while(bp && ip) { - if (!dladdr(ip, &dlinfo)) { - printf("IP out of range\n"); - break; - } - const char *symname = dlinfo.dli_sname; - printf("% 2d: %p <%s + 0x%08x> (%s)\n", ++f, ip, symname, - (unsigned long)ip - (unsigned long)dlinfo.dli_saddr, dlinfo.dli_fname); - if(dlinfo.dli_sname && !strcmp(dlinfo.dli_sname, "main")) - break; - ip = bp[1]; - bp = (void**)bp[0]; - } - - printf("Stack trace (non-dedicated):\n"); - char **strings; - void *bt[20]; - int sz = backtrace(bt, 20); - strings = backtrace_symbols(bt, sz); - for(i = 0; i < sz; ++i) - printf("%s\n", strings[i]); - printf("End of stack trace.\n"); - */ + printf("LR - 0x%08p: symbol not found\n", getaddr); SDL_Quit(); exit(1); diff --git a/src/zfile_archive.cpp b/src/zfile_archive.cpp index d511a1ed..1c8740e7 100644 --- a/src/zfile_archive.cpp +++ b/src/zfile_archive.cpp @@ -9,10 +9,10 @@ #include "sysconfig.h" #include "sysdeps.h" -#ifdef _WIN32 -#include -#include "win32.h" -#endif +//#ifdef _WIN32 +//#include +//#include "win32.h" +//#endif #include "options.h" #include "zfile.h" @@ -30,18 +30,19 @@ static time_t fromdostime(uae_u32 dd) { - struct tm tm; - time_t t; - memset(&tm, 0, sizeof tm); - tm.tm_hour = (dd >> 11) & 0x1f; - tm.tm_min = (dd >> 5) & 0x3f; - tm.tm_sec = ((dd >> 0) & 0x1f) * 2; - tm.tm_year = ((dd >> 25) & 0x7f) + 80; - tm.tm_mon = ((dd >> 21) & 0x0f) - 1; - tm.tm_mday = (dd >> 16) & 0x1f; - t = mktime(&tm); - t -= _timezone; - return t; + struct tm tm; + time_t t; + + memset(&tm, 0, sizeof tm); + tm.tm_hour = (dd >> 11) & 0x1f; + tm.tm_min = (dd >> 5) & 0x3f; + tm.tm_sec = ((dd >> 0) & 0x1f) * 2; + tm.tm_year = ((dd >> 25) & 0x7f) + 80; + tm.tm_mon = ((dd >> 21) & 0x0f) - 1; + tm.tm_mday = (dd >> 16) & 0x1f; + t = mktime(&tm); + t -= _timezone; + return t; } static struct zvolume *getzvolume (struct znode *parent, struct zfile *zf, unsigned int id) @@ -1366,7 +1367,7 @@ struct zvolume *archive_directory_adf (struct znode *parent, struct zfile *z) goto fail; adf->dostype = gl (adf, 0); - if ((adf->dostype & 0xffffff00) == 'DOS\0') { + if ((adf->dostype & 0xffffff00) == MCC('D', 'O', 'S', '\0')) { int bs = adf->blocksize; int res; @@ -1418,7 +1419,7 @@ struct zvolume *archive_directory_adf (struct znode *parent, struct zfile *z) name[0] = 0; recurseadf (&zv->root, adf->rootblock, name); - } else if ((adf->dostype & 0xffffff00) == 'SFS\0') { + } else if ((adf->dostype & 0xffffff00) == MCC('S', 'F', 'S', '\0')) { uae_u16 version, sfs2; @@ -1431,14 +1432,14 @@ struct zvolume *archive_directory_adf (struct znode *parent, struct zfile *z) adf->rootblock = gl (adf, 104); if (!adf_read_block (adf, adf->rootblock)) break; - if (gl (adf, 0) != 'OBJC') + if (gl (adf, 0) != MCC('O', 'B', 'J', 'C')) break; if (sfs_checksum (adf->block, adf->blocksize, sfs2)) break; adf->rootblock = gl (adf, 40); if (!adf_read_block (adf, adf->rootblock)) break; - if (gl (adf, 0) != 'OBJC') + if (gl (adf, 0) != MCC('O', 'B', 'J', 'C')) break; if (sfs_checksum (adf->block, adf->blocksize, sfs2)) break; @@ -1549,7 +1550,7 @@ static struct zfile *archive_access_adf (struct znode *zn) if (!z) return NULL; - if ((adf->dostype & 0xffffff00) == 'DOS\0') { + if ((adf->dostype & 0xffffff00) == MCC('D', 'O', 'S', '\0')) { ffs = adf->dostype & 1; root = zn->offset; @@ -1575,7 +1576,7 @@ static struct zfile *archive_access_adf (struct znode *zn) break; root = gl (adf, bs - 2 * 4); } - } else if ((adf->dostype & 0xffffff00) == 'SFS\0') { + } else if ((adf->dostype & 0xffffff00) == MCC('S', 'F', 'S', '\0')) { struct sfsblock *sfsblocks; int sfsblockcnt, sfsmaxblockcnt, i; From fb023d05461b4662ea951e51a300c5d5e6c259c8 Mon Sep 17 00:00:00 2001 From: Dimitris Panokostas Date: Wed, 5 Apr 2017 23:38:59 +0200 Subject: [PATCH 3/3] - Added a custom mouse pointer (Kickstart 1.3 FTW!) in the menu - Changed default font in the menu to Topaz New, size 14. --- VSLinux/Amiberry.vcxproj | 6 ++++++ VSLinux/Amiberry.vcxproj.filters | 6 ++++++ VisualGDB/Amiberry/Amiberry.vcxproj | 6 ++++++ VisualGDB/Amiberry/Amiberry.vcxproj.filters | 6 ++++++ data/Topaznew.ttf | Bin 0 -> 42264 bytes data/cursor.bmp | Bin 0 -> 4150 bytes src/main.cpp | 2 ++ src/osdep/amiberry_gfx.cpp | 2 +- src/osdep/amiberry_gfx.h | 1 + src/osdep/gui/main_window.cpp | 16 +++++++++++++--- 10 files changed, 41 insertions(+), 4 deletions(-) create mode 100644 data/Topaznew.ttf create mode 100644 data/cursor.bmp diff --git a/VSLinux/Amiberry.vcxproj b/VSLinux/Amiberry.vcxproj index 6a644aa0..7a98d209 100644 --- a/VSLinux/Amiberry.vcxproj +++ b/VSLinux/Amiberry.vcxproj @@ -88,6 +88,9 @@ true + + true + true @@ -132,6 +135,9 @@ true + + true + diff --git a/VSLinux/Amiberry.vcxproj.filters b/VSLinux/Amiberry.vcxproj.filters index 3f9dac14..48d545c0 100644 --- a/VSLinux/Amiberry.vcxproj.filters +++ b/VSLinux/Amiberry.vcxproj.filters @@ -128,11 +128,17 @@ data + + data + data + + data + diff --git a/VisualGDB/Amiberry/Amiberry.vcxproj b/VisualGDB/Amiberry/Amiberry.vcxproj index b4c28b7c..326f4674 100644 --- a/VisualGDB/Amiberry/Amiberry.vcxproj +++ b/VisualGDB/Amiberry/Amiberry.vcxproj @@ -272,6 +272,9 @@ true + + true + true @@ -316,6 +319,9 @@ true + + true + diff --git a/VisualGDB/Amiberry/Amiberry.vcxproj.filters b/VisualGDB/Amiberry/Amiberry.vcxproj.filters index 34e973e1..175c6a34 100644 --- a/VisualGDB/Amiberry/Amiberry.vcxproj.filters +++ b/VisualGDB/Amiberry/Amiberry.vcxproj.filters @@ -599,11 +599,17 @@ Resource files\data + + Resource files\data + Resource files\data + + Resource files\data + diff --git a/data/Topaznew.ttf b/data/Topaznew.ttf new file mode 100644 index 0000000000000000000000000000000000000000..84627763f217b21c969c89ba670f6f09a27a0b85 GIT binary patch literal 42264 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 C)dL0q literal 0 HcmV?d00001 diff --git a/data/cursor.bmp b/data/cursor.bmp new file mode 100644 index 0000000000000000000000000000000000000000..2cc3aba2c1284749b3cf9a6d0506a77f72415329 GIT binary patch literal 4150 zcmeH_OAf;z3`D0FsB(mCBJ~70K=-*bi{6W>q;G>{1rY-qkgQ3-_Tw|}V_%fUF6kv{ z{l_DHNm``O^9)9eamKuZ>4E8i>46FlNQ%Fxsr9HC#fQ6XF$Mn~XDaCduQxyE!Ve*& zV7=rFH97Q$i?-&E;&Ml=`SeG7adS>@K0JJcTJzpMvpCj#FFyBxdUNx4hhym|ek*S2 v`A744k5>Dzd=3|F&8PpBvR~fsuF~&{%R2dYxzy9IRH^gQQZ9L3T>5+g`N-zy literal 0 HcmV?d00001 diff --git a/src/main.cpp b/src/main.cpp index 0890134d..4b2b8c47 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1009,6 +1009,8 @@ static int real_main2 (int argc, TCHAR **argv) if (SDL_SetHint(SDL_HINT_GRAB_KEYBOARD, "1") != SDL_TRUE) SDL_Log("SDL could not grab the keyboard"); + + SDL_ShowCursor(SDL_DISABLE); set_config_changed(); if (restart_config[0]) { diff --git a/src/osdep/amiberry_gfx.cpp b/src/osdep/amiberry_gfx.cpp index fdfc719e..31ed16fd 100644 --- a/src/osdep/amiberry_gfx.cpp +++ b/src/osdep/amiberry_gfx.cpp @@ -175,8 +175,8 @@ static void open_screen(struct uae_prefs* p) void update_display(struct uae_prefs* p) { - open_screen(p); SDL_ShowCursor(SDL_DISABLE); + open_screen(p); framecnt = 1; // Don't draw frame before reset done } diff --git a/src/osdep/amiberry_gfx.h b/src/osdep/amiberry_gfx.h index 6a0d5a7e..79415bd7 100644 --- a/src/osdep/amiberry_gfx.h +++ b/src/osdep/amiberry_gfx.h @@ -4,6 +4,7 @@ extern SDL_Window* sdlWindow; extern SDL_Renderer* renderer; extern SDL_Texture* texture; extern SDL_Surface* screen; +extern SDL_Cursor* cursor; extern SDL_Surface* gui_screen; extern SDL_Texture* gui_texture; diff --git a/src/osdep/gui/main_window.cpp b/src/osdep/gui/main_window.cpp index 3ce938bb..dd9e3e20 100644 --- a/src/osdep/gui/main_window.cpp +++ b/src/osdep/gui/main_window.cpp @@ -12,7 +12,6 @@ #include "uae.h" #include "gui.h" #include "gui_handling.h" -#include "memory.h" #include "amiberry_gfx.h" bool gui_running = false; @@ -62,6 +61,7 @@ enum SDL_Surface* gui_screen; SDL_Texture* gui_texture; SDL_Event gui_event; +SDL_Cursor* cursor; /* * Guisan SDL stuff we need @@ -157,6 +157,13 @@ namespace sdl // Create new screen for GUI //------------------------------------------------- + SDL_Surface *cursorSurface = SDL_LoadBMP("data/cursor.bmp"); + if (cursorSurface) + { + cursor = SDL_CreateColorCursor(cursorSurface, 0, 0); + SDL_SetCursor(cursor); + } + // make the scaled rendering look smoother (linear scaling). SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "linear"); @@ -194,9 +201,12 @@ namespace sdl delete gui_imageLoader; delete gui_input; delete gui_graphics; - + SDL_FreeSurface(gui_screen); SDL_DestroyTexture(gui_texture); + if (cursor) { + SDL_FreeCursor(cursor); + } gui_screen = nullptr; } @@ -462,7 +472,7 @@ namespace widgets // Initialize fonts //------------------------------------------------- TTF_Init(); - gui_font = new gcn::SDLTrueTypeFont("data/FreeSans.ttf", 14); + gui_font = new gcn::SDLTrueTypeFont("data/Topaznew.ttf", 14); gcn::Widget::setGlobalFont(gui_font); //--------------------------------------------------