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;