diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 89f64c0b6..9c5b3d533 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,7 +1,6 @@ FROM --platform=linux/x86_64 mcr.microsoft.com/devcontainers/base:debian ENV WORKSPACE=/workspace -ENV DEVKITPRO=/opt/devkitpro RUN export DEBIAN_FRONTEND=noninteractive && \ dpkg --add-architecture i386 && \ @@ -32,10 +31,6 @@ RUN curl -L https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-SDL2-2.30.2- curl -L https://mirror.msys2.org/mingw/mingw32/mingw-w64-i686-libpng-1.6.43-1-any.pkg.tar.zst | tar --use-compress-program=unzstd -xv -C /opt && \ curl -L https://mirror.msys2.org/mingw/mingw32/mingw-w64-i686-libvpx-1.14.0-1-any.pkg.tar.zst | tar --use-compress-program=unzstd -xv -C /opt -# DevkitPRO -COPY installDevkitPro.sh . -RUN ./installDevkitPro.sh - # Base Directories RUN mkdir -p "${WORKSPACE}" && chmod -R 777 "$WORKSPACE" diff --git a/.devcontainer/installDevkitPro.sh b/.devcontainer/installDevkitPro.sh deleted file mode 100755 index 9e8b9c082..000000000 --- a/.devcontainer/installDevkitPro.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env bash - -curl -L https://apt.devkitpro.org/install-devkitpro-pacman > install-devkitpro-pacman || exit 1 -chmod +x install-devkitpro-pacman || exit 1 - -./install-devkitpro-pacman << END_OF_INPUT -y -END_OF_INPUT - -rm install-devkitpro-pacman || exit 1 -ln -s /proc/self/mounts /etc/mtab - -/opt/devkitpro/pacman/bin/pacman -S wii-dev ppc-libpng ppc-zlib ppc-libvorbis ppc-libvorbisidec ppc-libogg << END_OF_INPUT - -y -END_OF_INPUT - -# Clone and install Wii-U Pro Controller Support -git clone https://github.com/SumolX/libwupc.git && \ -cp -a libwupc/include/wupc /opt/devkitpro/portlibs/ppc/include/ && \ -cp -a libwupc/lib/* /opt/devkitpro/portlibs/ppc/lib/ - -# Clone and install portlibs compatible ppc VPX development files -git clone https://github.com/SumolX/portlibs-ppc-libvpx.git -cp -a portlibs-ppc-libvpx/include/* /opt/devkitpro/portlibs/ppc/include/ && \ -cp -a portlibs-ppc-libvpx/lib/* /opt/devkitpro/portlibs/ppc/lib/ diff --git a/.gitignore b/.gitignore index 9fdc28e02..3368bb93e 100644 --- a/.gitignore +++ b/.gitignore @@ -16,8 +16,6 @@ tools/bin/.wget-hsts tools/win-sdk/* !tools/win-sdk/win-sdk.7z tools/psp-sdk/* -tools/devkitpro/* -!tools/devkitpro/devkitPro.7z /openbor_vs engine/ios/Build **/.DS_Store diff --git a/CMakeLists.txt b/CMakeLists.txt index 5f9093cba..478a71a33 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,7 +6,6 @@ project(OpenBOR VERSION 4.0 LANGUAGES C) option(BUILD_WIN "Windows" OFF) option(BUILD_LINUX "Linux" OFF) option(BUILD_DARWIN "MacOS" OFF) -option(BUILD_WII "Nintendo Wii Console" OFF) # Backends option(TARGET_ARCH "[X86,AMD64,ARM64,UNIVERSAL]" OFF) @@ -73,7 +72,7 @@ add_executable(${PROJECT_NAME} ${SRC_FILES}) add_dependencies(${PROJECT_NAME} VersionInfo) # Auto-Detect -if(NOT (BUILD_WIN OR BUILD_LINUX OR BUILD_DARWIN OR BUILD_WII)) +if(NOT (BUILD_WIN OR BUILD_LINUX OR BUILD_DARWIN)) if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") set(BUILD_DARWIN ON) message("Build target not specified, BUILD_DARWIN=ON") @@ -96,8 +95,6 @@ elseif(BUILD_DARWIN) include("cmake/macos.cmake") elseif(BUILD_LINUX) include("cmake/linux.cmake") -elseif(BUILD_WII) - include("cmake/wii.cmake") endif() # Include Optional Source Files diff --git a/COMPILING.md b/COMPILING.md index 24c227a9a..c691d3d7d 100644 --- a/COMPILING.md +++ b/COMPILING.md @@ -9,7 +9,6 @@ Within the root of the OpenBOR repository you will find CMakeLists.txt which con Linux (linux.cmake) Windows (windows.cmake, windows-finalize.cmake) Darwin (macos.cmake, macos-finalize.cmake) - Wii (wii.cmake) # Building Target Cmake provides various options for building a targets in general, however we are only going to focus on a subset of these options. Typically running the cmake command without addition parameters is enough for the configuration system to identify which host you are running on in order to build a native target. A few example are provided below to showcase how to configure and build a OpenBOR target. @@ -102,7 +101,6 @@ Using the build scripts provided in the repository we can now ensure that all su -rw-r--r-- 1 root root 1537 Apr 20 15:13 LICENSE.txt drwxr-xr-x 9 root root 288 Apr 21 01:24 LINUX -rw-r--r-- 1 root root 314 Apr 20 15:13 README.txt - drwxr-xr-x 7 root root 224 Apr 21 01:24 WII drwxr-xr-x 8 root root 256 Apr 21 01:24 WINDOWS -rw-r--r-- 1 root root 5871 Apr 20 15:13 translation.txt diff --git a/README.md b/README.md index 867445f4b..5877b8888 100644 --- a/README.md +++ b/README.md @@ -26,33 +26,20 @@ To find out more, stop into the OpenBOR community at [ChronoCrash.com](https://w * **2011 -** *[Sumo1X](https://github.com/SumolX)* retires from the OpenBOR Team, and hands management duties to [DCurrent (Damon Caskey)](https://github.com/DCurrent). -* **2017 -** OpenBOR repository migrates from SourceForge to Github. +* **2017 -** OpenBOR repository migrates from SourceForge to GitHub. * **2021 -** Development continues on OpenBOR 4.0, with various internal source cleanups, a more object centric script engine, and fixes for long standing issues. * **2024 -** After an extended development cycle, the first official 4.0 build drops. Development continues to refine and fill requests that did not make the initial 4.0 release deadline. -## Platforms -OpenBOR has a very modular and portable design inherited from Beats of Rage - several ports have been made available. +* **2026 -** Focus shifts to removing legacy console port cruft while refining engine architecture and build tools. The goal is to position OpenBOR as a powerful commercial option for beginners and advanced creators while staying enthusiast-friendly and royalty-free. -### Current -These platforms are actively supported and may be compiled with the latest OpenBOR engine. +## Platforms +OpenBOR currently supports the following platforms. * Android -* Windows * Linux -* Wii - -### Discontinued - -The following platforms are still available as legacy binaries but are no longer supported and may not be compatible with current iterations of OpenBOR. - -* PSP -* Dreamcast -* GP2X -* GP2X Wiz -* Mac OS X -* OpenDingux (Dingoo A320 & GCW-Zero) +* Windows ## OpenBOR Team @@ -61,16 +48,19 @@ The following platforms are still available as legacy binaries but are no longer #### [Damon Caskey](https://github.com/DCurrent) (2007-) OpenBOR project manager and site owner of the OpenBOR community. Primary contributions are core engine and scripting development, code cleanup, and organization. Main focus is keeping OpenBOR future proof and modular by replacing specialized hardcoding and overlap with generalized features that allow for more author creativity. -#### [Plombo](https://github.com/plombo) (2009-) -A developer who prefers to work on OpenBOR's supporting libraries and platform-specific backends. Known for maintaining the Wii port, writing the GPU-accelerated video code for Wii and OpenGL, and a few engine features. - #### [Malik](https://github.com/msmalik681) (2018-) Malik came to the team with a strong OpenBOR scripting background, and quickly established himself as a resident go-to for the Android Port. Malik dedicates himself to keeping the Android port of OpenBOR a commercially viable platform for authors who wish to sell their original IP projects. +#### [fgames9000](https://github.com/fgames9000) (2021-) +Known as Kratus in the OpenBOR community, creator of the amazing [Streets of Rage X](https://www.chronocrash.com/forum/resources/streets-of-rage-x-windows-android.274/) fan remake. Kratus is a highly respected community member known for scripting skills, game design, and assisting other members with projects. Main contributions are unit testing, advising, and bug fixes for engine logic and Linux port. + ### Former members and contributors +#### [Plombo](https://github.com/plombo) (2009-2024) +Developer who prefers to work on OpenBOR's supporting libraries and platform-specific backends. Known for maintaining the Wii port, writing the GPU-accelerated video code for Wii and OpenGL, and a few engine features. Contributed many powerful functionalities including alpha masks, control upgrades, and the PalApply tool. + #### [Douglas Baldan](https://github.com/dbaldan) (2018-2021) -Known as O'Ilusionista, Douglas was a highly respected administrator of the OpenBOR community and a prolific member of the Mugen scene. His professional background in graphic design brought a plethora of graphic and game development experience to the team. Citing personal reasons, Douglas officially retired from the OpenBOR team mid-2021. +Known as O'Ilusionista, Douglas is prolific figure in OpenBOR and Mugen communities. His professional background in graphic design brought a plethora of graphic and game development experience to the team. Citing personal reasons, Douglas officially retired from the OpenBOR team mid-2021 but continues as an active community member and behind the scenes contributor. #### [Wasin Thonkaew](https://github.com/haxpor) (2019) Haxpor in the forums, a Linux centric developer who works hard to ensure our penguin crowd has the proper tools for development and underlying libraries of OpenBOR remain compatible to compile for mobile platforms. diff --git a/build-all.sh b/build-all.sh index 8401daccf..83c3b6134 100755 --- a/build-all.sh +++ b/build-all.sh @@ -10,8 +10,3 @@ cmake -DBUILD_LINUX=ON -DTARGET_ARCH="ARM64" -S . -B build.lin.arm64 && cmake -- rm -rf build.win.x86 build.win.amd64 cmake -DBUILD_WIN=ON -DTARGET_ARCH="x86" -S . -B build.win.x86 && cmake --build build.win.x86 --config Release -- -j `nproc` || exit 1 cmake -DBUILD_WIN=ON -DTARGET_ARCH="AMD64" -S . -B build.win.amd64 && cmake --build build.win.amd64 --config Release -- -j `nproc` || exit 1 - -# Nintendo Wii -rm -rf build.wii; mkdir build.wii && cd build.wii && \ -$DEVKITPRO/portlibs/wii/bin/powerpc-eabi-cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_WII=ON .. || exit 1 -make -j `nproc` || exit 1; cd .. diff --git a/cmake/wii.cmake b/cmake/wii.cmake deleted file mode 100644 index 5f8e47008..000000000 --- a/cmake/wii.cmake +++ /dev/null @@ -1,43 +0,0 @@ -if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "NintendoWii") - message(NOTICE "Invoke DevkitPro's cmake utility directly:") - message(NOTICE "\t$ENV{DEVKITPRO}/portlibs/wii/bin/powerpc-eabi-cmake -DBUILD_WII=ON ..\n") -endif() - -set(COMMON_COMPILER_FLAGS "${COMMON_COMPILER_FLAGS} -Wno-maybe-uninitialized -Wno-stringop-truncation -Wno-enum-int-mismatch -Wno-array-bounds -Wno-stringop-overflow -Wno-address") - -set(USE_TREMOR ON) -set(USE_WEBM ON) - -add_definitions( - -DWII -) - -file(GLOB SRC_WII "engine/wii/*.c" "engine/wii/*.h") -target_sources(${PROJECT_NAME} PRIVATE ${SRC_WII}) - -target_include_directories(${PROJECT_NAME} PRIVATE - engine/wii - $ENV{DEVKITPRO}/portlibs/ppc/include -) - -target_link_libraries(${PROJECT_NAME} PUBLIC - wupc - wiiuse - bte - fat - asnd - ogc -) - -# DevkitPro -ogc_create_dol(${PROJECT_NAME}) - -# Distribution Preperation -add_custom_command(TARGET ${PROJECT_NAME} - POST_BUILD - COMMAND ${CMAKE_COMMAND} -E make_directory ../engine/releases/WII/Logs - COMMAND ${CMAKE_COMMAND} -E make_directory ../engine/releases/WII/Paks - COMMAND ${CMAKE_COMMAND} -E make_directory ../engine/releases/WII/Saves - COMMAND ${CMAKE_COMMAND} -E make_directory ../engine/releases/WII/ScreenShots - COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_NAME}.dol ../engine/releases/WII/boot.dol -) diff --git a/engine/Makefile b/engine/Makefile index 4583f7ba0..8da27f8ae 100644 --- a/engine/Makefile +++ b/engine/Makefile @@ -165,24 +165,6 @@ BUILD_DEBUG = 1 endif endif -ifdef BUILD_WII -TARGET = $(VERSION_NAME).elf -TARGET_MAP = $(TARGET).map -TARGET_FINAL = boot.dol -TARGET_PLATFORM = WII -BUILD_TREMOR = 1 -BUILD_WEBM = 1 -BUILD_ELM = 1 -BUILDING = 1 -INCLUDES = $(DEVKITPRO)/portlibs/ppc/include \ - $(DEVKITPRO)/libogc/include -LIBRARIES = $(DEVKITPRO)/portlibs/ppc/lib \ - $(DEVKITPRO)/libogc/lib/wii -ifeq ($(BUILD_WII), 0) -BUILD_DEBUG = 1 -endif -endif - STRIP = cp $(TARGET) $(TARGET_FINAL) ifndef BUILD_DEBUG ifndef NO_STRIP @@ -195,9 +177,6 @@ endif ifdef BUILD_DARWIN STRIP = $(PREFIX)strip $(TARGET) -o $(TARGET_FINAL) endif -ifdef BUILD_WII -ELF2DOL = elf2dol $< $@ -endif endif endif @@ -206,10 +185,6 @@ endif # Directories #---------------------------------------------------------------------------------------------------- -ifdef BUILD_WII -INCS += wii -endif - ifdef BUILD_SDL INCS += sdl endif @@ -350,17 +325,6 @@ GAME_CONSOLE = psp/control/control.o psp/pspport.o endif - -ifdef BUILD_WII -GAME_CONSOLE = wii/control.o \ - wii/sblaster.o \ - wii/timer.o \ - wii/video.o \ - wii/threads.o \ - wii/menu.o \ - wii/wiiport.o -endif - ifdef BUILD_VITA GAME_CONSOLE = vita/control.o \ vita/sblaster.o \ @@ -474,14 +438,6 @@ ifdef BUILD_PANDORA CFLAGS += -DLINUX endif - -ifdef BUILD_WII -CFLAGS += -DCACHE_BACKGROUNDS -DREVERSE_COLOR -D__ppc__ $(MACHDEP) -Wl,-Map,$(TARGET_MAP),-wrap,wiiuse_register -# This allows to compile with DevkitPPC r29 and above. -CFLAGS += -U__INT32_TYPE__ -U __UINT32_TYPE__ -D__INT32_TYPE__=int -endif - - ifdef BUILD_VITA CFLAGS += -DCACHE_BACKGROUNDS -Wl,-q endif @@ -578,12 +534,6 @@ ifdef BUILD_PTHREAD LIBS += -lpthread endif - -ifdef BUILD_WII -LIBS += -lwupc -lwiiuse -lbte -lfat -lasnd -logc -endif - - ifdef BUILD_VITA LIBS += -lvita2d -lSceKernel_stub -lSceDisplay_stub -lSceGxm_stub \ -lSceSysmodule_stub -lSceCtrl_stub -lScePgf_stub \ @@ -664,30 +614,6 @@ $(TARGET_FINAL) : $(TARGET) @echo $(TARGET_FINAL) is now ready! endif -#---------------------------------------------------------------------------------------------------- -# Rules to manage Files and Libraries for Wii -#---------------------------------------------------------------------------------------------------- - -ifdef BUILD_WII -SOURCES = $(INCS) -include $(DEVKITPPC)/wii_rules -all : $(TARGET) $(TARGET_FINAL) - @echo -%.o : %.c - @echo Compiling $(TARGET_PLATFORM) Port: $<... - @$(CC) $(CFLAGS) -c $< -o $@ -$(TARGET) : $(OBJS) $(RES) - @echo - @echo Linking $(TARGET_PLATFORM) Port: $(TARGET)... - @$(CC) $(CFLAGS) -o $(TARGET) $(OBJS) $(TARGET_RESOURCE) $(LIBS) -$(TARGET_FINAL) : $(TARGET) - @echo Stripping $(TARGET_PLATFORM) Port: $(TARGET_FINAL)... - @$(ELF2DOL) - @echo - @echo Completed $(TARGET_PLATFORM) Port! - @echo $(TARGET_FINAL) is now ready! -endif - #---------------------------------------------------------------------------------------------------- # Rules to manage Files and Libraries for Vita #---------------------------------------------------------------------------------------------------- @@ -727,7 +653,6 @@ all: @echo @echo make BUILD_PSP=1 @echo make BUILD_PS2=1 - @echo make BUILD_WII=1 @echo make BUILD_WIN=1 @echo make BUILD_PANDORA=1 @echo make BUILD_LINUX=1 diff --git a/engine/build.sh b/engine/build.sh index 063b99269..d5a1fb57c 100755 --- a/engine/build.sh +++ b/engine/build.sh @@ -50,11 +50,7 @@ if test -e "releases/WINDOWS/OpenBOR/OpenBOR.exe"; then echo "Windows Platform Failed To Build!" exit 1 fi - if ! test -e "releases/WII/OpenBOR/boot.dol"; then - echo "Wii Platform Failed To Build!" - exit 1 - fi - + if test -e "releases/LINUX/OpenBOR/OpenBOR"; then cd ../tools/borpak/source/ . build.sh lin @@ -174,30 +170,6 @@ function windows { fi } -# Wii Environment && Compile -function wii { - export PATH=$OLD_PATH - . ./environ.sh 7 - if test $DEVKITPPC; then - make clean BUILD_WII=1 - make BUILD_WII=1 - if test -f "./boot.dol"; then - if test ! -e "./releases/WII" ; then - mkdir ./releases/WII - mkdir ./releases/WII/OpenBOR - mkdir ./releases/WII/OpenBOR/Logs - mkdir ./releases/WII/OpenBOR/Paks - mkdir ./releases/WII/OpenBOR/Saves - mkdir ./releases/WII/OpenBOR/ScreenShots - fi - mv boot.dol ./releases/WII/OpenBOR/ - cp ./resources/meta.xml ./releases/WII/OpenBOR - cp ./resources/OpenBOR_Icon_128x48.png ./releases/WII/OpenBOR/icon.png - fi - make clean BUILD_WII=1 - fi -} - # Darwin Environment && Compile function darwin { export PATH=$OLD_PATH @@ -249,7 +221,6 @@ function build_all { linux_x86 linux_amd64 windows - wii darwin android fi @@ -263,7 +234,6 @@ function print_help { echo " 0 = Distribute" echo " 4 = Linux (x86, amd64) Example: $0 4 amd64" echo " 5 = Windows" - echo " 7 = Wii" echo " all = build for all applicable targets" echo "-------------------------------------------------------" echo "Example: $0 10" @@ -286,11 +256,6 @@ case $1 in windows ;; - 7) - version - wii - ;; - ?) version print_help diff --git a/engine/environ.sh b/engine/environ.sh index 80501fd4d..21e6272d7 100755 --- a/engine/environ.sh +++ b/engine/environ.sh @@ -304,60 +304,6 @@ case $1 in fi ;; -############################################################################ -# # -# Wii Environment # -# # -############################################################################ -7) - if test -e "/opt/devkitpro"; then - export DEVKITPRO=/opt/devkitpro - export DEVKITPPC=$DEVKITPRO/devkitPPC - export PATH=$PATH:$DEVKITPPC/bin - elif test -e "c:/devkitpro"; then - export DEVKITPRO=c:/devkitpro - export DEVKITPPC=$DEVKITPRO/devkitPPC - export PATH=$PATH:$DEVKITPPC/bin - elif [ `echo $HOST_PLATFORM | grep -E "windows|CYGWIN"` ]; then - - if [ ! -f "../tools/devkitpro/devkitpro.7z" ]; then - echo "-------------------------------------------------------" - echo " WII SDK File - Not Found, Downloading SDK!" - echo "-------------------------------------------------------" - wget https://github.com/DCurrent/openbor/raw/ecce29b95700468aa3401915625dac2d56e4ca60/tools/devkitpro/devkitPro.7z -O ../tools/devkitpro/devkitpro.7z - echo - echo "-------------------------------------------------------" - echo " WII SDK File - Download Has Completed!" - echo "-------------------------------------------------------" - fi - - if [ ! -d "../tools/devkitpro/devkitPPC" ]; then - echo "-------------------------------------------------------" - echo " WII SDK - Not Found, Installing SDK!" - echo "-------------------------------------------------------" - ../tools/7-Zip/7za.exe x -y ../tools/devkitpro/devkitpro.7z -o../tools/devkitpro/ - echo - echo "-------------------------------------------------------" - echo " WII SDK - Installation Has Completed!" - echo "-------------------------------------------------------" - fi - HOST_PLATFORM="SVN"; - export DEVKITPRO=../tools/devkitpro - export DEVKITPPC=$DEVKITPRO/devkitPPC - export PATH=$TOOLS:$DEVKITPPC/bin - fi - if test $DEVKITPPC; then - echo "-------------------------------------------------------" - echo " WII SDK ($HOST_PLATFORM) Environment Loaded!" - echo "-------------------------------------------------------" - else - echo "-------------------------------------------------------" - echo " ERROR - WII Environment Failed" - echo " SDK Installed?" - echo "-------------------------------------------------------" - fi - ;; - ############################################################################ # # # OpenDingux Environment # @@ -467,7 +413,6 @@ case $1 in echo " 4 = Linux" echo " 5 = Windows" echo " 6 = Dreamcast" - echo " 7 = Nintendo Wii" echo " 8 = OpenDingux" echo " 9 = Wiz" echo " 10 = Darwin" diff --git a/engine/ide/codeblocks/OpenBOR.Windows.cbp b/engine/ide/codeblocks/OpenBOR.Windows.cbp index 6fe7ba113..80be2a417 100644 --- a/engine/ide/codeblocks/OpenBOR.Windows.cbp +++ b/engine/ide/codeblocks/OpenBOR.Windows.cbp @@ -692,33 +692,6 @@