正直日記



2007/04/05

_ VRC7ユーザ定義音色の吸出し
元ソース(MML)を紛失したNSFからユーザ定義音色を復元するという話。

Emu2413に手を入れる方向で考えていたのだけど、ソースが公開されていてかつEmu2413
を使用したスタンダロンNSFプレイヤがすぐに思いつかなかったので、Game_Music_Emu
に手を入れることにした。

Nes_Vrc7_Apu.cppをでっちあげて、それからNsf_Emu.cppに
static unsigned int vrc7_indexreg;

void Nsf_Emu::write_vrc7( Nsf_Emu* emu, nes_addr_t addr, int data )
{
  if ( addr == 0x9010 ) {
    vrc7_indexreg = data;
  } else
  if ( addr == 0x9030 ) {
    if (vrc7_indexreg < 0x08) {
      if (vrc7_indexreg == 0)
        printf( "\n\t$%.2X", data );
      else
        printf( ",$%.2X", data );
    }
  }
}
こんな風なメソッドを追加した。これだけ。あとは再生するだけでstdout.txtに $21,$67,$0A,$02,$93,$90,$74,$45 みたく出力されて万々歳ですよ。 Game_Music_Emu作者のBlargg氏はnes_ntscやBlip_Bufferのような、今までありそうで 無かったライブラリを作っているので素敵。

花乃子 > エロ妻で欲求不満解消!逆援希望多数!  (2007/04/18 22:35:07)
亜衣奈 > エッチな人妻と会いたい人はここ♪  (2007/04/19 21:38:00)
> どこ? ここ? ここでいいのか?  (2007/04/19 22:06:03)
赤塩 > 広島の出会いは全て無料でOK!  (2007/04/20 21:05:57)
> どこやねん。  (2007/04/21 14:45:41)
喜枝 > プライバシー重視の出会い紹介所  (2007/04/23 21:11:47)
日向陽 > エロ姉様系女性の直アド完全公開中  (2007/04/24 20:47:52)
恵利 > 逆縁交・割り切りセフレ探し専門!  (2007/04/25 05:59:24)
カツジ > バリカン出されたときは一瞬引いたけど、兄貴の「いやなら止めていいんだぜ!」の一言で覚悟決め、生まれて初めて丸刈りになりました。  (2007/04/26 00:59:05)
明鈴 > 萌えは人を元気の素♪  (2007/04/26 06:53:42)
容子 > エロ女のメアドGETでウハウハ♪  (2007/04/27 06:23:49)
棚元 > 攻略マニュアル完備!メル友出会い  (2007/04/28 10:11:30)
容加 > 直接メールが基本だから会える!!  (2007/05/03 03:21:44)

2007/04/04

_ ○じだよ、全員集合
一日中デスクに向かって座りっぱなしのため、あれが再発したんですよ。ほら、皆まで
言わなくても分かるでしょう。あれです。とにかく辛いんですよ。自己診断してみたら
この段階みたいですよ。

これまでテンピュール座布団や穴あきクッションを試すなどして、騙し騙しやってきた
のですが、もはやそういう段階を突破いたしましたよ。

> 風呂の湯に浸かってるときは痛みもひくしマッサージすれば腫れも引くと思うので、一生お風呂で生きていけば良いと思った。  (2007/04/06 01:36:19)
> いやいやいや、お風呂でも痛みますよ。それは置いておくとして、おふろ星人には確かになりたいです。  (2007/04/06 02:20:11)

2007/04/02

_ 嘘だよ
ファミコンは無理だよ。

sato_tiff > 怪しいところがないから信じてしまいました(笑) どこまでが本当だったんでしょうか(笑)  (2007/04/02 22:47:43)
> 一段落目は本当。ファミコンに刺さってる変なアダプタはイーアルカンフーに適当な基板をくっつけただけです。これをでっちあげるのが一番時間掛かった……。  (2007/04/04 01:18:07)

2007/04/01

_ 8bitのカタマリ
よっしん氏の承諾を得て、超連射68kの移植作業を開始してからおよそ1年が経過した。
その間何をやっていたかと言うと、まずX68kの青本を入手しアーキテクチャを頭に叩き
込み、MC68000のアセンブリを勉強しひたすら逆アセンブルリストの解析を行っていた。
(途中でついカッとなってワンダースワンやメガドライブの開発に浮気したりもしたけ
ど……でもメガドライブは68アセンブリを書く練習になったのでやって損は無かったよ)

そうして得た情報を元に敵キャラクタの行動をCのソースにしていき、マシンパワーが
足りなくなったらシステムを見直して、今年に入ってようやくそこそこ動くようになっ
てきた。

しかし、そこで一旦手を休めちゃったんだなぁ。ふと周りを見渡してみると8bit時代の
ゲームが見直されつつあり、往年のファミコンソフトが次々と復刻され、PSGをフィー
チャした楽曲が多数発表され、更には新作を開発するという話まで出ているようである。
時代はファミコンだったのか?これは、やるしかない!





というわけで、Cソースを更に6502アセンブリに落とし込む作業が始まった。

さすがにファミコンは制限が大きく、まず、いつでも巨大キャラを出せるようにするた
め背景表示を諦めた。またスプライトの横並び制限が64ドットまでなのでほぼ全てのス
プライトが常に点滅して表示されることとなった。なにげに多量のスプライトを使用す
る爆破グラフィックは全面カットされた。

一面の本当に最初の部分が動くようになったところで実機チェックである。過去に吸出
し機を作っていたので、それを改造して自由に書き換え出来るようにし、ようやく実機
で動かせるようにしたところで力尽きた。

明日に続く。

sato_tiff > jsr rts bne あたりなら 68k->C-> 6502 ではなくて 68k->6502 もできる気がするけどそんな簡単な話じゃないんでしょうね。手動で逆コンパイルとコンパイルをやってたってことなんでしょうか...  (2007/04/02 17:10:55)
> 解析した内容を咀嚼して自分なりに組みなおすという工程でやってます。手動ということになるのかな……。つか、6502アセンブリはさっぱり分かりませんですよ。  (2007/04/02 20:15:26)

最新
2010 | 01 04
2009 | 01 02 03 04 05 06 07 09 10 11 12
2008 | 01 02 03 04 05 06 07 08 09 10 11 12
2007 | 02 03 04 05 06 07 08 10 11 12
2006 | 01 02 03 04 05 06 07 08 09 10 11 12
2005 | 01 02 03 04 05 06 07 08 09 10 11 12