mirror of
https://github.com/ZDoom/gzdoom-gles.git
synced 2024-12-12 05:11:45 +00:00
87d46ddd11
## 1.5.0 2020-09-28 * Drum note length expanding is now supported in real-time mode (Thanks to [Jean Pierre Cimalando](https://github.com/jpcima) for a work!) * Added support for OPNA chip with Neko Project II Kai YM2602 emulator usage (Thanks to [Jean Pierre Cimalando](https://github.com/jpcima) for a work!) * Added VGM file dumper which allows to output OPN2 commands into VGM file. (A new MIDI to VGM tool is now created with basing on libOPNMIDI) * Fixed an incorrect work of CC-121 (See https://github.com/Wohlstand/libADLMIDI/issues/227 for details) * Internality has been refactored and improved
53 lines
1.4 KiB
C
53 lines
1.4 KiB
C
/*
|
|
**
|
|
** software implementation of Yamaha FM sound generator (YM2612/YM3438)
|
|
**
|
|
** Original code (MAME fm.c)
|
|
**
|
|
** Copyright (C) 2001, 2002, 2003 Jarek Burczynski (bujar at mame dot net)
|
|
** Copyright (C) 1998 Tatsuyuki Satoh , MultiArcadeMachineEmulator development
|
|
**
|
|
** Version 1.4 (final beta)
|
|
**
|
|
** Additional code & fixes by Eke-Eke for Genesis Plus GX
|
|
** Adaptations by Jean Pierre Cimalando for use in libOPNMIDI.
|
|
** (based on fee2bc8 dated Jan 7th, 2018)
|
|
**
|
|
*/
|
|
|
|
#ifndef _H_YM2612_
|
|
#define _H_YM2612_
|
|
|
|
#if defined(__cplusplus)
|
|
extern "C" {
|
|
#endif
|
|
|
|
enum {
|
|
YM2612_DISCRETE = 0,
|
|
YM2612_INTEGRATED,
|
|
YM2612_ENHANCED
|
|
};
|
|
|
|
struct YM2612GX;
|
|
typedef struct YM2612GX YM2612GX;
|
|
|
|
/* typedef signed int FMSAMPLE; */
|
|
typedef signed short FMSAMPLE;
|
|
|
|
extern YM2612GX *YM2612GXAlloc();
|
|
extern void YM2612GXFree(YM2612GX *ym2612);
|
|
extern void YM2612GXInit(YM2612GX *ym2612);
|
|
extern void YM2612GXConfig(YM2612GX *ym2612, int type);
|
|
extern void YM2612GXResetChip(YM2612GX *ym2612);
|
|
extern void YM2612GXPreGenerate(YM2612GX *ym2612);
|
|
extern void YM2612GXPostGenerate(YM2612GX *ym2612, unsigned int count);
|
|
extern void YM2612GXGenerateOneNative(YM2612GX *ym2612, FMSAMPLE *frame);
|
|
extern void YM2612GXWrite(YM2612GX *ym2612, unsigned int a, unsigned int v);
|
|
extern void YM2612GXWritePan(YM2612GX *chip, int c, unsigned char v);
|
|
extern unsigned int YM2612GXRead(YM2612GX *ym2612);
|
|
|
|
#if defined(__cplusplus)
|
|
} /* extern "C" */
|
|
#endif
|
|
|
|
#endif /* _YM2612_ */
|