@@ -95,38 +95,46 @@ export class Graphics {
95
95
static saveState ( ) : void {
96
96
// Graphics
97
97
store < i32 > ( getSaveStateMemoryOffset ( 0x00 , Graphics . saveStateSlot ) , Graphics . scanlineCycleCounter ) ;
98
- eightBitStoreIntoGBMemory ( Graphics . memoryLocationScanlineRegister , Graphics . scanlineRegister ) ;
98
+ store < u8 > ( getSaveStateMemoryOffset ( 0x04 , Graphics . saveStateSlot ) , < u8 > Graphics . scanlineRegister ) ;
99
+ store < u8 > ( getSaveStateMemoryOffset ( 0x05 , Graphics . saveStateSlot ) , < u8 > Graphics . scrollX ) ;
100
+ store < u8 > ( getSaveStateMemoryOffset ( 0x06 , Graphics . saveStateSlot ) , < u8 > Graphics . scrollY ) ;
101
+ store < u8 > ( getSaveStateMemoryOffset ( 0x07 , Graphics . saveStateSlot ) , < u8 > Graphics . windowX ) ;
102
+ store < u8 > ( getSaveStateMemoryOffset ( 0x08 , Graphics . saveStateSlot ) , < u8 > Graphics . windowY ) ;
99
103
100
104
// LCD
101
- store < u8 > ( getSaveStateMemoryOffset ( 0x04 , Graphics . saveStateSlot ) , < u8 > Lcd . currentLcdMode ) ;
102
- store < u8 > ( getSaveStateMemoryOffset ( 0x05 , Graphics . saveStateSlot ) , < u8 > Lcd . coincidenceCompare ) ;
103
- storeBooleanDirectlyToWasmMemory ( getSaveStateMemoryOffset ( 0x06 , Graphics . saveStateSlot ) , Lcd . enabled ) ;
104
- storeBooleanDirectlyToWasmMemory ( getSaveStateMemoryOffset ( 0x07 , Graphics . saveStateSlot ) , Lcd . windowTileMapDisplaySelect ) ;
105
- storeBooleanDirectlyToWasmMemory ( getSaveStateMemoryOffset ( 0x08 , Graphics . saveStateSlot ) , Lcd . windowDisplayEnabled ) ;
106
- storeBooleanDirectlyToWasmMemory ( getSaveStateMemoryOffset ( 0x09 , Graphics . saveStateSlot ) , Lcd . bgWindowTileDataSelect ) ;
107
- storeBooleanDirectlyToWasmMemory ( getSaveStateMemoryOffset ( 0x0a , Graphics . saveStateSlot ) , Lcd . bgTileMapDisplaySelect ) ;
108
- storeBooleanDirectlyToWasmMemory ( getSaveStateMemoryOffset ( 0x0b , Graphics . saveStateSlot ) , Lcd . tallSpriteSize ) ;
109
- storeBooleanDirectlyToWasmMemory ( getSaveStateMemoryOffset ( 0x0c , Graphics . saveStateSlot ) , Lcd . spriteDisplayEnable ) ;
110
- storeBooleanDirectlyToWasmMemory ( getSaveStateMemoryOffset ( 0x0d , Graphics . saveStateSlot ) , Lcd . bgDisplayEnabled ) ;
105
+ store < u8 > ( getSaveStateMemoryOffset ( 0x09 , Graphics . saveStateSlot ) , < u8 > Lcd . currentLcdMode ) ;
106
+ store < u8 > ( getSaveStateMemoryOffset ( 0x0a , Graphics . saveStateSlot ) , < u8 > Lcd . coincidenceCompare ) ;
107
+ storeBooleanDirectlyToWasmMemory ( getSaveStateMemoryOffset ( 0x0b , Graphics . saveStateSlot ) , Lcd . enabled ) ;
108
+ storeBooleanDirectlyToWasmMemory ( getSaveStateMemoryOffset ( 0x0c , Graphics . saveStateSlot ) , Lcd . windowTileMapDisplaySelect ) ;
109
+ storeBooleanDirectlyToWasmMemory ( getSaveStateMemoryOffset ( 0x0d , Graphics . saveStateSlot ) , Lcd . windowDisplayEnabled ) ;
110
+ storeBooleanDirectlyToWasmMemory ( getSaveStateMemoryOffset ( 0x0e , Graphics . saveStateSlot ) , Lcd . bgWindowTileDataSelect ) ;
111
+ storeBooleanDirectlyToWasmMemory ( getSaveStateMemoryOffset ( 0x0f , Graphics . saveStateSlot ) , Lcd . bgTileMapDisplaySelect ) ;
112
+ storeBooleanDirectlyToWasmMemory ( getSaveStateMemoryOffset ( 0x10 , Graphics . saveStateSlot ) , Lcd . tallSpriteSize ) ;
113
+ storeBooleanDirectlyToWasmMemory ( getSaveStateMemoryOffset ( 0x11 , Graphics . saveStateSlot ) , Lcd . spriteDisplayEnable ) ;
114
+ storeBooleanDirectlyToWasmMemory ( getSaveStateMemoryOffset ( 0x12 , Graphics . saveStateSlot ) , Lcd . bgDisplayEnabled ) ;
111
115
}
112
116
113
117
// Function to load the save state from memory
114
118
static loadState ( ) : void {
115
119
// Graphics
116
120
Graphics . scanlineCycleCounter = load < i32 > ( getSaveStateMemoryOffset ( 0x00 , Graphics . saveStateSlot ) ) ;
117
- Graphics . scanlineRegister = eightBitLoadFromGBMemory ( Graphics . memoryLocationScanlineRegister ) ;
121
+ Graphics . scanlineRegister = load < u8 > ( getSaveStateMemoryOffset ( 0x04 , Graphics . scanlineRegister ) ) ;
122
+ Graphics . scrollX = load < u8 > ( getSaveStateMemoryOffset ( 0x05 , Graphics . saveStateSlot ) ) ;
123
+ Graphics . scrollY = load < u8 > ( getSaveStateMemoryOffset ( 0x06 , Graphics . saveStateSlot ) ) ;
124
+ Graphics . windowX = load < u8 > ( getSaveStateMemoryOffset ( 0x07 , Graphics . saveStateSlot ) ) ;
125
+ Graphics . windowY = load < u8 > ( getSaveStateMemoryOffset ( 0x08 , Graphics . saveStateSlot ) ) ;
118
126
119
127
// LCD
120
- Lcd . currentLcdMode = load < u8 > ( getSaveStateMemoryOffset ( 0x04 , Graphics . saveStateSlot ) ) ;
121
- Lcd . coincidenceCompare = load < u8 > ( getSaveStateMemoryOffset ( 0x05 , Graphics . saveStateSlot ) ) ;
122
- Lcd . enabled = loadBooleanDirectlyFromWasmMemory ( getSaveStateMemoryOffset ( 0x06 , Graphics . saveStateSlot ) ) ;
123
- Lcd . windowTileMapDisplaySelect = loadBooleanDirectlyFromWasmMemory ( getSaveStateMemoryOffset ( 0x07 , Graphics . saveStateSlot ) ) ;
124
- Lcd . windowDisplayEnabled = loadBooleanDirectlyFromWasmMemory ( getSaveStateMemoryOffset ( 0x08 , Graphics . saveStateSlot ) ) ;
125
- Lcd . bgWindowTileDataSelect = loadBooleanDirectlyFromWasmMemory ( getSaveStateMemoryOffset ( 0x09 , Graphics . saveStateSlot ) ) ;
126
- Lcd . bgTileMapDisplaySelect = loadBooleanDirectlyFromWasmMemory ( getSaveStateMemoryOffset ( 0x0a , Graphics . saveStateSlot ) ) ;
127
- Lcd . tallSpriteSize = loadBooleanDirectlyFromWasmMemory ( getSaveStateMemoryOffset ( 0x0b , Graphics . saveStateSlot ) ) ;
128
- Lcd . spriteDisplayEnable = loadBooleanDirectlyFromWasmMemory ( getSaveStateMemoryOffset ( 0x0c , Graphics . saveStateSlot ) ) ;
129
- Lcd . bgDisplayEnabled = loadBooleanDirectlyFromWasmMemory ( getSaveStateMemoryOffset ( 0x0d , Graphics . saveStateSlot ) ) ;
128
+ Lcd . currentLcdMode = load < u8 > ( getSaveStateMemoryOffset ( 0x09 , Graphics . saveStateSlot ) ) ;
129
+ Lcd . coincidenceCompare = load < u8 > ( getSaveStateMemoryOffset ( 0x0a , Graphics . saveStateSlot ) ) ;
130
+ Lcd . enabled = loadBooleanDirectlyFromWasmMemory ( getSaveStateMemoryOffset ( 0x0b , Graphics . saveStateSlot ) ) ;
131
+ Lcd . windowTileMapDisplaySelect = loadBooleanDirectlyFromWasmMemory ( getSaveStateMemoryOffset ( 0x0c , Graphics . saveStateSlot ) ) ;
132
+ Lcd . windowDisplayEnabled = loadBooleanDirectlyFromWasmMemory ( getSaveStateMemoryOffset ( 0x0d , Graphics . saveStateSlot ) ) ;
133
+ Lcd . bgWindowTileDataSelect = loadBooleanDirectlyFromWasmMemory ( getSaveStateMemoryOffset ( 0x0e , Graphics . saveStateSlot ) ) ;
134
+ Lcd . bgTileMapDisplaySelect = loadBooleanDirectlyFromWasmMemory ( getSaveStateMemoryOffset ( 0x0f , Graphics . saveStateSlot ) ) ;
135
+ Lcd . tallSpriteSize = loadBooleanDirectlyFromWasmMemory ( getSaveStateMemoryOffset ( 0x10 , Graphics . saveStateSlot ) ) ;
136
+ Lcd . spriteDisplayEnable = loadBooleanDirectlyFromWasmMemory ( getSaveStateMemoryOffset ( 0x11 , Graphics . saveStateSlot ) ) ;
137
+ Lcd . bgDisplayEnabled = loadBooleanDirectlyFromWasmMemory ( getSaveStateMemoryOffset ( 0x12 , Graphics . saveStateSlot ) ) ;
130
138
}
131
139
}
132
140
0 commit comments