M.A.D.製FPGA評価ボード MFP-CY240Z-B その2
2016-07-24


音量小さかったのでソース修正

こちらのソースから音量部分のみ移植。

とりあえず音量は大きくなったけど、各音源のボリュームバランスはとれてるのかな?
これでダメなら内部を直接いじってみるか。


音量増加

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
                        

続きを読む

[MSX]

コメント(全0件)
コメントをする


記事を書く
powered by ASAHIネット