Personal priority list for work done by JayFoxRox (one of many developers)
Feel free to leave comments below!
I'm open to giving away any of my tasks to speed things up.If you'd like to work on anything, contact me directly to avoid doing work I'm also doing (contact details in README).
Current priority list for tasks I work on
High-priority, mandatory steps (Project supervision; these tasks take up > 50% of my time but basically enable everyone to work more easily and quicker. If this is not done the entire project stagnates = What I must do):
Lower-priority list of tasks I personally work on after ensuring everybodys else work is being approved and verified (Actual progress, research and writing code on my own; here I can directly influence quality of emulation = What I want to do):
Create issue about "Optimize p:000b 0a8581 00000a (02 cyc) jclr #1,x:$ffffc5,p:$000a" (didn't I already do this?)
GTK Flickers issue
Surface cache (or FS refactors, so we can do this) (performance + accuracy improvements) (Waiting for mborgersons work)
Do experiments with Xbox crashdumps and plan when to write a tool (I tried this sometime, but couldn't make it work - dumps don't seem to contain register values?)
Retest QEMU TCG hostfloat/hardfloat support (See #20)
The order might change and new tasks can be added near the top if necessary (often if requirements for other tasks emerge; or if people depend on my work).
Click here to find out why I work on those specific tasks (long explanation!)
Just focusing on issues perceived by users (or even by myself) is a bad idea. I know that performance is the most critical issue XQEMU has. However, working exclusively on performance might result in problems in the future.
We should understand how an Xbox works first, then emulate those parts we understand, and then improve them performance wise.
I therefore focus on documentation, maintainability and accuracy first. If we understand what *should* happen, we can make it fast without accidentally breaking games by new performance optimizations. That means we can avoid tackling the same issues each time we find out something new.
I'm also a good reverse engineer, and have worked with almost all parts of an Xbox. So my time is best spend tackling those issues hardly anyone else is capable to work on at this point.
My time is also well spend explaining problems or encouraging new people to obtain these skills, so we have more people who can also work on these problems.
Click here to find out about my workflow (long explanation!)
My contributions to XQEMU typically start out as [tools or projects in XboxDev](https://github.com/xboxdev) or [my xbox-tools](https://github.com/JayFoxRox/xbox-tools). Once I created these small tools to observe behaviour of a real Xbox, I [document on XboxDevWiki](http://xboxdevwiki.net/).
From that documentation, me, or other developers can then create new emulation code for XQEMU (or other projects).
My tools can then be used to directly compare the behaviour of a real Xbox to XQEMU which means we can confirm the correctness of changes.
I also work on tools to integrate test results by John GodGames into this workflow, so we always know which games are affected by a change.
This leads to a very fast workflow, not only for me, but other developers who use my tools.
Tasks I'd like to see done
This is wishful thinking, as I'm not skilled enough, don't have enough time or don't enjoy doing each of these. Other XQEMU developers might also not agree with some choices.
This is my personal wishlist (in no particular order):
Personal priority list for work done by JayFoxRox (one of many developers)
Feel free to leave comments below!
I'm open to giving away any of my tasks to speed things up. If you'd like to work on anything, contact me directly to avoid doing work I'm also doing (contact details in README).
Current priority list for tasks I work on
High-priority, mandatory steps (Project supervision; these tasks take up > 50% of my time but basically enable everyone to work more easily and quicker. If this is not done the entire project stagnates = What I must do):
Lower-priority list of tasks I personally work on after ensuring everybodys else work is being approved and verified (Actual progress, research and writing code on my own; here I can directly influence quality of emulation = What I want to do):
p:000b 0a8581 00000a (02 cyc) jclr #1,x:$ffffc5,p:$000a
" (didn't I already do this?)The order might change and new tasks can be added near the top if necessary (often if requirements for other tasks emerge; or if people depend on my work).
Click here to find out why I work on those specific tasks (long explanation!)
Just focusing on issues perceived by users (or even by myself) is a bad idea. I know that performance is the most critical issue XQEMU has. However, working exclusively on performance might result in problems in the future. We should understand how an Xbox works first, then emulate those parts we understand, and then improve them performance wise. I therefore focus on documentation, maintainability and accuracy first. If we understand what *should* happen, we can make it fast without accidentally breaking games by new performance optimizations. That means we can avoid tackling the same issues each time we find out something new. I'm also a good reverse engineer, and have worked with almost all parts of an Xbox. So my time is best spend tackling those issues hardly anyone else is capable to work on at this point. My time is also well spend explaining problems or encouraging new people to obtain these skills, so we have more people who can also work on these problems.
Click here to find out about my workflow (long explanation!)
My contributions to XQEMU typically start out as [tools or projects in XboxDev](https://github.com/xboxdev) or [my xbox-tools](https://github.com/JayFoxRox/xbox-tools). Once I created these small tools to observe behaviour of a real Xbox, I [document on XboxDevWiki](http://xboxdevwiki.net/). From that documentation, me, or other developers can then create new emulation code for XQEMU (or other projects). My tools can then be used to directly compare the behaviour of a real Xbox to XQEMU which means we can confirm the correctness of changes. I also work on tools to integrate test results by John GodGames into this workflow, so we always know which games are affected by a change. This leads to a very fast workflow, not only for me, but other developers who use my tools.
Tasks I'd like to see done
This is wishful thinking, as I'm not skilled enough, don't have enough time or don't enjoy doing each of these. Other XQEMU developers might also not agree with some choices.
This is my personal wishlist (in no particular order):