image image image image image image image image image image image image image image

DSP1Demo / DSP1デモンストレーション

title

This is a demonstration program used for showing the capabilities of the DSP1 coprocessor chip.

Thanks to Frank Cifaldi and The Video Game History Foundation, who preserved this! Also to Luigiblood, who assembled the source code.

By: Evan G
Last updated: July 5, 2020

The DSP1 chip was used to aid in Mode 7 rotation effects in SNES games. It is prominently used in games like Pilotwings and Super Mario Kart.

The DSP1 demo was first made public by Mike at Nintendo Player. It was part of a collection of prototypes that originated from Iguana Entertainment. The prototype board had writing on the back that indicated that the demo was likely burned at Iguana Entertainment. The original source code of the demo was just uncovered, and is posted below.

The DSP1 demo was programmed at Nintendo of Japan. The source code here includes the original Japanese source code files, plus ones that have been translated. The source includes a readme file:

Please Note...

This demo software is designed for use with the Nintendo SE
development system, or similar development systems that
support the DSP1 chip in memory mode 20 or 21.

The PW.MAP file must be loaded first with the ROM command
to use the DSP1 chip.

Some of the source code comments are not complete because
the original source was produced in Japanese using the extended
charter (16 bit) format. If you require these refer to the
DSPDEMO.ZIP file for the original sources.

For questions or comments relating to the DSP1 chip please call:

Robert P. Donker / NOA engineering

Robert P. Donker was the senior design engineer at Nintendo of America between 1984 and 1994. The comments in the source code indicates that they were translated by Shoya Tanaka, who is currently a project manager at Nintendo Research and Engineering. Most of the code is plain assembly, but the file SFMPK.ASM has details on how the code works.

The demo shows a blue wire-frame plain with "Nintendo DSP1" on one side, and "NEC µPD77C25" on the other side (the DSP1 chip was based on the NEC µPD7720). There are a number of coloured balls in the field of view. In the demo, you can scroll and rotate the scene. The date stamps of the files indicates that they were translated between November 1992 and February 1993. The date stamps on the Japanese files are from June and July 1992. Although the DSP1 chip existed from the very beginning of the lifespan of the SNES (Pilotwings was a launch title), they must have made this demo later on to promote its usage.

imageimage
Nintendo DSP1Rotated and squished
imageimage
NEC µPD77C25coloured balls

Luigiblood managed to assemble the code using official Nintendo development software, which was discovered by Jackhead last year. The assembled binaries from the original Japanese code and the translated code are slightly different, possibly reflecting some changes in the code. The Nintendo Player dump is also different, but more similar to the Japanese version. There are no visual differences between the demos, but they do de-sync if played simultaneously, so maybe there are some timing changes.

The Japanese source code is encoded in Shift-JIS, but some (likely) terminal related codes prevent it from being interpreted as such in text editors. For reference, I used the Linux program "iconv" to convert the files to UTF-8. As far as I can tell, the comments in the English version are a pure translation of the comments in the Japanese code, and do not offer any additional insight. The binaries did not have a proper internal header (which allows them to be played automatically in an emulator), so they have been modified to include it.

Download the source and binary files here

image
Nintendo Player's copy of the DSP1 Demo (front)
image
Nintendo Player's copy of the DSP1 Demo (back)

© Evan G. This site made by a Canadian, and fueled by beer. Do not use material on this site without permission.