Star Fox Adventures: Amethyst Edition

This is a mod for Star Fox Adventures which makes a number of small improvements to the game.

Main Features

New PDA Menu

The PDA in Fox's inventory has been expanded into a more useful item. Selecting it will now open a menu.

Controls:

  • C Left/Right: Switch pages
  • Stick Up/Down: Select item
  • Stick Left/Right: Adjust selected item
  • L/R: Adjust selected item quickly
  • A: Activate selected item
  • B: Close menu

You can also open this menu at any time by holding L+Z and pressing B. This allows pausing during cutscenes, though it won't pause their audio.

See below for an explanation of the menu's contents.

Play as Krystal

This patch replaces Fox with Krystal in most scenes. Since this is only a visual/voice change, it can be awkward at times.

  • Krystal is slightly taller than Fox, so her animations don't line up perfectly. For example, when Fox would stick the staff into a hole, Krystal will stick it a few inches above; when the camera zooms in on Fox's face, it may end up focused on Krystal's neck instead.
  • The loincloth doesn't animate properly. (This is because Krystal lacks animations for some actions, so Fox's animations are used instead.)
  • During cutscenes, Fox's dialogue still uses his voice. Krystal introduces herself as Fox McCloud; characters refer to her as Fox and ask about Krystal, etc.
  • Krystal in cutscenes is not swapped with Fox, so there can be two Krystals during those scenes.
  • Krystal lacks voice clips for some actions, so she won't say anything.
  • When the staff is on Krystal's back, it appears to be stabbed through her. This actually happens to Fox as well, but is usually hidden by his backpack. (This is not easily fixed by moving the staff, because it's also broken in two in this state.)
  • In the Arwing flying sections, Fox can still be seen inside the cockpit.
  • At the beginning of the game, Krystal has access to the staff and PDA, which normally aren't available. This allows for some sequence breaking, and seeing some placeholder "not displayed"/blank help texts.

Autosave

From the PDA menu, you can turn on an auto-save function. This will save the game whenever you cross a map loading boundary. This setting is saved to the save file.

This patch also removes the confirmation prompts from the Save button in the pause menu. Just select the Save option and press A, and the game will be saved immediately.

New Camera Controls

The camera can be panned, tilted, and rolled using the C stick or another controller. Movement can be inverted on each axis. See below for details.

Gameplay Tweaks

Several minor improvements have been made:

  • Climbing is now much faster.
  • You can jump down from a wall while climbing.
  • Several voices are removed from the pause menu.
  • The map box now closes itself when no map is available.
  • Fuel Cells are removed from the inventory menu, since they're not a usable item.
  • Restoring a save state in Dolphin after saving the game will no longer cause a "not the same memory card" error.
  • Holding Z on controller 3 will fast-forward the game. (Tip: bind this to a spare button on your gamepad in Dolphin.)

Debug Mode

From the PDA menu, you can access several debug functions (most of which are added by the patch). Be warned that playing with these can crash the game or make it impossible to complete.

You can also enable debug text by holding Z as the game starts.

If you find an issue, please turn debug text on and take a screenshot, so that I can pinpoint exactly where and when it happens.

Screenshots

Krystal standing in ThornTail Hollow, holding her staff Playing as Krystal.
Krystal in ThornTail Hollow, fighting a SharpClaw Krystal in combat, with some debug displays.
Game Settings: Player (set to Fox), FOV, Game Speed, Autosave Can swap characters any time.
Krystal climbing a wall, with A button reading Jump Quickly jump down from walls instead of climbing down.
Krystal jumping down from the wall Krystal jumping down from the wall.
Closeup of map, showing No Map Data message, shrinking down to nothing Map box is hidden when no map is available.
Autosave in progress Autosave during play.
Audio: Music Volume, SFX Volume, CutScene Volume, Sound Test, Music Test, Stream Test Change audio settings during play.
PDA Menu: PDA HUD, Map Size, Map Opacity Map size and opacity options.
Game Settings: Player, FOV (set to 120), Game Speed, Autosave FOV at 120 (double).
Game Settings: Player, FOV (set to 30), Game Speed, Autosave FOV at 30 (half).
Debug: Debug Text, Tricky Debug Text, Free Move, Reload Map, Warp, Objects, GameBits, SaveGame Data, Heap, Show Text, Advance Frame Debug functions available on demand.
Debug: list of loaded objects Debug mode showing loaded objects.
Debug: lots of Tricky state info Debug text including Tricky state info.
Tricky perched atop a normally unreachable pillar. Krystal/Fox nowhere to be seen. Free Move function works on objects too.

Download

Download patch and follow the instructions below.

Source code here, as well as various notes and tools I used.

