Skip to content

Releases: AdrianCassar/xenia-canary

v6.0.0 | Xenia Canary Netplay

Choose a tag to compare

@AdrianCassar AdrianCassar released this 01 Aug 10:00

Xenia Canary Netplay - Xbox 360 Emulator

v6.0.0

Downloads

Netplay now works with over 500 games in some capacity see netplay compatibility.

Public Sessions: https://xenia-netplay-2a0298c0e3f4.herokuapp.com/

Xenia Web Services commit corresponding to this release: AdrianCassar/Xenia-WebServices@373fd83


πŸ“– Wiki:


We now have backend profile settings support which allows other players on the Xbox Live network to read each others profile settings. This feature allows gamerpics to work on Xbox Live and the ability to use avatars once supported. e.g. Doritos Crash Course

Periodic maintenance is now implemented this fixes issues with discovering sessions which several games were having issues with. This feature is also used for managing your own and friends presence which helps Minecraft detect when you're hosting a game for example. Using this feature Discord invites were added and can be used to implement friend invites in the future.

Stats were completely refactored which lays the groundwork for future stats and leaderboards support.

Noteworthy games that now work on Xenia Canary Netplay:

  • Import Tuner Challenge
  • Ace Combat 6: Fires of Liberation
  • Beautiful Katamari
  • Tenchu Z (Buggy but works)
  • Gears of War 3 (Improved Stability)
  • Every Party
  • Viva Pinata Trouble
  • Tony Hawk's Project 8

Thanks to the community for testing throughout development.


πŸ“‹ Summary

Since v5.0.0 was tagged:

  • 183 new commits
  • 166 source code files have been edited
  • 17,876 lines of code were added and 4,585 deleted
  • 4 code contributors

✨ Implemented:

  • Profile Gamerpic Support
  • Gamerpic Browser using https://xboxgamer.pics
  • Profile Settings
    • Displaying gamerpic in-game/online.
    • Ability to use avatar online once supported.
  • Periodic Maintenance
    • Updating sessions properties
    • Detecting friends presence
  • XLiveBase Schema Index Resolver
    • Fixes calling important xbox live functions.
  • Discord Invites
    • Invite your friends to join your Xbox-Live session from Discord.
  • Persistent console MAC address
    • Fixes loading imported Halo 3 campaign save from console.
  • Binding to network interfaces
    • Ability to bind networking to an interface for usage with virtual LAN tunnels.
  • Automatic Updater Checker

Graphical Interface:

  • Netplay Settings
  • Gamerpic Browser
  • UPnP and Ports Tracker
  • Improved Update Checker

Implemented Functions:

  • XamUserReadProfileSettingsEx (Online Capabilities)
  • XamReadString (Fixed Minecraft Leaderboards Strings)
  • XHttpCrackUrl
  • XamParseGamerTileKey (Gamerpics)
  • XamReadTileToTexture (Gamerpics)
  • XamReadTileToTextureEx (Gamerpics)
  • XamGetOnlineSchema

Stubbed Functions:

  • XamUserGetAge
  • XamGetToken
  • XamFreeToken
  • XAuthIsLocalSocketAllowed
  • XamUserValidateAvatarManifest (Avatar Editor)
  • XUserValidateAvatarManifest (Avatar Editor)
  • Metro Dashboard:
    • XamGetLiveHiveValueW
    • XamGetLiveHiveValueA
    • XamQueryLiveHiveA
    • XamProfileGetLiveLegalLocale
    • XamGetErrorStringFromWebService
    • XOnlineCallWebService
    • XOnlineGetWebServiceTaskBufferSize
    • XPassportGetMemberName
    • XPresenceInitializeEx

πŸ“ Config:

  • xlink_kai_systemlink_hack -> bind_interface - Useful for network Tunnels/VPNs e.g. XLink Kai.

Netplay Changelog: 10c05e0...v6.0.0

Full Changelog: v5.0.0...v6.0.0

v5.0.0 | Xenia Canary Netplay

