Probe Software Nintendo Famicom Music-Driver
Probe Software Nintendo Famicom Music-Driver | ||||||
|
Probe Software Nintendo Famicom Music-Driver is the official name of the sound driver used in all of Probe Software's NES games. It was programmed by Jeroen Tel, who was also the only person to use the driver. Jeroen has given the VGMPF permission to upload the source code for his music driver. You can find it here.
Jeroen wrote his music in 6502 assembly macros.
Contents
Release History
The first game to use the Probe Software Famicom Music-Driver was RoboCop 3, which was released both in North America and Europe. The last game to use the driver was Beauty and the Beast, which was only released in Europe. Despite Famicom being in the driver's title, none of the games using the driver were released in Japan.
At an unknown date, an unknown developer created Technocop, but the game and ROM were never released. However, Jeroen kept his source code over the years, and the music was converted into NSF.
Output
Jeroen's sound driver outputs to the RP2A03 and RP2A07. Like most NES drivers, when played on the RP2A07, the music plays a half-step lower and a little slower to account for the European 50 Hz refresh rate.
Games
Released | Title | Sample |
---|---|---|
1992-08-?? | RoboCop 3 (NES) | |
1993-01-?? | Overlord (NES) | |
1993-03-?? | Alien 3 (NES) | |
1993-09-?? | Bram Stoker's Dracula (NES) | |
1994-??-?? | Beauty and the Beast (NES) | |
Unreleased | Technocop (NES) |
Technical
Frequency Registers
The game uses the frequency registers in a non-standard way. Most games would like frequency registers like this:
AD 06 4E 06 EF 05 9B 05, etc.
Instead, Jeroen's driver has these lines of code:
FRQTABLO DB $AD,$4A,$EF,$9B,$4B,$FE,$B5,$73,$30,$F5,$BD,$87 ;1 DB $56,$25,$F8,$CD,$A5,$7F,$5B,$3A,$19,$FB,$DE,$C3 ;2 DB $AA,$92,$7B,$66,$52,$3F,$2D,$1C,$0C,$FD,$EF,$E1 ;3 DB $D4,$C9,$BD,$B3,$A9,$9F,$96,$8E,$86,$7E,$77,$70 ;4 DB $6A,$64,$5E,$59,$54,$4F,$4A,$47,$42,$3E,$3B,$38 ;5 DB $35,$31,$2E,$2C,$29,$27,$25,$23,$21,$1F,$1D,$1B ;6 DB $1A,$19,$18,$16,$15,$14,$13,$12,$11,$10,$0F,$0E ;7 DB $07 FRQTABHI DB $06,$06,$05,$05,$05,$04,$04,$04,$04,$03,$03,$03 ;1 DB $03,$03,$02,$02,$02,$02,$02,$02,$02,$01,$01,$01 ;2 DB $01,$01,$01,$01,$01,$01,$01,$01,$01,$00,$00,$00 ;3 DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ;4 DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ;5 DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ;6 DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ;7 DB $00
The "FRQTABHI" values correspond to the "FRQTABLO" values. For example, 06 in FRQTABHI corresponds to AD in FRQTABLO, and so forth. Here is the result:
C-8 = 07 B-7 = 0E A#7 = 0F A-7 = 10 G#7 = 11 G-7 = 12 F#7 = 13 F-7 = 14 E-7 = 15 D#7 = 16 D-7 = 18 C#7 = 19 C-7 = 1A B-6 = 1B A#6 = 1D A-6 = 1F G#6 = 21 G-6 = 23 F#6 = 25 F-6 = 27 E-6 = 29 D#6 = 2C D-6 = 2E C#6 = 31 C-6 = 35 B-5 = 38 A#5 = 3B A-5 = 3E G#5 = 42 G-5 = 47 F#5 = 4A F-5 = 4F E-5 = 54 D#5 = 59 D-5 = 5E C#5 = 64 C-5 = 6A B-4 = 70 A#4 = 77 A-4 = 7E G#4 = 86 G-4 = 8E F#4 = 96 F-4 = 9F E-4 = A9 D#4 = B3 D-4 = BD C#4 = C9 C-4 = D4 B-3 = E1 A#3 = EF A-3 = FD G#3 = 10C G-3 = 11C F#3 = 12D F-3 = 13F E-3 = 152 D#3 = 166 D-3 = 17B C#3 = 192 C-3 = 1AA B-2 = 1C3 A#2 = 1DE A-2 = 1FB G#2 = 219 G-2 = 23A F#2 = 25B F-2 = 27F E-2 = 2A5 D#2 = 2CD D-2 = 2F8 C#2 = 325 C-2 = 356 B-1 = 387 A#1 = 3BD A-1 = 3F5 G#1 = 430 G-1 = 473 F#1 = 4B5 F-1 = 4FE E-1 = 54B D#1 = 59B D-1 = 5EF C#1 = 64A C-1 = 6AD
Addresses
Alien 3: $1042F-$104D8
Beauty and the Beast: $14514-$145BD
Bram Stoker's Dracula: $1442F-$144D8
Overlord: $2C22F-$2C2D7
RoboCop 3: $1846E-$18516