diff ym2612.c @ 522:6a14c5a95648

Adjust PSG and YM-2612 volume to be closer to the real console
author Michael Pavone <pavone@retrodev.com>
date Tue, 11 Feb 2014 12:52:28 -0800
parents 7565ec2ac652
children 7df7f493b3b6
line wrap: on
line diff
--- a/ym2612.c	Tue Feb 11 12:45:43 2014 -0800
+++ b/ym2612.c	Tue Feb 11 12:52:28 2014 -0800
@@ -232,7 +232,8 @@
 	}
 }
 
-#define YM_VOLUME_DIVIDER 2
+#define YM_VOLUME_MULTIPLIER 2
+#define YM_VOLUME_DIVIDER 3
 #define YM_MOD_SHIFT 1
 
 #define TIMER_A_MAX 1023
@@ -455,7 +456,7 @@
 					if (value & 0x2000) {
 						value |= 0xC000;
 					}
-					dfprintf(debug_file, "channel %d output: %d\n", channel, value / YM_VOLUME_DIVIDER);
+					dfprintf(debug_file, "channel %d output: %d\n", channel, (value * YM_VOLUME_MULTIPLIER) / YM_VOLUME_DIVIDER);
 				}
 			}
 			//puts("operator update done");
@@ -485,10 +486,10 @@
 					fwrite(&value, sizeof(value), 1, context->channels[i].logfile);
 				}
 				if (context->channels[i].lr & 0x80) {
-					context->audio_buffer[context->buffer_pos] += value / YM_VOLUME_DIVIDER;
+					context->audio_buffer[context->buffer_pos] += (value * YM_VOLUME_MULTIPLIER) / YM_VOLUME_DIVIDER;
 				}
 				if (context->channels[i].lr & 0x40) {
-					context->audio_buffer[context->buffer_pos+1] += value / YM_VOLUME_DIVIDER;
+					context->audio_buffer[context->buffer_pos+1] += (value * YM_VOLUME_MULTIPLIER) / YM_VOLUME_DIVIDER;
 				}
 			}
 			context->buffer_pos += 2;