Xbox 360 Emulator Research Project
Go to file
emoose bfa6eee936 [Debug] Processor: breakpoint address fixes
- Update OnThreadBreakpointHit to use bp->ContainsHostAddress

Sometimes guest PC doesn't map to the x64 exactly, so ResolveStack may return
a guest PC different to the breakpoint that triggered it

Processor code would just skip the breakpoint entirely if PC didn't match
so any debugger wouldn't know what BP caused it

Luckily BP does have a ContainsHostAddress func which seems perfect, but was
somehow left unused

Also added a hack to nudge the PC we tell GDB about to the BP's PC

- Update StepGuest/HostInstruction to add step BP to front of map

Fixes an issue where a different BP might get triggered before the step BP
which could cause debugger to step again, causing assert error as a step BP
already existed

I noticed one more issue, if BPs are set on instructions very close together
it might act on the same x64 instruction, causing assert when a BP is already
placed and another BP tries to set on the same addr...

Not really sure what best way to fix that is yet, for now just don't place
BPs too close together!
2024-10-24 00:00:33 +01:00
.github [CI] Fix release condition 2024-10-18 11:02:55 -07:00
android/android_studio_project [Android] Exclude executables from app build 2022-07-17 17:11:48 +03:00
assets New logo 2023-07-28 02:45:55 -07:00
docs [Docs] Raise minimum Python+Visual Studio 2024-10-16 03:59:23 -07:00
src/xenia [Debug] Processor: breakpoint address fixes 2024-10-24 00:00:33 +01:00
third_party [3PP] Updated: Half, Xbyak, SDL2 2024-10-22 22:16:26 +02:00
tools moved vswhere to tools directory 2022-12-28 14:17:24 -06:00
.clang-format [UI] android.app.NativeActivity > WindowedAppActivity + code style 2021-09-18 20:32:24 +03:00
.codacy.yaml [Codacy] Fixed some issues found by codacy. 2024-01-20 13:19:37 +01:00
.drone.star [CI, Drone] Disable HighResolutionTimer test cases 2022-11-20 16:41:55 -06:00
.gdbinit [threading linux] Implement Callback Queuing 2020-11-15 11:12:05 -06:00
.gitattributes [GPU] Shaders to common, xb buildshaders instead of buildhlsl 2021-06-05 18:53:53 +03:00
.gitignore [MISC] Added devkit directory to gitignore file 2024-09-18 19:30:06 +02:00
.gitmodules [Misc] Removing unused files + misc fixes 2024-09-23 08:19:18 +02:00
LICENSE Adding CONTRIBUTING.md so that github shows it on issues. 2015-08-28 14:16:38 -07:00
README.md Canaryize 2024-10-13 15:11:47 -07:00
premake5.lua [Debug] Add PoC GDBStub server, fix breakpoints 2024-10-24 00:00:33 +01:00
xb Add xb symlink to xenia-build to match xb.bat for win 2017-07-11 11:47:24 -06:00
xb.bat Raise minimum Python version 2024-10-13 16:19:37 -07:00
xb.ps1 Raise minimum Python version 2024-10-13 16:19:37 -07:00
xenia-build Raise minimum Python version 2024-10-13 16:19:37 -07:00
xeniarc clang-format detection cleanup. 2015-08-01 00:41:46 -07:00

README.md

Xenia Canary - Xbox 360 Emulator

Xenia Canary is an experimental fork of the Xenia emulator. For more information, see the Xenia Canary wiki.

Come chat with us about emulator-related topics on Discord. For developer chat join #dev but stay on topic. Lurking is not only fine, but encouraged! Please check the FAQ page before asking questions. We've got jobs/lives/etc, so don't expect instant answers.

Discussing illegal activities will get you banned.

Status

Buildbot Status Releases
Windows CI Codacy Badge LatestAll
Linux Curently unsupported
Netplay Build Latest

Quickstart

See the Quickstart page.

FAQ

See the frequently asked questions page.

Game Compatibility

See the Game compatibility list for currently tracked games, and feel free to contribute your own updates, screenshots, and information there following the existing conventions.

Building

See building.md for setup and information about the xb script. When writing code, check the style guide and be sure to run clang-format!

Contributors Wanted!

Have some spare time, know advanced C++, and want to write an emulator? Contribute! There's a ton of work that needs to be done, a lot of which is wide open greenfield fun.

For general rules and guidelines please see CONTRIBUTING.md.

Fixes and optimizations are always welcome (please!), but in addition to that there are some major work areas still untouched:

See more projects good for contributors. It's a good idea to ask on Discord and check the issues page before beginning work on something.

Disclaimer

The goal of this project is to experiment, research, and educate on the topic of emulation of modern devices and operating systems. It is not for enabling illegal activity. All information is obtained via reverse engineering of legally purchased devices and games and information made public on the internet (you'd be surprised what's indexed on Google...).