Here is the context :
- I'm totally addicted to FoF
- Computers, in my school are small unix terminals (= minimalistic computers running on linux, connected to a huge workstation which does all the job) and can't run FoF.
So... I've reprogrammed a FoF game in C which can run on these computers !


Scores
I can't find how scores are calculated. When looking inside FoF sources, here is what I understood :
--> Every note gives 50pts (* nbr of chords)
--> For long notes, you have to add :
Code: Select all
noteCount = len(self.guitar.playedNotes)
pickLength = self.guitar.getPickLength(self.getSongPosition())
if pickLength > 1.1 * self.song.period / 4:
return int(.1 * pickLength * noteCount)
with getPickLength :
Code: Select all
pickLength = pos - self.pickStartPos
for time, note in self.playedNotes:
pickLength = min(pickLength, note.length)
return pickLength
... wich means (I guess) that you add the activation time * nbr of chord, and a maximum of "note length"*nbrchords if the player has activated the note a bit earlier. Am I right ?
Now... Here are the problems with this part :
- Why does the counter stops for a few moment when activating a long note, in FoF ? (it adds 50, stops, then begins incrementing again)
- How much points do you gain per note per second ? (I measured 50, but the .1 * pickLength * noteCount confuses me...)
Timings
I can't find the delay given to a player to activate a note. (I mean : you can activate a note a bit before and a bit after the line under the keys on the screen... but what are these "before" and "after" times, precisely ?) Are these time related to the stage speed (= related to the midi BPM) ?
Midi reading
For some reasons, I can't recognize every .mid file used in FoF. When manually parsing FoF mid files, I found that :
- Notes are located in track 1 (but the problem doesn't come from that since I read every track in the file).
- I found that the guitar part was played on channel 144 (but for some .mid it's 150... but if I take both 144 and 150 I have extra notes in some songs... Is channel 150 Bass Part or something ?)
- I found that notes 0x60->0x64 were amazing, etc. (and found confirmation of that point in FoF sources).
Is that correct ? Am I missing something ?
I've also problems with long notes. Sometimes notes have a short duration (0 second ? Special small value ?) and FoF considers them as long notes. Is the problem coming from my midi parser, fof parser, or is there a special value which indicates that if duration == value, then the note should last 'till the next note ?
If there's a good documentation on how midi file are interpreted in FoF, I'll be glad to read it...
Sorry to ask so much questions (in a bad english
