FrontPage  Index  Search  Changes  RSS  Login

Gom作業メモ - Romeo Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

{{toc}}

!ANCIENT-FM Sound Technology -ROMEO-
[[「ANCIENT-FM Sound Technology -ROMEO-」(ろみお)|http://www.kurusugawa-ele.co.jp/product/pci/romeo/index.html]]についてのメモです。

!インストール
!!ドライバ

!対応プログラムなど
!!対応プログラムの所在

!ROMEO対応プログラムの作成とかソースとか
!!julietライブラリ
[[GORRYさんのページ|http://gorry.haun.org/index.html]]もしくは[[うささんのページ|http://retropc.net/usalin/]]より取得してください。

!!YM2151 X1/X3切り替え
こんな感じでいかがでしょうか?
!!!juliet.h
/* clock */
#define YMF288_ROMEO_CLOCK    (8000000) /* ROMEO YMF288 Clock(  :8.000000) */
#define YM2151_ROMEO_CLOCK_X1 (4000000) /* ROMEO YM2151 Clock(X1:4.000000) */
#define YM2151_ROMEO_CLOCK_X3 (3579545) /* ROMEO YM2151 Clock(X3:3.579545) */
#define YM2151OSC_X1          (0x00)   /* use X1(4.000000) */
#define YM2151OSC_X3          (0x01)   /* use X3(3.579545) */
#define X1_MAX                (4096000) /* X1 MAX */
#define X1_MIN                (4000000) /* X1 MIN */
#define X3_MAX                (3582000) /* X3 MAX */
#define X3_MIN                (3000000) /* X3 MIN */
#define juliet_YM2151SetCurrentOsc(osc)    (ym2151osc = osc)
#define juliet_YM2151GetCurrentOsc()       (ym2151osc)
BYTE    ym2151osc = YM2151OSC_X1;          /* YM2151 oscillator (X1 or X3) */

!!!juliet.c
/**
  *  YM2151 オシレータ選択.
  *  YM2151 のクロックから使用するオシレータを変更する。  
  *    'clock' is the chip clock in Hz  
  *  
  *  @param int clock クロック  
  */  
void juliet_YM2151OscSelect(int clock)  
{
     if (juliet_YM2151IsEnable()) {  
         // 4.000-4.096MHz    
         if (clock >= X1_MIN && clock <= X1_MAX) {        
             juliet_YM2151SetCurrentOsc(YM2151OSC_X1);    // X1:4.000000        
         }            
         // 3.000-3.582MHz        
         else if (clock >= X3_MIN && clock <= X3_MAX) {        
             juliet_YM2151SetCurrentOsc(YM2151OSC_X3);    // X3:3.579545        
         }            
         // ?MHz        
         else {        
             juliet_YM2151SetCurrentOsc(YM2151OSC_X1);    // default:X1:4.000000        
         }            
         romeo.out32(romeo.addr + ROMEO_YM2151CTRL, juliet_YM2151GetCurrentOsc());        
         Sleep(10);                // 44.1kHz x 192 clk = 4.35ms 以上ないと、DACのリセットかからない        
     }        
}

!その他リンクとか情報源とか
*[[来栖川電工 Ancient FM sound technology - ROMEO -|http://www.kurusugawa-ele.co.jp/product/pci/romeo/index.html]]
*[[まさちく工房|http://dns.kurusugawa-ele.co.jp/~m-ikura/]]
*[[音源一般スレ Ch.2|http://bubble2.2ch.net/test/read.cgi/i4004/1057996936/]]