snes9x/spc7110.h

105 lines
2.0 KiB
C

/*****************************************************************************\
Snes9x - Portable Super Nintendo Entertainment System (TM) emulator.
This file is licensed under the Snes9x License.
For further information, consult the LICENSE file in the root directory.
\*****************************************************************************/
#ifndef _SPC7110_H_
#define _SPC7110_H_
#define SPC7110_DECOMP_BUFFER_SIZE 64
// for snapshot only
struct SSPC7110Snapshot
{
uint8 r4801;
uint8 r4802;
uint8 r4803;
uint8 r4804;
uint8 r4805;
uint8 r4806;
uint8 r4807;
uint8 r4808;
uint8 r4809;
uint8 r480a;
uint8 r480b;
uint8 r480c;
uint8 r4811;
uint8 r4812;
uint8 r4813;
uint8 r4814;
uint8 r4815;
uint8 r4816;
uint8 r4817;
uint8 r4818;
uint8 r481x;
bool8 r4814_latch; // bool
bool8 r4815_latch; // bool
uint8 r4820;
uint8 r4821;
uint8 r4822;
uint8 r4823;
uint8 r4824;
uint8 r4825;
uint8 r4826;
uint8 r4827;
uint8 r4828;
uint8 r4829;
uint8 r482a;
uint8 r482b;
uint8 r482c;
uint8 r482d;
uint8 r482e;
uint8 r482f;
uint8 r4830;
uint8 r4831;
uint8 r4832;
uint8 r4833;
uint8 r4834;
uint32 dx_offset; // unsigned
uint32 ex_offset; // unsigned
uint32 fx_offset; // unsigned
uint8 r4840;
uint8 r4841;
uint8 r4842;
int32 rtc_state; // enum RTC_State
int32 rtc_mode; // enum RTC_Mode
uint32 rtc_index; // unsigned
uint32 decomp_mode; // unsigned
uint32 decomp_offset; // unsigned
uint8 decomp_buffer[SPC7110_DECOMP_BUFFER_SIZE];
uint32 decomp_buffer_rdoffset; // unsigned
uint32 decomp_buffer_wroffset; // unsigned
uint32 decomp_buffer_length; // unsigned
struct ContextState
{
uint8 index;
uint8 invert;
} context[32];
};
extern struct SSPC7110Snapshot s7snap;
void S9xInitSPC7110 (void);
void S9xResetSPC7110 (void);
void S9xSPC7110PreSaveState (void);
void S9xSPC7110PostLoadState (int);
void S9xSetSPC7110 (uint8, uint16);
uint8 S9xGetSPC7110 (uint16);
uint8 S9xGetSPC7110Byte (uint32);
uint8 * S9xGetBasePointerSPC7110 (uint32);
#endif