Mercurial > repos > blastem
comparison vgm.c @ 2529:a6687a6fb69d
Merge
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Mon, 25 Nov 2024 22:30:32 -0800 |
parents | 7e1215d17571 |
children | 3f58fec775df |
comparison
equal
deleted
inserted
replaced
2528:90a40be940f7 | 2529:a6687a6fb69d |
---|---|
79 writer->extra_delta = 0; | 79 writer->extra_delta = 0; |
80 writer->header.num_samples += delta; | 80 writer->header.num_samples += delta; |
81 wait_commands(writer, delta); | 81 wait_commands(writer, delta); |
82 } | 82 } |
83 | 83 |
84 static uint8_t last_cmd; | |
85 void vgm_sn76489_write(vgm_writer *writer, uint32_t cycle, uint8_t value) | 84 void vgm_sn76489_write(vgm_writer *writer, uint32_t cycle, uint8_t value) |
86 { | 85 { |
87 add_wait(writer, cycle); | 86 add_wait(writer, cycle); |
88 uint8_t cmd[2] = {CMD_PSG, value}; | 87 uint8_t cmd[2] = {CMD_PSG, value}; |
89 last_cmd = CMD_PSG; | 88 fwrite(cmd, 1, sizeof(cmd), writer->f); |
89 } | |
90 | |
91 void vgm_gg_pan_write(vgm_writer *writer, uint32_t cycle, uint8_t value) | |
92 { | |
93 add_wait(writer, cycle); | |
94 uint8_t cmd[2] = {CMD_PSG_STEREO, value}; | |
90 fwrite(cmd, 1, sizeof(cmd), writer->f); | 95 fwrite(cmd, 1, sizeof(cmd), writer->f); |
91 } | 96 } |
92 | 97 |
93 void vgm_ym2612_init(vgm_writer *writer, uint32_t clock) | 98 void vgm_ym2612_init(vgm_writer *writer, uint32_t clock) |
94 { | 99 { |
97 | 102 |
98 void vgm_ym2612_part1_write(vgm_writer *writer, uint32_t cycle, uint8_t reg, uint8_t value) | 103 void vgm_ym2612_part1_write(vgm_writer *writer, uint32_t cycle, uint8_t reg, uint8_t value) |
99 { | 104 { |
100 add_wait(writer, cycle); | 105 add_wait(writer, cycle); |
101 uint8_t cmd[3] = {CMD_YM2612_0, reg, value}; | 106 uint8_t cmd[3] = {CMD_YM2612_0, reg, value}; |
102 last_cmd = CMD_YM2612_0; | |
103 fwrite(cmd, 1, sizeof(cmd), writer->f); | 107 fwrite(cmd, 1, sizeof(cmd), writer->f); |
104 } | 108 } |
105 | 109 |
106 void vgm_ym2612_part2_write(vgm_writer *writer, uint32_t cycle, uint8_t reg, uint8_t value) | 110 void vgm_ym2612_part2_write(vgm_writer *writer, uint32_t cycle, uint8_t reg, uint8_t value) |
107 { | 111 { |
108 add_wait(writer, cycle); | 112 add_wait(writer, cycle); |
109 uint8_t cmd[3] = {CMD_YM2612_1, reg, value}; | 113 uint8_t cmd[3] = {CMD_YM2612_1, reg, value}; |
110 last_cmd = CMD_YM2612_1; | |
111 fwrite(cmd, 1, sizeof(cmd), writer->f); | 114 fwrite(cmd, 1, sizeof(cmd), writer->f); |
112 } | 115 } |
113 | 116 |
114 void vgm_adjust_cycles(vgm_writer *writer, uint32_t deduction) | 117 void vgm_adjust_cycles(vgm_writer *writer, uint32_t deduction) |
115 { | 118 { |