Merged SDL1 and SDL2 files in one project

This commit is contained in:
Dimitris Panokostas 2017-12-04 15:26:04 +01:00
parent d855153618
commit a37027576a
82 changed files with 9187 additions and 1001 deletions

BIN
AndroidData/blankdisks.zip Normal file

Binary file not shown.

Binary file not shown.

View file

@ -1,3 +1,4 @@
#Default platform is rpi3
ifeq ($(PLATFORM),) ifeq ($(PLATFORM),)
PLATFORM = rpi3 PLATFORM = rpi3
endif endif
@ -6,26 +7,26 @@ ifeq ($(PLATFORM),rpi3)
CPU_FLAGS += -march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard CPU_FLAGS += -march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard
MORE_CFLAGS += -DARMV6T2 -DUSE_ARMNEON -DCAPSLOCK_DEBIAN_WORKAROUND MORE_CFLAGS += -DARMV6T2 -DUSE_ARMNEON -DCAPSLOCK_DEBIAN_WORKAROUND
MORE_CFLAGS += -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads MORE_CFLAGS += -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads
LDFLAGS += -lbcm_host -lvchiq_arm -lvcos -llzma -lfreetype -logg -lm -L/opt/vc/lib LDFLAGS += -lbcm_host -lvchiq_arm -lvcos -licui18n -licuuc -licudata -llzma -lfreetype -logg -lm -L/opt/vc/lib
PROFILER_PATH = /home/pi/projects/amiberry/amiberry-sdl2-prof PROFILER_PATH = /home/pi/projects/amiberry/amiberry-sdl2-prof
else ifeq ($(PLATFORM),rpi2) else ifeq ($(PLATFORM),rpi2)
CPU_FLAGS += -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard CPU_FLAGS += -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard
MORE_CFLAGS += -DARMV6T2 -DUSE_ARMNEON -DCAPSLOCK_DEBIAN_WORKAROUND MORE_CFLAGS += -DARMV6T2 -DUSE_ARMNEON -DCAPSLOCK_DEBIAN_WORKAROUND
MORE_CFLAGS += -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads MORE_CFLAGS += -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads
LDFLAGS += -lbcm_host -lvchiq_arm -lvcos -llzma -lfreetype -logg -lm -L/opt/vc/lib LDFLAGS += -lbcm_host -lvchiq_arm -lvcos -licui18n -licuuc -licudata -llzma -lfreetype -logg -lm -L/opt/vc/lib
PROFILER_PATH = /home/pi/projects/amiberry/amiberry-sdl2-prof PROFILER_PATH = /home/pi/projects/amiberry/amiberry-sdl2-prof
else ifeq ($(PLATFORM),rpi1) else ifeq ($(PLATFORM),rpi1)
CPU_FLAGS += -march=armv6zk -mfpu=vfp -mfloat-abi=hard CPU_FLAGS += -march=armv6zk -mfpu=vfp -mfloat-abi=hard
MORE_CFLAGS += -DCAPSLOCK_DEBIAN_WORKAROUND MORE_CFLAGS += -DCAPSLOCK_DEBIAN_WORKAROUND
MORE_CFLAGS += -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads MORE_CFLAGS += -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads
LDFLAGS += -lbcm_host -lvchiq_arm -lvcos -llzma -lfreetype -logg -lm -L/opt/vc/lib LDFLAGS += -lbcm_host -lvchiq_arm -lvcos -licui18n -licuuc -licudata -llzma -lfreetype -logg -lm -L/opt/vc/lib
PROFILER_PATH = /home/pi/projects/amiberry/amiberry-sdl2-prof PROFILER_PATH = /home/pi/projects/amiberry/amiberry-sdl2-prof
else ifeq ($(PLATFORM),pine64) else ifeq ($(PLATFORM),pine64)
CPU_FLAGS += -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard CPU_FLAGS += -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard
MORE_CFLAGS += -DARMV6T2 -D__arm__ MORE_CFLAGS += -DARMV6T2 -D__arm__
LDFLAGS += -lvchiq_arm -lvcos -llzma -lfreetype -logg -lm LDFLAGS += -lvchiq_arm -lvcos -llzma -lfreetype -logg -lm
CC = arm-linux-gnueabihf-gcc CC = arm-linux-gnueabihf-gcc
CXX = arm-linux-gnueabihf-g++ CXX = arm-linux-gnueabihf-g++
else ifeq ($(PLATFORM),Pandora) else ifeq ($(PLATFORM),Pandora)
CPU_FLAGS += -march=armv7-a -mfpu=neon -mfloat-abi=softfp CPU_FLAGS += -march=armv7-a -mfpu=neon -mfloat-abi=softfp
MORE_CFLAGS += -DARMV6T2 -DUSE_ARMNEON -DPANDORA -msoft-float MORE_CFLAGS += -DARMV6T2 -DUSE_ARMNEON -DPANDORA -msoft-float
@ -262,7 +263,7 @@ OBJS += src/osdep/gui/PanelOnScreen.o
OBJS += src/osdep/pandora_gfx.o OBJS += src/osdep/pandora_gfx.o
endif endif
OBJS += src/osdep/neon_helper.o OBJS += src/osdep/neon_helper.o
OBJS += src/newcpu.o OBJS += src/newcpu.o

View file

@ -1,14 +1,16 @@
Amiga emulator for the Raspberry Pi # Amiga emulator for the Raspberry Pi
================================= =================================
Warning: this branch is still Work In Progress - it requires a few extra steps to build and some things may not be finished yet! :) Warning: this branch is still Work In Progress - it requires a few extra steps to build and some things may not be finished yet! :)
If you're looking for the latest "stable" version, please use the master branch for now. If you're looking for the latest "stable" version, please use the master branch for now.
Once this branch is complete, it will be merged back to the master and replace it. Once this branch is complete, it will be merged back to the master and replace it.
# History (newest first) # History (newest first)
- Added GPerfTools for profiling and optimized malloc functions (note: this adds 2 extra dependencies, check below) - Added Line Doubling mode for Interlace resolutions
- Added an option for choosing Scaling Method (for non-Picasso modes): Auto, Nearest Neighbor (pixelated) or Linear (smooth). Auto will automatically choose between the other two modes on the fly, depending on the Amiga resolution requested and if the native monitor resolution can display it as an exact multiple or not. This vastly improves the sharpness of the resulting image. - Added multi-threaded drawing routines to improve performance
- Improved image centering (for non-Picasso modes) - Improved emulation accuracy
- Ported to SDL2 - [SDL2] Added an option for choosing Scaling Method (for non-Picasso modes): Auto, Nearest Neighbor (pixelated) or Linear (smooth). Auto will automatically choose between the other two modes on the fly, depending on the Amiga resolution requested and if the native monitor resolution can display it as an exact multiple or not. This vastly improves the sharpness of the resulting image.
- [SDL2] Improved image centering (for non-Picasso modes)
- [SDL2] Ported to SDL2
- Added new Picasso resolutions - Added new Picasso resolutions
- Added NetBeans project - Added NetBeans project
- Added Visual Studio solution using VC++ for Linux - Added Visual Studio solution using VC++ for Linux
@ -52,8 +54,8 @@ Install the following packages:
Clone this repo: Clone this repo:
cd ~ cd ~
git clone https://github.com/midwan/amiberry -b sdl2 amiberry-sdl2 git clone https://github.com/midwan/amiberry -b dev amiberry-dev
cd amiberry-sdl2 cd amiberry-dev
Then for Raspberry Pi 3: Then for Raspberry Pi 3:

View file

@ -35,6 +35,7 @@
</FileMasks> </FileMasks>
<TransferNewFilesOnly>true</TransferNewFilesOnly> <TransferNewFilesOnly>true</TransferNewFilesOnly>
<IncludeSubdirectories>true</IncludeSubdirectories> <IncludeSubdirectories>true</IncludeSubdirectories>
<SelectedDirectories />
<DeleteDisappearedFiles>false</DeleteDisappearedFiles> <DeleteDisappearedFiles>false</DeleteDisappearedFiles>
<ApplyGlobalExclusionList>true</ApplyGlobalExclusionList> <ApplyGlobalExclusionList>true</ApplyGlobalExclusionList>
</MainSourceTransferCommand> </MainSourceTransferCommand>
@ -57,7 +58,6 @@
<ProjectFile>Amiberry.vcxproj</ProjectFile> <ProjectFile>Amiberry.vcxproj</ProjectFile>
<RemoteBuildEnvironment> <RemoteBuildEnvironment>
<Records /> <Records />
<EnvironmentSetupFiles />
</RemoteBuildEnvironment> </RemoteBuildEnvironment>
<ParallelJobCount>1</ParallelJobCount> <ParallelJobCount>1</ParallelJobCount>
<SuppressDirectoryChangeMessages>true</SuppressDirectoryChangeMessages> <SuppressDirectoryChangeMessages>true</SuppressDirectoryChangeMessages>

View file

@ -30,7 +30,6 @@
<ProjectFile>Amiberry.vcxproj</ProjectFile> <ProjectFile>Amiberry.vcxproj</ProjectFile>
<RemoteBuildEnvironment> <RemoteBuildEnvironment>
<Records /> <Records />
<EnvironmentSetupFiles />
</RemoteBuildEnvironment> </RemoteBuildEnvironment>
<ParallelJobCount>1</ParallelJobCount> <ParallelJobCount>1</ParallelJobCount>
<SuppressDirectoryChangeMessages>true</SuppressDirectoryChangeMessages> <SuppressDirectoryChangeMessages>true</SuppressDirectoryChangeMessages>

View file

