Interesting thing in Adventure Island 2

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
Interesting thing in Adventure Island 2
by on (#98333)
Hello all!
Two tracks from this game (to the third part of this game, I think, also concerns) on different systems (NES and Dendy) in emulators playing differently: in mode NES noise drums don't playbacking up to the end, and in mode Dendy - everythings alright (on the real Dendy also). For an example one of them in two versions is shown. The first file - in mode Dendy, the second - in mode NES.
http://rghost.ru/39626276 http://rghost.ru/39626290
Emulator "Nesemu" - exception! At loading this game in Nesemu - noise drums playbacking up to the end in mode NES!
It's interestingly, that NSF of this track on players of emulators and simply players plays differently. In Nestopia - don't playbacking up to the end, in FCEU - everythings alright. In Foobar with plugin "Game Emu" - also everythings alright, in VirtuaNSF - don't playbacking up to the end, but if in this player to put a tick near "Reset Value of $4017 is $40" - then everythings alright. Why? I understand, that it, in general, noncritically, simply interestingly.
Also same occurs to tracks at numbers 19 and 24.
Sorry, if not there has written. English I know not so, therefore I use the translator.
Re: Interesting thing in Adventure Island 2
by on (#98335)
This sounds like a consequence of the design of the Dendy vs the NES. On the Dendy, they made the video hardware run at 50FPS instead of 60FPS. But they tried to keep the sound hardware running at the same speed.
The NES sound hardware has features such as volume envelopes, where the volume of the sound decreases over time at a constant rate. It also has frequency sweeps, where the frequency of the sound can change over time.
Most games call their sound playback code once per frame. So they update the sound registers at 50FPS. But the Dendy is still running the sound hardware features at 60FPS. This means that sweeps and volume envelopes are running at 6/5 of their normal speed.
For volume envelopes, the sound volume will decrease 1.2x as many times. It sounds like that game has the volume envelope looping feature turned on, so the drum sound restarts once it reaches zero volume. This happens before the game plays the next drum sound. Thus, you get the double-drum effect.
This isn't supposed to happen, and it's an error introduced by the Dendy. (But it's because the game isn't properly programmed, really nobody should be looping volume envelopes)
Re: Interesting thing in Adventure Island 2
by on (#98337)
I've tested puNES, Nintendulator and Nestopia. Adventure Island 3 (USA) - Level3 (oak forest).
- puNES restarts "noise drums" in PAL and Dendy modes. NTSC is OK.
- nintendulator restarts noise drums in Dendy mode only. NTSC and PAL are OK.
- nestopia is similar to nintendulator.
Re: Interesting thing in Adventure Island 2
by on (#98340)
Dwedit wrote:
really nobody should be looping volume envelopes

Lx Rudis of Bügsük (Klax sound team) might disagree with this.