Ticket #8406: GSMidiTab.patch
File GSMidiTab.patch, 21.8 KB (added by , 19 years ago) |
---|
-
base/gameDetector.cpp
RCS file: /cvsroot/scummvm/scummvm/base/gameDetector.cpp,v retrieving revision 1.107 diff -u -r1.107 gameDetector.cpp
92 92 " --platform=WORD Specify version of game (allowed values: amiga,\n" 93 93 " atari, fmtowns, nes, mac, pc, windows)\n" 94 94 " --savepath=PATH Path to where savegames are stored\n" 95 " --soundfont=FILE Select the SoundFont for MIDI playback .(Only\n"96 " supported by some MIDI drivers .)\n"95 " --soundfont=FILE Select the SoundFont for MIDI playback (Only\n" 96 " supported by some MIDI drivers)\n" 97 97 " --multi-midi Enable combination Adlib and native MIDI\n" 98 98 " --native-mt32 True Roland MT-32 (disable GM emulation)\n" 99 " --enable-gs Enable Roland GS mode for MIDI playback\n" 99 100 " --output-rate=RATE Select output sample rate in Hz (e.g. 22050)\n" 100 101 " --aspect-ratio Enable aspect ratio correction\n" 101 102 " --render-mode=MODE Enable additional render modes (cga, ega, hercGreen,\n" … … 136 137 137 138 ConfMan.registerDefault("multi_midi", false); 138 139 ConfMan.registerDefault("native_mt32", false); 140 ConfMan.registerDefault("enable_gs", false); 139 141 // ConfMan.registerDefault("music_driver", ???); 140 142 141 143 ConfMan.registerDefault("cdrom", 0); … … 486 488 ConfMan.set("native_mt32", cmdValue, kTransientDomain); 487 489 END_OPTION 488 490 491 DO_LONG_OPTION_BOOL("enable-gs") 492 ConfMan.set("enable_gs", cmdValue, kTransientDomain); 493 END_OPTION 494 489 495 DO_LONG_OPTION_BOOL("aspect-ratio") 490 496 ConfMan.set("aspect_ratio", cmdValue, kTransientDomain); 491 497 END_OPTION -
gui/launcher.cpp
RCS file: /cvsroot/scummvm/scummvm/gui/launcher.cpp,v retrieving revision 1.112 diff -u -r1.112 launcher.cpp
61 61 62 62 kCmdGlobalGraphicsOverride = 'OGFX', 63 63 kCmdGlobalAudioOverride = 'OSFX', 64 kCmdGlobalMIDIOverride = 'OMID', 64 65 kCmdGlobalVolumeOverride = 'OVOL', 65 66 66 67 kCmdExtraBrowser = 'PEXT', … … 128 129 129 130 CheckboxWidget *_globalGraphicsOverride; 130 131 CheckboxWidget *_globalAudioOverride; 132 CheckboxWidget *_globalMIDIOverride; 131 133 CheckboxWidget *_globalVolumeOverride; 132 134 }; 133 135 … … 215 217 yoffset += 18; 216 218 217 219 // 218 // 2) The graphics tab220 // 3) The graphics tab 219 221 // 220 222 tab->addTab("Gfx"); 221 223 yoffset = vBorder; … … 226 228 yoffset = addGraphicControls(tab, yoffset); 227 229 228 230 // 229 // 3) The audio tab231 // 4) The audio tab 230 232 // 231 233 tab->addTab("Audio"); 232 234 yoffset = vBorder; … … 234 236 _globalAudioOverride = new CheckboxWidget(tab, x, yoffset, w, 16, "Override global audio settings", kCmdGlobalAudioOverride); 235 237 yoffset += 16; 236 238 239 yoffset = addAudioControls(tab, yoffset); 240 241 // 242 // 5) The MIDI tab 243 // 244 tab->addTab("MIDI"); 245 yoffset = vBorder; 246 247 _globalMIDIOverride = new CheckboxWidget(tab, x, yoffset, w, 16, "Override global MIDI settings", kCmdGlobalMIDIOverride); 248 yoffset += 16; 249 237 250 yoffset = addMIDIControls(tab, yoffset); 238 251 239 252 // 240 // 3) The volume tab253 // 6) The volume tab 241 254 // 242 255 tab->addTab("Volume"); 243 256 yoffset = vBorder; … … 269 282 _globalGraphicsOverride->setState(e); 270 283 271 284 e = ConfMan.hasKey("music_driver", _domain) || 272 ConfMan.hasKey("multi_midi", _domain) || 273 ConfMan.hasKey("native_mt32", _domain); 285 ConfMan.hasKey("subtitles", _domain); 274 286 _globalAudioOverride->setState(e); 275 287 288 e = ConfMan.hasKey("multi_midi", _domain) || 289 ConfMan.hasKey("native_mt32", _domain)|| 290 ConfMan.hasKey("enable_gs", _domain); 291 _globalMIDIOverride->setState(e); 292 276 293 e = ConfMan.hasKey("music_volume", _domain) || 277 294 ConfMan.hasKey("sfx_volume", _domain) || 278 295 ConfMan.hasKey("speech_volume", _domain); … … 342 359 setAudioSettingsState(data != 0); 343 360 draw(); 344 361 break; 362 case kCmdGlobalMIDIOverride: 363 setMIDISettingsState(data != 0); 364 draw(); 365 break; 345 366 case kCmdGlobalVolumeOverride: 346 367 setVolumeSettingsState(data != 0); 347 368 draw(); -
gui/options.cpp
RCS file: /cvsroot/scummvm/scummvm/gui/options.cpp,v retrieving revision 1.73 diff -u -r1.73 options.cpp
78 78 _enableGraphicSettings(false), 79 79 _gfxPopUp(0), _renderModePopUp(0), _fullscreenCheckbox(0), _aspectCheckbox(0), 80 80 _enableAudioSettings(false), 81 _multiMidiCheckbox(0), _mt32Checkbox(0), _subCheckbox(0), 81 _subCheckbox(0), 82 _enableMIDISettings(false), 83 _multiMidiCheckbox(0), _mt32Checkbox(0), _enableGSCheckbox(0), 82 84 _enableVolumeSettings(false), 83 85 _musicVolumeSlider(0), _musicVolumeLabel(0), 84 86 _sfxVolumeSlider(0), _sfxVolumeLabel(0), … … 131 133 #endif 132 134 } 133 135 134 if (_ multiMidiCheckbox) {136 if (_subCheckbox) { 135 137 // Music driver 136 138 const MidiDriverDescription *md = MidiDriver::getAvailableMidiDrivers(); 137 139 int i = 0; … … 145 147 } 146 148 _midiPopUp->setSelected(md->name ? i : 0); 147 149 150 // Subtitles setting 151 _subCheckbox->setState(ConfMan.getBool("subtitles", _domain)); 152 } 153 154 if (_multiMidiCheckbox) { 155 148 156 // Multi midi setting 149 157 _multiMidiCheckbox->setState(ConfMan.getBool("multi_midi", _domain)); 150 158 151 159 // Native mt32 setting 152 160 _mt32Checkbox->setState(ConfMan.getBool("native_mt32", _domain)); 153 161 154 // Subtitles setting155 _ subCheckbox->setState(ConfMan.getBool("subtitles", _domain));162 // GS extensions setting 163 _enableGSCheckbox->setState(ConfMan.getBool("enable_gs", _domain)); 156 164 } 165 157 166 158 167 if (_musicVolumeSlider) { 159 168 int vol; … … 204 213 } 205 214 } 206 215 207 if (_ multiMidiCheckbox) {216 if (_subCheckbox) { 208 217 if (_enableAudioSettings) { 209 ConfMan.set("multi_midi", _multiMidiCheckbox->getState(), _domain);210 ConfMan.set("native_mt32", _mt32Checkbox->getState(), _domain);211 218 ConfMan.set("subtitles", _subCheckbox->getState(), _domain); 212 219 const MidiDriverDescription *md = MidiDriver::getAvailableMidiDrivers(); 213 220 while (md->name && md->id != (int)_midiPopUp->getSelectedTag()) … … 217 224 else 218 225 ConfMan.removeKey("music_driver", _domain); 219 226 } else { 220 ConfMan.removeKey("multi_midi", _domain);221 ConfMan.removeKey("native_mt32", _domain);222 227 ConfMan.removeKey("music_driver", _domain); 223 228 ConfMan.removeKey("subtitles", _domain); 224 229 } 225 230 } 226 231 232 if (_multiMidiCheckbox) { 233 if (_enableMIDISettings) { 234 ConfMan.set("multi_midi", _multiMidiCheckbox->getState(), _domain); 235 ConfMan.set("native_mt32", _mt32Checkbox->getState(), _domain); 236 ConfMan.set("enable_gs", _enableGSCheckbox->getState(), _domain); 237 } else { 238 ConfMan.removeKey("multi_midi", _domain); 239 ConfMan.removeKey("native_mt32", _domain); 240 ConfMan.removeKey("enable_gs", _domain); 241 } 242 } 243 227 244 // Save config file 228 245 ConfMan.flushToDisk(); 229 246 } … … 269 286 _enableAudioSettings = enabled; 270 287 271 288 _midiPopUp->setEnabled(enabled); 289 _subCheckbox->setEnabled(enabled); 290 } 291 292 void OptionsDialog::setMIDISettingsState(bool enabled) { 293 _enableMIDISettings = enabled; 294 272 295 _multiMidiCheckbox->setEnabled(enabled); 273 296 _mt32Checkbox->setEnabled(enabled); 274 _ subCheckbox->setEnabled(enabled);297 _enableGSCheckbox->setEnabled(enabled); 275 298 } 276 299 277 300 void OptionsDialog::setVolumeSettingsState(bool enabled) { … … 330 353 return yoffset; 331 354 } 332 355 333 int OptionsDialog::add MIDIControls(GuiObject *boss, int yoffset) {356 int OptionsDialog::addAudioControls(GuiObject *boss, int yoffset) { 334 357 const int x = 10; 335 358 const int w = _w - 20; 336 359 337 360 // The MIDI mode popup & a label 338 361 _midiPopUp = new PopUpWidget(boss, x-5, yoffset, w+5, kLineHeight, "Music driver: ", 100); 339 yoffset += 1 6;362 yoffset += 18; 340 363 341 364 // Populate it 342 365 const MidiDriverDescription *md = MidiDriver::getAvailableMidiDrivers(); … … 345 368 md++; 346 369 } 347 370 371 // Subtitles on/off 372 _subCheckbox = new CheckboxWidget(boss, x, yoffset, w, 16, "Display subtitles"); 373 yoffset += 16; 374 375 yoffset += 18; 376 377 _enableAudioSettings = true; 378 379 return yoffset; 380 } 381 382 int OptionsDialog::addMIDIControls(GuiObject *boss, int yoffset) { 383 const int x = 10; 384 const int w = _w - 20; 385 348 386 // SoundFont 349 387 new ButtonWidget(boss, x, yoffset, kButtonWidth + 14, 16, "SoundFont: ", kChooseSoundFontCmd, 0); 350 388 _soundFont = new StaticTextWidget(boss, x + kButtonWidth + 20, yoffset + 3, _w - (x + kButtonWidth + 20) - 10, kLineHeight, "None", kTextAlignLeft); 351 352 389 yoffset += 18; 353 390 354 391 // Multi midi setting 355 392 _multiMidiCheckbox = new CheckboxWidget(boss, x, yoffset, w, 16, "Mixed Adlib/MIDI mode"); 356 yoffset += 1 5;393 yoffset += 16; 357 394 358 395 // Native mt32 setting 359 396 _mt32Checkbox = new CheckboxWidget(boss, x, yoffset, w, 16, "True Roland MT-32 (disable GM emulation)"); 360 yoffset += 1 5;397 yoffset += 16; 361 398 362 // Subtitles on/off363 _ subCheckbox = new CheckboxWidget(boss, x, yoffset, w, 16, "Display subtitles");364 yoffset += 1 5;399 // GS Extensions setting 400 _enableGSCheckbox = new CheckboxWidget(boss, x, yoffset, w, 16, "Enable Roland GS Mode"); 401 yoffset += 16; 365 402 366 _enable AudioSettings = true;403 _enableMIDISettings = true; 367 404 368 405 return yoffset; 369 406 } … … 417 454 // 418 455 tab->addTab("Audio"); 419 456 yoffset = vBorder; 420 yoffset = add MIDIControls(tab, yoffset);457 yoffset = addAudioControls(tab, yoffset); 421 458 yoffset = addVolumeControls(tab, yoffset); 422 459 // TODO: cd drive setting 423 460 461 // 462 // 3) The MIDI tab 463 // 464 tab->addTab("MIDI"); 465 yoffset = vBorder; 466 yoffset = addMIDIControls(tab, yoffset); 424 467 425 468 // 426 // 3) The miscellaneous tab469 // 4) The miscellaneous tab 427 470 // 428 471 tab->addTab("Paths"); 429 472 yoffset = vBorder; -
gui/options.h
RCS file: /cvsroot/scummvm/scummvm/gui/options.h,v retrieving revision 1.26 diff -u -r1.26 options.h
59 59 StaticTextWidget *_soundFont; 60 60 61 61 int addGraphicControls(GuiObject *boss, int yoffset); 62 int addAudioControls(GuiObject *boss, int yoffset); 62 63 int addMIDIControls(GuiObject *boss, int yoffset); 63 64 int addVolumeControls(GuiObject *boss, int yoffset); 64 65 65 66 void setGraphicSettingsState(bool enabled); 66 67 void setAudioSettingsState(bool enabled); 68 void setMIDISettingsState(bool enabled); 67 69 void setVolumeSettingsState(bool enabled); 68 70 69 71 private: … … 81 83 // 82 84 bool _enableAudioSettings; 83 85 PopUpWidget *_midiPopUp; 86 CheckboxWidget *_subCheckbox; 87 88 // 89 // MIDI controls 90 // 91 bool _enableMIDISettings; 84 92 CheckboxWidget *_multiMidiCheckbox; 85 93 CheckboxWidget *_mt32Checkbox; 86 CheckboxWidget *_ subCheckbox;94 CheckboxWidget *_enableGSCheckbox; 87 95 88 96 // 89 97 // Volume controls -
scumm/imuse.cpp
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse.cpp,v retrieving revision 2.128 diff -u -r2.128 imuse.cpp
46 46 47 47 IMuseInternal::IMuseInternal() : 48 48 _native_mt32(false), 49 _enable_gs(false), 50 _sc55(false), 49 51 _midi_adlib(0), 50 52 _midi_native(0), 51 53 _base_sounds(0), … … 1071 1073 1072 1074 case IMuse::PROP_NATIVE_MT32: 1073 1075 _native_mt32 = (value > 0); 1074 Instrument::nativeMT32( value > 0);1075 if ( value > 0 && _midi_native)1076 Instrument::nativeMT32(_native_mt32); 1077 if (_midi_native && _native_mt32) 1076 1078 initMT32(_midi_native); 1077 1079 break; 1078 1080 1081 case IMuse::PROP_GS: 1082 _enable_gs = (value > 0); 1083 1084 // If True Roland MT-32 is not selected, run in GM or GS mode. 1085 // If it is selected, change the Roland GS synth to MT-32 mode. 1086 if (_midi_native && !_native_mt32) 1087 initGM(_midi_native); 1088 else if (_midi_native && _native_mt32 && _enable_gs) { 1089 _sc55 = true; 1090 initGM(_midi_native); 1091 } 1092 break; 1093 1079 1094 case IMuse::PROP_LIMIT_PLAYERS: 1080 1095 if (value > 0 && value <= ARRAYSIZE(_players)) 1081 1096 _player_limit = (int) value; … … 1171 1186 midi->sysEx(buffer, 31); 1172 1187 g_system->delayMillis (250); 1173 1188 1174 // Setup rythm part1189 // Map percussion to notes 24 - 34 without reverb 1175 1190 memcpy(&buffer[4], "\x03\x01\x10\x40\x64\x07\x00\x4a\x64\x06\x00\x41\x64\x07\x00\x4b\x64\x08\x00\x45\x64\x06\x00\x44\x64\x0b\x00\x51\x64\x05\x00\x43\x64\x08\x00\x50\x64\x07\x00\x42\x64\x03\x00\x4c\x64\x07\x00\x44", 48); 1176 1191 midi->sysEx(buffer, 52); 1177 1192 g_system->delayMillis (250); 1178 1193 } 1179 1194 1195 void IMuseInternal::initGM(MidiDriver *midi) { 1196 byte buffer[11]; 1197 1198 // General MIDI System On message 1199 // Resets all GM devices to default settings 1200 memcpy(&buffer[0], "\xF0\x7E\x7F\x09\x01\xF7", 6); 1201 midi->sysEx(buffer, 6); 1202 debug(2, "GM SysEx: GM System On"); 1203 g_system->delayMillis (200); 1204 1205 if (_enable_gs) { 1206 1207 // All GS devices recognize the GS Reset command, 1208 // even with Roland's ID. It is impractical to 1209 // support other manufacturers' devices for 1210 // further GS settings, as there are limitless 1211 // numbers of them out there that would each 1212 // require individual SysEx commands with unique IDs. 1213 1214 // Roland GS SysEx ID 1215 memcpy(&buffer[0], "\xF0\x41\x10\x42\x12", 5); 1216 1217 // GS Reset 1218 memcpy(&buffer[5], "\x40\x00\x7F\x00\x41\xF7", 6); 1219 midi->sysEx(buffer, 11); 1220 debug(2, "GS SysEx: GS Reset"); 1221 g_system->delayMillis (200); 1222 1223 if (_sc55) { 1224 1225 // This mode is for GS devices that support an MT-32-compatible 1226 // Map, such as the Roland Sound Canvas line of modules. It 1227 // will allow them to work with True MT-32 mode, but will 1228 // obviously still ignore MT-32 SysEx (and thus custom 1229 // instruments). 1230 1231 // Set Channels 1-16 to SC-55 Map, then CM-64/32L Variation 1232 for (int i = 0; i < 16; ++i) { 1233 midi->send(( 127 << 16) | (0 << 8) | (0xB0 | i)); 1234 midi->send(( 1 << 16) | (32 << 8) | (0xB0 | i)); 1235 midi->send(( 0 << 16) | (0 << 8) | (0xC0 | i)); 1236 } 1237 debug(2, "GS Program Change: CM-64/32L Map Selected"); 1238 1239 // Set Percussion Channel to SC-55 Map (CC#32, 01H), then 1240 // Switch Drum Map to CM-64/32L (MT-32 Compatible Drums) 1241 midi->getPercussionChannel()->controlChange(0, 0); 1242 midi->getPercussionChannel()->controlChange(32, 1); 1243 midi->send (127 << 8 | 0xC0 | 9); 1244 debug(2, "GS Program Change: Drum Map is CM-64/32L"); 1245 1246 } 1247 1248 // Set Master Chorus to 0. The MT-32 has no chorus capability. 1249 memcpy(&buffer[5], "\x40\x01\x3A\x00\x05\xF7", 6); 1250 midi->sysEx(buffer, 11); 1251 debug(2, "GS SysEx: Master Chorus Level is 0"); 1252 1253 // Set Channels 1-16 Reverb to 64, which is the 1254 // equivalent of MT-32 default Reverb Level 5 1255 for (int i = 0; i < 16; ++i) 1256 midi->send(( 64 << 16) | (91 << 8) | (0xB0 | i)); 1257 debug(2, "GM Controller 91 Change: Channels 1-16 Reverb Level is 64"); 1258 1259 // Set Channels 1-16 Pitch Bend Sensitivity to 1260 // 12 semitones; then lock the RPN by setting null. 1261 for (int i = 0; i < 16; ++i) { 1262 midi->send(( 0 << 16) | (100 << 8) | (0xB0 | i)); 1263 midi->send(( 0 << 16) | (101 << 8) | (0xB0 | i)); 1264 midi->send(( 12 << 16) | (6 << 8) | (0xB0 | i)); 1265 midi->send(( 0 << 16) | (38 << 8) | (0xB0 | i)); 1266 midi->send(( 127 << 16) | (100 << 8) | (0xB0 | i)); 1267 midi->send(( 127 << 16) | (101 << 8) | (0xB0 | i)); 1268 } 1269 debug(2, "GM Controller 6 Change: Channels 1-16 Pitch Bend Sensitivity is 12 semitones"); 1270 1271 // Set channels 1-16 Mod. LFO1 Pitch Depth to 4 1272 memcpy(&buffer[5], "\x40\x20\x04\x04\x18\xF7", 6); 1273 midi->sysEx(buffer, 11); 1274 memcpy(&buffer[5], "\x40\x21\x04\x04\x17\xF7", 6); 1275 midi->sysEx(buffer, 11); 1276 memcpy(&buffer[5], "\x40\x22\x04\x04\x16\xF7", 6); 1277 midi->sysEx(buffer, 11); 1278 memcpy(&buffer[5], "\x40\x23\x04\x04\x15\xF7", 6); 1279 midi->sysEx(buffer, 11); 1280 memcpy(&buffer[5], "\x40\x24\x04\x04\x14\xF7", 6); 1281 midi->sysEx(buffer, 11); 1282 memcpy(&buffer[5], "\x40\x25\x04\x04\x13\xF7", 6); 1283 midi->sysEx(buffer, 11); 1284 memcpy(&buffer[5], "\x40\x26\x04\x04\x12\xF7", 6); 1285 midi->sysEx(buffer, 11); 1286 memcpy(&buffer[5], "\x40\x27\x04\x04\x11\xF7", 6); 1287 midi->sysEx(buffer, 11); 1288 memcpy(&buffer[5], "\x40\x28\x04\x04\x10\xF7", 6); 1289 midi->sysEx(buffer, 11); 1290 memcpy(&buffer[5], "\x40\x29\x04\x04\x0F\xF7", 6); 1291 midi->sysEx(buffer, 11); 1292 memcpy(&buffer[5], "\x40\x2A\x04\x04\x0E\xF7", 6); 1293 midi->sysEx(buffer, 11); 1294 memcpy(&buffer[5], "\x40\x2B\x04\x04\x0D\xF7", 6); 1295 midi->sysEx(buffer, 11); 1296 memcpy(&buffer[5], "\x40\x2C\x04\x04\x0C\xF7", 6); 1297 midi->sysEx(buffer, 11); 1298 memcpy(&buffer[5], "\x40\x2D\x04\x04\x0B\xF7", 6); 1299 midi->sysEx(buffer, 11); 1300 memcpy(&buffer[5], "\x40\x2E\x04\x04\x0A\xF7", 6); 1301 midi->sysEx(buffer, 11); 1302 memcpy(&buffer[5], "\x40\x2F\x04\x04\x09\xF7", 6); 1303 midi->sysEx(buffer, 11); 1304 debug(2, "GS SysEx: Channels 1-16 Mod. LFO1 Pitch Depth Level is 4"); 1305 1306 // Set Percussion Channel Expression to 80 1307 midi->getPercussionChannel()->controlChange(11, 80); 1308 debug(2, "GM Controller 11 Change: Percussion Channel Expression Level is 80"); 1309 1310 // Turn off Percussion Channel Rx. Expression so that 1311 // Expression cannot be modified. I don't know why, but 1312 // Roland does it this way. 1313 memcpy(&buffer[5], "\x40\x10\x0E\x00\x22\xF7", 6); 1314 midi->sysEx(buffer, 11); 1315 debug(2, "GS SysEx: Percussion Channel Rx. Expression is OFF"); 1316 1317 // Change Reverb Character to 0. I don't think this 1318 // sounds most like MT-32, but apparently Roland does. 1319 memcpy(&buffer[5], "\x40\x01\x31\x00\x0E\xF7", 6); 1320 midi->sysEx(buffer, 11); 1321 debug(2, "GS SysEx: Reverb Character is 0"); 1322 1323 // Change Reverb Pre-LF to 4, which is similar to 1324 // what MT-32 reverb does. 1325 memcpy(&buffer[5], "\x40\x01\x32\x04\x09\xF7", 6); 1326 midi->sysEx(buffer, 11); 1327 debug(2, "GS SysEx: Reverb Pre-LF is 4"); 1328 1329 // Change Reverb Time to 106; the decay on Hall 2 1330 // Reverb is too fast compared to the MT-32's 1331 memcpy(&buffer[5], "\x40\x01\x34\x6A\x21\xF7", 6); 1332 midi->sysEx(buffer, 11); 1333 debug(2, "GS SysEx: Reverb Time is 106"); 1334 1335 } 1336 1337 } 1338 1180 1339 void IMuseInternal::init_queue() { 1181 1340 _queue_adding = false; 1182 1341 _queue_pos = 0; -
scumm/imuse.h
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse.h,v retrieving revision 1.58 diff -u -r1.58 imuse.h
52 52 enum { 53 53 PROP_TEMPO_BASE, 54 54 PROP_NATIVE_MT32, 55 PROP_GS, 55 56 PROP_LIMIT_PLAYERS, 56 57 PROP_RECYCLE_PLAYERS, 57 58 PROP_DIRECT_PASSTHROUGH -
scumm/imuse_internal.h
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_internal.h,v retrieving revision 2.39 diff -u -r2.39 imuse_internal.h
346 346 347 347 protected: 348 348 bool _native_mt32; 349 bool _enable_gs; 350 bool _sc55; 349 351 MidiDriver *_midi_adlib; 350 352 MidiDriver *_midi_native; 351 353 … … 392 394 void handle_marker(uint id, byte data); 393 395 int get_channel_volume(uint a); 394 396 void initMidiDriver(MidiDriver *midi); 397 void initGM(MidiDriver *midi); 395 398 void initMT32(MidiDriver *midi); 396 399 void init_players(); 397 400 void init_parts(); -
scumm/scumm.cpp
RCS file: /cvsroot/scummvm/scummvm/scumm/scumm.cpp,v retrieving revision 1.427 diff -u -r1.427 scumm.cpp
1672 1672 void ScummEngine::setupMusic(int midi) { 1673 1673 _midiDriver = MidiDriver::detectMusicDriver(midi); 1674 1674 _native_mt32 = (ConfMan.getBool("native_mt32") || (_midiDriver == MD_MT32)); 1675 if ((_gameId == GID_TENTACLE) || (_gameId == GID_SAMNMAX)) 1676 _enable_gs = false; 1677 else 1678 _enable_gs = ConfMan.getBool("enable_gs"); 1675 1679 1676 1680 #ifndef __GP32__ //ph0x FIXME, "quick dirty hack" 1677 1681 /* Bind the mixer to the system => mixer will be invoked … … 1720 1724 if (ConfMan.hasKey("tempo")) 1721 1725 _imuse->property(IMuse::PROP_TEMPO_BASE, ConfMan.getInt("tempo")); 1722 1726 _imuse->property(IMuse::PROP_NATIVE_MT32, _native_mt32); 1727 _imuse->property(IMuse::PROP_GS, _enable_gs); 1723 1728 if (_features & GF_HUMONGOUS || midi == MDT_TOWNS) { 1724 1729 _imuse->property(IMuse::PROP_LIMIT_PLAYERS, 1); 1725 1730 _imuse->property(IMuse::PROP_RECYCLE_PLAYERS, 1); -
scumm/scumm.h
RCS file: /cvsroot/scummvm/scummvm/scumm/scumm.h,v retrieving revision 1.575 diff -u -r1.575 scumm.h
1111 1111 int _tempMusic; 1112 1112 int _saveSound; 1113 1113 bool _native_mt32; 1114 bool _enable_gs; 1114 1115 int _midi; 1115 1116 int _midiDriver; // Use the MD_ values from mididrv.h 1116 1117 bool _copyProtection; -
sound/mididrv.h
RCS file: /cvsroot/scummvm/scummvm/sound/mididrv.h,v retrieving revision 1.43 diff -u -r1.43 mididrv.h
137 137 send(( 0 << 16) | (100 << 8) | (0xB0 | channel)); 138 138 send((range << 16) | ( 6 << 8) | (0xB0 | channel)); 139 139 send(( 0 << 16) | ( 38 << 8) | (0xB0 | channel)); 140 send(( 127 << 16) | (101 << 8) | (0xB0 | channel)); 141 send(( 127 << 16) | (100 << 8) | (0xB0 | channel)); 140 142 } 141 143 142 144 virtual void sysEx (byte *msg, uint16 length) { }