From f303ac2f2a3c87173797dde9078c414731f66c13 Mon Sep 17 00:00:00 2001 From: hendricks266 Date: Sun, 20 May 2012 07:25:25 +0000 Subject: [PATCH] EDuke32 Wii: Ready for action! git-svn-id: https://svn.eduke32.com/eduke32@2685 1a8010ca-5511-0410-912e-c29ae57300e0 --- polymer/eduke32/Makefile | 37 ++++++++++++++-------- polymer/eduke32/Makefile.common | 7 ++++ polymer/eduke32/Wii/apps/eduke32/icon.png | Bin 0 -> 6839 bytes polymer/eduke32/Wii/meta_1.xml | 4 +++ polymer/eduke32/Wii/meta_2.xml | 6 ++++ polymer/eduke32/build/Makefile.shared | 21 ++++++++++-- polymer/eduke32/build/src/build.c | 5 ++- polymer/eduke32/build/src/engine.c | 8 +++-- polymer/eduke32/psd/wii-hbc-icon.xcf | Bin 0 -> 43747 bytes polymer/eduke32/source/game.c | 7 ++-- polymer/eduke32/wiibuild.bat | 36 +++++++++++++++++++++ 11 files changed, 110 insertions(+), 21 deletions(-) create mode 100644 polymer/eduke32/Wii/apps/eduke32/icon.png create mode 100644 polymer/eduke32/Wii/meta_1.xml create mode 100644 polymer/eduke32/Wii/meta_2.xml create mode 100644 polymer/eduke32/psd/wii-hbc-icon.xcf create mode 100644 polymer/eduke32/wiibuild.bat diff --git a/polymer/eduke32/Makefile b/polymer/eduke32/Makefile index 4057c61a1..1d667c6ee 100644 --- a/polymer/eduke32/Makefile +++ b/polymer/eduke32/Makefile @@ -78,10 +78,9 @@ ifeq ($(PLATFORM),WINDOWS) endif else ifeq ($(PLATFORM),LINUX) - LIBS+= -ldl -pthread - else - LIBS+= -pthread + LIBS+= -ldl endif + LIBS+= -pthread ifneq (0,$(PROFILER)) ifneq ($(PLATFORM),DARWIN) LIBS+= -lprofiler @@ -199,8 +198,6 @@ ifeq ($(PLATFORM),LINUX) endif ifeq ($(PLATFORM),WII) - STRIP=powerpc-eabi-strip - OURCFLAGS += -g -mcpu=750 -meabi -mhard-float -msdata -O2 -I$(LIBOGC_INC) -I$(PORTLIBS)/include -DGEKKO LIBS += -L$(LIBOGC_LIB) -L$(PORTLIBS)/lib -lvorbisidec -lfreetype -lfat -lwiiuse -lbte -logc -lm -lwiikeyboard endif @@ -296,7 +293,8 @@ ifneq (0,$(PROFILER)) OURLDFLAGS+=-pg endif ifeq ($(PLATFORM),WII) - MISCLINKOPTS+= -g -mrvl -meabi -mhard-float -msdata -Wl,--gc-sections -Wl,-Map,$(notdir $@).map + OURLDFLAGS+= -mrvl -meabi -mhard-float -Wl,--gc-sections -Wl,-Map,$(notdir $@).map + # -msdata=eabi endif ifeq ($(PRETTY_OUTPUT),1) @@ -304,14 +302,23 @@ ifeq ($(PRETTY_OUTPUT),1) endif .PHONY: clean all engine $(EOBJ)/$(ENGINELIB) $(EOBJ)/$(EDITORLIB) $(JAUDIOLIBDIR)/$(JAUDIOLIB) $(ENETDIR)/$(ENETLIB) +EDUKE32_TARGET:=eduke32$(EXESUFFIX) +ifneq ($(PLATFORM),WII) + MAPSTER32_TARGET:=mapster32$(EXESUFFIX) +endif + # TARGETS -all: notice eduke32$(EXESUFFIX) mapster32$(EXESUFFIX) $(EBACKTRACEDLL_TARGET) +all: notice $(EDUKE32_TARGET) $(MAPSTER32_TARGET) $(EBACKTRACEDLL_TARGET) all: $(BUILD_FINISHED) - @ls -l eduke32$(EXESUFFIX) - @ls -l mapster32$(EXESUFFIX) +ifneq (,$(EDUKE32_TARGET)) + @ls -l $(EDUKE32_TARGET) +endif +ifneq (,$(MAPSTER32_TARGET)) + @ls -l $(MAPSTER32_TARGET) +endif notice: $(BUILD_STARTED) @@ -321,13 +328,15 @@ eduke32$(EXESUFFIX): $(GAMEOBJS) $(EOBJ)/$(ENGINELIB) $(JAUDIOLIBDIR)/$(JAUDIOLI if $(CC) $(OURCONLYFLAGS) $(OURCFLAGS) -o $@ $^ $(OURLDFLAGS) $(LIBS) $(STATICSTDCPP) $(STDCPPLIB); then $(LINK_OK); else $(LINK_FAILED); fi ifeq (1,$(RELEASE)) ifeq (0,$(DEBUGANYWAY)) - $(STRIP) eduke32$(EXESUFFIX) + ifneq ($(PLATFORM),WII) + $(STRIP) $(EDUKE32_TARGET) + endif endif endif ifeq ($(PLATFORM),DARWIN) cp -RPf "Apple/bundles/EDuke32.app" "./" mkdir -p "EDuke32.app/Contents/MacOS" - cp -f "eduke32$(EXESUFFIX)" "EDuke32.app/Contents/MacOS/" + cp -f "$(EDUKE32_TARGET)" "EDuke32.app/Contents/MacOS/" endif mapster32$(EXESUFFIX): $(EDITOROBJS) $(EOBJ)/$(EDITORLIB) $(EOBJ)/$(ENGINELIB) $(JAUDIOLIBDIR)/$(JAUDIOLIB) @@ -335,13 +344,15 @@ mapster32$(EXESUFFIX): $(EDITOROBJS) $(EOBJ)/$(EDITORLIB) $(EOBJ)/$(ENGINELIB) $ if $(CC) $(OURCONLYFLAGS) $(OURCFLAGS) -o $@ $^ $(OURLDFLAGS) $(LIBS) $(STATICSTDCPP) $(STDCPPLIB); then $(LINK_OK); else $(LINK_FAILED); fi ifeq (1,$(RELEASE)) ifeq (0,$(DEBUGANYWAY)) - $(STRIP) mapster32$(EXESUFFIX) + ifneq ($(PLATFORM),WII) + $(STRIP) $(MAPSTER32_TARGET) + endif endif endif ifeq ($(PLATFORM),DARWIN) cp -RPf "Apple/bundles/Mapster32.app" "./" mkdir -p "Mapster32.app/Contents/MacOS" - cp -f "mapster32$(EXESUFFIX)" "Mapster32.app/Contents/MacOS/" + cp -f "$(MAPSTER32_TARGET)" "Mapster32.app/Contents/MacOS/" endif include Makefile.deps diff --git a/polymer/eduke32/Makefile.common b/polymer/eduke32/Makefile.common index e4b7837b2..0fd3d52aa 100644 --- a/polymer/eduke32/Makefile.common +++ b/polymer/eduke32/Makefile.common @@ -91,6 +91,11 @@ BASECXXFLAGS= -fno-exceptions -fno-rtti BASEASFLAGS=-s #-g BASELDFLAGS= +ifeq ($(PLATFORM),WII) + override USE_LIBPNG = 0 + override USE_LIBVPX = 0 +endif + LIBS=-lm ifneq (0,$(USE_LIBPNG)) LIBS+= -lpng -lz @@ -105,6 +110,8 @@ ifneq ($(RELEASE)$(DEBUGANYWAY),10) # debug build or DEBUGANYWAY=1 --> -g flag ifneq (0,$(CLANG)) debug=-g + else ifeq ($(PLATFORM), WII) + debug=-g else debug=-ggdb endif diff --git a/polymer/eduke32/Wii/apps/eduke32/icon.png b/polymer/eduke32/Wii/apps/eduke32/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1d3f36555136ba2a1b35944c6678719f6f8d414a GIT binary patch literal 6839 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

