annotate playercode/load_stm.c @ 11:d5cb2cfc8eca

Initial revision
author darius
date Fri, 23 Jan 1998 16:05:11 +0000
parents 5d614bcc4287
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
1 /*
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
2
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
3 Name: LOAD_STM.C
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
4
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
5 Description:
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
6 ScreamTracker 2 (STM) module Loader - Version 1.oOo Release 2
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
7 A Coding Nightmare by Rao and Air Richter of HaRDCoDE
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
8 You can now play all of those wonderful old C.C. Catch STM's!
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
9
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
10 Portability:
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
11 All systems - all compilers (hopefully)
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
12
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
13 If this module is found to not be portable to any particular platform,
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
14 please contact Jake Stine at dracoirs@epix.net (see MIKMOD.TXT for
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
15 more information on contacting the author).
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
16
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
17 */
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
18
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
19 #include <string.h>
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
20 #include <ctype.h>
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
21 #include "mikmod.h"
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
22
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
23
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
24 typedef struct STMNOTE
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
25 { UBYTE note,insvol,volcmd,cmdinf;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
26 } STMNOTE;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
27
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
28
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
29 // Raw STM sampleinfo struct:
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
30
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
31 typedef struct STMSAMPLE
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
32 { CHAR filename[12]; // Can't have long comments - just filename comments :)
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
33 UBYTE unused; // 0x00
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
34 UBYTE instdisk; // Instrument disk
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
35 UWORD reserved; // ISA in memory when in ST 2
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
36 UWORD length; // Sample length
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
37 UWORD loopbeg; // Loop start point
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
38 UWORD loopend; // Loop end point
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
39 UBYTE volume; // Volume
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
40 UBYTE reserved2; // More reserved crap
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
41 UWORD c2spd; // Good old c2spd
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
42 UBYTE reserved3[4]; // Yet more of PSi's reserved crap
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
43 UWORD isa; // Internal Segment Address ->
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
44 // contrary to the tech specs, this is NOT actually
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
45 // written to the stm file.
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
46 } STMSAMPLE;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
47
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
48 // Raw STM header struct:
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
49
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
50 typedef struct STMHEADER
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
51 { CHAR songname[20];
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
52 CHAR trackername[8]; // !SCREAM! for ST 2.xx
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
53 UBYTE unused; // 0x1A
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
54 UBYTE filetype; // 1=song, 2=module (only 2 is supported, of course) :)
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
55 UBYTE ver_major; // Like 2
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
56 UBYTE ver_minor; // "ditto"
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
57 UBYTE inittempo; // initspeed= stm inittempo>>4
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
58 UBYTE numpat; // number of patterns
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
59 UBYTE globalvol; // <- WoW! a RiGHT TRiANGLE =8*)
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
60 UBYTE reserved[13]; // More of PSi's internal crap
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
61 STMSAMPLE sample[31]; // STM sample data
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
62 UBYTE patorder[128]; // Docs say 64 - actually 128
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
63 } STMHEADER;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
64
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
65
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
66 static STMNOTE *stmbuf = NULL;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
67 static STMHEADER *mh = NULL;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
68
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
69 static CHAR STM_Version[] = "Screamtracker 2";
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
70
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
71
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
72 BOOL STM_Test(void)
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
73 {
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
74 UBYTE str[9],filetype;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
75
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
76 _mm_fseek(modfp,21,SEEK_SET);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
77 _mm_read_UBYTES(str,9,modfp);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
78 filetype = _mm_read_UBYTE(modfp);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
79 if(!memcmp(str,"!SCREAM!",8) || (filetype!=2)) // STM Module = filetype 2
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
80 return 0;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
81 return 1;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
82 }
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
83
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
84
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
85
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
86 BOOL STM_Init(void)
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
87 {
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
88 if(!(mh=(STMHEADER *)_mm_calloc(1,sizeof(STMHEADER)))) return 0;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
89 if(!(stmbuf=(STMNOTE *)_mm_calloc(64U*of.numchn,sizeof(STMNOTE)))) return 0;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
90
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
91 return 1;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
92 }
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
93
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
94 void STM_Cleanup(void)
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
95 {
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
96 if(mh!=NULL) free(mh);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
97 if(stmbuf!=NULL) free(stmbuf);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
98
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
99 stmbuf = NULL;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
100 mh = NULL;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
101 }
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
102
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
103
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
104
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
105 void STM_ConvertNote(STMNOTE *n)
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
106 {
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
107 UBYTE note,ins,vol,cmd,inf;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
108
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
109 // extract the various information from the 4 bytes that
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
110 // make up a single note
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
111
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
112 note = n->note;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
113 ins = n->insvol>>3;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
114 vol = (n->insvol&7)+(n->volcmd>>1);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
115 cmd = n->volcmd&15;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
116 inf = n->cmdinf;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
117
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
118 if(ins!=0 && ins<32) UniInstrument(ins-1);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
119
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
120 // special values of [SBYTE0] are handled here ->
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
121 // we have no idea if these strange values will ever be encountered.
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
122 // but it appears as though stms sound correct.
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
123 if(note==254 || note==252) UniPTEffect(0xc,0); // <- note off command (???)
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
124 else
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
125 // if note < 251, then all three bytes are stored in the file
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
126 if(note<251) UniNote((((note>>4)+2)*12)+(note&0xf)); // <- normal note and up the octave by two
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
127
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
128 if(vol<65)
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
129 UniPTEffect(0xc,vol);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
130
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
131 if(cmd!=255){
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
132 switch(cmd){
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
133
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
134 case 1: // Axx set speed to xx and add 0x1c to fix StoOoPiD STM 2.x
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
135 UniPTEffect(0xf,inf>>4);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
136 break;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
137
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
138 case 2: // Bxx position jump
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
139 UniPTEffect(0xb,inf);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
140 break;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
141
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
142 case 3: // Cxx patternbreak to row xx
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
143 UniPTEffect(0xd,(((inf&0xf0)>>4)*10)+(inf&0xf));
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
144 break;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
145
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
146 case 4: // Dxy volumeslide
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
147 UniWrite(UNI_S3MEFFECTD);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
148 UniWrite(inf);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
149 break;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
150
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
151 case 5: // Exy toneslide down
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
152 UniWrite(UNI_S3MEFFECTE);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
153 UniWrite(inf);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
154 break;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
155
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
156 case 6: // Fxy toneslide up
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
157 UniWrite(UNI_S3MEFFECTF);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
158 UniWrite(inf);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
159 break;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
160
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
161 case 7: // Gxx Tone portamento,speed xx
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
162 UniPTEffect(0x3,inf);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
163 break;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
164
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
165 case 8: // Hxy vibrato
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
166 UniPTEffect(0x4,inf);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
167 break;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
168
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
169 case 9: // Ixy tremor, ontime x, offtime y
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
170 UniWrite(UNI_S3MEFFECTI);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
171 UniWrite(inf);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
172 break;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
173
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
174 case 0xa: // Jxy arpeggio
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
175 UniPTEffect(0x0,inf);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
176 break;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
177
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
178 case 0xb: // Kxy Dual command H00 & Dxy
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
179 UniPTEffect(0x4,0);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
180 UniWrite(UNI_S3MEFFECTD);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
181 UniWrite(inf);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
182 break;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
183
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
184 case 0xc: // Lxy Dual command G00 & Dxy
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
185 UniPTEffect(0x3,0);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
186 UniWrite(UNI_S3MEFFECTD);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
187 UniWrite(inf);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
188 break;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
189
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
190 // Support all these above, since ST2 can LOAD these values
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
191 // but can actually only play up to J - and J is only
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
192 // half-way implemented in ST2
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
193
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
194 case 0x18: // Xxx amiga command 8xx - What the hell, support panning. :)
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
195 UniPTEffect(0x8,inf);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
196 break;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
197 }
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
198 }
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
199 }
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
200
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
201
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
202 UBYTE *STM_ConvertTrack(STMNOTE *n)
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
203 {
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
204 int t;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
205
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
206 UniReset();
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
207 for(t=0; t<64; t++)
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
208 { STM_ConvertNote(n);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
209 UniNewline();
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
210 n+=of.numchn;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
211 }
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
212 return UniDup();
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
213 }
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
214
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
215
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
216 BOOL STM_LoadPatterns(void)
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
217 {
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
218 int t,s,tracks=0;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
219
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
220 if(!AllocPatterns()) return 0;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
221 if(!AllocTracks()) return 0;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
222
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
223 // Allocate temporary buffer for loading
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
224 // and converting the patterns
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
225
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
226 for(t=0; t<of.numpat; t++)
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
227 { for(s=0; s<(64U*of.numchn); s++)
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
228 { stmbuf[s].note = _mm_read_UBYTE(modfp);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
229 stmbuf[s].insvol = _mm_read_UBYTE(modfp);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
230 stmbuf[s].volcmd = _mm_read_UBYTE(modfp);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
231 stmbuf[s].cmdinf = _mm_read_UBYTE(modfp);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
232 }
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
233
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
234 if(feof(modfp))
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
235 { _mm_errno = MMERR_LOADING_PATTERN;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
236 return 0;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
237 }
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
238
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
239 for(s=0;s<of.numchn;s++)
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
240 { if(!(of.tracks[tracks++]=STM_ConvertTrack(stmbuf+s))) return 0;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
241 }
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
242 }
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
243
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
244 return 1;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
245 }
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
246
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
247
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
248
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
249 BOOL STM_Load(void)
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
250 {
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
251 int t;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
252 ULONG MikMod_ISA; // We MUST generate our own ISA - NOT stored in the stm
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
253 SAMPLE *q;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
254
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
255 // try to read stm header
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
256
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
257 _mm_read_string(mh->songname,20,modfp);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
258 _mm_read_string(mh->trackername,8,modfp);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
259 mh->unused =_mm_read_UBYTE(modfp);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
260 mh->filetype =_mm_read_UBYTE(modfp);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
261 mh->ver_major =_mm_read_UBYTE(modfp);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
262 mh->ver_minor =_mm_read_UBYTE(modfp);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
263 mh->inittempo =_mm_read_UBYTE(modfp);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
264 mh->numpat =_mm_read_UBYTE(modfp);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
265 mh->globalvol =_mm_read_UBYTE(modfp);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
266 _mm_read_UBYTES(mh->reserved,13,modfp);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
267
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
268 for(t=0;t<31;t++)
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
269 { STMSAMPLE *s = &mh->sample[t]; // STM sample data
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
270
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
271 _mm_read_string(s->filename,12,modfp);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
272 s->unused =_mm_read_UBYTE(modfp);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
273 s->instdisk =_mm_read_UBYTE(modfp);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
274 s->reserved =_mm_read_I_UWORD(modfp);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
275 s->length =_mm_read_I_UWORD(modfp);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
276 s->loopbeg =_mm_read_I_UWORD(modfp);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
277 s->loopend =_mm_read_I_UWORD(modfp);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
278 s->volume =_mm_read_UBYTE(modfp);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
279 s->reserved2=_mm_read_UBYTE(modfp);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
280 s->c2spd =_mm_read_I_UWORD(modfp);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
281 _mm_read_UBYTES(s->reserved3,4,modfp);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
282 s->isa =_mm_read_I_UWORD(modfp);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
283 }
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
284 _mm_read_UBYTES(mh->patorder,128,modfp);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
285
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
286 if(feof(modfp))
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
287 { _mm_errno = MMERR_LOADING_HEADER;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
288 return 0;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
289 }
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
290
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
291 // set module variables
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
292
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
293 of.modtype = strdup(STM_Version);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
294 of.songname = DupStr(mh->songname,20); // make a cstr of songname
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
295 of.numpat = mh->numpat;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
296 of.inittempo = 125; // mh->inittempo+0x1c;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
297 of.initspeed = mh->inittempo>>4;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
298 of.numchn = 4; // get number of channels
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
299
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
300 t=0;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
301 if(!AllocPositions(0x80)) return 0;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
302 while(mh->patorder[t]!=99) // 99 terminates the patorder list
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
303 { of.positions[t] = mh->patorder[t];
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
304 t++;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
305 }
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
306 of.numpos = --t;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
307 of.numtrk = of.numpat*of.numchn;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
308
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
309 // Finally, init the sampleinfo structures
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
310 of.numins = of.numsmp = 31; // always this
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
311
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
312 if(!AllocSamples()) return 0;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
313 if(!STM_LoadPatterns()) return 0;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
314
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
315 q = of.samples;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
316
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
317 MikMod_ISA = _mm_ftell(modfp);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
318 MikMod_ISA = (MikMod_ISA+15)&0xfffffff0;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
319
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
320 for(t=0; t<of.numins; t++)
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
321 { // load sample info
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
322
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
323 q->samplename = DupStr(mh->sample[t].filename,12);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
324 q->speed = mh->sample[t].c2spd;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
325 q->volume = mh->sample[t].volume;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
326 q->length = mh->sample[t].length;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
327 if (!mh->sample[t].volume || q->length==1 ) q->length = 0; // if vol = 0 or length = 1, then no sample
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
328 q->loopstart = mh->sample[t].loopbeg;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
329 q->loopend = mh->sample[t].loopend;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
330 q->seekpos = MikMod_ISA;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
331
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
332 MikMod_ISA+=q->length;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
333 MikMod_ISA = (MikMod_ISA+15)&0xfffffff0;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
334
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
335 // Once again, contrary to the STM specs, all the sample data is
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
336 // actually SIGNED! Sheesh
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
337
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
338 q->flags = SF_SIGNED;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
339
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
340 if(mh->sample[t].loopend>0 && mh->sample[t].loopend!=0xffff) q->flags|=SF_LOOP;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
341
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
342 // fix replen if repend>length
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
343
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
344 if(q->loopend > q->length) q->loopend = q->length;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
345
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
346 q++;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
347 }
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
348
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
349 return 1;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
350 }
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
351
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
352
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
353 CHAR *STM_LoadTitle(void)
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
354 {
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
355 CHAR s[20];
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
356
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
357 _mm_fseek(modfp,0,SEEK_SET);
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
358 if(!fread(s,20,1,modfp)) return NULL;
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
359
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
360 return(DupStr(s,20));
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
361 }
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
362
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
363
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
364 MLOADER load_stm =
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
365 { NULL,
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
366 "STM",
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
367 "Portable STM Loader - V 1.2",
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
368 STM_Init,
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
369 STM_Test,
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
370 STM_Load,
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
371 STM_Cleanup,
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
372 STM_LoadTitle
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
373 };
5d614bcc4287 Initial entry of mikmod into the CVS tree.
darius
parents:
diff changeset
374