Skip to content

Releases: AdrianCassar/xenia-canary

v5.0.0 | Xenia Canary Netplay

02 Jul 22:37

Choose a tag to compare

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

01 Jan 18:47

Choose a tag to compare

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

17 Jun 18:06

Choose a tag to compare

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

11 Jan 14:50

Choose a tag to compare

  • 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

07 Nov 14:26

Choose a tag to compare

  • 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

06 Nov 20:45

Choose a tag to compare

First version of Xenia Canary Netplay (PoC).

Full Changelog: canary_experimental...v1.0.0