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

Jump to navigation Jump to search
Use es1370 for the soundhw parameter, and add the two different options
(Update second draft of HOWTO on Debugging Endian Issues.)
(Use es1370 for the soundhw parameter, and add the two different options)
(3 intermediate revisions by 2 users not shown)
Line 21: Line 21:
** For all other systems, source code be downloaded from [http://www.qemu.org here]. Refer to your system and QEMU's documentation for help on compiling and installing this.
** For all other systems, source code be downloaded from [http://www.qemu.org here]. Refer to your system and QEMU's documentation for help on compiling and installing this.
* Configure QEMU to emulate a PPC machine.
* Configure QEMU to emulate a PPC machine.
** This should just be using the right binary i.e. qemu-system-ppc(.exe, .app), with some extra options to select an emulated sound device. Consult the QEMU documentation on your machine for full instructions.
** QEMU may exit with an application crash/DLL error on Win32. This generally indicates bad parameter settings, rather than an executable/dependency problem.
** For reference, the following Win32 batch file may be useful as a basis:<br>
@ECHO OFF
SET SDL_VIDEODRIVER=directx
SET QEMU_AUDIO_DRV=dsound
SET SDL_AUDIODRIVER=dsound
SET QEMU_AUDIO_LOG_TO_MONITOR=1
START qemu-system-ppcw.exe ^
-name debianPPC ^
-L Bios -vga std -soundhw es1370 ^
-m 512M ^
-boot menu=on,splash=./bootsplash.bmp,splash-time=3000 ^
-rtc base=localtime,clock=host ^
-hda debian_squeeze_powerpc_desktop.qcow2 ^
-cdrom GAME.iso ^
-net nic,model=ne2k_pci -net user ^
-no-reboot
pause
<br>
Note that for the '''soundhw''' parameter, some valid options are es1370 and ac97. Choose the one that works for you.
<br>
* Install a PPC Linux distribution onto the QEMU PPC VM.
* Install a PPC Linux distribution onto the QEMU PPC VM.
** [http://people.debian.org/~aurel32/qemu/powerpc/ Prebuild Debian PPC QEMU Images]
** The full method here is to create a blank QCOW2 disk image file with the qemu-tools and then use this as the main emulated hard disk via the "-hda" option, then add a Linux PPC CDROM ISO image using the "-cdrom" option, start QEMU and do the distribution installation procedure as normal.
** However, '''Debian Linux Squeeze for PPC''' is suggested as prebuilt disk images are available [http://people.debian.org/~aurel32/qemu/powerpc/ here]. Squeeze is preferred over Wheezy for this.
* Enable VM network access proxied via the host system.
** By default, QEMU should be providing a virtual ethernet network adapter to the VM, which will provide access to the internet via the host's connection. This can be checked by the normal methods such as ICMP ping within the VM OS. If this is not working, check on your host machine, then refer to the QEMU documentation for any missing configuration setting and to see if the hosted OS requires any device driver to allow this virtual device to work.
* Install any OS updates to the VM.
** Especially when using the prebuilt images, OS system updates should be done via the normal method to ensure up to date system libraries are installed.
*** Debian: <pre>apt-get update</pre>
* Install the ScummVM source code, required libraries and compile a debug build.
* Install the ScummVM source code, required libraries and compile a debug build.
* Within the VM, this can now be done as per a normal Linux build. For further information, check our [[Compiling ScummVM/GCC|GCC compilation instructions]] page
** Getting ScummVM source tree: <pre>git clone git://github.com/scummvm/scummvm.git</pre>
*** Refer to [[Developer_Central#Getting_started |here]] for more help.
** Install any required libraries: <pre>apt-get install libsdl12dev</pre>
** Compiling ScummVM: <pre>cd scummvm && ./configure && make clean && make</pre>
*** Refer to [[Compiling_ScummVM/GCC |here]] for more help.
* Provide game data to the VM.
** Though QEMU can provide access to host directories as emulated FAT formatted drives by this option: <pre> -drive file=fat:ro:some-directory</pre>, this only supports FAT-16 and is thus limited to 2GB maximum. It is suggested to use the <pre> -cdrom </pre> option with a ISO image instead. CD swapping is not possible, but it is fairly easy to create a ISO image from a set of files in the same way as prior to writing a CD.
** Transferring data to the host VM by normal network file transfer is also possible i.e. SSH from the VM to host or another machine, HTTP download, etc.
* Install debugging tools.
* Install debugging tools.
** <pre>apt-get install gdb</pre>
** <pre>apt-get install valgrind</pre>
*** Note: Valgrind is currently broken on Debian Squeeze PPC. If you want to install this, you will need to add the apt repositories for "Wheezy" and install the updated version from there.
* Debugging can then be done as per a normal native Linux machine, though patience may be required as the VM will be much slower than a native machine.
A preinstalled standard desktop Debian Squeeze PPC QEMU hard disk image in qcow2 format can be provided by the ScummVM development team, but since this is over 5GB, this is currently only provided on request, rather than on the download site.
== Debugging for Other Architectures ==


== GXemul ==
The instructions above should be valid for emulation and debugging of other uncommon machine architectures e.g. MIPS, provided that QEMU supports that architecture e.g. use qemu-system-mips, rather than ppc, and a Linux distribution or other Unix is available for that architecture as a installation CD ISO image.


* [http://gxemul.sourceforge.net/ Main Website]
However, there are a few architectures which QEMU does not support, notably [https://en.wikipedia.org/wiki/SuperH SH]. However, there is another general purpose CPU/machine emulator called [http://gxemul.sourceforge.net/ GXemul] which does support this and some other more esoteric platforms. This is less supported than QEMU, but this procedure should be possible with some modifications. Any notes on this would be gratefully received by the team.
1,489

edits

Navigation menu