Choose a tag to compare

@AdrianCassar AdrianCassar released this 02 Jul 22:37

Xenia Canary Netplay - Xbox 360 Emulator

v5.0.0

Downloads

Netplay now works with over 500 games in some capacity see netplay compatibility.

Public Sessions: https://xenia-netplay-2a0298c0e3f4.herokuapp.com/

Xenia Web Services commit corresponding to this release: AdrianCassar/Xenia-WebServices@85dc375


πŸ“– Wiki:


This release mainly improves stability and session discovery with three main achievements; XSession properties support, XLiveBase unmarshaller and XStorage implementations πŸŽ‰.

XStorage support and dumped content from Xbox Live allows these games to work on netplay.

To name a few games:
Armoured Core 4, Blur, Call of Duty 4: Modern Warfare, Call of Duty: Modern Warfare 2, Call of Duty: WaW, Chromehounds, Crackdown, Project Gotham Racing 3, Quantum of Solace, Super Meat Boy

Thanks to the community for testing throughout development.


✨ Implemented:

  • XSession Properties Support
  • XLiveBase Unmarshaller

XStorage support including backend:

  • XStorageBuildServerPath
  • XStorageDownloadToMemory
  • XStorageUploadFromMemory
  • XStorageEnumerate
  • XStorageDelete

Dumped XStorage content from Xbox Live repository: TitleManagedStorageArchiveXbox360

GUI:

  • Updater (Check for and download updates)
  • Redesigned friends list manager & directly join their session
  • Xbox Live rich presence shown via Discord rich presence and sessions website
  • Backend profile deletion (Useful for fixing XUID mismatch error)

More Functions:

  • XStringVerify
  • XUserFindUsers
  • XOnlineQuerySearch
  • XNetTsAddrToInAddr
  • XInviteGetAcceptedInfo
  • XamShowFriendsUI
  • XamShowCommunitySessionsUI

Stubbed Implementations:

  • XAccountGetUserInfo
  • XNetGetXnAddrPlatform
  • XContentGetMarketplaceCounts
  • XOnlineGetTaskProgress
  • XamPartyGetUserListInternal
  • XMarketplaceCreateOfferEnumerator
  • XMarketplaceCreateAssetEnumerator

πŸ”§ Improvements:

  • Blades Dashboard
  • Cleanup XamUserAreUsersFriends
  • Allow offline session creation
  • XamUserCreateStatsEnumerator Improvements
  • Assert struct sizes and misc struct adjustments
  • Added PreJoin endpoint to update players session id
  • Add session error codes and validation for Live featured sessions

πŸ› οΈ Bug Fixes:

  • Fixed XONLINE error codes
  • Fixed wrong contexts pointer in GetWeightedSessions
  • Fixed a player joining a session locally and remote
  • Fixed friends manager crashing when not logged into profile
  • Fixed copy_and_swap_truncating size in XStorageBuildServerPath
  • Fixed manager crashing when no profiles were signed in
  • Fixed displaying XUID in ShowGamerCardDialog when offline
  • Fixed X_ARGUMENT_ENTRY struct & cleanup
  • Fixed SessionWriteStats property type
  • Fixed potential null XUID for clips in XStorageBuildServerPath
  • Fixed parsing service id for services

πŸ“ Config:

  • xstorage_backend - Request XStorage content from backend and fallback locally, otherwise only use local content.
  • xstorage_user_data_backend - Store user data on backend (not recommended), otherwise fallback locally.
  • discord_presence_user_index - User profile index used for Discord rich presence [0, 3].

πŸ§ͺ WSASendTo Build

This build is identical to netplay with WSASendTo PoC overlapped implementation, it's unstable but games that require it may progress further.


Full Changelog: v4.0.0...v5.0.0

v4.0.0 | Xenia Canary Netplay

Choose a tag to compare

@AdrianCassar AdrianCassar released this 01 Jan 18:47

Xenia Canary Netplay - Xbox 360 Emulator

v4.0.0

Downloads

