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/]]
!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/]]