Commit graph

15 commits

Author SHA1 Message Date
graham sanderson
368a6210f7 squashed rp2040-doom changes 2022-03-07 12:44:30 -06:00
Simon Howard
25c67b7160 opl: Change result from OPL_Init() to an enum.
This no longer returns a boolean value, but actually returns an
integer indicating the type of OPL chip that was detected. Change
the return value to have a more meaningful value.
2015-06-08 21:12:26 -04:00
Nuke.YKT
7c377fc88a Added OPL3 mode support. 2015-05-29 02:00:45 +09:00
Simon Howard
e4d9b85aa4 opl: Use uint64_t for microsecond times.
Previous revamping of the OPL library changed delay times from ms
to us, and switched to 64-bit times for storage for them. However
this type change was botched and some functions were still using
32-bit arguments. Change to 64-bit types.

Thanks Quasar for reporting this. This fixes #438.
2014-10-07 22:47:29 -04:00
Simon Howard
72ce424207 opl: Change library to use us instead of ms.
Multi-track MIDI files are played back using separate callback chains
for each track, and this introduces the possibility of one track
becoming out of sync with the others. This was noticeable in WADs
that use multi-track MIDIs, such as Alien Vendetta. Increase the
timing resolution to microsecond precision to fix this.
2014-05-11 00:14:04 -04:00
Simon Howard
495694da29 opl: Add API to adjust tempo.
When the tempo is changed, the times on all active timers must be
adjusted to match the new timing values. Add an API to do this and
invoke it when a tempo change meta event is read.
2014-05-10 14:00:41 -04:00
Simon Howard
7684ddcfd8 Clean up file headers.
This change rewrites and simplifies the copyright headers at the top
of all source files:

 * Remove "Emacs style mode select" line; this line was included in
   the headers for the originally released source files and appears
   to be to set the file type for old versions of Emacs. I'm not sure
   entirely why it was required but I don't think it is any more.
 * Remove "You should have received a copy of..." text from copyright
   header. This refers to the old 59 Temple Place address where the
   FSF headquarters used to be located and is no longer correct.
   Rather than change to the new address, just remove the paragraph
   as it is superfluous anyway. This fixes #311.
 * Remove ---- separator lines so that the file headers are barer
   and more simplified.
2014-05-05 00:20:54 -04:00
Simon Howard
e30325c40f Add OPL library API function to set software emulation sample rate, and
set from snd_samplerate in the configuration file.

Subversion-branch: /branches/opl-branch
Subversion-revision: 1723
2009-10-17 22:36:15 +00:00
Simon Howard
dce2c95f05 Move register read/write code into OPL library. Detect OPL in the
library code, so that we fall back to software emulation if we have port
access but an OPL is not detected. Fix detection of ioperm in configure.

Subversion-branch: /branches/opl-branch
Subversion-revision: 1692
2009-09-26 23:52:41 +00:00
Simon Howard
79698ecfd9 Implement pausing of music.
Subversion-branch: /branches/opl-branch
Subversion-revision: 1688
2009-09-21 22:20:33 +00:00
Simon Howard
076adeb0aa Add method to clear all existing callbacks.
Subversion-branch: /branches/opl-branch
Subversion-revision: 1642
2009-08-30 12:07:04 +00:00
Simon Howard
e33a496133 Working SDL OPL driver.
Subversion-branch: /branches/opl-branch
Subversion-revision: 1632
2009-08-28 18:04:04 +00:00
Simon Howard
98ee23f426 Add initial callback/timer API.
Subversion-branch: /branches/opl-branch
Subversion-revision: 1538
2009-05-30 23:24:11 +00:00
Simon Howard
ca7f823d48 Initialise OPL registers on startup, initialise voices.
Subversion-branch: /branches/opl-branch
Subversion-revision: 1457
2009-03-10 21:21:16 +00:00
Simon Howard
9f8ab35852 Add opl library main header and stub functions.
Subversion-branch: /branches/opl-branch
Subversion-revision: 1455
2009-03-10 00:02:41 +00:00