dolphin/Source/DSPSpy
Pokechu22 00a5f99b6b DSPSpy: Fix incomplete result dumps
The current code expects new mail almost immediately after the last map was sent for it to be saved properly. However, I have a test program that ends up looping for 32768 iterations before it sends more mail; this resulted in an incomplete result dump. I've changed it to wait a frame between checking for mail, which solves that issue. This does slow down dumping, but the end speed matches the speed at which the UI updates the registers so this isn't a big deal (the UI waits a frame between mail normally). (Theoretically, it could take even longer for dumping to finish, so this is not a perfect solution. However, for tests that take that long to run, it would be better to save the existing results instead of re-running the test and saving that; that'd be something to do with later improvements.)
2022-06-01 21:55:56 -07:00
..
templates
tests Merge pull request #10694 from Pokechu22/dsp-assembler-error-messages-etc 2022-05-29 00:16:23 +01:00
util
.gitignore DSPSpy: Create .gitignore 2021-08-21 17:07:14 -07:00
ConsoleHelper.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
dsp_interface.cpp treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
dsp_interface.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
dspregs.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
DSPSpy.vcproj
DSPSpy.vcxproj msbuild: use default Project attrs 2022-04-27 15:26:43 -07:00
DSPSpy.vcxproj.filters msbuild: use default Project attrs 2022-04-27 15:26:43 -07:00
gba.txt DSPSpy: save and restore $sr properly 2020-06-08 04:21:41 +01:00
main_spy.cpp DSPSpy: Fix incomplete result dumps 2022-06-01 21:55:56 -07:00
Makefile DSPSpy: Remove build.sh and sbuild.sh 2021-08-21 17:07:14 -07:00
mem_dump.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
README.md DSPSpy: Create README.md 2021-08-21 17:07:14 -07:00
real_dsp.cpp treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
real_dsp.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00

DSPSpy

DSPSpy is a homebrew tool for experimenting with the GameCube/Wii DSP. It can also be used to dump the DSP ROMs.

Building

DSPSpy is built using devkitPPC; see the devkitPro getting started page for more information. DSPSpy also requires DSPTool to be built.

First, run DSPTool to generate dsp_code.h, for instance from tests/dsp_test.ds. The following commands assume an x64 Windows setup running in the DSPSpy directory:

../../Binary/x64/DSPTool.exe -h dsp_code tests/dsp_test.ds

To use the ROM-dumping code, run this:

../../Binary/x64/DSPTool.exe -h dsp_code util/dump_roms.ds

DSPTool can also generate a header for multiple DSP programs at the same time. First, create a file (in this example, it was named file_list.txt) with the following contents:

tests/dsp_test.ds
tests/mul_test.ds
tests/neg_test.ds

Then run:

../../Binary/x64/DSPTool.exe -h dsp_code -m file_list.txt

After dsp_code.h has been generated, simply run make to generate dspspy_wii.dol, which can be loaded by normal means.

Dumping DSP ROMs

Build DSPSpy with util/dump_roms.ds. When launched, DSPSpy will automatically create files dsp_rom.bin and dsp_coef.bin on the SD card (only SD cards are supported); DSPSpy can be exited immediately afterwards.