melonDS/src/teakra
purringChaos e3b4350f44
Add PoroCYon's DSP code. (#1123)
* Add PoroCYon's DSP code.

* Remove some teakra iles that we dont need.

* make some requested changes.

* move DataMemoryOffset into namespace.

* use deault param.

* ad the switch change

* <Generic> forget about the default parameter
2021-06-06 18:27:26 +02:00
..
CMakeModules Add PoroCYon's DSP code. (#1123) 2021-06-06 18:27:26 +02:00
externals Add PoroCYon's DSP code. (#1123) 2021-06-06 18:27:26 +02:00
include/teakra Add PoroCYon's DSP code. (#1123) 2021-06-06 18:27:26 +02:00
src Add PoroCYon's DSP code. (#1123) 2021-06-06 18:27:26 +02:00
.gitignore Add PoroCYon's DSP code. (#1123) 2021-06-06 18:27:26 +02:00
.travis.yml Add PoroCYon's DSP code. (#1123) 2021-06-06 18:27:26 +02:00
CMakeLists.txt Add PoroCYon's DSP code. (#1123) 2021-06-06 18:27:26 +02:00
LICENSE Add PoroCYon's DSP code. (#1123) 2021-06-06 18:27:26 +02:00
README.md Add PoroCYon's DSP code. (#1123) 2021-06-06 18:27:26 +02:00
appveyor.yml Add PoroCYon's DSP code. (#1123) 2021-06-06 18:27:26 +02:00

README.md

Teakra

Build Status Build status

Emulator, (dis-)assembler, tools and documentation for XpertTeak, the DSP used by DSi/3DS.

Many thanks to Martin Korth and many other contributers for their help and their excellent GBATEK doc!

Contents

Please refer to README.md in the following directories for their detail.

  • src contains main source code for compiling portable libraries/tools. Detailed documentation for the Teak architecture and for peripherals is also here.
  • include contains the header for the emulator and the disassembler libraries.
  • dsptester contains the source code of a 3DS tool that tests processor instructions and registers
  • dspmemorytester contains the source code of another 3DS tool that tests memory read/write, MMIO and DMA.

General Information of the XpertTeak

The XpertTeak DSP consists of a Teak-family architecture processor, and peripheral components including DMA, interrupt controller and audio input/output ports etc. The exact architecture of the processor is still unclear. GBATEK states that the architecture is TeakLite II, the successor of the TeakLite architecture. Their evidence is the TeakLite II disassembler bundled in RealView Developer Suite. However, a Teak family debugger from here shows that the "TEAK(-REVA, -REVB, DEV-A0, -RTL2_0)" contains very similar registers and instruction set described in GBATEK, while the "TeakLite-II" contains very different registers and instructions. This shows that the architecture is likely the original Teak, introduced along with TeakLite as a "non-Lite" expansion to it.

DSi and 3DS both include XpertTeak. However, their uses of XpertTeak are pretty different. Most DSi games don't use it at all. It's used by the "Nintendo DSi Sound" and "Nintendo Zone" system utilities, and by the "Cooking Coach" cartridge (according to GBATEK), where it appears to be intended for audio/video decoding. On the contrary, 3DS games all use XpertTeak for audio decoding and output.