Difference between revisions of "HOWTO-Debug-Endian-Issues"

Jump to navigation Jump to search
Line 20: Line 20:


The current reference VM is a pre-configured Debian 8.11 PowerPC system<ref>Modern versions of Debian are actually still built for big-endian PowerPC, but it's not a ''release'' architecture anymore, which means that it's only available through Debian ''unstable''. Debian unstable is harder to maintain than a stable release, and bugs/reliability issues often appear (e.g. Valgrind has been having PPC SDL compatibility problems for years), especially  on non-mainstream architectures. This is why we're sticking with a Debian 8 VM for now.</ref>. It has been modified to feature an updated C++11 toolchain (GCC 5.5.0).
The current reference VM is a pre-configured Debian 8.11 PowerPC system<ref>Modern versions of Debian are actually still built for big-endian PowerPC, but it's not a ''release'' architecture anymore, which means that it's only available through Debian ''unstable''. Debian unstable is harder to maintain than a stable release, and bugs/reliability issues often appear (e.g. Valgrind has been having PPC SDL compatibility problems for years), especially  on non-mainstream architectures. This is why we're sticking with a Debian 8 VM for now.</ref>. It has been modified to feature an updated C++11 toolchain (GCC 5.5.0).
The VM image is quite large, so ask the rest of the team for its URL.


Some important notes:
Some important notes:
Line 27: Line 25:
* Security support updates have been discontinued for Debian 8 in late 2018. Older cryptographic ciphers and certificates (such as in TLS or SSH) in the base system may also cause various issues. For this reason, this VM should only be run ''on a local, trusted environment''.
* Security support updates have been discontinued for Debian 8 in late 2018. Older cryptographic ciphers and certificates (such as in TLS or SSH) in the base system may also cause various issues. For this reason, this VM should only be run ''on a local, trusted environment''.
* '''3D games and audio content will be hard to debug''' on this environment, since QEMU only provides a limited, unaccelerated framebuffer, and no sound card support yet<ref>Actually, PPC audio support has been added in [https://gist.github.com/akemin-dayo/0e9bdcd74b2ad7f0bcf56e0680256103 an experimental QEMU fork]. It may also be possible to force the VM to use an external USB DAC, thanks to [https://qemu-project.gitlab.io/qemu/system/devices/usb.html QEMU USB pass-through], but this requires more work and is untested.</ref>. Make sure that the ScummVM component you want to debug/test won't be impacted by this.
* '''3D games and audio content will be hard to debug''' on this environment, since QEMU only provides a limited, unaccelerated framebuffer, and no sound card support yet<ref>Actually, PPC audio support has been added in [https://gist.github.com/akemin-dayo/0e9bdcd74b2ad7f0bcf56e0680256103 an experimental QEMU fork]. It may also be possible to force the VM to use an external USB DAC, thanks to [https://qemu-project.gitlab.io/qemu/system/devices/usb.html QEMU USB pass-through], but this requires more work and is untested.</ref>. Make sure that the ScummVM component you want to debug/test won't be impacted by this.
* '''The bigger your host CPU clock rate, the better''': a 4 GHz CPU will bring noticeable improvement over a 3 GHz CPU, which is itself much better than a 2 GHz CPU, and so on. Note that QEMU emulation is mostly single-threaded, so having many CPU cores isn't really useful for this.
* '''The bigger your host CPU clock rate, the better''': a 4 GHz CPU will bring some improvement over a 3 GHz CPU, which is itself much better than a 2 GHz CPU, and so on<ref>For reference, a full build of ScummVM with only the SCUMM engine takes around 26 minutes in QEMU on an Intel i7 or an Apple M1, while the same build on a native PowerPC G4 7447A takes 13 minutes (all single-threaded).</ref>. Note that QEMU emulation is mostly single-threaded, so having many CPU cores isn't really useful for this.


=== Starting the VM ===
=== Starting the VM ===
The VM image is quite large, so ask the rest of the team for its URL.


Once you've downloaded and extracted the VM archive, you'll need to install QEMU for your system with your usual package manager (Windows builds are available [https://qemu.weilnetz.de/w64/ here]).
Once you've downloaded and extracted the VM archive, you'll need to install QEMU for your system with your usual package manager (Windows builds are available [https://qemu.weilnetz.de/w64/ here]).
149

edits

Navigation menu