From 63872f6e619ea34a89eae1b9efe43d428fbd480f Mon Sep 17 00:00:00 2001 From: Robin Jones Date: Mon, 12 Dec 2016 23:52:36 +0000 Subject: [PATCH 1/9] Added automated scripts for building on windows 10 --- README.md | 2 +- build.cmd | 15 ++++++++ tools/setup-wsfl.cmd | 56 ++++++++++++++++++++++++++++ tools/setup-wsfl.sh | 87 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 159 insertions(+), 1 deletion(-) create mode 100644 build.cmd create mode 100644 tools/setup-wsfl.cmd create mode 100644 tools/setup-wsfl.sh diff --git a/README.md b/README.md index 8c9e910..470c48b 100644 --- a/README.md +++ b/README.md @@ -136,4 +136,4 @@ $ git clone https://github.com/parasyte/alt64.git $ make ``` -If it all worked, you will find `OS64.v64` in the `alt64` top-level directory. +If it all worked, you will find `OS64.v64` in the `alt64` bin directory. diff --git a/build.cmd b/build.cmd new file mode 100644 index 0000000..83d08bf --- /dev/null +++ b/build.cmd @@ -0,0 +1,15 @@ +@echo off +set env="/usr/local/libdragon" + +IF %1.==. GOTO default + +bash --verbose -c "export N64_INST=%env%; make %1" + +GOTO end + +:default +bash --verbose -c "export N64_INST=%env%; make" + +:end + +pause \ No newline at end of file diff --git a/tools/setup-wsfl.cmd b/tools/setup-wsfl.cmd new file mode 100644 index 0000000..a4495d2 --- /dev/null +++ b/tools/setup-wsfl.cmd @@ -0,0 +1,56 @@ +:::::::::::::::::::::::::::::::::::::::::::: +:: Elevate.cmd - Version 2 +:: Automatically check & get admin rights +:::::::::::::::::::::::::::::::::::::::::::: +@echo off +CLS +ECHO. +ECHO ============================= +ECHO Running Admin shell +ECHO ============================= + +:init +setlocal DisableDelayedExpansion +set "batchPath=%~0" +for %%k in (%0) do set batchName=%%~nk +set "vbsGetPrivileges=%temp%\OEgetPriv_%batchName%.vbs" +setlocal EnableDelayedExpansion + +:checkPrivileges +NET FILE 1>NUL 2>NUL +if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges ) + +:getPrivileges +if '%1'=='ELEV' (echo ELEV & shift /1 & goto gotPrivileges) +ECHO. +ECHO ************************************** +ECHO Invoking UAC for Privilege Escalation +ECHO ************************************** + +ECHO Set UAC = CreateObject^("Shell.Application"^) > "%vbsGetPrivileges%" +ECHO args = "ELEV " >> "%vbsGetPrivileges%" +ECHO For Each strArg in WScript.Arguments >> "%vbsGetPrivileges%" +ECHO args = args ^& strArg ^& " " >> "%vbsGetPrivileges%" +ECHO Next >> "%vbsGetPrivileges%" +ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1 >> "%vbsGetPrivileges%" +"%SystemRoot%\System32\WScript.exe" "%vbsGetPrivileges%" %* +exit /B + +:gotPrivileges +setlocal & pushd . +cd /d %~dp0 +if '%1'=='ELEV' (del "%vbsGetPrivileges%" 1>nul 2>nul & shift /1) + +:::::::::::::::::::::::::::: +::START +:::::::::::::::::::::::::::: +@echo on + +lxrun /install /y +bash -c "echo 'export N64_INST=/usr/local/libdragon' >> ~/.bashrc; source ~/.bashrc" +bash -c "chmod +x ./setup-wsfl.sh" +bash --verbose -c "source ./setup-wsfl.sh" + +::bash + +pause diff --git a/tools/setup-wsfl.sh b/tools/setup-wsfl.sh new file mode 100644 index 0000000..a4d6ee5 --- /dev/null +++ b/tools/setup-wsfl.sh @@ -0,0 +1,87 @@ +#!/bin/bash +# Download and install latest updates for the system [sudo req.] +apt-get update +apt-get -y upgrade + +# Install essential packages [sudo req.] +apt-get -y install build-essential git texinfo libc6 libgmp-dev libmpfr-dev libmpc-dev libpng-dev zlib1g-dev libtool autoconf + +# change to the users root directory +cd ~/ + +# add a system variable and make it perminent +# echo 'N64_INST=/usr/local/libdragon' >> /etc/environment +# echo 'export N64_INST=/usr/local/libdragon' >> ~/.bashrc +export N64_INST=/usr/local/libdragon +# source ~/.bashrc + +# Pull the latest libdragon source code and make a build directory +git clone https://github.com/dragonminded/libdragon.git + +# fix issues with the build scripts +sed -i -- 's|${N64_INST:-/usr/local}|/usr/local/libdragon|g' libdragon/tools/build +sed -i -- 's|--with-newlib|--with-newlib --with-system-zlib|g' libdragon/tools/build + +sed -i -- 's| -lpng|\nLDLIBS = -lpng|g' libdragon/tools/mksprite/Makefile +sed -i -- 's| -Werror| -w|g' libdragon/tools/mksprite/Makefile + +# make a build folder for libdragon +mkdir libdragon/build_gcc +cp libdragon/tools/build libdragon/build_gcc + +# run the build script (this will take a while! and if not sudo, will ask for password mid flow!) +cd libdragon/build_gcc +./build + +cd .. +# run the install script [sudo req] +make +make install +make tools +make tools-install + +cd .. +# install libmikmod +git clone https://github.com/parasyte/libmikmod-n64.git +cd libmikmod-n64 +mkdir build +make +make install + +cd .. +# install libmad-64 +git clone https://github.com/parasyte/libmad-n64.git +cd libmad-n64 +#$(N64_INST) converterd to $N64_INST below otherwise it will not run on WSFL +export PATH=$PATH:$N64_INST/bin +CFLAGS="-march=vr4300 -mtune=vr4300 -mno-extern-sdata" \ +LDFLAGS="-L$N64_INST/lib" LIBS="-lc -lnosys" \ +./configure --host=mips64-elf --disable-shared \ +--prefix=$N64_INST --enable-speed --enable-fpm=mips +make +make install + +cd .. +# install libyaml +git clone https://github.com/yaml/libyaml +cd libyaml +./bootstrap +#$(N64_INST) converterd to $N64_INST below otherwise it will not run on WSFL +export PATH=$PATH:$N64_INST/bin +CFLAGS="-std=gnu99 -march=vr4300 -mtune=vr4300" \ +LDFLAGS="-L$N64_INST/lib -Tn64ld.x" \ +LIBS="-ldragon -lc -ldragonsys -lnosys" \ +./configure --host=mips64-elf --prefix=$N64_INST +make +make install + +cd .. +# Install menu code (perhaps this script should be called from it instead? +# git clone https://github.com/networkfusion/alt64.git +# cd alt64 +# make + +# Perform cleanup +apt-get -y autoremove +apt-get autoclean + From 42b5d9e09e6ca1c9cb885cb5e5cd5a72c1e7457c Mon Sep 17 00:00:00 2001 From: Robin Jones Date: Tue, 13 Dec 2016 11:47:00 +0000 Subject: [PATCH 2/9] Updated readme renamed linux setup script --- README.md | 160 +++++++----------------- tools/{setup-wsfl.sh => setup-linux.sh} | 0 tools/setup-wsfl.cmd | 4 +- 3 files changed, 48 insertions(+), 116 deletions(-) rename tools/{setup-wsfl.sh => setup-linux.sh} (100%) diff --git a/README.md b/README.md index 470c48b..9d3fe18 100644 --- a/README.md +++ b/README.md @@ -1,36 +1,19 @@ -# alt64 +# Altra64 Alternative Everdrive64 menu - Kuroneko! - :\ /; _ - ; \___/ ; ; ; - ,:-"' `"-:. / ; - _ /,---. ,---.\ _ _; / - _:>(( | ) ( | ))<:_ ,-""_," - \````` `````/""""",-"" - '-.._ v _..-' ) - / ___ ____,.. \ - / / | | | ( \. \ - ctr / / | | | | \ \ - `" `" `" `" - - nyannyannyannyannyannyannyannyannyannyannyannyannyannyannyannyannyan - - -`alt64` is an open source menu for [Everdrive64](http://krikzz.com/). It was +`Altra64` is an open source menu for [Everdrive64](http://krikzz.com/) and is based on a fork of alt64 which was originally written by saturnu, and released on the [Everdrive64 forum](http://krikzz.com/forum/index.php?topic=816.0). ## Building -If you want to build the menu, you need an n64 toolchain. We'll use the -toolchain recommended by libdragon, with some updated versions. +If you want to build the menu, you need an n64 toolchain. When using windows 10, installation is totally automated through a script. -### Dependencies - -* [libdragon](https://github.com/parasyte/libdragon) +### Dependencies (installed automatically) +* Windows 10 (Aniversary Update or above) / Ubuntu 16.04 (or above) +* [libdragon](https://github.com/DragonMinded/libdragon) * [libmikmod-n64](https://github.com/parasyte/libmikmod-n64) * [libmad-n64](https://github.com/parasyte/libmad-n64) * [libyaml](http://pyyaml.org/wiki/LibYAML) @@ -39,101 +22,50 @@ toolchain recommended by libdragon, with some updated versions. *You may skip this step if it's already installed.* -Clone the `libdragon` repo and create a directory for the build. +Clone this `Altra64` repo to a directory of your choice. -```bash -$ git clone https://github.com/parasyte/libdragon.git -$ mkdir libdragon/build_gcc -$ cp libdragon/tools/build libdragon/build_gcc -$ cd libdragon/build_gcc +On Windows 10, browse to the tools directory and double click on setup-wsfl.cmd +On Ubuntu, browse to the tools directory and run the command ```chmod +x ./setup-linux.sh;source ./setup-linux.sh``` + + +### Build `Altra64` + +To build the Rom + +from the projects root directory, +On Windows 10 run ``` - -Modify the `build` script to set your installation path. Here is the default: - -```bash -# EDIT THIS LINE TO CHANGE YOUR INSTALL PATH! -export INSTALL_PATH=/usr/local/mips64-elf +> build ``` - -Build it! This can take an hour or more. - -```bash -$ ./build +on linux ``` - -### Configure your Environment - -Add the following environment variable to your `~/.bash_profile` or `~/.bashrc` -Be sure to use the same path that you configured in the build script! - -```bash -export N64_INST=/usr/local/mips64-elf -``` - -### Build `libdragon` - -Make sure you are in the `libdragon` top-level directory, and make sure `libpng` -is installed: - -```bash -$ make && make install -$ make tools && make tools-install -``` - -### Build `libmikmod` - -Clone `libmikmod-n64` and build: - -```bash -$ git clone https://github.com/parasyte/libmikmod-n64.git -$ cd libmikmod-n64 -$ make -$ make install -``` - -### Build `libmad-n64` - -Clone `libmad-n64` and build, be sure to set the path according to your -toolchain installation path: - -```bash -$ git clone https://github.com/parasyte/libmad-n64.git -$ cd libmad-n64 -$ export PATH=$PATH:$(N64_INST)/bin -$ CFLAGS="-march=vr4300 -mtune=vr4300 -mno-extern-sdata" \ - LDFLAGS="-L$(N64_INST)/lib" LIBS="-lc -lnosys" \ - ./configure --host=mips64-elf --disable-shared \ - --prefix=$(N64_INST) --enable-speed --enable-fpm=mips -$ make -$ make install -``` - -### Build `libyaml` - -Download libyaml 0.1.6 and build, be sure to set the path according to your -toolchain installation path: - -```bash -$ hg clone https://bitbucket.org/xi/libyaml -$ cd libyaml -$ hg update 0.1.6 -$ ./bootstrap -$ export PATH=$PATH:$(N64_INST)/bin -$ CFLAGS="-std=gnu99 -march=vr4300 -mtune=vr4300" \ - LDFLAGS="-L$(N64_INST)/lib -Tn64ld.x" \ - LIBS="-ldragon -lc -ldragonsys -lnosys" \ - ./configure --host=mips64-elf --prefix=$(N64_INST) -$ make -$ make install -``` - -### Build `alt64` - -Finally, we can clone `alt64` and build it! - -```bash -$ git clone https://github.com/parasyte/alt64.git $ make ``` -If it all worked, you will find `OS64.v64` in the `alt64` bin directory. +### Debug Build `Altra64` +To build the debug version of the Rom + +from the projects root directory, +On Windows 10 run +``` +> build debug +``` +on linux +``` +$ make debug +``` + +### Clean `Altra64` +Finally, we can clean the build objects from the project + +from the projects root directory, +On Windows 10 run +``` +> build clean +``` +on linux +``` +$ make clean +``` + +If it all worked, you will find `OS64.v64` in the `Altra64` bin directory. diff --git a/tools/setup-wsfl.sh b/tools/setup-linux.sh similarity index 100% rename from tools/setup-wsfl.sh rename to tools/setup-linux.sh diff --git a/tools/setup-wsfl.cmd b/tools/setup-wsfl.cmd index a4495d2..8092e8c 100644 --- a/tools/setup-wsfl.cmd +++ b/tools/setup-wsfl.cmd @@ -48,8 +48,8 @@ if '%1'=='ELEV' (del "%vbsGetPrivileges%" 1>nul 2>nul & shift /1) lxrun /install /y bash -c "echo 'export N64_INST=/usr/local/libdragon' >> ~/.bashrc; source ~/.bashrc" -bash -c "chmod +x ./setup-wsfl.sh" -bash --verbose -c "source ./setup-wsfl.sh" +bash -c "chmod +x ./setup-linux.sh" +bash --verbose -c "source ./setup-linux.sh" ::bash From 29753b1c27dc47cb7f33188e0e499e0050d93cd3 Mon Sep 17 00:00:00 2001 From: Robin Jones Date: Tue, 13 Dec 2016 13:09:11 +0000 Subject: [PATCH 3/9] update to gitignore --- .vs/slnx.sqlite | Bin 0 -> 69632 bytes README.md | 11 ++++++---- tools/reset-wsfl.cmd | 51 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+), 4 deletions(-) create mode 100644 .vs/slnx.sqlite create mode 100644 tools/reset-wsfl.cmd diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..d30483027b42524abb0c862460d9a27e7d06aa0e GIT binary patch literal 69632 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 2>NUL +if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges ) + +:getPrivileges +if '%1'=='ELEV' (echo ELEV & shift /1 & goto gotPrivileges) +ECHO. +ECHO ************************************** +ECHO Invoking UAC for Privilege Escalation +ECHO ************************************** + +ECHO Set UAC = CreateObject^("Shell.Application"^) > "%vbsGetPrivileges%" +ECHO args = "ELEV " >> "%vbsGetPrivileges%" +ECHO For Each strArg in WScript.Arguments >> "%vbsGetPrivileges%" +ECHO args = args ^& strArg ^& " " >> "%vbsGetPrivileges%" +ECHO Next >> "%vbsGetPrivileges%" +ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1 >> "%vbsGetPrivileges%" +"%SystemRoot%\System32\WScript.exe" "%vbsGetPrivileges%" %* +exit /B + +:gotPrivileges +setlocal & pushd . +cd /d %~dp0 +if '%1'=='ELEV' (del "%vbsGetPrivileges%" 1>nul 2>nul & shift /1) + +:::::::::::::::::::::::::::: +::START +:::::::::::::::::::::::::::: +@echo on + +lxrun /uninstall /full + +pause \ No newline at end of file From c1b65f83b2e89f7eaa779d03c3b9117692194e34 Mon Sep 17 00:00:00 2001 From: Robin Jones Date: Tue, 13 Dec 2016 13:09:36 +0000 Subject: [PATCH 4/9] changes to gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index f895559..727347b 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ *~ *.VC.db* *properties.json +/.vs From fbd29c8bad54994861d90502a85152587dbe00d4 Mon Sep 17 00:00:00 2001 From: Robin Jones Date: Tue, 13 Dec 2016 13:17:53 +0000 Subject: [PATCH 5/9] removed file uploaded by mistake --- .vs/slnx.sqlite | Bin 69632 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .vs/slnx.sqlite diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite deleted file mode 100644 index d30483027b42524abb0c862460d9a27e7d06aa0e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69632 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 Date: Tue, 13 Dec 2016 15:37:40 +0000 Subject: [PATCH 6/9] Added changes to work with VSCode on windows --- .gitignore | 1 + build.cmd | 25 ++++++++++++++----------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 727347b..209a154 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,4 @@ *.VC.db* *properties.json /.vs +/.vscode diff --git a/build.cmd b/build.cmd index 83d08bf..e627d01 100644 --- a/build.cmd +++ b/build.cmd @@ -1,15 +1,18 @@ @echo off +set "SystemPath=%SystemRoot%\\System32" +IF EXIST %WINDIR%\\sysnative\\reg.exe ( + set "SystemPath=%SystemRoot%\Sysnative" + echo. "32-bit process..." +) + set env="/usr/local/libdragon" -IF %1.==. GOTO default +IF %1.==. ( + echo. "no parameter" + %SystemPath%\\bash --verbose -c "export N64_INST=%env%; make" +) ELSE ( + echo. "parameter: %1" + %SystemPath%\\bash --verbose -c "export N64_INST=%env%; make %1" +) -bash --verbose -c "export N64_INST=%env%; make %1" - -GOTO end - -:default -bash --verbose -c "export N64_INST=%env%; make" - -:end - -pause \ No newline at end of file +:pause \ No newline at end of file From f8a90dac6e8df8d6509bb0198c9feafadf063dca Mon Sep 17 00:00:00 2001 From: Robin Jones Date: Tue, 13 Dec 2016 15:56:20 +0000 Subject: [PATCH 7/9] renamed upload to deploy-sd --- tools/{upload.sh => deploy-sd.sh} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename tools/{upload.sh => deploy-sd.sh} (100%) mode change 100755 => 100644 diff --git a/tools/upload.sh b/tools/deploy-sd.sh old mode 100755 new mode 100644 similarity index 100% rename from tools/upload.sh rename to tools/deploy-sd.sh From fad67dc5821da41cc79809d4365eadb6a5737836 Mon Sep 17 00:00:00 2001 From: Robin Jones Date: Tue, 13 Dec 2016 20:31:34 +0000 Subject: [PATCH 8/9] added ability to extract firmware from original os --- tools/extract-firmware.cmd | 120 +++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 tools/extract-firmware.cmd diff --git a/tools/extract-firmware.cmd b/tools/extract-firmware.cmd new file mode 100644 index 0000000..72d2847 --- /dev/null +++ b/tools/extract-firmware.cmd @@ -0,0 +1,120 @@ +@echo off +cd .. +set "fs=%cd%\res\filesystem\firmware" +set "lfs=%fs%" + +set "drive=%lfs:~0,1%" + +set lfs=%lfs:~2% +set "lfs=%lfs:\=/%" + +if %drive%==A set "drive=a" +if %drive%==B set "drive=b" +if %drive%==C set "drive=c" +if %drive%==D set "drive=d" +if %drive%==E set "drive=e" +if %drive%==F set "drive=f" +if %drive%==G set "drive=g" +if %drive%==H set "drive=h" +if %drive%==I set "drive=i" +if %drive%==J set "drive=j" +if %drive%==K set "drive=k" +if %drive%==L set "drive=l" +if %drive%==M set "drive=m" +if %drive%==N set "drive=n" +if %drive%==O set "drive=o" +if %drive%==P set "drive=p" +if %drive%==Q set "drive=q" +if %drive%==R set "drive=r" +if %drive%==S set "drive=s" +if %drive%==T set "drive=t" +if %drive%==U set "drive=u" +if %drive%==V set "drive=v" +if %drive%==W set "drive=w" +if %drive%==X set "drive=x" +if %drive%==Y set "drive=y" +if %drive%==Z set "drive=z" + +set "lfs=/mnt/%drive%%lfs%" + +echo "Windows dir is %fs%" +echo "Linux dir is %lfs%" + +:: del old firmware dir in ../res/filesystem +RD /S /Q "%fs%" +:: mk firmware dir in ../res/filesystem +MKDIR "%fs%" + +SET "rom=%1" +IF %1.==. ( +SET /P rom="Please enter full path to OS64.v64 V2.12:" +) + +set "drive=%rom:~0,1%" + +set rom=%rom:~2% +set "rom=%rom:\=/%" + +if %drive%==A set "drive=a" +if %drive%==B set "drive=b" +if %drive%==C set "drive=c" +if %drive%==D set "drive=d" +if %drive%==E set "drive=e" +if %drive%==F set "drive=f" +if %drive%==G set "drive=g" +if %drive%==H set "drive=h" +if %drive%==I set "drive=i" +if %drive%==J set "drive=j" +if %drive%==K set "drive=k" +if %drive%==L set "drive=l" +if %drive%==M set "drive=m" +if %drive%==N set "drive=n" +if %drive%==O set "drive=o" +if %drive%==P set "drive=p" +if %drive%==Q set "drive=q" +if %drive%==R set "drive=r" +if %drive%==S set "drive=s" +if %drive%==T set "drive=t" +if %drive%==U set "drive=u" +if %drive%==V set "drive=v" +if %drive%==W set "drive=w" +if %drive%==X set "drive=x" +if %drive%==Y set "drive=y" +if %drive%==Z set "drive=z" + +set "rom=/mnt/%drive%%rom%" + +echo "Linux rom dir is %rom%" + + + +::echo. "This script is not yet ready and will now exit." +::GOTO exit + +@echo ON + +:: OS64.V64 - Version 2.12 firmware offsets: +:: cart offset (hex) offset (dec) length +:: v2_old 0x25070 151664 61552 +:: v2 0x15930 88368 63276 +:: v2.5 0x340F0 213232 69911 +:: v3 0x45210 283152 71187 + +:: Count = lengh / blocksize +:: Seek = offset converted to decimal / blocksize + +:: ED rev 2_old +bash --verbose -c "dd skip=9479 count=3847 if=%rom% of=%lfs%/firmware_v2_old.bin bs=16" + +:: ED rev 2.0 (default should return 0x214) +bash --verbose -c "dd skip=5523 count=3954 if=%rom% of=%lfs%/firmware_v2.bin bs=16" + +:: ED rev 2.5 (default should return 0x250) +bash --verbose -c "dd skip=13327 count=4369 if=%rom% of=%lfs%/firmware_v2_5.bin bs=16" + +:: ED rev 3 (default should return 0x300) +bash --verbose -c "dd skip=17697 count=4449 if=%rom% of=%lfs%/firmware_v3.bin bs=16" + + +pause +:exit \ No newline at end of file From ea6e5cc24d9ed42bf36b44afce38cb1268c581a8 Mon Sep 17 00:00:00 2001 From: Robin Jones Date: Tue, 13 Dec 2016 20:39:54 +0000 Subject: [PATCH 9/9] minor updates to readme --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 220112d..c758649 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ originally written by saturnu, and released on the ## Building -If you want to build the menu, you need an n64 toolchain. When using windows 10or Ubuntu, installation is totally automated through a script. +If you want to build the menu, you need an n64 toolchain. When using windows 10 or Ubuntu, installation is totally automated through a script. ### Dependencies (installed automatically) * Windows 10 (Aniversary Update or above) / Ubuntu 16.04 (or above) @@ -24,7 +24,7 @@ If you want to build the menu, you need an n64 toolchain. When using windows 10o Clone this `Altra64` repo to a directory of your choice. -On Windows 10, browse to the tools directory and double click on ```setup-wsfl.cmd``` +On Windows 10, browse to the tools directory and double click on ```setup-wsfl.cmd```. On Ubuntu, browse to the tools directory and run the command ```$ chmod +x ./setup-linux.sh;source ./setup-linux.sh```