Skip to content

stfs-writer 1.12b & mousehook 1.13.4

Latest
Compare
Choose a tag to compare
@emoose emoose released this 02 Jun 17:41

A build of the stfs-writer branch is available below
This is separate to mousehook & doesn't contain any KB/M features!
Existing Xenia saves won't work with this branch, but might work if you convert them manually, see NOTE section below.

stfs-writer adds three new features into Xenia:

  • STFS reading/writing support for savegames, so saves can now be copied to/from X360 with no in-between steps required
  • Title-update package support, so TUs can be applied to XEX/ISOs without needing to modify your on-disk game (also mounts TU to update:\ drive, so games can find things like new maps/characters/etc)
  • Cross-title save support, letting games access save from other titles that they've been allowed to access (eg. Borderlands 2 can read BL1 saves and give some extras if any exist, BlazBlue: Continuum Shift Extend can read the save of the previous Continuum Shift game, etc)

(see bottom of this post for list of changes)

NOTE: backup any existing Xenia saves before using this branch!
Games will not work with any existing saves and will likely delete/overwrite them!
For a possible method of converting existing saves, see my post here ("Easiest way might be to...")

If Xenia has given you trouble with TUs/DLC/saves in the past I'd appreciate it if you could try with this branch, hopefully most issues related to those might be fixed with it.

Again, you should backup any existing Xenia saves before using this branch, as it's likely games won't recognize them and will overwrite using the new STFS format.

The included readme details how to apply TUs/DLC & some info about transferring saves between Xenia <-> X360.

If you have any issues with this branch feel free to comment on the xenia-canary TU issue page, or make an issue report on this tracker.