Netplay now works with over 400 games in some capacity see netplay compatibility.

Public Sessions: https://xenia-netplay-2a0298c0e3f4.herokuapp.com/

Xenia Web Services commit corresponding to this release: AdrianCassar/Xenia-WebServices@c5b24b3


πŸ“– Wiki:


✨ Implemented:

  • Support online XUIDs for xbox live profiles
  • Basic update feature
  • Network mode selector
  • Basic friends support
  • Join friends presence/sessions
  • Basic friends list manager
  • XFriendsCreateEnumerator
  • XPresenceCreateEnumerator
  • XSessionGetDetails
  • XSessionSearchByIDs
  • XSessionSearchWeighted
  • WSAEventSelect
  • XamUserGetAgeGroup
  • XamShowGamerCardUI
  • XamShowGamerCardUIForXUID
  • GetMembershipTierFromXUID
  • GetOnlineCountryFromXUID

πŸ”§ Improvements:

  • XamUserStatsEnumerator stability
  • Decouple server dependency for Systemlink
  • Generate XNKIDs for Systemlink
  • Blades dashboard marketplace stubs
  • Added XUID backend mismatch warning

πŸ› οΈ Fixed:

  • XamPartyGetUserList corruption
  • Adapter interface name corruption
  • UPnP refresh if unauthorized
  • api_list CSV parsing recursion
  • Port chaining from backend

πŸ“ Config:

  • network_mode - Network mode types: Offline, Systemlink, and Xbox Live
  • friends_xuids - Comma delimited list of friend XUIDs
  • xlink_kai_systemlink_hack - Enable hacks for XLink Kai support. Will break some games. See: https://www.teamxlink.co.uk/wiki/Xenia_Support

Binary Hashes

xenia_canary_netplay.zip

SHA-1: EA66FFD75DA4DFF9DCAE5779A2B6BC9357A853F2

xenia_canary_netplay_WSASendTo.zip

SHA-1: BF464EBB90CC320930DB401621477616D3E46428

  • This build is identical to netplay with experimental WSASendTo overlapped implementation, it's unstable but games that require it may progress further.

Full Changelog: v3.0.0...v4.0.0

v3.0.0 | Xenia Canary Netplay

Choose a tag to compare

@AdrianCassar AdrianCassar released this 17 Jun 18:06

Xenia Canary Netplay - Xbox 360 Emulator

v3.0.0

Netplay now works with over 300 games in some capacity see netplay compatibility.

Public Sessions: https://xenia-netplay-2a0298c0e3f4.herokuapp.com/

Xenia Web Services commit corresponding to this release: AdrianCassar/Xenia-WebServices@e21ba47


Wiki:


Improvements:

  • UPnP stability
  • XnAddr cleanup
  • Parsing of API responses
  • JSON objects for serialization and deserialization
  • XNetXnAddrToMachineId: Remove dependency on API
  • Return early from curl requests if XLiveAPI initialization failed
  • Store gamertags for leaderboard lookup on backend
  • Several bugs and stability fixes

Fixed:

  • Sessions are now discoverable over systemlink
  • XTitleServerCreateEnumerator: Cache response to reduce FPS spikes
  • XNetXnAddrToInAddr: check loopback address
  • Corrupt quality of service (QoS)
  • Generating gamertags

Implemented:

  • Host Migration
  • XNetQosLookup with multiple QoS lookup
  • Network interface selector
  • API address selector
  • Dump XLast data

Binary Hashes

xenia_canary_netplay.zip

SHA-1: CE26DFC8E94D49E14D43AA2242EF750812925524

xenia_canary_netplay_passthru.zip

SHA-1: D288BD29EC490955C88C00CFC8366232D82C32EF

  • Passthru build is identical to netplay with the added feature of raw keyboard input, this is typically used for games which have a developer console build in.

Full Changelog: v2.1.0...v3.0.0

v2.1.0 | Xenia Canary Netplay

Choose a tag to compare

