mirror of
https://github.com/ekeeke/Genesis-Plus-GX.git
synced 2024-12-29 04:31:49 +01:00
2b78421402
------ * improved 68k accuracy (initial reset timing + auto-vectored interrupts handling). * modified Z80 & 68k cores to directly use external cycle count instead of intermediate counters. * improved Z80 & 68k cpu execution/synchronization accuracy, now use Master Clock as common clock reference. * improved PSG & FM chips synchronization with CPU execution (fixed point precision). * completely rewrote sound output processing & mixing: sound chips are now clocked with exact output frame rate to ensure 100% smooth video & audio playback, with no lag or skipping, while still rendering an accurate number of samples per frame. This will also make fast-forward implementation (video AND sound) more trivial. * improved color accuracy in VDP highlight mode to match results observed on real hardware. * improved sprites processing timing accuracy: fixes (un)masked sprites in Mickey Mania (3D level), Sonic 2 (VS mode). * improved horizontal blanking & HINT/VINT occurrence timing accuracy, as measured on real hardware. * improved H-Counter accuracy in 40-cell mode, as measured on real hardware. * optimized Z80 bus status signals * usual code cleanup [GCN/WII] --------- fixed ASNDLIB exit when returning to game fixed audio/video startup sync modified audio back-end engine according to new audio processing core (see above)
32 lines
851 B
C
32 lines
851 B
C
/*
|
|
**
|
|
** File: ym2612.h -- header for ym2612.c
|
|
** software implementation of Yamaha FM sound generator
|
|
**
|
|
** Copyright (C) 2001, 2002, 2003 Jarek Burczynski (bujar at mame dot net)
|
|
** Copyright (C) 1998 Tatsuyuki Satoh , MultiArcadeMachineEmulator development
|
|
**
|
|
** Version 1.4 (final beta)
|
|
**
|
|
*/
|
|
|
|
#ifndef _H_FM_FM_
|
|
#define _H_FM_FM_
|
|
|
|
/* compiler dependence */
|
|
#ifndef INLINE
|
|
#define INLINE static __inline__
|
|
#endif
|
|
|
|
|
|
extern int YM2612Init(float clock, int rate);
|
|
extern int YM2612ResetChip(void);
|
|
extern void YM2612Update(short int*buffer, int length);
|
|
extern void YM2612Write(unsigned int a, unsigned int v);
|
|
extern unsigned int YM2612Read(void);
|
|
extern unsigned char *YM2612GetContextPtr(void);
|
|
extern unsigned int YM2612GetContextSize(void);
|
|
extern void YM2612Restore(unsigned char *buffer);
|
|
|
|
#endif /* _H_FM_FM_ */
|