The Super Metroid parallel to Running Hell in Cave Story ;First off, the music load. Use normal room code to load the instruments, then use the custom room transition code to add in a load after the instruments to load *only* music data (SPC ram 5828). Well, that didn't last long. New instruments GO Piano: Loop 0A8C, Pitch 0583. 'pianoe.brr' Organ: Loop 0000, Pitch 021C. 'KraidOrgan2.bin' Viola: Loop 07F2, Pitch 07DE. 'VIOLA.BIN Wow, the piano is being a pain to sound good. Last good data: 97 DF01234 End amplitude of good data: 268 original wav data: .105, .135, .16, .175, .19, .19, .19 3096, 3981, 4719, 5161, 5603, 5603, 5603 Target amplitude at end: 6144 Let's go with: 268, 1275, 2219, 3105, 3935, 4713, 4930, 5646, 5805, 5955 222221211 xkas code start org $8FE82C DL NewSongMusic org $838968 ;Temporary setup for Mainstreet to Energy Tank Slope door DW RoomTransitionCode org $83AD70 ;The free space for the custom room transition code LDA #$FF4B ;A new entry on the table defined above. Note: Make sure game is 16-bit when entering JSL $808FC1 LDA #$0005 JSL $808FC1 RTS org $DED1C0 ;Technically, any free space in the rom. Most likely later banks with the rest of music NewSongMusic: DW InstEnd-InstStart,$6CD2 InstStart: DB $0A : DB %10010110 : DB %01000000 : DB %11000111 : DW $AA04 ;Violin sort of instrument. DB $0C : DB %10001110 : DB %00000000 : DB %10101010 : DW $BC01 ;Drum InstEnd: DW DataEnd-DataStart,$5828 ;Block transfer data base $005828 DataStart: ;Actual data to use later ; DW Kraid1,Kraid2 ;Kraid1: ; DW Kraid1Pattern,$00FF,Kraid1 ;Kraid2: ; DW Kraid2Intro,Kraid2Pattern,$00FF,Kraid2+2 ;Kraid1Pattern: ; DW Kraid1Chan1,Kraid1Chan2,Kraid1Chan3,Kraid1Chan4,Kraid1Chan5,$0000,$0000,$0000 ;Kraid2Intro: ; DW Kraid2IntroChan1,$0000,$0000,$0000,$0000,$0000,$0000,$0000 ;Kraid2Pattern: ; DW Kraid2Chan1,Kraid2Chan2,Kraid2Chan3,Kraid2Chan4,Kraid2Chan5,$0000,$0000,$0000 ;Data to use for testing DW Kraid1 Kraid1: DW Kraid1Pattern,$00FF,Kraid1 Kraid1Pattern: DW Kraid1Chan1,Kraid1Chan2,Kraid1Chan3,Kraid1Chan4,$0000,$0000,$0000,$0000 Kraid1Chan1: ; DB $E5,$C0 ;Song volume: C0. Default ; DB $E7,$20 ;Song speed: 20. Default ; DB $E1,$0A ;Channel panning: 0A (center). Default ; DB $E9,$00 ;Transpose song: 00. Default ; DB $EA,$00 ;Transpose channel: 00. Default ; DB $ED,$FF ;Channel volume: FF. Default ; DB $F4,$00 ;Channel cents adjustment: 00. Default DB $E5,$FF DB $F6 ;Disable echo. DB $E0,$23 ;Instrument: String bounce with decay DB $E1,$07 ;Panning: Somewhat right DB $1A,$7F ;Note length 24, sound length 8/8, volume percent 8/8 DB $EF : DW K1C1Loop1 : DB $02 DB $EF : DW K1C1Loop2 : DB $02 DB $00 K1C1Loop1: DB $9C,$C8,$C8 ;E, held for 3 note lengths DB $A1,$C8,$C8 ;A DB $9E,$C8,$C8 ;G b DB $97,$C8,$C8 ;B DB $00 ;Return from loop K1C1Loop2: DB $9F,$C8,$C8 DB $9C,$C8,$C8 DB $9E,$C8,$C8 DB $A1,$C8,$C8 DB $00 Kraid1Chan2: DB $E0,$23 ;Instrument: String bounce with decay DB $E1,$0C ;Panning: Somewhat left DB $ED,$A0 DB $1A,$7F DB $C9,$C9 ;Wait 2 note length DB $EF : DW K1C2Loop1 : DB $02 DB $EF : DW K1C2Loop2 : DB $02 DB $00 K1C2Loop1: DB $97,$C8,$C8 ;B, 2 note lengths, then pause DB $98,$C8,$C8 ;C DB $9A,$C8,$C8 ;D DB $96,$C8,$C8 ;B b DB $00 K1C2Loop2: DB $9A,$C8,$C8 DB $97,$C8,$C8 DB $9A,$C8,$C8 DB $9C,$C8,$C8 DB $00 Kraid1Chan3: DB $E0,$24 ;Instrument: Low drum DB $1A,$7F DB $EF : DW K1C3Loop1 : DB $02 DB $EF : DW K1C3Loop2 : DB $02 DB $00 K1C3Loop1: DB $9C,$C8,$C8 DB $9C,$C8,$C8 DB $9C,$C8,$C8 DB $9C,$C8,$C8 DB $00 K1C3Loop2: DB $98,$C8,$C8 DB $98,$C8,$C8 DB $9A,$C8,$C8 DB $9A,$C8,$C8 DB $00 Kraid1Chan4: DB $E0,$24 ;Instrument: Low drum DB $EA,$0C ;Transpose up one octave DB $1A,$7F DB $C9 DB $EF : DW K1C3Loop1 : DB $02 DB $EF : DW K1C3Loop2 : DB $02 DB $00 DataEnd: DW $0000 ;End of block transfer xkas code end Test SPC code org $8FE82C DL NewSongMusic org $DED1C0 NewSongMusic: DW DataEnd-DataStart,$5828 ;Block data. Block size, start position is 5th song track pointer. Fixed length, 4 bytes base $005828 DataStart: DW ConducterStart ;Song track pointers, only one used. Variable length, fixed multiples of 2, 2-6. Max size may vary in other games ConducterStart: DW List30,$00FF,ConducterStart ;Conducter instructions. Play pattern List30 then loop infinitely. Variable length, any possible size. List30: DW InstrumentTests,$0000,$0000,$0000,$0000,$0000,$0000,$0000 ;Patterns loaded from conducter instructions. Only one pattern used in this example, with only channel 0 on. Variable length, fixed multiples of $10 bytes InstrumentTests: DB $E5,$A0 ;Song volume: A0 DB $E7,$30 ;Song speed: 30 DB $E1,$0A ;Channel panning: 0A (center) DB $E9,$00 ;Transpose song: 00 DB $EA,$00 ;Transpose channel: 00 DB $ED,$FF ;Channel volume: FF DB $F4,$00 ;Channel cents adjustment: 00 DB $F6 ;Disable echo. DB $E0,$17 ;Load instrument 17 DB $EF : DW TestLoop : DB $01 ;Run TestLoop once DB $E0,$18 ;Load instrument 18 DB $EF : DW TestLoop : DB $01 ;Run TestLoop once DB $E0,$19 DB $EF : DW TestLoop : DB $01 DB $E0,$1A DB $EF : DW TestLoop : DB $01 DB $E0,$1B DB $EF : DW TestLoop : DB $01 DB $E0,$1C DB $EF : DW TestLoop : DB $01 DB $E0,$1D DB $EF : DW TestLoop : DB $01 DB $E0,$1E DB $EF : DW TestLoop : DB $01 DB $E0,$1F DB $EF : DW TestLoop : DB $01 DB $E0,$20 DB $EF : DW TestLoop : DB $01 DB $E0,$21 DB $EF : DW TestLoop : DB $01 DB $E0,$22 DB $EF : DW TestLoop : DB $01 DB $E0,$23 DB $EF : DW TestLoop : DB $01 DB $E0,$24 DB $EF : DW TestLoop : DB $01 DB $E0,$25 DB $EF : DW TestLoop : DB $01 DB $E0,$26 DB $EF : DW TestLoop : DB $01 DB $E0,$27 DB $EF : DW TestLoop : DB $01 DB $E0,$28 DB $EF : DW TestLoop : DB $01 DB $E0,$29 DB $EF : DW TestLoop : DB $00 ;GoTo TestLoop. At the end, trigger next pattern instead of returning TestLoop: DB $7F,$7F ;Set note length 7F, sound length to 8/8, note volume to 10/10 DB $A0 ;Play a note DB $50 ;Set note length to 50 DB $A0 ;Play a note DB $40 DB $A0 DB $30 DB $A0 DB $A0 DB $20 DB $A0 DB $A0 DB $A0 DB $10 DB $A0 DB $A0 DB $A0 DB $A0 DB $A0 DB $A0 DB $7F,$3F ;Set note length 7F, sound length 4/8, note volume 10/10 DB $A0 ;Play a note DB $50 ;Set note length to 50 DB $A0 ;Play a note DB $40 DB $A0 DB $30 DB $A0 DB $A0 DB $20 DB $A0 DB $A0 DB $A0 DB $10 DB $A0 DB $A0 DB $A0 DB $A0 DB $A0 DB $A0 DB $00 ;End loop DataEnd: DW $0000 ;No more data to copy to SPC End of Test SPC code Instrument notes: 0: Shot sound, it sounds like 1: Grapple sound 2: Unknown. Buzzing. 3: 'click'. Maybe missile select. 4: Not sure. Not usable as a music effect anyways 5: ambient sound. Maybe. Engine-ish noise 6: X-ray or elevator sound 7: Might be powerbomb noise... if so, it's currently in slow-mo 8: Sounds like crumble block or explosion 9: static. Sort of. A: Musical. Sounds like a string bounce or something B: String 'bounce' without decay. Violin like, I guess. C: Simple tone, no decay D: Sounds like a hollow hit E: Water drop? F: Oddly short, sounds kind of like water splash 10: ambient sound, 'humming gears' is the best I can describe it. 11: Crash sound. 12: Static (Crash sound without decay). Sounds better than 9 as static 13: Samus hurt noise 14: Enemy hurt noise 15: More ambient sound, sorta like 5 16: Sounds like another hurt noise, but not quite like Samus. 03 instruments 17: Plucked string, almost 18: Held string. Does not sound good 19: muffled xylophone sound 1A: Muffled xylophone without decay 1B: Cymbal tap with fast decay 1C: Cymbal tap with less decay 1D: Musical hum, sort of. Fast decay 1E: Musical hum, sort of. Less decay 1F: Musical hum, sort of. No decay 20: Metroid 'skree'. 21: Metroid 'skree'. Slightly shorter 22: Metroid 'skree'. Slightly shorter again? 23: Metroid 'skree'. Still shorter? 24: Metroid 'skree'. Guess. 25: Metroid 'skree'. Louder. 26: Sounds like an earthquake, I guess. 27: metallic tap. 28: Same. 29: Same. 06 instruments 17: Crystalish sound 18: Horn of some sort. Resonant. 19: Vocal. Resonant 1A: a sort of continuous ocean roar, like the generic sound effect for space. 1B: Explosion or big drum hit. 1C: Sounds sort of like a vocal chord. Needs to be cut short to avoid staticy sound after it. 1D: Thunder/rain? 1E: Thunder/rain again? 1F: Rain/Thunder? 20: Sounds like a slamming door 21: Above 22 and on: More slamming doors, then metallic taps 09 instruments 17: metallic 'tic' 18: Tribal drum 19: Electric Guitar pluck? 1A: Violin short 1B: Violin like - no decay 1C: Vocal. Kinda quiet. 1D: Vocal, no decay, louder 1E: Ambient, low 'roar' 1F: Running water 20: Kind of a dull chime. (grandfather clock) 21: Same 22: More dull chimes, then metallic tapping 0C 17: crystaline chime, 2 tones 18: Simple horn 19: Violin, no decay 1A: Drum. Very distinct pitch 1B: Dull chime (grandfather clock) 1C: More chimes, then an earthquake, then metallic tapping 0F 17: Wooden ticcing sound 18: Wooden thud 19: Xylophone 1A: Drum 1B: Sort of like a deep string instrument, I guess 1C: tribal drum 1D: o_O Not a clue 1E: Loud buzzing. 1F: Not sure how to describe it. Between a crash and a tic 20: Growing vocalish sound 21: Insant vocalish sound 22: Insant vocalish sound, no decay 23: Louder, flat vocalish sound. No decay 24: Flat vocal sound, decay 25: Same as 23? 26: Earthquake 27: Metalic tapping. Etc. 12 17: Kinda like the metalic ticcing 18: Drum. Fairly distinct pitch 19: Sort of string instrument. Volume ramps up in half a moment 1A: Same string, instant volume 1B: Sounds like a woodwind 1C: Same woodwind, as far as I can tell 1D: Again, same woodwind 1E: Metallic ticcing 1F: Vocal, soft and decays 20: Loud vocal, no decay 21: Guitar pluck 22: Guitar pluck that doesn't decay 23: Broken glass. XD 24: Same broken glass 25: Same 26: earthquake 27: Metallic ticcing 28: Metallic ticcing 29: Metallic ticcing 15 17: Crystalish. Two *very* distinct tones. 18: Vocal. Decays 19: Vocal. Volume ramps up. 1A: Vocal. Instant volume, no decay 1B: String. 1C: Sounds the same as 1B. 1D: String, no decay 1E: Simple drum, fairly distinct tone 1F: squishy sound. 20: 1F ... 25: Dog bark 26: Monotone 27: Metallic ticcing, etc. 18 17: hollow thwack 18: quiet thwack + drum hit 19: solid thwack 1A: brass horn, decays 1B: Brass horn. Volume up, loud, no decay 1C: Same as 1B 1D: 1B 1E: Vocal. Decays 1F: Vocal. Builds up, no decay 20: Vocal. Instant on, no decay 21: Weird string, lots of vibrato 22: Squishy sound 23-25: Dog bark 26: Monotone 27: Metallic ticcing, etc. 1B 17: Two distinct tones, kinda resonant. Decays. 'Plucky' attack 18: Electric piano 19: Electric piano, no decay 1A: Wood pipe. Very distinct tone 1B: Crstyalish sound. Very little decay. May need to be sped up / higher pitch 1C: Dirty sounding horn 1D: Sort of odd guitar pluck 1E: Same, but with no decay 1F: Very airy pipe, no decay, resonant. 20: Sort of like a metroid 'skree'. 21: 20 22: 20 23: 20 24: 20 25: Nice ringing tone, average decay 26: Same without decay. Not so nice 27: metallic tic, etc 1E 17: very ringy crystalish sound. But has a bad-sounding attack 18: Ambient sound. Low, earthy 19: Ambient sound. Icky 1A: Ambient sound. More distinct icky 1B: Kinda like a low organ sound 1C-22: Metroid 'skree'! 23: Dunno how to describe it. Plastic pipe with a distinct pitch? 24: Metroid skree, v2 25: Broken glass 26: Monotone 27: metallic tapping, etc 21 17: somewhat crystaline ringing 18: Kinda like a car horn 19: Organ 1A: Drum. Very distinct tone. 1B-23: sort of like a metroid 'skree', but short 24: 1B, but lower 25: 1B, but higher 26: earthquake 27: metaliic tapping, etc 24 17: Snare 18: Cymbal tap 19: Electric guitar without decay 1A: High sound, sort of like a string 1B: High sound, no decay 1C: Horn, slightly muffled 1D: Digitized horn sound 1E: ambient sound, low 'roar' 1F-24: short metroid 'skree' 25: Ridley's roar 26: Fuzzy static 27: metallic tapping 27 17: 1E's ringy crystalish sound 18: Buzzer 19: Some sort of organ, very airy 1A: violin, no decay 1B: plucked string 1C: 1B without decay 1D-25: Kraid's roar 26: Crocamire's roar 27: metallic tapping 2A 17: chime/ding 18: Piano. Or probably Klavier 19: Wooden pipe/xylophone? 1A: Electronic humming 1B-24: Might be Spore Spawn's opening growl 25: Uagh 26: Monotone 27: metallic tapping 2D 17: This might be the typewriter noise. Not sure 18: atmospheric humming 19: Samus's ship flying to Ceres 1A: Monotone with decay 27: metallic tapping 30 17: Short electronic 'beep' 18: Humming noise. No decay 19: The ghost's noise 1A: Drum. fairly distinct pitch. 1B: splat. Lemmings must be falling off of cliffs somewhere. 1C: Short static burst with a waterdrip with a distinct pitch 1D: monotone with decay, etc 33