z64proto / sw97

A recreation of the Spaceworld 1997 Ocarina of Time demo
214 stars 25 forks source link

Zelda Spaceworld ‘97 Experience

We have released a new version of the project! (See changes here)

This project aims to be a mostly accurate representation of the Nintendo Spaceworld 1997 demo of The Legend of Zelda: Ocarina of Time. Since this project aims to restore an experience that was originally a demo, it cannot be completed from start-to-finish like the final game. Instead, three gameplay “tours” featured in the original Spaceworld 1997 demo are available to choose from, each showcasing various unique flavors of gameplay.

Since much of the code in this project either had to be adapted for use here or is fully custom, please give credit when reusing code from this repo.

Patching a ROM

This is the suggested way for most users to experience the project.

  1. First get your legally-obtained ROM of The Legend of Zelda: Ocarina of Time (version 1.0 NTSC-U) ready, and download the patch.
  2. Open the patcher tool here.
  3. Load your ROM into the patcher where it says "ROM File."
  4. Load the included .bps file where it says "Patch file." Note: If your rom ends with the .z64 extension, use the .bps labeled "Big Endian." If your rom ends with .n64, use the "Byteswapped" patch.
  5. If the patcher does not report any issues, click "Apply Patch" and the newly patched ROM will be downloaded.
  6. Now play the game on your platform of choice, whether it be a real Nintendo 64 with a flashcart, or on an emulator!

Help it won't work!

Compiling from scratch

Some users may want to compile the project from source code. What follows are instructions for doing so.

This project is intended to be compiled on either native Linux, or Windows Subsystem for Linux (WSL) using a distribution such as Ubuntu.

Clone the repo directly, or fork and clone this repository to your local machine via

git clone <url-to-your-fork.git>

Install the necessary build dependencies with

sudo apt-get update
sudo apt-get install git build-essential binutils-mips-linux-gnu python3

Add your legally-obtained Master Quest PAL GCN Debug ROM into the root folder, and name it baserom_original.z64.

cd into the directory of the newly cloned fork and run the following:

make setup -j
make -j

If the rom compiled successfully, sw97.z64 will be written to the root directory.

Building a wad file for use with the Wii Virtual Console is also supported. Add an original USA wad into the root folder, named basewad.wad and run:

make vc -j

Where Assets Originated From

In early 2021, a 32 MB development cartridge of F-Zero X was discovered and dumped by Forest of Illusion, a well known video game preservationist. F-Zero X is only a 16 MB game, so half of that 32 MB development cartridge should have went unused. As it would turn out, however, something was taking up the extra cartridge space at the end. Upon further inspection, exactly half of a 32 MB Ocarina of Time prototype dating back to 1997 was discovered. It is likely that this cartridge originally held the Ocarina of Time demo showcased at Spaceworld 1997, but the first half was overwritten by F-Zero X afterward when the development cartridge was reused. This extra data, now dubbed the "overdump," provided the basis for this project's conception.

Additionally, the "Gigaleak" that occured in mid-2020 provided both a significant amount of insight and assets that were used within this project.

Areas, dialogue, and most textures come from the F-Zero X overdump. The dialogue was translated from Japanese by GlitterBerri and has been formatted so it will fit within text boxes when using the English font. This translation attempts to be as faithful to the original dialogue as possible.

Innaccuracies

As mentioned prior, this recreation is only mostly accurate. There are some exceptions to our goal to accurately represent the original Spaceworld 1997 demo. In the interest of transparency and accurate preservation, we have included an extensive write-up of anything within the project that we cannot confirm to be entirely accurate.

One major exception that you will find is the Zelda Map Select mode. In this mode, you can explore maps found in the overdump that weren’t accessible in the actual Spaceworld 1997 demo. Although these areas were not intended to be explored within the demo experience, we wanted to give people an easy way to explore them just for fun. When in a map accessed from map select, press and hold L, then R, and then Z together to return to the map select. In this mode you will also be given a full inventory, so be sure to try some of the restored cut items and spells!

Since no code whatsoever was present within the overdump, all restored features had to be based on old gameplay footage, screenshots, reports by the press, unused Gigaleak code, and/or leftover (but unused) code from the final game. For example, the Title Screen being a part of File Select was found in unused code from the Gigaleak, but required modification to be usable for this project. Assets such as actor models were restored similarly, with some being based on those found in the Gigaleak.

Covered below is most of what was recreated and restored without overdump assets and without direct porting from the Gigaleak. If you’re curious about something that’s not included in the list or you have questions in general, feel free to ask the team on the official community Discord.

Recreated or Restored Content

Characters recreated:

Objects recreated:

Player animations recreated:

All of the pre-renders that were missing in the overdump or iQue were recreated from scratch or heavily altered. These include:

Several actors that were removed had to be written from scratch. These include:

Interface changes:

Misc changes:

Credits

Main Programming

Additional Programming

Assets

Research & Planning

Translation

Debugging

Bugtesters

Special Thanks

Tools