build: Fix build

This commit is contained in:
robshape 2023-04-14 22:21:55 +02:00
parent 6373955e86
commit 540a30f719
9 changed files with 63 additions and 105 deletions

22
.gitignore vendored
View file

@ -1,14 +1,16 @@
.DS_Store build/
cores/output/
build cores/src/
cores/src private/
cores/output releases/
private src/boot/output/
releases
src/boot/output
*.dtb
*.elf
*.o *.o
*.so *.so
*.elf
*.dtb
*.zip *.zip
.build
.DS_Store
rg35xx-toolchain.tar.xz

View file

@ -6,7 +6,9 @@ top of MinUI.
![MinUI](./github/minui-menu-gbc.png) ![MinUI](./github/minui-menu-gbc.png)
## MinUI features ## Features
### MinUI features
- Simple launcher, simple SD card - Simple launcher, simple SD card
- No settings or configuration - No settings or configuration
@ -33,11 +35,11 @@ top of MinUI.
You can [grab the latest version here](https://github.com/shauninman/union-minui/releases). You can [grab the latest version here](https://github.com/shauninman/union-minui/releases).
## FinUI additional features ### Additional FinUI features
- -
## Installation guide ## Installation
The following section explains how to install MinUI using macOS, without having to The following section explains how to install MinUI using macOS, without having to
download any additional tools. download any additional tools.
@ -54,31 +56,41 @@ for the app `Terminal.app`
### Install MinUI ### Install MinUI
1. Connect your microSD card to your Mac 1. Connect your microSD card to your Mac
2. Start the app `Terminal` 1. Start the app `Terminal`
3. Run the command `diskutil list` and identify your microSD by looking at the `SIZE` 1. Run the command `diskutil list` and identify your microSD by looking at the `SIZE`
column. It is `/dev/disk4` in this example. column. It is `/dev/disk4` in this example.
4. Run the command `diskutil unmountDisk /dev/disk4` 1. Run the command `diskutil unmountDisk /dev/disk4`
5. Unzip the RG35XX firmware to your desktop and then run the command `cd ~/Desktop` 1. Unzip the RG35XX firmware to your desktop and then run the command `cd ~/Desktop`
in the Terminal in the Terminal
6. Run the command `sudo dd bs=1m if=35XX-64GB230309EN.IMG of=/dev/disk4` to flash 1. Run the command `sudo dd bs=1m if=35XX-64GB230309EN.IMG of=/dev/disk4` to flash
the firmware onto your microSD. Enter your user account password if prompted. Wait. the firmware onto your microSD. Enter your user account password if prompted. Wait.
7. Run the command `diskutil list` again and identify the largest partition on your 1. Run the command `diskutil list` again and identify the largest partition on your
microSD by looking at the `SIZE` column. It is `/dev/disk4s4` in this example. Note microSD by looking at the `SIZE` column. It is `/dev/disk4s4` in this example. Note
that it differs from the previous path! that it differs from the previous path!
8. Run `sudo diskutil eraseVolume FAT32 ROMS /dev/disk4s4` to format that partition 1. Run `sudo diskutil eraseVolume FAT32 ROMS /dev/disk4s4` to format that partition
as `FAT32` with the name `ROMS`. Enter your user account password if prompted. Wait. as `FAT32` with the name `ROMS`. Enter your user account password if prompted. Wait.
9. You should now have a `misc` and a `ROMS` disk connected to your Mac. If you 1. You should now have a `misc` and a `ROMS` disk connected to your Mac. If you
don't then try reconnecting your microSD card to your Mac. don't then try reconnecting your microSD card to your Mac.
10. Unzip the MinUI release to your desktop 1. Unzip the MinUI release to your desktop
11. Copy `dmenu.bin` to the root of the `misc` disk. Copy `MinUI.zip` and the `Bios`, 1. Copy `dmenu.bin` to the root of the `misc` disk. Copy `MinUI.zip` and the `Bios`,
`Roms`, `Saves` folders to the root of the `ROMS` disk. Optionally, follow the additional `Roms`, `Saves` folders to the root of the `ROMS` disk. Optionally, follow the additional
instructions in the MinUI README if you wish. instructions in the MinUI README if you wish.
12. Finally, run `dot_clean -m /Volumes/misc` and `dotclean -m /Volumes/ROMS` to 1. Finally, run `dot_clean -m /Volumes/misc` and `dotclean -m /Volumes/ROMS` to
remove any dot-underscore files created by macOS on your microSD. remove any dot-underscore files created by macOS on your microSD.
Done. Insert your microSD to your RG35XX and boot it up! Done. Insert your microSD to your RG35XX and boot it up!
## FinUI TODO ## Development
### Prerequisites
- [Docker Desktop](https://docker.com/products/docker-desktop)
### Build project
Run `./start-toolchain.sh` and then `make all` in the Docker container shell.
### TODO
- Add "mark as finished" OR "add as favorite" to menu - Add "mark as finished" OR "add as favorite" to menu
- Improve battery capacity readings (2100 mAh, 2600 mAh, 3500 mAh) - Improve battery capacity readings (2100 mAh, 2600 mAh, 3500 mAh)
@ -87,7 +99,6 @@ Done. Insert your microSD to your RG35XX and boot it up!
- Adjust recently played count - Adjust recently played count
- Adjust overclocking - Adjust overclocking
- Include extras in release by default - Include extras in release by default
- Move toolchain to repo: <https://github.com/shauninman/union-rg35xx-toolchain>
- Release using GitHub action: <https://github.com/JoeStaff/devilutionX/commit/a0fe502e70767ca8e2921d5580d4d4dec9e15cc1> - Release using GitHub action: <https://github.com/JoeStaff/devilutionX/commit/a0fe502e70767ca8e2921d5580d4d4dec9e15cc1>
- Automate installation guide - Automate installation guide

View file

@ -1,7 +1,7 @@
# this logic was broken out from picoarch's all-in-one makefile # this logic was broken out from picoarch's all-in-one makefile
CORES = fceumm gambatte gpsp pcsx_rearmed picodrive snes9x2005_plus CORES = fceumm gambatte gpsp pcsx_rearmed picodrive snes9x2005_plus
CORES+= beetle-pce-fast beetle-vb fake-08 mednafen_supafaust mgba pokemini # extras CORES+= beetle-pce-fast beetle-vb mednafen_supafaust mgba pokemini # extras
############################### ###############################
@ -19,10 +19,6 @@ beetle-pce-fast_CORE = mednafen_pce_fast_libretro.so
beetle-vb_REPO = https://github.com/libretro/beetle-vb-libretro beetle-vb_REPO = https://github.com/libretro/beetle-vb-libretro
beetle-vb_CORE = mednafen_vb_libretro.so beetle-vb_CORE = mednafen_vb_libretro.so
fake-08_REPO = https://github.com/jtothebell/fake-08
fake-08_CORE = fake08_libretro.so
fake-08_BUILD_PATH = fake-08/platform/libretro
fceumm_REPO = https://github.com/libretro/libretro-fceumm fceumm_REPO = https://github.com/libretro/libretro-fceumm
gambatte_REPO = https://github.com/libretro/gambatte-libretro gambatte_REPO = https://github.com/libretro/gambatte-libretro

View file

@ -1,34 +0,0 @@
diff --git forkSrcPrefix/platform/libretro/Makefile forkDstPrefix/platform/libretro/Makefile
index 420f9b7ae42d95b0dee150bd02a5ab5a854a7f77..c757dfa3dca2ecf627a91078b7b8ddf47aff4161 100644
--- forkSrcPrefix/platform/libretro/Makefile
+++ forkDstPrefix/platform/libretro/Makefile
@@ -123,6 +123,16 @@ else ifeq ($(platform), miyoomini)
CXXFLAGS += -marm -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -march=armv7ve
fpic := -fPIC
SHARED := -shared -Wl,--version-script=link.T
+else ifeq ($(platform), rg35xx)
+ TARGET := $(TARGET_NAME)_libretro.so
+ CC = $(CROSS_COMPILE)gcc
+ CXX = $(CROSS_COMPILE)g++
+ AR = $(CROSS_COMPILE)ar
+ STRIP = $(CROSS_COMPILE)strip
+ CXXFLAGS += -marm -mtune=cortex-a9 -mfpu=neon-fp16 -mfloat-abi=hard -march=armv7-a
+ CXXFLAGS += -fomit-frame-pointer -ffast-math -fno-common -ftree-vectorize -funswitch-loops
+ fpic := -fPIC
+ SHARED := -shared -Wl,--version-script=link.T
else ifeq ($(platform), gcw0)
TARGET := $(TARGET_NAME)_libretro_gcw0.so
diff --git forkSrcPrefix/platform/libretro/libretro.cpp forkDstPrefix/platform/libretro/libretro.cpp
index 927ea8d4b8d1658a1d7521fe7e9abcbdede0ba5f..55fdd37925b26ac362ab2ad99c0739a405727b56 100644
--- forkSrcPrefix/platform/libretro/libretro.cpp
+++ forkDstPrefix/platform/libretro/libretro.cpp
@@ -463,6 +463,7 @@ EXPORT bool retro_load_game(struct retro_game_info const *info)
}
_vm->QueueCartChange(info->path);
+ _vm->UpdateAndDraw();
return true;
}

