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 lets you swap between Fox and Krystal at any time. 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.

There is also a free camera function in the debug menu.

The FOV can be changed, and various colour filter effects can be tweaked.

This patch also applies Vague Rant's aspect ratio fixes, so eg the circle in the Fuel Cell Compass is actually a circle.

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.
  • Arwing sections can be skipped.
  • 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.)
  • Improved memory management to increase stability.

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
    If this tab is missing, you should update Dolphin to the newest Beta version. Note that "5.0-xxxxx" is not the same as just "5.0" (which is very old).
  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.

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. (This might be the case in the original game as well?)
  • 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.)
    • Debug stuff

    • 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.
    • The Free Camera function doesn't work in some scenes.

Bugs that are in the original game

  • Reflections aren't positioned correctly. (It's debatable if this is even a bug, or just "close enough in most cases".)
  • 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.
  • Saving and quitting doesn't reset your respawn point, making it possible to respawn into a different save file.
  • Some magic plants take an extremely long time (as much as several hours) to regrow.
  • A few items are accidentally linked, so collecting one will remove the other.
  • Memory leak issues:
    • In some unknown circumstances, the magic plants in ThornTail Hollow don't free their glow effect properly, causing a memory leak. (This seems to only happen if you go out of bounds.)
    • In some areas, memory is extremely limited, so some decorative objects fail to appear. (eg in the Queen EarthWalker's cave)
    • Since the mod uses some memory itself, this can be more noticeable; some objects might be replaced with rainbow cubes. If you see this, you should save and reset the console.
    • Even after resetting, some areas might still have rainbow cubes, and lag when passing through certain load triggers, but this should be harmless.

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 and/or game crashes.
  • 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.)
  • Issues in Dolphin:
    • The game crashes frequently, especially when using save states. (Turn off the Dual Core setting. It's notoriously unstable.)
    • The opening screens are pink. (Turn off "Skip EFB Access from CPU" and "Store EFB Textures to Copy Only". Or don't, because it only really affects the opening screen.)
    • Occasional graphical glitches and freezes. (Seems to be caused by the Gecko code handler.)

PDA

The PDA item in the inventory now opens a menu with several pages.

Controls

  • A: Select item
  • B: Exit menu
  • Stick Left/Right: Adjust selected item
  • Stick Up/Down: Select item
  • C Stick: Same as left stick but faster

Game Settings

  • 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.
  • Language: What language to display text in.
  • Low HP Flash: Whether the HP meter should flash continuously when at 1 heart or less.
  • Low HP Sound: Whether a sound should play continuously when at 1 heart or less.

Control Settings

  • Rumble: Whether to vibrate the controller.
  • Rumble Blur: Whether to apply a blur effect alongside the rumble effect.
  • Camera Control: Select camera control mode (see below).
  • Camera X: Whether to invert camera pan movement.
  • Camera Y: Whether to invert camera tilt movement.

Player Settings

  • Player: Lets you switch player character.
  • Backpack: Lets you have the backpack visible or not, independent of character.
  • 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.

Video Settings

  • Widescreen: Whether to use 16:9 or 4:3 aspect ratio.
  • Particle FX: Lets you disable particle effects, which might improve performance.
  • FOV: Lets you adjust the field of view from 5 to 175 degrees. (Settings above 130 might have graphical glitches.)
  • HUD: Lets you hide the HUD.
  • Letterboxing: Controls the letterbox effect during cutscenes.

Audio Settings

  • 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.
  • Play Song: Lets you change the music.
  • Play SFX: Lets you play any sonud effect.
    Sound effects do not have names, so only the ID is shown. Some sound effects never end.
  • Play Stream: Lets you play cutscene dialogue.
  • Stop All Sounds: Stops currently playing stream and selected sound effect.

PDA Settings

  • Mode: 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.
  • Map Zoom: Zooms the map in and out. Same as using the D-pad, but lets you zoom more.

Debug

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

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.

Revision History

v3.0.0 ()

  • Can now run in native Wii mode and use motion controls.
  • Autosave triggers every 10 minutes or when moving to a new map.
  • Fixed autosave not working when skipping title screen menus.
  • Mod code is now embedded directly into the executable instead of loaded from a separate file.
  • Debug:
    • Can track up to 8 objects' position/state.

v2.4.0 ()

  • Add option to turn off snapback when aiming the staff.
  • Add option to make staff aiming more sensitive.
  • Fixed falling through ground after skipping flight to CloudRunner Fortress.
  • Fixed camera inversion applying to analog stick when pushing blocks.
  • Add setting for camera to rotate around player when using C stick. (Has some bugs.)
  • Add option to turn off cutscene letterboxing.
  • Improve stability when loading a save in some areas.
  • Improve speed of loading save files a bit.
  • Fix a rare original-game bug where randomGetRange(x,y) could return y+1, which could cause random crashes, impossible puzzles, etc.
  • Debug:
    • Add a way to pass command-line arguments to the game via run.py script.
    • Add option to show hidden map geometry.
    • Add Arwing cheats.
    • Add Player Velocity under Render options.
    • Add Orbit camera mode.
    • Add option to hide disabled debug objects.
    • Stop logging GameBits that change too often.
    • Add RNG test functions.
    • Show info about targeted baddie in debug text.

v2.3.0 ()

  • Adjust some weather effects.
  • Fixed some bombable walls being visible when they shouldn't be.
  • The deleted map Dragon Rock Bottom is now accessible in the debug menu.
  • Debug:
    • Add more environment effect debug functions.
    • Tweak the Cape Claw warp location.
    • Add cutscene abort function.
    • Add display of some water-current-related variables.

v2.2.0 ()

  • Improve the bike race sections:
    • Add a timer and speedometer.
    • Hide the HUD (except map).
    • Holding X while climbing on the bike (until the timer appears) enables a fun turbo mode. This might make the race impossible to finish! Be careful not to fall off the map, as this will crash the game.
  • Improve the Arwing sections:
    • No low HP alarm by default. Alarm and flashing effect can be turned on in settings. (Will apply to non-Arwing sections as well)
    • Gold rings now restore a full heart, instead of 1/4.
  • Pushing blocks around is now faster.
  • Pressing R on the title screen before any other buttons will immediately load the first save file (or create one).
  • Can change language during game. Options are English, French, German, Italian, Japanese, Spanish.
    • Add Japanese translation for new menus by Chromaryu.
  • Fixed again: Krystal after-image is Fox in Drakor/WarpStone scenes.
  • Holding Start while loading your save file will spawn you in the AnimTest map. This can be used in case you used the debug functions to save in a spot that prevents the game from loading.
  • Fixed missing letters in menus in certain maps.
    • This also fixes an original game bug where some letters were missing when using the Dino Language cheat.
  • Debug:
    • Add Bird's Eye and First Person camera modes.
    • Objects List: can sort; add new functions.
    • Spawn Object: add sortable object list.
    • Show Restart Point and Last Save Point separately.
    • Fixed warp menu clearing the Restart Point.
    • Add performance monitoring (FPS display, CPU meter).
    • Add RNG rate measurement and graphing.
    • GameBits: can sort by name.
    • GameBits: show address of selected bit as debug text.
    • Add viewing/setting of the player's save coordinates (used when loading the save file).
      • DANGER: Saving in certain places will make the game crash upon loading the save file. If this happens, holding Start while loading the file will spawn you in the unused AnimTest map, hopefully avoiding the crash.
    • Add displaying of loaded texts and fonts.

v2.1.0 ()

  • Menus can now scroll.
  • Fixed: Map Size setting no longer applies to other PDA modes.
  • Fixed: Frozen Baddies cheat should work everywhere.
  • Improved memory management for greater stability.
  • Debug:
    • Several fixes/improvements to debug free camera mode.
    • Add debug object display.
    • Add heap display.
    • Add map grid display.
    • Add lots of player state display.
    • GameBit log/menu now shows names.
    • While time is stopped (press Start on controller 3), press Y on controller 3 to advance a frame.
    • Add Map States menu.
    • Add "Goto Last Save" in Map menu.
    • Fixed: alloc fail count no longer always zero.
    • Fixed: warping now works when Free Move is on.
    • Fixed: should no longer crash, run out of memory, or fail to load objects when warping.

v2.0.2 ()

  • Fixed: character turning around when tapping L with certain camera settings.

v2.0.1 ()

  • Fixed: music volume is no longer reset to 0 at startup.
  • Fixed: missing sound effects in menus.
v2.0 accidentally reset the music volume to zero at the title screen. This setting would then be saved when you saved the game. After updating to v2.0.1 you can turn the volume back up and save again.

v2.0 ()

  • Code ported to C and restructured to use less memory.
  • Menus restructured.
  • Applied Vague Rant's aspect ratio/viWidth fixes.
  • New features:
    • Particle effects can be turned off.
    • Fur effect can be turned off.
    • HUD can be turned off.
    • Player can be set to "Auto" (Krystal for the beginning, Fox for the rest of the game).
  • PDA map zoom can be adjusted from menu, and has more range.
  • New debug functions:
    • Press Start on controller 3 to toggle time stop.
    • Cheats (infinite HP/MP/money/lives/Tricky energy, frozen baddies).
    • Color scaling can be adjusted.
    • Krystal and Fox player states can be edited independently.
    • Player state editor includes Tricky food.
    • Display GameBit changes on screen.
  • Some not-very-useful debug functions removed.
  • Changing settings (volume, widescreen, subtitles...) in the menu and saving the game should now save those settings.
  • General system stability improvements to enhance the user's experience.

v1.7 ()

  • Can press Z to skip Arwing flying sections.
  • Disable autosave during cutscenes, to prevent breaking some scripted events.
    If your save is affected by this, try repeating the previous events. eg if you quit after finishing the race in CloudRunner Fortress, you will need to repeat it to progress.
  • Add emergency free function when memory is running out, to delete unimportant objects to avoid crashes.
    This only kicks in when memory is already extremely low. If you see rainbow textures/cubes in strange places, you should save and reset the console immediately.
  • New, more useful crash screen.
  • Rumble Blur should reliably stop blurring.
  • Title screen displays correctly on real hardware.
  • Staff Booster should reach high enough everywhere.
  • Show some console info on startup screen.
  • General system stability improvements to enhance the user's experience.
  • Debug functions:
    • Add free camera function.
    • Add environment menu.
    • Add memory editor.
    • Add respawn point display/set/clear/activate functions.
    • Fixed some crashes when debug text is on.
    • Fixed crashing when selecting certain objects in the spawn menu. (Trying to actually spawn them will still crash, since they're invalid.)
    • Object spawn: now actually uses parameters, and you can specify coords.
    • Object list: show objects' unique IDs instead of ObjDef numbers.
    • Holding Z at startup turns on fewer debug texts.
    • Fixed editing player MP.
    • Debug text stays in title-safe area when not running on emulator.

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, extherian, for some bug fixes.
  • BanjoDude98 for identifying the original fonts.
  • Nightfox for testing and debugging.
  • Jeebs' Game Shack for finding out how to prevent Dragon Rock Bottom from crashing.
  • 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.