[Scummvm-cvs-logs] CVS: scummvm/backends/midi adlib.cpp,1.16,1.16.2.1
Max Horn
fingolfin at users.sourceforge.net
Mon May 5 08:57:01 CEST 2003
- Previous message: [Scummvm-cvs-logs] CVS: scummvm Makefile.mingw,1.12,1.12.2.1 NEWS,1.12.2.2,1.12.2.3 README,1.82.2.1,1.82.2.2
- Next message: [Scummvm-cvs-logs] CVS: scummvm/sky adlibchannel.cpp,1.2,1.2.2.1 adlibchannel.h,1.2,1.2.2.1 adlibmusic.cpp,1.2,1.2.2.1 adlibmusic.h,1.2,1.2.2.1
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/scummvm/scummvm/backends/midi
In directory sc8-pr-cvs1:/tmp/cvs-serv22295/backends/midi
Modified Files:
Tag: branch-0-4-0
adlib.cpp
Log Message:
reverted to old fmopl code on the branch
Index: adlib.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/backends/midi/adlib.cpp,v
retrieving revision 1.16
retrieving revision 1.16.2.1
diff -u -d -r1.16 -r1.16.2.1
--- adlib.cpp 4 May 2003 21:17:42 -0000 1.16
+++ adlib.cpp 5 May 2003 15:55:59 -0000 1.16.2.1
@@ -510,6 +510,7 @@
bool _isOpen;
bool _game_SmallHeader;
+ FM_OPL *_opl;
byte *_adlib_reg_cache;
SoundMixer *_mixer;
@@ -714,6 +715,8 @@
int i;
MidiChannelAdl *mc;
+ int env_bits = g_system->property(OSystem::PROP_GET_FMOPL_ENV_BITS, NULL);
+ int eg_ent = g_system->property(OSystem::PROP_GET_FMOPL_EG_ENT, NULL);
for (i = 0, mc = _midi_channels; i != ARRAYSIZE(_midi_channels); i++, mc++) {
mc->_channel = i;
@@ -723,9 +726,9 @@
_adlib_reg_cache = (byte *)calloc(256, 1);
- // We need to emulate one YM3812 chip
- if (0 != YM3812Init(1, 3579545, g_system->property(OSystem::PROP_GET_SAMPLE_RATE, 0)))
- error("Error initialising YM3812 sound chip emulation");
+ OPLBuildTables((env_bits ? env_bits : FMOPL_ENV_BITS_HQ), (eg_ent ? eg_ent : FMOPL_EG_ENT_HQ));
+
+ _opl = OPLCreate(OPL_TYPE_YM3812, 3579545, g_system->property(OSystem::PROP_GET_SAMPLE_RATE, 0));
adlib_write(1, 0x20);
adlib_write(8, 0x40);
@@ -747,9 +750,6 @@
// Detach the premix callback handler
_mixer->setupPremix (0, 0);
-
- // Turn of the OPL emulation
- YM3812Shutdown();
_isOpen = false;
}
@@ -860,18 +860,22 @@
return;
_adlib_reg_cache[port] = value;
- YM3812Write(0, 0, port);
- YM3812Write(0, 1, value);
+ OPLWriteReg(_opl, port, value);
}
void MidiDriver_ADLIB::generate_samples(int16 *data, int len) {
int step;
+ if (!_opl) {
+ memset(data, 0, len * sizeof(int16));
+ return;
+ }
+
do {
step = len;
if (step > _next_tick)
step = _next_tick;
- YM3812UpdateOne(0, data, step);
+ YM3812UpdateOne(_opl, data, step);
if (!(_next_tick -= step)) {
if (_timer_proc)
- Previous message: [Scummvm-cvs-logs] CVS: scummvm Makefile.mingw,1.12,1.12.2.1 NEWS,1.12.2.2,1.12.2.3 README,1.82.2.1,1.82.2.2
- Next message: [Scummvm-cvs-logs] CVS: scummvm/sky adlibchannel.cpp,1.2,1.2.2.1 adlibchannel.h,1.2,1.2.2.1 adlibmusic.cpp,1.2,1.2.2.1 adlibmusic.h,1.2,1.2.2.1
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Scummvm-git-logs
mailing list