Merge branch 'Gronis-main'

This commit is contained in:
Lorenzooone 2023-10-12 02:02:13 +02:00
commit 597a4da1f8
2 changed files with 64 additions and 0 deletions

53
Dockerfile Normal file
View File

@ -0,0 +1,53 @@
## blocksnds and agbabi required different versions of arm-none-eabi for some
## reason. Therefore we use a multistage docker build
FROM devkitpro/devkitarm as base
RUN apt-get install -y build-essential
################################################################################
### Build agbabi ###
################################################################################
FROM base as agbabi
RUN apt-get install -y cmake gcc-arm-none-eabi
RUN git clone https://github.com/felixjones/agbabi && \
cd agbabi && \
git checkout v2.1.4 && \
cmake -S . -DCMAKE_TOOLCHAIN_FILE=cross/agb.cmake -B build && \
cmake --build build && \
cmake --install build
###############################################################################
### Build blocksds required for NDS ###
###############################################################################
FROM base as blocksds
#### Reference: https://github.com/blocksds/sdk/blob/master/docker/Dockerfile
RUN apt-get install -y libfreeimage-dev
RUN mkdir -p /opt/wonderful/ && \
export ARCH=$(lscpu | grep -oP 'Architecture:\s*\K.+') && \
curl -SL https://wonderful.asie.pl/bootstrap/wf-bootstrap-${ARCH}.tar.gz | tar -xzf - -C /opt/wonderful/
ENV PATH /opt/wonderful/toolchain/gcc-arm-none-eabi/bin/:/opt/wonderful/bin:$PATH
RUN cd etc && \
ln -sf ../proc/self/mounts mtab && \
wf-pacman -Syu --noconfirm && \
wf-pacman -S --noconfirm toolchain-gcc-arm-none-eabi
RUN git clone --recurse-submodules https://github.com/blocksds/sdk.git && \
cd sdk && \
git checkout v0.8.1 && \
BLOCKSDS=$PWD make -j`nproc` && \
mkdir /opt/blocksds/ && sudo chown $USER:$USER /opt/blocksds && \
mkdir /opt/blocksds/external && \
make install
COPY --from=agbabi /usr/local/ /usr/local/
ENV LIBAGBABI=/usr/local
WORKDIR pokemon_gen3_to_genx
CMD make

View File

@ -83,3 +83,14 @@ Everything else, and the programming code, is governed by the MIT license.
## Example
[This is a Video showing how to use the homebrew](https://youtu.be/3-EKe_lQREY).
## Building
The easiest is to build with docker, since you don't have to install a bunch of tools and libraries
```bash
docker build . -t pokemon_gen3_to_genx
# Build GBA rom
docker run --rm -it -v `pwd`:/pokemon_gen3_to_genx pokemon_gen3_to_genx
# Build NDS rom
docker run --rm -it -v `pwd`:/pokemon_gen3_to_genx pokemon_gen3_to_genx make --file Makefile.arm9
```