summaryrefslogtreecommitdiff
path: root/apps/plugins/rockboy/loader.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/rockboy/loader.c')
-rw-r--r--apps/plugins/rockboy/loader.c71
1 files changed, 8 insertions, 63 deletions
diff --git a/apps/plugins/rockboy/loader.c b/apps/plugins/rockboy/loader.c
index bdccb2e7e1..d48a06957e 100644
--- a/apps/plugins/rockboy/loader.c
+++ b/apps/plugins/rockboy/loader.c
@@ -26,7 +26,7 @@
26 * 11 - ROM+MBC3 26 * 11 - ROM+MBC3
27 */ 27 */
28 28
29static int mbc_table[256] = 29static const int mbc_table[256] =
30{ 30{
31 MBC_NONE, 31 MBC_NONE,
32 MBC_MBC1, 32 MBC_MBC1,
@@ -81,7 +81,7 @@ static int mbc_table[256] =
81 MBC_HUC1 81 MBC_HUC1
82}; 82};
83 83
84static unsigned short romsize_table[56] = 84static const unsigned short romsize_table[56] =
85{ 85{
86 2, 4, 8, 16, 32, 64, 128, 256, 86 2, 4, 8, 16, 32, 64, 128, 256,
87 512, 0, 0, 0, 0, 0, 0, 0, 87 512, 0, 0, 0, 0, 0, 0, 0,
@@ -94,7 +94,7 @@ static unsigned short romsize_table[56] =
94}; 94};
95 95
96/* Ram size should be no larger then 16 banks 1Mbit */ 96/* Ram size should be no larger then 16 banks 1Mbit */
97static unsigned char ramsize_table[5] = 97static const unsigned char ramsize_table[5] =
98{ 98{
99 0, 1, 1, 4, 16 99 0, 1, 1, 4, 16
100}; 100};
@@ -104,8 +104,6 @@ static char sramfile[500];
104static char rtcfile[500]; 104static char rtcfile[500];
105static char saveprefix[500]; 105static char saveprefix[500];
106 106
107static int saveslot;
108
109static int forcebatt, nobatt; 107static int forcebatt, nobatt;
110static int forcedmg; 108static int forcedmg;
111 109
@@ -142,7 +140,7 @@ static byte *loadfile(int fd, int *len)
142 return d; 140 return d;
143} 141}
144 142
145int rom_load(void) 143static int rom_load(void)
146{ 144{
147 int fd; 145 int fd;
148 byte c, *data, *header; 146 byte c, *data, *header;
@@ -220,7 +218,7 @@ int rom_load(void)
220 return 0; 218 return 0;
221} 219}
222 220
223int sram_load(void) 221static int sram_load(void)
224{ 222{
225 int fd; 223 int fd;
226 char meow[500]; 224 char meow[500];
@@ -243,7 +241,7 @@ int sram_load(void)
243} 241}
244 242
245 243
246int sram_save(void) 244static int sram_save(void)
247{ 245{
248 int fd; 246 int fd;
249 char meow[500]; 247 char meow[500];
@@ -261,45 +259,7 @@ int sram_save(void)
261 return 0; 259 return 0;
262} 260}
263 261
264 262static void rtc_save(void)
265void state_save(int n)
266{
267 int fd;
268 char name[500];
269
270 if (n < 0) n = saveslot;
271 if (n < 0) n = 0;
272 snprintf(name, 499,"%s.%03d", saveprefix, n);
273
274 if ((fd = open(name, O_WRONLY|O_CREAT|O_TRUNC)>=0))
275 {
276 savestate(fd);
277 close(fd);
278 }
279}
280
281
282void state_load(int n)
283{
284 int fd;
285 char name[500];
286
287 if (n < 0) n = saveslot;
288 if (n < 0) n = 0;
289 snprintf(name, 499, "%s.%03d", saveprefix, n);
290
291 if ((fd = open(name, O_RDONLY)>=0))
292 {
293 loadstate(fd);
294 close(fd);
295 vram_dirty();
296 pal_dirty();
297 sound_dirty();
298 mem_updatemap();
299 }
300}
301
302void rtc_save(void)
303{ 263{
304 int fd; 264 int fd;
305 if (!rtc.batt) return; 265 if (!rtc.batt) return;
@@ -308,7 +268,7 @@ void rtc_save(void)
308 close(fd); 268 close(fd);
309} 269}
310 270
311void rtc_load(void) 271static void rtc_load(void)
312{ 272{
313 int fd; 273 int fd;
314 if (!rtc.batt) return; 274 if (!rtc.batt) return;
@@ -317,21 +277,6 @@ void rtc_load(void)
317 close(fd); 277 close(fd);
318} 278}
319 279
320
321void loader_unload(void)
322{
323 sram_save();
324 /* if (romfile) free(romfile);
325 if (sramfile) free(sramfile);
326 if (saveprefix) free(saveprefix);
327 if (rom.bank) free(rom.bank);
328 if (ram.sbank) free(ram.sbank); */
329 romfile = 0;
330 rom.bank = 0;
331 ram.sbank = 0;
332 mbc.type = mbc.romsize = mbc.ramsize = mbc.batt = 0;
333}
334
335void cleanup(void) 280void cleanup(void)
336{ 281{
337 sram_save(); 282 sram_save();