@AdrianCassar AdrianCassar released this 11 Jan 14:50
  • Games now working:

    • MotoGP 14
    • MotoGP 15
    • L4D & L4D GOTY
    • Team Fortress 2 - TU 5
    • Team Fortress 2 Ranked
  • Bugs Fixed

    • Create a session when STATS are enabled. (Fixes STATS for CSGO)
    • QoS (Quality of Service) data spamming the xenia web server causing timeouts from Heroku.
    • Issue with infinite thread spawning
    • A bug with UPnP causing a crash
    • A bug with IP URLs in api_address not adding /
    • FM4 protect_zero = true requirement
    • TF2 protect_zero = true requirement
    • RDR GOTY from crashing
  • Config

    • offline_mode - Offline Mode
    • log_mask_ips - Do not include P2P IPs in xenia.log
    • stub_xlivebase - Return success for all unimplemented XLiveBase calls
  • General Improvements

    • Cleanup of XGI->XSession
    • Support for saving/loading session context
    • XLiveAPI Initialization
    • XSessionArbitration is now working
    • XUID Online/Offline Generation
    • If XUID is set to an empty string generate a new XUID
    • Netplay toolbar tab
    • Add support for routers with permanent leases (UPnP)
  • Regression

    • Leaderboard in L4D2 crashing due to CreateFriendsEnumerator.
  • XLiveBase

    • CreateFriendsEnumerator
    • XStorageBuildServerPath partial support
    • XStringVerify stub
    • DownloadToMemory stub
    • UploadFromMemory stub
    • XContentGetMarketplaceCounts stub
    • XUserMuteListQuery stub used by MotoGP 15

v2.0.0 | Xenia Canary Netplay

Choose a tag to compare

@AdrianCassar AdrianCassar released this 07 Nov 14:26
  • Games now working:

    • Call of Duty 2
    • Marvel Ultimate Alliance
    • Marvel Ultimate Alliance 2
    • Star Wars Battlefront III
    • Outrun Online Arcade
    • Marble Blast Ultra
    • DiRT
    • Resident Evil 5
    • Kung Fu Panda: SLL
    • Tom Clancy's Splinter Cell: Double Agent
    • The Outfit
    • Breach
  • Games now loading into main memu

    • Call of Duty titles
    • Quantum of a Solace
  • Implemented UPnP

    • Ports will be open for 1h and will refresh every 45 minutes.
    • Ports will be closed when canary closes.
  • Refactored all curl requests into XLiveAPI.cc

  • Config

    • upnp toggle
    • upnp_root root cache
  • Added submodules

    • wolfssl
    • miniupnp
  • Updated submodules

    • libcurl from 8.2.1 to 8.5.0
    • rapodjson to latest commit
  • XSession template from systemlink branch

Misc:

If the api_address ended with a forward slash it would result in two forward slashes causing requests to fail.
Improved Readme
Fixed mistakes in premake files
Rebased Canary

XSessionSearch sketchy implementation

  • Added Stubs:

    • XSessionSearchByID
    • XSessionSearchWeighted
    • XSessionFlushStats
    • XSessionModifySkill
    • XSessionGetInvitationData
  • XLIVEBASE Stubs:

    • XUserFindUsers
    • XOnlineQuerySearch
    • XUserCheckPrivilege
    • 50009 and 58035 fixed Xbox Live communication error for MotoGP 15 and required for Chromehounds.
  • XLIVEBASE Implemented:

    • GetServiceInfo

NetDll_XNetGetSystemLinkPort
NetDll_XNetGetBroadcastVersionStatus used by Marvel vs. Capcom 3

  • Removed
    • Building xenia-vfs-dump from CI/CD
    • xenia_canary_netplay.pdb from CI/CD zips to reduce download size.

Full Changelog: 5eb0d3a...v2.0.0

v1.0.0 | Xenia Canary Netplay

Choose a tag to compare

@AdrianCassar AdrianCassar released this 06 Nov 20:45

First version of Xenia Canary Netplay (PoC).

Full Changelog: canary_experimental...v1.0.0