tildearrow / furnace

a multi-system chiptune tracker compatible with DefleMask modules
GNU General Public License v2.0
2.63k stars 207 forks source link

[Suggestions] Option to target the TI SN7, along with some other feature ideas #61

Closed N-SPC700 closed 1 year ago

N-SPC700 commented 2 years ago

The SMS PSG integrated into the VDP (the one Furnace targets) is a clone of the TI SN76489 that has 16-bit LFSR for noise generation. The original TI SN76489/TMS9919 chips have a 15-bit noise LFSR instead. While the first most obvious reasoning to target/convert between the two is due to the tuning on the periodic noise (a real SN7's lower bit-depth makes it play stuff like noise bass higher) .

The other reasoning is because the white noise generation, is very close to that of the GB and NES (in the GB's sense, pretty much identical) and being able to compose with this in mind instead of the clone chips, would be very useful also in part to the VGM players, which cannot find a reliable source (without killing a console) for the PSG clones, so instead they use a regular TI SN7 with the aformentioned differences.

The other thoughts i have are:

freq-mod commented 2 years ago

SN7 square channel PCM (similar to snoozetracker) (could be nice to have a second sample channel on genesis setup lol)

PSG PWM h-blank would be amazing, at last SN7 would be useful :rofl:

PCM on AY/SSG, as PC-98 composers employed SSGPCM, along with many demos for systems like the ZX Spectrum and Atari ST.

Second that. Some PC-98 80286 drivers, like PPZ, could output 3 chaneels of 5-bit PCM using software mixing. Even PMD had SSG PCM, with ability to play back 4-bit PCM samples on channel 3.

If above are possible, I would like to request Dual-PCM for YM2612

freq-mod commented 2 years ago

WHen it comes to SN7 flags, one thing is important - supposedly, volume level curve differs between the systems. SMS PSH and MD PSG can have some slight volume differencies. Same for AY-3-8910 and YM2149 - volume mode is also different, one being linear (might be wrong), second closer to logarithmic.

freq-mod commented 2 years ago

Also, for C64, different filter curves can be specified, if its possible to implement

tildearrow commented 2 years ago

and could use the .dmc sample format FT and other programs share.

.dmc loading implemented for 0.6.