!78?U;*{yJq5+{Yh(%zgwsZ)hW@nKGCn_!tVj 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 literal 0 HcmV?d00001 diff --git a/polymer/eduke32/Wii/meta_1.xml b/polymer/eduke32/Wii/meta_1.xml new file mode 100644 index 000000000..16059eb87 --- /dev/null +++ b/polymer/eduke32/Wii/meta_1.xml @@ -0,0 +1,4 @@ + + + EDuke32 Wii + EDuke32 Team diff --git a/polymer/eduke32/Wii/meta_2.xml b/polymer/eduke32/Wii/meta_2.xml new file mode 100644 index 000000000..9d18129bf --- /dev/null +++ b/polymer/eduke32/Wii/meta_2.xml @@ -0,0 +1,6 @@ + Duke Nukem 3D + EDuke32 is an awesome, free homebrew game engine and source port of the classic PC first person shooter Duke Nukem 3D--Duke3D for short. We've added thousands of cool and useful features and upgrades for regular players and additional editing capabilities and scripting extensions for homebrew developers and mod creators. EDuke32 is completely free, open source software. EDuke32 is licensed under the GNU GPL and the BUILD license. http://eduke32.com/ + + + + diff --git a/polymer/eduke32/build/Makefile.shared b/polymer/eduke32/build/Makefile.shared index 13c47a24f..016ea02b0 100644 --- a/polymer/eduke32/build/Makefile.shared +++ b/polymer/eduke32/build/Makefile.shared @@ -162,10 +162,24 @@ ifeq ($(PLATFORM),SKYOS) LIBS+= -lSDL -lnet endif ifeq ($(PLATFORM),WII) + ifeq ($(strip $(DEVKITPPC)),) + $(error "Please set DEVKITPPC in your environment. export DEVKITPPC=devkitPPC") + endif + + include $(DEVKITPPC)/wii_rules + + RANLIB=powerpc-eabi-ranlib + STRIP=powerpc-eabi-strip + RENDERTYPE=SDL EXESUFFIX=.elf + override USE_OPENGL=0 + override NOASM=1 override WITHOUT_GTK=1 - BUILDCFLAGS+= -g -mcpu=750 -meabi -mhard-float -msdata -O2 -DGEKKO -DHAVE_INTTYPES -D__POWERPC__ -I$(LIBOGC_INC) -I$(LIBOGC_INC)/SDL + # -msdata=eabi + BUILDCFLAGS+= -g -mtune=750 -meabi -mhard-float \ + -DGEKKO -DHAVE_INTTYPES -D__POWERPC__ \ + -I$(LIBOGC_INC) -I$(LIBOGC_INC)/SDL -I$(PORTLIBS)/include SDLCONFIG= LIBS+= -lSDL_mixer -lsmpeg -lSDL -laesnd endif @@ -262,7 +276,10 @@ endif ifneq ($(PLATFORM),WINDOWS) - LIBS+= -ldl -pthread + ifneq ($(PLATFORM),WII) + LIBS+= -ldl + endif + LIBS+= -pthread endif ifeq ($(PLATFORM),WINDOWS) diff --git a/polymer/eduke32/build/src/build.c b/polymer/eduke32/build/src/build.c index f81ef53f6..6b20981e3 100644 --- a/polymer/eduke32/build/src/build.c +++ b/polymer/eduke32/build/src/build.c @@ -248,7 +248,10 @@ static int32_t osdcmd_restartvid(const osdfuncparm_t *parm) static int32_t osdcmd_vidmode(const osdfuncparm_t *parm) { - int32_t newx = xdim, newy = ydim, newbpp = bpp, newfullscreen = fullscreen, tmp; + int32_t newx = xdim, newy = ydim, newbpp = bpp, newfullscreen = fullscreen; +#ifdef USE_OPENGL + int32_t tmp; +#endif switch (parm->numparms) { diff --git a/polymer/eduke32/build/src/engine.c b/polymer/eduke32/build/src/engine.c index 9515870ce..7b1a3b3c4 100644 --- a/polymer/eduke32/build/src/engine.c +++ b/polymer/eduke32/build/src/engine.c @@ -7766,7 +7766,11 @@ static inline int32_t raytrace(int32_t x3, int32_t y3, int32_t *x4, int32_t *y4) // Exported Engine Functions // -#if !defined _WIN32 && defined DEBUGGINGAIDS +#if !defined _WIN32 && defined DEBUGGINGAIDS && !defined GEKKO +#ifdef GEKKO +#define __rtems__ +#define _POSIX_REALTIME_SIGNALS +#endif #include static void sighandler(int32_t sig, const siginfo_t *info, void *ctx) { @@ -7917,7 +7921,7 @@ int32_t initengine(void) { int32_t i, j; -#if !defined _WIN32 && defined DEBUGGINGAIDS +#if !defined _WIN32 && defined DEBUGGINGAIDS && !defined GEKKO struct sigaction sigact, oldact; memset(&sigact, 0, sizeof(sigact)); sigact.sa_sigaction = (void *)sighandler; diff --git a/polymer/eduke32/psd/wii-hbc-icon.xcf b/polymer/eduke32/psd/wii-hbc-icon.xcf new file mode 100644 index 0000000000000000000000000000000000000000..d31eabcfceb346a518a9e61e03370a7e99bd670f GIT binary patch literal 43747 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 IZ$B6OZ{-B|&j0`b literal 0 HcmV?d00001 diff --git a/polymer/eduke32/source/game.c b/polymer/eduke32/source/game.c index f3d388835..c5afcb93b 100644 --- a/polymer/eduke32/source/game.c +++ b/polymer/eduke32/source/game.c @@ -2685,12 +2685,12 @@ void G_DisplayRest(int32_t smoothratio) { if (pp->palette == WATERPAL) { - static palette_t wp = { 224, 192, 255, 0 }; + static const palette_t wp = { 224, 192, 255, 0 }; Bmemcpy(&hictinting[MAXPALOOKUPS-1], &wp, sizeof(palette_t)); } else if (pp->palette == SLIMEPAL) { - static palette_t sp = { 208, 255, 192, 0 }; + static const palette_t sp = { 208, 255, 192, 0 }; Bmemcpy(&hictinting[MAXPALOOKUPS-1], &sp, sizeof(palette_t)); } else @@ -10616,12 +10616,13 @@ MAIN_LOOP_RESTART: // stdin -> OSD input for dedicated server if (g_networkMode == NET_DEDICATED_SERVER) { - int32_t nb, flag = 1; + int32_t nb; char ch; static uint32_t bufpos = 0; static char buf[128]; #ifndef GEKKO + int32_t flag = 1; ioctl(0, FIONBIO, &flag); #endif diff --git a/polymer/eduke32/wiibuild.bat b/polymer/eduke32/wiibuild.bat new file mode 100644 index 000000000..926553a1a --- /dev/null +++ b/polymer/eduke32/wiibuild.bat @@ -0,0 +1,36 @@ +@echo off +setlocal ENABLEEXTENSIONS DISABLEDELAYEDEXPANSION + +set PATH=C:\devkitPro\devkitPPC\bin;C:\devkitPro\msys\bin;C:\MinGW\bin;C:\MinGW\msys\1.0\bin;%PATH% + +:: Detect versioning systems and pull the revision number: +for /f "delims=" %%G in ('svn info 2^>^&1 ^| grep Revision ^| cut -d " " -f 2') do @set rev=r%%G +if not "%rev%"=="" set vc=svn +if "%rev%"=="" for /f "delims=" %%G in ('git svn info 2^>^&1 ^| grep Revision ^| cut -d " " -f 2') do @set rev=r%%G +if not "%rev%"=="" set vc=git +if "%rev%"=="" set vc=none +if not "%rev%"=="" echo const char *s_buildRev = "%rev%";>source\rev.h +if "%rev%"=="" set rev=rXXXX + +:: Get the current date: +for /f "delims=" %%G in ('"C:\MinGW\msys\1.0\bin\date.exe" +%%Y%%m%%d') do @set currentdate=%%G + +:: Build: +set buildparameters=PLATFORM=WII %* + +make veryclean %buildparameters% +make OPTLEVEL=2 LTO=0 %buildparameters% + +:: Package data: +xcopy /e /q /y Wii\apps apps\ +for %%G in (eduke32) do for %%H in (.elf) do if exist "%%~G%%~H" move /y "%%~G%%~H" "apps\%%~G\boot%%~H" +for %%G in (eduke32) do for %%H in (.elf.map) do if exist "%%~G%%~H" del /f /q "%%~G%%~H" +"echo.exe" -e " %rev%\n %currentdate%" | "cat.exe" Wii\meta_1.xml - Wii\meta_2.xml >"apps\eduke32\meta.xml" +if exist "*.txt" copy /y "*.txt" "apps\eduke32\" +"ls.exe" -l -R apps + +:: Clean up revision number: +if "%vc%"=="svn" svn revert source\rev.h +if "%vc%"=="git" git checkout source\rev.h + +endlocal