Added acceleration command lines, apitrace debugging tip and MCPX dump tip

Govert Versluis 2015-07-21 14:14:02 +02:00
parent 97905f9a94
commit 95a868a589
1 changed files with 12 additions and 1 deletions

@ -38,6 +38,8 @@ Here are some hashes. Check them to avoid common problems:
MD5 (3944_1M.bin) = e8b39b98cf775496c1c76e4f7756e6ed MD5 (3944_1M.bin) = e8b39b98cf775496c1c76e4f7756e6ed
MD5 (3944_256k.bin) = 542c62cb976a4993c8c5027dff9638ce MD5 (3944_256k.bin) = 542c62cb976a4993c8c5027dff9638ce
If your mcpx_1.0.bin has an MD5 196a5f59a13382c185636e691d6c323d you dumped it badly. It has a preceeding byte 0x7F which has to be removed (So the file starts with 0x33 0xC0 ..). Additionally one byte 0xEE has to be added to the very end of the file (So the file ends with .. 0x02 0xEE).
Create an Xbox hard-disk image: Create an Xbox hard-disk image:
* Create an xboxhdm cd-rom with the dashboard files * Create an xboxhdm cd-rom with the dashboard files
* Create a blank hard-disk file: ```qemu-img create -f qcow2 xbox_harddisk.qcow2 8G``` * Create a blank hard-disk file: ```qemu-img create -f qcow2 xbox_harddisk.qcow2 8G```
@ -47,7 +49,16 @@ Launch XQEMU with something like...
xbox-softmmu/qemu-system-xbox -cpu pentium3 -machine xbox,bootrom=mcpx_rom.bin -m 64 -drive file=xbox_harddisk.qcow2,index=0,media=disk,locked=on -drive index=1,media=cdrom -bios xbox_bios.bin -usb -device usb-xbox-gamepad xbox-softmmu/qemu-system-xbox -cpu pentium3 -machine xbox,bootrom=mcpx_rom.bin -m 64 -drive file=xbox_harddisk.qcow2,index=0,media=disk,locked=on -drive index=1,media=cdrom -bios xbox_bios.bin -usb -device usb-xbox-gamepad
You can run with KVM acceleration on Linux with:
xbox-softmmu/qemu-system-xbox -cpu pentium3 -machine xbox,bootrom=mcpx_1.0.bin,accel=kvm,kernel_irqchip=off -m 64 -drive file=xbox_harddisk.qcow2,index=0,media=disk,locked=on -drive index=1,media=cdrom -bios 3944_1M.bin -usb -device usb-xbox-gamepad
Finally, you can run with TCG acceleration using:
xbox-softmmu/qemu-system-xbox -cpu pentium3 -machine xbox,bootrom=mcpx_1.0.bin,accel=tcg -m 64 -drive file=xbox_harddisk.qcow2,index=0,media=disk,locked=on -drive index=1,media=cdrom -bios 3944_1M.bin -usb -device usb-xbox-gamepad
## Debugging Tips ## Debugging Tips
* QEMU can host a gdb stub! Launch with ```-s -S```, and with gdb run `target remote localhost:1234` * QEMU can host a gdb stub! Launch with ```-s -S```, and with gdb run `target remote localhost:1234`
* Protip: You can also attach to it with [IDA](https://www.hex-rays.com/products/ida/) if you're so inclined. You can then load in a database if you export it as a IDC script! * Protip: You can also attach to it with [IDA](https://www.hex-rays.com/products/ida/) if you're so inclined. You can then load in a database if you export it as a IDC script!
* XQEMU can emulate a XDK serial port (which with a debug bios hosts KD, as in [this](http://msdn.microsoft.com/en-us/library/hh406279.aspx) and [this](http://www.reactos.org/wiki/Techwiki:Kd))! Launch with something like ```-device lpc47m157 -serial unix:/tmp/xserial,server```. With some effort you can wrestle the unix socket into a vm for with WinDbg. There's also a very barebones perl KD client in scripts/windpl * XQEMU can emulate a XDK serial port (which with a debug bios hosts KD, as in [this](http://msdn.microsoft.com/en-us/library/hh406279.aspx) and [this](http://www.reactos.org/wiki/Techwiki:Kd))! Launch with something like ```-device lpc47m157 -serial unix:/tmp/xserial,server```. With some effort you can wrestle the unix socket into a vm for with WinDbg. There's also a very barebones perl KD client in scripts/windpl
* You can preceed your command line with apitrace trace -a egl (in case of EGL, change it for "glx" and "cgl") to generate an apitrace.