summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorbriaguya <70942617+briaguya-ai@users.noreply.github.com>2023-04-27 19:20:41 -0400
committerGitHub <noreply@github.com>2023-04-27 19:20:41 -0400
commit4166dbf9072e74c2f3e093461d6abc1b06af8475 (patch)
tree25a2f180a3ef253b2ad024fc050377c80020f9ef /README.md
parent2af99dfc3ae2ed46de7d6cc6b84495f8e0fc83b1 (diff)
spockalicious (#2751)
* Rough mockup of LUS XML loading * Updated code for merge * Loading from FS support and custom DList WIP implementation * Added current directory support to F3D and impl most of the dlist cmds * WIP Skeleton support * Almost done * Rebase fixes * Submodule updates * HD Texture Support * Fixes * bump lus * fix exporter build, header update * soh builds * setMesh image path cleanup * Update soh/src/overlays/actors/ovl_player_actor/z_player.c * Update soh/src/overlays/actors/ovl_player_actor/z_player.c * Update OTRExporter/OTRExporter/Main.cpp * Update ZAPDTR/ZAPD/ZResource.h * Update soh/src/code/z_skelanime.c * Update OTRExporter/OTRExporter/Main.cpp * Fixed jpeg backgrounds and decreased icon buffer size * Bump lus * Increased even more the buffer because it crashes on long texts * Removed print because sometimes the if is not triggered when the image is already byteswapped * fix non-windows build * fix build Co-authored-by: Kenix <kenixwhisperwind@gmail.com> * add hd checkbox * Various fixes for custom model support (#23) * Some fixes * Updated LUS Version * Fixed issue with Link Skirt on pause menu * Added CVar for custom link model changes * Fixed headers * Additional header fixes * Tweaks * Unload HD game assets on scene transition. (#16) * Unload game assets on scene transition. * Bump LUS * Unloads all HD assets on scene transition. * Only unload hd assets if hd assets are turned on. * Fixes issues on toggling between HD and non HD assets. --------- Co-authored-by: briaguya <briaguya@alice> * fix: actually load hd debug font (#27) * fix: actually load hd debug font * toggle debug text correctly --------- Co-authored-by: briaguya <briaguya> * Yes. (#28) * Merge branch 'develop' into dev-to-ghost * HD Skeleton Swapping and Language Fixes (#32) * Yes. * HD Skeleton Swapping and Language Fixes * Test * Fixed issues with ganon cape (#34) * Fixed Bongo Bongo Crash (#35) * Added HD Assets Toggle (#37) * Ivan the Fairy - Coop Mode (#36) * wip * hookshotable ivan * added hookshot item * new items & changes & fixes & restored navi * farore, din and nayru's spells are done * fixed slingshot & bow * added more items supported * done with all main items * bug fixes & ready * added imgui button * wip * hookshotable ivan * added hookshot item * new items & changes & fixes & restored navi * farore, din and nayru's spells are done * fixed slingshot & bow * added more items supported * fix own dungeon items on shuffled boss rooms (#2683) * bump lus (#2692) * fix: lowercase package names for vcpkg (#2693) vcpkg was throwing an error `error: invalid character in package name (must be lowercase, digits, '-')` this updates our calls to `vcpkg_install_packages` to use lowercase package names instead of uppercase * fix death mountain cloud in rando (#2691) * Fix: Switch Age No Longer Reloads Start Room (#2679) * [Reduced Clutter] Disable Hot/Underwater Warning Text (#2684) * Disable Warning Text * Moved to Reduced Clutter * done with all main items * bug fixes & ready * fix: process roms in consistent order (#2696) * chore: move rando savefile setup and document flags (#2697) * remove rando save init from sram * move rando savefile init logic and set more flags * document flags for rando save creation * Fix: Use correct fps value for frame interpolation with match refresh rate (#2694) * Fix: Kak GS placement on construction site (#2695) * added imgui button * addressed kenix's comments * fixed useless null * added rupee dash mode in extra modes * changed menu position --------- Co-authored-by: Adam Bird <Archez@users.noreply.github.com> Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com> Co-authored-by: inspectredc <78732756+inspectredc@users.noreply.github.com> Co-authored-by: Patrick12115 <115201185+Patrick12115@users.noreply.github.com> * LUS Scancodes (#42) * Added HD Assets Toggle * Switched out SDL for LUS scancodes * Ivan tweaks (#45) * Magic consumption slowed down; Bosses now affected by Ivan's Din spell * Adjust magic timer * clean up imgui * model fixes/improvements (#50) * replace `gUseCustomLinkModel` with custom resource check * handle adult/child * bump lus * fix model switching with tab * use lus main * fix carpet man (#52) Co-authored-by: Rozelette <Rozelette@users.noreply.github.com> * get ship model and lus texture into soh.otr, use `gAuthenticLogo` to toggle between ship and authentic (#55) * Use libultra features for CPU-modified textures (#40) * Use libultra features for CPU-modified textures * Comment * bump lus on ghost (#58) * fix: properly use `Interface_LoadActionLabel` to display start button text (#61) * Changes hd -> alt for texture replacement. (#65) * Changes hd -> alt for texture replacement. * Renames variables in gfxprint for hd -> alt change. * Update soh/soh/resource/type/Skeleton.cpp --------- Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com> * Fixes kaleido dungeon maps (#67) * skeleton stuff (#69) * comment out wii u build (#70) * bump lus (#71) * Rework readme (#72) * Update README.md * docs * put custom music docs somewhere * Update README.md * Update README.md * Update README.md * Update README.md * dark/light title image * lus * Update README.md * Fixed vanilla minimap (#73) * Fixed vanilla minimap * Workaround for pulsing SD maps with non-broken HD maps. --------- Co-authored-by: Christopher Leggett <chris@leggett.dev> * Skeleton fix fixed (#75) * WIP skelton patcher fix * Fixes skeleton reference change. * Adds const back to name in ResourceMgr_LoadSkeletonByName --------- Co-authored-by: Christopher Leggett <chris@leggett.dev> Co-authored-by: Kenix <kenixwhisperwind@gmail.com> * Fixes z_message_otr memory leak. * Update soh/soh/z_message_OTR.cpp * Update soh/src/code/game.c * docs: add how to find otr files to switch instructions (#78) * bump lus (#79) * comment out RegisterBlendedTexture in king d (#80) --------- Co-authored-by: Nicholas Estelami <NEstelami@users.noreply.github.com> Co-authored-by: David Chavez <david@dcvz.io> Co-authored-by: briaguya <briaguya@alice> Co-authored-by: Kenix3 <kenixwhisperwind@gmail.com> Co-authored-by: KiritoDv <kiritodev01@gmail.com> Co-authored-by: briaguya <briaguya> Co-authored-by: Ralphie Morell <stratomaster64@gmail.com> Co-authored-by: MelonSpeedruns <melonspeedruns@outlook.com> Co-authored-by: Adam Bird <Archez@users.noreply.github.com> Co-authored-by: inspectredc <78732756+inspectredc@users.noreply.github.com> Co-authored-by: Patrick12115 <115201185+Patrick12115@users.noreply.github.com> Co-authored-by: Rozelette <Rozelette@users.noreply.github.com> Co-authored-by: Christopher Leggett <chris@leggett.dev> Co-authored-by: Lywx <36680385+KiritoDv@users.noreply.github.com>
Diffstat (limited to 'README.md')
-rw-r--r--README.md224
1 files changed, 67 insertions, 157 deletions
diff --git a/README.md b/README.md
index 4fe9dafec..318ff7fa5 100644
--- a/README.md
+++ b/README.md
@@ -1,105 +1,72 @@
-# Welcome to the Ship of Harkinian!
+![Ship of Harkinian](docs/shiptitle.darkmode.png#gh-dark-mode-only)
+![Ship of Harkinian](docs/shiptitle.lightmode.png#gh-light-mode-only)
-A PC port of OoT allowing you to enjoy the game with modern controls, widescreen, high-resolution, gyroscopy and other great features! Setup is simple, let's get started!
+## Website
-The Ship does not include any copyrighted assets. You are required to provide a supported copy of the game.
+Official Website: https://www.shipofharkinian.com/
## Discord
-Official Discord: https://discord.com/invite/BtBmd55HVH
+Official Discord: https://discord.com/invite/shipofharkinian
-## Quick Start (Windows)
+If you're having any trouble after reading through this `README`, feel free ask for help in the Support text channels. Please keep in mind that we do not condone piracy.
-1) Download The Ship of Harkinian from [Discord](https://discord.com/invite/BtBmd55HVH).
-2) Requires a supported copy of the game (See supported games below).
-3) Use `OTRGui.exe` to generate an `oot.otr` archive file.
-4) Launch `soh.exe`
+# Quick Start
-### Supported Games
-#### Ocarina of Time Debug PAL GC (not Master Quest)
-```
-Build team: `zelda@srd022j`
-Build date: `03-02-21 00:49:18` (year-month-day)
-sha1: cee6bc3c2a634b41728f2af8da54d9bf8cc14099
-```
-#### Ocarina of Time PAL GameCube
-```
-sha1: 0227d7c0074f2d0ac935631990da8ec5914597b4
-```
-#### Ocarina of Time Debug PAL GC MQ (Dungeons will be Master Quest)
-```
-Build team: `zelda@srd022j`
-Build date: `03-02-21 00:16:31` (year-month-day)
-sha1: 079b855b943d6ad8bd1eb026c0ed169ecbdac7da (Produced by decomp)
-sha1: 50bebedad9e0f10746a52b07239e47fa6c284d03 (Alternate)
-```
-
-Congratulations, you are now sailing with the Ship of Harkinian! Have fun!
-
-## About Versions
-
-The Ship of Harkinian's versioning system is a unique system, comprising of a three-numbered version (`x.y.z`) and a version codename. The main version number `x` signifies major feature updates that require a new `oot.otr` file. The version number `y` signifies major feature updates and bugfixes that do not require a new `oot.otr` file. The version number `z` signifies minor updates such as a collection of bugfixes.
-
-The version codename consists of a sci-fi film character followed by a phonetic alphabet code word. The film character represents a major release version which increments with the major `x` or `y` version bumps. The code word represents a minor release version which increments with the minor `z` version bump.
-
-## Additional Setup Information
-
-### Windows Rom Extraction
+The Ship does not include any copyrighted assets. You are required to provide a supported copy of the game.
-* Open `OTRGui.exe` and click on "Open OOT ROM", then select your supported copy of the game (see section "Supported Games").
-* If a second button already exits then `oot.otr` already exists. To prevent overwriting the old `oot.otr` use this button to choose a new game directory. The new directory must not already contain an `oot.otr` to prevent an error.
-* When the process completes, you should have an `oot.otr` or `oot-mq.otr` file in your main directory, depending on the version of the game used to build it.
- (*NOTE:* You can have both `.otr` files, if you want to! This even allows you to shuffle MQ and vanilla dungeons in the randomizer)
+### 1. Check your `sha1`
+You can verify you have a supported copy of the game by checking the `sha1` hash. There are many ways to do this, one of the simplest is using the [`hasher-js`](https://github.com/snarfblam/hasher-js) webapp hosted at https://www.romhacking.net/hash/.
-This process can take up to several minutes, depending on your system hardware.
+| Supported Version | `sha1` |
+| - | - |
+| PAL GC | `0227d7c0074f2d0ac935631990da8ec5914597b4` |
+| PAL GC (Debug) | `cee6bc3c2a634b41728f2af8da54d9bf8cc14099` |
+| PAL MQ | `079b855b943d6ad8bd1eb026c0ed169ecbdac7da` |
+| PAL MQ | `50bebedad9e0f10746a52b07239e47fa6c284d03` |
-Close `OTRGui.exe` when the `Done!` message appears.
-If you get another message, then you might have selected the wrong rom. See section "Supported Games".
+### 2. Download The Ship of Harkinian from [Discord](https://discord.com/invite/shipofharkinian)
+The latest release is available in the most recent post in the `#downloads` channel.
-### Linux Rom Extraction
+### 3. Launch the Game!
+#### Windows
+* Extract the zip
+* Launch `soh.exe`
-* Place one of the supported roms in the same folder as the appimage (See section "Supported Games").
+#### Linux
+* Place your supported copy of the game in the same folder as the appimage.
* Execute `soh.appimage`. You may have to `chmod +x` the appimage via terminal.
-* When the process completes, you should have an `oot.otr` or `oot-mq.otr` file in the same directory as the appimage, and the game should start automatically.
- (*NOTE:* You can provide both a vanilla and MQ ROM, if you want to! This even allows you to shuffle MQ and vanilla dungeons in the randomizer)
-
-This process can take up to several minutes, depending on your system hardware.
-If you get any errors, then you might have selected the wrong rom. See section "Supported Games".
-
-### MacOS Rom Extraction
-
-* Run `soh.app`, and when prompted, select one of the supported roms listed above.
+#### macOS
+* Run `soh.app`. When prompted, select your supported copy of the game.
* You should see a notification saying `Processing OTR`, then, once the process is complete, you should get a notification saying `OTR Successfully Generated`, then the game should start.
-This process can take up to several minutes, depending on your system hardware.
-
-If you get an error saying `Incompatible ROM hash`, you have selected the wrong rom. See section "Supported Games".
-
-### Nintendo Switch Rom Extraction
-
-* Download the latest PC release of the Ship of Harkinian, and follow the instructions above for generating the `oot.otr` archive on that platform.
-* Place the `.nro` and the `oot.otr` archive into a folder called `soh` in your Switch folder on your Switch
-
-### Nintendo Wii U Rom Extraction
-
-* Download the latest PC release of the Ship of Harkinian, and follow the instructions above for generating the `oot.otr` archive on that platform.
-* Copy the `.rpx` and the `oot.otr` archive to `wiiu/apps/soh`
-
----
+#### Nintendo Switch
+* Run one of the PC releases to generate an `oot.otr` and/or `oot-mq.otr` file. After launching the game on PC, you will be able to find these files in the same directory as `soh.exe` or `soh.appimage`. On macOS, these files can be found in `/Users/<username>/Library/Application Support/com.shipofharkinian.soh/`
+* Copy the files to your sd card
+```
+sdcard
+└── switch
+ └── soh
+ ├── oot-mq.otr
+ ├── oot.otr
+ ├── soh.nro
+ └── soh.otr
+```
+* Launch via Atmosphere's `Game+R` launcher method.
-If you're having any trouble, feel free to join our [Discord Server](https://discord.com/invite/BtBmd55HVH) and ask for help in the Support text channels. Please keep in mind that we do not condone piracy.
+### 4. Play!
-### Running The Ship of Harkinian
+Congratulations, you are now sailing with the Ship of Harkinian! Have fun!
-For Windows, launch `soh.exe`. For Linux, execute the appimage. For MacOS, launch the app. For Switch, launch the app via Atmosphere's `Game+R` launcher method. For Wii U, launch the `.rpx` file through the homebrew Mii Maker exploit.
+# Configuration
-Default keyboard configuration:
+### Default keyboard configuration
| N64 | A | B | Z | Start | Analog stick | C buttons | D-Pad |
| - | - | - | - | - | - | - | - |
| Keyboard | X | C | Z | Space | WASD | Arrow keys | TFGH |
-Other shortcuts:
+### Other shortcuts
| Keys | Action |
| - | - |
| F1 | Toggle menubar |
@@ -110,89 +77,32 @@ Other shortcuts:
| Alt+Enter | Fullscreen (DirectX) |
| Ctrl+R | Reset |
+### Graphics Backends
Currently, there are three rendering APIs supported: DirectX11 (Windows), OpenGL (all platforms), and Metal (MacOS). You can change which API to use in the `Settings` menu of the menubar, which requires a restart. If you're having an issue with crashing, you can change the API in the `shipofharkinian.json` file by finding the line `gfxbackend:""` and changing the value to `sdl` for OpenGL. DirectX 11 is the default on Windows.
-### Custom Music
+# Custom Assets
-We support importing custom [Seq64](https://github.com/sauraen/seq64) files to replace the in game music and fanfares (Sound effect and instrument replacement is currently not supported).
+Custom assets are packed in `.otr` files. To use custom assets, place them in the `mods` folder.
-First you will need to prepare a folder with the desired sequences. Every sequence requires two files with the same name and different extensions - a `.seq` Seq64 file and a `.meta` plaintext file. These files can be categorically nested in folders if desired, - Retro will recursively search each subfolder it finds.
+If you're interested in creating and/or packing your own custom asset `.otr` files, check out [**retro**](https://github.com/HarbourMasters64/retro)!
-The `.meta` file requires two lines - the first line is the name that will be displayed in the SFX editor, and the second line is the instrument set number in `base16` format. For example, if there is a sequence file `Foo.seq` then you need a meta file `Foo.meta` that could contain:
-```
-Awesome Name
-C
-```
+# Development
+### Building
+
+If you want to manually compile SoH, please consult the [building instructions](docs/BUILDING.md).
+
+### Playtesting
+If you want to playtest a continuous integration build, you can find them at the links below. Keep in mind that these are for playtesting only, and you will likely encounter bugs and possibly crashes.
+
+* [Windows](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-windows.zip)
+* [macOS](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-mac.zip)
+* [Linux (performance)](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-linux-performance.zip) _(requires `glibc 2.35` or newer, but will be more performant than the compatibility build.)_
+* [Linux (compatibility)](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-linux-compatiblity.zip) _(compatible with most Linux distributions, but may not be as performant as the performance build.)_
+* [Switch](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-switch.zip)
-Once you have prepared your sequences folder:
-1. Download and open [Retro](https://github.com/HarbourMasters/retro/releases).
-1. Choose the "Create OTR" option.
-1. Choose the "Custom Sequences" option.
-1. Using the file selection screen, choose the sequences folder you prepared in the previous instructions.
-1. Click the "Stage Files" button.
- (*NOTE:* SoH can handle 1024 custom sequence in total. This includes the original music. Keep that in mind!)
-1. Click the "Finalize OTR" text in the green footer.
-1. Click "Generate OTR" and, using the file selection screen, save the file to the `mods` folder of your SoH installation.
- - This `mods` folder should be in the same folder as your `oot.otr` file.
-
-Assuming you have done everything correctly, boot up SoH and select the SFX Editor from the enhancements dropdown menu. You should now be able to swap out any of the in game sequences/fanfares for the sequences added in your newly generated OTR file. If you have any trouble with this process, please reach out in the support section of the Discord.
-
-## Building The Ship of Harkinian
-
-If you want to manually compile SoH, please consult the [building instructions](BUILDING.md).
-
-## Nightly Builds
-If you want to playtest a nightly build, you can find them at the links below. However, keep in mind that these are for playtesting only, and you will likely encounter bugs. Rarely, these builds will crash.
-
-Nightly builds of Ship of Harkinian are available here: [Windows](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-windows.zip), [macOS](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-mac.zip), [Linux (compatibility*)](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-linux-compatiblity.zip), [Linux (performance*)](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-linux-performance.zip), [Switch](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-switch.zip), [Wii U](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-wiiu.zip)
-
-_*compatibility: compatible with most Linux distributions, but may not be as performant as the perf build._\
-_*performance: requires `glibc 2.35` or newer, but will be more performant than the compat build._
-
-## Take The Survey
-Want to use cartridge readers in tandem with OTRGui?
-Take [this survey](https://retroarchopenhardware.com/survey.php) to increase chances of this becoming reality.
-
-## The Harbour Masters Are...
-
- Kenix | Lead Developer/Public Relations - Resource Management Programmer, Audio System Programmer, and General Programmer
- Jack Walker | Lead Developer - OTR Format Programmer, Resource Load Programmer, and General Programmer
- Louist103 | Developer - Save System Programmer and General Programmer
- Emil | Developer - Fast3D Programmer
- m4xw | Developer - Shipwright, Throwing Baguettes, and General Programmer
- MelonSpeedruns | Developer - General Programmer
- Rozlette | Developer - General Programmer
- JoshDuMan | Developer - General Programmer
- KiritoDev/Lywx | Developer - General Programmer
- Theo3 | Developer - General Programmer
- Random06457 | Developer - Linux Build
-
-## Special Thanks
-
- Decomp & ZAPD | Made this project even possible in the first place!
- MNGoldenEagle | Patiently explained audio data formats, encouragement, and founding ZSO which was the first source of the game's code and resource format documentation.
- Rrrrry123 | Speedbunner, encouragement, and community moderation
- Fierce deity | Encouragement and community moderation
- mzxrules | For his contributions to decomp
- zel. | For his contributions to decomp
- Aloxado | Developer - General Programmer
- MegaMech | Developer - General Programmer
- Revo | Tester - GCC support and General Testing
- zfg | Tester - General Testing
- Horseless Headman | Tester - General Testing
- Steven Pritchett | Tester - General Testing
- Trenton May | Tester - General Testing
- Zeldaboy14 | Tester - General Testing, encouragement, and community moderation
- Koby Howell | Tester - General Testing
- Logg | Tester - General Testing
- Taylor Daley | Graphic Design
- Can't Sleep | Graphic Design
-
-## Video Credits
- Kenix | Producer / Writer
- briaguya | Writer
- rainbow_fash | Executive Producer
- ReveriePass | Editor
- MicTheMicrophone | Gwonam / The King
- Amphibibro | Link
- AceHeart | Zelda
+<a href="https://github.com/Kenix3/libultraship/">
+ <picture>
+ <source media="(prefers-color-scheme: dark)" srcset="./docs/poweredbylus.darkmode.png">
+ <img alt="Powered by libultraship" src="./docs/poweredbylus.lightmode.png">
+ </picture>
+</a>