Mercurial > repos > blastem
diff vgmplay.c @ 2053:3414a4423de1 segacd
Merge from default
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 15 Jan 2022 13:15:21 -0800 |
parents | 460e14497120 |
children | cfd53c94fffb |
line wrap: on
line diff
--- a/vgmplay.c Sat Jan 05 00:58:08 2019 -0800 +++ b/vgmplay.c Sat Jan 15 13:15:21 2022 -0800 @@ -13,6 +13,7 @@ #include <stdlib.h> #include <string.h> #include "vgm.h" +#include "system.h" #define MCLKS_NTSC 53693175 #define MCLKS_PAL 53203395 @@ -22,6 +23,31 @@ #define MCLKS_PER_Z80 15 #define MCLKS_PER_PSG (MCLKS_PER_Z80*16) + +#ifdef DISABLE_ZLIB +#define VGMFILE FILE* +#define vgmopen fopen +#define vgmread fread +#define vgmseek fseek +#define vgmgetc fgetc +#define vgmclose fclose +#else +#include "zlib/zlib.h" +#define VGMFILE gzFile +#define vgmopen gzopen +#define vgmread gzfread +#define vgmseek gzseek +#define vgmgetc gzgetc +#define vgmclose gzclose +#endif + + +system_header *current_system; + +void system_request_exit(system_header *system, uint8_t force_release) +{ +} + void handle_keydown(int keycode) { } @@ -62,10 +88,6 @@ { } -void controller_add_mappings() -{ -} - int headless = 0; #define CYCLE_LIMIT MCLKS_NTSC/60 @@ -117,17 +139,17 @@ psg_context p_context; psg_init(&p_context, MCLKS_NTSC, MCLKS_PER_PSG); - FILE * f = fopen(argv[1], "rb"); + VGMFILE * f = vgmopen(argv[1], "rb"); vgm_header header; - fread(&header, sizeof(header), 1, f); + vgmread(&header, sizeof(header), 1, f); if (header.version < 0x150 || !header.data_offset) { header.data_offset = 0xC; } - fseek(f, header.data_offset + 0x34, SEEK_SET); + vgmseek(f, header.data_offset + 0x34, SEEK_SET); uint32_t data_size = header.eof_offset + 4 - (header.data_offset + 0x34); uint8_t * data = malloc(data_size); - fread(data, 1, data_size, f); - fclose(f); + vgmread(data, 1, data_size, f); + vgmclose(f); uint32_t mclks_sample = MCLKS_NTSC / 44100; uint32_t loop_count = 2;