(sometime soon I'll try getting this merged into canary_experimental too, would like to test it separately first though)


mousehook v1.13.4 updates mousehook to the latest Xenia code (framebuffer rewrite & other improvements)
This should improve performance for most users, & might help with some troublesome cards. No changes have been made to mousehook itself.

Built from https://github.com/emoose/xenia/tree/ge007-mousehook

Supported games:

  • GoldenEye XBLA (Nov 16th 2007, also renamed as 'Aug 25th 2007')
  • Perfect Dark XBLA (b33, b52 (TU0) & b102)
  • Halo 3 TU0/TU3 & 08172 'delta'
  • Halo 3: ODST
  • Halo Reach TU0/TU1
  • Halo 4 TU0/TU8

Go fullscreen with F11 for mousehook to work properly, and check the README for a list of keyboard binds & how to customize them yourself.

mousehook-related settings can be changed in the Documents\Xenia\xenia.config.toml file, inside the [MouseHook] section after the mousehook build has been run at least once.

Key bindings can be changed in the bindings.ini file, the readme explains the format used in there.

NOTE: This is an unofficial non-supported build of Xenia, don't expect to get much help/support for it.

Changelog

  • (v1.13.4) Rebase onto latest (as of 2021/06/02) Xenia-master code
  • (v1.13.3) GoldenEye: patch out "return to arcade" menu option
  • (v1.13.3) Perfect Dark: automatically disable auto-aim & lookahead, and skip sign-in message box
  • (v1.13.3) GoldenEye/Perfect Dark: disable camera when opening pause menu (bringing up/lowering watch)
  • (v1.13.2) GoldenEye: use better offset for disabling inputs/camera control (should allow camera to move during fade-in while keeping it disabled in cutscenes)
  • (v1.13.2) RawInput: add 'Modifier' button support, allows per-game input changes when held (eg. acts as 'walk' button in GE/PD)
  • (v1.13.1) GoldenEye: removed gun-centering delay
  • (v1.13) GoldenEye: initial mouselook/bindings support for Perfect Dark XBLA (TU0 and debug/devkit builds)
  • (v1.13) Halo3: added support for Halo 4 TU0/TU8
  • (v1.13) GoldenEye: added temporary 'ge_always_allow_inputs' cvar to prevent camera inputs from being ignored during cutscenes etc (mostly useful for speedrunners, will be removed once we find a better way to handle checking for fade-in)
  • (v1.13) GoldenEye: made fired bullets match up with swayed gun position
  • (v1.12.3) GoldenEye: tweaked gun centering/sway, feels a lot better now
  • (v1.12.2) GoldenEye: add 'ge_gun_sway' cvar to allow disabling weapon sway
  • (v1.12.1) GoldenEye: add weapon sway when turning camera
  • (v1.12) MouseHook: update bindings.ini (default non-GE/Halo binds should match xenia-master now)
  • (v1.12) GoldenEye: speedup gun-centering, hopefully closer to gamepad now
  • (v1.12) MouseHook: support XBUTTON1/2 as mouse4/5, plus Alt and symbol keys
  • (v1.12) GoldenEye: add 'ge_menu_sensitivity' config var, simplify some code
  • (v1.11) MouseHook: allow custom key bindings set in bindings.ini
  • (v1.11) MouseHook: add support for ODST & Reach, and potential OOB-crash fix
  • (v1.10a) GoldenEye: fix bullets being fired toward last aim-mode crosshair position
  • (v1.10) GoldenEye: smoothly move gun back to normal position after aiming
  • (v1.10) RawInput: return 0 after handling inputs (maybe helps with crashes?)
  • (v1.10) GoldenEye: add 'disable_autoaim' config variable (default true)
  • (v1.9) GoldenEye: added checks to prevent camera from moving when it shouldn't be (cutscenes/menu/etc)
  • (v1.9) GoldenEye: automatically disable autoaim & lookahead settings
  • (v1.9) GoldenEye: improved camera turning/movement when in aim-mode (also added aim_turn_distance config var that can be tweaked to change the distance needed for camera to start moving)
  • (v1.8a) GoldenEye: limit gun/crosshair movement, allow camera movement when in aim mode
  • (v1.8) GoldenEye: allow mouse to move weapon & crosshair when in aim mode
  • (v1.7a) GoldenEye: allow mouse to move menu crosshair
  • (v1.7) Simplified some RawInput related code, might help with some strange edge cases.
  • (v1.7) Added support for Halo 3 via Halo3Game class - supports TU0, TU3 and the March 8th 'delta' builds.
  • (v1.7) Improved memory-accesses to use Xenia's TranslateVirtual function instead, may help with crashes on some systems.
  • (v1.7) Reworked code to use HookableGame class that supported games can inherit from, along with GoldeneyeGame class for handing GE XBLA.
  • (v1.6) Added 'remove_blur' and 'debug_menu' config vars to xenia.config.toml, to enable certain game patches (from xenia-canary's game-patches repo)
  • (v1.6) Added 'swap_wheel' config var to allow swapping the scroll-wheel binds
  • (v1.6) Swapped scroll-wheel, scroll-down is next weapon, scroll-up is previous
  • (v1.6) Bound Tab to Back button (for objectives) - thanks to Graslu00 for suggesting!
  • (v1.5) Change scroll-wheel to next/prev weapon, bind Enter to start button - thanks to Graslu00!
  • (v1.5) Keep mouse pointer inside fullscreen game window (hopefully)
  • (v1.4) Add support for keyboard raw input
  • (v1.4) Make WinKey input driver take precedence over others
  • (v1.4) Now uses 'Q' to swap weapons, and 'F' to swap gadgets
  • (v1.3) Added 'invert_y', 'swap_buttons' & 'sensitivity' config variables, change them inside xenia.config.toml under [MouseHook] section after running the mousehook build
  • (v1.2) Fix negative mouse-wheel movements, swap actions for wheelup/wheeldown
  • (v1.1) Now uses RawInput instead of window-input, lets us remove some hacks and get better mouse data
  • (v1.0) Initial release using window-inputs, keeps mouse pointer hidden when in fullscreen

TODO

  • Add support for other games (if anyone has any leads on camera offsets let me know and I'll gladly try working them in!)
  • Improve key remapping (other keyboard layouts? anyone want to make a remapping GUI?)
  • Allow changing FOV
  • GE: stop camera movement when watch is being brought up/lowered
  • GE: remap right-click as B button during menus
  • GE: improve weapon sway
  • PD: support aim-mode, gun movement/centering/sway, automatically disable auto-aim
  • Backport to June 2020 Xenia for AMD users (which June 2020 build/commit works best?)

stfs-writer changes

  • (v1.12b) fixes a ~1-in-10 chance of crashing at game launch, and fixes small issue with STFS signing
  • (v1.12a) fixup XamAppEnumerateContentAggregate & merge XCONTENT_INTERNAL_DATA into XCONTENT_AGGREGATE_DATA, hopefully prevents some games freezing when checking DLC/saves
  • (v1.12) add support for cross-title save loading, for games that implement it with XamContentAggregate* (some games use a different unsupported method, but majority use XamContentAggregate afaik)
  • (v1.11a) undo "minor perf improvements" from v1.11 as they were faulty and broke STFS reading ;_;
  • (v1.11) copy title-thumbnail into package headers, trim unused blocks from package, minor perf improvements
  • (v1.10c) set flag for contiguous package entries, fix entry timestamp not being set
  • (v1.10b) set STFS metadata.console_id from keyvaults console ID
  • (v1.10) add STFS package signing support, and allow changing the device_id & profile_id values via xenia.config.toml
  • (v1.09b) add some minor STFS improvements, now flushes out STFS headers whenever an inner-file is closed by the game
  • (v1.09) check XEXP applicability via target-XEX hash instead of comparing execution-info/media ID
  • (v1.08b) added extra debug-logging around the TU search (use log_level 3 to output it into log file)
  • (v1.08) add support for per-disc TUs (eg. xexp is stored in \disc001\default.xexp file instead of \default.xexp in the TU)
  • (v1.07) actually rehash any blocks that are modified, and fix issue with package-size getting massively increased
  • (v1.06) only check against two execution-info fields instead of the whole execution-info, as exec-info can differ between TUs & XEX (fixes issues with disc-games not working with TUs)
  • (v1.05) fixed bug with wrong size being used for XEXP patched-header-buffer, which made it overwrite some important data instead
  • (v1.04) added a way for CON packages to be reset/cleaned up when all inner-files have been deleted, so that we don't need to rely on possibly-bad hash-table data as much
  • (v1.03) changed ListContent to return content display_name in the titles desired default language (improves support for non-english DLC)
  • (v1.02) fixes crash when games try deleting content
  • (v1.01) fixes issues with DLC package filenames
  • (v1.0) initial release