@ -40,7 +40,7 @@
<ClCompile> <ClCompile>
<CPPLanguageStandard>GNUPP14</CPPLanguageStandard> <CPPLanguageStandard>GNUPP14</CPPLanguageStandard>
<AdditionalIncludeDirectories>=/usr/local/include/SDL2;=/opt/vc/include;=/opt/vc/include/interface/vmcs_host/linux;=/opt/vc/include/interface/vcos/pthreads;=/usr/include/libxml2;../../src;../../src/osdep;../../src/threaddep;../../src/include;../../src/guisan/include;../../src/archivers;%(ClCompile.AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>=/usr/local/include/SDL2;=/opt/vc/include;=/opt/vc/include/interface/vmcs_host/linux;=/opt/vc/include/interface/vcos/pthreads;=/usr/include/libxml2;../../src;../../src/osdep;../../src/threaddep;../../src/include;../../src/guisan/include;../../src/archivers;%(ClCompile.AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>DEBUG=1;ARMV6T2;USE_ARMNEON;_REENTRANT;AMIBERRY;CPU_arm;ARMV6_ASSEMBLY;USE_SDL;%(ClCompile.PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>DEBUG=1;ARMV6T2;USE_ARMNEON;_REENTRANT;AMIBERRY;CPU_arm;ARMV6_ASSEMBLY;USE_SDL2;%(ClCompile.PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalOptions>-march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard %(AdditionalOptions)</AdditionalOptions> <AdditionalOptions>-march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard %(AdditionalOptions)</AdditionalOptions>
</ClCompile> </ClCompile>
<Link> <Link>
@ -54,7 +54,7 @@
<ClCompile> <ClCompile>
<CPPLanguageStandard>GNUPP14</CPPLanguageStandard> <CPPLanguageStandard>GNUPP14</CPPLanguageStandard>
<AdditionalIncludeDirectories>=/usr/local/include/SDL2;=/opt/vc/include;=/opt/vc/include/interface/vmcs_host/linux;=/opt/vc/include/interface/vcos/pthreads;=/usr/include/libxml2;../../src;../../src/osdep;../../src/threaddep;../../src/include;../../src/guisan/include;../../src/archivers;%(ClCompile.AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>=/usr/local/include/SDL2;=/opt/vc/include;=/opt/vc/include/interface/vmcs_host/linux;=/opt/vc/include/interface/vcos/pthreads;=/usr/include/libxml2;../../src;../../src/osdep;../../src/threaddep;../../src/include;../../src/guisan/include;../../src/archivers;%(ClCompile.AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>NDEBUG=1;RELEASE=1;ARMV6T2;USE_ARMNEON;_REENTRANT;AMIBERRY;CPU_arm;ARMV6_ASSEMBLY;USE_SDL;%(ClCompile.PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>NDEBUG=1;RELEASE=1;ARMV6T2;USE_ARMNEON;_REENTRANT;AMIBERRY;CPU_arm;ARMV6_ASSEMBLY;USE_SDL2;%(ClCompile.PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalOptions>-march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard %(AdditionalOptions)</AdditionalOptions> <AdditionalOptions>-march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard %(AdditionalOptions)</AdditionalOptions>
</ClCompile> </ClCompile>
<Link> <Link>

32
nbproject/Readme.md Normal file
View file

@ -0,0 +1,32 @@
## NetBeans Project
This folder contains the project files to enable remote compiling and debugging of Amiberry. Currently tested on Windows version of the NetBeans IDE.
### IDE Setup
* Download Netbeans C++ IDE from: https://netbeans.org/
* Download JDK from : http://www.oracle.com/technetwork/java/javase/downloads
* Update Netbeans Shortcut Target to the following provided default paths are used: `"C:\Program Files\NetBeans 8.2\bin\netbeans64.exe" --jdkhome "C:\Program Files\Java\jdk1.8.0_121"`
* Launch NetBeans from the modified shortcut
* Open Project > Navigate to this folder on your local system
* Assumed your RPi has the hostname of `retropie`, if not, add a new C/C++ Build Host under the Services tab, entering Hostname/IP and username/password, leaving the rest as default
### Pi Setup
* On the remote RaspberryPi
* Setup a script for executing gdb as root
* `sudo nano /home/pi/debug_script`
* Copy the following in to this new file:
```shell
#!/bin/bash
PROG=$(which gdb)
sudo $PROG "$@" 2>&1 /tmp/error.log
```
* Set new script as excutable
* `sudo chmod +x /home/pi/debug_script`
### Remote Debugging
Make sure the Debug profile is selected in NetBeans to ensure `-g` switch is enabled when compiling. If breakpoints don't hit when you expect them to do a make clean from NetBeans.

4615
nbproject/configurations.xml Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1 @@
# Automatic path mapper. CRC = 1

View file

@ -0,0 +1,140 @@
C:/github/uae4arm-rpi/src/archivers/zip/unzip.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/archivers/zip/unzip.o src/archivers/zip/unzip.cpp
C:/github/uae4arm-rpi/src/archivers/7z/Archive/7z/7zHeader.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/archivers/7z/Archive/7z/7zHeader.o src/archivers/7z/Archive/7z/7zHeader.cpp
C:/github/uae4arm-rpi/src/archivers/7z/Archive/7z/7zAlloc.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/archivers/7z/Archive/7z/7zAlloc.o src/archivers/7z/Archive/7z/7zAlloc.cpp
C:/github/uae4arm-rpi/src/archivers/7z/Archive/7z/7zItem.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/archivers/7z/Archive/7z/7zItem.o src/archivers/7z/Archive/7z/7zItem.cpp
C:/github/uae4arm-rpi/src/archivers/7z/Archive/7z/7zIn.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/archivers/7z/Archive/7z/7zIn.o src/archivers/7z/Archive/7z/7zIn.cpp
C:/github/uae4arm-rpi/src/archivers/7z/Archive/7z/7zDecode.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/archivers/7z/Archive/7z/7zDecode.o src/archivers/7z/Archive/7z/7zDecode.cpp
C:/github/uae4arm-rpi/src/archivers/7z/Archive/7z/7zExtract.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/archivers/7z/Archive/7z/7zExtract.o src/archivers/7z/Archive/7z/7zExtract.cpp
C:/github/uae4arm-rpi/src/archivers/7z/Bra.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/archivers/7z/Bra.o src/archivers/7z/Bra.cpp
C:/github/uae4arm-rpi/src/archivers/7z/LzmaDec.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/archivers/7z/LzmaDec.o src/archivers/7z/LzmaDec.cpp
C:/github/uae4arm-rpi/src/archivers/7z/7zBuf.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/archivers/7z/7zBuf.o src/archivers/7z/7zBuf.cpp
C:/github/uae4arm-rpi/src/archivers/7z/7zStream.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/archivers/7z/7zStream.o src/archivers/7z/7zStream.cpp
C:/github/uae4arm-rpi/src/archivers/7z/7zCrc.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/archivers/7z/7zCrc.o src/archivers/7z/7zCrc.cpp
C:/github/uae4arm-rpi/src/archivers/7z/Bcj2.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/archivers/7z/Bcj2.o src/archivers/7z/Bcj2.cpp
C:/github/uae4arm-rpi/src/archivers/7z/Bra86.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/archivers/7z/Bra86.o src/archivers/7z/Bra86.cpp
C:/github/uae4arm-rpi/src/archivers/wrp/warp.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/archivers/wrp/warp.o src/archivers/wrp/warp.cpp
C:/github/uae4arm-rpi/src/archivers/lha/header.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/archivers/lha/header.o src/archivers/lha/header.cpp
C:/github/uae4arm-rpi/src/archivers/lha/lhamaketbl.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/archivers/lha/lhamaketbl.o src/archivers/lha/lhamaketbl.cpp
C:/github/uae4arm-rpi/src/archivers/lha/util.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/archivers/lha/util.o src/archivers/lha/util.cpp
C:/github/uae4arm-rpi/src/archivers/lha/dhuf.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/archivers/lha/dhuf.o src/archivers/lha/dhuf.cpp
C:/github/uae4arm-rpi/src/archivers/lha/huf.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/archivers/lha/huf.o src/archivers/lha/huf.cpp
C:/github/uae4arm-rpi/src/archivers/lha/crcio.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/archivers/lha/crcio.o src/archivers/lha/crcio.cpp
C:/github/uae4arm-rpi/src/archivers/lha/slide.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/archivers/lha/slide.o src/archivers/lha/slide.cpp
C:/github/uae4arm-rpi/src/archivers/lha/lharc.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/archivers/lha/lharc.o src/archivers/lha/lharc.cpp
C:/github/uae4arm-rpi/src/archivers/lha/shuf.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/archivers/lha/shuf.o src/archivers/lha/shuf.cpp
C:/github/uae4arm-rpi/src/archivers/lha/larc.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/archivers/lha/larc.o src/archivers/lha/larc.cpp
C:/github/uae4arm-rpi/src/archivers/lha/uae_lha.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/archivers/lha/uae_lha.o src/archivers/lha/uae_lha.cpp
C:/github/uae4arm-rpi/src/archivers/dms/u_heavy.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/archivers/dms/u_heavy.o src/archivers/dms/u_heavy.cpp
C:/github/uae4arm-rpi/src/archivers/dms/getbits.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/archivers/dms/getbits.o src/archivers/dms/getbits.cpp
C:/github/uae4arm-rpi/src/archivers/dms/u_init.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/archivers/dms/u_init.o src/archivers/dms/u_init.cpp
C:/github/uae4arm-rpi/src/archivers/dms/u_rle.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/archivers/dms/u_rle.o src/archivers/dms/u_rle.cpp
C:/github/uae4arm-rpi/src/archivers/dms/pfile.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/archivers/dms/pfile.o src/archivers/dms/pfile.cpp
C:/github/uae4arm-rpi/src/archivers/dms/u_medium.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/archivers/dms/u_medium.o src/archivers/dms/u_medium.cpp
C:/github/uae4arm-rpi/src/archivers/dms/crc_csum.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/archivers/dms/crc_csum.o src/archivers/dms/crc_csum.cpp
C:/github/uae4arm-rpi/src/archivers/dms/maketbl.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/archivers/dms/maketbl.o src/archivers/dms/maketbl.cpp
C:/github/uae4arm-rpi/src/archivers/dms/u_quick.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/archivers/dms/u_quick.o src/archivers/dms/u_quick.cpp
C:/github/uae4arm-rpi/src/archivers/dms/tables.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/archivers/dms/tables.o src/archivers/dms/tables.cpp
C:/github/uae4arm-rpi/src/archivers/dms/u_deep.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/archivers/dms/u_deep.o src/archivers/dms/u_deep.cpp
C:/github/uae4arm-rpi/src/archivers/lzx/unlzx.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/archivers/lzx/unlzx.o src/archivers/lzx/unlzx.cpp
C:/github/uae4arm-rpi/src/jit/compemu_fpp.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/jit/compemu_fpp.o src/jit/compemu_fpp.cpp
C:/github/uae4arm-rpi/src/jit/compemu_support.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/jit/compemu_support.o src/jit/compemu_support.cpp
C:/github/uae4arm-rpi/src/jit/compstbl.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/jit/compstbl.o src/jit/compstbl.cpp
C:/github/uae4arm-rpi/src/jit/compemu.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/jit/compemu.o src/jit/compemu.cpp
C:/github/uae4arm-rpi/src/machdep/support.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/machdep/support.o src/machdep/support.cpp
C:/github/uae4arm-rpi/src/osdep/gui/UaeListBox.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/gui/UaeListBox.o src/osdep/gui/UaeListBox.cpp
C:/github/uae4arm-rpi/src/osdep/gui/PanelDisplay.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/gui/PanelDisplay.o src/osdep/gui/PanelDisplay.cpp
C:/github/uae4arm-rpi/src/osdep/gui/PanelSound.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/gui/PanelSound.o src/osdep/gui/PanelSound.cpp
C:/github/uae4arm-rpi/src/osdep/gui/EditFilesysVirtual.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/gui/EditFilesysVirtual.o src/osdep/gui/EditFilesysVirtual.cpp
C:/github/uae4arm-rpi/src/osdep/gui/PanelFloppy.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/gui/PanelFloppy.o src/osdep/gui/PanelFloppy.cpp
C:/github/uae4arm-rpi/src/osdep/gui/SelectFolder.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/gui/SelectFolder.o src/osdep/gui/SelectFolder.cpp
C:/github/uae4arm-rpi/src/osdep/gui/PanelSavestate.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/gui/PanelSavestate.o src/osdep/gui/PanelSavestate.cpp
C:/github/uae4arm-rpi/src/osdep/gui/PanelPaths.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/gui/PanelPaths.o src/osdep/gui/PanelPaths.cpp
C:/github/uae4arm-rpi/src/osdep/gui/InGameMessage.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/gui/InGameMessage.o src/osdep/gui/InGameMessage.cpp
C:/github/uae4arm-rpi/src/osdep/gui/UaeRadioButton.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/gui/UaeRadioButton.o src/osdep/gui/UaeRadioButton.cpp
C:/github/uae4arm-rpi/src/osdep/gui/EditFilesysHardfile.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/gui/EditFilesysHardfile.o src/osdep/gui/EditFilesysHardfile.cpp
C:/github/uae4arm-rpi/src/osdep/gui/main_window.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/gui/main_window.o src/osdep/gui/main_window.cpp
C:/github/uae4arm-rpi/src/osdep/gui/PanelHD.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/gui/PanelHD.o src/osdep/gui/PanelHD.cpp
C:/github/uae4arm-rpi/src/osdep/gui/PanelCPU.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/gui/PanelCPU.o src/osdep/gui/PanelCPU.cpp
C:/github/uae4arm-rpi/src/osdep/gui/PanelRAM.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/gui/PanelRAM.o src/osdep/gui/PanelRAM.cpp
C:/github/uae4arm-rpi/src/osdep/gui/SelectorEntry.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/gui/SelectorEntry.o src/osdep/gui/SelectorEntry.cpp
C:/github/uae4arm-rpi/src/osdep/gui/ShowMessage.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/gui/ShowMessage.o src/osdep/gui/ShowMessage.cpp
C:/github/uae4arm-rpi/src/osdep/gui/Navigation.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/gui/Navigation.o src/osdep/gui/Navigation.cpp
C:/github/uae4arm-rpi/src/osdep/gui/UaeDropDown.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/gui/UaeDropDown.o src/osdep/gui/UaeDropDown.cpp
C:/github/uae4arm-rpi/src/osdep/gui/PanelInput.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/gui/PanelInput.o src/osdep/gui/PanelInput.cpp
C:/github/uae4arm-rpi/src/osdep/gui/CreateFilesysHardfile.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/gui/CreateFilesysHardfile.o src/osdep/gui/CreateFilesysHardfile.cpp
C:/github/uae4arm-rpi/src/osdep/gui/SelectFile.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/gui/SelectFile.o src/osdep/gui/SelectFile.cpp
C:/github/uae4arm-rpi/src/osdep/gui/PanelMisc.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/gui/PanelMisc.o src/osdep/gui/PanelMisc.cpp
C:/github/uae4arm-rpi/src/osdep/gui/UaeCheckBox.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/gui/UaeCheckBox.o src/osdep/gui/UaeCheckBox.cpp
C:/github/uae4arm-rpi/src/osdep/gui/PanelConfig.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/gui/PanelConfig.o src/osdep/gui/PanelConfig.cpp
C:/github/uae4arm-rpi/src/osdep/gui/sdltruetypefont.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/gui/sdltruetypefont.o src/osdep/gui/sdltruetypefont.cpp
C:/github/uae4arm-rpi/src/osdep/gui/PanelChipset.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/gui/PanelChipset.o src/osdep/gui/PanelChipset.cpp
C:/github/uae4arm-rpi/src/osdep/gui/PanelROM.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/gui/PanelROM.o src/osdep/gui/PanelROM.cpp
C:/github/uae4arm-rpi/src/osdep/menu/menu_config.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/menu/menu_config.o src/osdep/menu/menu_config.cpp
C:/github/uae4arm-rpi/src/osdep/mp3decoder.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/mp3decoder.o src/osdep/mp3decoder.cpp
C:/github/uae4arm-rpi/src/osdep/hardfile_pandora.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/hardfile_pandora.o src/osdep/hardfile_pandora.cpp
C:/github/uae4arm-rpi/src/osdep/sigsegv_handler.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/sigsegv_handler.o src/osdep/sigsegv_handler.cpp
C:/github/uae4arm-rpi/src/osdep/fsdb_host.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/fsdb_host.o src/osdep/fsdb_host.cpp
C:/github/uae4arm-rpi/src/osdep/pandora.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/pandora.o src/osdep/pandora.cpp
C:/github/uae4arm-rpi/src/osdep/pandora_input.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/pandora_input.o src/osdep/pandora_input.cpp
C:/github/uae4arm-rpi/src/osdep/pandora_filesys.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/pandora_filesys.o src/osdep/pandora_filesys.cpp
C:/github/uae4arm-rpi/src/osdep/rasp_gfx.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/rasp_gfx.o src/osdep/rasp_gfx.cpp
C:/github/uae4arm-rpi/src/osdep/writelog.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/writelog.o src/osdep/writelog.cpp
C:/github/uae4arm-rpi/src/osdep/bsdsocket_host.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/bsdsocket_host.o src/osdep/bsdsocket_host.cpp
C:/github/uae4arm-rpi/src/osdep/keyboard.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/keyboard.o src/osdep/keyboard.cpp
C:/github/uae4arm-rpi/src/osdep/pandora_mem.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/pandora_mem.o src/osdep/pandora_mem.cpp
C:/github/uae4arm-rpi/src/osdep/pandora_gui.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/pandora_gui.o src/osdep/pandora_gui.cpp
C:/github/uae4arm-rpi/src/osdep/cda_play.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/cda_play.o src/osdep/cda_play.cpp
C:/github/uae4arm-rpi/src/osdep/charset.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/charset.o src/osdep/charset.cpp
C:/github/uae4arm-rpi/src/osdep/pandora_rp9.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/pandora_rp9.o src/osdep/pandora_rp9.cpp
C:/github/uae4arm-rpi/src/osdep/picasso96.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/osdep/picasso96.o src/osdep/picasso96.cpp
C:/github/uae4arm-rpi/src/sounddep/sound_sdl_new.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/sounddep/sound_sdl_new.o src/sounddep/sound_sdl_new.cpp
C:/github/uae4arm-rpi/src/cdrom.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/cdrom.o src/cdrom.cpp
C:/github/uae4arm-rpi/src/savestate.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/savestate.o src/savestate.cpp
C:/github/uae4arm-rpi/src/readcpu.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/readcpu.o src/readcpu.cpp
C:/github/uae4arm-rpi/src/fpp.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/fpp.o src/fpp.cpp
C:/github/uae4arm-rpi/src/traps.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/traps.o src/traps.cpp
C:/github/uae4arm-rpi/src/cpustbl.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/cpustbl.o src/cpustbl.cpp
C:/github/uae4arm-rpi/src/blkdev.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/blkdev.o src/blkdev.cpp
C:/github/uae4arm-rpi/src/filesys.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/filesys.o src/filesys.cpp
C:/github/uae4arm-rpi/src/aros.rom.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/aros.rom.o src/aros.rom.cpp
C:/github/uae4arm-rpi/src/blittable.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/blittable.o src/blittable.cpp
C:/github/uae4arm-rpi/src/newcpu.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/newcpu.o src/newcpu.cpp
C:/github/uae4arm-rpi/src/autoconf.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/autoconf.o src/autoconf.cpp
C:/github/uae4arm-rpi/src/diskutil.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/diskutil.o src/diskutil.cpp
C:/github/uae4arm-rpi/src/calc.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/calc.o src/calc.cpp
C:/github/uae4arm-rpi/src/uaeresource.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/uaeresource.o src/uaeresource.cpp
C:/github/uae4arm-rpi/src/fsdb_unix.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/fsdb_unix.o src/fsdb_unix.cpp
C:/github/uae4arm-rpi/src/audio.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/audio.o src/audio.cpp
C:/github/uae4arm-rpi/src/native2amiga.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/native2amiga.o src/native2amiga.cpp
C:/github/uae4arm-rpi/src/fsusage.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/fsusage.o src/fsusage.cpp
C:/github/uae4arm-rpi/src/main.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/main.o src/main.cpp
C:/github/uae4arm-rpi/src/cfgfile.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/cfgfile.o src/cfgfile.cpp
C:/github/uae4arm-rpi/src/keybuf.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/keybuf.o src/keybuf.cpp
C:/github/uae4arm-rpi/src/expansion.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/expansion.o src/expansion.cpp
C:/github/uae4arm-rpi/src/fsdb.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/fsdb.o src/fsdb.cpp
C:/github/uae4arm-rpi/src/disk.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/disk.o src/disk.cpp
C:/github/uae4arm-rpi/src/statusline.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/statusline.o src/statusline.cpp
C:/github/uae4arm-rpi/src/events.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/events.o src/events.cpp
C:/github/uae4arm-rpi/src/gfxutil.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/gfxutil.o src/gfxutil.cpp
C:/github/uae4arm-rpi/src/cpuemu_4.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/cpuemu_4.o src/cpuemu_4.cpp
C:/github/uae4arm-rpi/src/blitter.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/blitter.o src/blitter.cpp
C:/github/uae4arm-rpi/src/akiko.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/akiko.o src/akiko.cpp
C:/github/uae4arm-rpi/src/hardfile.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/hardfile.o src/hardfile.cpp
C:/github/uae4arm-rpi/src/zfile.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/zfile.o src/zfile.cpp
C:/github/uae4arm-rpi/src/bsdsocket.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/bsdsocket.o src/bsdsocket.cpp
C:/github/uae4arm-rpi/src/cpuemu_0.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/cpuemu_0.o src/cpuemu_0.cpp
C:/github/uae4arm-rpi/src/newcpu_common.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/newcpu_common.o src/newcpu_common.cpp
C:/github/uae4arm-rpi/src/zfile_archive.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/zfile_archive.o src/zfile_archive.cpp
C:/github/uae4arm-rpi/src/cia.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/cia.o src/cia.cpp
C:/github/uae4arm-rpi/src/memory.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/memory.o src/memory.cpp
C:/github/uae4arm-rpi/src/gfxboard.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/gfxboard.o src/gfxboard.cpp
C:/github/uae4arm-rpi/src/cpuemu_11.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/cpuemu_11.o src/cpuemu_11.cpp
C:/github/uae4arm-rpi/src/blitfunc.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/blitfunc.o src/blitfunc.cpp
C:/github/uae4arm-rpi/src/custom.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/custom.o src/custom.cpp
C:/github/uae4arm-rpi/src/drawing.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/drawing.o src/drawing.cpp
C:/github/uae4arm-rpi/src/blkdev_cdimage.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/blkdev_cdimage.o src/blkdev_cdimage.cpp
C:/github/uae4arm-rpi/src/rommgr.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/rommgr.o src/rommgr.cpp
C:/github/uae4arm-rpi/src/uaelib.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/uaelib.o src/uaelib.cpp
C:/github/uae4arm-rpi/src/cpudefs.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/cpudefs.o src/cpudefs.cpp
C:/github/uae4arm-rpi/src/inputdevice.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/inputdevice.o src/inputdevice.cpp
C:/github/uae4arm-rpi/src/crc32.cpp=C:/github/uae4arm-rpi#-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 -DWITH_INGAME_WARNING -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./saves/\" -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -fexceptions -fpermissive -g -DDEBUG -Wl,--export-dynamic -c -o src/crc32.o src/crc32.cpp

View file

@ -0,0 +1 @@
/Users/horaceandthespider/Documents/Geek/Amiberry/amiberry-hats/src/osdep/gui/PanelInput.cpp=/Users/horaceandthespider/Documents/Geek/Amiberry/amiberry-hats#-march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard -I/usr/include/libxml2 -DCPU_arm -DARMV6_ASSEMBLY -DWITH_INGAME_WARNING -DUSE_SDL -DARMV6T2 -DUSE_ARMNEON -DRASPBERRY -DCAPSLOCK_DEBIAN_WORKAROUND -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Isrc/archivers -Wno-unused -Wno-format "-DGCCCONSTFUNC=__attribute__((const))" -mstructure-size-boundary=32 -falign-functions=32 -std=gnu++14 -g -rdynamic -funwind-tables -mapcs-frame -DDEBUG -Wl,--export-dynamic -c src/osdep/gui/PanelInput.cpp -o src/osdep/gui/PanelInput.o

View file

@ -0,0 +1,75 @@
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright (c) 2016 Oracle and/or its affiliates. All rights reserved.
*
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
* Other names may be trademarks of their respective owners.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common
* Development and Distribution License("CDDL") (collectively, the
* "License"). You may not use this file except in compliance with the
* License. You can obtain a copy of the License at
* http://www.netbeans.org/cddl-gplv2.html
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
* specific language governing permissions and limitations under the
* License. When distributing the software, include this License Header
* Notice in each file and include the License file at
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the GPL Version 2 section of the License file that
* accompanied this code. If applicable, add the following below the
* License Header, with the fields enclosed by brackets [] replaced by
* your own identifying information:
* "Portions Copyrighted [year] [name of copyright owner]"
*
* If you wish your version of this file to be governed by only the CDDL
* or only the GPL Version 2, indicate your decision by adding
* "[Contributor] elects to include this software in this distribution
* under the [CDDL or GPL Version 2] license." If you do not indicate a
* single choice of license, a recipient has the option to distribute
* your version of this file under either the CDDL, the GPL Version 2 or
* to extend the choice of license to its licensees as provided above.
* However, if you add GPL Version 2 code and therefore, elected the GPL
* Version 2 license, then the option applies only if the new code is
* made subject to such option by the copyright holder.
*
* Contributor(s):
*/
// List of standard headers was taken in http://en.cppreference.com/w/c/header
#include <assert.h> // Conditionally compiled macro that compares its argument to zero
#include <ctype.h> // Functions to determine the type contained in character data
#include <errno.h> // Macros reporting error conditions
#include <float.h> // Limits of float types
#include <limits.h> // Sizes of basic types
#include <locale.h> // Localization utilities
#include <math.h> // Common mathematics functions
#include <setjmp.h> // Nonlocal jumps
#include <signal.h> // Signal handling
#include <stdarg.h> // Variable arguments
#include <stddef.h> // Common macro definitions
#include <stdio.h> // Input/output
#include <string.h> // String handling
#include <stdlib.h> // General utilities: memory management, program utilities, string conversions, random numbers
#include <time.h> // Time/date utilities
#include <iso646.h> // (since C95) Alternative operator spellings
#include <wchar.h> // (since C95) Extended multibyte and wide character utilities
#include <wctype.h> // (since C95) Wide character classification and mapping utilities
#ifdef _STDC_C99
#include <complex.h> // (since C99) Complex number arithmetic
#include <fenv.h> // (since C99) Floating-point environment
#include <inttypes.h> // (since C99) Format conversion of integer types
#include <stdbool.h> // (since C99) Boolean type
#include <stdint.h> // (since C99) Fixed-width integer types
#include <tgmath.h> // (since C99) Type-generic math (macros wrapping math.h and complex.h)
#endif
#ifdef _STDC_C11
#include <stdalign.h> // (since C11) alignas and alignof convenience macros
#include <stdatomic.h> // (since C11) Atomic types
#include <stdnoreturn.h> // (since C11) noreturn convenience macros
#include <threads.h> // (since C11) Thread library
#include <uchar.h> // (since C11) UTF-16 and UTF-32 character utilities
#endif

View file

@ -0,0 +1,547 @@
<?xml version="1.0" encoding="UTF-8"?>
<configurationDescriptor version="100">
<logicalFolder name="root" displayName="root" projectFiles="true" kind="ROOT">
<df root="." name="0">
<df name="_Archived Items">
</df>
<df name="conf">
</df>
<df name="data">
</df>
<df name="kickstarts">
</df>
<df name="savestates">
</df>
<df name="screenshots">
</df>
<df name="src">
<df name="archivers">
<df name="7z">
<df name="Archive">
<df name="7z">
<in>7zAlloc.cpp</in>
<in>7zAlloc.h</in>
<in>7zDecode.cpp</in>
<in>7zDecode.h</in>
<in>7zExtract.cpp</in>
<in>7zExtract.h</in>
<in>7zHeader.cpp</in>
<in>7zHeader.h</in>
<in>7zIn.cpp</in>
<in>7zIn.h</in>
<in>7zItem.cpp</in>
<in>7zItem.h</in>
</df>
</df>
<in>7z.h</in>
<in>7zAlloc.cpp</in>
<in>7zAlloc.h</in>
<in>7zBuf.cpp</in>
<in>7zBuf.h</in>
<in>7zBuf2.c</in>
<in>7zCrc.cpp</in>
<in>7zCrc.h</in>
<in>7zCrcOpt.cpp</in>
<in>7zDec.cpp</in>
<in>7zFile.c</in>
<in>7zFile.h</in>
<in>7zIn.cpp</in>
<in>7zStream.cpp</in>
<in>7zVersion.h</in>
<in>Alloc.c</in>
<in>Alloc.h</in>
<in>Bcj2.cpp</in>
<in>Bcj2.h</in>
<in>Bra.cpp</in>
<in>Bra.h</in>
<in>Bra86.cpp</in>
<in>BraIA64.c</in>
<in>CpuArch.c</in>
<in>CpuArch.h</in>
<in>Delta.c</in>
<in>Delta.h</in>
<in>LzFind.cpp</in>
<in>LzFind.h</in>
<in>LzFindMt.c</in>
<in>LzFindMt.h</in>
<in>LzHash.h</in>
<in>Lzma2Dec.cpp</in>
<in>Lzma2Dec.h</in>
<in>Lzma2Enc.c</in>
<in>Lzma2Enc.h</in>
<in>Lzma86.h</in>
<in>Lzma86Dec.c</in>
<in>Lzma86Enc.c</in>
<in>LzmaDec.cpp</in>
<in>LzmaDec.h</in>
<in>LzmaEnc.cpp</in>
<in>LzmaEnc.h</in>
<in>LzmaLib.c</in>
<in>LzmaLib.h</in>
<in>MtCoder.c</in>
<in>MtCoder.h</in>
<in>Ppmd.h</in>
<in>Ppmd7.c</in>
<in>Ppmd7.h</in>
<in>Ppmd7Dec.c</in>
<in>Ppmd7Enc.c</in>
<in>RotateDefs.h</in>
<in>Sha256.c</in>
<in>Sha256.h</in>
<in>Threads.c</in>
<in>Threads.h</in>
<in>Types.h</in>
<in>Xz.cpp</in>
<in>Xz.h</in>
<in>XzCrc64.c</in>
<in>XzCrc64.h</in>
<in>XzDec.c</in>
<in>XzEnc.c</in>
<in>XzEnc.h</in>
<in>XzIn.c</in>
</df>
<df name="dms">
<in>cdata.h</in>
<in>crc_csum.cpp</in>
<in>crc_csum.h</in>
<in>getbits.cpp</in>
<in>getbits.h</in>
<in>maketbl.cpp</in>
<in>maketbl.h</in>
<in>pfile.cpp</in>
<in>pfile.h</in>
<in>tables.cpp</in>
<in>tables.h</in>
<in>u_deep.cpp</in>
<in>u_deep.h</in>
<in>u_heavy.cpp</in>
<in>u_heavy.h</in>
<in>u_init.cpp</in>
<in>u_init.h</in>
<in>u_medium.cpp</in>
<in>u_medium.h</in>
<in>u_quick.cpp</in>
<in>u_quick.h</in>
<in>u_rle.cpp</in>
<in>u_rle.h</in>
</df>
<df name="lha">
<in>crcio.cpp</in>
<in>dhuf.cpp</in>
<in>header.cpp</in>
<in>huf.cpp</in>
<in>larc.cpp</in>
<in>lha.h</in>
<in>lha_macro.h</in>
<in>lhamaketbl.cpp</in>
<in>lharc.cpp</in>
<in>shuf.cpp</in>
<in>slide.cpp</in>
<in>uae_lha.cpp</in>
<in>util.cpp</in>
</df>
<df name="lzx">
<in>unlzx.cpp</in>
</df>
<df name="mp2">
<in>kjmp2.cpp</in>
<in>kjmp2.h</in>
</df>
<df name="wrp">
<in>warp.cpp</in>
<in>warp.h</in>
</df>
<df name="zip">
<in>unzip.cpp</in>
<in>unzip.h</in>
</df>
</df>
<df name="include">
<df name="uae">
<in>attributes.h</in>
<in>cdrom.h</in>
<in>io.h</in>
<in>likely.h</in>
<in>mman.h</in>
<in>string.h</in>
<in>types.h</in>
<in>vm.h</in>
</df>
<in>akiko.h</in>
<in>ar.h</in>
<in>audio.h</in>
<in>autoconf.h</in>
<in>blit.h</in>
<in>blitfunc.h</in>
<in>blitter.h</in>
<in>blkdev.h</in>
<in>bsdsocket.h</in>
<in>calc.h</in>
<in>cd32_fmv.h</in>
<in>cia.h</in>
<in>clipboard.h</in>
<in>commpipe.h</in>
<in>cpu_prefetch.h</in>
<in>cpummu.h</in>
<in>cputbl.h</in>
<in>crc32.h</in>
<in>custom.h</in>
<in>debug.h</in>
<in>devices.h</in>
<in>disk.h</in>
<in>diskutil.h</in>
<in>drawing.h</in>
<in>ersatz.h</in>
<in>events.h</in>
<in>execio.h</in>
<in>execlib.h</in>
<in>fdi2raw.h</in>
<in>filesys.h</in>
<in>flags_arm.h</in>
<in>flashrom.h</in>
<in>fpp-ieee-be.h</in>
<in>fpp-unknown.h</in>
<in>fpp.h</in>
<in>fsdb.h</in>
<in>fsusage.h</in>
<in>gayle.h</in>
<in>genblitter.h</in>
<in>gensound.h</in>
<in>gfxboard.h</in>
<in>gui.h</in>
<in>ide.h</in>
<in>inputdevice.h</in>
<in>keyboard.h</in>
<in>keybuf.h</in>
<in>mackbd.h</in>
<in>memory.h</in>
<in>mmu_common.h</in>
<in>native2amiga.h</in>
<in>native2amiga_api.h</in>
<in>newcpu.h</in>
<in>options.h</in>
<in>osemu.h</in>
<in>picasso96.h</in>
<in>readcpu.h</in>
<in>rommgr.h</in>
<in>rtc.h</in>
<in>rtgmodes.h</in>
<in>savestate.h</in>
<in>scsi.h</in>
<in>scsidev.h</in>
<in>statusline.h</in>
<in>sysdeps.h</in>
<in>traps.h</in>
<in>uae.h</in>
<in>uaeresource.h</in>
<in>xwin.h</in>
<in>zarchive.h</in>
<in>zfile.h</in>
</df>
<df name="jit">
<in>codegen_arm.cpp</in>
<in>codegen_arm.h</in>
<in>compemu.cpp</in>
<in>compemu.h</in>
<in>compemu_fpp.cpp</in>
<in>compemu_midfunc_arm.cpp</in>
<in>compemu_midfunc_arm.h</in>
<in>compemu_midfunc_arm2.cpp</in>
<in>compemu_midfunc_arm2.h</in>
<in>compemu_prefs.cpp</in>
<in>compemu_support.cpp</in>
<in>compstbl.cpp</in>
<in>comptbl.h</in>
<in>gencomp_arm.cpp</in>
</df>
<df name="machdep">
<in>m68k.h</in>
<in>maccess.h</in>
<in>md-fpp.h</in>
<in>rpt.h</in>
<in>support.cpp</in>
</df>
<df name="od-gles">
<in>gl.cpp</in>
<in>gl.h</in>
<in>gl_platform.cpp</in>
<in>gl_platform.h</in>
<in>gles_gfx.cpp</in>
<in>shader_stuff.cpp</in>
<in>shader_stuff.h</in>
</df>
<df name="osdep">
<df name="gui">
<in>CreateFilesysHardfile.cpp</in>
<in>EditFilesysHardfile.cpp</in>
<in>EditFilesysVirtual.cpp</in>
<in>InGameMessage.cpp</in>
<in>Navigation.cpp</in>
<in>PanelCPU.cpp</in>
<in>PanelChipset.cpp</in>
<in>PanelConfig.cpp</in>
<in>PanelCustom.cpp</in>
<in>PanelDisplay.cpp</in>
<in>PanelFloppy.cpp</in>
<in>PanelHD.cpp</in>
<in>PanelInput.cpp</in>
<in>PanelMisc.cpp</in>
<in>PanelPaths.cpp</in>
<in>PanelQuickstart.cpp</in>
<in>PanelRAM.cpp</in>
<in>PanelROM.cpp</in>
<in>PanelSavestate.cpp</in>
<in>PanelSound.cpp</in>
<in>SelectFile.cpp</in>
<in>SelectFolder.cpp</in>
<in>SelectorEntry.cpp</in>
<in>SelectorEntry.hpp</in>
<in>ShowHelp.cpp</in>
<in>ShowMessage.cpp</in>
<in>UaeCheckBox.cpp</in>
<in>UaeCheckBox.hpp</in>
<in>UaeDropDown.cpp</in>
<in>UaeDropDown.hpp</in>
<in>UaeListBox.cpp</in>
<in>UaeListBox.hpp</in>
<in>UaeRadioButton.cpp</in>
<in>UaeRadioButton.hpp</in>
<in>gui_handling.h</in>
<in>main_window.cpp</in>
<in>sdltruetypefont.cpp</in>
<in>sdltruetypefont.hpp</in>
</df>
<df name="menu">
<in>menu_config.cpp</in>
</df>
<in>arm_helper.s</in>
<in>bsdsocket_host.cpp</in>
<in>cda_play.cpp</in>
<in>cda_play.h</in>
<in>charset.cpp</in>
<in>config.h</in>
<in>fsdb_host.cpp</in>
<in>hardfile_pandora.cpp</in>
<in>keyboard.cpp</in>
<in>mp3decoder.cpp</in>
<in>mp3decoder.h</in>
<in>neon_helper.s</in>
<in>pandora.cpp</in>
<in>pandora_filesys.cpp</in>
<in>pandora_gfx.cpp</in>
<in>pandora_gui.cpp</in>
<in>pandora_input.cpp</in>
<in>pandora_mem.cpp</in>
<in>pandora_rp9.cpp</in>
<in>pandora_rp9.h</in>
<in>picasso96.cpp</in>
<in>picasso96.h</in>
<in>rasp_gfx.cpp</in>
<in>raspi_input.cpp</in>
<in>sigsegv_handler.cpp</in>
<in>sysconfig.h</in>
<in>target.h</in>
<in>writelog.cpp</in>
</df>
<df name="softfloat">
<in>softfloat-macros.h</in>
<in>softfloat-specialize.h</in>
<in>softfloat.cpp</in>
<in>softfloat.h</in>
<in>softfloat_decimal.cpp</in>
<in>softfloat_fpsp.cpp</in>
<in>softfloat_fpsp_tables.h</in>
</df>
<df name="sounddep">
<in>sound.cpp</in>
<in>sound.h</in>
<in>sound_sdl_new.cpp</in>
</df>
<df name="threaddep">
<in>thread.h</in>
</df>
<in>akiko.cpp</in>
<in>ar.cpp</in>
<in>aros.rom.cpp</in>
<in>audio.cpp</in>
<in>autoconf.cpp</in>
<in>blit.h</in>
<in>blitfunc.cpp</in>
<in>blitfunc.h</in>
<in>blitops.cpp</in>
<in>blittable.cpp</in>
<in>blitter.cpp</in>
<in>blkdev.cpp</in>
<in>blkdev_cdimage.cpp</in>
<in>bsdsocket.cpp</in>
<in>build68k.cpp</in>
<in>calc.cpp</in>
<in>cd32_fmv.cpp</in>
<in>cd32_fmv_genlock.cpp</in>
<in>cdrom.cpp</in>
<in>cfgfile.cpp</in>
<in>cia.cpp</in>
<in>cpudefs.cpp</in>
<in>cpuemu_0.cpp</in>
<in>cpuemu_11.cpp</in>
<in>cpuemu_4.cpp</in>
<in>cpuemu_40.cpp</in>
<in>cpuemu_44.cpp</in>
<in>cpustbl.cpp</in>
<in>cputbl.h</in>
<in>crc32.cpp</in>
<in>custom.cpp</in>
<in>def_icons.cpp</in>
<in>devices.cpp</in>
<in>disk.cpp</in>
<in>diskutil.cpp</in>
<in>drawing.cpp</in>
<in>events.cpp</in>
<in>expansion.cpp</in>
<in>fdi2raw.cpp</in>
<in>filesys.asm</in>
<in>filesys.cpp</in>
<in>filesys_bootrom.cpp</in>
<in>flashrom.cpp</in>
<in>fpp.cpp</in>
<in>fpp_native.cpp</in>
<in>fpp_softfloat.cpp</in>
<in>fsdb.cpp</in>
<in>fsdb_unix.cpp</in>
<in>fsusage.cpp</in>
<in>gayle.cpp</in>
<in>genblitter.cpp</in>
<in>gencpu.cpp</in>
<in>gfxboard.cpp</in>
<in>gfxutil.cpp</in>
<in>hardfile.cpp</in>
<in>hrtmon.rom.cpp</in>
<in>ide.cpp</in>
<in>inputdevice.cpp</in>
<in>inputevents.def</in>
<in>keybuf.cpp</in>
<in>linetoscr.c</in>
<in>linetoscr.cpp</in>
<in>main.cpp</in>
<in>memory.cpp</in>
<in>native2amiga.cpp</in>
<in>newcpu.cpp</in>
<in>newcpu_common.cpp</in>
<in>p96_blit.cpp</in>
<in>readcpu.cpp</in>
<in>rommgr.cpp</in>
<in>rtc.cpp</in>
<in>savestate.cpp</in>
<in>scsi.cpp</in>
<in>sinctable.cpp</in>
<in>statusline.cpp</in>
<in>trace.c</in>
<in>traps.cpp</in>
<in>uaelib.cpp</in>
<in>uaeresource.cpp</in>
<in>zfile.cpp</in>
<in>zfile_archive.cpp</in>
</df>
<df name="VisualGDB">
<df name="Amiberry">
</df>
</df>
<df name="VSLinux">
</df>
</df>
</logicalFolder>
<projectmakefile>Makefile</projectmakefile>
<confs>
<conf name="Pi3_Debug" type="0">
<toolsSet>
<developmentServer>pi@cd32.home:22</developmentServer>
<platform>2</platform>
</toolsSet>
<compile>
<compiledirpicklist>
<compiledirpicklistitem>.</compiledirpicklistitem>
<compiledirpicklistitem>${AUTO_FOLDER}</compiledirpicklistitem>
</compiledirpicklist>
<compiledir>${AUTO_FOLDER}</compiledir>
<compilecommandpicklist>
<compilecommandpicklistitem>${MAKE} ${ITEM_NAME}.o</compilecommandpicklistitem>
<compilecommandpicklistitem>${AUTO_COMPILE}</compilecommandpicklistitem>
</compilecommandpicklist>
<compilecommand>${AUTO_COMPILE}</compilecommand>
</compile>
<dbx_gdbdebugger version="1">
<gdb_pathmaps>
</gdb_pathmaps>
<gdb_interceptlist>
<gdbinterceptoptions gdb_all="false" gdb_unhandled="true" gdb_unexpected="true"/>
</gdb_interceptlist>
<gdb_options>
<DebugOptions>
</DebugOptions>
</gdb_options>
<gdb_buildfirst gdb_buildfirst_overriden="false" gdb_buildfirst_old="false"/>
</dbx_gdbdebugger>
<nativedebugger version="1">
<engine>gdb</engine>
</nativedebugger>
<runprofile version="9">
<runcommandpicklist>
<runcommandpicklistitem>"${OUTPUT_PATH}"</runcommandpicklistitem>
</runcommandpicklist>
<runcommand>"${OUTPUT_PATH}"</runcommand>
<rundir>.</rundir>
<buildfirst>false</buildfirst>
<console-type>2</console-type>
<terminal-type>0</terminal-type>
<remove-instrumentation>0</remove-instrumentation>
<environment>
</environment>
</runprofile>
</conf>
<conf name="Pi3_Release" type="0">
<toolsSet>
<developmentServer>pi@cd32.home:22</developmentServer>
<platform>2</platform>
</toolsSet>
<compile>
<compiledirpicklist>
<compiledirpicklistitem>.</compiledirpicklistitem>
<compiledirpicklistitem>${AUTO_FOLDER}</compiledirpicklistitem>
</compiledirpicklist>
<compiledir>${AUTO_FOLDER}</compiledir>
<compilecommandpicklist>
<compilecommandpicklistitem>${MAKE} ${ITEM_NAME}.o</compilecommandpicklistitem>
<compilecommandpicklistitem>${AUTO_COMPILE}</compilecommandpicklistitem>
</compilecommandpicklist>
<compilecommand>${AUTO_COMPILE}</compilecommand>
</compile>
<dbx_gdbdebugger version="1">
<gdb_pathmaps>
</gdb_pathmaps>
<gdb_interceptlist>
<gdbinterceptoptions gdb_all="false" gdb_unhandled="true" gdb_unexpected="true"/>
</gdb_interceptlist>
<gdb_options>
<DebugOptions>
</DebugOptions>
</gdb_options>
<gdb_buildfirst gdb_buildfirst_overriden="false" gdb_buildfirst_old="false"/>
</dbx_gdbdebugger>
<nativedebugger version="1">
<engine>gdb</engine>
</nativedebugger>
<runprofile version="9">
<runcommandpicklist>
<runcommandpicklistitem>"${OUTPUT_PATH}"</runcommandpicklistitem>
</runcommandpicklist>
<runcommand>"${OUTPUT_PATH}"</runcommand>
<rundir>.</rundir>
<buildfirst>false</buildfirst>
<terminal-type>0</terminal-type>
<remove-instrumentation>0</remove-instrumentation>
<environment>
</environment>
</runprofile>
</conf>
</confs>
</configurationDescriptor>

View file

@ -0,0 +1,135 @@
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright (c) 2016 Oracle and/or its affiliates. All rights reserved.
*
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
* Other names may be trademarks of their respective owners.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common
* Development and Distribution License("CDDL") (collectively, the
* "License"). You may not use this file except in compliance with the
* License. You can obtain a copy of the License at
* http://www.netbeans.org/cddl-gplv2.html
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
* specific language governing permissions and limitations under the
* License. When distributing the software, include this License Header
* Notice in each file and include the License file at
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the GPL Version 2 section of the License file that
* accompanied this code. If applicable, add the following below the
* License Header, with the fields enclosed by brackets [] replaced by
* your own identifying information:
* "Portions Copyrighted [year] [name of copyright owner]"
*
* If you wish your version of this file to be governed by only the CDDL
* or only the GPL Version 2, indicate your decision by adding
* "[Contributor] elects to include this software in this distribution
* under the [CDDL or GPL Version 2] license." If you do not indicate a
* single choice of license, a recipient has the option to distribute
* your version of this file under either the CDDL, the GPL Version 2 or
* to extend the choice of license to its licensees as provided above.
* However, if you add GPL Version 2 code and therefore, elected the GPL
* Version 2 license, then the option applies only if the new code is
* made subject to such option by the copyright holder.
*
* Contributor(s):
*/
// List of standard headers was taken in http://en.cppreference.com/w/cpp/header
#include <cstdlib> // General purpose utilities: program control, dynamic memory allocation, random numbers, sort and search
#include <csignal> // Functions and macro constants for signal management
#include <csetjmp> // Macro (and function) that saves (and jumps) to an execution context
#include <cstdarg> // Handling of variable length argument lists
#include <typeinfo> // Runtime type information utilities
#include <bitset> // std::bitset class template
#include <functional> // Function objects, designed for use with the standard algorithms
#include <utility> // Various utility components
#include <ctime> // C-style time/date utilites
#include <cstddef> // typedefs for types such as size_t, NULL and others
#include <new> // Low-level memory management utilities
#include <memory> // Higher level memory management utilities
#include <climits> // limits of integral types
#include <cfloat> // limits of float types
#include <limits> // standardized way to query properties of arithmetic types
#include <exception> // Exception handling utilities
#include <stdexcept> // Standard exception objects
#include <cassert> // Conditionally compiled macro that compares its argument to zero
#include <cerrno> // Macro containing the last error number
#include <cctype> // functions to determine the type contained in character data
#include <cwctype> // functions for determining the type of wide character data
#include <cstring> // various narrow character string handling functions
#include <cwchar> // various wide and multibyte string handling functions
#include <string> // std::basic_string class template
#include <vector> // std::vector container
#include <deque> // std::deque container
#include <list> // std::list container
#include <set> // std::set and std::multiset associative containers
#include <map> // std::map and std::multimap associative containers
#include <stack> // std::stack container adaptor
#include <queue> // std::queue and std::priority_queue container adaptors
#include <algorithm> // Algorithms that operate on containers
#include <iterator> // Container iterators
#include <cmath> // Common mathematics functions
#include <complex> // Complex number type
#include <valarray> // Class for representing and manipulating arrays of values
#include <numeric> // Numeric operations on values in containers
#include <iosfwd> // forward declarations of all classes in the input/output library
#include <ios> // std::ios_base class, std::basic_ios class template and several typedefs
#include <istream> // std::basic_istream class template and several typedefs
#include <ostream> // std::basic_ostream, std::basic_iostream class templates and several typedefs
#include <iostream> // several standard stream objects
#include <fstream> // std::basic_fstream, std::basic_ifstream, std::basic_ofstream class templates and several typedefs
#include <sstream> // std::basic_stringstream, std::basic_istringstream, std::basic_ostringstream class templates and several typedefs
#include <strstream> // std::strstream, std::istrstream, std::ostrstream(deprecated)
#include <iomanip> // Helper functions to control the format or input and output
#include <streambuf> // std::basic_streambuf class template
#include <cstdio> // C-style input-output functions
#include <locale> // Localization utilities
#include <clocale> // C localization utilities
#include <ciso646> // empty header. The macros that appear in iso646.h in C are keywords in C++
#if __cplusplus >= 201103L
#include <typeindex> // (since C++11) std::type_index
#include <type_traits> // (since C++11) Compile-time type information
#include <chrono> // (since C++11) C++ time utilites
#include <initializer_list> // (since C++11) std::initializer_list class template
#include <tuple> // (since C++11) std::tuple class template
#include <scoped_allocator> // (since C++11) Nested allocator class
#include <cstdint> // (since C++11) fixed-size types and limits of other types
#include <cinttypes> // (since C++11) formatting macros , intmax_t and uintmax_t math and conversions
#include <system_error> // (since C++11) defines std::error_code, a platform-dependent error code
#include <cuchar> // (since C++11) C-style Unicode character conversion functions
#include <array> // (since C++11) std::array container
#include <forward_list> // (since C++11) std::forward_list container
#include <unordered_set> // (since C++11) std::unordered_set and std::unordered_multiset unordered associative containers
#include <unordered_map> // (since C++11) std::unordered_map and std::unordered_multimap unordered associative containers
#include <random> // (since C++11) Random number generators and distributions
#include <ratio> // (since C++11) Compile-time rational arithmetic
#include <cfenv> // (since C++11) Floating-point environment access functions
#include <codecvt> // (since C++11) Unicode conversion facilities
#include <regex> // (since C++11) Classes, algorithms and iterators to support regular expression processing
#include <atomic> // (since C++11) Atomic operations library
#include <ccomplex> // (since C++11)(deprecated in C++17) simply includes the header <complex>
#include <ctgmath> // (since C++11)(deprecated in C++17) simply includes the headers <ccomplex> (until C++17)<complex> (since C++17) and <cmath>: the overloads equivalent to the contents of the C header tgmath.h are already provided by those headers
#include <cstdalign> // (since C++11)(deprecated in C++17) defines one compatibility macro constant
#include <cstdbool> // (since C++11)(deprecated in C++17) defines one compatibility macro constant
#include <thread> // (since C++11) std::thread class and supporting functions
#include <mutex> // (since C++11) mutual exclusion primitives
#include <future> // (since C++11) primitives for asynchronous computations
#include <condition_variable> // (since C++11) thread waiting conditions
#endif
#if __cplusplus >= 201300L
#include <shared_mutex> // (since C++14) shared mutual exclusion primitives
#endif
#if __cplusplus >= 201500L
#include <any> // (since C++17) std::any class template
#include <optional> // (since C++17) std::optional class template
#include <variant> // (since C++17) std::variant class template
#include <memory_resource> // (since C++17) Polymorphic allocators and memory resources
#include <string_view> // (since C++17) std::basic_string_view class template
#include <execution> // (since C++17) Predefined execution policies for parallel versions of the algorithms
#include <filesystem> // (since C++17) std::path class and supporting functions
#endif

View file

@ -0,0 +1,42 @@
# Launchers File syntax:
#
# [Must-have property line]
# launcher1.runCommand=<Run Command>
# [Optional extra properties]
# launcher1.displayName=<Display Name, runCommand by default>
# launcher1.hide=<true if lancher is not visible in menu, false by default>
# launcher1.buildCommand=<Build Command, Build Command specified in project properties by default>
# launcher1.runDir=<Run Directory, ${PROJECT_DIR} by default>
# launcher1.runInOwnTab=<false if launcher reuse common "Run" output tab, true by default>
# launcher1.symbolFiles=<Symbol Files loaded by debugger, ${OUTPUT_PATH} by default>
# launcher1.env.<Environment variable KEY>=<Environment variable VALUE>
# (If this value is quoted with ` it is handled as a native command which execution result will become the value)
# [Common launcher properties]
# common.runDir=<Run Directory>
# (This value is overwritten by a launcher specific runDir value if the latter exists)
# common.env.<Environment variable KEY>=<Environment variable VALUE>
# (Environment variables from common launcher are merged with launcher specific variables)
# common.symbolFiles=<Symbol Files loaded by debugger>
# (This value is overwritten by a launcher specific symbolFiles value if the latter exists)
#
# In runDir, symbolFiles and env fields you can use these macroses:
# ${PROJECT_DIR} - project directory absolute path
# ${OUTPUT_PATH} - linker output path (relative to project directory path)
# ${OUTPUT_BASENAME}- linker output filename
# ${TESTDIR} - test files directory (relative to project directory path)
# ${OBJECTDIR} - object files directory (relative to project directory path)
# ${CND_DISTDIR} - distribution directory (relative to project directory path)
# ${CND_BUILDDIR} - build directory (relative to project directory path)
# ${CND_PLATFORM} - platform name
# ${CND_CONF} - configuration name
# ${CND_DLIB_EXT} - dynamic library extension
#
# All the project launchers must be listed in the file!
#
# launcher1.runCommand=...
# launcher2.runCommand=...
# ...
# common.runDir=...
# common.env.KEY=VALUE
# launcher1.runCommand=<type your run command here>

View file

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
<data xmlns="http://www.netbeans.org/ns/make-project-private/1">
<activeConfTypeElem>0</activeConfTypeElem>
<activeConfIndexElem>1</activeConfIndexElem>
</data>
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="1">
<file>
<url>src/osdep/gui/ShowMessage.cpp</url>
<bookmark id="1">
<name/>
<line>98</line>
<key/>
</bookmark>
</file>
</editor-bookmarks>
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
<group>
<file>file:/Users/horaceandthespider/Documents/Geek/Amiberry/amiberry-hats/src/custom.cpp</file>
<file>file:/Users/horaceandthespider/Documents/Geek/Amiberry/amiberry-hats/src/include/options.h</file>
<file>file:/Users/horaceandthespider/Documents/Geek/Amiberry/amiberry-hats/src/osdep/gui/PanelInput.cpp</file>
<file>file:/Users/horaceandthespider/Documents/Geek/Amiberry/amiberry-hats/src/include/inputdevice.h</file>
<file>file:/Users/horaceandthespider/Documents/Geek/Amiberry/amiberry-hats/src/cfgfile.cpp</file>
<file>file:/Users/horaceandthespider/Documents/Geek/Amiberry/amiberry-hats/src/inputdevice.cpp</file>
</group>
</open-files>
</project-private>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,23 @@
#!/bin/sh
#set -x
real_tool=/usr/bin/g++
if [ -n "${__CND_BUILD_LOG__}" ]; then
OS=`uname`;
if [ $OS = Darwin -o $OS = FreeBSD ]; then
__CND_TEMP_FILE__=`mktemp -t nbwrapper`
else
__CND_TEMP_FILE__=`mktemp`
fi
echo "called: ${real_tool}" > ${__CND_TEMP_FILE__}
echo "\t`pwd`" >> ${__CND_TEMP_FILE__}
echo "\t${real_tool}" >> ${__CND_TEMP_FILE__}
for opt in "$@"; do
echo "\t${opt}" >> ${__CND_TEMP_FILE__}
done
echo >> ${__CND_TEMP_FILE__}
cat ${__CND_TEMP_FILE__} >> ${__CND_BUILD_LOG__}
rm ${__CND_TEMP_FILE__}
fi
PATH=`dirname "${real_tool}"`:${PATH}
export PATH
exec "${real_tool}" "$@"

View file

@ -0,0 +1,23 @@
#!/bin/sh
#set -x
real_tool=/usr/bin/gcc
if [ -n "${__CND_BUILD_LOG__}" ]; then
OS=`uname`;
if [ $OS = Darwin -o $OS = FreeBSD ]; then
__CND_TEMP_FILE__=`mktemp -t nbwrapper`
else
__CND_TEMP_FILE__=`mktemp`
fi
echo "called: ${real_tool}" > ${__CND_TEMP_FILE__}
echo "\t`pwd`" >> ${__CND_TEMP_FILE__}
echo "\t${real_tool}" >> ${__CND_TEMP_FILE__}
for opt in "$@"; do
echo "\t${opt}" >> ${__CND_TEMP_FILE__}
done
echo >> ${__CND_TEMP_FILE__}
cat ${__CND_TEMP_FILE__} >> ${__CND_BUILD_LOG__}
rm ${__CND_TEMP_FILE__}
fi
PATH=`dirname "${real_tool}"`:${PATH}
export PATH
exec "${real_tool}" "$@"

View file

@ -0,0 +1,23 @@
#!/bin/sh
#set -x
real_tool=/usr/bin/g++
if [ -n "${__CND_BUILD_LOG__}" ]; then
OS=`uname`;
if [ $OS = Darwin -o $OS = FreeBSD ]; then
__CND_TEMP_FILE__=`mktemp -t nbwrapper`
else
__CND_TEMP_FILE__=`mktemp`
fi
echo "called: ${real_tool}" > ${__CND_TEMP_FILE__}
echo "\t`pwd`" >> ${__CND_TEMP_FILE__}
echo "\t${real_tool}" >> ${__CND_TEMP_FILE__}
for opt in "$@"; do
echo "\t${opt}" >> ${__CND_TEMP_FILE__}
done
echo >> ${__CND_TEMP_FILE__}
cat ${__CND_TEMP_FILE__} >> ${__CND_BUILD_LOG__}
rm ${__CND_TEMP_FILE__}
fi
PATH=`dirname "${real_tool}"`:${PATH}
export PATH
exec "${real_tool}" "$@"

View file

@ -0,0 +1,23 @@
#!/bin/sh
#set -x
real_tool=/usr/bin/gcc
if [ -n "${__CND_BUILD_LOG__}" ]; then
OS=`uname`;
if [ $OS = Darwin -o $OS = FreeBSD ]; then
__CND_TEMP_FILE__=`mktemp -t nbwrapper`
else
__CND_TEMP_FILE__=`mktemp`
fi
echo "called: ${real_tool}" > ${__CND_TEMP_FILE__}
echo "\t`pwd`" >> ${__CND_TEMP_FILE__}
echo "\t${real_tool}" >> ${__CND_TEMP_FILE__}
for opt in "$@"; do
echo "\t${opt}" >> ${__CND_TEMP_FILE__}
done
echo >> ${__CND_TEMP_FILE__}
cat ${__CND_TEMP_FILE__} >> ${__CND_BUILD_LOG__}
rm ${__CND_TEMP_FILE__}
fi
PATH=`dirname "${real_tool}"`:${PATH}
export PATH
exec "${real_tool}" "$@"

View file

@ -0,0 +1,18 @@
#!/bin/sh
#set -x
real_tool=/usr/bin/g++
if [ -n "${__CND_BUILD_LOG__}" ]; then
__CND_TEMP_FILE__=`mktemp`
echo "called: ${real_tool}" > ${__CND_TEMP_FILE__}
echo "\t`pwd`" >> ${__CND_TEMP_FILE__}
echo "\t${real_tool}" >> ${__CND_TEMP_FILE__}
for opt in "$@"; do
echo "\t${opt}" >> ${__CND_TEMP_FILE__}
done
echo >> ${__CND_TEMP_FILE__}
cat ${__CND_TEMP_FILE__} >> ${__CND_BUILD_LOG__}
rm ${__CND_TEMP_FILE__}
fi
PATH=`dirname "${real_tool}"`:${PATH}
export PATH
exec "${real_tool}" "$@"

View file

@ -0,0 +1,18 @@
#!/bin/sh
#set -x
real_tool=/usr/bin/gcc
if [ -n "${__CND_BUILD_LOG__}" ]; then
__CND_TEMP_FILE__=`mktemp`
echo "called: ${real_tool}" > ${__CND_TEMP_FILE__}
echo "\t`pwd`" >> ${__CND_TEMP_FILE__}
echo "\t${real_tool}" >> ${__CND_TEMP_FILE__}
for opt in "$@"; do
echo "\t${opt}" >> ${__CND_TEMP_FILE__}
done
echo >> ${__CND_TEMP_FILE__}
cat ${__CND_TEMP_FILE__} >> ${__CND_BUILD_LOG__}
rm ${__CND_TEMP_FILE__}
fi
PATH=`dirname "${real_tool}"`:${PATH}
export PATH
exec "${real_tool}" "$@"

View file

@ -0,0 +1 @@
#Sat Sep 30 18:59:28 BST 2017

30
nbproject/project.xml Normal file
View file

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://www.netbeans.org/ns/project/1">
<type>org.netbeans.modules.cnd.makeproject</type>
<configuration>
<data xmlns="http://www.netbeans.org/ns/make-project/1">
<name>amiberry</name>
<c-extensions>c</c-extensions>
<cpp-extensions>cpp</cpp-extensions>
<header-extensions>def,h,hpp</header-extensions>
<sourceEncoding>UTF-8</sourceEncoding>
<make-dep-projects/>
<sourceRootList>
<sourceRootElem>.</sourceRootElem>
</sourceRootList>
<confList>
<confElem>
<name>Pi3_Debug</name>
<type>0</type>
</confElem>
<confElem>
<name>Pi3_Release</name>
<type>0</type>
</confElem>
</confList>
<formatting>
<project-formatting-style>false</project-formatting-style>
</formatting>
</data>
</configuration>
</project>

File diff suppressed because it is too large Load diff

View file

@ -60,11 +60,12 @@ static void uae_abort (const TCHAR *format,...)
nomore = 1; nomore = 1;
} }
#define SPEEDUP_CYCLES_JIT 5000 #define SPEEDUP_CYCLES_JIT_PAL 5000
#define SPEEDUP_CYCLES_JIT_NTSC 4000
#define SPEEDUP_CYCLES_NONJIT 256 #define SPEEDUP_CYCLES_NONJIT 256
#define SPEEDUP_TIMELIMIT_JIT -750 #define SPEEDUP_TIMELIMIT_JIT -750
#define SPEEDUP_TIMELIMIT_NONJIT -750 #define SPEEDUP_TIMELIMIT_NONJIT -750
int pissoff_value = SPEEDUP_CYCLES_JIT * CYCLE_UNIT; int pissoff_value = SPEEDUP_CYCLES_JIT_PAL * CYCLE_UNIT;
int speedup_timelimit = SPEEDUP_TIMELIMIT_JIT; int speedup_timelimit = SPEEDUP_TIMELIMIT_JIT;
/* Events */ /* Events */
@ -339,18 +340,20 @@ STATIC_INLINE int ecsshres(void)
void set_speedup_values(void) void set_speedup_values(void)
{ {
if(currprefs.m68k_speed < 0) { if (currprefs.m68k_speed < 0) {
if (currprefs.cachesize) { if (currprefs.cachesize) {
pissoff_value = SPEEDUP_CYCLES_JIT * CYCLE_UNIT; pissoff_value = ((vblank_hz > 55) ? SPEEDUP_CYCLES_JIT_NTSC : SPEEDUP_CYCLES_JIT_PAL) * CYCLE_UNIT;
speedup_timelimit = SPEEDUP_TIMELIMIT_JIT; speedup_timelimit = SPEEDUP_TIMELIMIT_JIT;
} else { }
pissoff_value = SPEEDUP_CYCLES_NONJIT * CYCLE_UNIT; else {
speedup_timelimit = SPEEDUP_TIMELIMIT_NONJIT; pissoff_value = SPEEDUP_CYCLES_NONJIT * CYCLE_UNIT;
} speedup_timelimit = SPEEDUP_TIMELIMIT_NONJIT;
} else { }
pissoff_value = 0; }
speedup_timelimit = 0; else {
} pissoff_value = 0;
speedup_timelimit = 0;
}
} }
void reset_frame_rate_hack (void) void reset_frame_rate_hack (void)
@ -3166,7 +3169,7 @@ static void compute_framesync (void)
lof_changing = 0; lof_changing = 0;
if (beamcon0 & 0x80) { if (beamcon0 & 0x80) {
gui_message(_T("Variable beam counter comparator enabled. Not supported in UAE4ARM.")); gui_message(_T("Variable beam counter comparator enabled. Not supported in Amiberry."));
} }
memset (line_decisions, 0, sizeof line_decisions); memset (line_decisions, 0, sizeof line_decisions);
@ -5937,6 +5940,14 @@ static void hsync_handler_post (bool onvsync)
int lineno = vpos; int lineno = vpos;
if (lineno >= MAXVPOS) if (lineno >= MAXVPOS)
lineno %= MAXVPOS; lineno %= MAXVPOS;
if (currprefs.gfx_vresolution) {
lineno *= 2;
if (interlace_seen) {
if (!lof_current) {
lineno++;
}
}
}
prev_lineno = next_lineno; prev_lineno = next_lineno;
next_lineno = lineno; next_lineno = lineno;
reset_decisions (); reset_decisions ();

View file

@ -124,39 +124,39 @@ void reset_all_systems (void)
uae_int_requested = 0; uae_int_requested = 0;
} }
void do_leave_program (void) void do_leave_program(void)
{ {
#ifdef JIT #ifdef JIT
compiler_exit(); compiler_exit();
#endif #endif
graphics_leave (); graphics_leave();
inputdevice_close (); inputdevice_close();
DISK_free (); DISK_free();
close_sound (); close_sound();
dump_counts (); dump_counts();
#ifdef CD32 #ifdef CD32
akiko_free (); akiko_free();
cd32_fmv_free(); cd32_fmv_free();
#endif #endif
gui_exit (); gui_exit();
#ifdef USE_SDL #if defined (USE_SDL1) || defined(USE_SDL2)
SDL_Quit (); SDL_Quit();
#endif #endif
hardfile_reset(); hardfile_reset();
#ifdef AUTOCONFIG #ifdef AUTOCONFIG
expansion_cleanup (); expansion_cleanup();
#endif #endif
#ifdef FILESYS #ifdef FILESYS
filesys_cleanup (); filesys_cleanup();
#endif #endif
#ifdef BSDSOCKET #ifdef BSDSOCKET
bsdlib_reset (); bsdlib_reset();
#endif #endif
gayle_free (); gayle_free();
device_func_reset (); device_func_reset();
memory_cleanup (); memory_cleanup();
cfgfile_addcfgparam (0); cfgfile_addcfgparam(0);
machdep_free (); machdep_free();
rtarea_free(); rtarea_free();
} }

View file

@ -49,7 +49,7 @@
#include "audio.h" #include "audio.h"
#include "devices.h" #include "devices.h"
#define VERTICAL_OFFSET 18; #define VERTICAL_OFFSET 18
#define RENDER_SIGNAL_PARTIAL 1 #define RENDER_SIGNAL_PARTIAL 1
#define RENDER_SIGNAL_FRAME_DONE 2 #define RENDER_SIGNAL_FRAME_DONE 2
@ -86,6 +86,8 @@ bool aga_mode; /* mirror of chipset_mask & CSMASK_AGA */
coordinates have a lower resolution (i.e. we're shrinking the image). */ coordinates have a lower resolution (i.e. we're shrinking the image). */
static int res_shift; static int res_shift;
static int linedbl;
int interlace_seen; int interlace_seen;
/* Lookup tables for dual playfields. The dblpf_*1 versions are for the case /* Lookup tables for dual playfields. The dblpf_*1 versions are for the case
@ -154,11 +156,10 @@ static uae_u16 ham_linebuf[MAX_PIXELS_PER_LINE * 2];
static uae_u8 *xlinebuffer; static uae_u8 *xlinebuffer;
#define MAX_VIDHEIGHT 270 static int *amiga2aspect_line_map, *native2amiga_line_map;
static uae_u8 **row_map;
static int *native2amiga_line_map;
static uae_u8 *row_map[MAX_VIDHEIGHT + 1];
static uae_u8 row_tmp[MAX_PIXELS_PER_LINE * 32 / 8]; static uae_u8 row_tmp[MAX_PIXELS_PER_LINE * 32 / 8];
static int max_drawn_amiga_line;
/* line_draw_funcs: pfield_do_linetoscr, pfield_do_fill_line, decode_ham */ /* line_draw_funcs: pfield_do_linetoscr, pfield_do_fill_line, decode_ham */
typedef void (*line_draw_func)(int, int, bool); typedef void (*line_draw_func)(int, int, bool);
@ -166,6 +167,7 @@ typedef void (*line_draw_func)(int, int, bool);
static bool screenlocked = false; static bool screenlocked = false;
static int next_line_to_render = 0; static int next_line_to_render = 0;
static int linestate_first_undecided = 0; static int linestate_first_undecided = 0;
static bool nextline_as_previous = false;
uae_u8 line_data[(MAXVPOS + 2) * 2][MAX_PLANES * MAX_WORDS_PER_LINE * 2]; uae_u8 line_data[(MAXVPOS + 2) * 2][MAX_PLANES * MAX_WORDS_PER_LINE * 2];
@ -174,7 +176,8 @@ uae_u8 line_data[(MAXVPOS + 2) * 2][MAX_PLANES * MAX_WORDS_PER_LINE * 2];
static int visible_left_border, visible_right_border; static int visible_left_border, visible_right_border;
static int linetoscr_x_adjust_pixbytes, linetoscr_x_adjust_pixels; static int linetoscr_x_adjust_pixbytes, linetoscr_x_adjust_pixels;
static int thisframe_y_adjust_real, max_ypos_thisframe; static int thisframe_y_adjust;
static int thisframe_y_adjust_real, max_ypos_thisframe, min_ypos_for_screen;
#define MAX_STOP 30000 #define MAX_STOP 30000
@ -222,7 +225,7 @@ int coord_native_to_amiga_x (int x)
int coord_native_to_amiga_y (int y) int coord_native_to_amiga_y (int y)
{ {
return native2amiga_line_map[y]; return native2amiga_line_map[y] + thisframe_y_adjust - minfirstline;
} }
STATIC_INLINE int res_shift_from_window (int x) STATIC_INLINE int res_shift_from_window (int x)
@ -1457,42 +1460,73 @@ static void pfield_doline (int lineno)
void init_row_map (void) void init_row_map (void)
{ {
int i, j; static uae_u8 *oldbufmem;
static int oldheight, oldpitch;
int i, j;
for (i = gfxvidinfo.drawbuffer.outheight; i < MAX_VIDHEIGHT + 1; i++) if (!row_map) {
row_map[i] = row_tmp; row_map = xmalloc(uae_u8*, max_uae_height + 1);
for (i = 0, j = 0; i < gfxvidinfo.drawbuffer.outheight; i++, j += gfxvidinfo.drawbuffer.rowbytes) { }
if (oldbufmem && oldbufmem == gfxvidinfo.drawbuffer.bufmem &&
oldheight == gfxvidinfo.drawbuffer.outheight &&
oldpitch == gfxvidinfo.drawbuffer.rowbytes)
return;
j = oldheight == 0 ? max_uae_height : oldheight;
for (i = gfxvidinfo.drawbuffer.outheight; i < max_uae_height + 1 && i < j + 1; i++) {
row_map[i] = row_tmp;
}
for (i = 0, j = 0; i < gfxvidinfo.drawbuffer.outheight; i++, j += gfxvidinfo.drawbuffer.rowbytes) {
row_map[i] = gfxvidinfo.drawbuffer.bufmem + j; row_map[i] = gfxvidinfo.drawbuffer.bufmem + j;
} }
oldbufmem = gfxvidinfo.drawbuffer.bufmem;
oldheight = gfxvidinfo.drawbuffer.outheight;
oldpitch = gfxvidinfo.drawbuffer.rowbytes;
} }
static void init_aspect_maps (void) static void init_aspect_maps (void)
{ {
int i, maxl, h; int i, maxl, h;
h = gfxvidinfo.drawbuffer.outheight; linedbl = currprefs.gfx_vresolution;
maxl = (MAXVPOS + 1) << linedbl;
min_ypos_for_screen = minfirstline << linedbl;
max_drawn_amiga_line = -1;
if (h == 0) h = gfxvidinfo.drawbuffer.outheight;
/* Do nothing if the gfx driver hasn't initialized the screen yet */ if (h == 0)
return; /* Do nothing if the gfx driver hasn't initialized the screen yet */
return;
if (native2amiga_line_map) if (native2amiga_line_map)
xfree (native2amiga_line_map); xfree(native2amiga_line_map);
if (amiga2aspect_line_map)
xfree(amiga2aspect_line_map);
native2amiga_line_map = xmalloc (int, h); /* At least for this array the +1 is necessary. */
amiga2aspect_line_map = xmalloc(int, (MAXVPOS + 1) * 2 + 1);
native2amiga_line_map = xmalloc(int, h);
maxl = (MAXVPOS + 1); for (i = 0; i < maxl; i++) {
int v = i - min_ypos_for_screen;
if (v >= h && max_drawn_amiga_line < 0)
max_drawn_amiga_line = v;
if (i < min_ypos_for_screen || v >= h)
v = -1;
amiga2aspect_line_map[i] = v;
}
if (max_drawn_amiga_line < 0)
max_drawn_amiga_line = maxl - min_ypos_for_screen;
for (i = 0; i < h; i++) for (i = 0; i < h; i++)
native2amiga_line_map[i] = -1; native2amiga_line_map[i] = -1;
for (i = maxl - 1; i >= minfirstline; i--) { for (i = maxl - 1; i >= min_ypos_for_screen; i--) {
for (int j = i - minfirstline; j < h && native2amiga_line_map[j] == -1; j++) int j;
#ifdef PANDORA if (amiga2aspect_line_map[i] == -1)
native2amiga_line_map[j] = i + currprefs.pandora_vertical_offset; continue;
#else for (j = amiga2aspect_line_map[i]; j < h && native2amiga_line_map[j] == -1; j++)
native2amiga_line_map[j] = i; native2amiga_line_map[j] = (i + VERTICAL_OFFSET) >> linedbl;
#endif
} }
} }
@ -1718,149 +1752,189 @@ STATIC_INLINE bool is_color_changes(struct draw_info *di)
return changes > 1 || (changes == 1 && regno != 0xffff && regno != -1); return changes > 1 || (changes == 1 && regno != 0xffff && regno != -1);
} }
static void pfield_draw_line (int lineno, int gfx_ypos) static void pfield_draw_line(int lineno, int gfx_ypos, int follow_ypos)
{ {
int border = 0; int border = 0;
int do_double = 0;
bool have_color_changes; bool have_color_changes;
dp_for_drawing = line_decisions + lineno; dp_for_drawing = line_decisions + lineno;
dip_for_drawing = curr_drawinfo + lineno; dip_for_drawing = curr_drawinfo + lineno;
if (currprefs.gfx_vresolution && !interlace_seen) {
if (nextline_as_previous) {
nextline_as_previous = false;
return;
}
nextline_as_previous = true;
if (follow_ypos >= 0)
do_double = 1;
}
if (dp_for_drawing->plfleft < 0) if (dp_for_drawing->plfleft < 0)
border = 1; border = 1;
have_color_changes = is_color_changes(dip_for_drawing); have_color_changes = is_color_changes(dip_for_drawing);
xlinebuffer = row_map[gfx_ypos]; xlinebuffer = row_map[gfx_ypos];
xlinebuffer -= linetoscr_x_adjust_pixbytes; xlinebuffer -= linetoscr_x_adjust_pixbytes;
if (border == 0) { if (border == 0) {
pfield_expand_dp_bplcon (); pfield_expand_dp_bplcon();
pfield_init_linetoscr (false); pfield_init_linetoscr(false);
pfield_doline (lineno); pfield_doline(lineno);
adjust_drawing_colors (dp_for_drawing->ctable, dp_for_drawing->ham_seen || bplehb || ecsshres); adjust_drawing_colors(dp_for_drawing->ctable, dp_for_drawing->ham_seen || bplehb || ecsshres);
/* The problem is that we must call decode_ham() BEFORE we do the sprites. */ /* The problem is that we must call decode_ham() BEFORE we do the sprites. */
if (dp_for_drawing->ham_seen) { if (dp_for_drawing->ham_seen) {
int ohposblank = hposblank; int ohposblank = hposblank;
uae_u8 b0 = dp_for_drawing->bplcon0; uae_u8 b0 = dp_for_drawing->bplcon0;
uae_u8 b2 = dp_for_drawing->bplcon2; uae_u8 b2 = dp_for_drawing->bplcon2;
uae_u8 b3 = dp_for_drawing->bplcon3; uae_u8 b3 = dp_for_drawing->bplcon3;
uae_u8 b4 = dp_for_drawing->bplcon4; uae_u8 b4 = dp_for_drawing->bplcon4;
init_ham_decoding (); init_ham_decoding();
do_color_changes (dummy_worker, decode_ham); do_color_changes(dummy_worker, decode_ham);
if (have_color_changes) { if (have_color_changes) {
// do_color_changes() did color changes and register changes, restore them. // do_color_changes() did color changes and register changes, restore them.
adjust_drawing_colors (dp_for_drawing->ctable, -1); adjust_drawing_colors(dp_for_drawing->ctable, -1);
dp_for_drawing->bplcon0 = b0; dp_for_drawing->bplcon0 = b0;
dp_for_drawing->bplcon2 = b2; dp_for_drawing->bplcon2 = b2;
dp_for_drawing->bplcon3 = b3; dp_for_drawing->bplcon3 = b3;
dp_for_drawing->bplcon4 = b4; dp_for_drawing->bplcon4 = b4;
pfield_expand_dp_bplcon (); pfield_expand_dp_bplcon();
} }
hposblank = ohposblank; hposblank = ohposblank;
ham_decode_pixel = src_pixel; ham_decode_pixel = src_pixel;
bplham = dp_for_drawing->ham_at_start; bplham = dp_for_drawing->ham_at_start;
} }
if (dip_for_drawing->nr_sprites) { if (dip_for_drawing->nr_sprites) {
int i; int i;
if (ce_is_bordersprite(colors_for_drawing.extra) && dp_for_drawing->bordersprite_seen && !ce_is_borderblank(colors_for_drawing.extra)) if (ce_is_bordersprite(colors_for_drawing.extra) && dp_for_drawing->bordersprite_seen && !ce_is_borderblank(colors_for_drawing.extra))
clear_bitplane_border_aga (); clear_bitplane_border_aga();
for (i = 0; i < dip_for_drawing->nr_sprites; i++) { for (i = 0; i < dip_for_drawing->nr_sprites; i++) {
if (currprefs.chipset_mask & CSMASK_AGA) if (currprefs.chipset_mask & CSMASK_AGA)
draw_sprites_aga (curr_sprite_entries + dip_for_drawing->first_sprite_entry + i, 1); draw_sprites_aga(curr_sprite_entries + dip_for_drawing->first_sprite_entry + i, 1);
else else
draw_sprites_ecs (curr_sprite_entries + dip_for_drawing->first_sprite_entry + i); draw_sprites_ecs(curr_sprite_entries + dip_for_drawing->first_sprite_entry + i);
} }
} }
if (dip_for_drawing->nr_sprites && ce_is_bordersprite(colors_for_drawing.extra) && !ce_is_borderblank(colors_for_drawing.extra) && dp_for_drawing->bordersprite_seen) if (dip_for_drawing->nr_sprites && ce_is_bordersprite(colors_for_drawing.extra) && !ce_is_borderblank(colors_for_drawing.extra) && dp_for_drawing->bordersprite_seen)
do_color_changes (pfield_do_linetoscr_bordersprite_aga, pfield_do_linetoscr_spr); do_color_changes(pfield_do_linetoscr_bordersprite_aga, pfield_do_linetoscr_spr);
else else
do_color_changes (pfield_do_fill_line, dip_for_drawing->nr_sprites ? pfield_do_linetoscr_spr : pfield_do_linetoscr); do_color_changes(pfield_do_fill_line, dip_for_drawing->nr_sprites ? pfield_do_linetoscr_spr : pfield_do_linetoscr);
if (do_double) {
memcpy(row_map[follow_ypos], row_map[gfx_ypos], gfxvidinfo.drawbuffer.pixbytes * gfxvidinfo.drawbuffer.outwidth);
}
if (dip_for_drawing->nr_sprites) if (dip_for_drawing->nr_sprites)
pfield_erase_hborder_sprites (); pfield_erase_hborder_sprites();
} else { // border > 0: top or bottom border }
else { // border > 0: top or bottom border
bool dosprites = false; bool dosprites = false;
adjust_drawing_colors (dp_for_drawing->ctable, 0); adjust_drawing_colors(dp_for_drawing->ctable, 0);
if (dp_for_drawing->bordersprite_seen && !ce_is_borderblank(colors_for_drawing.extra) && dip_for_drawing->nr_sprites) { if (dp_for_drawing->bordersprite_seen && !ce_is_borderblank(colors_for_drawing.extra) && dip_for_drawing->nr_sprites) {
dosprites = true; dosprites = true;
pfield_expand_dp_bplcon (); pfield_expand_dp_bplcon();
pfield_init_linetoscr (true); pfield_init_linetoscr(true);
pfield_erase_vborder_sprites (); pfield_erase_vborder_sprites();
} }
if (!dosprites && !have_color_changes) { if (!dosprites && !have_color_changes) {
if (dp_for_drawing->plfleft < -1) { if (dp_for_drawing->plfleft < -1) {
// blanked border line // blanked border line
int tmp = hposblank; int tmp = hposblank;
hposblank = 1; hposblank = 1;
fill_line_border(lineno); fill_line_border(lineno);
hposblank = tmp; hposblank = tmp;
} else { }
// normal border line else {
fill_line_border(lineno); // normal border line
} fill_line_border(lineno);
}
if (do_double) {
xlinebuffer = row_map[follow_ypos] - linetoscr_x_adjust_pixbytes;
fill_line_border(lineno);
}
return; return;
} }
if (dosprites) { if (dosprites) {
for (int i = 0; i < dip_for_drawing->nr_sprites; i++) for (int i = 0; i < dip_for_drawing->nr_sprites; i++)
draw_sprites_aga (curr_sprite_entries + dip_for_drawing->first_sprite_entry + i, 1); draw_sprites_aga(curr_sprite_entries + dip_for_drawing->first_sprite_entry + i, 1);
do_color_changes (pfield_do_linetoscr_bordersprite_aga, pfield_do_linetoscr_bordersprite_aga); do_color_changes(pfield_do_linetoscr_bordersprite_aga, pfield_do_linetoscr_bordersprite_aga);
} else { }
else {
playfield_start = visible_right_border; playfield_start = visible_right_border;
playfield_end = visible_right_border; playfield_end = visible_right_border;
do_color_changes(pfield_do_fill_line, pfield_do_fill_line); do_color_changes(pfield_do_fill_line, pfield_do_fill_line);
} }
if (do_double) {
memcpy(row_map[follow_ypos], row_map[gfx_ypos], gfxvidinfo.drawbuffer.pixbytes * gfxvidinfo.drawbuffer.outwidth);
}
} }
} }
static void center_image (void) static void center_image(void)
{ {
int deltaToBorder; const int deltaToBorder = (gfxvidinfo.drawbuffer.outwidth >> currprefs.gfx_resolution) - 320;
deltaToBorder = (gfxvidinfo.drawbuffer.outwidth >> currprefs.gfx_resolution) - 320;
visible_left_border = 73 - (deltaToBorder >> 1); visible_left_border = 73 - (deltaToBorder >> 1);
visible_right_border = 393 + (deltaToBorder >> 1); visible_right_border = 393 + (deltaToBorder >> 1);
visible_left_border <<= lores_shift; visible_left_border <<= lores_shift;
visible_right_border <<= lores_shift; visible_right_border <<= lores_shift;
linetoscr_x_adjust_pixels = visible_left_border; linetoscr_x_adjust_pixels = visible_left_border;
linetoscr_x_adjust_pixbytes = linetoscr_x_adjust_pixels * gfxvidinfo.drawbuffer.pixbytes; linetoscr_x_adjust_pixbytes = linetoscr_x_adjust_pixels * gfxvidinfo.drawbuffer.pixbytes;
int max_drawn_amiga_line_tmp = max_drawn_amiga_line;
if (max_drawn_amiga_line_tmp > gfxvidinfo.drawbuffer.outheight)
max_drawn_amiga_line_tmp = gfxvidinfo.drawbuffer.outheight;
max_drawn_amiga_line_tmp >>= linedbl;
#ifdef PANDORA #ifdef PANDORA
thisframe_y_adjust_real = minfirstline + currprefs.pandora_vertical_offset; thisframe_y_adjust = minfirstline + currprefs.pandora_vertical_offset;
#else #else
thisframe_y_adjust_real = minfirstline + VERTICAL_OFFSET; thisframe_y_adjust = minfirstline + VERTICAL_OFFSET;
#endif #endif
max_ypos_thisframe = (maxvpos_display - minfirstline);
/* Make sure the value makes sense */
if (thisframe_y_adjust + max_drawn_amiga_line_tmp > maxvpos + maxvpos / 2)
thisframe_y_adjust = maxvpos + maxvpos / 2 - max_drawn_amiga_line_tmp;
if (thisframe_y_adjust < 0)
thisframe_y_adjust = 0;
thisframe_y_adjust_real = thisframe_y_adjust << linedbl;
max_ypos_thisframe = (maxvpos_display - minfirstline + 1) << linedbl;
} }
static void init_drawing_frame (void) static void init_drawing_frame (void)
{ {
lores_reset(); lores_reset();
init_hardware_for_drawing_frame (); init_hardware_for_drawing_frame();
linestate_first_undecided = 0; linestate_first_undecided = 0;
nextline_as_previous = false;
center_image (); center_image();
drawing_color_matches = -1; drawing_color_matches = -1;
} }
static void draw_status_line (int line, int statusy) static void draw_status_line (int line, int statusy)
@ -1875,21 +1949,28 @@ static void draw_status_line (int line, int statusy)
static void partial_draw_frame(void) static void partial_draw_frame(void)
{ {
if (framecnt == 0) { if (framecnt == 0) {
if(!screenlocked) { if (!screenlocked) {
if(!lockscr()) if (!lockscr())
return; return;
screenlocked = true; screenlocked = true;
} }
struct vidbuffer *vb = &gfxvidinfo.drawbuffer; struct vidbuffer *vb = &gfxvidinfo.drawbuffer;
for (; next_line_to_render < max_ypos_thisframe && next_line_to_render < vb->outheight; ++next_line_to_render) { for (; next_line_to_render < max_ypos_thisframe; ++next_line_to_render) {
int line = next_line_to_render + thisframe_y_adjust_real; int i1 = next_line_to_render + min_ypos_for_screen;
if(line >= linestate_first_undecided) int line = next_line_to_render + thisframe_y_adjust_real;
break; int whereline = amiga2aspect_line_map[i1];
hposblank = 0; int wherenext = amiga2aspect_line_map[i1 + 1];
pfield_draw_line (line, next_line_to_render);
} if (whereline >= vb->outheight || line >= linestate_first_undecided)
} break;
if (whereline < 0)
continue;
hposblank = 0;
pfield_draw_line(line, whereline, wherenext);
}
}
} }
void halt_draw_frame(void) void halt_draw_frame(void)
@ -1905,36 +1986,42 @@ static void finish_drawing_frame (void)
int i; int i;
struct vidbuffer *vb = &gfxvidinfo.drawbuffer; struct vidbuffer *vb = &gfxvidinfo.drawbuffer;
if(!screenlocked) { if (!screenlocked) {
if(!lockscr()) if (!lockscr())
return; return;
screenlocked = true; screenlocked = true;
}
for (i = next_line_to_render; i < max_ypos_thisframe && i < vb->outheight; i++) {
int line = i + thisframe_y_adjust_real;
if(line >= linestate_first_undecided)
break;
hposblank = 0;
pfield_draw_line (line, i);
} }
for (i = next_line_to_render; i < max_ypos_thisframe; i++) {
int i1 = i + min_ypos_for_screen;
int line = i + thisframe_y_adjust_real;
int whereline = amiga2aspect_line_map[i1];
int wherenext = amiga2aspect_line_map[i1 + 1];
if (whereline >= vb->outheight || line >= linestate_first_undecided)
break;
if (whereline < 0)
continue;
hposblank = 0;
pfield_draw_line(line, whereline, wherenext);
}
if (currprefs.leds_on_screen) { if (currprefs.leds_on_screen) {
for (i = 0; i < TD_TOTAL_HEIGHT; i++) { for (i = 0; i < TD_TOTAL_HEIGHT; i++) {
int line = gfxvidinfo.drawbuffer.outheight - TD_TOTAL_HEIGHT + i; int line = gfxvidinfo.drawbuffer.outheight - TD_TOTAL_HEIGHT + i;
draw_status_line (line, i); draw_status_line(line, i);
} }
} }
if (currprefs.cs_cd32fmv) { if (currprefs.cs_cd32fmv) {
if (cd32_fmv_active) { if (cd32_fmv_active) {
cd32_fmv_genlock(vb, &gfxvidinfo.drawbuffer); cd32_fmv_genlock(vb, &gfxvidinfo.drawbuffer);
} }
} }
do_flush_screen (); do_flush_screen();
next_line_to_render = 0; next_line_to_render = 0;
} }
void check_prefs_picasso(void) void check_prefs_picasso(void)
@ -2013,19 +2100,24 @@ void vsync_handle_redraw (void)
gui_flicker_led (-1, 0, 0); gui_flicker_led (-1, 0, 0);
} }
void hsync_record_line_state (int lineno) void hsync_record_line_state(int lineno)
{ {
if (framecnt != 0) if (framecnt != 0)
return; return;
linestate_first_undecided = lineno + 1; linestate_first_undecided = lineno + 1;
if(render_tid && !(linestate_first_undecided & 0x1f) && !render_thread_busy) { if (render_tid && linestate_first_undecided > 3 && !render_thread_busy) {
write_comm_pipe_u32 (render_pipe, RENDER_SIGNAL_PARTIAL, 1); if (currprefs.gfx_vresolution) {
} if (!(linestate_first_undecided & 0x3e))
write_comm_pipe_u32(render_pipe, RENDER_SIGNAL_PARTIAL, 1);
}
else if (!(linestate_first_undecided & 0x1f))
write_comm_pipe_u32(render_pipe, RENDER_SIGNAL_PARTIAL, 1);
}
} }
bool notice_interlace_seen (bool lace) bool notice_interlace_seen(bool lace)
{ {
bool changed = false; bool changed = false;
// non-lace to lace switch (non-lace active at least one frame)? // non-lace to lace switch (non-lace active at least one frame)?
@ -2033,8 +2125,9 @@ bool notice_interlace_seen (bool lace)
if (interlace_seen == 0) { if (interlace_seen == 0) {
changed = true; changed = true;
} }
interlace_seen = -1; interlace_seen = currprefs.gfx_vresolution ? 1 : -1;
} else { }
else {
if (interlace_seen) { if (interlace_seen) {
changed = true; changed = true;
} }
@ -2043,20 +2136,21 @@ bool notice_interlace_seen (bool lace)
return changed; return changed;
} }
void reset_drawing (void) void reset_drawing(void)
{ {
lores_reset (); lores_reset();
linestate_first_undecided = 0; linestate_first_undecided = 0;
nextline_as_previous = false;
init_aspect_maps ();
init_row_map(); init_aspect_maps();
memset(spixels, 0, sizeof spixels); init_row_map();
memset(&spixstate, 0, sizeof spixstate);
init_drawing_frame (); memset(spixels, 0, sizeof spixels);
memset(&spixstate, 0, sizeof spixstate);
init_drawing_frame();
pfield_set_linetoscr(); pfield_set_linetoscr();
} }

