魔女本ぽか情報 2002/6/14版

現在、一部の人たちに好評な魔女本ですが、いろいろと「ぽか」も出てきてるので、それをフォローしようというページです(T_T)

間違い

P36 sprite_set_char()の引数char_dataの解説 (2001/3/25発行の第2刷で修正済み)
×「表示に使用するパレット番号から8を引き5ビット左へシフトした値」
○「表示に使用するパレット番号から8を引き9ビット左へシフトした値」
test2.cでは、この記述に対応する部分が「(12 - 8) * 0x200」と書いてますが、「(12 - 8) << 9」って書いた方が良かったですね(^^;

P42 screen_set_char()の引数data_pの解説 (2001/3/25発行の第2刷で修正済み)
×「表示に使用するパレット番号を5ビット左へシフトした値」
○「表示に使用するパレット番号を9ビット左へシフトした値」

プログラムの修正

第7章 adv2.c、adv3.c 及び 第8章 gotaq.c
1行目に「#include <stdlib.h>」を挿入。プログラム中に使用されている全ての「bios_exit();」関数を、「exit(0);」に置き換える。

第5章 ref1.c 及び 第10章 ref1c.c
set_number()を以下のように修正する。
/* 数値を表示 */
void set_number(int cx, int cy, int no) {
    int j = 10000, k, l = 0;

    for(k = no / j % 10; j > 1; j /= 10, k = no / j % 10)
        if(k || l) {
            cmap[cy][cx++] = 26 + k;
            l = 1;
        }
    cmap[cy][cx++] = 26 + k;
    cmap[cy][cx] = 8;
}

表現の修正

P57 プログラムのポイント sound_set_output()
旧「B各チャンネルの出力方法を設定:sound_set_output()」
新「B出力方法と全体の音量を設定:sound_set_output()」

最新情報への追従

P5 「最新の開発環境へのアップデート」
旧「2000年12月25日時点での最新版はWWUpdate20001122.exe」
旧「2001年3月1日時点での最新版はWWUpdate20010207.exe」
新「2002年6月14日時点での最新版はWWUpdate20011225.exe」

P6 「最新の開発環境へのアップデート」最後から2行目に挿入 (2001/3/25発行の第2刷で修正済み)
 また、お持ちのMagical CD-ROMのボリューム名が"Magical_cdrom100"で、WWUpdate20001122 以前のアップデータを適用していたり、"Magical_cdrom101"である場合は、LSI-Cが16bit版である事に起因するコンパイル時の不具合が発生する可能性があります。
 この場合は、WonderWitchサポートwebサイトから「32bit/16bit統合版 LSI C-86 for WonderWitch」"lsic86ww.zip"を入手し、お手持ちの解凍ソフトで展開して得られるファイル群を、インストールディレクトリ以下のlsic86ww以下のものと置き換えてください。

P23 「FreyaOSをアップグレードする」8行目 (2001/3/25発行の第2刷で修正済み)
旧「FreyaOSを必ず最新のものに」
新「FreyaOSを必ずバーション1.1.0以降のものに」

P24 「FreyaOSのバージョンを確認する」最後から3行目
旧「2000年12月25日時点での最新版はfreya110.bin、ただしカラーライブラリにしか含まれていない」
旧「2001年3月1日時点での最新版はfreya111.bin」
新「2002年6月14日時点での最新版はfreya115.bin」

P227 「LSI-Cの制限」最後に追加 (2001/3/25発行の第2刷で修正済み)
 実際の開発時において、何らかの理由で16bit版LSI-Cを使用しているときに、この制限に遭遇するでしょう。逆に、32bit版LSI-Cの使用においては、実用上遭遇することはありません。32bit版LSI-Cを使用しているつもりで、もしこの現象に遭遇したら、環境が正しく設定されていない可能性があります。WonderWitchサポートwebサイトから「32bit/16bit統合版 LSI C-86 for WonderWitch」"lsic86ww.zip"を入手し、お手持ちの解凍ソフトで展開して得られるファイル群を、インストールディレクトリ以下のlsic86ww以下のものと置き換えてください。

P254 第1刷「カラーライブラリを手に入れる」最後に追加
注:2002年6月14日時点で、カラーライブラリは最新版アップデート"WWUpdate20011225.exe"に含まれています。アップデートを行えば、カラーライブラリもインストールされます。

P254 第2刷以降「カラーライブラリを手に入れる」最後から3行目
旧「2001年3月1日時点で、カラーライブラリは最新版アップデート"WWUpdate20010207.exe"に含まれています。」
新「2002年6月14日時点で、カラーライブラリは最新版アップデート"WWUpdate20011225.exe"に含まれています。」

P256 「test1.cをカラー化したプログラム」2行目以降
旧:test1c.cのように……注意して下さい。
新:test1c.cをコンパイルするには
> lcc86 -o test1c.bin test1c.c
として下さい。(注:開発環境が古いものではコンパイルできない可能性があります。最新の開発環境にアップデートして下さい)

P261 test2c.cのコンパイル
旧:> lcc86 -o test2c.bin test2c.c c:\wwitch\lib\libwwc.lib
新:> lcc86 -o test2c.bin test2c.c

 

おまけ

dmcでmathな関数を使う「sdsuseパッケージ ver.1未満

魔女本のソースをWSSIM 0.8a対応にしたやつ

通信ケーブルを使う「WS間通信サンプル3種