Have you ever wanted to replace your Sonic 1 sound driver with Sonic 2's? Less buggy, doesn't need loads of (non-Z80) RAM, frees up a little of the 68k, and is more compatible with the original music and SFX than S3K's driver.
It's certainly possible, but bumps in the road are plentiful, and soon, limitations of S2's driver will get in your way. The driver isn't the most usable: compression woes, the mess of porting the thing in the first place, there are only two music banks, one DAC bank, and a very limited number of music slots. Not to mention, the driver itself has very little room for additions to the code. There's also the total lack of support for Special SFX, which GHZ's waterfall uses, and the MZ push SFX behaviour.
Over time, there have come guides that correct these, and it seems the only hurdle left is S1 support. The process is a little... involved, so, rather than a guide, I think something pre-made would be better. I might still eventually split some of this into guides, but that's for another time.
I suppose I should bring up one interesting barrier, sound driver compression: Sonic 2's disasm assembles and compresses the driver at build time. The compression used is Saxman. S3K's and S1's disasms don't do this. Until recently, S1 didn't compress anything at all, but the addition of a disassembled Z80 DAC driver necessitated the addition of a compress-to-Kosinski function, which S3K also has. Changing this would require the user compile a modified s1p2bin. It would be easier to just make the driver settle for Kosinski compression, which I think is better, anyway.
Anyhow, here's a features list.
Features:
Download (code) | Download (ROM)
S1 VS S2:
Installation:
Fixing up the SEGA screen:
Correcting silence on screenmode change:
Expanding sound test:
Removing needless Z80 stops:
Changelog:
Credits:
Valley Bell - Bugfixes, S2Beta4 driver disassembly (source of Push SFX support)
Flamewing - SMPS2ASM, >$1F songs expansion, pointing out S3K's additional frequency values, improvement for DAC channel register setting
Vladikcomper - Elements of the DAC-related improvements
Clownacy - Making the driver good
It's certainly possible, but bumps in the road are plentiful, and soon, limitations of S2's driver will get in your way. The driver isn't the most usable: compression woes, the mess of porting the thing in the first place, there are only two music banks, one DAC bank, and a very limited number of music slots. Not to mention, the driver itself has very little room for additions to the code. There's also the total lack of support for Special SFX, which GHZ's waterfall uses, and the MZ push SFX behaviour.
Over time, there have come guides that correct these, and it seems the only hurdle left is S1 support. The process is a little... involved, so, rather than a guide, I think something pre-made would be better. I might still eventually split some of this into guides, but that's for another time.
I suppose I should bring up one interesting barrier, sound driver compression: Sonic 2's disasm assembles and compresses the driver at build time. The compression used is Saxman. S3K's and S1's disasms don't do this. Until recently, S1 didn't compress anything at all, but the addition of a disassembled Z80 DAC driver necessitated the addition of a compress-to-Kosinski function, which S3K also has. Changing this would require the user compile a modified s1p2bin. It would be easier to just make the driver settle for Kosinski compression, which I think is better, anyway.
Anyhow, here's a features list.
Features:
- No Saxman-compressed music - Free up a lot of Z80 RAM
- Driver is Kosinski-compressed - Better compression, so it seems. Also, S1's disasm supports this by default
- Support for >2 music banks
- Support for >1 DAC banks
- Additional bugfixes
- Smaller FM frequencies table - More RAM
- S3K PSG frequency range
- Track RAM optimisation - More RAM
- Greater sound ID range - $01-$FF
- No sndDriverInput - Writes are direct, a la S3K
- Restored broken sound queue - Used for music

- DAC auto-bankswitch - No need to worry about sample alignment
- SMPS2ASM
- Toggleable features - What you do need, and what you don't
- Special SFX support
- MZ block push SFX support
- CPZ's gloop SFX support
- Spin dash rev SFX support
- Sonic 2 PSG envelopes
- Sonic 2 DAC samples
- Special SFX support
Download (code) | Download (ROM)
S1 VS S2:
Spoiler
Installation:
Spoiler
Fixing up the SEGA screen:
Spoiler
Correcting silence on screenmode change:
Spoiler
Expanding sound test:
Spoiler
Removing needless Z80 stops:
Spoiler
Changelog:
Spoiler
Credits:
Valley Bell - Bugfixes, S2Beta4 driver disassembly (source of Push SFX support)
Flamewing - SMPS2ASM, >$1F songs expansion, pointing out S3K's additional frequency values, improvement for DAC channel register setting
Vladikcomper - Elements of the DAC-related improvements
Clownacy - Making the driver good
This post has been edited by Clownacy: 17 May 2015 - 09:19 AM


05