作者のつぶやき 2001年1月1日〜1月31日 [Junk box] [WWitch] [BBS]

[GAME BASIC for SEGASATURN 用の BASICプログラム]マークのついているリンクから.Bファイル がダウンロードできます
△ 2001年2月のつぶやきへ


2001/01/30 某プログラミングコンテスト応募完了!
当初はこのページらしくスワン+外付けハードウェアでいく予定でしたが、 思い付いたネタがいまいちインパクトに欠けたので、ソフトウェアで 勝負しようということにしました。で、当初は

スワン上で圧縮された音声を再生する

  • 圧縮アルゴリズムには音声特有の局所類似性を考慮した lz 系圧縮を使用
    • 某氏がWin用に開発されたアルゴリズム(すでに市販ゲームなどに採用) をスワン向けにアレンジ
    • 計算上はスワンでもバックグラウンドでのリアルタイム伸張が可能
    • 圧縮率は mp3並
  • スワン側にはゲームなどで容易に利用できるようにライブラリを提供
  • PC側には専用のエンコーダを用意

てな感じでやってました。 でも、本業が死にかけてきたので今年のコンテストへの出展は断念(T-T) 来年度に持ち越すことにしました。
しかし、このままなにも応募しないのもちょっと、という気がしてきたので ウチの Witch系コンテンツの中では一番反響があった DOS 上からのファイル 転送ソフトを出展することにしました。応募概要には、未発表であること、 という制限はないので、現状のものをそのまま出展するのもアリだったのですが、 さすがにそれは気が引けたので、新機能追加、データ転送の安定化・高速化 などを期間内で可能な限り行いました。プログラム的には ver 1.2 -> ver 2.0 にしてもいいくらい検討・改良を重ねたのですが、 ぱっとみではあんまり変わらないので ver 1.3です(^^;
現在 dos2ww をお使いの方はぜひこちら からDLしてみてください。
#結構自信作だったりするのですが. . . . 参加賞だな、きっと。
##何か賞をいただけたら還元いたしますです。

2001/01/17 サポートからのお返事
↓のハマリ3の件についてサポートにメールを出したところ、

  1. 12kHz での再生が出来ない場合があることは十分考えられ、 現在対応を検討中
  2. ソフトウェア使用許諾契約に抵触しない方法による、 独自に調査した内容に基づく I/O 直接アクセスついては、 自己責任で使うことができる
  3. 上記に基づく独自の調査結果を積極的に公開することは推奨できないが、 調査結果を利用してソフトウェアを作成することや、 そのソフトウェアの一部としてソースを公開することについては特に問題なし

との回答をいただきました。 迅速&的確な対応ありがとうございます(T-T) > サポート
なわけで、安心してソースを公開しちゃいます、 とおもったのですが、対応を検討中とのことなので、 それを使ったものを公開したいと思います。 I/O 直叩き系プログラムは、 スワンのロットによっては動かないこともあるかもしれないし....
#コンテスト〆切までに対応がされないときは、I/O直叩きのやつを 応募しちゃうけど(^^;

2001/01/15 某プログラミングコンテストまであと半月
なので、ぼちぼちプログラムをはじめてみました。ワンダーウィッチでは mmap(ファイル名)で、ファイルの実体のアドレスが取得できてしまいます。 1つのファイルはFlashROM上で細切れにならないことが保証されているので これをつかうと、データを読むだけなら FILE構造体を使うまでもなく、 オーバーヘッド無しに直接アクセスができてしまうという すんばらしいことができてしまいます。 これで、リソースも使う気がなくなりました。
#ファイルにリソースをリンクしてたら転送に時間は掛かるし FlashROMの寿命が早く来ちゃうし
っていうのに気がついて、mmapをつかって数百kbyteの PCMを鳴らすプログラムを 書いてみました。いやぁ、はまるはまる(笑)

ハマリ1
WoderWitchでは Meg というのと Ged というのと2つのシェルがあるのですが、 これの動作が微妙に異なっていて、ファイル関係を扱うときには特に注意が 必要です。Gedでは、

    mmap("test.pcm")
でもアドレスが返ってきますが、Megでは、
    mmap("/rom0/test.pcm")
と、ちゃんとパスを指定してあげなければいけません。 片一方のシェルだけでデバッグしていると危険ですね(^^;

ハマリ2
WonderSwanは8086系CPUなので、大きなファイルを扱うときはセグメントを 気にしなければいけません。うっかり、ポインタをインクリメントしていると おんなじアドレスをぐるぐるぐる〜〜(T-T)

    #define NORM_FARPTR(p) MK_FP(FP_SEG(p) + (FP_OFF(p) >> 4), FP_OFF(p) & 0x0f)
とかしておいて、
    unsigned char far *fpos;
    fpos = (unsigned char far *)mmap("/rom/test.pcm");
    ...
    fpos++;
    fpos = NORM_FARPTR(fpos);
すね。ここで、fpos = NORM_FARPTR(++fpos); なんてやったらダメっすよ(^^;

ハマリ3
自前でPCM再生ルーチンを組む場合には HBLANK割り込み(12kHz)を 1ライン毎にかけながら、PCM用のレジスタを操作しなければならないのですが、 提供されている BIOSを使うと一回レジスタを操作している間に 1/12k 秒以上の 時間がかかってしまいます。んなわけで 12kHzで PCM再生したければ 直接 I/O 叩くしか. . .

ってこれ以上はやばいので書きません(弱)
サポートから許可もらったら公開します。

2001/01/12 光学系付き人工網膜チップ
GAME BOY POCKET CAMERA 分解写真 ひさびさにサークルによったらそんな話になったので煽り用(笑)に 写真を撮ってみました。GAME BOY のポケットカメラの分解写真です。 分解には先端がY型のドライバーが必要です。

右の拡大写真(112K)
人工網膜チップが実装されてる基板の裏(15K)
カメラ部を組立てたところ(21K)

ほらほら、ロボットにつけたくなったでしょ(笑
仕様書もあることだし(^^;

2001/01/08 4096色同時発色実験
さる計画のためにできるだけきれいなカラー画像をスワン上で表示 したいのですが、昨日の方法だとスワン上でやるには演算量が 多すぎてしまいます。 そんなわけで、以前モノクロスワンでやった16色表示と似てますが、 赤、緑、青だけで絵を書いておいてこれを1フレーム毎にきりかえる方式 を試してみました。 液晶が遅いおかげで結果はばっちりうまくいったですよ(笑)
4096色同時発色です v(^^)
画面はライブラリをつかってる限りではこれ以上は広くならないです。
DMA転送のやり方公開してほしいっすよ〜(T-T)>サポート
#昨日のはもう開発ストップしたらしい(笑

2001/01/07 Winアプリはじめてみました
Winアプリをかかなければならない状況に追いこまれつつあるので、 C++Builderをかじり始めました。 DOSアプリになれてると、うおぉ、こんなかき方してメモリ管理は どうなってるんじゃー、と叫びたくなってしまいますが、 まあ、楽だわね。で、慣れる意味でスワン用のプログラムなんかを かいてみました。

ワンダースワンカラーでは、 理論上240色(背景色を含まず)を表示できるのですが、 1キャラクタ毎に、 15色一組で16個あるパレットテーブルから一つ選んで表示、 という作業をしなければならないので、実際には240色を使いきるのは 面倒なのです。ついでにパレットは R,G,B 各4ビットなのでベタ塗りすると グラデーションの境界が見えてしまいます。てなわけで、 その辺を考慮してグラフィックコンバータを書いてみました。 この絵でパレットテーブルを8個消費してます。うーん... とりあえずの勝手に立てた目標は、 紫雨さんのところの 某イメージショットをそれほど遜色なくスワン上で表示することだけど、 先は長そう。
これを試してみたい人はこちらって、 まだスワン用のバイナリ吐きませんけど(ぉ
ファイルが足りない人はこれ(490K)を windows/systemに解凍してください。
#ってつづけるのかこれ(笑


2001/01/03 秋葉の収穫
年末に秋葉原にいってきました。 tokoyaさんに会えるかなぁと秋月前でスワンをもっていたら さくっとみつけてくださったのでよかったよかった(^^)
tokoyaさんにいろいろ教えていただいて、今回の収穫はなかなかいい感じ。
  • 特殊ドライバーセット〜1400円くらい@千石

      ドライバーの先端が*だったり☆だったりするやつの詰め合わせ。 最近この手のネジが多いので重宝しそう。とりあえず、ばらさずにいた GAME BOYのポケットカメラをバラしてみると光学系+人工網膜チップの 部分はコネクタで簡単に切り離せるようになっていた(ニヤリ

  • PanasonicのMSX用フロッピードライブ〜4200円@たんせい

      手持ちのMSXには、SONYの2+とPanasonicのTurboRがあるのですが、 両方ともフロッピードライブのゴムベルトが劣化して動力がつたえられなく なっていました。ちょっと値段が高いかなぁと思いましたが購入。 同人ハードっぽいコネクタがついていて簡単に接続できました。 おかげでTurboR復活(T-T)

  • シリアル変換アダプタがついているPS/2スクロールマウス〜700円くらい@ツクモのどこか

      スワンにマウスネタの補完用。気になってたのよこれ。
あとは、小ネタ用に コンデンサマイクとか、WW用カートリッジとか、 超小型スピーカとか、秋月加速度センサキットなどを購入。 これらは追って使っていきます。

2001/01/02 あけましておめでとうございます
ことしもよろしくおねがいします。

正月は実家にパソコンを導入しました。 といっても、親はパソコン超初心者。ダブルクリックしようとすると、 アイコンが動く...(汗
#ダブルクリックしてる間にマウスを動かしてしまうのね...
でもとりあえず、電子メールとWebブラウザの使い方だけ説明してきました。 加入したプロバイダは 50M, cgi可, 無料ということなので、 ホームページスペースはありがたく利用させていただく予定


▽ 2000年12月のつぶやきへ
[Junk box] [WWitch] [BBS]