diff --git a/!TheEscape/!Run_Intro,ffb b/!TheEscape/!Run_Intro,ffb index 8a8f20b..0fe20b6 100644 Binary files a/!TheEscape/!Run_Intro,ffb and b/!TheEscape/!Run_Intro,ffb differ diff --git a/!TheEscape/!Run_Intro,ffb.bas b/!TheEscape/!Run_Intro,ffb.bas index 318eee3..e1614d8 100644 --- a/!TheEscape/!Run_Intro,ffb.bas +++ b/!TheEscape/!Run_Intro,ffb.bas @@ -1,10 +1,79 @@ -MODE 4 +MODE 28 OFF CLS sprite_area% = FNload_sprites("Spr") +PROCdraw_sprite("intro_28",320,400) + + +DIM Notes$(12) +Notes$() = "A","A#","B","C","C#","D","D#","E","F","F#","G","G#" + +MaxComp% = 999 +DIM CompositionStart%(MaxComp%) +DIM CompositionNote%(MaxComp%) +DIM CompositionVolume%(MaxComp%) +DIM CompositionChannel%(MaxComp%) +DIM CompositionLength%(MaxComp%) + +PRINT "Loading composition" + +CurrentNote% = 0 +CurrentStart% = 0 + +REM DUn, dun, daan duhhn +PROCAddNote(CurrentStart%,1,"A4#",200) +PROCAddNote(CurrentStart%,2,"A5#",200) +CurrentStart% += 200 +PROCAddNote(CurrentStart%,1,"F3",200) +PROCAddNote(CurrentStart%,2,"F4",200) +CurrentStart% += 200 +PROCAddNote(CurrentStart%,1,"G3#",200) +PROCAddNote(CurrentStart%,2,"G4#",200) +CurrentStart% += 200 +PROCAddNote(CurrentStart%,1,"C3",200) +PROCAddNote(CurrentStart%,2,"C4",200) +CurrentStart% += 200 + +REM DUn, dun, daan duhhn +PROCAddNote(CurrentStart%,1,"A3#",200) +PROCAddNote(CurrentStart%,2,"A4#",200) +CurrentStart% += 200 +PROCAddNote(CurrentStart%,1,"F2",200) +CurrentStart% += 200 +PROCAddNote(CurrentStart%,2,"G2#",200) +CurrentStart% += 200 +PROCAddNote(CurrentStart%,1,"C2",200) +CurrentStart% += 250 + +REM Duh +PROCAddNote(CurrentStart%,3,"A3#",300) +PROCAddNote(CurrentStart%,4,"A2#",300) +CurrentStart% += 200 + +REM Dun De Da +PROCAddNote(CurrentStart%,1,"F1",20) +CurrentStart% += 50 +PROCAddNote(CurrentStart%,2,"A2#",5) +CurrentStart% += 20 +PROCAddNote(CurrentStart%,1,"D2#",200) +CurrentStart% += 180 + + +PROCAddNote(CurrentStart%,2,"D2",50) +CurrentStart% += 50 +PROCAddNote(CurrentStart%,1,"A2#",30) +CurrentStart% += 30 +PROCAddNote(CurrentStart%,2,"G1",50) +CurrentStart% += 50 +PROCAddNote(CurrentStart%,1,"C2",50) +CurrentStart% += 50 +PROCAddNote(CurrentStart%,3,"A2#",100) +PROCAddNote(CurrentStart%,4,"F2",100) +CurrentStart% += 100 + +PRINT "Loaded" -PROCdraw_sprite("intro_25",320,256) SOUND ON VOICES 4 @@ -13,39 +82,55 @@ VOICE 2,"WaveSynth-Beep" VOICE 3,"WaveSynth-Beep" VOICE 4,"WaveSynth-Beep" -SOUND 1,-10,189,200 -SOUND 2,-10,141,200 +StartCents% = TIME -SOUND 3,-10,169,200,200 -SOUND 4,-10,121,200,200 - -SOUND 1,-10,133,200,400 -SOUND 2,-10,181,200,400 - -SOUND 3,-10,149,200,600 -SOUND 4,-10,101,200,600 +FOR NoteID%=0 TO CurrentNote% + IF CompositionChannel%(NoteID%) > 0 THEN + WHILE CompositionStart%(NoteID%) > (TIME - StartCents%) + ENDWHILE + PRINT STR$(CompositionChannel%(NoteID%)) + " " + STR$(CompositionVolume%(NoteID%)) + " " + STR$(CompositionNote%(NoteID%)) + " " + STR$(CompositionLength%(NoteID%)) + SOUND CompositionChannel%(NoteID%),CompositionVolume%(NoteID%),CompositionNote%(NoteID%),CompositionLength%(NoteID%) + Key% = INKEY(0) + IF Key% >= 0 END + ENDIF +NEXT NoteID% -SOUND 1,-10,93,200,825 -SOUND 2,-10,141,200,825 - -SOUND 3,-10,73,200,1025 - -SOUND 4,-10,85,200,1225 - -SOUND 1,-10,53,200,1425 - -PROCdelay(1700) -PRINT "Press any key" - -A = INKEY(1000) - +PROCDelay(300) END +DEF PROCAddNote(Start%,Channel%,RealNote$,Length%) + CompositionStart%(CurrentNote%) = Start% + CompositionNote%(CurrentNote%) = FNEncodeNote(RealNote$) + CompositionVolume%(CurrentNote%) = -10 + CompositionChannel%(CurrentNote%) = Channel% + CompositionLength%(CurrentNote%) = Length% + CurrentNote% += 1 +ENDPROC +DEF FNEncodeNote(Note$) + Octave% = VAL(MID$(Note$,2,1)) + IF LEN(Note$) = 3 THEN + Note$ = LEFT$(Note$,1) + RIGHT$(Note$,1) + ELSE + Note$ = LEFT$(Note$,1) + ENDIF + + + NoteByte% = -1 + FOR NoteCount% = 0 TO 12 + IF Notes$(NoteCount%) = Note$ THEN + NoteByte% = NoteCount% + ENDIF + NEXT NoteCount% + NoteByte% = 41 + (4 * NoteByte%) + ((Octave% - 2) * 48) + IF NoteByte% < 0 THEN + NoteByte% = 0 + ENDIF +=NoteByte% REM Delay routine - thanks Sophie -DEF PROCdelay(n) +DEF PROCDelay(n) T%=TIME+n:REPEAT UNTIL TIME > T% ENDPROC diff --git a/!TheEscape/Spr,ff9 b/!TheEscape/Spr,ff9 index d0611e8..5b1285f 100644 Binary files a/!TheEscape/Spr,ff9 and b/!TheEscape/Spr,ff9 differ