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

Jump to navigation Jump to search
Mention the Raspberry Pi being able to run big-endian NetBSD, just in case… untested
(Restore audio support thanks the ES1370 device from the 2014 howto. It still works for a Linux VM, the flag has just been renamed)
(Mention the Raspberry Pi being able to run big-endian NetBSD, just in case… untested)
 
(2 intermediate revisions by the same user not shown)
Line 8: Line 8:
#* Examples include the [https://www.raptorcs.com/content/BK1B01/intro.html Raptor Blackbird™] workstation. It is a powerful system which can run up-to-date Linux/BSD distributions, both in little-endian and big-endian modes.
#* Examples include the [https://www.raptorcs.com/content/BK1B01/intro.html Raptor Blackbird™] workstation. It is a powerful system which can run up-to-date Linux/BSD distributions, both in little-endian and big-endian modes.
#* Unfortunately, it's a pricey niche system, and there's no guarantee that big-endian OS options will be maintained for long.
#* Unfortunately, it's a pricey niche system, and there's no guarantee that big-endian OS options will be maintained for long.
#* NetBSD also allows [https://mail-index.netbsd.org/port-arm/2020/12/03/msg007117.html running a Raspberry Pi in big-endian mode], but this isn't been tested for ScummVM development yet.
# Running a native, older big-endian development system:
# Running a native, older big-endian development system:
#* Examples include buying an older G4 or G5 Apple PowerPC system, or an older SPARC64 Sun station<ref>Some MIPS and ARM boards also exist, but their quality can vary a lot, and although the MIPS and ARM architectures are theoretically bi-endian, in practice these development boards often only run in little-endian mode, nowadays. They can be useful for strict-alignment testing, though (but <code>-fsanitize=alignment -DSCUMM_NEED_ALIGNMENT</code> in UBSan on your regular desktop will also catch a lot of these issues).</ref>. They can often be bought second hand at very reasonable prices.
#* Examples include buying an older G4 or G5 Apple PowerPC system, or an older SPARC64 Sun station<ref>Some MIPS and ARM boards also exist, but their quality can vary a lot, and although the MIPS and ARM architectures are theoretically bi-endian, in practice these development boards often only run in little-endian mode, nowadays. They can be useful for strict-alignment testing, though (but <code>-fsanitize=alignment -DSCUMM_NEED_ALIGNMENT</code> in UBSan on your regular desktop will also catch a lot of these issues).</ref>. They can often be bought second hand at very reasonable prices.
Line 24: 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 will have a slow framerate, since QEMU only provides a limited, unaccelerated framebuffer for PPC. Make sure that the ScummVM component you want to debug/test won't be impacted by these limitations.
* 3D games will have a slow framerate, since QEMU only provides a limited, unaccelerated framebuffer for PPC<ref>Using the <code>-device ati-vga</code> QEMU option may bring an improvement at some point, but it's experimental and currently broken, especially with the old Debian 8 kernel.</ref>.
* '''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.
* '''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.


151

edits

Navigation menu