Mercurial > repos > blastem
diff ym2612.c @ 424:7e8e179116af
Add support for loading GST format savestates
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 29 Jun 2013 17:15:08 -0700 |
parents | baf4688901f2 |
children | e85a107e6ec0 |
line wrap: on
line diff
--- a/ym2612.c Tue Jun 25 23:18:57 2013 -0700 +++ b/ym2612.c Sat Jun 29 17:15:08 2013 -0700 @@ -763,3 +763,24 @@ return context->status; } +#define GST_YM_OFFSET 0x1E4 +#define GST_YM_SIZE (0x3E4-GST_YM_OFFSET) + +uint8_t ym_load_gst(ym2612_context * context, FILE * gstfile) +{ + uint8_t regdata[GST_YM_SIZE]; + fseek(gstfile, GST_YM_OFFSET, SEEK_SET); + if (fread(regdata, 1, sizeof(regdata), gstfile) != sizeof(regdata)) { + return 0; + } + for (int i = 0; i < sizeof(regdata); i++) { + if (i & 0x100) { + ym_address_write_part2(context, i & 0xFF); + } else { + ym_address_write_part1(context, i); + } + ym_data_write(context, regdata[i]); + } + return 1; +} +