1
0
mirror of https://github.com/parasyte/alt64 synced 2024-11-10 11:15:11 -05:00
alt64/README.md
Jay Oster 90fb4e39a5 Initial GS code engine implementation
- Replaced the cheat file format with YAML
- Replaced the simulate_boot function with a small bit of C, and a loader in assembly
- The loader is fairly well-documented, and points out which register states are required for CICs
- Also includes a giant patcher function (relocatable assembly) which can patch the exception handler and run the code engine
- The code engine is GS Pro 3.30-compatible, and supports all code types
2014-08-26 10:27:07 -07:00

3.3 KiB

alt64

Alternative Everdrive64 menu

Kuroneko!

       :\     /;               _
      ;  \___/  ;             ; ;
     ,:-"'   `"-:.            / ;
_   /,---.   ,---.\   _     _; /
_:>((  |  ) (  |  ))<:_ ,-""_,"
    \`````   `````/""""",-""
     '-.._ v _..-'      )
       / ___   ____,..  \
      / /   | |   | ( \. \
ctr  / /    | |    | |  \ \
     `"     `"     `"    `"

nyannyannyannyannyannyannyannyannyannyannyannyannyannyannyannyannyan

alt64 is an open source menu for Everdrive64. It was originally written by saturnu, and released on the Everdrive64 forum.

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.

Dependencies

Build the Toolchain

You may skip this step if it's already installed.

Clone the libdragon repo and create a directory for the build.

$ git clone https://github.com/parasyte/libdragon.git
$ mkdir libdragon/build_gcc
$ cp libdragon/tools/build libdragon/build_gcc
$ cd libdragon/build_gcc

Modify the build script to set your installation path. Here is the default:

# EDIT THIS LINE TO CHANGE YOUR INSTALL PATH!
export INSTALL_PATH=/usr/local/mips64-elf

Build it! This can take an hour or more.

$ ./build

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!

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:

$ make && make install
$ make tools && make tools-install

Build libmikmod

Clone libmikmod-n64 and build:

$ 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:

$ 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:

$ 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!

$ git clone https://github.com/parasyte/alt64.git
$ make

If it all worked, you will find OS64.v64 in the alt64 top-level directory.