105 lines
2.7 KiB
C
105 lines
2.7 KiB
C
/* Copyright 2003-2005 Guillaume Duhamel
|
|
Copyright 2004-2006 Theo Berkau
|
|
Copyright 2006 Anders Montonen
|
|
|
|
This file is part of Yabause.
|
|
|
|
Yabause is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 2 of the License, or
|
|
(at your option) any later version.
|
|
|
|
Yabause is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with Yabause; if not, write to the Free Software
|
|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
*/
|
|
|
|
#ifndef YABAUSE_H
|
|
#define YABAUSE_H
|
|
|
|
#include "core.h"
|
|
|
|
typedef struct
|
|
{
|
|
int percoretype;
|
|
int sh2coretype;
|
|
int vidcoretype;
|
|
int sndcoretype;
|
|
int m68kcoretype;
|
|
int cdcoretype;
|
|
int carttype;
|
|
u8 regionid;
|
|
const char *biospath;
|
|
const char *cdpath;
|
|
const char *buppath;
|
|
const char *mpegpath;
|
|
const char *cartpath;
|
|
const char *netlinksetting;
|
|
int videoformattype;
|
|
int frameskip;
|
|
int clocksync; // 1 = sync internal clock to emulation, 0 = realtime clock
|
|
u32 basetime; // Initial time in clocksync mode (0 = start w/ system time)
|
|
int usethreads;
|
|
int osdcoretype;
|
|
} yabauseinit_struct;
|
|
|
|
#define CLKTYPE_26MHZ 0
|
|
#define CLKTYPE_28MHZ 1
|
|
|
|
#define VIDEOFORMATTYPE_NTSC 0
|
|
#define VIDEOFORMATTYPE_PAL 1
|
|
|
|
#ifndef NO_CLI
|
|
void print_usage(const char *program_name);
|
|
#endif
|
|
|
|
void YabauseChangeTiming(int freqtype);
|
|
int YabauseInit(yabauseinit_struct *init);
|
|
void YabauseDeInit(void);
|
|
void YabauseSetDecilineMode(int on);
|
|
void YabauseResetNoLoad(void);
|
|
void YabauseReset(void);
|
|
void YabauseResetButton(void);
|
|
int YabauseExec(void);
|
|
void YabauseStartSlave(void);
|
|
void YabauseStopSlave(void);
|
|
u64 YabauseGetTicks(void);
|
|
void YabauseSetVideoFormat(int type);
|
|
void YabauseSpeedySetup(void);
|
|
int YabauseQuickLoadGame(void);
|
|
|
|
#define YABSYS_TIMING_BITS 20
|
|
#define YABSYS_TIMING_MASK ((1 << YABSYS_TIMING_BITS) - 1)
|
|
|
|
typedef struct
|
|
{
|
|
int DecilineMode;
|
|
int DecilineCount;
|
|
int LineCount;
|
|
int VBlankLineCount;
|
|
int MaxLineCount;
|
|
u32 DecilineStop; // Fixed point
|
|
u32 SH2CycleFrac; // Fixed point
|
|
u32 DecilineUsec; // Fixed point
|
|
u32 UsecFrac; // Fixed point
|
|
int CurSH2FreqType;
|
|
int IsPal;
|
|
u8 UseThreads;
|
|
u8 IsSSH2Running;
|
|
u64 OneFrameTime;
|
|
u64 tickfreq;
|
|
int emulatebios;
|
|
int usequickload;
|
|
} yabsys_struct;
|
|
|
|
extern yabsys_struct yabsys;
|
|
|
|
int YabauseEmulate(void);
|
|
|
|
#endif
|