The music of Final Fantasy Adventure glitches on my GBC, but not on my SGB nor my GBA.
The channel 3 (the custom wave one) randomly mutes and never output any sounds again until a new song is started.
Also, I belive sometimes there is notes on the square channels that ends prematurely instead of fading out nicely as they're supposed to.
This has probably something to do with the differences noted here :
http://gameboygenius.8bitcollective.com/gbdev-wiki/articles/Gameboy_sound_hardware
Altough the differences Super GameBoy or GBA are not mentionned. I guess there is differences with the GBA that actually are intentionnal (channel 3 has more features ?)
As far as I can tell, these extra features of GBA channel 3 are enabled only in GBA mode:
- Wavetable RAM is double-buffered in 32-step mode.
- New 64-step mode using both banks of wavetable RAM.
- Setting for 75 percent volume.
But GBA games tend to use channels 5 and 6 (8-bit PCM DMA) for their sound effects and music instead of the new features of channel 3.
The sound length difference that affects FFA's music is probably the same one that cuts short the bonus points sound in Panel Action Bingo. And the wavetable bug (GB BIOS doesn't clear wavetable data; GBC BIOS does) required a change to R-Type DX.
Well, FFA obviously don't use any GBA featues (was programmed many years before it), yet the GBA run its sound correctly when the GBC doesn't.
Quote:
But GBA games tend to use channels 5 and 6 (8-bit PCM DMA) for their sound effects and music instead of the new features of channel 3.
I'm honneslty surprised by how many games still uses Channels 1-4 on the GBA. Maybe half or so of games actually uses them extensively for at least their sound effects or their music, if not both, and I kind of like that, altough some exageratted and does sound exactly like the GBC.
What revision CGB do you have?
CGBs which have CGB-CPU-2 or CGB-CPU-3 mainboards have the "CGB CPU B" cpu/asic on them which has a known bug involving the sound core length counters, ask blargg about it. it completely screws up the music in prehistorik man.
The CGB-CPU-4 (CPU C) and CGB-CPU-5 (CPU D) asics have the bug fixed, as does the GBA (the GBA has its own bugs though, the drum noise in shantae is all screwed up).
(you can tell which mainboard you have by looking through the battery compartment of a clear/transparent case CGB, or taking an opaque case CGB apart, the MB revision is behind where the batteries are. You can NOT tell the MB revision by looking through the place where the battery cover tab goes, like on the DMG/old grey gameboy!)
(also if you have a CGB-CPU-0 or CGB-CPU-1, I'm interested in borrowing those, since the earliest two cpu revisions (CPU <blank> and CPU A) have not been adequately tested)
LN
Sorry I can't know which revision it is, even tough the case is clear.
It is written :
(C) 1998 Nintendo
CGB-CP****
an a screw is placed on the end of the text so that I cannot read it without taking the gameboy apart. I would do that, but the screw are triangular secured and I have no idea how to get arround that.
It's also written CGB-001 on the back, I have no idea if this is any indication.
I just tried Final Fantasy Adventure in an emulator and heard the wave channel drop out in the town music. It occurred when I was emulating the CGB-02 length clocking bug, and did not occur otherwise, so I bet you have a CGB-02. The bug basically decrements the length counter when a channel is triggered, even when length counter is disabled, causing the channel to become silenced unexpectedly. It was fixed in CGB-04 and CGB-05.
Just tried my ffa cart in my cgb-cpu-04 vs cgb-cpu-02; indeed; ffa is hitting the sound length counter bug, one of the sound channels (i think 3) is being muted when it should not be.
It is very noticeable even on the title screen theme, and it happens on many songs throughout the game, and not just on channel 3 (though channel 3 suffers the most because in some places it never gets reinited and hence stays muted forever)
The fact that it happens on the title screen and is easily audible means FFA is probably one of if not the best non-custom-test-rom carts for seeing what model CGB you have (if it works, you have a 4 or 5, if it fails, you have a ?1?, 2, or 3)
LN
Okay, nice find, thanks guys. Yes this also happens on the square chanels when a note ends up prematurely, but it is especially noticeable that channel 3 siltens completely and sometimes restarts (when the music change it's waveform ?) or simply never restarts until a new song is started.
So yeah I probably have a CPU-02 or CPU-03, altough I'd like to be able to take it apart to confirm this.
The reason is simple: in many songs in FFA, one channel serves as the sort of background 'bass drone', and is inited once at song start with the length counter disabled (which is broken on the CGB-CPU-02 and 03's "CPU B" cpu), and all notes on the channel are played by simply changing the frequency, and for channel 3, changing the volume shift to mute it when needed. (a good reason for this is that it prevents clicks caused by the phase counter being reset when the channel init ('start/key on') bit is set.)
Songs which never disable channel 3 are the title theme, the town song, and probably some others. The song in the first area after the miniboss (where willy dies) is also affected since i don't think it ever reinits the channel 3, just mutes it using the shift param when notes are not supposed to be on.
sometimes the other channels are cut early too, probably same length counter screwup.
In other words, FFA is one of the 'worst possible case scenario' games for this bug. but prehistorik man has it even worse...
LN
P.S. are the 3 final fantasy legend games affected by this bug as well? I think the FFL2 engine is the closest to the FFA engine...
FF Adventure is Seiken Densetsu, so really it's not a related game to FF Legend.
The Dungeon theme (it's nams is Dungeon in Sword of Mana's soundtrack so I guess that's all I can say about it) is less affected as it seems the channel 3 changes the waveform during the music, and if it was silenced it enables it again.
I don't know about FF Legend because I don't have the cartridges, I'd have to find them imported as they weren't released in europe (I have a friend who have FFL1 and I remember playing it with him). They probably uses more or less the same sound engine.
Also I remember playing the GBS in Meridian Advance where I would hear horribly high-pitched notes, so that was the proof the games relies on low period to silent it's notes (as Mega Man 1&2 does on the NES) and that the player of Meridian was not accurate.
PS : Final Fantasy Adventure *is* a Final Fantasy spinoff, it was released as "Seiken Densetsu : Final Fantasy Gaiden" in japan. It also features chocoboes, black mages and one status aliment turns you into a moogle.
Unlike FFA, Final Fantasy Legend games are not a part of the Final Fantasy series in japan, they are part of the SaGa series. And anyway the games are still releated because developped by the same people. The music composer in FFA is the same as FFL2&3, and the music composeer in FFL1 is the same as the rest of the true FF series.
Bregalad wrote:
Also I remember playing the GBS in Meridian Advance where I would hear horribly high-pitched notes, so that was the proof the games relies on low period to silent it's notes (as Mega Man 1&2 does on the NES) and that the player of Meridian was not accurate.
Yes, I noticed FFA silences square waves by running them at maximum pitch. I'd expect most emulators to skip sound synthesis for frequencies near the upper end.
Just tested FFL2 on the cgb-cpu-02 CGB, and indeed it suffers from the same issues FFA does. Only some themes are really adversely affected, such as the title music.
This sort of makes sense:
Kenji Itō and Nobuo Uematsu composed the FFL2 soundtrack in 1990
Kenji Itō composed the FFA soundtrack in 1991
So they probably do use the same engine.
LN