/*****************************************************************************\ 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