Releases: AdrianCassar/xenia-canary
v5.0.0 | Xenia Canary Netplay
Xenia Canary Netplay - Xbox 360 Emulator
v5.0.0
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
Xenia Canary Netplay - Xbox 360 Emulator
v4.0.0
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 Livefriends_xuids- Comma delimited list of friend XUIDsxlink_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
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
-
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 = truerequirement - TF2
protect_zero = truerequirement - RDR GOTY from crashing
-
Config
offline_mode- Offline Modelog_mask_ips- Do not include P2P IPs in xenia.logstub_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
-
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
upnptoggleupnp_rootroot cache
-
Added submodules
- wolfssl
- miniupnp
-
Updated submodules
- libcurl from
8.2.1to8.5.0 - rapodjson to latest commit
- libcurl from
-
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
50009and58035fixed 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-dumpfrom CI/CD xenia_canary_netplay.pdbfrom CI/CD zips to reduce download size.
- Building
Full Changelog: 5eb0d3a...v2.0.0
v1.0.0 | Xenia Canary Netplay
First version of Xenia Canary Netplay (PoC).
Full Changelog: canary_experimental...v1.0.0