mirror of
https://github.com/holub/mame
synced 2025-06-04 11:56:28 +03:00

ymfm: refactor the code into a separate 3rdparty library * Moved ymfm core implementation to 3rdparty/ymfm * Split out each family (OPM/OPN/OPL/etc) into its own source file * Added preliminary OPQ and OPZ support, still WIP * Put all 3rdparty code into its own namespace ymfm * Fixed various bugs reported in #8042 * Created interface class for communication between the 3rdparty engine and the emulator * Standardized MAME implementation of all Yamaha devices based on a template class * Created standard base class ym_generic that can be used when multiple YM chips are swapped in * Changed YM2203/2608/2610 to embed a YM2149 as a subdevice instead of deriving from ay8910_device * Also provided compile-time option to use a simplified built-in SSG rather than using MAME's at all (currently off) * Consolidated MAME header files from one-per-chip (ym2151.h, ym2203.h, etc) to one-per-family (ymopm.h, ymopn.h, etc)
50 lines
1.6 KiB
C
50 lines
1.6 KiB
C
/*
|
|
* em_inflate.h - fast in-memory inflate (gzip/zlib decompressor) definitions
|
|
*
|
|
* Copyright (C) 2019 Emmanuel Marty
|
|
*
|
|
* This software is provided 'as-is', without any express or implied
|
|
* warranty. In no event will the authors be held liable for any damages
|
|
* arising from the use of this software.
|
|
*
|
|
* Permission is granted to anyone to use this software for any purpose,
|
|
* including commercial applications, and to alter it and redistribute it
|
|
* freely, subject to the following restrictions:
|
|
*
|
|
* 1. The origin of this software must not be misrepresented; you must not
|
|
* claim that you wrote the original software. If you use this software
|
|
* in a product, an acknowledgment in the product documentation would be
|
|
* appreciated but is not required.
|
|
* 2. Altered source versions must be plainly marked as such, and must not be
|
|
* misrepresented as being the original software.
|
|
* 3. This notice may not be removed or altered from any source distribution.
|
|
*/
|
|
|
|
#ifndef _EM_INFLATE_H
|
|
#define _EM_INFLATE_H
|
|
|
|
#include <sys/types.h>
|
|
#include <stdlib.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/**
|
|
* Inflate gzip or zlib data
|
|
*
|
|
* @param pCompressedData pointer to start of zlib data
|
|
* @param nCompressedDataSize size of zlib data, in bytes
|
|
* @param pOutData pointer to start of decompression buffer
|
|
* @param nMaxOutDataSize maximum size of decompression buffer, in bytes
|
|
*
|
|
* @return number of bytes decompressed, or -1 in case of an error
|
|
*/
|
|
size_t em_inflate(const void *pCompressedData, size_t nCompressedDataSize, unsigned char *pOutData, size_t nMaxOutDataSize);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* _EM_INFLATE_H */
|