/*
 ******************************************************************************
 *
 *	ファミコンエミュ
 *	$Id: famicom_emu.h,v 1.2 2004/02/12 22:54:41 tong Exp $
 *
 ******************************************************************************
 */

#ifndef __FAMICOM_EMU_H_
#define __FAMICOM_EMU_H_

#include "u64basic.h"
#include "game.h"

#ifdef _LANGUAGE_C_PLUS_PLUS
extern "C" {
#endif
#if 0
}
#endif

/* 派生クラスの定義 */
typedef struct {
    GAME	g;		/* 基底クラス */
} GAME_FAMICOM_EMU;
    
extern void famicom_emu_init(GAME *this);
extern void famicom_emu_cleanup(GAME *this);

/*
 * コモン領域登録用(全体で 128 バイト)
 */
typedef struct {
    u8	cassette_no;	/* カセットの番号 */
    u8	error_code;	/* !0:エミュレータエラーコード */
    u8	play_time_limit; /* (予備)制限時間 */
    u8	flags;		/* (予備)いろいろフラグ */
    u32	___high_score;	/* (予備)ハイスコア */
    u16	high_scores[20];	/* ハイスコア 0-15bit */
    u8	high_scores2[8];	/* ハイスコア 16-23bit */
    u32	__dummy[2];	/* 全体で 128 バイト */
} FamicomEmu_Common;

#define HIGH_SCORE_CLUCLU_LAND		0
#define HIGH_SCORE_BALLOON_FIGHT_1P	1000
#define HIGH_SCORE_BALLOON_FIGHT_2P	1000
#define HIGH_SCORE_BALLOON_FIGHT_BT	2500
#define HIGH_SCORE_DONKEY_KONG_A	0
#define HIGH_SCORE_DONKEY_KONG_B	0
#define HIGH_SCORE_PINBALL_A		0
#define HIGH_SCORE_PINBALL_B		0
#define HIGH_SCORE_GOLF_STROKE_PLAY	100
#define HIGH_SCORE_SANSU_ASOBI_1	0
#define HIGH_SCORE_SANSU_ASOBI_2	0
#define HIGH_SCORE_SANSU_ASOBI_3	0
#define HIGH_SCORE_SANSU_ASOBI_4	0
#define HIGH_SCORE_SANSU_ASOBI_5	0
#define HIGH_SCORE_SANSU_ASOBI_6	0
#define HIGH_SCORE_SANSU_ASOBI_7	0
#define HIGH_SCORE_SANSU_ASOBI_8	0
#define HIGH_SCORE_SANSU_ASOBI_9	0

#if 0
{
#endif
#ifdef _LANGUAGE_C_PLUS_PLUS
} /* extern "C" */
#endif

#endif /* __FAMICOM_EMU_H_ */