How to Apply the Patch

  1. Get a copy of Star Fox Adventures, US version 1.0. (That means not the European or Japanese versions, and not the Player's Choice edition.)
  2. Copy the disc to your PC using CleanRip.
  3. Add the resulting ISO file to Dolphin's game list.
  4. Right-click the game in Dolphin's game list and select Properties.
    Location of Properties menu
  5. Click Verify, then Verify Integrity. (This will take a few minutes.)
    Location of Verify tab
  6. Ensure that the MD5 field reads: afb0306454b581e37a62170fdfd1de09 . If it says anything else, you have the wrong version (or a damaged copy) and the patch most likely will not work.
    Location of Verify button
  7. Use xdelta to apply the included patch file to a copy of the ISO file.
    If you receive the error message:
    Unknown secondary compressor ID: XD3_INVALID_INPUT
    you are using an old version of xdelta and should upgrade.
  8. You should now have a patched ISO file which can be played like any other.
    The patched ISO file is about 800 megabytes, which is less than the original. This is normal. (A lot of padding is removed.)

Bugs and Notes

  • When climbing down a wall, pressing A near the very top may cause the player to warp to the top rather than jumping down.
  • Jumping down while climbing a wall may cause a brief animation glitch.
  • Switching between Fox and Krystal can cause animation glitches until the character moves.
  • In some areas, the staff's swipe effect doesn't actually follow the staff.
  • Some attack techniques such as the sweeping kick may not actually connect with enemies. This usually doesn't interfere with anything other than making it take slightly longer to fight them off.
  • When playing on a modified console with debug text enabled, you may occasionally see the message SUSPECTED GRAPHICS HANG OR INFINITE LOOP during map transitions. This can be ignored as long as it goes away after a few seconds.
  • When Fur Effect is set to Always, some animations (eg jumping off a ledge) have a visual glitch. (This seems to be a bug in the original game that went unnoticed since the fur effect normally isn't on during these animations.)
  • When hitbox viewing is enabled, some objects don't render correctly.

Bugs that are in the original game

  • Reflections aren't positioned correctly.
  • Some cutscenes are missing audio.
  • With clever movement, it's possible to swim off the top of a waterfall and continue swimming in midair.
  • It's possible to hop to an out-of-bounds area in the Walled City and find gaps in the level geometry.
  • At certain angles, lights can be seen through solid objects.

I hope to fix the reflection and audio bugs, but have no plans to fix the waterfall/out-of-bounds bugs, since they don't harm normal gameplay and are fun to mess around with.

Bugs that aren't actually bugs

  • When playing on a modified console, cutscene audio might not play. This is due to the modchip/loader not supporting audio streaming. The only way to fix this is to use a loader that supports streaming.
  • Using Free Move to pass through barriers may lead to maps not loading correctly.
  • The endgame has some plot holes, as if a scene was skipped. This is the same as the original game. (eg: staff present when it shouldn't be; characters magically know eachothers' names)
  • FOV settings over 130° might have graphical issues. (The engine was never designed for this.)
  • While wearing the SharpClaw Disguise, the gas in the CloudRunner Fortress Power Chamber doesn't hurt you. (This is explicitly programmed in. I don't know why.)

PDA

The PDA item in the inventory now opens a menu with several pages. Use the C stick to switch pages.

Game Settings

  • Player: Lets you switch player character.
  • Game Speed: Lets you speed up or slow down the entire game, from 25% to 400%.
    Cutscene audio is not affected, so it will get out of sync if you change the speed.
  • Autosave: Turns the auto-save feature on/off.
  • Subtitles: Whether to display subtitles during dialogue.
  • Rumble: Whether to vibrate the controller.
  • Rumble Blur: Whether to apply a blur effect alongside the rumble effect.
  • Backpack: Lets you have the backpack visible or not, independent of character.

Video Settings

  • PDA Hud: Switches the HUD between Map, Fuel Cell Compass, Information, and Off.
  • Map Size: Switches the map size between normal, small, and huge.
  • Map Opacity: Lets you turn the map transparent.
  • Fur Effect: Lets you force the detailed fur effect, normally used in cutscenes, to be always on. This can cause lag on real consoles, and minor visual glitches during some animations.

Camera Settings

  • FOV: Lets you adjust the field of view from 5 to 175 degrees. (Settings above 130 might have graphical glitches.)
  • Widescreen: Whether to use 16:9 or 4:3 aspect ratio.
  • Camera Control: Select camera control mode (see below).
  • Camera X: Whether to invert camera pan movement.
  • Camera Y: Whether to invert camera tilt movement.

Audio

  • Music Volume: Adjust music volume, from 0% to 200%.
  • SFX Volume: Adjust sound effect volume, from 0% to 200%.
  • CutScene Volume: Adjust cutscene dialogue volume, from 0% to 200%.
    These are the same settings as in the options menu, but can be adjusted during play and set beyond 100%.
  • Sound Mode: Switch between Stereo, Mono, Headphones, and Surround.
  • Sound Test: Lets you play any sonud effect.
    Sound effects do not have names, so only the ID is shown. Some sound effects never end.
  • Music Test: Lets you change the music.
  • Stream Test: Lets you play cutscene dialogue.

Pressing Z will stop all streams and the currently selected sound effect.

See below for explanations of the Debug page.

Camera Controls

New camera control functions are added, configurable from the PDA menu.

Two control options are available: Controller 3 (default) and Controller 1.

Using Controller 3

In this mode, use the C stick on controller 3 to pan and tilt, and L/R to roll.

Using Controller 1

In this mode, use the C stick on controller 1 to pan and tilt.

  • Controller 3 L/R are still used for roll.
  • Use the D-Pad to select items.
  • Use the menu to change the map mode. (Zoom is not available.)
  • Use the L and R triggers to control zoom with the viewfinder.
  • Some menus that would use the C-stick now use the D-pad instead.

Camera Behaviour

Depending on the situation, the camera moves differently:

  • Normal: The camera turns on its own axis. Roll reverts to normal when you release the triggers.
  • While holding L: The camera orbits around the player. Roll does not revert when you release the triggers (until you also release L).
  • In first-person View: The camera behaves as usual. The C stick will turn it very fast. Roll does not revert.
  • While aiming: The camera behaves as usual. If holding the C stick, shots may not fire from the tip of the staff. (They will always fire toward the crosshair, even if the character isn't actually pointing at it.)

Invert

The X and Y axes can be inverted (moving the opposite direction of the stick) for a more natural feel. This applies to camera movements, aiming, and first person view.

Debug Mode

Several debug functions are available from the PDA menu. These might change considerably between versions. They are explained here.

Revision History

v1.6 ()

  • Hopefully fixed crash on real hardware when opening menu.
  • Fixed: Tricky debug text setting shows wrong state.
  • Holding Z at startup turns on more debug texts.
  • Add debug hitbox viewer (incomplete, buggy).
  • Add Spawn Object debug menu.
  • Closing PDA menu no longer cancels free move.

v1.5 ()

  • Krystal's eyes look in the correct direction.
  • Fur Effect setting is now saved.
  • Can toggle the backpack.
  • Fixed: wrong sound effect when adjusting FOV.

v1.4 ()

  • Overhaul PDA menu.
  • Add Rumble Blur option.
  • Add option to force fur effect.
  • Krystal is less sarcastic. (Fixed eye texture.)
  • Add more debug functions:
    • Texture viewer
    • Additional text displays
    • Add/correct some warps

v1.3 ()

  • Most settings are now saved.
  • Most items from options menus can be adjusted from PDA menu.
  • When using controller 1 to move the camera, the L/R triggers are used to zoom the viewfinder, rather than the D-pad.
  • Fixed: Krystal after-image is Fox in Drakor scene.
  • Corrected Krystal's ledge grab height.
  • Volume settings can be adjusted more precisely.

v1.2 ()

  • Add camera control functions.
  • Add option to invert camera movement.
  • Map size can be set to Small.
  • Debug menu improvements:
    • Use fixed-width text.
    • More info in object list.
    • "GoTo" in object list ignores hit detection.
    • Improved warping method.
    • Improved warp list.
    • Add missing songs to sound test.
    • Add stop button to sound test.
  • Free Move improvements:
    • Camera mostly stays behind target. (Sometimes still gets stuck.)
    • Can move through most geometry.
    • Rotation is faster.
    • Swap B and Z buttons.
    • Should be more stable when moving other objects.

v1.1 ()

  • Fixed: Krystal after-image in WarpStone scene is no longer Fox.
  • Replace some empty entries in WARPTAB.bin with more useful/interesting ones. (Not all of them work, though.)
  • Crash screen should now show up even when debug mode is off.

v1.0 ()

  • First release.

Future Plans

  • Make fireball hitbox bigger.
  • Add some warps around the map for fast travel.
  • HUD improvements:
    • Be able to move items to the very edges of the screen
    • Banjo-Kazooie style HUD, where items are only displayed when needed
  • Better inventory menu, to move rarely-used items out of the main inventory.
  • Save Y button equip to save file.
  • Move some objects around to be less annoying.
  • Make Tricky less chatty and more helpful.
  • Restore language select menu.
  • Allow backtracking to previous areas after completing them.
  • Repack and trim assets to improve load time.
  • Allow displaying debug objects.

Special Thanks and Acknowledgements

  • Folks in the Krystal Archive Discord for testing, support, ideas, a high-resolution logo vector file, and this trailer video
  • Ninji, Neko May, Elery, for help and support with coding and life in general
  • Developers of the Wind Waker Randomizer (from which I borrowed texture codecs), Dolphin Emulator, and Ghidra
  • RavenWorks for some textures
  • My cats, for "reminding" me to take breaks
  • Lots of people I've forgotten
  • UsedPizza's LP provided several ideas for improving the game.
  • retroben999 for some bug fixes.
  • Obviously, the creators of the original game; not just for creating it, but also for publishing lots of footage and information about Dinosaur Planet.

Rant

This project would go much faster if certain people who've worked on this game (and other Rare games - they all share a lot of code) would publish their findings instead of only closed-source tools and videos, instead of me having to redo their work.