melonDS/src/teakra
Nadia Holmquist Pedersen 21e2a876ec build teakra's test_generator.cpp only if building its unit tests is
enabled

speeds up builds a bit
2024-02-24 01:47:04 +01:00
..
CMakeModules Add PoroCYon's DSP code. (#1123) 2021-06-06 18:27:26 +02:00
externals Update teakra (fixes #1441) 2022-05-13 20:31:24 +02:00
include/teakra more DSP unfucking: make Teakra directly use melonDS's NWRAM banks instead of trying to translate to a flat buffer, fixes bugs with the way the memory banks are ordered etc 2022-10-14 00:02:54 +02:00
src build teakra's test_generator.cpp only if building its unit tests is 2024-02-24 01:47:04 +01: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
appveyor.yml Add PoroCYon's DSP code. (#1123) 2021-06-06 18:27:26 +02:00
CMakeLists.txt Make clang shut up about -Wno-error=maybe-uninitialized in teakra 2022-10-23 16:52:18 +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

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.