M.A.D.製FPGA評価ボード MFP-CY240Z-B その2 ― 2016年07月24日 16:10
音量小さかったのでソース修正
こちらのソースから音量部分のみ移植。
とりあえず音量は大きくなったけど、各音源のボリュームバランスはとれてるのかな?
これでダメなら内部を直接いじってみるか。
音量増加
one_chip_msx_board\emsx_top.vhd
429行目
package\msx_components.vhd
262行目
315行目
sound\mixer\mixer.vhd
65行目
95行目
197行目
211行目
sound\mixer\psg.vhd
58行目
92行目
こちらのソースから音量部分のみ移植。
とりあえず音量は大きくなったけど、各音源のボリュームバランスはとれてるのかな?
これでダメなら内部を直接いじってみるか。
音量増加
one_chip_msx_board\emsx_top.vhd
429行目
SIGNAL PSGAMP : STD_LOGIC_VECTOR(7 DOWNTO 0);↓
SIGNAL PSGAMP : STD_LOGIC_VECTOR(9 DOWNTO 0);
package\msx_components.vhd
262行目
WAVE : OUT STD_LOGIC_VECTOR( 7 DOWNTO 0 )↓
WAVE : OUT STD_LOGIC_VECTOR( 9 DOWNTO 0 )
315行目
PSGAMP : IN STD_LOGIC_VECTOR( 7 DOWNTO 0 );↓
PSGAMP : IN STD_LOGIC_VECTOR( 9 DOWNTO 0 );
sound\mixer\mixer.vhd
65行目
PSGAMP : IN STD_LOGIC_VECTOR( 7 DOWNTO 0 );↓
PSGAMP : IN STD_LOGIC_VECTOR( 9 DOWNTO 0 );
95行目
SIGNAL FF_PREPSG : STD_LOGIC_VECTOR( 8 DOWNTO 0 );↓
SIGNAL FF_PREPSG : STD_LOGIC_VECTOR( 9 DOWNTO 0 );
197行目
WITH MSTRVOL SELECT W_SCC_SFT <= W_S( 15 DOWNTO 14 ) & W_SCC( 18 DOWNTO 5 ) WHEN "000", W_S( 15 DOWNTO 13 ) & W_SCC( 18 DOWNTO 6 ) WHEN "001", W_S( 15 DOWNTO 12 ) & W_SCC( 18 DOWNTO 7 ) WHEN "010", W_S( 15 DOWNTO 11 ) & W_SCC( 18 DOWNTO 8 ) WHEN "011", W_S( 15 DOWNTO 10 ) & W_SCC( 18 DOWNTO 9 ) WHEN "100", W_S( 15 DOWNTO 9 ) & W_SCC( 18 DOWNTO 10 ) WHEN "101", W_S( 15 DOWNTO 8 ) & W_SCC( 18 DOWNTO 11 ) WHEN "110", W_S( 15 DOWNTO 7 ) & W_SCC( 18 DOWNTO 12 ) WHEN "111", (OTHERS => 'X') WHEN OTHERS;↓
WITH MSTRVOL SELECT W_SCC_SFT <= W_SCC( 18 DOWNTO 3 ) WHEN "000", W_S( 15 ) & W_SCC( 18 DOWNTO 4 ) WHEN "001", W_S( 15 DOWNTO 14 ) & W_SCC( 18 DOWNTO 5 ) WHEN "010", W_S( 15 DOWNTO 13 ) & W_SCC( 18 DOWNTO 6 ) WHEN "011", W_S( 15 DOWNTO 12 ) & W_SCC( 18 DOWNTO 7 ) WHEN "100", W_S( 15 DOWNTO 11 ) & W_SCC( 18 DOWNTO 8 ) WHEN "101", W_S( 15 DOWNTO 10 ) & W_SCC( 18 DOWNTO 9 ) WHEN "110", W_S( 15 DOWNTO 9 ) & W_SCC( 18 DOWNTO 10 ) WHEN "111", (OTHERS => 'X') WHEN OTHERS;
211行目
IF( CLK21M'EVENT AND CLK21M = '1' )THEN FF_PREPSG <= (('0' & PSGAMP ) + (KEYCLICK & "00000")); FF_PRESCC <= ((SCC1AMPL(14) & SCC1AMPL) + (SCC2AMPL(14) & SCC2AMPL)); FF_PSG <= "000" & SHR( (FF_PREPSG * PSGVOL) & "0", MSTRVOL ); FF_SCC <= W_SCC_SFT; IF( OPLLAMP < C_OPLL_ZERO )THEN CHAMP := "00" & SHR( ((C_OPLL_ZERO - OPLLAMP) * OPLLVOL) & "0", MSTRVOL ); FF_OPLL <= C_AMP_OFFSET - ( CHAMP - CHAMP( 15 DOWNTO 3 ) ); ELSE CHAMP := "00" & SHR( ((OPLLAMP - C_OPLL_ZERO) * OPLLVOL) & "0", MSTRVOL ); FF_OPLL <= C_AMP_OFFSET + ( CHAMP - CHAMP( 15 DOWNTO 3 ) ); END IF; END IF;↓
IF( CLK21M'EVENT AND CLK21M = '1' )THEN FF_PREPSG <= (PSGAMP + (KEYCLICK & "000000")); FF_PRESCC <= ((SCC1AMPL(14) & SCC1AMPL) + (SCC2AMPL(14) & SCC2AMPL)); FF_PSG <= "0" & SHR( (FF_PREPSG * ("0" & PSGVOL)) & "0", MSTRVOL ); FF_SCC <= W_SCC_SFT; IF( OPLLAMP < C_OPLL_ZERO )THEN CHAMP := SHR(((C_OPLL_ZERO - OPLLAMP) * OPLLVOL) & "000", MSTRVOL ); FF_OPLL <= C_AMP_OFFSET - ( CHAMP - CHAMP( 15 DOWNTO 3 ) ); ELSE chAmp := SHR(((OpllAmp - c_opll_zero) * OpllVol) & "000", MSTRVOL ); FF_OPLL <= C_AMP_OFFSET + ( CHAMP - CHAMP( 15 DOWNTO 3 ) ); END IF; END IF;
sound\mixer\psg.vhd
58行目
WAVE : OUT STD_LOGIC_VECTOR( 7 DOWNTO 0 )↓
WAVE : OUT STD_LOGIC_VECTOR( 9 DOWNTO 0 )
92行目
WAVE <= W_WAVE( 9 DOWNTO 2 )↓
WAVE <= W_WAVE
コメント
トラックバック
このエントリのトラックバックURL: http://miyako.asablo.jp/blog/2016/07/24/8138234/tb
※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※投稿には管理者が設定した質問に答える必要があります。