comparison src/xs_sidplay2.cc @ 74:8cb66a3f75f7

Testing
author Matti Hamalainen <ccr@tnsp.org>
date Sun, 14 Sep 2003 18:51:05 +0000
parents 2bc607888f53
children 653c9b0d1320
comparison
equal deleted inserted replaced
73:2bc607888f53 74:8cb66a3f75f7
155 if (!pcFileName) return FALSE; 155 if (!pcFileName) return FALSE;
156 newTune = new SidTune(pcFileName); 156 newTune = new SidTune(pcFileName);
157 if (!newTune) return FALSE; 157 if (!newTune) return FALSE;
158 158
159 /* Get current configuration */ 159 /* Get current configuration */
160 myPlayer->currEng->getConfig(myPlayer->currConfig); 160 myPlayer->currConfig = myPlayer->currEng->config();
161 161
162 /* Configure channels and stuff */ 162 /* Configure channels and stuff */
163 switch (xs_cfg.fmtChannels) { 163 switch (xs_cfg.fmtChannels) {
164 164
165 case XS_CHN_AUTOPAN: 165 case XS_CHN_AUTOPAN:
166 myPlayer->currConfig.channels = SIDEMU_STEREO; 166 myPlayer->currConfig.playback = sid2_stereo;
167 myPlayer->currConfig.autoPanning = SIDEMU_CENTEREDAUTOPANNING;
168 myPlayer->currConfig.volumeControl = SIDEMU_FULLPANNING;
169 break; 167 break;
170 168
171 case XS_CHN_STEREO: 169 case XS_CHN_STEREO:
172 myPlayer->currConfig.channels = SIDEMU_STEREO; 170 myPlayer->currConfig.playback = sid2_stereo;
173 myPlayer->currConfig.autoPanning = SIDEMU_NONE;
174 myPlayer->currConfig.volumeControl = SIDEMU_NONE;
175 break; 171 break;
176 172
177 case XS_CHN_MONO: 173 case XS_CHN_MONO:
178 default: 174 default:
179 myPlayer->currConfig.channels = SIDEMU_MONO; 175 myPlayer->currConfig.playback = sid2_mono;
180 myPlayer->currConfig.autoPanning = SIDEMU_NONE;
181 myPlayer->currConfig.volumeControl = SIDEMU_NONE;
182 break; 176 break;
183 } 177 }
184 178
185 179
186 /* Memory mode settings */ 180 /* Memory mode settings */
187 switch (xs_cfg.memoryMode) { 181 switch (xs_cfg.memoryMode) {
188 case XS_MPU_BANK_SWITCHING: 182 case XS_MPU_BANK_SWITCHING:
189 myPlayer->currConfig.memoryMode = MPU_BANK_SWITCHING; 183 myPlayer->currConfig.environment = sid2_envBS;
190 break; 184 break;
191 185
192 case XS_MPU_TRANSPARENT_ROM: 186 case XS_MPU_TRANSPARENT_ROM:
193 myPlayer->currConfig.memoryMode = MPU_TRANSPARENT_ROM; 187 myPlayer->currConfig.environment = sid2_envTP;
194 break; 188 break;
195 189
196 case XS_MPU_PLAYSID_ENVIRONMENT: 190 case XS_MPU_PLAYSID_ENVIRONMENT:
197 myPlayer->currConfig.memoryMode = MPU_PLAYSID_ENVIRONMENT; 191 myPlayer->currConfig.environment = sid2_envPS;
198 break; 192 break;
199 193
194 case XS_MPU_REAL:
200 default: 195 default:
201 myPlayer->currConfig.memoryMode = MPU_BANK_SWITCHING; 196 myPlayer->currConfig.environment = sid2_envR;
202 break; 197 break;
203 } 198 }
204 199
205 200
206 /* Clockspeed settings */ 201 /* Clockspeed settings */
207 switch (xs_cfg.clockSpeed) { 202 switch (xs_cfg.clockSpeed) {
208 case XS_CLOCK_NTSC: 203 case XS_CLOCK_NTSC:
209 myPlayer->currConfig.clockSpeed = SIDTUNE_CLOCK_NTSC; 204 myPlayer->currConfig.clockSpeed = myPlayer->currConfig.clockDefault = SID2_CLOCK_NTSC;
210 break; 205 break;
211 206
212 case XS_CLOCK_PAL: 207 case XS_CLOCK_PAL:
213 default: 208 default:
214 myPlayer->currConfig.clockSpeed = SIDTUNE_CLOCK_PAL; 209 myPlayer->currConfig.clockSpeed = myPlayer->currConfig.clockDefault = SID2_CLOCK_PAL;
215 break; 210 break;
216 } 211 }
217 212
218 213
219 /* Configure rest of the emulation */ 214 /* Configure rest of the emulation */
220 myPlayer->currConfig.bitsPerSample = xs_cfg.fmtBitsPerSample; 215 myPlayer->currConfig.precision = xs_cfg.fmtBitsPerSample;
221 myPlayer->currConfig.frequency = xs_cfg.fmtFrequency; 216 myPlayer->currConfig.frequency = xs_cfg.fmtFrequency;
217 myPlayer->currConfig.clockForced = xs_cfg.forceSpeed;
218 myPlayer->currConfig.optimisation = (xs_cfg.optimiseLevel) ? 1 : 0;
219 myPlayer->currConfig.sidDefault = myPlayer->currConfig.sidModel = (xs_cfg.mos8580) ? SID2_MOS8580 : SID2_MOS6581;
220 myPlayer->currConfig.sidSamples = TRUE; // FIXME FIX ME, make configurable!
221
222 #ifdef HAVE_UNSIGNEDPCM 222 #ifdef HAVE_UNSIGNEDPCM
223 myPlayer->currConfig.sampleFormat = SIDEMU_UNSIGNED_PCM; 223 #ifdef WORDS_BIGENDIAN
224 myPlayer->currConfig.sampleFormat = SID2_BIG_UNSIGNED;
224 #else 225 #else
225 myPlayer->currConfig.sampleFormat = SIDEMU_SIGNED_PCM; 226 myPlayer->currConfig.sampleFormat = SID2_LITTLE_UNSIGNED;
226 #endif 227 #endif
227 myPlayer->currConfig.mos8580 = xs_cfg.mos8580; 228 #else
228 myPlayer->currConfig.emulateFilter = xs_cfg.emulateFilters; 229 #ifdef WORDS_BIGENDIAN
229 myPlayer->currConfig.filterFs = xs_cfg.filterFs; 230 myPlayer->currConfig.sampleFormat = SID2_BIG_SIGNED;
230 myPlayer->currConfig.filterFm = xs_cfg.filterFm; 231 #else
231 myPlayer->currConfig.filterFt = xs_cfg.filterFt; 232 myPlayer->currConfig.sampleFormat = SID2_LITTLE_SIGNED;
233 #endif
234 #endif
232 235
233 /* Now set the emulator configuration */ 236 /* Now set the emulator configuration */
234 myPlayer->currEng->setConfig(myPlayer->currConfig); 237 myPlayer->currEng->config(myPlayer->currConfig);
235 238
236 /* Initialize status information */ 239 /* Initialize status information */
237 newTune->getInfo(tuneInfo); 240 newTune->getInfo(tuneInfo);
238 241
239 myStatus->isPlaying = TRUE; 242 myStatus->isPlaying = TRUE;
254 { 257 {
255 t_xs_sidplay2 *myPlayer; 258 t_xs_sidplay2 *myPlayer;
256 259
257 if (!myStatus) return; 260 if (!myStatus) return;
258 261
262 if (myStatus->currFileName)
263 {
264 g_free(myStatus->currFileName);
265 myStatus->currFileName = NULL;
266 }
267
259 myPlayer = (t_xs_sidplay2 *) myStatus->player; 268 myPlayer = (t_xs_sidplay2 *) myStatus->player;
260 if (!myPlayer) return; 269 if (!myPlayer) return;
261 270
262 if (myPlayer->currTune) 271 if (myPlayer->currTune)
272 {
263 delete myPlayer->currTune; 273 delete myPlayer->currTune;
274 myPlayer->currTune = NULL;
275 }
264 } 276 }
265 277
266 278
267 gint xs_sidplay2_gettunespeed(t_xs_status *myStatus) 279 gint xs_sidplay2_gettunespeed(t_xs_status *myStatus)
268 { 280 {