@@ -110,23 +110,29 @@ public static void Run()
110110
111111 public static void LoadState ( SaveState state )
112112 {
113+ // Write Position into memory
113114 m . WriteMemory ( "base+03742E10,20" , "float" , state . xPos . ToString ( ) ) ;
114115 m . WriteMemory ( "base+03742E10,24" , "float" , state . yPos . ToString ( ) ) ;
115116 m . WriteMemory ( "base+03742E10,28" , "float" , state . zPos . ToString ( ) ) ;
116117
117- // m.WriteMemory("base+03B2CAB0 ", "float", state.xPos.ToString());
118- // m.WriteMemory("base+03B2CAB4 ", "float", state.xPos.ToString());
119- // m.WriteMemory("base+03B2CAB8 ", "float", state.xPos.ToString());
118+ m . WriteMemory ( "base+0372CAB0 " , "float" , state . xPos . ToString ( ) ) ;
119+ m . WriteMemory ( "base+0372CAB4 " , "float" , state . xPos . ToString ( ) ) ;
120+ m . WriteMemory ( "base+0372CAB8 " , "float" , state . xPos . ToString ( ) ) ;
120121
121- m . WriteMemory ( "base+03742E10,14" , "2byte" , state . xRot . ToString ( ) ) ;
122- m . WriteMemory ( "base+03742E10,18" , "2byte" , state . yRot . ToString ( ) ) ;
123- m . WriteMemory ( "base+03742E10,1C" , "2byte" , state . zRot . ToString ( ) ) ;
122+ // Write Rotation into memory
123+ m . WriteMemory ( "base+03742E10,14" , "2bytes" , state . xRot . ToString ( ) ) ;
124+ m . WriteMemory ( "base+03742E10,18" , "2bytes" , state . yRot . ToString ( ) ) ;
125+ m . WriteMemory ( "base+03742E10,1C" , "2bytes" , state . zRot . ToString ( ) ) ;
124126
125- //m.re
127+ // Write Speed into memory
128+ m . WriteMemory ( "base+373CDF0,38" , "float" , state . hSpeed . ToString ( ) ) ;
129+ m . WriteMemory ( "base+373CDF0,3C" , "float" , state . vSpeed . ToString ( ) ) ;
126130
131+ // Write Lives and rings into memory
127132 m . WriteMemory ( "base+0370EF34" , "int" , state . lives . ToString ( ) ) ;
128133 m . WriteMemory ( "base+0370F0E4" , "int" , state . rings . ToString ( ) ) ;
129134
135+ // Write time into memory
130136 m . WriteMemory ( "base+0370EF35" , "int" , state . tFrames . ToString ( ) ) ;
131137 m . WriteMemory ( "base+0370F128" , "int" , state . tSeconds . ToString ( ) ) ;
132138 m . WriteMemory ( "base+0370EF48" , "int" , state . tMins . ToString ( ) ) ;
@@ -151,7 +157,7 @@ public State GetState()
151157
152158 class SaveState
153159 {
154- public float xPos , yPos , zPos , xRot , yRot , zRot ;
160+ public float xPos , yPos , zPos , xRot , yRot , zRot , hSpeed , vSpeed ;
155161 public int lives , rings , tFrames , tSeconds , tMins ;
156162
157163 public SaveState ( Mem memwatch )
@@ -160,9 +166,12 @@ public SaveState(Mem memwatch)
160166 this . xPos = memwatch . ReadFloat ( "base+03742E10,20" ) ;
161167 this . yPos = memwatch . ReadFloat ( "base+03742E10,24" ) ;
162168 this . zPos = memwatch . ReadFloat ( "base+03742E10,28" ) ;
163- this . xRot = memwatch . ReadFloat ( "base+03742E10,14" ) ;
164- this . yRot = memwatch . ReadFloat ( "base+03742E10,18" ) ;
165- this . zRot = memwatch . ReadFloat ( "base+03742E10,1C" ) ;
169+ this . xRot = memwatch . Read2Byte ( "base+03742E10,14" ) ;
170+ this . yRot = memwatch . Read2Byte ( "base+03742E10,18" ) ;
171+ this . zRot = memwatch . Read2Byte ( "base+03742E10,1C" ) ;
172+
173+ this . hSpeed = memwatch . ReadFloat ( "base+373CDF0,38" ) ;
174+ this . vSpeed = memwatch . ReadFloat ( "base+373CDF0,3C" ) ;
166175
167176 this . lives = memwatch . ReadByte ( "base+0370EF34" ) ;
168177 this . rings = memwatch . Read2Byte ( "base+0370F0E4" ) ;
@@ -171,6 +180,8 @@ public SaveState(Mem memwatch)
171180 this . tSeconds = memwatch . ReadByte ( "base+0370F128" ) ;
172181 this . tMins = memwatch . ReadByte ( "base+0370EF48" ) ;
173182
183+ //Console.WriteLine("Xrot: {0}, Yrot: {1}, Zrot: {2}",this.xRot,this.yRot,this.zRot);
184+
174185 }
175186 }
176187
0 commit comments