View file

@ -77,7 +77,6 @@ bundle:
cp ./cores/output/snes9x2005_plus_libretro.so ./build/SYSTEM/rg35xx/cores cp ./cores/output/snes9x2005_plus_libretro.so ./build/SYSTEM/rg35xx/cores
# extras # extras
cp ./cores/output/fake08_libretro.so ./build/EXTRAS/Emus/rg35xx/P8.pak
cp ./cores/output/mgba_libretro.so ./build/EXTRAS/Emus/rg35xx/MGBA.pak cp ./cores/output/mgba_libretro.so ./build/EXTRAS/Emus/rg35xx/MGBA.pak
cp ./cores/output/mgba_libretro.so ./build/EXTRAS/Emus/rg35xx/SGB.pak cp ./cores/output/mgba_libretro.so ./build/EXTRAS/Emus/rg35xx/SGB.pak
cp ./cores/output/mednafen_pce_fast_libretro.so ./build/EXTRAS/Emus/rg35xx/PCE.pak cp ./cores/output/mednafen_pce_fast_libretro.so ./build/EXTRAS/Emus/rg35xx/PCE.pak
@ -118,4 +117,3 @@ clean:
cd ./cores && make clean cd ./cores && make clean
cd ./src/clock && make clean cd ./src/clock && make clean
cd ./other/DinguxCommander && make clean cd ./other/DinguxCommander && make clean