View file

@ -85,7 +85,7 @@ int fsdb_fill_file_attrs (a_inode *base, a_inode *aino)
| (S_IWUSR & statbuf.st_mode ? 0 : A_FIBF_WRITE) | (S_IWUSR & statbuf.st_mode ? 0 : A_FIBF_WRITE)
| (S_IRUSR & statbuf.st_mode ? 0 : A_FIBF_READ)); | (S_IRUSR & statbuf.st_mode ? 0 : A_FIBF_READ));
#if defined(WIN32) || defined(ANDROIDSDL) || defined(AMIBERRY) #if defined(WIN32) || defined(AMIBERRY)
// Always give execute & read permission // Always give execute & read permission
// Temporary do this for raspberry... // Temporary do this for raspberry...
aino->amigaos_mode &= ~A_FIBF_EXECUTE; aino->amigaos_mode &= ~A_FIBF_EXECUTE;

View file

@ -145,6 +145,9 @@ extern unsigned int xredcolors[256], xgreencolors[256], xbluecolors[256];
#define RES_HIRES 1 #define RES_HIRES 1
#define RES_SUPERHIRES 2 #define RES_SUPERHIRES 2
#define RES_MAX 2 #define RES_MAX 2
#define VRES_NONDOUBLE 0
#define VRES_DOUBLE 1
#define VRES_MAX 1
/* get resolution from bplcon0 */ /* get resolution from bplcon0 */
STATIC_INLINE int GET_RES_DENISE (uae_u16 con0) STATIC_INLINE int GET_RES_DENISE (uae_u16 con0)

View file

@ -91,7 +91,7 @@ typedef enum {
NUMSG_KICKREPNO, NUMSG_KICKREPNO,
NUMSG_KS68030PLUS, NUMSG_KS68030PLUS,
NUMSG_NOMEMORY, NUMSG_NOMEMORY,
NUMSG_LAST NUMSG_LAST // 20
} notify_user_msg; } notify_user_msg;
#endif /* UAE_GUI_H */ #endif /* UAE_GUI_H */

View file

@ -7,6 +7,16 @@
*/ */
#pragma once #pragma once
#ifdef USE_SDL1
#define KEYCODE_UNK 0
#define KEYCODE_X11 1
#define KEYCODE_FBCON 2
extern char keyboard_type;
extern void init_keyboard(void);
#endif
/* First, two dummies */ /* First, two dummies */
#define AK_mousestuff 0x100 #define AK_mousestuff 0x100
#define AK_inhibit 0x101 #define AK_inhibit 0x101

View file

