Releases: AdrianCassar/xenia-canary
Release list
v6.0.0 | Xenia Canary Netplay
Xenia Canary Netplay - Xbox 360 Emulator
v6.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@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
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