diff --git a/BUILDING.md b/BUILDING.md new file mode 100644 index 00000000..55b70ea6 --- /dev/null +++ b/BUILDING.md @@ -0,0 +1,59 @@ +## Installing libraries on Linux/MacOS +1. Open a terminal +2. Install pip if not already installed +```sh +python3 -m ensurepip +``` +3. Clone the repo and `cd` into it +```sh +git clone https://github.com/snesrev/zelda3 +cd zelda3 +``` +4. Install requirements using pip +```sh +python3 -m pip install -r requirements.txt +``` +5. Install SDL2 +* Ubuntu/Debian `sudo apt install libsdl2-dev` +* Fedora Linux `sudo dnf install SDL2-devel` +* Arch Linux `sudo pacman -S sdl2` +* macOS: `brew install sdl2` (you can get homebrew [here](https://brew.sh/)) + +## Compiling on Linux/MacOS +1. Place your US ROM file named `zelda3.sfc` in `zelda3` +2. Compile +```sh +make +``` +
+ +Advanced make usage ... + + +```sh +make -j$(nproc) # run on all core +make clean all # clear gen+obj and rebuild +CC=clang make # specify compiler +``` +
+ +## Nintendo Switch + +You need [DevKitPro](https://devkitpro.org/wiki/Getting_Started) and [Atmosphere](https://github.com/Atmosphere-NX/Atmosphere) installed. + +```sh +(dkp-)pacman -S git switch-dev switch-sdl2 switch-tools +cd platform/switch +make # Add -j$(nproc) to build using all cores ( Optional ) +# You can test the build directly onto the switch ( Optional ) +nxlink -s zelda3.nro +``` + +## More Compilation Help + +Look at the wiki at https://github.com/snesrev/zelda3/wiki for more help. + +The ROM needs to be named `zelda3.sfc` and has to be from the US region with this exact SHA256 hash +`66871d66be19ad2c34c927d6b14cd8eb6fc3181965b6e517cb361f7316009cfb` + +In case you're planning to move the executable to a different location, please include the file `zelda3_assets.dat`. \ No newline at end of file diff --git a/README.md b/README.md index 14c8366f..bc409595 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ # Zelda3 + A reimplementation of Zelda 3. Our discord server is: https://discord.gg/AJJbJAzNNJ @@ -18,111 +19,21 @@ I got much assistance from spannerism's Zelda 3 JP disassembly and the other one ## Additional features -A bunch of features have been added that are not supported by the original game. Some of them are: - -Support for pixel shaders. - -Support for enhanced aspect ratios of 16:9 or 16:10. - -Higher quality world map. - -Support for MSU audio tracks. - -Secondary item slot on button X (Hold X in inventory to select). - -Switching current item with L/R keys. - -## How to Play: - -Option 1: Launcher by RadzPrower (windows only) https://github.com/ajohns6/Zelda-3-Launcher - -Option 2: Building it yourself - -Visit Wiki for more info on building the project: https://github.com/snesrev/zelda3/wiki - -## Installing Python & libraries on Windows (required for asset extraction steps) -1. Download [Python](https://www.python.org/ftp/python/3.11.1/python-3.11.1-amd64.exe) installer and install with "Add to PATH" checkbox checked -2. Open the command prompt -3. Type `python -m pip install --upgrade pip pillow pyyaml` and hit enter -4. Close the command prompt - -## Compiling on Windows with TCC (1mb Tiny C Compiler) -1. Download the project by clicking "Code > Download ZIP" on the github page -2. Extract the ZIP to your hard drive -3. Place the USA rom named `zelda3.sfc` in the root directory. -4. Double-click `extract_assets.bat` in the main dir to create `zelda3_assets.dat` in that same dir -5. Download [TCC](https://github.com/FitzRoyX/tinycc/releases/download/tcc_20221020/tcc_20221020.zip) and extract to the "\third_party" subfolder -6. Download [SDL2](https://github.com/libsdl-org/SDL/releases/download/release-2.26.3/SDL2-devel-2.26.3-VC.zip) and extract to the "\third_party" subfolder -7. Double-click `run_with_tcc.bat` in the main dir to create `zelda3.exe` in that same dir -8. Configure with `zelda3.ini` in the main dir - -## Compiling on Windows with Visual Studio (4.5gb IDE and compiler) -Same Steps 1-4 above
-8. Double-click `Zelda3.sln`
-9. Install the **Desktop development with C++** workload with the VS Installer if you don't have it already (it should prompt you to do this).
-10. Change "debug" to "release" in the top dropdown
-12. Choose "build > build Zelda3" in the menu to create `zelda3.exe` in the "/bin/release" subfolder
-13. Configure with `zelda3.ini` in the main dir
- -## Installing libraries on Linux/MacOS -1. Open a terminal -2. Install pip if not already installed -```sh -python3 -m ensurepip -``` -3. Clone the repo and `cd` into it -```sh -git clone https://github.com/snesrev/zelda3 -cd zelda3 -``` -4. Install requirements using pip -```sh -python3 -m pip install -r requirements.txt -``` -5. Install SDL2 -* Ubuntu/Debian `sudo apt install libsdl2-dev` -* Fedora Linux `sudo dnf install SDL2-devel` -* Arch Linux `sudo pacman -S sdl2` -* macOS: `brew install sdl2` (you can get homebrew [here](https://brew.sh/)) - -## Compiling on Linux/MacOS -1. Place your US ROM file named `zelda3.sfc` in `zelda3` -2. Compile -```sh -make -``` -
- -Advanced make usage ... - - -```sh -make -j$(nproc) # run on all core -make clean all # clear gen+obj and rebuild -CC=clang make # specify compiler -``` -
- -## Nintendo Switch - -You need [DevKitPro](https://devkitpro.org/wiki/Getting_Started) and [Atmosphere](https://github.com/Atmosphere-NX/Atmosphere) installed. - -```sh -(dkp-)pacman -S git switch-dev switch-sdl2 switch-tools -cd platform/switch -make # Add -j$(nproc) to build using all cores ( Optional ) -# You can test the build directly onto the switch ( Optional ) -nxlink -s zelda3.nro -``` - -## More Compilation Help - -Look at the wiki at https://github.com/snesrev/zelda3/wiki for more help. - -The ROM needs to be named `zelda3.sfc` and has to be from the US region with this exact SHA256 hash -`66871d66be19ad2c34c927d6b14cd8eb6fc3181965b6e517cb361f7316009cfb` - -In case you're planning to move the executable to a different location, please include the file `zelda3_assets.dat`. +A bunch of features have been added that are not supported by the original game. Some of them are: basic widescreen, shaders, 240 vertical res, hi-res mode7 map, MSU-1 audio, item switching, and over 30 bugfixes. + +## Building + +You must self-build for now. Steps for 64-bit Windows:
+(0) Download [Python](https://www.python.org/ftp/python/3.11.4/python-3.11.4-amd64.exe) and install with "Add to PATH" checked
+(1) Click the green button "Code > Download ZIP" on the github page and extract the ZIP
+(2) Place your USA rom named zelda3.sfc in that folder
+(3) Download [TCC](https://github.com/FitzRoyX/tinycc/releases/download/tcc_20230519/tcc_20230519.zip) and [SDL2](https://github.com/libsdl-org/SDL/releases/download/release-2.28.2/SDL2-devel-2.28.2-VC.zip) and extract each ZIP into the "third-party" subfolder
+(4) Double-click "get_python_libs.bat" in the main dir.
+(5) Double-click "extract_assets.bat" in the main dir. This will create zelda3_assets.dat.
+(6) Double-click "run_with_tcc.bat" in the main dir. This will create zelda3.exe and run it.
+(7) Configure with zelda3.ini in a text editor like notepad++
+ +For other platforms and compilers, see: https://github.com/snesrev/zelda3/blob/main/BUILDING.md ## Usage and controls diff --git a/get_python_libs.bat b/get_python_libs.bat new file mode 100644 index 00000000..d91d0268 --- /dev/null +++ b/get_python_libs.bat @@ -0,0 +1,3 @@ +@echo off + +python -m pip install --upgrade pip pillow pyyaml diff --git a/run_with_tcc.bat b/run_with_tcc.bat index a75c4ba8..c372109a 100644 --- a/run_with_tcc.bat +++ b/run_with_tcc.bat @@ -1,11 +1,11 @@ @echo off -set SDL2=third_party\SDL2-2.26.3 +set SDL2=third_party\SDL2-2.28.2 IF NOT EXIST "third_party\tcc\tcc.exe" ( ECHO: ECHO ERROR: third_party\tcc\tcc.exe doesn't exist. Please verify that you have put it in the right location. - ECHO Download it from https://github.com/FitzRoyX/tinycc/releases/download/tcc_20221020/tcc_20221020.zip + ECHO Download it from https://github.com/FitzRoyX/tinycc/releases/download/tcc_20230519/tcc_20230519.zip ECHO It needs to be the 64-bit version. ECHO: PAUSE @@ -17,7 +17,7 @@ IF NOT EXIST "third_party\tcc\tcc.exe" ( IF NOT EXIST "%SDL2%\lib\x64\SDL2.dll" ( ECHO: ECHO ERROR: SDL is not unzipped properly into %SDL2% - ECHO Download it from https://github.com/libsdl-org/SDL/releases/download/release-2.26.3/SDL2-devel-2.26.3-VC.zip + ECHO Download it from https://github.com/libsdl-org/SDL/releases/download/release-2.28.2/SDL2-devel-2.28.2-VC.zip ECHO: PAUSE EXIT /B 1