@ -314,6 +314,7 @@ struct uae_prefs {
struct wh gfx_size; struct wh gfx_size;
struct apmode gfx_apmode[2]; struct apmode gfx_apmode[2];
int gfx_resolution; int gfx_resolution;
int gfx_vresolution;
bool immediate_blits; bool immediate_blits;
int waiting_blits; int waiting_blits;
@ -408,7 +409,16 @@ struct uae_prefs {
int kbd_led_num; int kbd_led_num;
int kbd_led_scr; int kbd_led_scr;
int kbd_led_cap; int kbd_led_cap;
#ifdef USE_SDL1
int gfx_correct_aspect;
int gfx_fullscreen_ratio;
#endif
#ifdef USE_SDL2
int scaling_method; int scaling_method;
#endif
bool customControls; bool customControls;
TCHAR custom_up[256]; TCHAR custom_up[256];
TCHAR custom_down[256]; TCHAR custom_down[256];
@ -421,6 +431,7 @@ struct uae_prefs {
TCHAR custom_l[256]; TCHAR custom_l[256];
TCHAR custom_r[256]; TCHAR custom_r[256];
TCHAR custom_play[256]; TCHAR custom_play[256];
TCHAR open_gui[256]; TCHAR open_gui[256];
TCHAR quit_amiberry[256]; TCHAR quit_amiberry[256];
#endif #endif

View file

@ -438,7 +438,7 @@ STATIC_INLINE uae_u32 do_byteswap_16(uae_u32 v) {
# endif # endif
# else # else
/* Else, if using SDL, try SDL's endian functions. */ /* Else, if using SDL, try SDL's endian functions. */
# ifdef USE_SDL # if defined (USE_SDL1) || defined (USE_SDL2)
# include <SDL_endian.h> # include <SDL_endian.h>
# define bswap_16(x) SDL_Swap16(x) # define bswap_16(x) SDL_Swap16(x)
# define bswap_32(x) SDL_Swap32(x) # define bswap_32(x) SDL_Swap32(x)
@ -448,7 +448,8 @@ STATIC_INLINE uae_u32 do_byteswap_16(uae_u32 v) {
#define bswap_32(x) (((x) << 24) | (((x) << 8) & 0x00FF0000) | (((x) >> 8) & 0x0000FF00) | ((x) >> 24)) #define bswap_32(x) (((x) << 24) | (((x) << 8) & 0x00FF0000) | (((x) >> 8) & 0x0000FF00) | ((x) >> 24))
# endif # endif
#endif #endif
#endif
#endif /* ARMV6_ASSEMBLY*/
#ifndef __cplusplus #ifndef __cplusplus

View file

@ -5548,34 +5548,36 @@ int inputdevice_config_change_test (void)
} }
// copy configuration #src to configuration #dst // copy configuration #src to configuration #dst
void inputdevice_copyconfig (struct uae_prefs *src, struct uae_prefs *dst) void inputdevice_copyconfig(struct uae_prefs *src, struct uae_prefs *dst)
{ {
dst->input_selected_setting = src->input_selected_setting; dst->input_selected_setting = src->input_selected_setting;
dst->input_joymouse_multiplier = src->input_joymouse_multiplier; dst->input_joymouse_multiplier = src->input_joymouse_multiplier;
dst->input_joymouse_deadzone = src->input_joymouse_deadzone; dst->input_joymouse_deadzone = src->input_joymouse_deadzone;
dst->input_joystick_deadzone = src->input_joystick_deadzone; dst->input_joystick_deadzone = src->input_joystick_deadzone;
dst->input_joymouse_speed = src->input_joymouse_speed; dst->input_joymouse_speed = src->input_joymouse_speed;
dst->input_mouse_speed = src->input_mouse_speed; dst->input_mouse_speed = src->input_mouse_speed;
dst->input_autofire_linecnt = src->input_autofire_linecnt; dst->input_autofire_linecnt = src->input_autofire_linecnt;
strcpy(dst->open_gui,src->open_gui); #ifdef AMIBERRY
strcpy(dst->quit_amiberry,src->quit_amiberry); strcpy(dst->open_gui, src->open_gui);
dst->amiberry_use_retroarch_quit = src->amiberry_use_retroarch_quit; strcpy(dst->quit_amiberry, src->quit_amiberry);
dst->amiberry_use_retroarch_menu = src->amiberry_use_retroarch_menu; dst->amiberry_use_retroarch_quit = src->amiberry_use_retroarch_quit;
dst->amiberry_use_retroarch_reset = src->amiberry_use_retroarch_reset; dst->amiberry_use_retroarch_menu = src->amiberry_use_retroarch_menu;
dst->amiberry_use_retroarch_reset = src->amiberry_use_retroarch_reset;
#endif
for (int i = 0; i < MAX_JPORTS; i++) { for (int i = 0; i < MAX_JPORTS; i++) {
copyjport (src, dst, i); copyjport(src, dst, i);
} }
for (int i = 0; i < MAX_INPUT_SETTINGS; i++) { for (int i = 0; i < MAX_INPUT_SETTINGS; i++) {
for (int j = 0; j < MAX_INPUT_DEVICES; j++) { for (int j = 0; j < MAX_INPUT_DEVICES; j++) {
memcpy (&dst->joystick_settings[i][j], &src->joystick_settings[i][j], sizeof (struct uae_input_device)); memcpy(&dst->joystick_settings[i][j], &src->joystick_settings[i][j], sizeof(struct uae_input_device));
memcpy (&dst->mouse_settings[i][j], &src->mouse_settings[i][j], sizeof (struct uae_input_device)); memcpy(&dst->mouse_settings[i][j], &src->mouse_settings[i][j], sizeof(struct uae_input_device));
memcpy (&dst->keyboard_settings[i][j], &src->keyboard_settings[i][j], sizeof (struct uae_input_device)); memcpy(&dst->keyboard_settings[i][j], &src->keyboard_settings[i][j], sizeof(struct uae_input_device));
} }
} }
inputdevice_updateconfig (src, dst); inputdevice_updateconfig(src, dst);
} }
static void swapevent (struct uae_input_device *uid, int i, int j, int evt) static void swapevent (struct uae_input_device *uid, int i, int j, int evt)

View file

@ -34,7 +34,11 @@
#include "devices.h" #include "devices.h"
#include "jit/compemu.h" #include "jit/compemu.h"
#ifdef USE_SDL #ifdef USE_SDL1
#include "SDL.h"
#endif
#ifdef USE_SDL2
#include "SDL.h" #include "SDL.h"
#include <iostream> #include <iostream>
#include "amiberry_gfx.h" #include "amiberry_gfx.h"
@ -495,7 +499,7 @@ void print_usage()
printf("Parameters are parsed from the beginning of command line, so in case of ambiguity for parameters, last one will be used.\n"); printf("Parameters are parsed from the beginning of command line, so in case of ambiguity for parameters, last one will be used.\n");
printf("File names should be with absolute path.\n"); printf("File names should be with absolute path.\n");
printf("\nExample:\n"); printf("\nExample:\n");
printf("uae4arm -config=conf/A500.uae -statefile=savestates/game.uss -s use_gui=no\n"); printf("amiberry -config=conf/A500.uae -statefile=savestates/game.uss -s use_gui=no\n");
printf("It will load A500.uae configuration with the save state named game.\n"); printf("It will load A500.uae configuration with the save state named game.\n");
printf("It will override use_gui to 'no' so that it enters emulation directly.\n"); printf("It will override use_gui to 'no' so that it enters emulation directly.\n");
exit(1); exit(1);
@ -653,6 +657,7 @@ void leave_program (void)
do_leave_program (); do_leave_program ();
} }
#ifdef USE_SDL2
// In case of error, print the error code and close the application // In case of error, print the error code and close the application
void check_error_sdl(bool check, const char* message) { void check_error_sdl(bool check, const char* message) {
if (check) { if (check) {
@ -671,13 +676,13 @@ static void initialize_sdl2()
} }
sdlWindow = SDL_CreateWindow("Amiberry-SDL2 v2", sdlWindow = SDL_CreateWindow("Amiberry-SDL2 v2",
SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED,
SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED,
0, 0,
0, 0,
SDL_WINDOW_FULLSCREEN_DESKTOP); SDL_WINDOW_FULLSCREEN_DESKTOP);
check_error_sdl(sdlWindow == nullptr, "Unable to create window"); check_error_sdl(sdlWindow == nullptr, "Unable to create window");
renderer = SDL_CreateRenderer(sdlWindow, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC); renderer = SDL_CreateRenderer(sdlWindow, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
check_error_sdl(renderer == nullptr, "Unable to create a renderer"); check_error_sdl(renderer == nullptr, "Unable to create a renderer");
@ -685,16 +690,33 @@ static void initialize_sdl2()
{ {
SDL_Log("Could not get information about SDL Mode! SDL_Error: %s\n", SDL_GetError()); SDL_Log("Could not get information about SDL Mode! SDL_Error: %s\n", SDL_GetError());
} }
if (SDL_SetHint(SDL_HINT_GRAB_KEYBOARD, "1") != SDL_TRUE) if (SDL_SetHint(SDL_HINT_GRAB_KEYBOARD, "1") != SDL_TRUE)
SDL_Log("SDL could not grab the keyboard"); SDL_Log("SDL could not grab the keyboard");
SDL_ShowCursor(SDL_DISABLE); SDL_ShowCursor(SDL_DISABLE);
} }
#endif
static int real_main2 (int argc, TCHAR **argv) static int real_main2 (int argc, TCHAR **argv)
{ {
#ifdef USE_SDL1
int ret;
#ifdef PANDORA
ret = SDL_Init(SDL_INIT_NOPARACHUTE | SDL_INIT_VIDEO);
#else
ret = SDL_Init(SDL_INIT_NOPARACHUTE | SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_JOYSTICK);
#endif
if (ret < 0)
{
printf("SDL could not initialize! SDL_Error: %s\n", SDL_GetError());
abort();
};
#endif
#ifdef USE_SDL2
initialize_sdl2(); initialize_sdl2();
#endif
keyboard_settrans(); keyboard_settrans();
set_config_changed(); set_config_changed();
if (restart_config[0]) { if (restart_config[0]) {
@ -730,7 +752,7 @@ static int real_main2 (int argc, TCHAR **argv)
no_gui = false; no_gui = false;
restart_program = 0; restart_program = 0;
if (!no_gui) { if (!no_gui) {
int err = gui_init(); const int err = gui_init();
currprefs = changed_prefs; currprefs = changed_prefs;
set_config_changed(); set_config_changed();
if (err == -1) { if (err == -1) {
@ -743,9 +765,7 @@ static int real_main2 (int argc, TCHAR **argv)
} }
else else
{ {
#ifdef PANDORA
setCpuSpeed(); setCpuSpeed();
#endif
update_display(&currprefs); update_display(&currprefs);
} }
memset(&gui_data, 0, sizeof gui_data); memset(&gui_data, 0, sizeof gui_data);

View file

@ -33,7 +33,9 @@
#include "zfile.h" #include "zfile.h"
#include "gfxboard.h" #include "gfxboard.h"
#include <SDL.h> #include <SDL.h>
#ifdef USE_SDL2
#include <map> #include <map>
#endif
#include "amiberry_rp9.h" #include "amiberry_rp9.h"
#ifdef WITH_LOGGING #ifdef WITH_LOGGING
@ -56,7 +58,13 @@ static int doStylusRightClick;
extern void SetLastActiveConfig(const char* filename); extern void SetLastActiveConfig(const char* filename);
/* Keyboard */ /* Keyboard */
std::map<int, TCHAR[256]> customControlMap; // No SDLK_LAST. SDL2 migration guide suggests std::map #ifdef USE_SDL1
int customControlMap[SDLK_LAST];
#endif
#ifdef USE_SDL2
std::map<int, TCHAR[256]> customControlMap; // No SDLK_LAST. SDL2 migration guide suggests std::map
#endif
char start_path_data[MAX_DPATH]; char start_path_data[MAX_DPATH];
char currentDir[MAX_DPATH]; char currentDir[MAX_DPATH];
@ -163,7 +171,7 @@ void getfilepart(TCHAR *out, int size, const TCHAR *path)
uae_u8 *target_load_keyfile(struct uae_prefs *p, const char *path, int *sizep, char *name) uae_u8 *target_load_keyfile(struct uae_prefs *p, const char *path, int *sizep, char *name)
{ {
return 0; return nullptr;
} }
void target_run(void) void target_run(void)
@ -240,6 +248,9 @@ void target_fixup_options(struct uae_prefs* p)
void target_default_options(struct uae_prefs* p, int type) void target_default_options(struct uae_prefs* p, int type)
{ {
#ifdef PANDORA #ifdef PANDORA
p->gfx_size.width = 320;
p->gfx_size.height = 240;
p->gfx_resolution = RES_LORES;
p->pandora_vertical_offset = OFFSET_Y_ADJUST; p->pandora_vertical_offset = OFFSET_Y_ADJUST;
p->pandora_cpu_speed = defaultCpuSpeed; p->pandora_cpu_speed = defaultCpuSpeed;
p->pandora_hide_idle_led = 0; p->pandora_hide_idle_led = 0;
@ -269,7 +280,16 @@ void target_default_options(struct uae_prefs* p, int type)
p->kbd_led_num = -1; // No status on numlock p->kbd_led_num = -1; // No status on numlock
p->kbd_led_scr = -1; // No status on scrollock p->kbd_led_scr = -1; // No status on scrollock
#ifdef USE_SDL1
p->gfx_correct_aspect = 1;
p->gfx_fullscreen_ratio = 100;
#endif
#ifdef USE_SDL2
p->scaling_method = -1; //Default is Auto p->scaling_method = -1; //Default is Auto
#endif
_tcscpy(p->open_gui, "F12"); _tcscpy(p->open_gui, "F12");
_tcscpy(p->quit_amiberry, ""); _tcscpy(p->quit_amiberry, "");
@ -310,6 +330,10 @@ void target_default_options(struct uae_prefs* p, int type)
p->disableMenuVKeyb = 0; p->disableMenuVKeyb = 0;
#endif #endif
#ifdef USE_SDL1
memset(customControlMap, 0, sizeof(customControlMap));
#endif
p->cr[CHIPSET_REFRESH_PAL].locked = true; p->cr[CHIPSET_REFRESH_PAL].locked = true;
p->cr[CHIPSET_REFRESH_PAL].vsync = 1; p->cr[CHIPSET_REFRESH_PAL].vsync = 1;
@ -332,14 +356,24 @@ void target_default_options(struct uae_prefs* p, int type)
void target_save_options(struct zfile* f, struct uae_prefs* p) void target_save_options(struct zfile* f, struct uae_prefs* p)
{ {
#ifdef PANDORA #ifdef PANDORA
cfgfile_write (f, "pandora.cpu_speed", "%d", p->pandora_cpu_speed); cfgfile_write(f, "pandora.cpu_speed", "%d", p->pandora_cpu_speed);
cfgfile_write (f, "pandora.hide_idle_led", "%d", p->pandora_hide_idle_led); cfgfile_write(f, "pandora.hide_idle_led", "%d", p->pandora_hide_idle_led);
cfgfile_write (f, "pandora.tap_delay", "%d", p->pandora_tapDelay); cfgfile_write(f, "pandora.tap_delay", "%d", p->pandora_tapDelay);
cfgfile_write (f, "pandora.move_y", "%d", p->pandora_vertical_offset - OFFSET_Y_ADJUST); cfgfile_write(f, "pandora.move_y", "%d", p->pandora_vertical_offset - OFFSET_Y_ADJUST);
#endif //PANDORA #endif //PANDORA
#ifdef USE_SDL1
cfgfile_write(f, _T("gfx_correct_aspect"), _T("%d"), p->gfx_correct_aspect);
cfgfile_write(f, _T("gfx_fullscreen_ratio"), _T("%d"), p->gfx_fullscreen_ratio);
#endif
cfgfile_write(f, _T("amiberry.kbd_led_num"), _T("%d"), p->kbd_led_num); cfgfile_write(f, _T("amiberry.kbd_led_num"), _T("%d"), p->kbd_led_num);
cfgfile_write(f, _T("amiberry.kbd_led_scr"), _T("%d"), p->kbd_led_scr); cfgfile_write(f, _T("amiberry.kbd_led_scr"), _T("%d"), p->kbd_led_scr);
#ifdef USE_SDL2
cfgfile_write(f, _T("amiberry.scaling_method"), _T("%d"), p->scaling_method); cfgfile_write(f, _T("amiberry.scaling_method"), _T("%d"), p->scaling_method);
#endif
cfgfile_write_str(f, _T("amiberry.open_gui"), p->open_gui); cfgfile_write_str(f, _T("amiberry.open_gui"), p->open_gui);
cfgfile_write_str(f, _T("amiberry.quit_amiberry"), p->quit_amiberry); cfgfile_write_str(f, _T("amiberry.quit_amiberry"), p->quit_amiberry);
@ -359,35 +393,36 @@ void target_save_options(struct zfile* f, struct uae_prefs* p)
cfgfile_write(f, "amiberry.custom_l", "%d", p->custom_l); cfgfile_write(f, "amiberry.custom_l", "%d", p->custom_l);
cfgfile_write(f, "amiberry.custom_r", "%d", p->custom_r); cfgfile_write(f, "amiberry.custom_r", "%d", p->custom_r);
cfgfile_write(f, "amiberry.custom_play", "%d", p->custom_play); cfgfile_write(f, "amiberry.custom_play", "%d", p->custom_play);
#ifdef ANDROIDSDL #ifdef ANDROIDSDL
cfgfile_write (f, "pandora.onscreen", "%d", p->onScreen); cfgfile_write(f, "pandora.onscreen", "%d", p->onScreen);
cfgfile_write (f, "pandora.onscreen_textinput", "%d", p->onScreen_textinput); cfgfile_write(f, "pandora.onscreen_textinput", "%d", p->onScreen_textinput);
cfgfile_write (f, "pandora.onscreen_dpad", "%d", p->onScreen_dpad); cfgfile_write(f, "pandora.onscreen_dpad", "%d", p->onScreen_dpad);
cfgfile_write (f, "pandora.onscreen_button1", "%d", p->onScreen_button1); cfgfile_write(f, "pandora.onscreen_button1", "%d", p->onScreen_button1);
cfgfile_write (f, "pandora.onscreen_button2", "%d", p->onScreen_button2); cfgfile_write(f, "pandora.onscreen_button2", "%d", p->onScreen_button2);
cfgfile_write (f, "pandora.onscreen_button3", "%d", p->onScreen_button3); cfgfile_write(f, "pandora.onscreen_button3", "%d", p->onScreen_button3);
cfgfile_write (f, "pandora.onscreen_button4", "%d", p->onScreen_button4); cfgfile_write(f, "pandora.onscreen_button4", "%d", p->onScreen_button4);
cfgfile_write (f, "pandora.onscreen_button5", "%d", p->onScreen_button5); cfgfile_write(f, "pandora.onscreen_button5", "%d", p->onScreen_button5);
cfgfile_write (f, "pandora.onscreen_button6", "%d", p->onScreen_button6); cfgfile_write(f, "pandora.onscreen_button6", "%d", p->onScreen_button6);
cfgfile_write (f, "pandora.custom_position", "%d", p->custom_position); cfgfile_write(f, "pandora.custom_position", "%d", p->custom_position);
cfgfile_write (f, "pandora.pos_x_textinput", "%d", p->pos_x_textinput); cfgfile_write(f, "pandora.pos_x_textinput", "%d", p->pos_x_textinput);
cfgfile_write (f, "pandora.pos_y_textinput", "%d", p->pos_y_textinput); cfgfile_write(f, "pandora.pos_y_textinput", "%d", p->pos_y_textinput);
cfgfile_write (f, "pandora.pos_x_dpad", "%d", p->pos_x_dpad); cfgfile_write(f, "pandora.pos_x_dpad", "%d", p->pos_x_dpad);
cfgfile_write (f, "pandora.pos_y_dpad", "%d", p->pos_y_dpad); cfgfile_write(f, "pandora.pos_y_dpad", "%d", p->pos_y_dpad);
cfgfile_write (f, "pandora.pos_x_button1", "%d", p->pos_x_button1); cfgfile_write(f, "pandora.pos_x_button1", "%d", p->pos_x_button1);
cfgfile_write (f, "pandora.pos_y_button1", "%d", p->pos_y_button1); cfgfile_write(f, "pandora.pos_y_button1", "%d", p->pos_y_button1);
cfgfile_write (f, "pandora.pos_x_button2", "%d", p->pos_x_button2); cfgfile_write(f, "pandora.pos_x_button2", "%d", p->pos_x_button2);
cfgfile_write (f, "pandora.pos_y_button2", "%d", p->pos_y_button2); cfgfile_write(f, "pandora.pos_y_button2", "%d", p->pos_y_button2);
cfgfile_write (f, "pandora.pos_x_button3", "%d", p->pos_x_button3); cfgfile_write(f, "pandora.pos_x_button3", "%d", p->pos_x_button3);
cfgfile_write (f, "pandora.pos_y_button3", "%d", p->pos_y_button3); cfgfile_write(f, "pandora.pos_y_button3", "%d", p->pos_y_button3);
cfgfile_write (f, "pandora.pos_x_button4", "%d", p->pos_x_button4); cfgfile_write(f, "pandora.pos_x_button4", "%d", p->pos_x_button4);
cfgfile_write (f, "pandora.pos_y_button4", "%d", p->pos_y_button4); cfgfile_write(f, "pandora.pos_y_button4", "%d", p->pos_y_button4);
cfgfile_write (f, "pandora.pos_x_button5", "%d", p->pos_x_button5); cfgfile_write(f, "pandora.pos_x_button5", "%d", p->pos_x_button5);
cfgfile_write (f, "pandora.pos_y_button5", "%d", p->pos_y_button5); cfgfile_write(f, "pandora.pos_y_button5", "%d", p->pos_y_button5);
cfgfile_write (f, "pandora.pos_x_button6", "%d", p->pos_x_button6); cfgfile_write(f, "pandora.pos_x_button6", "%d", p->pos_x_button6);
cfgfile_write (f, "pandora.pos_y_button6", "%d", p->pos_y_button6); cfgfile_write(f, "pandora.pos_y_button6", "%d", p->pos_y_button6);
cfgfile_write (f, "pandora.floating_joystick", "%d", p->floatingJoystick); cfgfile_write(f, "pandora.floating_joystick", "%d", p->floatingJoystick);
cfgfile_write (f, "pandora.disable_menu_vkeyb", "%d", p->disableMenuVKeyb); cfgfile_write(f, "pandora.disable_menu_vkeyb", "%d", p->disableMenuVKeyb);
#endif #endif
} }
@ -399,7 +434,8 @@ void target_restart(void)
TCHAR *target_expand_environment(const TCHAR *path, TCHAR *out, int maxlen) TCHAR *target_expand_environment(const TCHAR *path, TCHAR *out, int maxlen)
{ {
if (out == NULL) { if (out == nullptr)
{
return strdup(path); return strdup(path);
} }
_tcscpy(out, path); _tcscpy(out, path);
@ -420,43 +456,42 @@ int target_parse_option(struct uae_prefs* p, const char* option, const char* val
return 1; return 1;
} }
#endif //PANDORA #endif //PANDORA
#ifdef ANDROIDSDL #ifdef ANDROIDSDL
|| cfgfile_intval (option, value, "onscreen", &p->onScreen, 1) || cfgfile_intval(option, value, "onscreen", &p->onScreen, 1)
|| cfgfile_intval (option, value, "onscreen_textinput", &p->onScreen_textinput, 1) || cfgfile_intval(option, value, "onscreen_textinput", &p->onScreen_textinput, 1)
|| cfgfile_intval (option, value, "onscreen_dpad", &p->onScreen_dpad, 1) || cfgfile_intval(option, value, "onscreen_dpad", &p->onScreen_dpad, 1)
|| cfgfile_intval (option, value, "onscreen_button1", &p->onScreen_button1, 1) || cfgfile_intval(option, value, "onscreen_button1", &p->onScreen_button1, 1)
|| cfgfile_intval (option, value, "onscreen_button2", &p->onScreen_button2, 1) || cfgfile_intval(option, value, "onscreen_button2", &p->onScreen_button2, 1)
|| cfgfile_intval (option, value, "onscreen_button3", &p->onScreen_button3, 1) || cfgfile_intval(option, value, "onscreen_button3", &p->onScreen_button3, 1)
|| cfgfile_intval (option, value, "onscreen_button4", &p->onScreen_button4, 1) || cfgfile_intval(option, value, "onscreen_button4", &p->onScreen_button4, 1)
|| cfgfile_intval (option, value, "onscreen_button5", &p->onScreen_button5, 1) || cfgfile_intval(option, value, "onscreen_button5", &p->onScreen_button5, 1)
|| cfgfile_intval (option, value, "onscreen_button6", &p->onScreen_button6, 1) || cfgfile_intval(option, value, "onscreen_button6", &p->onScreen_button6, 1)
|| cfgfile_intval (option, value, "custom_position", &p->custom_position, 1) || cfgfile_intval(option, value, "custom_position", &p->custom_position, 1)
|| cfgfile_intval (option, value, "pos_x_textinput", &p->pos_x_textinput, 1) || cfgfile_intval(option, value, "pos_x_textinput", &p->pos_x_textinput, 1)
|| cfgfile_intval (option, value, "pos_y_textinput", &p->pos_y_textinput, 1) || cfgfile_intval(option, value, "pos_y_textinput", &p->pos_y_textinput, 1)
|| cfgfile_intval (option, value, "pos_x_dpad", &p->pos_x_dpad, 1) || cfgfile_intval(option, value, "pos_x_dpad", &p->pos_x_dpad, 1)
|| cfgfile_intval (option, value, "pos_y_dpad", &p->pos_y_dpad, 1) || cfgfile_intval(option, value, "pos_y_dpad", &p->pos_y_dpad, 1)
|| cfgfile_intval (option, value, "pos_x_button1", &p->pos_x_button1, 1) || cfgfile_intval(option, value, "pos_x_button1", &p->pos_x_button1, 1)
|| cfgfile_intval (option, value, "pos_y_button1", &p->pos_y_button1, 1) || cfgfile_intval(option, value, "pos_y_button1", &p->pos_y_button1, 1)
|| cfgfile_intval (option, value, "pos_x_button2", &p->pos_x_button2, 1) || cfgfile_intval(option, value, "pos_x_button2", &p->pos_x_button2, 1)
|| cfgfile_intval (option, value, "pos_y_button2", &p->pos_y_button2, 1) || cfgfile_intval(option, value, "pos_y_button2", &p->pos_y_button2, 1)
|| cfgfile_intval (option, value, "pos_x_button3", &p->pos_x_button3, 1) || cfgfile_intval(option, value, "pos_x_button3", &p->pos_x_button3, 1)
|| cfgfile_intval (option, value, "pos_y_button3", &p->pos_y_button3, 1) || cfgfile_intval(option, value, "pos_y_button3", &p->pos_y_button3, 1)
|| cfgfile_intval (option, value, "pos_x_button4", &p->pos_x_button4, 1) || cfgfile_intval(option, value, "pos_x_button4", &p->pos_x_button4, 1)
|| cfgfile_intval (option, value, "pos_y_button4", &p->pos_y_button4, 1) || cfgfile_intval(option, value, "pos_y_button4", &p->pos_y_button4, 1)
|| cfgfile_intval (option, value, "pos_x_button5", &p->pos_x_button5, 1) || cfgfile_intval(option, value, "pos_x_button5", &p->pos_x_button5, 1)
|| cfgfile_intval (option, value, "pos_y_button5", &p->pos_y_button5, 1) || cfgfile_intval(option, value, "pos_y_button5", &p->pos_y_button5, 1)
|| cfgfile_intval (option, value, "pos_x_button6", &p->pos_x_button6, 1) || cfgfile_intval(option, value, "pos_x_button6", &p->pos_x_button6, 1)
|| cfgfile_intval (option, value, "pos_y_button6", &p->pos_y_button6, 1) || cfgfile_intval(option, value, "pos_y_button6", &p->pos_y_button6, 1)
|| cfgfile_intval (option, value, "floating_joystick", &p->floatingJoystick, 1) || cfgfile_intval(option, value, "floating_joystick", &p->floatingJoystick, 1)
|| cfgfile_intval (option, value, "disable_menu_vkeyb", &p->disableMenuVKeyb, 1) || cfgfile_intval(option, value, "disable_menu_vkeyb", &p->disableMenuVKeyb, 1)
#endif #endif
if (cfgfile_yesno(option, value, _T("amiberry_use_retroarch_quit"), &p->amiberry_use_retroarch_quit)) if (cfgfile_yesno(option, value, _T("amiberry_use_retroarch_quit"), &p->amiberry_use_retroarch_quit))
return 1; return 1;
if (cfgfile_yesno(option, value, _T("amiberry_use_retroarch_menu"), &p->amiberry_use_retroarch_menu)) if (cfgfile_yesno(option, value, _T("amiberry_use_retroarch_menu"), &p->amiberry_use_retroarch_menu))
return 1; return 1;
if (cfgfile_yesno(option, value, _T("amiberry_use_retroarch_reset"), &p->amiberry_use_retroarch_reset)) if (cfgfile_yesno(option, value, _T("amiberry_use_retroarch_reset"), &p->amiberry_use_retroarch_reset))
return 1; return 1;
@ -464,8 +499,19 @@ int target_parse_option(struct uae_prefs* p, const char* option, const char* val
return 1; return 1;
if (cfgfile_intval(option, value, "kbd_led_scr", &p->kbd_led_scr, 1)) if (cfgfile_intval(option, value, "kbd_led_scr", &p->kbd_led_scr, 1))
return 1; return 1;
#ifdef USE_SDL1
if (cfgfile_intval(option, value, "gfx_correct_aspect", &p->gfx_correct_aspect, 1))
return 1;
if (cfgfile_intval(option, value, "gfx_fullscreen_ratio", &p->gfx_fullscreen_ratio, 1))
return 1;
#endif
#ifdef USE_SDL2
if (cfgfile_intval(option, value, "scaling_method", &p->scaling_method, 1)) if (cfgfile_intval(option, value, "scaling_method", &p->scaling_method, 1))
return 1; return 1;
#endif
if (cfgfile_string(option, value, "open_gui", p->open_gui, sizeof p->open_gui)) if (cfgfile_string(option, value, "open_gui", p->open_gui, sizeof p->open_gui))
return 1; return 1;
if (cfgfile_string(option, value, "quit_amiberry", p->quit_amiberry, sizeof p->quit_amiberry)) if (cfgfile_string(option, value, "quit_amiberry", p->quit_amiberry, sizeof p->quit_amiberry))
@ -517,7 +563,7 @@ void fetch_configurationpath(char *out, int size)
void set_configurationpath(char *newpath) void set_configurationpath(char *newpath)
{ {
strcpy(config_path, newpath); strncpy(config_path, newpath, MAX_DPATH);
} }
void fetch_controllerspath(char* out, int size) void fetch_controllerspath(char* out, int size)
@ -548,7 +594,7 @@ void fetch_rompath(char* out, int size)
void set_rompath(char *newpath) void set_rompath(char *newpath)
{ {
strcpy(rom_path, newpath); strncpy(rom_path, newpath, MAX_DPATH);
} }
@ -590,7 +636,7 @@ int target_cfgfile_load(struct uae_prefs* p, const char* filename, int type, int
else else
{ {
ptr = strstr((char *)filename, ".uae"); ptr = strstr((char *)filename, ".uae");
if (ptr > 0) if (ptr > nullptr)
{ {
int type = CONFIG_TYPE_HARDWARE | CONFIG_TYPE_HOST; int type = CONFIG_TYPE_HARDWARE | CONFIG_TYPE_HOST;
result = cfgfile_load(p, filename, &type, 0, 1); result = cfgfile_load(p, filename, &type, 0, 1);
@ -603,7 +649,7 @@ int target_cfgfile_load(struct uae_prefs* p, const char* filename, int type, int
{ {
for (i = 0; i < p->nr_floppies; ++i) for (i = 0; i < p->nr_floppies; ++i)
{ {
if (!DISK_validate_filename(p, p->floppyslots[i].df, 0, NULL, NULL, NULL)) if (!DISK_validate_filename(p, p->floppyslots[i].df, 0, nullptr, nullptr, nullptr))
p->floppyslots[i].df[0] = 0; p->floppyslots[i].df[0] = 0;
disk_insert(i, p->floppyslots[i].df); disk_insert(i, p->floppyslots[i].df);
if (strlen(p->floppyslots[i].df) > 0) if (strlen(p->floppyslots[i].df) > 0)
@ -611,7 +657,7 @@ int target_cfgfile_load(struct uae_prefs* p, const char* filename, int type, int
} }
if (!isdefault) if (!isdefault)
inputdevice_updateconfig(NULL, p); inputdevice_updateconfig(nullptr, p);
#ifdef WITH_LOGGING #ifdef WITH_LOGGING
p->leds_on_screen = true; p->leds_on_screen = true;
#endif #endif
@ -632,12 +678,12 @@ int check_configfile(char *file)
return 1; return 1;
} }
strcpy(tmp, file); strncpy(tmp, file, MAX_PATH);
char *ptr = strstr(tmp, ".uae"); char* ptr = strstr(tmp, ".uae");
if (ptr > 0) if (ptr > nullptr)
{ {
*(ptr + 1) = '\0'; *(ptr + 1) = '\0';
strcat(tmp, "conf"); strncat(tmp, "conf", MAX_PATH);
f = fopen(tmp, "rt"); f = fopen(tmp, "rt");
if (f) if (f)
{ {
@ -654,13 +700,13 @@ void extractFileName(const char * str, char *buffer)
while (*p != '/' && p > str) while (*p != '/' && p > str)
p--; p--;
p++; p++;
strcpy(buffer, p); strncpy(buffer, p, MAX_PATH);
} }
void extractPath(char *str, char *buffer) void extractPath(char *str, char *buffer)
{ {
strcpy(buffer, str); strncpy(buffer, str, MAX_PATH);
char *p = buffer + strlen(buffer) - 1; char* p = buffer + strlen(buffer) - 1;
while (*p != '/' && p > buffer) while (*p != '/' && p > buffer)
p--; p--;
p[1] = '\0'; p[1] = '\0';
@ -679,36 +725,35 @@ void removeFileExtension(char *filename)
void ReadDirectory(const char *path, std::vector<std::string> *dirs, std::vector<std::string> *files) void ReadDirectory(const char *path, std::vector<std::string> *dirs, std::vector<std::string> *files)
{ {
DIR *dir;
struct dirent *dent; struct dirent *dent;
if (dirs != NULL) if (dirs != nullptr)
dirs->clear(); dirs->clear();
if (files != NULL) if (files != nullptr)
files->clear(); files->clear();
dir = opendir(path); DIR * dir = opendir(path);
if (dir != NULL) if (dir != nullptr)
{ {
while ((dent = readdir(dir)) != NULL) while ((dent = readdir(dir)) != nullptr)
{ {
if (dent->d_type == DT_DIR) if (dent->d_type == DT_DIR)
{ {
if (dirs != NULL) if (dirs != nullptr)
dirs->push_back(dent->d_name); dirs->push_back(dent->d_name);
} }
else if (files != NULL) else if (files != nullptr)
files->push_back(dent->d_name); files->push_back(dent->d_name);
} }
if (dirs != NULL && dirs->size() > 0 && (*dirs)[0] == ".") if (dirs != nullptr && dirs->size() > 0 && (*dirs)[0] == ".")
dirs->erase(dirs->begin()); dirs->erase(dirs->begin());
closedir(dir); closedir(dir);
} }
if (dirs != NULL) if (dirs != nullptr)
std::sort(dirs->begin(), dirs->end()); sort(dirs->begin(), dirs->end());
if (files != NULL) if (files != nullptr)
std::sort(files->begin(), files->end()); sort(files->begin(), files->end());
} }
void saveAdfDir(void) void saveAdfDir(void)
@ -830,7 +875,8 @@ void loadAdfDir(void)
char romPath[MAX_PATH] = { '\0' }; char romPath[MAX_PATH] = { '\0' };
char tmpFile[MAX_PATH]; char tmpFile[MAX_PATH];
while (zfile_fgetsa(linea, sizeof(linea), fh) != 0) { while (zfile_fgetsa(linea, sizeof (linea), fh) != nullptr)
{
trimwsa(linea); trimwsa(linea);
if (strlen(linea) > 0) { if (strlen(linea) > 0) {
if (!cfgfile_separate_linea(path, linea, option, value)) if (!cfgfile_separate_linea(path, linea, option, value))
@ -850,16 +896,20 @@ void loadAdfDir(void)
romType = -1; romType = -1;
} }
} }
else if (cfgfile_string(option, value, "Diskfile", tmpFile, sizeof(tmpFile))) { else if (cfgfile_string(option, value, "Diskfile", tmpFile, sizeof(tmpFile)))
FILE *f = fopen(tmpFile, "rb"); {
if (f != NULL) { FILE* f = fopen(tmpFile, "rb");
if (f != nullptr)
{
fclose(f); fclose(f);
lstMRUDiskList.push_back(tmpFile); lstMRUDiskList.push_back(tmpFile);
} }
} }
else if (cfgfile_string(option, value, "CDfile", tmpFile, sizeof(tmpFile))) { else if (cfgfile_string(option, value, "CDfile", tmpFile, sizeof(tmpFile)))
FILE *f = fopen(tmpFile, "rb"); {
if (f != NULL) { FILE* f = fopen(tmpFile, "rb");
if (f != nullptr)
{
fclose(f); fclose(f);
lstMRUCDList.push_back(tmpFile); lstMRUCDList.push_back(tmpFile);
} }
@ -1006,7 +1056,7 @@ int main(int argc, char* argv[])
struct sigaction action; struct sigaction action;
#ifdef AMIBERRY #ifdef AMIBERRY
printf("Amiberry-SDL2 v2.55, by Dimitris (MiDWaN) Panokostas, Dom (Horace&TheSpider) Cresswell and TomB\n"); printf("Amiberry v2.6, by Dimitris (MiDWaN) Panokostas, Dom (Horace&TheSpider) Cresswell and TomB\n");
#endif #endif
max_uae_width = 1920; max_uae_width = 1920;
max_uae_height = 1080; max_uae_height = 1080;
@ -1038,7 +1088,7 @@ int main(int argc, char* argv[])
memset(&action, 0, sizeof(action)); memset(&action, 0, sizeof(action));
action.sa_sigaction = signal_buserror; action.sa_sigaction = signal_buserror;
action.sa_flags = SA_SIGINFO; action.sa_flags = SA_SIGINFO;
if (sigaction(SIGBUS, &action, NULL) < 0) if (sigaction(SIGBUS, &action, nullptr) < 0)
{ {
printf("Failed to set signal handler (SIGBUS).\n"); printf("Failed to set signal handler (SIGBUS).\n");
abort(); abort();
@ -1047,7 +1097,7 @@ int main(int argc, char* argv[])
memset(&action, 0, sizeof(action)); memset(&action, 0, sizeof(action));
action.sa_sigaction = signal_term; action.sa_sigaction = signal_term;
action.sa_flags = SA_SIGINFO; action.sa_flags = SA_SIGINFO;
if (sigaction(SIGTERM, &action, NULL) < 0) if (sigaction(SIGTERM, &action, nullptr) < 0)
{ {
printf("Failed to set signal handler (SIGTERM).\n"); printf("Failed to set signal handler (SIGTERM).\n");
abort(); abort();
@ -1077,7 +1127,7 @@ int main(int argc, char* argv[])
real_main(argc, argv); real_main(argc, argv);
#ifdef CAPSLOCK_DEBIAN_WORKAROUND #ifdef CAPSLOCK_DEBIAN_WORKAROUND
// restore keyboard LEDs to normal state // restore keyboard LEDs to normal state
ioctl(0, KDSETLED, 0xFF); ioctl(0, KDSETLED, 0xFF);
#endif #endif
@ -1117,11 +1167,11 @@ int handle_msgpump()
int got = 0; int got = 0;
SDL_Event rEvent; SDL_Event rEvent;
int keycode; int keycode;
if(delayed_mousebutton) { if (delayed_mousebutton) {
--delayed_mousebutton; --delayed_mousebutton;
if(delayed_mousebutton == 0) if (delayed_mousebutton == 0)
setmousebuttonstate (0, 0, 1); setmousebuttonstate(0, 0, 1);
} }
if (currprefs.customControls) if (currprefs.customControls)
PopulateCustomControlMap(); PopulateCustomControlMap();
@ -1129,7 +1179,13 @@ int handle_msgpump()
while (SDL_PollEvent(&rEvent)) while (SDL_PollEvent(&rEvent))
{ {
got = 1; got = 1;
#ifdef USE_SDL1
Uint8* keystate = SDL_GetKeyState(nullptr);
#endif
#ifdef USE_SDL2
const Uint8* keystate = SDL_GetKeyboardState(nullptr); const Uint8* keystate = SDL_GetKeyboardState(nullptr);
#endif
switch (rEvent.type) switch (rEvent.type)
{ {
@ -1137,7 +1193,7 @@ int handle_msgpump()
uae_quit(); uae_quit();
break; break;
//case SDL_JOYBUTTONDOWN: //case SDL_JOYBUTTONDOWN:
// if (currprefs.button_for_menu != -1 && rEvent.jbutton.button == currprefs.button_for_menu) // if (currprefs.button_for_menu != -1 && rEvent.jbutton.button == currprefs.button_for_menu)
// inputdevice_add_inputcode(AKS_ENTERGUI, 1); // inputdevice_add_inputcode(AKS_ENTERGUI, 1);
// if (currprefs.button_for_quit != -1 && rEvent.jbutton.button == currprefs.button_for_quit) // if (currprefs.button_for_quit != -1 && rEvent.jbutton.button == currprefs.button_for_quit)
@ -1145,11 +1201,35 @@ int handle_msgpump()
// break; // break;
case SDL_KEYDOWN: case SDL_KEYDOWN:
#ifdef USE_SDL1
// Strangely in FBCON left window is seen as left alt ??
if (keyboard_type == 2) // KEYCODE_FBCON
{
if (keystate[SDLK_LCTRL] && (keystate[SDLK_LSUPER] || keystate[SDLK_LALT]) && (keystate[SDLK_RSUPER] || keystate[
SDLK_MENU]))
#endif
#ifdef USE_SDL2
if (keystate[SDL_SCANCODE_LCTRL] && keystate[SDL_SCANCODE_LGUI] && (keystate[SDL_SCANCODE_RGUI] || keystate[SDL_SCANCODE_APPLICATION])) if (keystate[SDL_SCANCODE_LCTRL] && keystate[SDL_SCANCODE_LGUI] && (keystate[SDL_SCANCODE_RGUI] || keystate[SDL_SCANCODE_APPLICATION]))
#endif
{ {
uae_reset(0, 1); uae_reset(0, 1);
break; break;
} }
#ifdef USE_SDL1
}
else
{
if (keystate[SDLK_LCTRL] && keystate[SDLK_LSUPER] && (keystate[SDLK_RSUPER] || keystate[SDLK_MENU]))
{
uae_reset(0, 1);
break;
}
}
// fix Caps Lock keypress shown as SDLK_UNKNOWN (scancode = 58)
if (rEvent.key.keysym.scancode == 58 && rEvent.key.keysym.sym == SDLK_UNKNOWN)
rEvent.key.keysym.sym = SDLK_CAPSLOCK;
#endif
switch (rEvent.key.keysym.sym) switch (rEvent.key.keysym.sym)
{ {
@ -1182,18 +1262,23 @@ int handle_msgpump()
case SDLK_LSHIFT: // Shift key case SDLK_LSHIFT: // Shift key
inputdevice_do_keyboard(AK_LSH, 1); inputdevice_do_keyboard(AK_LSH, 1);
break; break;
case SDLK_RSHIFT: // Left shoulder button case SDLK_RSHIFT: // Left shoulder button
case SDLK_RCTRL: // Right shoulder button case SDLK_RCTRL: // Right shoulder button
if(currprefs.input_tablet > TABLET_OFF) { if(currprefs.input_tablet > TABLET_OFF) {
// Holding left or right shoulder button -> stylus does right mousebutton // Holding left or right shoulder button -> stylus does right mousebutton
doStylusRightClick = 1; doStylusRightClick = 1;
} }
#endif #endif
default: default:
if (currprefs.customControls) if (currprefs.customControls)
{ {
#ifdef USE_SDL1
keycode = customControlMap[rEvent.key.keysym.sym];
#endif
#ifdef USE_SDL2
keycode = SDL_GetKeyFromName(customControlMap[rEvent.key.keysym.sym]); keycode = SDL_GetKeyFromName(customControlMap[rEvent.key.keysym.sym]);
#endif
if (keycode < 0) if (keycode < 0)
{ {
// Simulate mouse or joystick // Simulate mouse or joystick
@ -1215,7 +1300,12 @@ int handle_msgpump()
case SDL_KEYUP: case SDL_KEYUP:
if (currprefs.customControls) if (currprefs.customControls)
{ {
#ifdef USE_SDL1
keycode = customControlMap[rEvent.key.keysym.sym];
#endif
#ifdef USE_SDL2
keycode = SDL_GetKeyFromName(customControlMap[rEvent.key.keysym.sym]); keycode = SDL_GetKeyFromName(customControlMap[rEvent.key.keysym.sym]);
#endif
if (keycode < 0) if (keycode < 0)
{ {
// Simulate mouse or joystick // Simulate mouse or joystick
@ -1268,10 +1358,10 @@ int handle_msgpump()
{ {
if (currprefs.jports[0].id == JSEM_MICE || currprefs.jports[1].id == JSEM_MICE) if (currprefs.jports[0].id == JSEM_MICE || currprefs.jports[1].id == JSEM_MICE)
{ {
int mouseScale = currprefs.input_joymouse_multiplier / 2; const int mouseScale = currprefs.input_joymouse_multiplier / 2;
int x = rEvent.motion.xrel; const int x = rEvent.motion.xrel;
int y = rEvent.motion.yrel; const int y = rEvent.motion.yrel;
#ifdef PANDORA #if defined (PANDORA) || defined (ANDROIDSDL)
if(rEvent.motion.x == 0 && x > -4) if(rEvent.motion.x == 0 && x > -4)
x = -4; x = -4;
if(rEvent.motion.y == 0 && y > -4) if(rEvent.motion.y == 0 && y > -4)
@ -1290,8 +1380,8 @@ int handle_msgpump()
case SDL_MOUSEWHEEL: case SDL_MOUSEWHEEL:
if (currprefs.jports[0].id == JSEM_MICE || currprefs.jports[1].id == JSEM_MICE) if (currprefs.jports[0].id == JSEM_MICE || currprefs.jports[1].id == JSEM_MICE)
{ {
int valY = rEvent.wheel.y; const int valY = rEvent.wheel.y;
int valX = rEvent.wheel.x; const int valX = rEvent.wheel.x;
setmousestate(0, 2, valY, 0); setmousestate(0, 2, valY, 0);
setmousestate(0, 3, valX, 0); setmousestate(0, 3, valX, 0);
} }

View file

@ -16,13 +16,32 @@
#include <png.h> #include <png.h>
#include <SDL.h> #include <SDL.h>
#ifdef USE_SDL1
#include <SDL_image.h>
#include <SDL_gfxPrimitives.h>
#include <SDL_ttf.h>
#include "threaddep/thread.h"
#include "bcm_host.h"
#endif
#ifdef ANDROIDSDL
#include <android/log.h>
#endif
/* SDL variable for output of emulation */ /* SDL variable for output of emulation */
SDL_Surface* screen = nullptr; SDL_Surface* screen = nullptr;
//static unsigned int current_vsync_frame = 0; static unsigned int current_vsync_frame = 0;
unsigned long time_per_frame = 20000; // Default for PAL (50 Hz): 20000 microsecs unsigned long time_per_frame = 20000; // Default for PAL (50 Hz): 20000 microsecs
static unsigned long last_synctime; static unsigned long last_synctime;
static int vsync_modulo = 1;
static int host_hz = 50;
#ifdef USE_SDL1
/* Dummy SDL variable for screen init */
SDL_Surface *Dummy_prSDLScreen = NULL;
#endif
/* Possible screen modes (x and y resolutions) */ /* Possible screen modes (x and y resolutions) */
#define MAX_SCREEN_MODES 14 #define MAX_SCREEN_MODES 14
@ -47,11 +66,56 @@ int delay_savestate_frame = 0;
static unsigned long next_synctime = 0; static unsigned long next_synctime = 0;
#ifdef USE_SDL1
DISPMANX_DISPLAY_HANDLE_T dispmanxdisplay;
DISPMANX_MODEINFO_T dispmanxdinfo;
DISPMANX_RESOURCE_HANDLE_T dispmanxresource_amigafb_1 = 0;
DISPMANX_RESOURCE_HANDLE_T dispmanxresource_amigafb_2 = 0;
DISPMANX_ELEMENT_HANDLE_T dispmanxelement;
DISPMANX_UPDATE_HANDLE_T dispmanxupdate;
VC_RECT_T src_rect;
VC_RECT_T dst_rect;
VC_RECT_T blit_rect;
static int DispManXElementpresent = 0;
static unsigned char current_resource_amigafb = 0;
#endif
static volatile uae_atomic vsync_counter = 0;
void vsync_callback(unsigned int a, void* b)
{
atomic_inc(&vsync_counter);
}
int graphics_setup(void) int graphics_setup(void)
{ {
#ifdef PICASSO96 #ifdef PICASSO96
picasso_InitResolutions(); picasso_InitResolutions();
InitPicasso96(); InitPicasso96();
#endif
#ifdef USE_SDL1
VCHI_INSTANCE_T vchi_instance;
VCHI_CONNECTION_T *vchi_connection;
TV_DISPLAY_STATE_T tvstate;
if (vchi_initialise(&vchi_instance) == 0) {
if (vchi_connect(NULL, 0, vchi_instance) == 0) {
vc_vchi_tv_init(vchi_instance, &vchi_connection, 1);
if (vc_tv_get_display_state(&tvstate) == 0) {
HDMI_PROPERTY_PARAM_T property;
property.property = HDMI_PROPERTY_PIXEL_CLOCK_TYPE;
vc_tv_hdmi_get_property(&property);
float frame_rate = property.param1 == HDMI_PIXEL_CLOCK_TYPE_NTSC ? tvstate.display.hdmi.frame_rate * (1000.0f / 1001.0f) : tvstate.display.hdmi.frame_rate;
host_hz = int(frame_rate);
}
vc_vchi_tv_stop();
vchi_disconnect(vchi_instance);
}
}
bcm_host_init();
dispmanxdisplay = vc_dispmanx_display_open(0);
vc_dispmanx_vsync_callback(dispmanxdisplay, vsync_callback, NULL);
#endif #endif
return 1; return 1;
} }
@ -62,12 +126,35 @@ void InitAmigaVidMode(struct uae_prefs* p)
gfxvidinfo.drawbuffer.pixbytes = screen->format->BytesPerPixel; gfxvidinfo.drawbuffer.pixbytes = screen->format->BytesPerPixel;
gfxvidinfo.drawbuffer.bufmem = static_cast<uae_u8 *>(screen->pixels); gfxvidinfo.drawbuffer.bufmem = static_cast<uae_u8 *>(screen->pixels);
gfxvidinfo.drawbuffer.outwidth = p->gfx_size.width; gfxvidinfo.drawbuffer.outwidth = p->gfx_size.width;
gfxvidinfo.drawbuffer.outheight = p->gfx_size.height; gfxvidinfo.drawbuffer.outheight = p->gfx_size.height << p->gfx_vresolution;
gfxvidinfo.drawbuffer.rowbytes = screen->pitch; gfxvidinfo.drawbuffer.rowbytes = screen->pitch;
} }
void graphics_subshutdown() void graphics_subshutdown()
{ {
#ifdef USE_SDL1
if (DispManXElementpresent == 1)
{
DispManXElementpresent = 0;
dispmanxupdate = vc_dispmanx_update_start(0);
vc_dispmanx_element_remove(dispmanxupdate, dispmanxelement);
vc_dispmanx_update_submit_sync(dispmanxupdate);
}
if (dispmanxresource_amigafb_1 != 0) {
vc_dispmanx_resource_delete(dispmanxresource_amigafb_1);
dispmanxresource_amigafb_1 = 0;
}
if (dispmanxresource_amigafb_2 != 0) {
vc_dispmanx_resource_delete(dispmanxresource_amigafb_2);
dispmanxresource_amigafb_2 = 0;
}
if (screen != nullptr) {
SDL_FreeSurface(screen);
screen = nullptr;
}
#elif USE_SDL2
if (screen != nullptr) if (screen != nullptr)
{ {
SDL_FreeSurface(screen); SDL_FreeSurface(screen);
@ -77,15 +164,17 @@ void graphics_subshutdown()
{ {
SDL_DestroyTexture(texture); SDL_DestroyTexture(texture);
} }
#endif
} }
void Create_SDL_Surface(int width, int height, int depth) #ifdef USE_SDL2
void Create_SDL_Surface(const int width, const int height, const int depth)
{ {
screen = SDL_CreateRGBSurface(0, width, height, depth, 0, 0, 0, 0); screen = SDL_CreateRGBSurface(0, width, height, depth, 0, 0, 0, 0);
check_error_sdl(screen == nullptr, "Unable to create a surface"); check_error_sdl(screen == nullptr, "Unable to create a surface");
} }
void Create_SDL_Texture(int width, int height, int depth) void Create_SDL_Texture(const int width, const int height, const int depth)
{ {
if (depth == 16) { if (depth == 16) {
// Initialize SDL Texture for the renderer // Initialize SDL Texture for the renderer
@ -108,15 +197,41 @@ void Create_SDL_Texture(int width, int height, int depth)
// Check if the requested Amiga resolution can be displayed with the current Screen mode as a direct multiple // Check if the requested Amiga resolution can be displayed with the current Screen mode as a direct multiple
// Based on this we make the decision to use Linear (smooth) or Nearest Neighbor (pixelated) scaling // Based on this we make the decision to use Linear (smooth) or Nearest Neighbor (pixelated) scaling
bool isModeAspectRatioExact(SDL_DisplayMode* mode, int width, int height) bool isModeAspectRatioExact(SDL_DisplayMode* mode, const int width, const int height)
{ {
if (mode->w % width == 0 && mode->h % height == 0) if (mode->w % width == 0 && mode->h % height == 0)
return true; return true;
return false; return false;
} }
#endif
void updatedisplayarea() void updatedisplayarea()
{ {
#ifdef USE_SDL1
if (current_resource_amigafb == 1)
{
current_resource_amigafb = 0;
vc_dispmanx_resource_write_data(dispmanxresource_amigafb_1,
VC_IMAGE_RGB565,
gfxvidinfo.drawbuffer.rowbytes,
gfxvidinfo.drawbuffer.bufmem,
&blit_rect);
dispmanxupdate = vc_dispmanx_update_start(0);
vc_dispmanx_element_change_source(dispmanxupdate, dispmanxelement, dispmanxresource_amigafb_1);
}
else
{
current_resource_amigafb = 1;
vc_dispmanx_resource_write_data(dispmanxresource_amigafb_2,
VC_IMAGE_RGB565,
gfxvidinfo.drawbuffer.rowbytes,
gfxvidinfo.drawbuffer.bufmem,
&blit_rect);
dispmanxupdate = vc_dispmanx_update_start(0);
vc_dispmanx_element_change_source(dispmanxupdate, dispmanxelement, dispmanxresource_amigafb_2);
}
vc_dispmanx_update_submit(dispmanxupdate, NULL, NULL);
#elif USE_SDL2
// Update the texture from the surface // Update the texture from the surface
SDL_UpdateTexture(texture, nullptr, screen->pixels, screen->pitch); SDL_UpdateTexture(texture, nullptr, screen->pixels, screen->pitch);
SDL_RenderClear(renderer); SDL_RenderClear(renderer);
@ -124,28 +239,106 @@ void updatedisplayarea()
SDL_RenderCopy(renderer, texture, nullptr, nullptr); SDL_RenderCopy(renderer, texture, nullptr, nullptr);
// Update the window surface (show the renderer) // Update the window surface (show the renderer)
SDL_RenderPresent(renderer); SDL_RenderPresent(renderer);
#endif
} }
#ifdef USE_SDL1
void open_sdl1_screen(int width, int height)
{
if (Dummy_prSDLScreen != NULL)
{
// y.f. 2016-10-13 : free the previous screen surface every time,
// so we can have fullscreen while running and windowed while in config window.
// Apparently, something somewhere is resetting the screen.
SDL_FreeSurface(Dummy_prSDLScreen);
Dummy_prSDLScreen = NULL;
}
if (Dummy_prSDLScreen == NULL)
Dummy_prSDLScreen = SDL_SetVideoMode(width, height, 16, SDL_SWSURFACE | SDL_FULLSCREEN);
currprefs.gfx_correct_aspect = changed_prefs.gfx_correct_aspect;
currprefs.gfx_fullscreen_ratio = changed_prefs.gfx_fullscreen_ratio;
screen = SDL_CreateRGBSurface(SDL_HWSURFACE, width, height, 16,
Dummy_prSDLScreen->format->Rmask, Dummy_prSDLScreen->format->Gmask, Dummy_prSDLScreen->format->Bmask, Dummy_prSDLScreen->format->Amask);
vc_dispmanx_display_get_info(dispmanxdisplay, &dispmanxdinfo);
dispmanxresource_amigafb_1 = vc_dispmanx_resource_create(VC_IMAGE_RGB565, width, height, &vc_image_ptr);
dispmanxresource_amigafb_2 = vc_dispmanx_resource_create(VC_IMAGE_RGB565, width, height, &vc_image_ptr);
vc_dispmanx_rect_set(&blit_rect, 0, 0, width, height);
vc_dispmanx_resource_write_data(dispmanxresource_amigafb_1, VC_IMAGE_RGB565, prSDLScreen->pitch, prSDLScreen->pixels, &blit_rect);
vc_dispmanx_rect_set(&src_rect, 0, 0, width << 16, height << 16);
// 16/9 to 4/3 ratio adaptation.
if (currprefs.gfx_correct_aspect == 0)
{
// Fullscreen.
int scaled_width = dispmanxdinfo.width * currprefs.gfx_fullscreen_ratio / 100;
int scaled_height = dispmanxdinfo.height * currprefs.gfx_fullscreen_ratio / 100;
vc_dispmanx_rect_set( &dst_rect, (dispmanxdinfo.width - scaled_width)/2, (dispmanxdinfo.height - scaled_height)/2,
scaled_width, scaled_height);
}
else
{
// 4/3 shrink.
int scaled_width = dispmanxdinfo.width * currprefs.gfx_fullscreen_ratio / 100;
int scaled_height = dispmanxdinfo.height * currprefs.gfx_fullscreen_ratio / 100;
vc_dispmanx_rect_set( &dst_rect, (dispmanxdinfo.width - scaled_width / 16 * 12)/2, (dispmanxdinfo.height - scaled_height)/2,
scaled_width/16*12, scaled_height);
}
if (DispManXElementpresent == 0)
{
DispManXElementpresent = 1;
dispmanxupdate = vc_dispmanx_update_start(0);
dispmanxelement = vc_dispmanx_element_add(dispmanxupdate, dispmanxdisplay, 2, // layer
&dst_rect, dispmanxresource_amigafb_1, &src_rect, DISPMANX_PROTECTION_NONE, &alpha,
NULL, // clamp
DISPMANX_NO_ROTATE);
vc_dispmanx_update_submit(dispmanxupdate, NULL, NULL);
}
}
#endif
static void open_screen(struct uae_prefs* p) static void open_screen(struct uae_prefs* p)
{ {
int width; int width;
int height; int height;
int depth = 16; int depth = 16;
#ifdef USE_SDL1
VC_DISPMANX_ALPHA_T alpha = {
DISPMANX_FLAGS_ALPHA_T(DISPMANX_FLAGS_ALPHA_FROM_SOURCE | DISPMANX_FLAGS_ALPHA_FIXED_ALL_PIXELS),
255, /*alpha 0->255*/
0
};
uint32_t vc_image_ptr;
current_resource_amigafb = 0;
next_synctime = 0;
#endif
#ifdef PICASSO96 #ifdef PICASSO96
if (screen_is_picasso) if (screen_is_picasso)
{ {
width = picasso_vidinfo.width ? picasso_vidinfo.width : 640; width = picasso_vidinfo.width ? picasso_vidinfo.width : 640;
height = picasso_vidinfo.height ? picasso_vidinfo.height : 256; height = picasso_vidinfo.height ? picasso_vidinfo.height : 256;
#ifdef USE_SDL2
SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "linear"); // we always use linear for Picasso96 modes SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "linear"); // we always use linear for Picasso96 modes
#endif //USE_SDL2
} }
else else
#endif #endif //PICASSO96
{ {
p->gfx_resolution = p->gfx_size.width ? (p->gfx_size.width > 600 ? 1 : 0) : 1; p->gfx_resolution = p->gfx_size.width ? (p->gfx_size.width > 600 ? 1 : 0) : 1;
width = p->gfx_size.width ? p->gfx_size.width : 640; width = p->gfx_size.width ? p->gfx_size.width : 640;
height = p->gfx_size.height ? p->gfx_size.height : 256; height = p->gfx_size.height ? p->gfx_size.height << p->gfx_vresolution : 256;
#ifdef USE_SDL2
if (p->scaling_method == -1) if (p->scaling_method == -1)
{ {
if (isModeAspectRatioExact(&sdlMode, width, height)) if (isModeAspectRatioExact(&sdlMode, width, height))
@ -157,20 +350,30 @@ static void open_screen(struct uae_prefs* p)
SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "nearest"); SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "nearest");
else if (p->scaling_method == 1) else if (p->scaling_method == 1)
SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "linear"); SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "linear");
#endif
} }
graphics_subshutdown(); graphics_subshutdown();
#ifdef USE_SDL1
open_sdl1_screen(width, height);
vsync_counter = 0;
current_vsync_frame = 2;
#elif USE_SDL2
Create_SDL_Surface(width, height, depth); Create_SDL_Surface(width, height, depth);
if (screen_is_picasso) if (screen_is_picasso)
SDL_RenderSetLogicalSize(renderer, width, height); SDL_RenderSetLogicalSize(renderer, width, height);
else else
SDL_RenderSetLogicalSize(renderer, width, height*2); {
if (p->gfx_vresolution)
SDL_RenderSetLogicalSize(renderer, width, height);
else
SDL_RenderSetLogicalSize(renderer, width, height*2);
}
Create_SDL_Texture(width, height, depth); Create_SDL_Texture(width, height, depth);
updatedisplayarea(); updatedisplayarea();
#endif
if (screen != nullptr) if (screen != nullptr)
{ {
@ -192,12 +395,14 @@ int check_prefs_changed_gfx()
if (currprefs.gfx_size.height != changed_prefs.gfx_size.height || if (currprefs.gfx_size.height != changed_prefs.gfx_size.height ||
currprefs.gfx_size.width != changed_prefs.gfx_size.width || currprefs.gfx_size.width != changed_prefs.gfx_size.width ||
currprefs.gfx_resolution != changed_prefs.gfx_resolution) currprefs.gfx_resolution != changed_prefs.gfx_resolution ||
currprefs.gfx_vresolution != changed_prefs.gfx_vresolution)
{ {
cfgfile_configuration_change(1); cfgfile_configuration_change(1);
currprefs.gfx_size.height = changed_prefs.gfx_size.height; currprefs.gfx_size.height = changed_prefs.gfx_size.height;
currprefs.gfx_size.width = changed_prefs.gfx_size.width; currprefs.gfx_size.width = changed_prefs.gfx_size.width;
currprefs.gfx_resolution = changed_prefs.gfx_resolution; currprefs.gfx_resolution = changed_prefs.gfx_resolution;
currprefs.gfx_vresolution = changed_prefs.gfx_vresolution;
update_display(&currprefs); update_display(&currprefs);
changed = 1; changed = 1;
} }
@ -271,17 +476,65 @@ bool render_screen(bool immediate)
void show_screen(int mode) void show_screen(int mode)
{ {
#ifdef USE_SDL1
unsigned long start = read_processor_time();
int wait_till = current_vsync_frame;
if (vsync_modulo == 1) {
// Amiga framerate is equal to host framerate
do
{
usleep(10);
current_vsync_frame = vsync_counter;
} while (wait_till >= current_vsync_frame && read_processor_time() - start < 40000);
if (wait_till + 1 != current_vsync_frame) {
// We missed a vsync...
next_synctime = 0;
}
}
else {
// Amiga framerate differs from host framerate
unsigned long wait_till_time = (next_synctime != 0) ? next_synctime : last_synctime + time_per_frame;
if (current_vsync_frame % vsync_modulo == 0) {
// Real vsync
if (start < wait_till_time) {
// We are in time, wait for vsync
atomic_set(&vsync_counter, current_vsync_frame);
do
{
usleep(10);
current_vsync_frame = vsync_counter;
} while (wait_till >= current_vsync_frame && read_processor_time() - start < 40000);
}
else {
// Too late for vsync
}
}
else {
// Estimate vsync by time
while (wait_till_time > read_processor_time()) {
usleep(10);
}
++current_vsync_frame;
}
}
current_vsync_frame += currprefs.gfx_framerate;
#endif
last_synctime = read_processor_time(); last_synctime = read_processor_time();
updatedisplayarea(); updatedisplayarea();
#ifdef USE_SDL1
idletime += last_synctime - start;
#endif
if (last_synctime - next_synctime > time_per_frame - 5000) if (last_synctime - next_synctime > time_per_frame - 5000)
next_synctime = last_synctime + time_per_frame * (1 + currprefs.gfx_framerate); next_synctime = last_synctime + time_per_frame * (1 + currprefs.gfx_framerate);
else else
next_synctime = next_synctime + time_per_frame * (1 + currprefs.gfx_framerate); next_synctime = next_synctime + time_per_frame * (1 + currprefs.gfx_framerate);
//if (!screen_is_picasso)
// gfxvidinfo.drawbuffer.bufmem = static_cast<uae_u8 *>(screen->pixels);
} }
unsigned long target_lastsynctime(void) unsigned long target_lastsynctime(void)
@ -296,6 +549,17 @@ bool show_screen_maybe(bool show)
return false; return false;
} }
#ifdef USE_SDL1
void black_screen_now(void)
{
if (screen != NULL) {
SDL_FillRect(screen, NULL, 0);
render_screen(true);
show_screen(0);
}
}
#endif
static void graphics_subinit() static void graphics_subinit()
{ {
if (screen == nullptr) if (screen == nullptr)
@ -355,7 +619,22 @@ static int init_colors()
*/ */
static int get_display_depth() static int get_display_depth()
{ {
#ifdef USE_SDL1
const SDL_VideoInfo *vid_info;
int depth = 0;
if ((vid_info = SDL_GetVideoInfo())) {
depth = vid_info->vfmt->BitsPerPixel;
/* Don't trust the answer if it's 16 bits; the display
* could actually be 15 bits deep. We'll count the bits
* ourselves */
if (depth == 16)
depth = bitsInMask(vid_info->vfmt->Rmask) + bitsInMask(vid_info->vfmt->Gmask) + bitsInMask(vid_info->vfmt->Bmask);
}
#elif USE_SDL2
int depth = screen->format->BytesPerPixel == 4 ? 32 : 16; int depth = screen->format->BytesPerPixel == 4 ? 32 : 16;
#endif
return depth; return depth;
} }
@ -386,9 +665,18 @@ void graphics_leave()
{ {
graphics_subshutdown(); graphics_subshutdown();
#ifdef USE_SDL1
if (Dummy_prSDLScreen != NULL) {
SDL_FreeSurface(Dummy_prSDLScreen);
Dummy_prSDLScreen = NULL;
}
vc_dispmanx_vsync_callback(dispmanxdisplay, NULL, NULL);
vc_dispmanx_display_close(dispmanxdisplay);
bcm_host_deinit();
#elif USE_SDL2
SDL_DestroyRenderer(renderer); SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(sdlWindow); SDL_DestroyWindow(sdlWindow);
#endif
SDL_VideoQuit(); SDL_VideoQuit();
} }
@ -541,8 +829,17 @@ bool vsync_switchmode(int hz)
if (hz != currVSyncRate) if (hz != currVSyncRate)
{ {
SetVSyncRate(hz); SetVSyncRate(hz);
#ifdef USE_SDL1
black_screen_now();
#endif
fpscounter_reset(); fpscounter_reset();
time_per_frame = 1000 * 1000 / (hz); time_per_frame = 1000 * 1000 / (hz);
if (hz == host_hz)
vsync_modulo = 1;
else if (hz > host_hz)
vsync_modulo = 6; // Amiga draws 6 frames while host has 5 vsyncs -> sync every 6th Amiga frame
else
vsync_modulo = 5; // Amiga draws 5 frames while host has 6 vsyncs -> sync every 5th Amiga frame
} }
if (!picasso_on && !picasso_requested_on) if (!picasso_on && !picasso_requested_on)
@ -563,6 +860,9 @@ bool target_graphics_buffer_update()
if (rate_changed) if (rate_changed)
{ {
#ifdef USE_SDL1
black_screen_now();
#endif
fpscounter_reset(); fpscounter_reset();
time_per_frame = 1000 * 1000 / currprefs.chipset_refreshrate; time_per_frame = 1000 * 1000 / currprefs.chipset_refreshrate;
} }

View file

@ -2,8 +2,14 @@
#include <iostream> #include <iostream>
#include <vector> #include <vector>
#include <sstream> #include <sstream>
#ifdef USE_SDL1
#include <guichan.hpp>
#include <guichan/sdl.hpp>
#endif
#ifdef USE_SDL2
#include <guisan.hpp> #include <guisan.hpp>
#include <guisan/sdl.hpp> #include <guisan/sdl.hpp>
#endif
#include "sysconfig.h" #include "sysconfig.h"
#include "sysdeps.h" #include "sysdeps.h"
#include "uae.h" #include "uae.h"
@ -136,9 +142,9 @@ static void addrom(struct romdata* rd, const char* path)
char tmpName[MAX_DPATH]; char tmpName[MAX_DPATH];
AvailableROM* tmp = new AvailableROM(); AvailableROM* tmp = new AvailableROM();
getromname(rd, tmpName); getromname(rd, tmpName);
strcpy(tmp->Name, tmpName); strncpy(tmp->Name, tmpName, MAX_PATH);
if (path != nullptr) if (path != nullptr)
strcpy(tmp->Path, path); strncpy(tmp->Path, path, MAX_PATH);
tmp->ROMType = rd->type; tmp->ROMType = rd->type;
lstAvailableROMs.push_back(tmp); lstAvailableROMs.push_back(tmp);
romlist_add(path, rd); romlist_add(path, rd);
@ -208,7 +214,7 @@ static struct romdata* scan_single_rom(char* path)
{ {
char tmp[MAX_DPATH]; char tmp[MAX_DPATH];
strcpy(tmp, path); strncpy (tmp, path, MAX_PATH);
struct romdata* rd = getromdatabypath(path); struct romdata* rd = getromdatabypath(path);
if (rd && rd->crc32 == 0xffffffff) if (rd && rd->crc32 == 0xffffffff)
return rd; return rd;
@ -266,20 +272,20 @@ static void scan_rom(char *path)
void RescanROMs() void RescanROMs()
{ {
vector<string> files; vector<string> files;
char path[MAX_DPATH]; char path[MAX_PATH];
romlist_clear(); romlist_clear();
ClearAvailableROMList(); ClearAvailableROMList();
fetch_rompath(path, sizeof path); fetch_rompath(path, MAX_PATH);
load_keyring(&changed_prefs, path); load_keyring(&changed_prefs, path);
ReadDirectory(path, nullptr, &files); ReadDirectory(path, nullptr, &files);
for (int i = 0; i < files.size(); ++i) for (int i = 0; i < files.size(); ++i)
{ {
char tmppath[MAX_DPATH]; char tmppath[MAX_PATH];
strcpy(tmppath, path); strncpy(tmppath, path, sizeof tmppath - 1);
strncat(tmppath, files[i].c_str(), sizeof tmppath); strncat(tmppath, files[i].c_str(), sizeof tmppath - 1);
scan_rom(tmppath); scan_rom(tmppath);
} }
@ -413,6 +419,7 @@ int gui_init()
quit_program = -quit_program; quit_program = -quit_program;
if (quit_program == UAE_QUIT) if (quit_program == UAE_QUIT)
ret = -2; // Quit without start of emulator ret = -2; // Quit without start of emulator
setCpuSpeed();
update_display(&changed_prefs); update_display(&changed_prefs);
@ -423,9 +430,7 @@ int gui_init()
void gui_exit() void gui_exit()
{ {
#ifdef PANDORA
resetCpuSpeed(); resetCpuSpeed();
#endif
sync(); sync();
amiberry_stop_sound(); amiberry_stop_sound();
saveAdfDir(); saveAdfDir();
@ -436,6 +441,18 @@ void gui_exit()
void gui_purge_events() void gui_purge_events()
{ {
#ifdef USE_SDL1
int counter = 0;
SDL_Event event;
SDL_Delay(150);
// Strangely PS3 controller always send events, so we need a maximum number of event to purge.
while (SDL_PollEvent(&event) && counter < 50)
{
counter++;
SDL_Delay(10);
}
#endif
keybuf_init(); keybuf_init();
} }
@ -444,38 +461,38 @@ int gui_update()
{ {
char tmp[MAX_DPATH]; char tmp[MAX_DPATH];
fetch_savestatepath(savestate_fname, sizeof savestate_fname); fetch_savestatepath(savestate_fname, MAX_DPATH);
fetch_screenshotpath(screenshot_filename, MAX_DPATH); fetch_screenshotpath(screenshot_filename, MAX_DPATH);
if (strlen(currprefs.floppyslots[0].df) > 0) if (strlen(currprefs.floppyslots[0].df) > 0)
extractFileName(currprefs.floppyslots[0].df, tmp); extractFileName(currprefs.floppyslots[0].df, tmp);
else else
strcpy(tmp, last_loaded_config); strncpy(tmp, last_loaded_config, sizeof tmp);
strncat(savestate_fname, tmp, sizeof savestate_fname); strncat(savestate_fname, tmp, MAX_DPATH - 1);
strncat(screenshot_filename, tmp, sizeof screenshot_filename); strncat(screenshot_filename, tmp, MAX_DPATH - 1);
removeFileExtension(savestate_fname); removeFileExtension(savestate_fname);
removeFileExtension(screenshot_filename); removeFileExtension(screenshot_filename);
switch (currentStateNum) switch(currentStateNum)
{ {
case 1: case 1:
strcat(savestate_fname, "-1.uss"); strncat(savestate_fname,"-1.uss", MAX_PATH - 1);
strcat(screenshot_filename, "-1.png"); strncat(screenshot_filename,"-1.png", MAX_PATH - 1);
break; break;
case 2: case 2:
strcat(savestate_fname, "-2.uss"); strncat(savestate_fname,"-2.uss", MAX_PATH - 1);
strcat(screenshot_filename, "-2.png"); strncat(screenshot_filename,"-2.png", MAX_PATH - 1);
break; break;
case 3: case 3:
strcat(savestate_fname, "-3.uss"); strncat(savestate_fname,"-3.uss", MAX_PATH - 1);
strcat(screenshot_filename, "-3.png"); strncat(screenshot_filename,"-3.png", MAX_PATH - 1);
break; break;
default: default:
strcat(savestate_fname, ".uss"); strncat(savestate_fname,".uss", MAX_PATH - 1);
strcat(screenshot_filename, ".png"); strncat(screenshot_filename,".png", MAX_PATH - 1);
} }
return 0; return 0;
} }
@ -490,6 +507,9 @@ void gui_display(int shortcut)
if (lstAvailableROMs.size() == 0) if (lstAvailableROMs.size() == 0)
RescanROMs(); RescanROMs();
#ifdef USE_SDL1
graphics_subshutdown();
#endif
prefs_to_gui(); prefs_to_gui();
run_gui(); run_gui();
@ -499,6 +519,10 @@ void gui_display(int shortcut)
screen_is_picasso = 0; screen_is_picasso = 0;
update_display(&changed_prefs); update_display(&changed_prefs);
#ifdef USE_SDL1
/* Clear menu garbage at the bottom of the screen */
black_screen_now();
#endif
reset_sound(); reset_sound();
resume_sound(); resume_sound();
@ -569,6 +593,27 @@ void gui_led(int led, int on)
void gui_flicker_led(int led, int unitnum, int status) void gui_flicker_led(int led, int unitnum, int status)
{ {
static int hd_resetcounter;
switch(led)
{
case -1: // Reset HD and CD
gui_data.hd = 0;
break;
case LED_POWER:
break;
case LED_HD:
if (status == 0) {
hd_resetcounter--;
if (hd_resetcounter > 0)
return;
}
gui_data.hd = status;
hd_resetcounter = 2;
break;
}
gui_led(led, status); gui_led(led, status);
} }
@ -632,7 +677,7 @@ int translate_message(int msg, TCHAR* out)
{ {
if (gui_msglist[i].num == msg) if (gui_msglist[i].num == msg)
{ {
strcpy(out, gui_msglist[i].msg); strncpy(out, gui_msglist[i].msg, MAX_DPATH);
return 1; return 1;
} }
++i; ++i;

View file

@ -2,6 +2,7 @@
#include "sysdeps.h" #include "sysdeps.h"
#include "config.h" #include "config.h"
#include "options.h" #include "options.h"
#include "keyboard.h"
#include "inputdevice.h" #include "inputdevice.h"
#include <SDL.h> #include <SDL.h>
@ -134,28 +135,31 @@ static void fill_blank_controller(void)
default_controller_map.is_retroarch = false; default_controller_map.is_retroarch = false;
} }
//TODO: Check if we can use SCANCODES for both SDL versions
#ifdef USE_SDL1
static void fill_default_keyboard()
{
// test using iPac layout
default_keyboard_map.north_button = SDLK_LSHIFT;
default_keyboard_map.east_button = SDLK_LCTRL;
default_keyboard_map.south_button = SDLK_LALT;
default_keyboard_map.west_button = SDLK_SPACE;
default_keyboard_map.dpad_left = SDLK_LEFT;
default_keyboard_map.dpad_right = SDLK_RIGHT;
default_keyboard_map.dpad_up = SDLK_UP;
default_keyboard_map.dpad_down = SDLK_DOWN;
default_keyboard_map.left_shoulder = SDLK_z;
default_keyboard_map.right_shoulder = SDLK_x;
default_keyboard_map.select_button = SDLK_1;
default_keyboard_map.start_button = SDLK_2;
default_keyboard_map.lstick_button = SDLK_F1;
default_keyboard_map.rstick_button = SDLK_F2;
//static void fill_default_keyboard() default_keyboard_map.is_retroarch = false;
//{ }
// // test using iPac layout #endif
// default_keyboard_map.north_button = SDLK_LSHIFT;
// default_keyboard_map.east_button = SDLK_LCTRL;
// default_keyboard_map.south_button = SDLK_LALT;
// default_keyboard_map.west_button = SDLK_SPACE;
// default_keyboard_map.dpad_left = SDLK_LEFT;
// default_keyboard_map.dpad_right = SDLK_RIGHT;
// default_keyboard_map.dpad_up = SDLK_UP;
// default_keyboard_map.dpad_down = SDLK_DOWN;
// default_keyboard_map.left_shoulder = SDLK_z;
// default_keyboard_map.right_shoulder = SDLK_x;
// default_keyboard_map.select_button = SDLK_1;
// default_keyboard_map.start_button = SDLK_2;
// default_keyboard_map.lstick_button = SDLK_F1;
// default_keyboard_map.rstick_button = SDLK_F2;
//
// default_keyboard_map.is_retroarch = false;
//}
#ifdef USE_SDL2
static void fill_default_keyboard() static void fill_default_keyboard()
{ {
// test using iPac layout // test using iPac layout
@ -176,6 +180,7 @@ static void fill_default_keyboard()
default_keyboard_map.is_retroarch = false; default_keyboard_map.is_retroarch = false;
} }
#endif
//# Keyboard input. Will recognize letters (a to z) and the following special keys (where kp_ //# Keyboard input. Will recognize letters (a to z) and the following special keys (where kp_
//# is for keypad keys): //# is for keypad keys):
@ -189,33 +194,36 @@ static void fill_default_keyboard()
//# tilde, backquote, pause, quote, comma, minus, slash, semicolon, equals, leftbracket, //# tilde, backquote, pause, quote, comma, minus, slash, semicolon, equals, leftbracket,
//# backslash, rightbracket, kp_period, kp_equals, rctrl, ralt //# backslash, rightbracket, kp_period, kp_equals, rctrl, ralt
//const int RemapKeyMapList[] = { #ifdef USE_SDL1
// -1, const int RemapKeyMapList[] = {
// SDLK_a, SDLK_b, SDLK_c, SDLK_d, SDLK_e, -1,
// SDLK_f, SDLK_g, SDLK_h, SDLK_i, SDLK_j, SDLK_a, SDLK_b, SDLK_c, SDLK_d, SDLK_e,
// SDLK_k, SDLK_l, SDLK_m, SDLK_n, SDLK_o, SDLK_f, SDLK_g, SDLK_h, SDLK_i, SDLK_j,
// SDLK_p, SDLK_q, SDLK_r, SDLK_s, SDLK_t, SDLK_k, SDLK_l, SDLK_m, SDLK_n, SDLK_o,
// SDLK_u, SDLK_v, SDLK_w, SDLK_x, SDLK_y, SDLK_z, SDLK_p, SDLK_q, SDLK_r, SDLK_s, SDLK_t,
// SDLK_LEFT, SDLK_RIGHT, SDLK_UP, SDLK_DOWN, SDLK_RETURN, SDLK_u, SDLK_v, SDLK_w, SDLK_x, SDLK_y, SDLK_z,
// SDLK_KP_ENTER, SDLK_TAB, SDLK_INSERT, SDLK_DELETE, SDLK_END, SDLK_HOME, SDLK_LEFT, SDLK_RIGHT, SDLK_UP, SDLK_DOWN, SDLK_RETURN,
// SDLK_RSHIFT, SDLK_LSHIFT, SDLK_LCTRL, SDLK_LALT, SDLK_SPACE, SDLK_KP_ENTER, SDLK_TAB, SDLK_INSERT, SDLK_DELETE, SDLK_END, SDLK_HOME,
// SDLK_ESCAPE, SDLK_PLUS, SDLK_MINUS, SDLK_KP_PLUS, SDLK_KP_MINUS, SDLK_RSHIFT, SDLK_LSHIFT, SDLK_LCTRL, SDLK_LALT, SDLK_SPACE,
// SDLK_F1, SDLK_F2, SDLK_F3, SDLK_F4, SDLK_F5, SDLK_F6, SDLK_ESCAPE, SDLK_PLUS, SDLK_MINUS, SDLK_KP_PLUS, SDLK_KP_MINUS,
// SDLK_F7, SDLK_F8, SDLK_F9, SDLK_F10, SDLK_F11, SDLK_F12, SDLK_F1, SDLK_F2, SDLK_F3, SDLK_F4, SDLK_F5, SDLK_F6,
// SDLK_0, SDLK_1, SDLK_2, SDLK_3, SDLK_4, SDLK_5, SDLK_F7, SDLK_F8, SDLK_F9, SDLK_F10, SDLK_F11, SDLK_F12,
// SDLK_6, SDLK_7, SDLK_8, SDLK_9, SDLK_PAGEUP, SDLK_PAGEDOWN, SDLK_0, SDLK_1, SDLK_2, SDLK_3, SDLK_4, SDLK_5,
// SDLK_KP_0, SDLK_KP_1, SDLK_KP_2, SDLK_KP_3, SDLK_KP_4, SDLK_6, SDLK_7, SDLK_8, SDLK_9, SDLK_PAGEUP, SDLK_PAGEDOWN,
// SDLK_KP_5, SDLK_KP_6, SDLK_KP_7, SDLK_KP_8, SDLK_KP_9, SDLK_KP0, SDLK_KP1, SDLK_KP2, SDLK_KP3, SDLK_KP4,
// SDLK_PERIOD, SDLK_CAPSLOCK, SDLK_NUMLOCKCLEAR, SDLK_BACKSPACE, SDLK_KP5, SDLK_KP6, SDLK_KP7, SDLK_KP8, SDLK_KP9,
// // divide SDLK_PERIOD, SDLK_CAPSLOCK, SDLK_NUMLOCK, SDLK_BACKSPACE,
// SDLK_ASTERISK, -1, SDLK_PRINTSCREEN, SDLK_SCROLLLOCK, // divide
// // tilde SDLK_ASTERISK, -1, SDLK_PRINT, SDLK_SCROLLOCK,
// -1, SDLK_BACKQUOTE,SDLK_PAUSE, SDLK_QUOTE, SDLK_COMMA, // tilde
// SDLK_MINUS, SDLK_SLASH, SDLK_SEMICOLON,SDLK_EQUALS, SDLK_LEFTPAREN, -1, SDLK_BACKQUOTE,SDLK_PAUSE, SDLK_QUOTE, SDLK_COMMA,
// SDLK_BACKSLASH, SDLK_RIGHTPAREN, SDLK_MINUS, SDLK_SLASH, SDLK_SEMICOLON,SDLK_EQUALS, SDLK_LEFTPAREN,
// SDLK_KP_PERIOD, SDLK_KP_EQUALS,SDLK_RCTRL, SDLK_RALT SDLK_BACKSLASH, SDLK_RIGHTPAREN,
//}; SDLK_KP_PERIOD, SDLK_KP_EQUALS,SDLK_RCTRL, SDLK_RALT
};
#endif
#ifdef USE_SDL2
const int RemapKeyMapList[] = { const int RemapKeyMapList[] = {
-1, -1,
SDL_SCANCODE_A, SDL_SCANCODE_B, SDL_SCANCODE_C, SDL_SCANCODE_D, SDL_SCANCODE_E, SDL_SCANCODE_A, SDL_SCANCODE_B, SDL_SCANCODE_C, SDL_SCANCODE_D, SDL_SCANCODE_E,
@ -240,6 +248,7 @@ const int RemapKeyMapList[] = {
SDL_SCANCODE_BACKSLASH, SDL_SCANCODE_RIGHTBRACKET, SDL_SCANCODE_BACKSLASH, SDL_SCANCODE_RIGHTBRACKET,
SDL_SCANCODE_KP_PERIOD, SDL_SCANCODE_KP_EQUALS, SDL_SCANCODE_RCTRL, SDL_SCANCODE_RALT SDL_SCANCODE_KP_PERIOD, SDL_SCANCODE_KP_EQUALS, SDL_SCANCODE_RCTRL, SDL_SCANCODE_RALT
}; };
#endif
const char* RemapKeyMapListStrings[] = { const char* RemapKeyMapListStrings[] = {
"nul", "nul",
@ -740,8 +749,14 @@ static int init_joystick(void)
if (Joysticktable[cpt] != nullptr) if (Joysticktable[cpt] != nullptr)
{ {
#ifdef USE_SDL1
if (SDL_JoystickName(cpt) != nullptr)
strncpy(JoystickName[cpt], SDL_JoystickName(cpt), sizeof JoystickName[cpt] - 1);
#endif
#ifdef USE_SDL2
if (SDL_JoystickNameForIndex(cpt) != nullptr) if (SDL_JoystickNameForIndex(cpt) != nullptr)
strncpy(JoystickName[cpt], SDL_JoystickNameForIndex(cpt), sizeof JoystickName[cpt] - 1); strncpy(JoystickName[cpt], SDL_JoystickNameForIndex(cpt), sizeof JoystickName[cpt] - 1);
#endif
else else
sprintf(JoystickName[cpt], "Joystick%d", cpt); sprintf(JoystickName[cpt], "Joystick%d", cpt);
@ -910,6 +925,8 @@ static int get_joystick_widget_first(const int joy, const int type)
return FIRST_JOY_AXIS; return FIRST_JOY_AXIS;
case IDEV_WIDGET_BUTTONAXIS: case IDEV_WIDGET_BUTTONAXIS:
return MAX_JOY_AXES + MAX_JOY_BUTTONS; return MAX_JOY_AXES + MAX_JOY_BUTTONS;
default:
return -1;
} }
} }
return -1; return -1;
@ -982,10 +999,14 @@ static void read_joystick(void)
// First handle retroarch (or default) keys as Joystick... // First handle retroarch (or default) keys as Joystick...
if (currprefs.jports[joyid].id >= JSEM_JOYS && currprefs.jports[joyid].id < JSEM_JOYS + numKeysAsJoys) if (currprefs.jports[joyid].id >= JSEM_JOYS && currprefs.jports[joyid].id < JSEM_JOYS + numKeysAsJoys)
{ {
const int hostkeyid = 0;//currprefs.jports[joyid].id - JSEM_JOYS; const int hostkeyid = currprefs.jports[joyid].id - JSEM_JOYS;
#ifdef USE_SDL1
Uint8* keystate = SDL_GetKeyState(nullptr);
#endif
#ifdef USE_SDL2
const Uint8* keystate = SDL_GetKeyboardState(nullptr); const Uint8* keystate = SDL_GetKeyboardState(nullptr);
#endif
// cd32 red, blue, green, yellow // cd32 red, blue, green, yellow
setjoybuttonstate(0, 0, keystate[host_keyboard_buttons[hostkeyid].south_button]); // b setjoybuttonstate(0, 0, keystate[host_keyboard_buttons[hostkeyid].south_button]); // b
setjoybuttonstate(0, 1, keystate[host_keyboard_buttons[hostkeyid].east_button]); // a setjoybuttonstate(0, 1, keystate[host_keyboard_buttons[hostkeyid].east_button]); // a
@ -1201,7 +1222,7 @@ struct inputdevice_functions inputdevicefunc_joystick = {
get_joystick_flags get_joystick_flags
}; };
int input_get_default_joystick(struct uae_input_device* uid, int num, int port, int af, int mode, bool gp, int input_get_default_joystick(struct uae_input_device* uid, const int num, int port, const int af, const int mode, const bool gp,
bool joymouseswap) bool joymouseswap)
{ {
// DEAL WITH AXIS INPUT EVENTS // DEAL WITH AXIS INPUT EVENTS
@ -1456,7 +1477,7 @@ int input_get_default_joystick_analog(struct uae_input_device* uid, int num, int
} }
void SimulateMouseOrJoy(int code, int keypressed) void SimulateMouseOrJoy(const int code, const int keypressed)
{ {
switch (code) switch (code)
{ {

View file

@ -3,7 +3,7 @@
#include <string.h> #include <string.h>
// UAE4ARM and fs-uae uses only chars / UTF-8 internally, so TCHAR is typedefed to // Amiberry and fs-uae uses only chars / UTF-8 internally, so TCHAR is typedefed to
// char (WinUAE uses wchar_t internally). // char (WinUAE uses wchar_t internally).
char *ua(const TCHAR *s) char *ua(const TCHAR *s)

View file

@ -1,6 +1,15 @@
#ifdef USE_SDL1
#include <guichan.hpp>
#include <guichan/sdl.hpp>
#include "sdltruetypefont.hpp"
#include <SDL/SDL_ttf.h>
#elif USE_SDL2
#include <guisan.hpp> #include <guisan.hpp>
#include <SDL.h>
#include <guisan/sdl.hpp> #include <guisan/sdl.hpp>
#include <guisan/sdl/sdltruetypefont.hpp>
#endif
#include <SDL.h>
#include <guisan/sdl/sdltruetypefont.hpp> #include <guisan/sdl/sdltruetypefont.hpp>
#include "SelectorEntry.hpp" #include "SelectorEntry.hpp"
#include "UaeRadioButton.hpp" #include "UaeRadioButton.hpp"
@ -327,7 +336,6 @@ static void CreateFilesysHardfileLoop()
// Now we let the Gui object draw itself. // Now we let the Gui object draw itself.
uae_gui->draw(); uae_gui->draw();
// Finally we update the screen. // Finally we update the screen.
UpdateGuiScreen(); UpdateGuiScreen();
} }
} }

View file

@ -1,7 +1,14 @@
#ifdef USE_SDL1
#include <guichan.hpp>
#include <SDL/SDL_ttf.h>
#include <guichan/sdl.hpp>
#include "sdltruetypefont.hpp"
#elif USE_SDL2
#include <guisan.hpp> #include <guisan.hpp>
#include <SDL_ttf.h> #include <SDL_ttf.h>
#include <guisan/sdl.hpp> #include <guisan/sdl.hpp>
#include <guisan/sdl/sdltruetypefont.hpp> #include <guisan/sdl/sdltruetypefont.hpp>
#endif
#include "SelectorEntry.hpp" #include "SelectorEntry.hpp"
#include "UaeRadioButton.hpp" #include "UaeRadioButton.hpp"
#include "UaeDropDown.hpp" #include "UaeDropDown.hpp"
@ -505,7 +512,6 @@ static void EditFilesysHardfileLoop()
// Now we let the Gui object draw itself. // Now we let the Gui object draw itself.
uae_gui->draw(); uae_gui->draw();
// Finally we update the screen. // Finally we update the screen.
UpdateGuiScreen(); UpdateGuiScreen();
} }
} }

View file

@ -1,7 +1,14 @@
#ifdef USE_SDL1
#include <guichan.hpp>
#include <SDL/SDL_ttf.h>
#include <guichan/sdl.hpp>
#include "sdltruetypefont.hpp"
#elif USE_SDL2
#include <guisan.hpp> #include <guisan.hpp>
#include <SDL_ttf.h> #include <SDL_ttf.h>
#include <guisan/sdl.hpp> #include <guisan/sdl.hpp>
#include <guisan/sdl/sdltruetypefont.hpp> #include <guisan/sdl/sdltruetypefont.hpp>
#endif
#include "SelectorEntry.hpp" #include "SelectorEntry.hpp"
#include "UaeRadioButton.hpp" #include "UaeRadioButton.hpp"
#include "UaeDropDown.hpp" #include "UaeDropDown.hpp"

View file

@ -1,7 +1,14 @@
#ifdef USE_SDL1
#include <guichan.hpp>
#include <SDL/SDL_ttf.h>
#include <guichan/sdl.hpp>
#include "sdltruetypefont.hpp"
#elif USE_SDL2
#include <guisan.hpp> #include <guisan.hpp>
#include <SDL_ttf.h> #include <SDL_ttf.h>
#include <guisan/sdl.hpp> #include <guisan/sdl.hpp>
#include <guisan/sdl/sdltruetypefont.hpp> #include <guisan/sdl/sdltruetypefont.hpp>
#endif
#include "SelectorEntry.hpp" #include "SelectorEntry.hpp"
#include "sysconfig.h" #include "sysconfig.h"
@ -180,11 +187,15 @@ void InGameMessage(const char* msg)
// Now we let the Gui object draw itself. // Now we let the Gui object draw itself.
msg_gui->draw(); msg_gui->draw();
// Finally we update the screen. // Finally we update the screen.
#ifdef USE_SDL1
SDL_Flip(prSDLScreen);
#elif USE_SDL2
if (!drawn && cursor != nullptr) if (!drawn && cursor != nullptr)
{ {
SDL_ShowCursor(SDL_ENABLE); SDL_ShowCursor(SDL_ENABLE);
updatedisplayarea(); updatedisplayarea();
} }
#endif
drawn = true; drawn = true;
} }

View file

@ -1,5 +1,12 @@
#ifdef USE_SDL1
#include <guichan.hpp>
#include <SDL/SDL_ttf.h>
#include <guichan/sdl.hpp>
#include "sdltruetypefont.hpp"
#elif USE_SDL2
#include <guisan.hpp> #include <guisan.hpp>
#include <guisan/sdl/sdltruetypefont.hpp> #include <guisan/sdl/sdltruetypefont.hpp>
#endif
#include "SelectorEntry.hpp" #include "SelectorEntry.hpp"
#include "UaeRadioButton.hpp" #include "UaeRadioButton.hpp"
#include "UaeDropDown.hpp" #include "UaeDropDown.hpp"
@ -26,13 +33,17 @@ static NavigationMap navMap[] =
{ "Paths", "SystemROMs", "SystemROMs", "Reset", "Quickstart" }, { "Paths", "SystemROMs", "SystemROMs", "Reset", "Quickstart" },
{ "Quickstart", "qsNTSC", "AModel", "Paths", "Configurations" }, { "Quickstart", "qsNTSC", "AModel", "Paths", "Configurations" },
{ "Configurations", "ConfigList", "ConfigList", "Quickstart", "CPU and FPU" }, { "Configurations", "ConfigList", "ConfigList", "Quickstart", "CPU and FPU" },
{"CPU and FPU", "7 Mhz", "68000", "Configurations", "Chipset"}, { "CPU and FPU", "7 Mhz", "68000", "Configurations", "Chipset" },
{ "Chipset", "Fast copper", "OCS", "CPU and FPU", "ROM" }, { "Chipset", "Fast copper", "OCS", "CPU and FPU", "ROM" },
{"ROM", "MainROM", "cboMainROM", "Chipset", "RAM"}, { "ROM", "MainROM", "cboMainROM", "Chipset", "RAM" },
{"RAM", "Chipmem", "Chipmem", "ROM", "Floppy drives"}, { "RAM", "Chipmem", "Chipmem", "ROM", "Floppy drives" },
{"Floppy drives", "cmdSel0", "DF0:", "RAM", "Hard drives/CD"}, { "Floppy drives", "cmdSel0", "DF0:", "RAM", "Hard drives/CD" },
{"Hard drives/CD", "cmdCreateHDF", "cmdAddDir", "Floppy drives", "Display"}, { "Hard drives/CD", "cmdCreateHDF", "cmdAddDir", "Floppy drives", "Display"},
{"Display", "Frameskip", "Frameskip", "Hard drives/CD", "Sound"}, #ifdef USE_SDL1
{ "Display", "sldWidth", "sldWidth", "Hard drives/CD", "Sound" },
#elif USE_SDL2
{ "Display", "Frameskip", "Frameskip", "Hard drives/CD", "Sound" },
#endif
{ "Sound", "sndDisable", "sndDisable", "Display", "Input" }, { "Sound", "sndDisable", "sndDisable", "Display", "Input" },
{ "Input", "cboPort0mode", "cboPort0", "Sound", "Custom controls" }, { "Input", "cboPort0mode", "cboPort0", "Sound", "Custom controls" },
{ "Custom controls", "Right Trigger", "0: Mouse", "Input", "Miscellaneous" }, { "Custom controls", "Right Trigger", "0: Mouse", "Input", "Miscellaneous" },
@ -202,10 +213,20 @@ static NavigationMap navMap[] =
{"CDVol", "", "", "cboCD", "cmdProp0"}, {"CDVol", "", "", "cboCD", "cmdProp0"},
// PanelDisplay // PanelDisplay
#ifdef USE_SDL1
{ "sldWidth", "", "", "Frameskip", "sldHeight" },
{ "sldHeight", "", "", "sldWidth", "sldVertPos" },
{ "sldVertPos", "", "", "sldHeight", "FSRatio" },
{ "FSRatio", "", "", "sldVertPos", "4by3Ratio" },
{ "4by3Ratio", "Display", "Display", "FSRatio", "Line doubling" },
{ "Line doubling", "Display", "Display", "4by3Ratio", "Frameskip" },
{ "Frameskip", "Display", "Display", "Line doubling", "sldWidth" },
#elif USE_SDL2
{"Frameskip", "Display", "Display", "Linear (smooth)", "Auto"}, {"Frameskip", "Display", "Display", "Linear (smooth)", "Auto"},
{"Auto", "Display", "Display", "Frameskip", "Nearest Neighbor (pixelated)"}, {"Auto", "Display", "Display", "Frameskip", "Nearest Neighbor (pixelated)"},
{ "Nearest Neighbor (pixelated)", "Display", "Display", "Auto", "Linear (smooth)"}, { "Nearest Neighbor (pixelated)", "Display", "Display", "Auto", "Linear (smooth)"},
{"Linear (smooth)", "Display", "Display", "Nearest Neighbor (pixelated)", "Frameskip"}, {"Linear (smooth)", "Display", "Display", "Nearest Neighbor (pixelated)", "Frameskip"},
#endif
//PanelSound //PanelSound
{ "sndDisable", "Sound", "Mono", "sldStereoDelay", "sndDisEmu" }, { "sndDisable", "Sound", "Mono", "sldStereoDelay", "sndDisEmu" },

View file

@ -1,7 +1,14 @@
#ifdef USE_SDL1
#include <guichan.hpp>
#include <SDL/SDL_ttf.h>
#include <guichan/sdl.hpp>
#include "sdltruetypefont.hpp"
#elif USE_SDL2
#include <guisan.hpp> #include <guisan.hpp>
#include <SDL_ttf.h> #include <SDL_ttf.h>
#include <guisan/sdl.hpp> #include <guisan/sdl.hpp>
#include <guisan/sdl/sdltruetypefont.hpp> #include <guisan/sdl/sdltruetypefont.hpp>
#endif
#include "SelectorEntry.hpp" #include "SelectorEntry.hpp"
#include "UaeRadioButton.hpp" #include "UaeRadioButton.hpp"
#include "UaeCheckBox.hpp" #include "UaeCheckBox.hpp"

View file

@ -1,7 +1,14 @@
#ifdef USE_SDL1
#include <guichan.hpp>
#include <SDL/SDL_ttf.h>
#include <guichan/sdl.hpp>
#include "sdltruetypefont.hpp"
#elif USE_SDL2
#include <guisan.hpp> #include <guisan.hpp>
#include <SDL_ttf.h> #include <SDL_ttf.h>
#include <guisan/sdl.hpp> #include <guisan/sdl.hpp>
#include <guisan/sdl/sdltruetypefont.hpp> #include <guisan/sdl/sdltruetypefont.hpp>
#endif
#include "SelectorEntry.hpp" #include "SelectorEntry.hpp"
#include "UaeRadioButton.hpp" #include "UaeRadioButton.hpp"
#include "UaeCheckBox.hpp" #include "UaeCheckBox.hpp"

View file

@ -1,7 +1,14 @@
#ifdef USE_SDL1
#include <guichan.hpp>
#include <SDL/SDL_ttf.h>
#include <guichan/sdl.hpp>
#include "sdltruetypefont.hpp"
#elif USE_SDL2
#include <guisan.hpp> #include <guisan.hpp>
#include <SDL_ttf.h> #include <SDL_ttf.h>
#include <guisan/sdl.hpp> #include <guisan/sdl.hpp>
#include <guisan/sdl/sdltruetypefont.hpp> #include <guisan/sdl/sdltruetypefont.hpp>
#endif
#include "SelectorEntry.hpp" #include "SelectorEntry.hpp"
#include "UaeListBox.hpp" #include "UaeListBox.hpp"

View file

@ -1,7 +1,14 @@
#ifdef USE_SDL1
#include <guichan.hpp>
#include <SDL/SDL_ttf.h>
#include <guichan/sdl.hpp>
#include "sdltruetypefont.hpp"
#elif USE_SDL2
#include <guisan.hpp> #include <guisan.hpp>
#include <SDL_ttf.h> #include <SDL_ttf.h>
#include <guisan/sdl.hpp> #include <guisan/sdl.hpp>
#include <guisan/sdl/sdltruetypefont.hpp> #include <guisan/sdl/sdltruetypefont.hpp>
#endif
#include "SelectorEntry.hpp" #include "SelectorEntry.hpp"
#include "UaeRadioButton.hpp" #include "UaeRadioButton.hpp"
#include "UaeDropDown.hpp" #include "UaeDropDown.hpp"
@ -570,7 +577,11 @@ void RefreshPanelCustom(void)
if (changed_prefs.jports[SelectedPort].id > JSEM_JOYS && changed_prefs.jports[SelectedPort].id < JSEM_MICE - 1) if (changed_prefs.jports[SelectedPort].id > JSEM_JOYS && changed_prefs.jports[SelectedPort].id < JSEM_MICE - 1)
{ {
const int hostjoyid = changed_prefs.jports[SelectedPort].id - JSEM_JOYS - 1; const int hostjoyid = changed_prefs.jports[SelectedPort].id - JSEM_JOYS - 1;
#ifdef USE_SDL1
strncpy(tmp, SDL_JoystickName(hostjoyid), 255);
#elif USE_SDL2
strncpy(tmp, SDL_JoystickNameForIndex(hostjoyid), 255); strncpy(tmp, SDL_JoystickNameForIndex(hostjoyid), 255);
#endif
for (int n = 0; n < 14; ++n) for (int n = 0; n < 14; ++n)
{ {

View file

@ -1,7 +1,14 @@
#ifdef USE_SDL1
#include <guichan.hpp>
#include <SDL/SDL_ttf.h>
#include <guichan/sdl.hpp>
#include "sdltruetypefont.hpp"
#elif USE_SDL2
#include <guisan.hpp> #include <guisan.hpp>
#include <SDL_ttf.h> #include <SDL_ttf.h>
#include <guisan/sdl.hpp> #include <guisan/sdl.hpp>
#include <guisan/sdl/sdltruetypefont.hpp> #include <guisan/sdl/sdltruetypefont.hpp>
#endif
#include "SelectorEntry.hpp" #include "SelectorEntry.hpp"
#include "UaeRadioButton.hpp" #include "UaeRadioButton.hpp"
#include "UaeDropDown.hpp" #include "UaeDropDown.hpp"
@ -13,40 +20,100 @@
#include "options.h" #include "options.h"
#include "include/memory.h" #include "include/memory.h"
#include "uae.h" #include "uae.h"
#include "custom.h"
#include "gui.h" #include "gui.h"
#include "gui_handling.h" #include "gui_handling.h"
static gcn::UaeCheckBox* chkFrameskip; #ifdef USE_SDL1
const int amigawidth_values[] = { 320, 352, 384, 640, 704, 768 };
const int amigaheight_values[] = { 200, 216, 240, 256, 262, 270 };
const int FullscreenRatio[] = { 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
90, 91, 92, 93, 94, 95, 96, 97,98, 99,100 };
#endif
#ifdef USE_SDL2
static gcn::Window* grpScalingMethod; static gcn::Window* grpScalingMethod;
static gcn::UaeRadioButton* optAuto; static gcn::UaeRadioButton* optAuto;
static gcn::UaeRadioButton* optNearest; static gcn::UaeRadioButton* optNearest;
static gcn::UaeRadioButton* optLinear; static gcn::UaeRadioButton* optLinear;
#ifdef PANDORA #endif
#ifdef USE_SDL1
static gcn::Window *grpAmigaScreen; static gcn::Window *grpAmigaScreen;
static gcn::Label* lblAmigaWidth;
static gcn::Label* lblAmigaWidthInfo;
static gcn::Slider* sldAmigaWidth;
static gcn::Label* lblAmigaHeight;
static gcn::Label* lblAmigaHeightInfo;
static gcn::Slider* sldAmigaHeight;
static gcn::Label* lblVertPos; static gcn::Label* lblVertPos;
static gcn::Label* lblVertPosInfo; static gcn::Label* lblVertPosInfo;
static gcn::Slider* sldVertPos; static gcn::Slider* sldVertPos;
#endif // PANDORA #endif // USE_SDL1
static gcn::UaeCheckBox* chkLineDbl;
static gcn::UaeCheckBox* chkFrameskip;
#ifdef USE_SDL1
static gcn::Label* lblFSRatio;
static gcn::Label* lblFSRatioInfo;
static gcn::Slider* sldFSRatio;
static gcn::UaeCheckBox* chkAspect;
#endif
class AmigaScreenActionListener : public gcn::ActionListener class AmigaScreenActionListener : public gcn::ActionListener
{ {
public: public:
void action(const gcn::ActionEvent& actionEvent) override void action(const gcn::ActionEvent& actionEvent) override
{ {
if (actionEvent.getSource() == chkFrameskip) #ifdef USE_SDL1
if (actionEvent.getSource() == sldAmigaWidth)
{
if (changed_prefs.gfx_size.width != amigawidth_values[(int)(sldAmigaWidth->getValue())])
{
changed_prefs.gfx_size.width = amigawidth_values[(int)(sldAmigaWidth->getValue())];
RefreshPanelDisplay();
}
}
else if (actionEvent.getSource() == sldAmigaHeight)
{
if (changed_prefs.gfx_size.height != amigaheight_values[(int)(sldAmigaHeight->getValue())])
{
changed_prefs.gfx_size.height = amigaheight_values[(int)(sldAmigaHeight->getValue())];
RefreshPanelDisplay();
}
}
else if (actionEvent.getSource() == sldVertPos)
{
if (changed_prefs.pandora_vertical_offset != (int)(sldVertPos->getValue()) + OFFSET_Y_ADJUST)
{
changed_prefs.pandora_vertical_offset = (int)(sldVertPos->getValue()) + OFFSET_Y_ADJUST;
RefreshPanelDisplay();
}
}
else
#endif
if (actionEvent.getSource() == chkFrameskip)
{ {
changed_prefs.gfx_framerate = chkFrameskip->isSelected() ? 1 : 0; changed_prefs.gfx_framerate = chkFrameskip->isSelected() ? 1 : 0;
} }
#ifdef PANDORA else if (actionEvent.getSource() == chkLineDbl)
else if (actionEvent.getSource() == sldVertPos) {
{ changed_prefs.gfx_vresolution = chkLineDbl->isSelected() ? VRES_DOUBLE : VRES_NONDOUBLE;
if(changed_prefs.pandora_vertical_offset != (int)(sldVertPos->getValue()) + OFFSET_Y_ADJUST) }
{ #ifdef USE_SDL1
changed_prefs.pandora_vertical_offset = (int)(sldVertPos->getValue()) + OFFSET_Y_ADJUST; else if (actionEvent.getSource() == sldFSRatio)
RefreshPanelDisplay(); {
} if (changed_prefs.gfx_fullscreen_ratio != FullscreenRatio[(int)(sldFSRatio->getValue())])
} {
#endif // PANDORA changed_prefs.gfx_fullscreen_ratio = FullscreenRatio[(int)(sldFSRatio->getValue())];
RefreshPanelDisplay();
}
}
else if (actionEvent.getSource() == chkAspect)
changed_prefs.gfx_correct_aspect = chkAspect->isSelected();
#endif
} }
}; };
@ -71,9 +138,35 @@ static ScalingMethodActionListener* scalingMethodActionListener;
void InitPanelDisplay(const struct _ConfigCategory& category) void InitPanelDisplay(const struct _ConfigCategory& category)
{ {
amigaScreenActionListener = new AmigaScreenActionListener(); amigaScreenActionListener = new AmigaScreenActionListener();
int posY = DISTANCE_BORDER; int posY = DISTANCE_BORDER;
#ifdef USE_SDL1
lblAmigaWidth = new gcn::Label("Width:");
lblAmigaWidth->setSize(150, LABEL_HEIGHT);
lblAmigaWidth->setAlignment(gcn::Graphics::RIGHT);
sldAmigaWidth = new gcn::Slider(0, 5);
sldAmigaWidth->setSize(160, SLIDER_HEIGHT);
sldAmigaWidth->setBaseColor(gui_baseCol);
sldAmigaWidth->setMarkerLength(20);
sldAmigaWidth->setStepLength(1);
sldAmigaWidth->setId("sldWidth");
sldAmigaWidth->addActionListener(amigaScreenActionListener);
lblAmigaWidthInfo = new gcn::Label("320");
lblAmigaHeight = new gcn::Label("Height:");
lblAmigaHeight->setSize(150, LABEL_HEIGHT);
lblAmigaHeight->setAlignment(gcn::Graphics::RIGHT);
sldAmigaHeight = new gcn::Slider(0, 5);
sldAmigaHeight->setSize(160, SLIDER_HEIGHT);
sldAmigaHeight->setBaseColor(gui_baseCol);
sldAmigaHeight->setMarkerLength(20);
sldAmigaHeight->setStepLength(1);
sldAmigaHeight->setId("sldHeight");
sldAmigaHeight->addActionListener(amigaScreenActionListener);
lblAmigaHeightInfo = new gcn::Label("200");
#endif
#ifdef USE_SDL2
scalingMethodActionListener = new ScalingMethodActionListener(); scalingMethodActionListener = new ScalingMethodActionListener();
optAuto = new gcn::UaeRadioButton("Auto", "radioscalingmethodgroup"); optAuto = new gcn::UaeRadioButton("Auto", "radioscalingmethodgroup");
@ -97,6 +190,7 @@ void InitPanelDisplay(const struct _ConfigCategory& category)
category.panel->add(grpScalingMethod); category.panel->add(grpScalingMethod);
posY += DISTANCE_BORDER + grpScalingMethod->getHeight() + DISTANCE_NEXT_Y; posY += DISTANCE_BORDER + grpScalingMethod->getHeight() + DISTANCE_NEXT_Y;
#endif
#ifdef PANDORA #ifdef PANDORA
lblVertPos = new gcn::Label("Vert. offset:"); lblVertPos = new gcn::Label("Vert. offset:");
@ -111,24 +205,59 @@ void InitPanelDisplay(const struct _ConfigCategory& category)
sldVertPos->addActionListener(amigaScreenActionListener); sldVertPos->addActionListener(amigaScreenActionListener);
lblVertPosInfo = new gcn::Label("000"); lblVertPosInfo = new gcn::Label("000");
#endif //PANDORA #endif //PANDORA
#ifdef USE_SDL1
lblFSRatio = new gcn::Label("Fullscreen Ratio:");
lblFSRatio->setSize(150, LABEL_HEIGHT);
lblFSRatio->setAlignment(gcn::Graphics::RIGHT);
sldFSRatio = new gcn::Slider(0, 20);
sldFSRatio->setSize(160, SLIDER_HEIGHT);
sldFSRatio->setBaseColor(gui_baseCol);
sldFSRatio->setMarkerLength(20);
sldFSRatio->setStepLength(1);
sldFSRatio->setId("FSRatio");
sldFSRatio->addActionListener(amigaScreenActionListener);
lblFSRatioInfo = new gcn::Label("100%%");
chkAspect = new gcn::UaeCheckBox("4/3 ratio shrink");
chkAspect->setId("4by3Ratio");
chkAspect->addActionListener(amigaScreenActionListener);
#endif
chkLineDbl = new gcn::UaeCheckBox("Line doubling");
chkLineDbl->addActionListener(amigaScreenActionListener);
chkFrameskip = new gcn::UaeCheckBox("Frameskip"); chkFrameskip = new gcn::UaeCheckBox("Frameskip");
chkFrameskip->addActionListener(amigaScreenActionListener); chkFrameskip->addActionListener(amigaScreenActionListener);
#ifdef PANDORA #ifdef USE_SDL1
grpAmigaScreen = new gcn::Window("Amiga Screen"); grpAmigaScreen = new gcn::Window("Amiga Screen");
grpAmigaScreen->setPosition(DISTANCE_BORDER, DISTANCE_BORDER); grpAmigaScreen->setPosition(DISTANCE_BORDER, DISTANCE_BORDER);
int posY = 10;
grpAmigaScreen->add(lblAmigaWidth, 0, posY);
grpAmigaScreen->add(sldAmigaWidth, 160, posY);
grpAmigaScreen->add(lblAmigaWidthInfo, 160 + sldAmigaWidth->getWidth() + 12, posY);
posY += sldAmigaWidth->getHeight() + DISTANCE_NEXT_Y;
grpAmigaScreen->add(lblAmigaHeight, 0, posY);
grpAmigaScreen->add(sldAmigaHeight, 160, posY);
grpAmigaScreen->add(lblAmigaHeightInfo, 160 + sldAmigaHeight->getWidth() + 12, posY);
posY += sldAmigaHeight->getHeight() + DISTANCE_NEXT_Y;
grpAmigaScreen->add(lblVertPos, 0, posY); grpAmigaScreen->add(lblVertPos, 0, posY);
grpAmigaScreen->add(sldVertPos, 160, posY); grpAmigaScreen->add(sldVertPos, 160, posY);
grpAmigaScreen->add(lblVertPosInfo, 160 + sldVertPos->getWidth() + 12, posY); grpAmigaScreen->add(lblVertPosInfo, 160 + sldVertPos->getWidth() + 12, posY);
posY += sldVertPos->getHeight() + DISTANCE_NEXT_Y; posY += sldVertPos->getHeight() + DISTANCE_NEXT_Y;
grpAmigaScreen->add(lblFSRatio, 0, posY);
grpAmigaScreen->add(sldFSRatio, 160, posY);
grpAmigaScreen->add(lblFSRatioInfo, 160 + sldFSRatio->getWidth() + 12, posY);
posY += sldFSRatio->getHeight() + DISTANCE_NEXT_Y;
grpAmigaScreen->setMovable(false); grpAmigaScreen->setMovable(false);
grpAmigaScreen->setSize(460, posY + DISTANCE_BORDER); grpAmigaScreen->setSize(460, posY + DISTANCE_BORDER);
grpAmigaScreen->setBaseColor(gui_baseCol); grpAmigaScreen->setBaseColor(gui_baseCol);
category.panel->add(grpAmigaScreen); category.panel->add(grpAmigaScreen);
#endif //PANDORA posY = DISTANCE_BORDER + grpAmigaScreen->getHeight() + DISTANCE_NEXT_Y;
category.panel->add(chkAspect, DISTANCE_BORDER, posY);
posY += chkAspect->getHeight() + DISTANCE_NEXT_Y;
#endif
category.panel->add(chkLineDbl, DISTANCE_BORDER, posY);
posY += chkLineDbl->getHeight() + DISTANCE_NEXT_Y;
category.panel->add(chkFrameskip, DISTANCE_BORDER, posY); category.panel->add(chkFrameskip, DISTANCE_BORDER, posY);
RefreshPanelDisplay(); RefreshPanelDisplay();
@ -139,30 +268,84 @@ void ExitPanelDisplay()
{ {
delete chkFrameskip; delete chkFrameskip;
delete amigaScreenActionListener; delete amigaScreenActionListener;
#ifdef PANDORA #ifdef USE_SDL1
delete lblAmigaWidth;
delete sldAmigaWidth;
delete lblAmigaWidthInfo;
delete lblAmigaHeight;
delete sldAmigaHeight;
delete lblAmigaHeightInfo;
delete lblVertPos; delete lblVertPos;
delete sldVertPos; delete sldVertPos;
delete lblVertPosInfo; delete lblVertPosInfo;
delete grpAmigaScreen; delete grpAmigaScreen;
#endif //PANDORA delete lblFSRatio;
delete sldFSRatio;
delete lblFSRatioInfo;
delete chkAspect;
#endif
#ifdef USE_SDL2
delete optAuto; delete optAuto;
delete optNearest; delete optNearest;
delete optLinear; delete optLinear;
delete grpScalingMethod; delete grpScalingMethod;
delete scalingMethodActionListener; delete scalingMethodActionListener;
#endif
} }
void RefreshPanelDisplay() void RefreshPanelDisplay()
{ {
chkLineDbl->setSelected(changed_prefs.gfx_vresolution != VRES_NONDOUBLE);
chkFrameskip->setSelected(changed_prefs.gfx_framerate); chkFrameskip->setSelected(changed_prefs.gfx_framerate);
#ifdef USE_SDL1
int i;
char tmp[32];
for (i = 0; i<6; ++i)
{
if (changed_prefs.gfx_size.width == amigawidth_values[i])
{
sldAmigaWidth->setValue(i);
snprintf(tmp, 32, "%d", changed_prefs.gfx_size.width);
lblAmigaWidthInfo->setCaption(tmp);
break;
}
}
for (i = 0; i<6; ++i)
{
if (changed_prefs.gfx_size.height == amigaheight_values[i])
{
sldAmigaHeight->setValue(i);
snprintf(tmp, 32, "%d", changed_prefs.gfx_size.height);
lblAmigaHeightInfo->setCaption(tmp);
break;
}
}
for (i = 0; i<21; ++i)
{
if (changed_prefs.gfx_fullscreen_ratio == FullscreenRatio[i])
{
sldFSRatio->setValue(i);
snprintf(tmp, 32, "%d%%", changed_prefs.gfx_fullscreen_ratio);
lblFSRatioInfo->setCaption(tmp);
break;
}
}
#endif
#ifdef USE_SDL2
if (changed_prefs.scaling_method == -1) if (changed_prefs.scaling_method == -1)
optAuto->setSelected(true); optAuto->setSelected(true);
else if (changed_prefs.scaling_method == 0) else if (changed_prefs.scaling_method == 0)
optNearest->setSelected(true); optNearest->setSelected(true);
else if (changed_prefs.scaling_method == 1) else if (changed_prefs.scaling_method == 1)
optLinear->setSelected(true); optLinear->setSelected(true);
#endif
#ifdef PANDORA #ifdef PANDORA
sldVertPos->setValue(changed_prefs.pandora_vertical_offset - OFFSET_Y_ADJUST); sldVertPos->setValue(changed_prefs.pandora_vertical_offset - OFFSET_Y_ADJUST);
snprintf(tmp, 32, "%d", changed_prefs.pandora_vertical_offset - OFFSET_Y_ADJUST); snprintf(tmp, 32, "%d", changed_prefs.pandora_vertical_offset - OFFSET_Y_ADJUST);
@ -173,16 +356,25 @@ void RefreshPanelDisplay()
bool HelpPanelDisplay(std::vector<std::string> &helptext) bool HelpPanelDisplay(std::vector<std::string> &helptext)
{ {
helptext.clear(); helptext.clear();
#ifdef USE_SDL1
helptext.push_back("Select the required width and height of the Amiga screen. If you select \"NTSC\" in chipset, a value greater than");
helptext.push_back("240 for \"Height\" makes no sense. When the game, demo or workbench uses Hires mode and you selected a");
helptext.push_back("value for \"Width\" lower than 640, you will only see half of the pixels.");
helptext.push_back("");
#elif USE_SDL2
helptext.push_back("Select the scaling method for the Amiga screen. The default option \"Auto\", will try to find the best looking"); helptext.push_back("Select the scaling method for the Amiga screen. The default option \"Auto\", will try to find the best looking");
helptext.push_back("scaling method depending on your monitor's resolution. \"Nearest Neighbor\" will give you a more pixelated"); helptext.push_back("scaling method depending on your monitor's resolution. \"Nearest Neighbor\" will give you a more pixelated");
helptext.push_back("and crisp image, but it may come with some distortion if your resolution is not an exact multiple."); helptext.push_back("and crisp image, but it may come with some distortion if your resolution is not an exact multiple.");
helptext.push_back("\"Linear\" will give you a smoother scaling but some people might find it a bit blurry."); helptext.push_back("\"Linear\" will give you a smoother scaling but some people might find it a bit blurry.");
helptext.push_back(""); helptext.push_back("");
#endif
#ifdef PANDORA #ifdef PANDORA
helptext.push_back("With \"Vert. offset\" you can adjust the position of the first drawn line of the Amiga screen. You can also change"); helptext.push_back("With \"Vert. offset\" you can adjust the position of the first drawn line of the Amiga screen. You can also change");
helptext.push_back("this during emulation with left and right shoulder button and dpad up/down."); helptext.push_back("this during emulation with left and right shoulder button and dpad up/down.");
helptext.push_back(""); helptext.push_back("");
#endif //PANDORA #endif //PANDORA
helptext.push_back("Activate line doubling to remove flicker in interlace modes.");
helptext.push_back("");
helptext.push_back("When you activate \"Frameskip\", only every second frame is drawn. This will improve performance and some"); helptext.push_back("When you activate \"Frameskip\", only every second frame is drawn. This will improve performance and some");
helptext.push_back("more games are playable."); helptext.push_back("more games are playable.");
return true; return true;

View file

@ -1,7 +1,14 @@
#ifdef USE_SDL1
#include <guichan.hpp>
#include <SDL/SDL_ttf.h>
#include <guichan/sdl.hpp>
#include "sdltruetypefont.hpp"
#elif USE_SDL2
#include <guisan.hpp> #include <guisan.hpp>
#include <SDL_ttf.h> #include <SDL_ttf.h>
#include <guisan/sdl.hpp> #include <guisan/sdl.hpp>
#include <guisan/sdl/sdltruetypefont.hpp> #include <guisan/sdl/sdltruetypefont.hpp>
#endif
#include "SelectorEntry.hpp" #include "SelectorEntry.hpp"
#include "UaeRadioButton.hpp" #include "UaeRadioButton.hpp"
#include "UaeDropDown.hpp" #include "UaeDropDown.hpp"
@ -170,7 +177,7 @@ public:
//--------------------------------------- //---------------------------------------
// Show info about current disk-image // Show info about current disk-image
//--------------------------------------- //---------------------------------------
//if (changed_prefs.floppyslots[i].dfxtype != DRV_NONE && strlen(changed_prefs.floppyslots[i].df) > 0); // ToDo: Show info dialog //if (changed_prefs.floppyslots[i].dfxtype != DRV_NONE && strlen(changed_prefs.floppyslots[i].df) > 0)
//ToDo: Show info dialog //ToDo: Show info dialog
} }
else if (actionEvent.getSource() == cmdDFxEject[i]) else if (actionEvent.getSource() == cmdDFxEject[i])
@ -179,7 +186,7 @@ public:
// Eject disk from drive // Eject disk from drive
//--------------------------------------- //---------------------------------------
disk_eject(i); disk_eject(i);
strcpy(changed_prefs.floppyslots[i].df, ""); strncpy(changed_prefs.floppyslots[i].df, "", MAX_DPATH);
AdjustDropDownControls(); AdjustDropDownControls();
} }
else if (actionEvent.getSource() == cmdDFxSelect[i]) else if (actionEvent.getSource() == cmdDFxSelect[i])
@ -190,14 +197,14 @@ public:
char tmp[MAX_DPATH]; char tmp[MAX_DPATH];
if (strlen(changed_prefs.floppyslots[i].df) > 0) if (strlen(changed_prefs.floppyslots[i].df) > 0)
strcpy(tmp, changed_prefs.floppyslots[i].df); strncpy(tmp, changed_prefs.floppyslots[i].df, MAX_PATH);
else else
strcpy(tmp, currentDir); strncpy(tmp, currentDir, MAX_PATH);
if (SelectFile("Select disk image file", tmp, diskfile_filter)) if (SelectFile("Select disk image file", tmp, diskfile_filter))
{ {
if (strncmp(changed_prefs.floppyslots[i].df, tmp, sizeof changed_prefs.floppyslots[i].df)) if(strncmp(changed_prefs.floppyslots[i].df, tmp, MAX_PATH))
{ {
strcpy(changed_prefs.floppyslots[i].df, tmp); strncpy(changed_prefs.floppyslots[i].df, tmp, sizeof(changed_prefs.floppyslots[i].df));
disk_insert(i, tmp); disk_insert(i, tmp);
AddFileToDiskList(tmp, 1); AddFileToDiskList(tmp, 1);
extractPath(tmp, currentDir); extractPath(tmp, currentDir);
@ -308,7 +315,7 @@ public:
extractFileName(changed_prefs.floppyslots[0].df, diskname); extractFileName(changed_prefs.floppyslots[0].df, diskname);
removeFileExtension(diskname); removeFileExtension(diskname);
fetch_configurationpath(filename, sizeof filename); fetch_configurationpath(filename, MAX_DPATH);
strncat(filename, diskname, MAX_DPATH - 1); strncat(filename, diskname, MAX_DPATH - 1);
strncat(filename, ".uae", MAX_DPATH) - 1; strncat(filename, ".uae", MAX_DPATH) - 1;
@ -476,11 +483,11 @@ void InitPanelFloppy(const struct _ConfigCategory& category)
//category.panel->add(cmdDFxInfo[i], posX, posY); //TODO disabled? //category.panel->add(cmdDFxInfo[i], posX, posY); //TODO disabled?
posX += cmdDFxInfo[i]->getWidth() + DISTANCE_NEXT_X; posX += cmdDFxInfo[i]->getWidth() + DISTANCE_NEXT_X;
category.panel->add(cmdDFxEject[i], posX, posY); category.panel->add(cmdDFxEject[i], posX, posY);
posX = DISTANCE_BORDER + textFieldWidth + DISTANCE_NEXT_X; posX += cmdDFxEject[i]->getWidth() + DISTANCE_NEXT_X;
posY += cboDFxType[i]->getHeight() + 8; category.panel->add(cmdDFxSelect[i], posX, posY);
posY += chkDFx[i]->getHeight() + 8;
category.panel->add(cboDFxFile[i], DISTANCE_BORDER, posY); category.panel->add(cboDFxFile[i], DISTANCE_BORDER, posY);
category.panel->add(cmdDFxSelect[i], posX, posY);
if (i == 0) if (i == 0)
{ {
posY += cboDFxFile[i]->getHeight() + 8; posY += cboDFxFile[i]->getHeight() + 8;

View file

@ -1,7 +1,14 @@
#ifdef USE_SDL1
#include <guichan.hpp>
#include <SDL/SDL_ttf.h>
#include <guichan/sdl.hpp>
#include "sdltruetypefont.hpp"
#elif USE_SDL2
#include <guisan.hpp> #include <guisan.hpp>
#include <SDL_ttf.h> #include <SDL_ttf.h>
#include <guisan/sdl.hpp> #include <guisan/sdl.hpp>
#include <guisan/sdl/sdltruetypefont.hpp> #include <guisan/sdl/sdltruetypefont.hpp>
#endif
#include "SelectorEntry.hpp" #include "SelectorEntry.hpp"
#include "UaeRadioButton.hpp" #include "UaeRadioButton.hpp"
#include "UaeDropDown.hpp" #include "UaeDropDown.hpp"
@ -215,6 +222,7 @@ public:
changed_prefs.cdslots[0].type = SCSI_UNIT_IMAGE; changed_prefs.cdslots[0].type = SCSI_UNIT_IMAGE;
} }
RefreshPanelHD(); RefreshPanelHD();
RefreshPanelQuickstart();
} }
}; };
@ -231,7 +239,7 @@ public:
//--------------------------------------- //---------------------------------------
// Eject CD from drive // Eject CD from drive
//--------------------------------------- //---------------------------------------
strcpy(changed_prefs.cdslots[0].name, ""); strncpy(changed_prefs.cdslots[0].name, "", MAX_DPATH);
AdjustDropDownControls(); AdjustDropDownControls();
} }
else if (actionEvent.getSource() == cmdCDSelect) else if (actionEvent.getSource() == cmdCDSelect)
@ -239,15 +247,15 @@ public:
char tmp[MAX_DPATH]; char tmp[MAX_DPATH];
if (strlen(changed_prefs.cdslots[0].name) > 0) if (strlen(changed_prefs.cdslots[0].name) > 0)
strcpy(tmp, changed_prefs.cdslots[0].name); strncpy(tmp, changed_prefs.cdslots[0].name, MAX_DPATH);
else else
strcpy(tmp, currentDir); strcpy(tmp, currentDir);
if (SelectFile("Select CD image file", tmp, cdfile_filter)) if (SelectFile("Select CD image file", tmp, cdfile_filter))
{ {
if (strncmp(changed_prefs.cdslots[0].name, tmp, sizeof changed_prefs.cdslots[0].name)) if(strncmp(changed_prefs.cdslots[0].name, tmp, MAX_DPATH))
{ {
strcpy(changed_prefs.cdslots[0].name, tmp); strncpy(changed_prefs.cdslots[0].name, tmp, sizeof(changed_prefs.cdslots[0].name));
changed_prefs.cdslots[0].inuse = true; changed_prefs.cdslots[0].inuse = true;
changed_prefs.cdslots[0].type = SCSI_UNIT_IMAGE; changed_prefs.cdslots[0].type = SCSI_UNIT_IMAGE;
AddFileToCDList(tmp, 1); AddFileToCDList(tmp, 1);
@ -312,7 +320,7 @@ public:
{ {
if (cdfileList.getElementAt(idx).compare(changed_prefs.cdslots[0].name)) if (cdfileList.getElementAt(idx).compare(changed_prefs.cdslots[0].name))
{ {
strcpy(changed_prefs.cdslots[0].name, cdfileList.getElementAt(idx).c_str()); strncpy(changed_prefs.cdslots[0].name, cdfileList.getElementAt(idx).c_str(), sizeof(changed_prefs.cdslots[0].name));
changed_prefs.cdslots[0].inuse = true; changed_prefs.cdslots[0].inuse = true;
changed_prefs.cdslots[0].type = SCSI_UNIT_IMAGE; changed_prefs.cdslots[0].type = SCSI_UNIT_IMAGE;
lstMRUCDList.erase(lstMRUCDList.begin() + idx); lstMRUCDList.erase(lstMRUCDList.begin() + idx);
@ -352,7 +360,11 @@ void InitPanelHD(const struct _ConfigCategory& category)
listEntry[row] = new gcn::Container(); listEntry[row] = new gcn::Container();
listEntry[row]->setSize(category.panel->getWidth() - 2 * DISTANCE_BORDER, TEXTFIELD_HEIGHT + 4); listEntry[row]->setSize(category.panel->getWidth() - 2 * DISTANCE_BORDER, TEXTFIELD_HEIGHT + 4);
listEntry[row]->setBaseColor(gui_baseCol); listEntry[row]->setBaseColor(gui_baseCol);
#ifdef USE_SDL1
listEntry[row]->setFrameSize(0);
#elif USE_SDL2
listEntry[row]->setBorderSize(0); listEntry[row]->setBorderSize(0);
#endif
listCmdProps[row] = new gcn::Button("..."); listCmdProps[row] = new gcn::Button("...");
listCmdProps[row]->setBaseColor(gui_baseCol); listCmdProps[row]->setBaseColor(gui_baseCol);
@ -437,6 +449,7 @@ void InitPanelHD(const struct _ConfigCategory& category)
sldCDVol->setId("CDVol"); sldCDVol->setId("CDVol");
sldCDVol->addActionListener(genericActionListener); sldCDVol->addActionListener(genericActionListener);
lblCDVolInfo = new gcn::Label("80 %"); lblCDVolInfo = new gcn::Label("80 %");
lblCDVolInfo->setSize(100, LABEL_HEIGHT);
int posX = DISTANCE_BORDER + 2 + SMALL_BUTTON_WIDTH + 34; int posX = DISTANCE_BORDER + 2 + SMALL_BUTTON_WIDTH + 34;
for (col = 0; col < COL_COUNT; ++col) for (col = 0; col < COL_COUNT; ++col)

View file

@ -1,7 +1,14 @@
#ifdef USE_SDL1
#include <guichan.hpp>
#include <SDL/SDL_ttf.h>
#include <guichan/sdl.hpp>
#include "sdltruetypefont.hpp"
#elif USE_SDL2
#include <guisan.hpp> #include <guisan.hpp>
#include <SDL_ttf.h> #include <SDL_ttf.h>
#include <guisan/sdl.hpp> #include <guisan/sdl.hpp>
#include <guisan/sdl/sdltruetypefont.hpp> #include <guisan/sdl/sdltruetypefont.hpp>
#endif
#include "SelectorEntry.hpp" #include "SelectorEntry.hpp"
#include "UaeRadioButton.hpp" #include "UaeRadioButton.hpp"
#include "UaeDropDown.hpp" #include "UaeDropDown.hpp"
@ -195,6 +202,9 @@ static int amigaKey[] =
AK_F2, AK_F3, AK_F4, AK_F5, AK_F6, AK_F7, AK_F8, AK_F9, /* 101 - 108 */ AK_F2, AK_F3, AK_F4, AK_F5, AK_F6, AK_F7, AK_F8, AK_F9, /* 101 - 108 */
AK_F10, 0 AK_F10, 0
}; /* 109 - 110 */ }; /* 109 - 110 */
#ifdef USE_SDL1
extern int customControlMap[SDLK_LAST];
#endif
static int GetAmigaKeyIndex(int key) static int GetAmigaKeyIndex(int key)
{ {
@ -629,6 +639,7 @@ void InitPanelInput(const struct _ConfigCategory& category)
lblAutofire->setSize(100, LABEL_HEIGHT); lblAutofire->setSize(100, LABEL_HEIGHT);
lblAutofire->setAlignment(gcn::Graphics::RIGHT); lblAutofire->setAlignment(gcn::Graphics::RIGHT);
cboAutofire = new gcn::UaeDropDown(&autofireList); cboAutofire = new gcn::UaeDropDown(&autofireList);
cboAutofire->setSize(80, DROPDOWN_HEIGHT);
cboAutofire->setBaseColor(gui_baseCol); cboAutofire->setBaseColor(gui_baseCol);
cboAutofire->setBackgroundColor(colTextboxBackground); cboAutofire->setBackgroundColor(colTextboxBackground);
cboAutofire->setId("cboAutofire"); cboAutofire->setId("cboAutofire");

View file

@ -1,7 +1,14 @@
#ifdef USE_SDL1
#include <guichan.hpp>
#include <SDL/SDL_ttf.h>
#include <guichan/sdl.hpp>
#include "sdltruetypefont.hpp"
#elif USE_SDL2
#include <guisan.hpp> #include <guisan.hpp>
#include <SDL_ttf.h> #include <SDL_ttf.h>
#include <guisan/sdl.hpp> #include <guisan/sdl.hpp>
#include <guisan/sdl/sdltruetypefont.hpp> #include <guisan/sdl/sdltruetypefont.hpp>
#endif
#include "SelectorEntry.hpp" #include "SelectorEntry.hpp"
#include "UaeRadioButton.hpp" #include "UaeRadioButton.hpp"
#include "UaeDropDown.hpp" #include "UaeDropDown.hpp"
@ -70,8 +77,8 @@ public:
} }
}; };
const char* listValues[] = {"none", "POWER", "DF0", "DF1", "DF2", "DF3", "DF*", "HD", "CD"}; static const char* listValues[] = {"none", "POWER", "DF0", "DF1", "DF2", "DF3", "DF*", "HD", "CD"};
StringListModel KBDLedList(listValues, 9); static StringListModel KBDLedList(listValues, 9);
class MiscActionListener : public gcn::ActionListener class MiscActionListener : public gcn::ActionListener
{ {
@ -81,12 +88,24 @@ public:
if (actionEvent.getSource() == chkStatusLine) if (actionEvent.getSource() == chkStatusLine)
changed_prefs.leds_on_screen = chkStatusLine->isSelected(); changed_prefs.leds_on_screen = chkStatusLine->isSelected();
#ifdef PANDORA #ifdef PANDORA
else if (actionEvent.getSource() == chkHideIdleLed) else if (actionEvent.getSource() == chkHideIdleLed)
changed_prefs.pandora_hide_idle_led = chkHideIdleLed->isSelected(); changed_prefs.pandora_hide_idle_led = chkHideIdleLed->isSelected();
#endif #endif
else if (actionEvent.getSource() == chkShowGUI) else if (actionEvent.getSource() == chkShowGUI)
changed_prefs.start_gui = chkShowGUI->isSelected(); changed_prefs.start_gui = chkShowGUI->isSelected();
else if (actionEvent.getSource() == chkRetroArchQuit)
changed_prefs.amiberry_use_retroarch_quit = chkRetroArchQuit->isSelected();
else if (actionEvent.getSource() == chkRetroArchMenu)
changed_prefs.amiberry_use_retroarch_menu = chkRetroArchMenu->isSelected();
else if (actionEvent.getSource() == chkRetroArchReset)
changed_prefs.amiberry_use_retroarch_reset = chkRetroArchReset->isSelected();
// else if (actionEvent.getSource() == chkRetroArchSavestate)
// changed_prefs.amiberry_use_retroarch_savestatebuttons = chkRetroArchSavestate->isSelected();
else if (actionEvent.getSource() == chkBSDSocket) else if (actionEvent.getSource() == chkBSDSocket)
changed_prefs.socket_emu = chkBSDSocket->isSelected(); changed_prefs.socket_emu = chkBSDSocket->isSelected();
@ -116,16 +135,16 @@ public:
} }
} }
#ifdef PANDORA #ifdef PANDORA
else if (actionEvent.getSource() == sldPandoraSpeed) else if (actionEvent.getSource() == sldPandoraSpeed)
{ {
int newspeed = (int) sldPandoraSpeed->getValue(); int newspeed = (int)sldPandoraSpeed->getValue();
newspeed = newspeed - (newspeed % 20); newspeed = newspeed - (newspeed % 20);
if(changed_prefs.pandora_cpu_speed != newspeed) if (changed_prefs.pandora_cpu_speed != newspeed)
{ {
changed_prefs.pandora_cpu_speed = newspeed; changed_prefs.pandora_cpu_speed = newspeed;
RefreshPanelMisc(); RefreshPanelMisc();
} }
} }
#endif #endif
else if (actionEvent.getSource() == cboKBDLed_num) else if (actionEvent.getSource() == cboKBDLed_num)
@ -155,6 +174,24 @@ void InitPanelMisc(const struct _ConfigCategory& category)
chkShowGUI->setId("ShowGUI"); chkShowGUI->setId("ShowGUI");
chkShowGUI->addActionListener(miscActionListener); chkShowGUI->addActionListener(miscActionListener);
chkRetroArchQuit = new gcn::UaeCheckBox("Use RetroArch Quit Button");
chkRetroArchQuit->setId("RetroArchQuit");
chkRetroArchQuit->addActionListener(miscActionListener);
chkRetroArchMenu = new gcn::UaeCheckBox("Use RetroArch Menu Button");
chkRetroArchMenu->setId("RetroArchMenu");
chkRetroArchMenu->addActionListener(miscActionListener);
chkRetroArchReset = new gcn::UaeCheckBox("Use RetroArch Reset Button");
chkRetroArchReset->setId("RetroArchReset");
chkRetroArchReset->addActionListener(miscActionListener);
//chkRetroArchSavestate = new gcn::UaeCheckBox("Use RetroArch State Controls");
//chkRetroArchSavestate->setId("RetroArchState");
//chkRetroArchSavestate->addActionListener(miscActionListener);
#ifdef PANDORA #ifdef PANDORA
lblPandoraSpeed = new gcn::Label("Pandora Speed:"); lblPandoraSpeed = new gcn::Label("Pandora Speed:");
lblPandoraSpeed->setSize(110, LABEL_HEIGHT); lblPandoraSpeed->setSize(110, LABEL_HEIGHT);
@ -227,14 +264,28 @@ void InitPanelMisc(const struct _ConfigCategory& category)
posY += chkHideIdleLed->getHeight() + DISTANCE_NEXT_Y; posY += chkHideIdleLed->getHeight() + DISTANCE_NEXT_Y;
category.panel->add(chkShowGUI, DISTANCE_BORDER, posY); category.panel->add(chkShowGUI, DISTANCE_BORDER, posY);
posY += chkShowGUI->getHeight() + DISTANCE_NEXT_Y; posY += chkShowGUI->getHeight() + DISTANCE_NEXT_Y;
posY = DISTANCE_BORDER;
int posX = 300;
category.panel->add(chkRetroArchQuit, posX + DISTANCE_BORDER, posY);
posY += chkRetroArchQuit->getHeight() + DISTANCE_NEXT_Y;
category.panel->add(chkRetroArchMenu, posX + DISTANCE_BORDER, posY);
posY += chkRetroArchMenu->getHeight() + DISTANCE_NEXT_Y;
category.panel->add(chkRetroArchReset, posX + DISTANCE_BORDER, posY);
posY += chkRetroArchReset->getHeight() + DISTANCE_NEXT_Y;
//category.panel->add(chkRetroArchSavestate, posX + DISTANCE_BORDER, posY);
#ifdef PANDORA #ifdef PANDORA
category.panel->add(lblPandoraSpeed, DISTANCE_BORDER, posY); category.panel->add(lblPandoraSpeed, DISTANCE_BORDER, posY);
category.panel->add(sldPandoraSpeed, DISTANCE_BORDER + lblPandoraSpeed->getWidth() + 8, posY); category.panel->add(sldPandoraSpeed, DISTANCE_BORDER + lblPandoraSpeed->getWidth() + 8, posY);
category.panel->add(lblPandoraSpeedInfo, sldPandoraSpeed->getX() + sldPandoraSpeed->getWidth() + 12, posY); category.panel->add(lblPandoraSpeedInfo, sldPandoraSpeed->getX() + sldPandoraSpeed->getWidth() + 12, posY);
posY += sldPandoraSpeed->getHeight() + DISTANCE_NEXT_Y; posY += sldPandoraSpeed->getHeight() + DISTANCE_NEXT_Y;
#endif #endif
category.panel->add(chkBSDSocket, DISTANCE_BORDER, posY); category.panel->add(chkBSDSocket, DISTANCE_BORDER, posY);
posY += chkBSDSocket->getHeight() + DISTANCE_NEXT_Y * 2; posY += chkBSDSocket->getHeight() + DISTANCE_NEXT_Y * 2;
category.panel->add(chkMasterWP, DISTANCE_BORDER, posY);
posY += chkMasterWP->getHeight() + DISTANCE_NEXT_Y;
category.panel->add(lblNumLock, DISTANCE_BORDER, posY); category.panel->add(lblNumLock, DISTANCE_BORDER, posY);
category.panel->add(cboKBDLed_num, DISTANCE_BORDER + lblNumLock->getWidth() + 8, posY); category.panel->add(cboKBDLed_num, DISTANCE_BORDER + lblNumLock->getWidth() + 8, posY);
@ -260,10 +311,15 @@ void ExitPanelMisc()
delete chkStatusLine; delete chkStatusLine;
delete chkHideIdleLed; delete chkHideIdleLed;
delete chkShowGUI; delete chkShowGUI;
delete chkRetroArchQuit;
delete chkRetroArchMenu;
delete chkRetroArchReset;
//delete chkRetroArchSaveState;
#ifdef PANDORA #ifdef PANDORA
delete lblPandoraSpeed; delete lblPandoraSpeed;
delete sldPandoraSpeed; delete sldPandoraSpeed;
delete lblPandoraSpeedInfo; delete lblPandoraSpeedInfo;
#endif #endif
delete chkBSDSocket; delete chkBSDSocket;
delete chkMasterWP; delete chkMasterWP;
@ -286,13 +342,18 @@ void RefreshPanelMisc()
{ {
chkStatusLine->setSelected(changed_prefs.leds_on_screen); chkStatusLine->setSelected(changed_prefs.leds_on_screen);
#ifdef PANDORA #ifdef PANDORA
chkHideIdleLed->setSelected(changed_prefs.pandora_hide_idle_led); chkHideIdleLed->setSelected(changed_prefs.pandora_hide_idle_led);
#endif #endif
chkShowGUI->setSelected(changed_prefs.start_gui); chkShowGUI->setSelected(changed_prefs.start_gui);
chkRetroArchQuit->setSelected(changed_prefs.amiberry_use_retroarch_quit);
chkRetroArchMenu->setSelected(changed_prefs.amiberry_use_retroarch_menu);
chkRetroArchReset->setSelected(changed_prefs.amiberry_use_retroarch_reset);
//chkRetroArchSavestate->setSelected(changed_prefs.amiberry_use_retroarch_statebuttons);
#ifdef PANDORA #ifdef PANDORA
sldPandoraSpeed->setValue(changed_prefs.pandora_cpu_speed); sldPandoraSpeed->setValue(changed_prefs.pandora_cpu_speed);
snprintf(tmp, 20, "%d MHz", changed_prefs.pandora_cpu_speed); snprintf(tmp, 20, "%d MHz", changed_prefs.pandora_cpu_speed);
lblPandoraSpeedInfo->setCaption(tmp); lblPandoraSpeedInfo->setCaption(tmp);
#endif #endif
chkBSDSocket->setSelected(changed_prefs.socket_emu); chkBSDSocket->setSelected(changed_prefs.socket_emu);
chkMasterWP->setSelected(changed_prefs.floppy_read_only); chkMasterWP->setSelected(changed_prefs.floppy_read_only);
@ -307,19 +368,19 @@ void RefreshPanelMisc()
bool HelpPanelMisc(std::vector<std::string> &helptext) bool HelpPanelMisc(std::vector<std::string> &helptext)
{ {
helptext.clear(); helptext.clear();
helptext.push_back("\"Status Line\" shows/hides the status line indicator. The first value in the status line"); helptext.push_back("\"Status Line\" shows/hides the status line indicator. During emulation, you can show/hide this by pressing left");
helptext.push_back("shows the idle time of the CPU in %, the second value is the current frame rate."); helptext.push_back("shoulder and 'd'. The first value in the status line shows the idle time of the Pandora CPU in %, the second value");
helptext.push_back("When you have a HDD in your Amiga emulation, the HD indicator shows read (blue) and"); helptext.push_back("is the current frame rate. When you have a HDD in your Amiga emulation, the HD indicator shows read (blue) and");
helptext.push_back("write (red) access to the HDD. The next values are showing the track number for each disk"); helptext.push_back("write (red) access to the HDD. The next values are showing the track number for each disk drive and indicates");
helptext.push_back("drive and indicates disk access."); helptext.push_back("disk access.");
helptext.push_back(""); helptext.push_back("");
helptext.push_back("When you deactivate the option \"Show GUI on startup\" and use this configuration by specifying it with the"); helptext.push_back("When you deactivate the option \"Show GUI on startup\" and use this configuration by specifying it with the");
helptext.push_back("command line parameter \"-config=<file>\", the emulation starts directly without showing the GUI."); helptext.push_back("command line parameter \"-config=<file>\", the emulation starts directly without showing the GUI.");
helptext.push_back(""); helptext.push_back("");
#ifdef PANDORA #ifdef PANDORA
helptext.push_back("Set the speed for the Pandora CPU to overclock it for games which need more power. Be careful with this"); helptext.push_back("Set the speed for the Pandora CPU to overclock it for games which need more power. Be careful with this");
helptext.push_back("parameter."); helptext.push_back("parameter.");
helptext.push_back(""); helptext.push_back("");
#endif #endif
helptext.push_back("\"bsdsocket.library\" enables network functions (i.e. for web browsers in OS3.9)."); helptext.push_back("\"bsdsocket.library\" enables network functions (i.e. for web browsers in OS3.9).");
helptext.push_back(""); helptext.push_back("");

View file

@ -1,7 +1,14 @@
#ifdef USE_SDL1
#include <guichan.hpp>
#include <SDL/SDL_ttf.h>
#include <guichan/sdl.hpp>
#include "sdltruetypefont.hpp"
#elif USE_SDL2
#include <guisan.hpp> #include <guisan.hpp>
#include <SDL_ttf.h> #include <SDL_ttf.h>
#include <guisan/sdl.hpp> #include <guisan/sdl.hpp>
#include <guisan/sdl/sdltruetypefont.hpp> #include <guisan/sdl/sdltruetypefont.hpp>
#endif
#include "SelectorEntry.hpp" #include "SelectorEntry.hpp"
#include "sysconfig.h" #include "sysconfig.h"
@ -39,7 +46,7 @@ public:
if (actionEvent.getSource() == cmdSystemROMs) if (actionEvent.getSource() == cmdSystemROMs)
{ {
fetch_rompath(tmp, sizeof tmp); fetch_rompath(tmp, MAX_PATH);
if (SelectFolder("Folder for System ROMs", tmp)) if (SelectFolder("Folder for System ROMs", tmp))
{ {
set_rompath(tmp); set_rompath(tmp);
@ -50,7 +57,7 @@ public:
} }
else if (actionEvent.getSource() == cmdConfigPath) else if (actionEvent.getSource() == cmdConfigPath)
{ {
fetch_configurationpath(tmp, sizeof tmp); fetch_configurationpath(tmp, MAX_PATH);
if (SelectFolder("Folder for configuration files", tmp)) if (SelectFolder("Folder for configuration files", tmp))
{ {
set_configurationpath(tmp); set_configurationpath(tmp);
@ -219,10 +226,10 @@ void RefreshPanelPaths()
{ {
char tmp[MAX_PATH]; char tmp[MAX_PATH];
fetch_rompath(tmp, sizeof tmp); fetch_rompath(tmp, MAX_PATH);
txtSystemROMs->setText(tmp); txtSystemROMs->setText(tmp);
fetch_configurationpath(tmp, sizeof tmp); fetch_configurationpath(tmp, MAX_PATH);
txtConfigPath->setText(tmp); txtConfigPath->setText(tmp);
fetch_controllerspath(tmp, MAX_PATH); fetch_controllerspath(tmp, MAX_PATH);
@ -235,8 +242,8 @@ void RefreshPanelPaths()
bool HelpPanelPaths(std::vector<std::string> &helptext) bool HelpPanelPaths(std::vector<std::string> &helptext)
{ {
helptext.clear(); helptext.clear();
helptext.push_back("Specify the location of your kickstart roms and the folder where the configurations and controller files should be stored."); helptext.push_back("Specify the location of your kickstart roms and the folders where the configurations and controller files should be stored.");
helptext.push_back("Use the \"...\" button to open a dialog to choose the folder."); helptext.push_back("With the button \"...\" you can open a dialog to choose the folder.");
helptext.push_back(""); helptext.push_back("");
helptext.push_back("After changing the location of the kickstart roms, click on \"Rescan\" to refresh the list of the available"); helptext.push_back("After changing the location of the kickstart roms, click on \"Rescan\" to refresh the list of the available");
helptext.push_back("ROMs."); helptext.push_back("ROMs.");

View file

@ -1,7 +1,14 @@
#ifdef USE_SDL1
#include <guichan.hpp>
#include <SDL_ttf.h>
#include <guichan/sdl.hpp>
#include "sdltruetypefont.hpp"
#elif USE_SDL2
#include <guisan.hpp> #include <guisan.hpp>
#include <SDL_ttf.h> #include <SDL_ttf.h>
#include <guisan/sdl.hpp> #include <guisan/sdl.hpp>
#include <guisan/sdl/sdltruetypefont.hpp> #include <guisan/sdl/sdltruetypefont.hpp>
#endif
#include "SelectorEntry.hpp" #include "SelectorEntry.hpp"
#include "UaeRadioButton.hpp" #include "UaeRadioButton.hpp"
#include "UaeDropDown.hpp" #include "UaeDropDown.hpp"

View file

@ -1,7 +1,14 @@
#ifdef USE_SDL1
#include <guichan.hpp>
#include <SDL/SDL_ttf.h>
#include <guichan/sdl.hpp>
#include "sdltruetypefont.hpp"
#elif USE_SDL2
#include <guisan.hpp> #include <guisan.hpp>
#include <SDL_ttf.h> #include <SDL_ttf.h>
#include <guisan/sdl.hpp> #include <guisan/sdl.hpp>
#include <guisan/sdl/sdltruetypefont.hpp> #include <guisan/sdl/sdltruetypefont.hpp>
#endif
#include "SelectorEntry.hpp" #include "SelectorEntry.hpp"
#include "UaeRadioButton.hpp" #include "UaeRadioButton.hpp"
#include "UaeDropDown.hpp" #include "UaeDropDown.hpp"
@ -111,77 +118,86 @@ static MemorySliderActionListener* memorySliderActionListener;
void InitPanelRAM(const struct _ConfigCategory& category) void InitPanelRAM(const struct _ConfigCategory& category)
{ {
memorySliderActionListener = new MemorySliderActionListener(); memorySliderActionListener = new MemorySliderActionListener();
int sldWidth;
int markerLength;
#ifdef ANDROID
sldWidth = 150;
markerLength = 30;
#else
sldWidth = 110;
markerLength = 20;
#endif
lblChipmem = new gcn::Label("Chip:"); lblChipmem = new gcn::Label("Chip:");
sldChipmem = new gcn::Slider(0, 4); sldChipmem = new gcn::Slider(0, 4);
sldChipmem->setSize(110, SLIDER_HEIGHT); sldChipmem->setSize(sldWidth, SLIDER_HEIGHT);
sldChipmem->setBaseColor(gui_baseCol); sldChipmem->setBaseColor(gui_baseCol);
sldChipmem->setMarkerLength(20); sldChipmem->setMarkerLength(markerLength);
sldChipmem->setStepLength(1); sldChipmem->setStepLength(1);
sldChipmem->setId("Chipmem"); sldChipmem->setId("Chipmem");
sldChipmem->addActionListener(memorySliderActionListener); sldChipmem->addActionListener(memorySliderActionListener);
lblChipsize = new gcn::Label("None "); lblChipsize = new gcn::Label("None ");
lblSlowmem = new gcn::Label("Slow:"); lblSlowmem = new gcn::Label("Slow:");
sldSlowmem = new gcn::Slider(0, 4); sldSlowmem = new gcn::Slider(0, 4);
sldSlowmem->setSize(110, SLIDER_HEIGHT); sldSlowmem->setSize(sldWidth, SLIDER_HEIGHT);
sldSlowmem->setBaseColor(gui_baseCol); sldSlowmem->setBaseColor(gui_baseCol);
sldSlowmem->setMarkerLength(20); sldSlowmem->setMarkerLength(markerLength);
sldSlowmem->setStepLength(1); sldSlowmem->setStepLength(1);
sldSlowmem->setId("Slowmem"); sldSlowmem->setId("Slowmem");
sldSlowmem->addActionListener(memorySliderActionListener); sldSlowmem->addActionListener(memorySliderActionListener);
lblSlowsize = new gcn::Label("None "); lblSlowsize = new gcn::Label("None ");
lblFastmem = new gcn::Label("Z2 Fast:"); lblFastmem = new gcn::Label("Z2 Fast:");
sldFastmem = new gcn::Slider(0, 4); sldFastmem = new gcn::Slider(0, 4);
sldFastmem->setSize(110, SLIDER_HEIGHT); sldFastmem->setSize(sldWidth, SLIDER_HEIGHT);
sldFastmem->setBaseColor(gui_baseCol); sldFastmem->setBaseColor(gui_baseCol);
sldFastmem->setMarkerLength(20); sldFastmem->setMarkerLength(markerLength);
sldFastmem->setStepLength(1); sldFastmem->setStepLength(1);
sldFastmem->setId("Fastmem"); sldFastmem->setId("Fastmem");
sldFastmem->addActionListener(memorySliderActionListener); sldFastmem->addActionListener(memorySliderActionListener);
lblFastsize = new gcn::Label("None "); lblFastsize = new gcn::Label("None ");
lblZ3mem = new gcn::Label("Z3 fast:"); lblZ3mem = new gcn::Label("Z3 fast:");
sldZ3mem = new gcn::Slider(0, 8); sldZ3mem = new gcn::Slider(0, 8);
sldZ3mem->setSize(110, SLIDER_HEIGHT); sldZ3mem->setSize(sldWidth, SLIDER_HEIGHT);
sldZ3mem->setBaseColor(gui_baseCol); sldZ3mem->setBaseColor(gui_baseCol);
sldZ3mem->setMarkerLength(20); sldZ3mem->setMarkerLength(markerLength);
sldZ3mem->setStepLength(1); sldZ3mem->setStepLength(1);
sldZ3mem->setId("Z3mem"); sldZ3mem->setId("Z3mem");
sldZ3mem->addActionListener(memorySliderActionListener); sldZ3mem->addActionListener(memorySliderActionListener);
lblZ3size = new gcn::Label("None "); lblZ3size = new gcn::Label("None ");
lblGfxmem = new gcn::Label("RTG board:"); lblGfxmem = new gcn::Label("RTG board:");
sldGfxmem = new gcn::Slider(0, 5); sldGfxmem = new gcn::Slider(0, 5);
sldGfxmem->setSize(110, SLIDER_HEIGHT); sldGfxmem->setSize(sldWidth, SLIDER_HEIGHT);
sldGfxmem->setBaseColor(gui_baseCol); sldGfxmem->setBaseColor(gui_baseCol);
sldGfxmem->setMarkerLength(20); sldGfxmem->setMarkerLength(markerLength);
sldGfxmem->setStepLength(1); sldGfxmem->setStepLength(1);
sldGfxmem->setId("Gfxmem"); sldGfxmem->setId("Gfxmem");
sldGfxmem->addActionListener(memorySliderActionListener); sldGfxmem->addActionListener(memorySliderActionListener);
lblGfxsize = new gcn::Label("None "); lblGfxsize = new gcn::Label("None ");
lblA3000Lowmem = new gcn::Label("A4000 Motherb. slot:"); lblA3000Lowmem = new gcn::Label("A4000 Motherb. slot:");
sldA3000Lowmem = new gcn::Slider(0, 2); sldA3000Lowmem = new gcn::Slider(0, 2);
sldA3000Lowmem->setSize(110, SLIDER_HEIGHT); sldA3000Lowmem->setSize(sldWidth, SLIDER_HEIGHT);
sldA3000Lowmem->setBaseColor(gui_baseCol); sldA3000Lowmem->setBaseColor(gui_baseCol);
sldA3000Lowmem->setMarkerLength(20); sldA3000Lowmem->setMarkerLength(markerLength);
sldA3000Lowmem->setStepLength(1); sldA3000Lowmem->setStepLength(1);
sldA3000Lowmem->setId("A3000Low"); sldA3000Lowmem->setId("A3000Low");
sldA3000Lowmem->addActionListener(memorySliderActionListener); sldA3000Lowmem->addActionListener(memorySliderActionListener);
lblA3000Lowsize = new gcn::Label("None "); lblA3000Lowsize = new gcn::Label("None ");
lblA3000Highmem = new gcn::Label("A4000 Proc. board:"); lblA3000Highmem = new gcn::Label("A4000 Proc. board:");
sldA3000Highmem = new gcn::Slider(0, 3); sldA3000Highmem = new gcn::Slider(0, 3);
sldA3000Highmem->setSize(110, SLIDER_HEIGHT); sldA3000Highmem->setSize(sldWidth, SLIDER_HEIGHT);
sldA3000Highmem->setBaseColor(gui_baseCol); sldA3000Highmem->setBaseColor(gui_baseCol);
sldA3000Highmem->setMarkerLength(20); sldA3000Highmem->setMarkerLength(markerLength);
sldA3000Highmem->setStepLength(1); sldA3000Highmem->setStepLength(1);
sldA3000Highmem->setId("A3000High"); sldA3000Highmem->setId("A3000High");
sldA3000Highmem->addActionListener(memorySliderActionListener); sldA3000Highmem->addActionListener(memorySliderActionListener);
lblA3000Highsize = new gcn::Label("None "); lblA3000Highsize = new gcn::Label("None ");
grpRAM = new gcn::Window("Memory Settings"); grpRAM = new gcn::Window("Memory Settings");
grpRAM->setPosition(DISTANCE_BORDER, DISTANCE_BORDER); grpRAM->setPosition(DISTANCE_BORDER, DISTANCE_BORDER);
@ -196,7 +212,7 @@ void InitPanelRAM(const struct _ConfigCategory& category)
grpRAM->add(sldSlowmem, 160, posY); grpRAM->add(sldSlowmem, 160, posY);
grpRAM->add(lblSlowsize, 160 + sldSlowmem->getWidth() + 12, posY); grpRAM->add(lblSlowsize, 160 + sldSlowmem->getWidth() + 12, posY);
posY += sldSlowmem->getHeight() + DISTANCE_NEXT_Y; posY += sldSlowmem->getHeight() + DISTANCE_NEXT_Y;
grpRAM->add(lblFastmem, 8, posY); grpRAM->add(lblFastmem, 8, posY);
grpRAM->add(sldFastmem, 160, posY); grpRAM->add(sldFastmem, 160, posY);
grpRAM->add(lblFastsize, 160 + sldFastmem->getWidth() + 12, posY); grpRAM->add(lblFastsize, 160 + sldFastmem->getWidth() + 12, posY);

View file

@ -1,7 +1,14 @@
#ifdef USE_SDL1
#include <guichan.hpp>
#include <SDL/SDL_ttf.h>
#include <guichan/sdl.hpp>
#include "sdltruetypefont.hpp"
#elif USE_SDL2
#include <guisan.hpp> #include <guisan.hpp>
#include <SDL_ttf.h> #include <SDL_ttf.h>
#include <guisan/sdl.hpp> #include <guisan/sdl.hpp>
#include <guisan/sdl/sdltruetypefont.hpp> #include <guisan/sdl/sdltruetypefont.hpp>
#endif
#include "SelectorEntry.hpp" #include "SelectorEntry.hpp"
#include "UaeRadioButton.hpp" #include "UaeRadioButton.hpp"
#include "UaeDropDown.hpp" #include "UaeDropDown.hpp"

View file

@ -1,8 +1,16 @@
#ifdef USE_SDL1
#include <guichan.hpp>
#include <SDL/SDL_ttf.h>
#include <SDL/SDL_image.h>
#include <guichan/sdl.hpp>
#include "sdltruetypefont.hpp"
#elif USE_SDL2
#include <guisan.hpp> #include <guisan.hpp>
#include <SDL_ttf.h> #include <SDL_ttf.h>
#include <SDL_image.h> #include <SDL_image.h>
#include <guisan/sdl.hpp> #include <guisan/sdl.hpp>
#include <guisan/sdl/sdltruetypefont.hpp> #include <guisan/sdl/sdltruetypefont.hpp>
#endif
#include "SelectorEntry.hpp" #include "SelectorEntry.hpp"
#include "UaeRadioButton.hpp" #include "UaeRadioButton.hpp"
#include "UaeCheckBox.hpp" #include "UaeCheckBox.hpp"
@ -254,9 +262,12 @@ void RefreshPanelSavestate()
bool HelpPanelSavestate(std::vector<std::string> &helptext) bool HelpPanelSavestate(std::vector<std::string> &helptext)
{ {
helptext.clear(); helptext.clear();
helptext.push_back("Savestates are stored with the name of the disk in drive DF0 attached with the selected number."); helptext.push_back("Savestates are stored with the name of the disk in drive DF0 attached with the selected number.");
helptext.push_back(""); helptext.push_back("");
helptext.push_back("Note: Savestates will not work with HDDs."); helptext.push_back("When you hold left shoulder button and press 'l' during emulation, the state of the last active number will be");
return true; helptext.push_back("loaded. Hold left shoulder button and press 's' to save the current state in the last active slot.");
helptext.push_back("");
helptext.push_back("Note: Savestates will not work with HDDs.");
return true;
} }

View file

@ -1,7 +1,14 @@
#ifdef USE_SDL1
#include <guichan.hpp>
#include <SDL/SDL_ttf.h>
#include <guichan/sdl.hpp>
#include "sdltruetypefont.hpp"
#elif USE_SDL2
#include <guisan.hpp> #include <guisan.hpp>
#include <SDL_ttf.h> #include <SDL_ttf.h>
#include <guisan/sdl.hpp> #include <guisan/sdl.hpp>
#include <guisan/sdl/sdltruetypefont.hpp> #include <guisan/sdl/sdltruetypefont.hpp>
#endif
#include "SelectorEntry.hpp" #include "SelectorEntry.hpp"
#include "UaeRadioButton.hpp" #include "UaeRadioButton.hpp"
#include "UaeCheckBox.hpp" #include "UaeCheckBox.hpp"
@ -287,8 +294,15 @@ void InitPanelSound(const struct _ConfigCategory& category)
grpMode->setSize(90, 90); grpMode->setSize(90, 90);
grpMode->setBaseColor(gui_baseCol); grpMode->setBaseColor(gui_baseCol);
int labelWidth;
#ifdef ANDROID
labelWidth = 135;
#else
labelWidth = 130;
#endif
lblInterpolation = new gcn::Label("Interpolation:"); lblInterpolation = new gcn::Label("Interpolation:");
lblInterpolation->setSize(130, LABEL_HEIGHT); lblInterpolation->setSize(labelWidth, LABEL_HEIGHT);
lblInterpolation->setAlignment(gcn::Graphics::RIGHT); lblInterpolation->setAlignment(gcn::Graphics::RIGHT);
cboInterpolation = new gcn::UaeDropDown(&interpolationTypeList); cboInterpolation = new gcn::UaeDropDown(&interpolationTypeList);
cboInterpolation->setSize(160, DROPDOWN_HEIGHT); cboInterpolation->setSize(160, DROPDOWN_HEIGHT);
@ -298,7 +312,7 @@ void InitPanelSound(const struct _ConfigCategory& category)
cboInterpolation->addActionListener(soundActionListener); cboInterpolation->addActionListener(soundActionListener);
lblFilter = new gcn::Label("Filter:"); lblFilter = new gcn::Label("Filter:");
lblFilter->setSize(130, LABEL_HEIGHT); lblFilter->setSize(labelWidth, LABEL_HEIGHT);
lblFilter->setAlignment(gcn::Graphics::RIGHT); lblFilter->setAlignment(gcn::Graphics::RIGHT);
cboFilter = new gcn::UaeDropDown(&filterTypeList); cboFilter = new gcn::UaeDropDown(&filterTypeList);
cboFilter->setSize(160, DROPDOWN_HEIGHT); cboFilter->setSize(160, DROPDOWN_HEIGHT);
@ -308,7 +322,7 @@ void InitPanelSound(const struct _ConfigCategory& category)
cboFilter->addActionListener(soundActionListener); cboFilter->addActionListener(soundActionListener);
lblSeparation = new gcn::Label("Stereo separation:"); lblSeparation = new gcn::Label("Stereo separation:");
lblSeparation->setSize(130, LABEL_HEIGHT); lblSeparation->setSize(labelWidth, LABEL_HEIGHT);
lblSeparation->setAlignment(gcn::Graphics::RIGHT); lblSeparation->setAlignment(gcn::Graphics::RIGHT);
sldSeparation = new gcn::Slider(0, 10); sldSeparation = new gcn::Slider(0, 10);
sldSeparation->setSize(160, SLIDER_HEIGHT); sldSeparation->setSize(160, SLIDER_HEIGHT);
@ -320,7 +334,7 @@ void InitPanelSound(const struct _ConfigCategory& category)
lblSeparationInfo = new gcn::Label("100%"); lblSeparationInfo = new gcn::Label("100%");
lblStereoDelay = new gcn::Label("Stereo delay:"); lblStereoDelay = new gcn::Label("Stereo delay:");
lblStereoDelay->setSize(130, LABEL_HEIGHT); lblStereoDelay->setSize(labelWidth, LABEL_HEIGHT);
lblStereoDelay->setAlignment(gcn::Graphics::RIGHT); lblStereoDelay->setAlignment(gcn::Graphics::RIGHT);
sldStereoDelay = new gcn::Slider(0, 10); sldStereoDelay = new gcn::Slider(0, 10);
sldStereoDelay->setSize(160, SLIDER_HEIGHT); sldStereoDelay->setSize(160, SLIDER_HEIGHT);

View file

@ -1,10 +1,17 @@
#include <algorithm> #include <algorithm>
#include <guisan.hpp>
#include <iostream> #include <iostream>
#include <sstream> #include <sstream>
#ifdef USE_SDL1
#include <guichan.hpp>
#include <SDL/SDL_ttf.h>
#include <guichan/sdl.hpp>
#include "sdltruetypefont.hpp"
#elif USE_SDL2
#include <guisan.hpp>
#include <SDL_ttf.h> #include <SDL_ttf.h>
#include <guisan/sdl.hpp> #include <guisan/sdl.hpp>
#include <guisan/sdl/sdltruetypefont.hpp> #include <guisan/sdl/sdltruetypefont.hpp>
#endif
#include "SelectorEntry.hpp" #include "SelectorEntry.hpp"
#include "sysconfig.h" #include "sysconfig.h"
@ -24,7 +31,7 @@
#define DIALOG_WIDTH 520 #define DIALOG_WIDTH 520
#define DIALOG_HEIGHT 400 #define DIALOG_HEIGHT 400
#if defined(AMIBERRY) || defined(ANDROID) #if defined(ANDROID)
#define FILE_SELECT_KEEP_POSITION #define FILE_SELECT_KEEP_POSITION
#endif #endif
@ -228,7 +235,11 @@ static void InitSelectFile(const char* title)
lstFiles->addActionListener(selectFileActionListener); lstFiles->addActionListener(selectFileActionListener);
scrAreaFiles = new gcn::ScrollArea(lstFiles); scrAreaFiles = new gcn::ScrollArea(lstFiles);
#ifdef USE_SDL1
scrAreaFiles->setFrameSize(1);
#elif USE_SDL2
scrAreaFiles->setBorderSize(1); scrAreaFiles->setBorderSize(1);
#endif
scrAreaFiles->setPosition(DISTANCE_BORDER, 10 + TEXTFIELD_HEIGHT + 10); scrAreaFiles->setPosition(DISTANCE_BORDER, 10 + TEXTFIELD_HEIGHT + 10);
scrAreaFiles->setSize(DIALOG_WIDTH - 2 * DISTANCE_BORDER - 4, 272); scrAreaFiles->setSize(DIALOG_WIDTH - 2 * DISTANCE_BORDER - 4, 272);
scrAreaFiles->setScrollbarWidth(20); scrAreaFiles->setScrollbarWidth(20);

View file

@ -1,10 +1,18 @@
#include <algorithm> #include <algorithm>
#include <guisan.hpp>
#include <iostream> #include <iostream>
#include <sstream> #include <sstream>
#ifdef USE_SDL1
#include <guichan.hpp>
#include <SDL/SDL_ttf.h>
#include <guichan/sdl.hpp>
#include "sdltruetypefont.hpp"
#elif USE_SDL2
#include <guisan.hpp>
#include <SDL_ttf.h> #include <SDL_ttf.h>
#include <guisan/sdl.hpp> #include <guisan/sdl.hpp>
#include <guisan/sdl/sdltruetypefont.hpp> #include <guisan/sdl/sdltruetypefont.hpp>
#endif
#include "SelectorEntry.hpp" #include "SelectorEntry.hpp"
#include "sysconfig.h" #include "sysconfig.h"
@ -89,7 +97,7 @@ static DirListModel dirList(".");
static void checkfoldername(char* current) static void checkfoldername(char* current)
{ {
char actualpath[PATH_MAX]; char actualpath [MAX_PATH];
DIR* dir; DIR* dir;
if ((dir = opendir(current))) if ((dir = opendir(current)))

View file

@ -1,9 +1,15 @@
#include "osdep/gui/SelectorEntry.hpp" #include "osdep/gui/SelectorEntry.hpp"
#ifdef USE_SDL1
#include "guichan/widgets/container.hpp"
#include "guichan/widgets/icon.hpp"
#include "guichan/widgets/label.hpp"
#elif USE_SDL2
#include "guisan/widgets/container.hpp" #include "guisan/widgets/container.hpp"
#include "guisan/widgets/icon.hpp" #include "guisan/widgets/icon.hpp"
#include "guisan/widgets/label.hpp" #include "guisan/widgets/label.hpp"
#endif
namespace gcn namespace gcn
{ {

View file

@ -1,9 +1,16 @@
#ifndef GCN_SELECTORENTRY_HPP #ifndef GCN_SELECTORENTRY_HPP
#define GCN_SELECTORENTRY_HPP #define GCN_SELECTORENTRY_HPP
#ifdef USE_SDL1
#include "guichan/basiccontainer.hpp"
#include "guichan/graphics.hpp"
#include "guichan/platform.hpp"
#include "guichan/widgetlistener.hpp"
#elif USE_SDL2
#include <guisan/basiccontainer.hpp> #include <guisan/basiccontainer.hpp>
#include <guisan/platform.hpp> #include <guisan/platform.hpp>
#include <guisan/widgetlistener.hpp> #include <guisan/widgetlistener.hpp>
#endif
#include <string> #include <string>
namespace gcn namespace gcn

View file

@ -1,10 +1,16 @@
#include <algorithm> #include <algorithm>
#include <guisan.hpp>
#include <iostream> #include <iostream>
#include <sstream> #include <sstream>
#ifdef USE_SDL1
#include <SDL/SDL_ttf.h>
#include <guichan/sdl.hpp>
#include "sdltruetypefont.hpp"
#elif USE_SDL2
#include <guisan.hpp>
#include <SDL_ttf.h> #include <SDL_ttf.h>
#include <guisan/sdl.hpp> #include <guisan/sdl.hpp>
#include <guisan/sdl/sdltruetypefont.hpp> #include <guisan/sdl/sdltruetypefont.hpp>
#endif
#include "SelectorEntry.hpp" #include "SelectorEntry.hpp"
#include "sysconfig.h" #include "sysconfig.h"
@ -94,7 +100,11 @@ static void InitShowHelp(const vector<string>& helptext)
lstHelp->setWrappingEnabled(true); lstHelp->setWrappingEnabled(true);
scrAreaHelp = new gcn::ScrollArea(lstHelp); scrAreaHelp = new gcn::ScrollArea(lstHelp);
#ifdef USE_SDL1
scrAreaHelp->setFrameSize(1);
#elif USE_SDL2
scrAreaHelp->setBorderSize(1); scrAreaHelp->setBorderSize(1);
#endif
scrAreaHelp->setPosition(DISTANCE_BORDER, 10 + TEXTFIELD_HEIGHT + 10); scrAreaHelp->setPosition(DISTANCE_BORDER, 10 + TEXTFIELD_HEIGHT + 10);
scrAreaHelp->setSize(DIALOG_WIDTH - 2 * DISTANCE_BORDER - 4, scrAreaHelp->setSize(DIALOG_WIDTH - 2 * DISTANCE_BORDER - 4,
DIALOG_HEIGHT - 3 * DISTANCE_BORDER - BUTTON_HEIGHT - DISTANCE_NEXT_Y - 10); DIALOG_HEIGHT - 3 * DISTANCE_BORDER - BUTTON_HEIGHT - DISTANCE_NEXT_Y - 10);

View file

@ -1,10 +1,18 @@
#include <algorithm> #include <algorithm>
#include <guisan.hpp>
#include <iostream> #include <iostream>
#include <sstream> #include <sstream>
#ifdef USE_SDL1
#include <guichan.hpp>
#include <SDL/SDL_ttf.h>
#include <guichan/sdl.hpp>
#include "sdltruetypefont.hpp"
#elif USE_SDL2
#include <guisan.hpp>
#include <SDL_ttf.h> #include <SDL_ttf.h>
#include <guisan/sdl.hpp> #include <guisan/sdl.hpp>
#include <guisan/sdl/sdltruetypefont.hpp> #include <guisan/sdl/sdltruetypefont.hpp>
#endif
#include "SelectorEntry.hpp" #include "SelectorEntry.hpp"
#include "sysconfig.h" #include "sysconfig.h"

View file

@ -1,7 +1,15 @@
#include "UaeCheckBox.hpp" #include "UaeCheckBox.hpp"
#ifdef USE_SDL1
#include "guichan/widgets/checkbox.hpp"
#include "guichan/font.hpp"
#include "guichan/graphics.hpp"
#include "guichan/key.hpp"
#include "guichan/mouseinput.hpp"
#elif USE_SDL2
#include <guisan/widgets/checkbox.hpp> #include <guisan/widgets/checkbox.hpp>
#include <guisan/graphics.hpp> #include <guisan/graphics.hpp>
#endif
namespace gcn namespace gcn
{ {

View file

@ -4,10 +4,17 @@
#include <map> #include <map>
#include <string> #include <string>
#ifdef USE_SDL1
#include "guichan/keylistener.hpp"
#include "guichan/mouselistener.hpp"
#include "guichan/platform.hpp"
#include "guichan/widget.hpp"
#include "guichan/widgets/checkbox.hpp"
#elif USE_SDL2
#include <guisan/platform.hpp> #include <guisan/platform.hpp>
#include <guisan/widget.hpp> #include <guisan/widget.hpp>
#include <guisan/widgets/checkbox.hpp> #include <guisan/widgets/checkbox.hpp>
#endif
namespace gcn namespace gcn
{ {

View file

@ -1,6 +1,15 @@
#include "UaeDropDown.hpp" #include "UaeDropDown.hpp"
#ifdef USE_SDL1
#include "guichan/widgets/dropdown.hpp"
#include "guichan/font.hpp"
#include "guichan/graphics.hpp"
#include "guichan/key.hpp"
#include "guichan/mouseinput.hpp"
#elif USE_SDL2
#include <guisan/widgets/dropdown.hpp> #include <guisan/widgets/dropdown.hpp>
#include <guisan/key.hpp> #include <guisan/key.hpp>
#endif
namespace gcn namespace gcn
{ {
@ -35,13 +44,21 @@ namespace gcn
{ {
setSelected(getSelected() - 1); setSelected(getSelected() - 1);
keyEvent.consume(); keyEvent.consume();
#ifdef USE_SDL1
distributeActionEvent();
#elif USE_SDL2
distributeValueChangedEvent(); distributeValueChangedEvent();
#endif
} }
else if (key.getValue() == Key::DOWN) else if (key.getValue() == Key::DOWN)
{ {
setSelected(getSelected() + 1); setSelected(getSelected() + 1);
keyEvent.consume(); keyEvent.consume();
#ifdef USE_SDL1
distributeActionEvent();
#elif USE_SDL2
distributeValueChangedEvent(); distributeValueChangedEvent();
#endif
} }
} }

View file

@ -1,12 +1,21 @@
#ifndef GCN_UAEDROPDOWN_HPP #ifndef GCN_UAEDROPDOWN_HPP
#define GCN_UAEDROPDOWN_HPP #define GCN_UAEDROPDOWN_HPP
#include <string> #ifdef USE_SDL1
#include <map>
#include "guichan/keylistener.hpp"
#include "guichan/mouselistener.hpp"
#include "guichan/platform.hpp"
#include "guichan/widget.hpp"
#include "guichan/widgets/dropdown.hpp"
#elif USE_SDL2
#include <guisan/keylistener.hpp> #include <guisan/keylistener.hpp>
#include <guisan/platform.hpp> #include <guisan/platform.hpp>
#include <guisan/widget.hpp> #include <guisan/widget.hpp>
#include <guisan/widgets/dropdown.hpp> #include <guisan/widgets/dropdown.hpp>
#endif
#include <string>
namespace gcn namespace gcn

View file

@ -1,9 +1,21 @@
#include "UaeListBox.hpp" #include "UaeListBox.hpp"
#ifdef USE_SDL1
#include "guichan/widgets/listbox.hpp"
#include "guichan/basiccontainer.hpp"
#include "guichan/font.hpp"
#include "guichan/graphics.hpp"
#include "guichan/key.hpp"
#include "guichan/listmodel.hpp"
#include "guichan/mouseinput.hpp"
#include "guichan/selectionlistener.hpp"
#elif USE_SDL2
#include <guisan/widgets/listbox.hpp> #include <guisan/widgets/listbox.hpp>
#include <guisan/basiccontainer.hpp> #include <guisan/basiccontainer.hpp>
#include <guisan/font.hpp> #include <guisan/font.hpp>
#include <guisan/graphics.hpp> #include <guisan/graphics.hpp>
#include <guisan/listmodel.hpp> #include <guisan/listmodel.hpp>
#endif
namespace gcn namespace gcn
{ {
@ -40,7 +52,11 @@ namespace gcn
// Check the current clip area so we don't draw unnecessary items // Check the current clip area so we don't draw unnecessary items
// that are not visible. // that are not visible.
const ClipRectangle currentClipArea = graphics->getCurrentClipArea(); const ClipRectangle currentClipArea = graphics->getCurrentClipArea();
#ifdef USE_SDL1
int rowHeight = getRowHeight();
#elif USE_SDL2
const int rowHeight = getFont()->getHeight(); const int rowHeight = getFont()->getHeight();
#endif
// Calculate the number of rows to draw by checking the clip area. // Calculate the number of rows to draw by checking the clip area.
// The addition of two makes covers a partial visible row at the top // The addition of two makes covers a partial visible row at the top

View file

@ -3,11 +3,19 @@
#include <list> #include <list>
#ifdef USE_SDL1
#include "guichan/keylistener.hpp"
#include "guichan/listmodel.hpp"
#include "guichan/mouselistener.hpp"
#include "guichan/platform.hpp"
#include "guichan/widget.hpp"
#include "guichan/widgets/listbox.hpp"
#elif USE_SDL2
#include <guisan/listmodel.hpp> #include <guisan/listmodel.hpp>
#include <guisan/platform.hpp> #include <guisan/platform.hpp>
#include <guisan/widget.hpp> #include <guisan/widget.hpp>
#include <guisan/widgets/listbox.hpp> #include <guisan/widgets/listbox.hpp>
#endif
namespace gcn namespace gcn
{ {

View file

@ -1,6 +1,15 @@
#include "UaeRadioButton.hpp" #include "UaeRadioButton.hpp"
#ifdef USE_SDL1
#include "guichan/widgets/radiobutton.hpp"
#include "guichan/font.hpp"
#include "guichan/graphics.hpp"
#include "guichan/key.hpp"
#include "guichan/mouseinput.hpp"
#elif USE_SDL2
#include <guisan/widgets/radiobutton.hpp> #include <guisan/widgets/radiobutton.hpp>
#include <guisan/graphics.hpp> #include <guisan/graphics.hpp>
#endif
namespace gcn namespace gcn
{ {

View file

@ -4,9 +4,17 @@
#include <map> #include <map>
#include <string> #include <string>
#ifdef USE_SDL1
#include "guichan/keylistener.hpp"
#include "guichan/mouselistener.hpp"
#include "guichan/platform.hpp"
#include "guichan/widget.hpp"
#include "guichan/widgets/radiobutton.hpp"
#elif USE_SDL2
#include <guisan/platform.hpp> #include <guisan/platform.hpp>
#include <guisan/widget.hpp> #include <guisan/widget.hpp>
#include <guisan/widgets/radiobutton.hpp> #include <guisan/widgets/radiobutton.hpp>
#endif
namespace gcn namespace gcn

View file

@ -17,7 +17,9 @@
#define DROPDOWN_HEIGHT 15 #define DROPDOWN_HEIGHT 15
#define SLIDER_HEIGHT 18 #define SLIDER_HEIGHT 18
#define TITLEBAR_HEIGHT 24 #define TITLEBAR_HEIGHT 24
#ifdef USE_SDL2
#include <guisan/sdl/sdlinput.hpp> #include <guisan/sdl/sdlinput.hpp>
#endif
typedef struct _ConfigCategory typedef struct _ConfigCategory
{ {

View file

@ -1,8 +1,15 @@
#include <iostream> #include <iostream>
#ifdef USE_SDL1
#include <guichan.hpp>
#include <SDL/SDL_ttf.h>
#include <guichan/sdl.hpp>
#include "sdltruetypefont.hpp"
#elif USE_SDL2
#include <guisan.hpp> #include <guisan.hpp>
#include <SDL_ttf.h> #include <SDL_ttf.h>
#include <guisan/sdl.hpp> #include <guisan/sdl.hpp>
#include <guisan/sdl/sdltruetypefont.hpp> #include <guisan/sdl/sdltruetypefont.hpp>
#endif
#include "SelectorEntry.hpp" #include "SelectorEntry.hpp"
#include "sysconfig.h" #include "sysconfig.h"
@ -96,10 +103,12 @@ enum
* SDL Stuff we need * SDL Stuff we need
*/ */
SDL_Surface* gui_screen; SDL_Surface* gui_screen;
SDL_Texture* gui_texture;
SDL_Event gui_event; SDL_Event gui_event;
#ifdef USE_SDL2
SDL_Texture* gui_texture;
SDL_Cursor* cursor; SDL_Cursor* cursor;
SDL_Surface* cursorSurface; SDL_Surface* cursorSurface;
#endif
/* /*
* Guisan SDL stuff we need * Guisan SDL stuff we need
@ -214,16 +223,22 @@ static void ShowHelpRequested()
void UpdateGuiScreen() void UpdateGuiScreen()
{ {
#ifdef USE_SDL1
wait_for_vsync();
SDL_Flip(gui_screen);
#elif USE_SDL2
// Update the texture from the surface // Update the texture from the surface
SDL_UpdateTexture(gui_texture, nullptr, gui_screen->pixels, gui_screen->pitch); SDL_UpdateTexture(gui_texture, nullptr, gui_screen->pixels, gui_screen->pitch);
// Copy the texture on the renderer // Copy the texture on the renderer
SDL_RenderCopy(renderer, gui_texture, nullptr, nullptr); SDL_RenderCopy(renderer, gui_texture, nullptr, nullptr);
// Update the window surface (show the renderer) // Update the window surface (show the renderer)
SDL_RenderPresent(renderer); SDL_RenderPresent(renderer);
#endif
} }
namespace sdl namespace sdl
{ {
#ifdef USE_SDL2
// Sets the cursor image up // Sets the cursor image up
void setup_cursor() void setup_cursor()
{ {
@ -257,12 +272,30 @@ namespace sdl
SDL_SetCursor(cursor); SDL_SetCursor(cursor);
} }
#endif
void gui_init() void gui_init()
{ {
#ifdef USE_SDL1
//-------------------------------------------------
// Set layer for GUI screen
//-------------------------------------------------
char tmp[20];
snprintf(tmp, 20, "%dx%d", GUI_WIDTH, GUI_HEIGHT);
setenv("SDL_OMAP_LAYER_SIZE", tmp, 1);
snprintf(tmp, 20, "0,0,0,0");
setenv("SDL_OMAP_BORDER_CUT", tmp, 1);
#endif
//------------------------------------------------- //-------------------------------------------------
// Create new screen for GUI // Create new screen for GUI
//------------------------------------------------- //-------------------------------------------------
#ifdef USE_SDL1
const SDL_VideoInfo* videoInfo = SDL_GetVideoInfo();
gui_screen = SDL_SetVideoMode(GUI_WIDTH, GUI_HEIGHT, 16, SDL_SWSURFACE | SDL_FULLSCREEN);
SDL_EnableUNICODE(1);
SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL);
#endif
#ifdef USE_SDL2
setup_cursor(); setup_cursor();
// make the scaled rendering look smoother (linear scaling). // make the scaled rendering look smoother (linear scaling).
@ -275,20 +308,21 @@ namespace sdl
gui_texture = SDL_CreateTextureFromSurface(renderer, gui_screen); gui_texture = SDL_CreateTextureFromSurface(renderer, gui_screen);
check_error_sdl(gui_texture == nullptr, "Unable to create texture"); check_error_sdl(gui_texture == nullptr, "Unable to create texture");
#endif
#ifdef ANDROIDSDL #ifdef ANDROIDSDL
// Enable Android multitouch // Enable Android multitouch
SDL_InitSubSystem(SDL_INIT_JOYSTICK); SDL_InitSubSystem(SDL_INIT_JOYSTICK);
SDL_JoystickOpen(0); SDL_JoystickOpen(0);
#endif #endif
#ifdef USE_SDL2
if (cursor) if (cursor)
{ {
SDL_ShowCursor(SDL_ENABLE); SDL_ShowCursor(SDL_ENABLE);
} }
#endif
//------------------------------------------------- //-------------------------------------------------
// Create helpers for guisan // Create helpers for GUI framework
//------------------------------------------------- //-------------------------------------------------
gui_imageLoader = new gcn::SDLImageLoader(); gui_imageLoader = new gcn::SDLImageLoader();
// The ImageLoader in use is static and must be set to be // The ImageLoader in use is static and must be set to be
@ -312,6 +346,10 @@ namespace sdl
delete gui_input; delete gui_input;
delete gui_graphics; delete gui_graphics;
#ifdef USE_SDL1
if (gui_screen != nullptr)
SDL_FreeSurface(gui_screen);
#elif USE_SDL2
SDL_FreeSurface(gui_screen); SDL_FreeSurface(gui_screen);
SDL_DestroyTexture(gui_texture); SDL_DestroyTexture(gui_texture);
@ -327,6 +365,7 @@ namespace sdl
SDL_FreeSurface(cursorSurface); SDL_FreeSurface(cursorSurface);
cursorSurface = nullptr; cursorSurface = nullptr;
} }
#endif
gui_screen = nullptr; gui_screen = nullptr;
} }
@ -737,7 +776,11 @@ namespace widgets
selectors = new gcn::Container(); selectors = new gcn::Container();
selectors->setSize(150, workAreaHeight - 2); selectors->setSize(150, workAreaHeight - 2);
selectors->setBaseColor(colSelectorInactive); selectors->setBaseColor(colSelectorInactive);
#ifdef USE_SDL1
selectors->setFrameSize(1);
#elif USE_SDL2
selectors->setBorderSize(1); selectors->setBorderSize(1);
#endif
int panelStartX = DISTANCE_BORDER + selectors->getWidth() + 2 + 11; int panelStartX = DISTANCE_BORDER + selectors->getWidth() + 2 + 11;
panelFocusListener = new PanelFocusListener(); panelFocusListener = new PanelFocusListener();
@ -753,7 +796,11 @@ namespace widgets
categories[i].panel->setId(categories[i].category); categories[i].panel->setId(categories[i].category);
categories[i].panel->setSize(GUI_WIDTH - panelStartX - DISTANCE_BORDER - 1, workAreaHeight - 2); categories[i].panel->setSize(GUI_WIDTH - panelStartX - DISTANCE_BORDER - 1, workAreaHeight - 2);
categories[i].panel->setBaseColor(gui_baseCol); categories[i].panel->setBaseColor(gui_baseCol);
#ifdef USE_SDL1
categories[i].panel->setFrameSize(1);
#elif USE_SDLL2
categories[i].panel->setBorderSize(1); categories[i].panel->setBorderSize(1);
#endif
categories[i].panel->setVisible(false); categories[i].panel->setVisible(false);
} }
@ -879,7 +926,7 @@ void run_gui()
#endif #endif
} }
// Catch all guisan exceptions. // Catch all GUI framework exceptions.
catch (gcn::Exception e) catch (gcn::Exception e)
{ {
cout << e.getMessage() << endl; cout << e.getMessage() << endl;

View file

@ -395,7 +395,7 @@ void translate_amiberry_keys(int scancode, int newstate)
inputdevice_translatekeycode(0, translatedScancode, newstate); inputdevice_translatekeycode(0, translatedScancode, newstate);
} }
int target_checkcapslock(int scancode, int *state) int target_checkcapslock(const int scancode, int *state)
{ {
if (scancode != SDLK_CAPSLOCK && scancode != SDLK_NUMLOCKCLEAR && scancode != SDLK_SCROLLLOCK) if (scancode != SDLK_CAPSLOCK && scancode != SDLK_NUMLOCKCLEAR && scancode != SDLK_SCROLLLOCK)
return 0; return 0;

View file

@ -161,3 +161,7 @@ STATIC_INLINE uae_u32 atomic_bit_test_and_reset(volatile uae_atomic *p, uae_u32
uae_u32 res = __sync_fetch_and_and(p, ~mask); uae_u32 res = __sync_fetch_and_and(p, ~mask);
return (res && mask); return (res && mask);
} }
STATIC_INLINE void atomic_set(volatile uae_atomic *p, uae_u32 v)
{
__sync_lock_test_and_set(p, v);
}

View file

@ -39,6 +39,23 @@ STATIC_INLINE void uae_end_thread (uae_thread_id *tid)
{ {
} }
#ifdef USE_SDL1
STATIC_INLINE int uae_start_thread (const TCHAR *name, void *(*f) (void *), void *arg, uae_thread_id *foo)
{
uae_thread_id id = SDL_CreateThread ((int (*)(void *))f, arg);
if(foo != NULL)
*foo = id;
return (int)id;
}
STATIC_INLINE int uae_start_thread_fast (void *(*f) (void *), void *arg, uae_thread_id *foo)
{
uae_thread_id id = SDL_CreateThread ((int (*)(void *))f, arg);
if(foo != NULL)
*foo = id;
return (int)id;
}
#elif USE_SDL2
STATIC_INLINE uae_thread_id uae_start_thread(const TCHAR* name, void*(*f)(void*), void* arg, uae_thread_id* foo) STATIC_INLINE uae_thread_id uae_start_thread(const TCHAR* name, void*(*f)(void*), void* arg, uae_thread_id* foo)
{ {
uae_thread_id id = SDL_CreateThread ((int (*)(void *))f, "StartThread", arg); uae_thread_id id = SDL_CreateThread ((int (*)(void *))f, "StartThread", arg);
@ -54,6 +71,7 @@ STATIC_INLINE uae_thread_id uae_start_thread_fast(void*(*f)(void*), void* arg, u
*foo = id; *foo = id;
return id; return id;
} }
#endif
STATIC_INLINE void uae_wait_thread (uae_thread_id thread) STATIC_INLINE void uae_wait_thread (uae_thread_id thread)
{ {