View file

@ -1,7 +0,0 @@
bind Up = UP
bind Down = DOWN
bind Left = LEFT
bind Right = RIGHT
bind A Button = A
bind B Button = B
bind Start = START

View file

@ -1,14 +0,0 @@
#!/bin/sh
EMU_EXE=fake08
CORES_PATH=$(dirname "$0")
###############################
EMU_TAG=$(basename "$(dirname "$0")" .pak)
ROM="$1"
mkdir -p "$BIOS_PATH/$EMU_TAG"
mkdir -p "$SAVES_PATH/$EMU_TAG"
HOME="$USERDATA_PATH"
cd "$HOME"
minarch.elf "$CORES_PATH/${EMU_EXE}_libretro.so" "$ROM" &> "$LOGS_PATH/$EMU_TAG.txt"

7
start-toolchain.sh Executable file
View file

@ -0,0 +1,7 @@
#!/bin/bash
set -euo pipefail
git submodule init
git submodule update
cd toolchain
make shell

View file

@ -2,7 +2,7 @@
.PHONY: clean .PHONY: clean
TOOLCHAIN_NAME=rg35xx-toolchain-new TOOLCHAIN_NAME=rg35xx-toolchain-new
WORKSPACE_DIR := $(shell pwd)/workspace WORKSPACE_DIR := $(shell cd .. && pwd)
CONTAINER_NAME=$(shell docker ps -f "ancestor=$(TOOLCHAIN_NAME)" --format "{{.Names}}") CONTAINER_NAME=$(shell docker ps -f "ancestor=$(TOOLCHAIN_NAME)" --format "{{.Names}}")
BOLD=$(shell tput bold) BOLD=$(shell tput bold)
@ -10,7 +10,6 @@ NORM=$(shell tput sgr0)
.build: Dockerfile .build: Dockerfile
$(info $(BOLD)Building $(TOOLCHAIN_NAME)...$(NORM)) $(info $(BOLD)Building $(TOOLCHAIN_NAME)...$(NORM))
mkdir -p ./workspace
docker build -t $(TOOLCHAIN_NAME) . docker build -t $(TOOLCHAIN_NAME) .
touch .build touch .build