Mercurial > repos > blastem
diff vgm.h @ 2053:3414a4423de1 segacd
Merge from default
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 15 Jan 2022 13:15:21 -0800 |
parents | 327332138c5c |
children | cfd53c94fffb |
line wrap: on
line diff
--- a/vgm.h Sat Jan 05 00:58:08 2019 -0800 +++ b/vgm.h Sat Jan 15 13:15:21 2022 -0800 @@ -1,6 +1,9 @@ #ifndef VGM_H_ #define VGM_H_ +#include <stdint.h> +#include <stdio.h> + #pragma pack(push, 1) typedef struct { char ident[4]; @@ -71,4 +74,21 @@ uint8_t type; } data_block; +typedef struct { + vgm_header header; + FILE *f; + uint32_t master_clock; + uint32_t last_cycle; + uint32_t extra_delta; +} vgm_writer; + +vgm_writer *vgm_write_open(char *filename, uint32_t rate, uint32_t clock, uint32_t cycle); +void vgm_sn76489_init(vgm_writer *writer, uint32_t clock, uint16_t feedback, uint8_t shift_reg_size, uint8_t flags); +void vgm_sn76489_write(vgm_writer *writer, uint32_t cycle, uint8_t value); +void vgm_ym2612_init(vgm_writer *writer, uint32_t clock); +void vgm_ym2612_part1_write(vgm_writer *writer, uint32_t cycle, uint8_t reg, uint8_t value); +void vgm_ym2612_part2_write(vgm_writer *writer, uint32_t cycle, uint8_t reg, uint8_t value); +void vgm_adjust_cycles(vgm_writer *writer, uint32_t deduction); +void vgm_close(vgm_writer *writer); + #endif //VGM_H_