diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 1504ede58d8..b9431173807 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -19,4 +19,4 @@ RUN sudo ./install-devkitpro-pacman RUN sudo dkp-pacman -Syu --noconfirm WORKDIR /etc RUN sudo ln -sf /proc/self/mounts mtab -RUN sudo dkp-pacman -S --noconfirm gamecube-dev wii-dev \ No newline at end of file +RUN sudo dkp-pacman -S --noconfirm gamecube-dev wii-dev diff --git a/Makefile b/Makefile index 450ced509b3..fe9759de1c3 100644 --- a/Makefile +++ b/Makefile @@ -180,7 +180,7 @@ $(ELF_SHIFT): $(DOL) $(DOL_SHIFT): $(ELF_SHIFT) | tools $(ELF2DOL) $< $@ $(SDATA_PDHR) $(SBSS_PDHR) $(TARGET_COL) @cp -v $(DOL_SHIFT) $(DOL) - + shift: dirs $(DOL_SHIFT) game: shift diff --git a/README.md b/README.md index 7816d0cdc20..cea9ab8b7ff 100644 --- a/README.md +++ b/README.md @@ -22,23 +22,9 @@ Project Setup git clone https://github.com/zeldaret/tp ``` -2. Setup compiler directory +2. Place a copy of NTSC-U GCN Twilight Princess in the root directory and call it `gz2e01.iso` (find this on your own) -```bash -mkdir -p tools/mwcc_compiler/ -``` - -3. Download [GC_WII_COMPILERS.zip](https://cdn.discordapp.com/attachments/727918646525165659/917185027656286218/GC_WII_COMPILERS.zip). - -4. Extract `GC_WII_COMPILERS.zip` into the previously created `mwcc_compiler` directory - -```bash -unzip GC_WII_COMPILERS.zip "GC/*" -d tools/mwcc_compiler/ && mv tools/mwcc_compiler/GC/* tools/mwcc_compiler/ && rmdir tools/mwcc_compiler/GC -``` - -5. Place a copy of NTSC-U GCN Twilight Princess in the root directory and call it `gz2e01.iso` (find this on your own) - -6. Setup the project +3. Then run the setup script ```bash ./tp setup @@ -140,4 +126,4 @@ tp/ ├── include_link.mk # Makefiles to include in the main Makefile. ├── obj_files.mk # Object files to include in the main Makefile. └── tp # Bash script used to call the main tp python script in tools directory. -``` \ No newline at end of file +``` diff --git a/tools/requirements.txt b/tools/requirements.txt index 0fa5c69d632..6062e07974f 100644 --- a/tools/requirements.txt +++ b/tools/requirements.txt @@ -7,4 +7,7 @@ ansiwrap watchdog python-Levenshtein cxxfilt -pyelftools \ No newline at end of file +pyelftools +requests +zipfile +shutil \ No newline at end of file diff --git a/tools/tp.py b/tools/tp.py index 35ca7bb12a1..19c0869937d 100644 --- a/tools/tp.py +++ b/tools/tp.py @@ -28,6 +28,9 @@ try: import libarc import io import extract_game_assets + import requests + import zipfile + import shutil from rich.logging import RichHandler from rich.console import Console @@ -145,19 +148,29 @@ def setup(debug: bool, game_path: Path, tools_path: Path): sys.exit(1) # - text = Text("--- Patching compiler") + text = Text("--- Fetching compiler") text.stylize("bold magenta") CONSOLE.print(text) compilers = tools_path.joinpath("mwcc_compiler") if not compilers.exists() or not compilers.is_dir(): - LOG.error( - ( - f"Unable to find MWCC compilers: missing directory '{compilers}'\n" - f"Check the README for instructions on how to obtain the compilers" - ) - ) - sys.exit(1) + os.mkdir(compilers) + r = requests.get('https://cdn.discordapp.com/attachments/727918646525165659/917185027656286218/GC_WII_COMPILERS.zip') + z = zipfile.ZipFile(io.BytesIO(r.content)) + z.extractall(compilers) + gc_path = compilers.joinpath("GC") + + allfiles = os.listdir(gc_path) + for f in allfiles: + src_path = os.path.join(gc_path, f) + dst_path = os.path.join(compilers, f) + shutil.move(src_path, dst_path) + os.rmdir(gc_path) + + # + text = Text("--- Patching compiler") + text.stylize("bold magenta") + CONSOLE.print(text) c27 = compilers.joinpath("2.7") if not c27.exists() or not c27.is_dir():