sue445の一人言・2005年2月分


1 5 9 12 13 14 17 18 20 24 28


2月1日(火)

日記レス&福岡オフ本格告知

というわけでほっしーさんとこの1月28日の日記から

> sue445さん、なんてものを作ってしまったんですかっ^^;

わけの分からない人はここにある「RPGデバッガー200X」を参照(もし過去ログの方にいってたら左側のメニューの1月20日掲載分を見てください)

> 確かそこまで製作期間はかかっていなかったような...

制作期間は、応募用書類に書いたのは確か「構想半月+製作1ヶ月+デバッグ1ヶ月」だったかと。システム系統は改変ツールがベースになっているので、そっちも含めるともう1ヶ月くらい増えます。自分のプログラム(ゲームを除く)の中では制作期間(初版リリースまでの期間)が一番長いと思います。さすがにデバッグに1ヶ月もかければバグは駆逐しきれました。雑誌のDVDに収録される(かもしれない)という関係上、バグは極力出したくなかったんで。まぁ、受験勉強の合間にせこせこと(^^;

その甲斐あってか、投稿して半月たった今でもこれといってバグとか不具合は見つかっていません。せいぜい「マニュアルに書いておけばよかったかなぁ〜」程度のどうでもいい記述とか。

システム部分は完全に共用なので、デバッガー製作時に見つかったバグを改変ツールの方に反映させてました(笑) RTPの存在をすっかり忘れていたりとか、メモリを無駄に200MBも使ってたりとか(滝汗

> このGUIは何かおかしい。

あの小さいサムネイルだけでどこまで分かるか分かりませんが、

(あのサムネイルは)4つあるウィンドウのたった1つですので(笑)

もっとおかしいGUIが満載です(爆) あれはメインウィンドウじゃないですよ(笑)

とりあえずあれはロマカノ(ないしはToK)の攻略本支援としておまけで作ってみたものです。

あれは縮小した時のインパクトは一番だと思いますが、無駄な芸の細かさではメインウィンドウの方が上です(笑)

ツクールのGUIをベースにして自分だけがなりに使いやすいものを目指したつもりです(^^;

各ウィンドウ1つずつだけでも普段作っているリプレイビュアーとかSusieプラグインとか1つ分に余裕で相当すると思います。

>東方スコア出力・リプレイ管理やら、黄昏フロンティア作品に関してもいろいろやっていたり、わけがわからず^^;

大丈夫です。自分もわけが分かりませんから(笑)

とりあえず思いつきでいろいろと作っているだけですのでジャンルは統一されてません。強いて言うなら、その時に自分の興味がわいたものくらいですかねぇ、、、

バイナリ解析マニア+プログラマ=自分_| ̄|●

> 今からツクール2000/2003で作られる方には便利かも。XPに比べてまだまだノウハウが詰まっていそうですしねー^^; > 200X

XPを入手したらXP版も作ってみたいなぁとか。XPはアーカイブの暗号化が完璧なので、わざわざレジストリからツクールのインストールフォルダを調べに行ってexeをMD5チェックしなくてもよさそうだし(ぉ

> オフ

というわけで、本格的に告知をしてみました。

トップに長々と告知文書くのもアレなんで日記のトップに移しました。(この日記読んでいる時点ですぐに分かったと思いますが)

というわけで、やら ない  (とか誘ってみるテスト(笑))

 

ていうか、ほっしーさんサイドで誰が来るか分からないのが一番怖いのですが(汗

第2回東方最萌トーナメント

時期的にちょうどいいので、萃香支援にこじつけて萃夢想リプレイビュアーVer2.00を公開してみます(笑)

どこが萃香支援なのかというと、プログラムアイコンが萃香だからです。(描いたのはやむっさんですが^^;)

だいたいこんな感じです(XPの「並べて表示」にて)


2月5日(土)

Web拍手設置

某所に影響されてというか(笑)

トップに設置するか日記に設置するかで迷ったのですが、拍手の方はあくまで日記に対する一言ツッコミということで日記の方に設置。その他のこまごましたことはメールフォームなり掲示板に書いてもらえればいいカナと。

両方に設置するという選択肢もあるにはありましたが(笑)

ボタンの設置場所についてですが、うちの日記は「最新の日記」→「その月の過去ログ(日付順)」のような仕様なので、最新の日記と過去ログの間に設置することにしました。日記を読み終わった後に何かツッコミがあれば押してもらえればとか(^^;

送れる文字数が50文字じゃ短いような気がしたので無駄に256文字に拡張しておきました。ここまで増やしてしまうとすでに「一言」ではないですか、そうですか(汗

あと、思いつきでWeb拍手の一言メッセージのログをBBS Antennaに登録してみたのですが、何気に便利だと思いました(笑)


2月9日(水)

受験勉強近況

いいかげんやることが無くなってきたわけですが(待テ

二次は数学だけなんですが、志望校の赤本は過去6年分(自分の手持ち&予備校の自習室蔵書)はセンター終了後2週間くらいで全部やってしまいました。一昨年みたいに、一問除いて全て証明問題とかこなければたぶん大丈夫かと。

そういえば現役の時は、物理IIBはレントゲン以外はパーフェクトって状態の時にしっかりそこが出やがったからなぁ、、、_| ̄|●

スマートバッファ

そのうち「ゲーム開発」とかコンテンツを作ってそこに置いておこうかと思ったんですが、いつのことになるやら分からないので日記内で晒してみます。

始めに言っておきますが、boostのスマートポインタとは違います。まぁ作った動機というのが「人の作ったものをおめおめを使うのもシャクだから、それっぽいのを自分ででっちあげようか」な感じだったと思いますが(^^;

早い話、コンストラクタでnewしてデストラクタでdeleteするクラスです。今まで僕が作った全プログラムで使ってきたくらいなので、それなりに汎用性はあると思います。

本家スマートポインタとの違いはよく分かりません。向こうの方がたぶん高機能だと思いますが(ぉ

ファイルはここに置いておきます。下にソースを書いておくので、眺めてみて使い方とかだいたい分かった人は適当に使ってみて下さい。

#ifndef _INC_SMARTBUFFER
#define _INC_SMARTBUFFER

//---------------------------------------------------------------------
//「オブジェクトの解放と同時に、バッファの開放も行うだけのクラス」
//---------------------------------------------------------------------
class TSmartBuffer
{
private:
    char* pBuffer;      // バッファポインタ
    DWORD dwSize;       // バッファサイズ

public:
    // コンストラクタ
    TSmartBuffer(DWORD size=0){ pBuffer=NULL; dwSize=0; New(size); }

    // デストラクタ(自動的にバッファ解放)
    ~TSmartBuffer(){ Close(); }

    // オペレータ
    operator char*(){ return pBuffer; }
//  const char* operator = (char* Pointer) { Close(); pBuffer=Pointer; return pBuffer; }
    bool operator!() const { return (pBuffer==NULL); }
    char* operator + (int   offset) { return pBuffer+offset; }
    char* operator + (long  offset) { return pBuffer+offset; }
    char* operator + (DWORD offset) { return pBuffer+offset; }

    // ポインタを取得
    char* Get(){    return pBuffer; }

    // バッファサイズを取得
    DWORD Size(){   return dwSize;  }

    // 既存のポインタをセット
    char* Set(char* Pointer, DWORD size)
    {
        Close();
        dwSize = size;
        pBuffer = Pointer;
        return pBuffer;
    }

    // 新規に作成
    char* New(DWORD size=0)
    {
        if(size>0){
            Close();
            dwSize = size;
            pBuffer = new char[dwSize];
//          pBuffer = (char*)malloc(dwSize);
            ZeroMemory(pBuffer, dwSize);
        }
        return pBuffer;
    }

    // TSmartBuffer* のような感じでよびだされた時のための強制初期化
    void InitForce()
    {
        dwSize = 0;
        pBuffer=NULL;
    }

    // 開放
    void Close()
    {
        if(pBuffer){
            delete[] pBuffer;
            pBuffer = NULL;
            dwSize = 0;
        }
    }

    // データから作成
    bool OpenFromData(const char* buffer, DWORD size)
    {
        if(buffer && size>0){
            New(size);
            memcpy(pBuffer, buffer, size);
            return true;
        }
        return false;
    }
    bool OpenFromData(TSmartBuffer* pbuf)
    {
        if(pbuf->Get() && pbuf->Size()>0){
            return OpenFromData(pbuf->Get(), pbuf->Size());
        }
        return false;
    }

// stdio.hインクルード時のみ使用
#ifdef _INC_STDIO
    // ファイルから作成
    bool OpenFromFile(const char* filename, DWORD offset=0, DWORD size=0)
    {
        FILE* fp = fopen(filename, "rb");
        if(fp){
            fseek(fp, 0, SEEK_END);
            DWORD filesize = (DWORD)ftell(fp);

            if(size==0 || size+offset>filesize)     size = filesize - offset;
            New(size);
            fseek(fp, offset, SEEK_SET);
            fread(pBuffer, size, 1, fp);
            fclose(fp);
            return true;
        }
        return false;
    }

    // ファイルに保存
    bool SaveToFile(char* filename, bool txtsave=false, DWORD offset=0, DWORD size=0)
    {
        if(pBuffer){
            // バイナリ保存
            if(!txtsave){
                FILE* fp = fopen(filename, "wb");
                if(fp){
                    if(size==0 || size+offset>dwSize)       size = dwSize - offset;
                    fwrite(pBuffer+offset, size, 1, fp);
                    fclose(fp);
                    return true;
                }
            }
            // テキスト保存
            else{
                FILE* fp = fopen(filename, "wt");
                if(fp){
                    fwrite(pBuffer+offset, strlen(pBuffer+offset), 1, fp);
                    fclose(fp);
                    return true;
                }
            }
        }
        return false;
    }
#endif
};

#endif

2月12日(土)

新マウス購入

 今まではPS/2接続のやつを変換機を通してUSBで接続してたのですが、4〜5回挿し直さないとなぜか認識されなかったので新しいのを購入することに。ちょうど予備校の近くにジャンク専門のPCショップがあったのでUSB接続で安いのがあればいいなぁと思っていたのですが、1つ500円で叩き売りされていたので買いました。

パスワード自動生成ツール

読んで字の如くというか、みたまんまなもの(笑) スクリーンショットのリンク先にlzhを置いています。

RPGデバッガー以降まともにプログラムを作ってないことを思い出したので、リハビリがてら作ってみました。製作時間1時間程度。

こんなツール世に星の数ほどあると思うので、あえて正式に公開しません。日記にひっそりとおいてみます。

正式公開ではないのでreadmeすらありません。みたまんまの直感で使ってください(爆)

福岡オフ

(自分の把握している範囲で)現時点の参加内定は4人らしいです。

つい最近気づいたのですが、現在使っている通学定期が3/13まででした。博多までギリギリ自腹切らなくてよくなりました(ぉ 片道650円はけっこう痛い(^^;


2月13日(日)

RPGツクール2000/2003 セーブデータ改変ツール Ver1.10

 Ver1.09→Ver1.10だからというわけでもありませんが、割と大幅な更新

見て分かるとおり顔絵や歩行絵を表示できるようにしてみました。日記でのスクリーンショットが妖々夢RPGなのは気にしない方向で(^^;

ツクール系の画像ファイルの読み込みに関してはRPGデバッガーの方ですでにノウハウが確立していたので、ファイルをコピってくるだけで済みました。後はツール側で表示位置の調整をしたり、不用になったビットマップの解放とかこまごましたことを。マニュアルのスクリーンショットの撮り直しが一番大変だったり。あと、zlibとlibpngを使うだけでバイナリが70KBほど増えたのは正直ビビリましたが(笑)

あと、Ver1.10では変数検索ツールっぽいのも同梱(今回の更新はこれがメインだという説が有力)

某ゲームで変数名とか全部つぶれていt(ry

 

RPGデバッガーで思い出しましたが、RPGデバッガーでバグが見つかりました_| ̄|●

switch〜caseでbreakし忘れるという初歩的なやつ。ただ、その場所というのがツクール2003のバトルコマンドと職業の読み込み部分なんで実害はほとんど無いような気もしますが。

あぁそうか、2003ゲームの動作確認にToKしか使ってなかったからか(爆)

雑誌に掲載されると最低1ヶ月はホームページで公開できないので、もしその場合は差分パッチとしてリリースしようと思います。(モノがモノだけにexeをそのままDLできるようにするとまずい)

 

そういえばほっしーさんのホームページが閲覧できない模様。403ってことはおそらく鯖の料金未納だと思うんですがねぇ、、、

一応メール送ってはみたものの、鯖のアカウント自体がダメってことはメールボックスもアウトではないかと(汗

ちなみにうちの場合は、xreaは元々無料鯖なんで料金未納でもせいぜいページ上部にバナー広告が出る程度。wikiとかで支障が出るような可能性もありますが不明。鯖の料金未納よりもドメインの期限がきれる方が一番怖かったり(汗

もしうちのドメインがきれてて閲覧できなくなってたら、http://sue445.s37.xrea.com/で接続してみてください(^^;

ドメインと期限は8月まであるからまだ大丈夫なはずですが、、、


2月14日(月)

RPGツクール2000/2003 セーブデータ改変ツール Ver1.11

以前もやらかしたセーブデータ破壊バグが発生_| ̄|●

原因はその時のと違いますが。バグの原因は分かりましたが、実際アレでなんでツクール側(正確にはRPG_RT.exe)で落ちるのかが不明。ツクールの仕様ってよく分からない、、、


2月17日(木)

言い訳など

この前フリーソフトで面白いゲーム まとめページRPGツクール2000/2003 セーブデータ改変ツールのページで同ツールに関する2chスレでのやり取りを見ていたのですが、「製品版がインストールされてないと変数書き換えができないのは痛い」とか載っていたので言い訳など。

まず最初にマニュアルにも載せたやつを。

 このツールはツクールのセーブデータの主要な部分を自由に書き換えることができますが、それゆえにオンラインランキングなどでの不正などに使われる心配があります。

そういうわけで、RPGツクール2000 または RPGツクール2003のどちらかがインストールされていないと以下の機能は使用できませんので注意してください。

  • 戦闘回数、敗北回数、逃走回数、勝利回数、セーブ回数の書き換え
  • スイッチ、変数の書き換え

一般ユーザー(非ツクールユーザー)があんまり好き勝手できてしまうと、ツクールでゲームを作った製作者からクレームがつきそうな気がしたというのも理由の一つ。まぁ、実際に知り合いにツクールでゲームを作っている人もいるので、そちらに配慮してというのも。

それに、ツクールにあまり詳しくない人間が変数とかスイッチとかいじってバグを引き起こして、(ゲームの製作者に)「動かないぞボケ!」なことをされると先方に対して迷惑がかかると思います。(ゲーム製作者は改造されるということを前提にゲームを作ってないでしょうし)

あくまで変数・スイッチ書き換えは、ゲーム製作者のデバッグのためのささやかな機能という位置づけにしています<建前

自分もゲーム改造とかよくしますが、経験値最大・所持金最大程度でだいたいこと足りています。あんまり改造しすぎるとゲームのバランスが崩れすぎておもしろくないですし(^^;

 また、改変ツールのツクール非インストール時の制限として「同じフォルダのゲームプロジェクトしか開けない」というのもありますが、これはツクールがインストールされていないとレジストリから値を参照できない(レジストリにプロジェクトパスが記述されている)という明確な理由があるので諦めてください(^^;

 ぶっちゃげた話、当改変ツールを使わなくても体験版なりTestPlayerなりでデバッグモードで起動させれば変数だろうがスイッチだろうが自由に書きかえられます(ぇー

こっちの方が画面の切り替えの関係上けっこう面倒臭いですが、ツクールがインストールされていなくても変数を書き換えることは不可能ではありません。メリットは、わざわざセーブデータを介さなくても(目的の変数の番号さえ分かっていれば)任意のタイミングで直接書き換えることができるといったことくらい。

あと、改変ツールに同梱の変数サーチツールは、前述の「同じフォルダのゲームプロジェクトしか開けない」という以外はこれといって制限を加えていないのでこれを使えば目に見えている変数の場所を調べることくらいはできると思います。

拍手レス

> ダウンロードのRPGツクール2000/2003 Susieプラグインが違うものになってるんですけど……

すいませんでした、間違えてEFZの方のパスを書いていたようですm(_ _)m

リンク自体はレスを確認した昨日の朝にすぐに修正しましたが、日記を書く関係上報告は今日させて頂きます。

しっかし、ダウンロードランキング設置の最初の頃はカウントされているんですよねぇ、、、 いつの間に書き換わったのやら(汗


2月18日(金)

サイト構成若干変更

 実際にやったのは昨日ですが、日記に書くのを忘れていたので今日の分に書きます。「サイト構成若干変更」とか言っておきながら、見た目には分かりません。ダウンロードCGIとアーカイブファイルをまとめて別のフォルダに移動させただけだし(爆) downloadsディレクトリの階層に置いておくとFTPで接続した時にファイルが雑然として嫌だったというのと、ファイル直リン対策の移動。うちのサイト構成を考えればdlrankディレクトリはcgi-bin下に置いておくべきなのでしょうが、自分の更新の手間の関係でルートに置いています(ぉ

メールフォーム返信

 返信用のメールアドレスが書いていなかったので日記でレスらせてもらいます(笑)

>ところで、萃夢想のリプレイビュアーなんですけど、
>萃香の名前が「息吹 萃香」になってますよ。
>正しくは「伊吹 萃香」です。こっそり直して使ってますが、気になったので報告させてもらいました。
>掲示板や日記で一応検索してみましたが、既出でしたらごめんなさい。

報告どうもありがとうございます。というわけで修正しました。スペルカードはけっこう注意して確認したのですが、さすがに名前を誤字ってるとは思いませんでした_| ̄|●


2月20日(日)

東方萃夢想Ver1.02

萃夢想リプレイビュアー用のバージョン情報定義テキストを更新しました。

軽くプレイしてリプレイを保存してみましたが、やっぱり7ステージ分しか保存できないっぽい。


2月24日(木)

MASTER BURNER

地味におもろいんですが(笑)

アーカイブとか軽く見た感じどうもLunaっぽいです。

スパロボプレイ履歴

伍長さんの日記に載ってたのをうちでも。(大本はたぶんこちら

○:クリア  △:途中放棄  ×:未プレイ  −:未購入

−  スーパーロボット大戦
○  第二次スーパーロボット大戦
○  第三次スーパーロボット大戦
○  スーパーロボット大戦EX
○  第四次スーパーロボット大戦
○  第二次スーパーロボット大戦G
−  第四次スーパーロボット大戦S
○  スーパーロボット大戦外伝 魔装機神 LOAD OF ELEMENTAL
−  新スーパーロボット大戦
−  新スーパーロボット大戦スペシャルディスク
−  スーパーロボット大戦F
−  スーパーロボット大戦F完結編
−  全スーパーロボット大戦電視大百科
−  スーパーロボット大戦コンプリートボックス
−  スーパーロボット大戦リンクバトラー
−  スーパーロボット大戦64
−  スーパーロボット大戦COMPACT
−  スーパーロボット大戦COMPACT2 第1部:地上激動編
−  スーパーロボット大戦α
−  スーパーロボット大戦COMPACT2 第2部:宇宙激震編
−  スーパーロボット大戦COMPACT2 第3部:銀河決戦編
−  スーパーロボット大戦α外伝
−  スーパーロボット大戦α forDreamcast
○  スーパーロボット大戦A
−  スーパーロボット大戦COMPACT forWonderSwanColor
−  スーパーロボット大戦IMPACT
○  スーパーロボット大戦R
○  スーパーロボット大戦ORIGINAL GENERATION
−  第2次スーパーロボット大戦α
−  スーパーロボット大戦COMPACT3
○  スーパーロボット大戦D
−  スーパーロボット大戦 スクランブルコマンダー
−  スーパーロボット大戦MX
−  スーパーロボット大戦GC
○  スーパーロボット対戦OG2

GBCのスーパーロボットピンボールがないのは仕様ですか?(笑)

ちなみに上のリストで購入(実機でプレイ)したのは第二次Gのみ。それ以外はうわなにをするやめwqおp その上全作品所持金MAX、経験値MAXで改造してPIAY(死

何気にOG2やってたりします。つーか、やりました(過去形)。「苦行プレイの後のアレまでクリアした」と書けば分かる人には分かるかと。

OGシリーズは自分が一番好きだったFC,SFCの第二次〜第四次の流れ(以下SFCシリーズ)を踏襲していてけっこう好きです。

以下ネタバレにつき色変え

OG1がFCの第二次とSFCの第三次の半分くらいで、OG2が第三次の残り半分みたいな感じ。OG2で「地球は宇宙の病原菌」みたいな意味深な謎が残っているので、それは次回作辺りでテーマになるかと。

あと、SFCシリーズと微妙に中身が変わってます(SFC第三次で「ゲスト」と呼ばれていた異星人(ウェンデルとかメキボスとか)がOG2では「インスペクター」と呼ばれているといった辺り)

そもそもSFCシリーズの流れでいくと、次回作はラギアス事変(スパロボEX)になりそうで期待大。OG2のラストでマサキはラギアスに戻ったし、リューネは月に行ったという辺りまでは第三次と全く同じ。ただ、シュウが死んでないのが一番のネック(笑) OG2は結局ネオグランゾンは出てきませんでした_| ̄|●

最後に一言。

スパロボAとOGをリアルタイムでプレイしていたにも関わらず「エクセレン・ブロウニング」と「レモン・ブロウニング」に気づいていませんでした_| ̄|●

エクセレンの初登場作品がどれかは知りませんが、無茶苦茶遠距離な伏線だなと(^^;


2月28日(月)

国公立前期

_| ̄|●

試験が終わって2日もすると(自分の中で)思い出と化してしまったので簡単に。

来た時は校門の所に生協やK予備校の人間が邪魔に立っていたのですが、帰りは生協の人間しかいませんでした。解答速報楽しみにしてたのですよ(笑) アフターケアは大切に。

というわけで、(この日記を書いている時点で)試験の解答を見ていません(自分は数学1教科だけ)。自分の感覚では7割くらいの出来と思うのですが、、、、

話は前後しますが、試験会場の教室に入ったのが試験開始25分前。すでに自分以外は全員来ていた模様。

でー、試験中。元々筆圧が人一倍強い(と思う)のにいつになくハイスピードで書くもんだから

親指の筋肉がつりかけました<マジ

とりあえず1分ほど指をマッサージして難を逃れました。

試験が終わったら終わったで試験監督の手際悪すぎ。

帰る時に周りを見回したらほとんどが現役生(制服)だった模様。浪人生(私服)は自分を入れて3〜4人程度。ちなみに分母(自分が受けた学科の総受験者数)は34人。

帰りがけの電車での出来事。自分の乗った電車の1つ前の特急が踏み切りで自転車をはねて、電車がストップ。15分後に動くようになりましたが、途中徐行したりで結局博多に着いたのが20分遅れ。これが行きじゃなくてつくづくよかったなぁと(^^;

クイズマジックアカデミー2

詳しい内容は上のリンク先で見てください。「QMA2」とか「マジアカ2」とかで略されてるみたいです。

某氏の日記の影響でいつの間にやら始めています。

名前は「Kまりさ」で、階級は「上級魔術師」です。文字数的に「すえ445」というのもアリかと思ったんですが、匿名性が無さ過ぎるというのと、東方の方が知名度が高いカナとか思って。魔法学校ということで他に候補は「アリス」や「パチュリー」というのもありましたが。

このゲームは使用キャラや担任キャラの声優陣がけっこう豪華です。

自分の持ちキャラはクララ(Cv.田村ゆかり)。事前にOHPとかデータサイトで念入りに確認しました。

個人的には炉キャラのアロエ(Cv.落合祐里香)も捨てがたかったんですが、ゆかりん愛があったのでゆかりんを選択。もっちー愛もいまだにありますよ?(笑)

分かる人には分かる近況など。

RPGデバッガー200X

なんだかんだいってバグがうじゃうじゃと出てきたので当日パッチ確定です(涙

福岡は雑誌が入ってくるのが2日ほど遅れますが、それにも関わらず当日パチッチ進行です<誤植ではありません(笑)

万が一にも掲載されたら当日パッチが功を奏すだろうし、前と同じように選外になったらひっそりとパッチを引き払って本体を公開すればいいし。というわけで、早めに公開しとくにこしたことはないだろうと。