Code Monkey home page Code Monkey logo

Comments (10)

StrikerX3 avatar StrikerX3 commented on June 30, 2024 3

There is now a native serial port driver for Windows. It's buggy, uses up 100% of a CPU core and tends to lock up very easily, but sometimes WinDbg connects succesfully for a brief moment and figures out that it is connected to an Xbox, like this:

WinDbg

Sometimes it goes even further and tries to load symbols for xboxkrnl.exe, but fails because they obviously are not available.

from strikebox.

StrikerX3 avatar StrikerX3 commented on June 30, 2024 3

OpenXBOX can now detect and respond to fatal errors and bug checks. It will also detect the running kernel version and log it.

Xbox fatal error

Xbox kernel version

from strikebox.

StrikerX3 avatar StrikerX3 commented on June 30, 2024 2

With #10 solved, StrikeBox can now boot into games.

image

from strikebox.

StrikerX3 avatar StrikerX3 commented on June 30, 2024 1

The new implementation is now ported to OpenXBOX. With some additional fixes, we can debug the virtual Xbox kernel! With it, I noticed that some IRQs are incorrect, which is likely due to an incomplete implementation of certain devices.
Here's the kernel debugger in action:

image

from strikebox.

StrikerX3 avatar StrikerX3 commented on June 30, 2024

Cxbx-Reloaded has an architecture we could use. See here.

from strikebox.

StrikerX3 avatar StrikerX3 commented on June 30, 2024

I ported over Cxbx-Reloaded's implementation of many devices, with the exception of NV2A for now. It seems that we're hanging at some point during initialization. The system clock should probably attached to PCI bus and remain disabled until the appropriate command is sent. But there's probably more stuff that needs to be done until we get past the system initialization code and go through the boot animation -- NV2A being an obvious missing component.

from strikebox.

StrikerX3 avatar StrikerX3 commented on June 30, 2024

Super I/O has been bumped up in priority since it will help debug some issues. I think the kernel is bug checking and the kernel debugger is trying to enable the serial port to tell us what is happening.

from strikebox.

StrikerX3 avatar StrikerX3 commented on June 30, 2024

Super I/O is implemented and seems to be working, but now we need to attach it to a serial port on the system and hopefully it will let WinDbg connect to the Xbox kernel debugger.

from strikebox.

StrikerX3 avatar StrikerX3 commented on June 30, 2024

I wrote a new implementation of the serial character driver for Windows that uses two threads: one for receiving data and processing events, and another for transmitting data. It can handle continuous streams of 115200 bps transfers both ways simultaneously without a problem.

I'll bring this over to OpenXBOX soon, and hopefully this will let WinDbg attach to the Xbox kernel without a problem.

from strikebox.

StrikerX3 avatar StrikerX3 commented on June 30, 2024

The kernel debugger sometimes prints the following message: ReadVirtual() failed in GetXStateConfiguration() first read attempt (error == 997.. This clearly means we need to emulate other hardware (in this case, XID / USB devices) before continuing.

from strikebox.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.