vspcplay uses libSDL for it's display output. Most of the screen space is occupied by the
memory surface (512x512). There is a small menubar near the lower edge of the screen. See
below for details about each component.
The main component is the memory surface. The upper left corner is address $0000 and the lower
right corner is address $ffff. Reads are colored as blue, writes as green (read+write gives cyan).
PC (program counter) execution address are colored as red. Pixels slowly fades, but never completely thus leaving a footprint.
By moving the mouse over the memory surface, you can see a 128 bytes hexdump starting at the address
under the mouse pointer. You can toggle the hexdump address lock by clicking in the memory surface.
Colors used are the same as in the memory surface, but they are brighter for visibility.
The pitch dots represent the pitch of the sample for each track. Pitch increase as the dots moves
towards the left.
Each channel can have it's own left and right volume, which permits panning effects. There
is also a gain, which is sometimes used for enveloppe effects. Volume increase as the bars lengths increases.
The port tool allows you to change the values as if you were the Snes. With some games, you can
use this to play sound effects. In some other games, you can even change the tune.| Game | Files | Usage |
|---|---|---|
| Legend of Zelda 3 | loz3-*.spc |
Tune selection: Value in port $f4 selects the tune. Sound effects: Values in ports $f6 and $f7 plays sound effects. The value in port $f5 controls how the rain sounds. When set to $ff the rain stops. |
| Pilotwings | ptws-*.spc |
Tune selection: Value in port $f4 selects the tune. Do it
with a menu or information screen tune, otherwise a motor sound kicks
in. Sound effects: Port $f5 and $f7 plays sound effects and beeps. Port $f6 controls the pitch of the plane motor. |
| Super Mario World | smw-*.spc |
Tune selection: Values ranging from $0 to $1D in port $f6 selects
the tune being played. A value of $ff fades out the current tune. Sound effects: Values in port $f4 and $f6 plays sound effects. A Value of 1 in port $f5 plays the jump sound. Hurry up: If you put a value of $ff in port $f4, the hurry up sound will be played and the music will go faster. |
| Sim City | sc-*.spc |
Tune selection: Values from $01 to $13 in port $f4 select the tune. Sound effects: Values in port $f6 select sound effects due to user actions (place road segment, place zone, etc) Values in port $f7 is used to control additional sound effects such as airplane noise, disaster noise, etc. Other:If you change the value in port $f5, the music stops but sound effects will stay active. |
| Donkey Kong Country 1 | dkc-*.spc |
Id of sound effect selected by port $f5. Each time $f4 changes (eg incremented), the
sound effect is played. For sound effects, the most significant bit of $f5 is apparently not used. (eg sound $81 is the same as $01). Values between $77 and $7F in port $f5 seem to be used for other purposes (changing tune, etc.). When $fd or $fc is in $f5, each time $f4 changes, then playback speed is momentarily increased. Here is a list of the sound effects IDs. Those which I am not sure are between parentheses. dkc1.html |
| Donkey Kong Country 2 (Diddy's Kong Quest) | dkq-*.spc | Sound effects: Values ranging from $00 to $76 in port $f5 select the sound effect to be played when $f4 changes. |
| Donkey Kong Country 3 (Dixie Kong's Double Trouble | dkdt-*.spc | Sound effects: Values ranging from $00 to around $60 in port $f5 selects the sound effect to be played when $f4 changes. |
| Super mario kart | smk-*.spc |
Sound effects: Some values in port $f5 plays some in-game sound effects. Value ranging from $0 to $7f in port $f6 controls the player's kart motor pitch (value of 0 == off). The value in port $f7 controls the motor sound volume and panning of karts passing by. Other: Changing value in port $f4 from $00 to $ff plays a pause sound and reduce the music volume. When changed back from $ff to $00, the music resumes at it's initial volume. |
In december 2004, I followed caitsith2's schematics
(see his webpage for details)
to connect an snes APU (Audio Processing Unit) to a PC using the parallel port. The goal
was to play .spc files (Snes music files.
(I have a webpage about this project, see
Snes APU on a PC).
Thoses are save-states of the APU's CPU, the
spc700) on the unit without a Snes. The only drawback is that it takes about 5 seconds to load
the ~64KB spc file in the APU. Oh well...
| File | Type | Comments |
|---|---|---|
| vspcplay-1.4.tar.gz | Source |
Version 1.4, released 2022-07-22:
|
| vspcplay-1.3.tar.gz | Source |
|
| vspcplay-1.2.tar.gz | Source |
|
| vspcplay_win32.rar | Win32 Binary | Added --extra_time (Play x seconds longer than tag time) and --nice (try to reduce CPU used by graphics) command line options and win32 support (with a GUI frontend!!). |
| vspcplay-1.1.tar.gz | Source | |
| vspcplay-1.0.tar.gz | Source | Initial release |