[英語/nsf]

NSF仕様書(25) / 2006-03-31 (金)

色のうすい方が原文です。
- ここから --------------------------------------------------------------------
4) If a field is not known (name, artist, copyright) then the field must contain the string "" (without quotes).
4) もし各フィールド(曲名、作曲者、著作権者)がわからない場合は内容に""を含むようにしてください(引用文無しで)。

5) There should be 8K of RAM present at 6000-7FFFh. MMC5 tunes need RAM at 5C00-5FF7 to emulate its EXRAM.
5) RAMは6000h~7FFFhの8KByteあります。MMC5の曲には5C00h~5FF7hの拡張RAMが必要です。
8000-FFFF Should be read-only (not writable) after a tune has loaded.
8000h~FFFFhは、曲をロードした後は読み込み専用(書き込み不可)となります。
The only time this area should be writable is if an FDS tune is being played.
FDSの曲で再生が始まった時のみ、ここは書き込めるようになります。

6) Do not assume the state of *anything* on entry to the init routine except A and X.
6) 初期化処理時は、AとXを除いて不定値となります。
Y can be anything, as can the flags.
Yはフラグとして使用できます。

7) Do not assume the state of *anything* on entry to the play routine either.
7) 再生処理に入るときは、どちらになるかを仮定しないようにしてください。
Flags, X, A, and Y could be at any state.
フラグ、X、A、Yはどのような状態になるかわかりません。
I've fixed about 10 tunes because of this problem and the problem, above.
この問題と上の問題で10曲に関して修正しました。
- ここまで --------------------------------------------------------------------
ここまでの進捗(翻訳が正しいかは別として)は96%。あと少し!!!

[英語/nsf]

NSF仕様書(24) / 2006-03-30 (木)

色のうすい方が原文です。
- ここから --------------------------------------------------------------------
* Sunsoft FME-07 Sound uses registers C000 and E000
* Sunsoft FME-07音源はC000hとE000hのレジスタを使用します。

This is similar to the common AY 3-8910 sound chip that is used on tons of arcade machines, and in the Intellivision.
これは、インテリビジョンやアーケードマシンの音色に使われる AY 3-8910 サウンドチップと同じです。

C000 is the address port
E000 is the data port
C000hはアドレスポート
E000hはデータポート

Both are write-only, and behave like the AY 3-8910.
両方書き込み専用で、AY 3-8910と同じように動作します。

Note: Special thanks to Mamiya for this information as well
ノート: またしても情報を提供してくれたMamiya氏に大感謝!


Caveats
-------
警告
----

1) The starting song number and maximum song numbers start counting at 1, while the init address of the tune starts counting at 0.
1) 開始曲番号と最大曲番号は1から数え、開始曲のアドレスの初期値は0です。
To "fix", simply pass the desired song number minus 1 to the init routine.
これを明確にするため、初期化ルーチンへは単に曲番号から1引いた数を渡します。

2) The NTSC speed word is used *only* for NTSC tunes, or dual PAL/NTSC tunes.
2) NTSCの速度データはNTSCの曲、またはPAL/NTSC共通の曲にのみ使用されます。
The PAL speed word is used *only* for PAL tunes, or dual PAL/NTSC tunes.
PALの速度データはPALの曲、またはPAL/NTSC共通の曲にのみ使用されます。
3) The length of the text in the name, artist, and copyright fields must be 31 characters or less!
3) 曲名、作曲者、著作権者の長さは31バイト以内で!
There has to be at least a single NULL byte (00h) after the text, between fields.
各フィールド間には少なくともNULL文字が1つになるようにしてください。
- ここまで --------------------------------------------------------------------
ここまでの進捗(翻訳が正しいかは別として)は92%。最終行が見えた!!

[日記/2006/March]

ソースコードの差分表示 / 2006-03-30 (木)

今日見たり読んだりしたもの:
 ドラマ:24 TWENTYFOUR Season5(第15話)
 映画:ファイヤーウォール


自分のサイトをソースコードがたくさんあるところにしたいという目標がありまして。
絵描きさんなら、イラストや落書きが展示してあるし、作曲者さんなら自作の曲が公開されてます。
じゃぁ、プログラマーさんはというと、アルゴリズムやライブラリの使い方の解説が多いですかね。

