summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorDavid Guillen Fandos2021-06-27 01:16:28 +0200
committerDavid Guillen Fandos2021-06-27 01:16:28 +0200
commit8dbf5f6c17e3d217877119620e5bbfeba05abd7a (patch)
treecc50bd05fd8fd14444825c4929fb94ea6e98b1dc /Makefile
parentbdf029398070b338e28318d5e1e2418a1815c3a6 (diff)
downloadpicogpsp-8dbf5f6c17e3d217877119620e5bbfeba05abd7a.tar.gz
picogpsp-8dbf5f6c17e3d217877119620e5bbfeba05abd7a.tar.bz2
picogpsp-8dbf5f6c17e3d217877119620e5bbfeba05abd7a.zip
Enable big-endian devices: gc/wii
This patch adds big-endian compatibility in gpsp (in general but only for the interpreter). There's no performance hit for little-endian platforms (should be a no-op) and only add a small overhead in memory accesses for big-endian platforms. Most memory accesses are wrapped with a byteswap instruction and I/O reg accesses are also rewired for proper access (using macros). Video rendering has been fixed to also do byteswaps but there's a couple of games and rendering modes that still seem broken (but they amount to less than 20 games in my tests with 1K ROMs). This also adds build rules and CI for NGC/WII/WIIU (untested)
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile8
1 files changed, 8 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index cf0bfd1..5f7afff 100644
--- a/Makefile
+++ b/Makefile
@@ -195,6 +195,14 @@ else ifeq ($(platform), switch)
include $(LIBTRANSISTOR_HOME)/libtransistor.mk
STATIC_LINKING=1
+# Nintendo Game Cube / Wii / WiiU
+else ifneq (,$(filter $(platform), ngc wii wiiu))
+ TARGET := $(TARGET_NAME)_libretro_$(platform).a
+ CC = $(DEVKITPPC)/bin/powerpc-eabi-gcc$(EXE_EXT)
+ AR = $(DEVKITPPC)/bin/powerpc-eabi-ar$(EXE_EXT)
+ CFLAGS += -DGEKKO -mcpu=750 -meabi -mhard-float -DHAVE_STRTOF_L
+ STATIC_LINKING = 1
+
# PSP
else ifeq ($(platform), psp1)
TARGET := $(TARGET_NAME)_libretro_$(platform).a