JayFoxRox / xbox-tools

A collection of tools related to original Xbox
62 stars 11 forks source link

python-scripts: dsp_homebrew doesn't work reliably #15

Closed JayFoxRox closed 6 years ago

JayFoxRox commented 7 years ago

It only works sometimes. Also it's not yet known what the bootrom does, there seems to be a lot of strange stuff happening during reset.

JayFoxRox commented 6 years ago

This is an understatement.. I tried to run this hundreds of times and it only worked twice? Even then I wasn't quite sure it it was working, or if I was seeing my inputs repeated as part of an error.

I also crashed my Xbox many many times running this script.

The major change from back then to now, is that I've switched from nxdk-rdt to XBDM. However, I tried code which does use DirectSound and code which does not use DirectSound and neither worked.

I remember this running slightly better, so I'll retry running with nxdk-rdt soon. But I wouldn't recommend anyone to trust this sample!


Ideally this will be rewritten to re-initialize the entire APU, rather than just the EP.

JayFoxRox commented 6 years ago

Edit: I tried none of the stuff below as I found other issues first, see #56

I have the theory that the reset might not be complete or that there is an error condition somewhere. I'll start by dumping more of the APU state to file.

I also worry there might be some startup code so the PC might be somewhere where I don't expect it. I'll try to write the following code over the entire address space:

  move #0, x0
  move x0, x:$0
  move #1, x0
  move x0, x:$0
...
  move #254, x0
  move x0, x:$0
  move #255, x0
  move x0, x:$0
  jmp mainloop

This way I should be able to see where the DSP is running from.