comparison vgm.h @ 1909:508522f08e4d

Initial stab at VGM logging support
author Michael Pavone <pavone@retrodev.com>
date Fri, 27 Mar 2020 00:03:58 -0700
parents a2034b8d7495
children 327332138c5c
comparison
equal deleted inserted replaced
1908:c3d49c338224 1909:508522f08e4d
1 #ifndef VGM_H_ 1 #ifndef VGM_H_
2 #define VGM_H_ 2 #define VGM_H_
3
4 #include <stdint.h>
5 #include <stdio.h>
3 6
4 #pragma pack(push, 1) 7 #pragma pack(push, 1)
5 typedef struct { 8 typedef struct {
6 char ident[4]; 9 char ident[4];
7 uint32_t eof_offset; 10 uint32_t eof_offset;
69 uint8_t *data; 72 uint8_t *data;
70 uint32_t size; 73 uint32_t size;
71 uint8_t type; 74 uint8_t type;
72 } data_block; 75 } data_block;
73 76
77 typedef struct {
78 vgm_header header;
79 FILE *f;
80 uint32_t master_clock;
81 uint32_t last_cycle;
82 } vgm_writer;
83
84 vgm_writer *vgm_write_open(char *filename, uint32_t rate, uint32_t clock, uint32_t cycle);
85 void vgm_sn76489_init(vgm_writer *writer, uint32_t clock, uint16_t feedback, uint8_t shift_reg_size, uint8_t flags);
86 void vgm_sn76489_write(vgm_writer *writer, uint32_t cycle, uint8_t value);
87 void vgm_ym2612_init(vgm_writer *writer, uint32_t clock);
88 void vgm_ym2612_part1_write(vgm_writer *writer, uint32_t cycle, uint8_t reg, uint8_t value);
89 void vgm_ym2612_part2_write(vgm_writer *writer, uint32_t cycle, uint8_t reg, uint8_t value);
90 void vgm_adjust_cycles(vgm_writer *writer, uint32_t deduction);
91 void vgm_close(vgm_writer *writer);
92
74 #endif //VGM_H_ 93 #endif //VGM_H_