I've been wondering this for a little while now: Has there been a breakdown of the SMPS voices/instruments from S1-S3K into common terms such as wave type, envelope settings, etc rather than just raw data in a file. You know, something that would be easily applicable to any synthesizer in some sort of way, detailing the instrument in common words rather than sorting through a data file. Thanks for any information, and if this hasn't been done, I'm willing to sit down with the YM2612 and Z80 manuals, the SMPS wiki page, and my synth and hammer it out, although it may take some time.
As far as I'm aware, no, it hasn't, it might be useful if we had the instrument information stored in the asm files via dc segments. Now, due to the settings of each sinewave operator being stored in multiple grouped bit sizes, perhaps by using some form of macro we can break up the individual bit groups into seperate parameter components, something like: Code (Text): VoiceSMPS $04,$1F,$20,... Not that I'm a fan of macros or breaking information up, mostly because the people who do it usually leave it messy looking. But I'm sure with careful aligning and some thought, a compromising software alternative to editing SMPS voice instruments, without looking like pure shit, will prove to be useful to some.
S1SMPS2ASM would like a word with you: Code (Text): ; Voice 00 ; $08,$0A,$70,$30,$00,$1F,$1F,$5F,$5F,$12,$0E,$0A,$0A,$00,$04,$04,$03,$2F,$2F,$2F,$2F,$24,$2D,$13,$80 ; # smpsVcAlgorithm $00 smpsVcFeedback $01 ; op1 op2 op3 op4 smpsVcDetune $00, $03, $07, $00 smpsVcCoarseFreq $00, $00, $00, $0A smpsVcRateScale $01, $01, $00, $00 smpsVcAttackRate $1F, $1F, $1F, $1F smpsVcAmpMod $00, $00, $00, $00 smpsVcDecayRate1 $0A, $0A, $0E, $12 smpsVcDecayRate2 $03, $04, $04, $00 smpsVcDecayLevel $02, $02, $02, $02 smpsVcReleaseRate $0F, $0F, $0F, $0F smpsVcTotalLevel $80, $13, $2D, $24 And a few simple setting macros to get it working, the last does all the "work".. Code (Text): smpsVcFeedback macro val vcFeedback set val endm smpsVcAlgorithm macro val vcAlgorithm set val endm smpsVcDetune macro op1,op2,op3,op4 vcDT1 set op1 vcDT2 set op2 vcDT3 set op3 vcDT4 set op4 endm smpsVcCoarseFreq macro op1,op2,op3,op4 vcCF1 set op1 vcCF2 set op2 vcCF3 set op3 vcCF4 set op4 endm smpsVcRateScale macro op1,op2,op3,op4 vcRS1 set op1 vcRS2 set op2 vcRS3 set op3 vcRS4 set op4 endm smpsVcAttackRate macro op1,op2,op3,op4 vcAR1 set op1 vcAR2 set op2 vcAR3 set op3 vcAR4 set op4 endm smpsVcAmpMod macro op1,op2,op3,op4 vcAM1 set op1 vcAM2 set op2 vcAM3 set op3 vcAM4 set op4 endm smpsVcDecayRate1 macro op1,op2,op3,op4 vcD1R1 set op1 vcD1R2 set op2 vcD1R3 set op3 vcD1R4 set op4 endm smpsVcDecayRate2 macro op1,op2,op3,op4 vcD2R1 set op1 vcD2R2 set op2 vcD2R3 set op3 vcD2R4 set op4 endm smpsVcDecayLevel macro op1,op2,op3,op4 vcDL1 set op1 vcDL2 set op2 vcDL3 set op3 vcDL4 set op4 endm smpsVcReleaseRate macro op1,op2,op3,op4 vcRR1 set op1 vcRR2 set op2 vcRR3 set op3 vcRR4 set op4 endm smpsVcTotalLevel macro op1,op2,op3,op4 vcTL1 set op1 vcTL2 set op2 vcTL3 set op3 vcTL4 set op4 dc.b (vcFeedback<<3)+vcAlgorithm dc.b (vcDT4<<4)+vcCF4,(vcDT3<<4)+vcCF3,(vcDT2<<4)+vcCF2,(vcDT1<<4)+vcCF1 dc.b (vcRS4<<6)+vcAR4,(vcRS3<<6)+vcAR3,(vcRS2<<6)+vcAR2,(vcRS1<<6)+vcAR1 dc.b (vcAM4<<5)+vcD1R4,(vcAM3<<5)+vcD1R3,(vcAM2<<5)+vcD1R2,(vcAM1<<5)+vcD1R1 dc.b vcD2R4,vcD2R3,vcD2R2,vcD2R1 dc.b (vcDL4<<4)+vcRR4,(vcDL3<<4)+vcRR3,(vcDL2<<4)+vcRR2,(vcDL1<<4)+vcRR1 dc.b vcTL4,vcTL3,vcTL2,vcTL1 endm
alternatively, if you have fl studio, you can use the vopm vst with the OPM pack to get the settings. Here is the OPM link to every Genesis game imaginable: http://www.mediafire.com/file/ynnygzowyzw/2612org OPMs.zip And VOPM, well can't be stuffed linking it. Edit: http://www.geocities.jp/sam_kb/VOPM/