| 871 | const int STATE_VERSION = 5; |
| 872 | |
| 873 | struct StateStruct { |
| 874 | // version |
| 875 | // bg/sprite PaletteData |
| 876 | // vram |
| 877 | // wram |
| 878 | // hram |
| 879 | // sram |
| 880 | Registers regs; |
| 881 | int halt, ime; |
| 882 | bool doubleSpeed, biosOn; |
| 883 | int gbMode; |
| 884 | int romBank, ramBank, wramBank, vramBank; |
| 885 | int memoryModel; |
| 886 | clockStruct clock; |
| 887 | int scanlineCounter, timerCounter, phaseCounter, dividerCounter; |
| 888 | // v2 |
| 889 | int serialCounter; |
| 890 | // v3 |
| 891 | bool ramEnabled; |
| 892 | // MBC-specific stuff |
| 893 | // v4 |
| 894 | // bool sgbMode; |
| 895 | // If sgbMode == true: |
| 896 | // int sgbPacketLength; |
| 897 | // int sgbPacketsTransferred; |
| 898 | // int sgbPacketBit; |
| 899 | // u8 sgbCommand; |
| 900 | // u8 gfxMask; |
| 901 | // u8[20*18] sgbMap; |
| 902 | }; |
| 903 | |
| 904 | void saveState(int stateNum) { |
| 905 | FILE* outFile; |
nothing calls this directly
no outgoing calls
no test coverage detected