解説もやりたいと思いつつ、やっぱりコードがたくさんあるのもいいなと思っています。
そこで、コードの差分表示にいい方法は何かないかなと。
前回との差分をHTMLで出力できるようなツールを探すか作るかすれば、細かい更新をしながら見せることができて便利そう。と考えております。
「trac」というツールの差分表示が見やすい感じなので、あぁいうのを出力できるツールが出来ればサイト用だけでなくて複数ファイルを一気にコードレビューする時にも使用できて重宝しそう。

[英語/nsf]

NSF仕様書(23) / 2006-03-29 (水)

色のうすい方が原文です。
- ここから --------------------------------------------------------------------
* Namco 106 Sound Uses registers 4800 and F800.
* Namco106音源は4800hとF800hのレジスタを使用します。
This works similar to VRC7.4800 is the "data" port which is readable and writable, while F800 is the "address" port and is writable only.
この動作はVRC7と同じです。4800hはデータの読み込みか書き込みポートとして、F800hはアドレスの書き込みポートとして使用されます。

The address is 7 bits plus a "mode" bit.
アドレスは7ビットとモード用ビットで構成されます。
Bit 7 controls address auto-incrementing.
ビット7はアドレスの自動増加の判定です。
If bit 7 is set, the address will auto-increment after a byte of data is read or written from/to 4800.
セットされていた場合は4800hのデータが読み書きされた時に自動的にアドレスが増加されます。

$40 ffffffff f:frequency L
$42 ffffffff f:frequency M
$44 ---sssff f:frequency H s:tone length (8-s)*4 in 4bit-samples
$46 tttttttt t:tone address(4bit-address,$41 means high-4bits of $20)
$47 -cccvvvv v:linear volume 1+c:number of channels in use($7F only)
$40-47:ch1 $48-4F:ch2 ... $78-7F:ch8
ch2-ch8 same to ch1
$40 ffffffff f:頻度 L
$42 ffffffff f:頻度 M
$44 ---sssff f:頻度 H s:トーン長 (8-s) * 4 4ビットサンプル
$46 tttttttt t:トーンアドレス (4ビットアドレス $41は$20の上位4ビットを意味する)
$47 -cccvvvv v:ラインボリューム 1+c:使用中のチャンネル($7Fのみ)
$40-47:チャンネル1 $48-4F:チャンネル2 ... $78-7F:チャンネル8
チャンネル2から8はチャンネル1と同様。

$00-3F(8ch)...77(1ch) hhhhllll tone data
h:odd address data(signed 4bit)
l:even address data(signed 4bit)
$00-3F(8チャンネル)...77(1チャンネル) hhhhllll トーンデータ
h:奇数アドレスデータ(符号付き4ビット)
l:偶数アドレスデータ(符号付き4ビット)

real frequency = (f * NES_BASECYCLES) / (40000h * (c+1) * (8-s)*4 * 45)
NES_BASECYCLES 21477270(Hz)
正確な頻度 = (f * NES_BASECYCLES) / (40000h * (c + 1) * (8 - s) * 4 * 45)
NES_BASECYCLES 21477270(Hz)
Note: Very Special thanks to Mamiya for this information!
ノート: 情報を提供してくれたMamiya氏に大感謝!
- ここまで --------------------------------------------------------------------
ここまでの進捗(翻訳が正しいかは別として)は83%。ついに8割突破!

[英語/nsf]

NSF仕様書(22) / 2006-03-28 (火)

色のうすい方が原文です。
- ここから --------------------------------------------------------------------
2) 5205 and 5206 are a hardware 8*8 multiplier.
2) 5205hと5206hはハードウェアの8*8乗数です。
The idea being you write your two bytes to be multiplied into 5205 and 5206 and after doing so, you read the result back out.
アイデアとして、5205hと5206hに掛けられる2バイトを書き込み、その後結果を読み込みます。
Still working on what exactly triggers it (I think a write to either 5205 or 5206 triggers the multiply).
今そのトリガに取り掛かっています(5205hか5206hのどちらかを掛け算のトリガにして書き込めばいいかと思います)。
3) 5C00-5FF5 should be RAM to emulate EXRAM while in MMC5 mode.
3) 5C00h~5FF5hは拡張RAMのエミュレート用に使われます。
Note: Thanks to Mamiya for the EXRAM info.
ノート: 拡張RAM情報を提供してくれたMamiya氏に感謝します。
- ここまで --------------------------------------------------------------------
ここまでの進捗(翻訳が正しいかは別として)は75%。じわじわと。