| 1 | /*****************************************************************************\ |
| 2 | Snes9x - Portable Super Nintendo Entertainment System (TM) emulator. |
| 3 | This file is licensed under the Snes9x License. |
| 4 | For further information, consult the LICENSE file in the root directory. |
| 5 | \*****************************************************************************/ |
| 6 | |
| 7 | #ifndef _SPC7110_H_ |
| 8 | #define _SPC7110_H_ |
| 9 | |
| 10 | #define SPC7110_DECOMP_BUFFER_SIZE 64 |
| 11 | |
| 12 | // for snapshot only |
| 13 | struct SSPC7110Snapshot |
| 14 | { |
| 15 | uint8 r4801; |
| 16 | uint8 r4802; |
| 17 | uint8 r4803; |
| 18 | uint8 r4804; |
| 19 | uint8 r4805; |
| 20 | uint8 r4806; |
| 21 | uint8 r4807; |
| 22 | uint8 r4808; |
| 23 | uint8 r4809; |
| 24 | uint8 r480a; |
| 25 | uint8 r480b; |
| 26 | uint8 r480c; |
| 27 | |
| 28 | uint8 r4811; |
| 29 | uint8 r4812; |
| 30 | uint8 r4813; |
| 31 | uint8 r4814; |
| 32 | uint8 r4815; |
| 33 | uint8 r4816; |
| 34 | uint8 r4817; |
| 35 | uint8 r4818; |
| 36 | |
| 37 | uint8 r481x; |
| 38 | |
| 39 | bool8 r4814_latch; // bool |
| 40 | bool8 r4815_latch; // bool |
| 41 | |
| 42 | uint8 r4820; |
| 43 | uint8 r4821; |
| 44 | uint8 r4822; |
| 45 | uint8 r4823; |
| 46 | uint8 r4824; |
| 47 | uint8 r4825; |
| 48 | uint8 r4826; |
| 49 | uint8 r4827; |
| 50 | uint8 r4828; |
| 51 | uint8 r4829; |
| 52 | uint8 r482a; |
| 53 | uint8 r482b; |
| 54 | uint8 r482c; |
| 55 | uint8 r482d; |
| 56 | uint8 r482e; |
| 57 | uint8 r482f; |
| 58 | |
| 59 | uint8 r4830; |
| 60 | uint8 r4831; |
| 61 | uint8 r4832; |
| 62 | uint8 r4833; |
| 63 | uint8 r4834; |
| 64 | |
| 65 | uint32 dx_offset; // unsigned |
| 66 | uint32 ex_offset; // unsigned |
| 67 | uint32 fx_offset; // unsigned |
| 68 | |
| 69 | uint8 r4840; |
| 70 | uint8 r4841; |
| 71 | uint8 r4842; |
| 72 | |
| 73 | int32 rtc_state; // enum RTC_State |
| 74 | int32 rtc_mode; // enum RTC_Mode |
| 75 | uint32 rtc_index; // unsigned |
| 76 | |
| 77 | uint32 decomp_mode; // unsigned |
| 78 | uint32 decomp_offset; // unsigned |
| 79 | |
| 80 | uint8 decomp_buffer[SPC7110_DECOMP_BUFFER_SIZE]; |
| 81 | |
| 82 | uint32 decomp_buffer_rdoffset; // unsigned |
| 83 | uint32 decomp_buffer_wroffset; // unsigned |
| 84 | uint32 decomp_buffer_length; // unsigned |
| 85 | |
| 86 | struct ContextState |
| 87 | { |
| 88 | uint8 index; |
| 89 | uint8 invert; |
| 90 | } context[32]; |
| 91 | }; |
| 92 | |
| 93 | extern struct SSPC7110Snapshot s7snap; |
| 94 | |
| 95 | void S9xInitSPC7110 (void); |
| 96 | void S9xResetSPC7110 (void); |
| 97 | void S9xSPC7110PreSaveState (void); |
| 98 | void S9xSPC7110PostLoadState (int); |
| 99 | void S9xSetSPC7110 (uint8, uint16); |
| 100 | uint8 S9xGetSPC7110 (uint16); |
| 101 | uint8 S9xGetSPC7110Byte (uint32); |
| 102 | uint8 * S9xGetBasePointerSPC7110 (uint32); |
| 103 | |
| 104 | #endif |
| 105 | |