遺跡‎ > ‎

SD35C / SD35Z

※ 現在メンテしていません。既に遺跡になっています ※

このページでは一部、アリスソフト製品の画像素材を加工・引用しています。これらの素材を他へ転載することを禁じます。

SD35C/SD35Zについて

SD35Cは16bitカラー画面を持つPocketPCデバイスで、SD35ZはVGA液晶を持つLinux Zaurus機(SL-Cxxx)デバイスでアリスソフトのSystem3.x対応ソフトを実行するためのプログラムです。

水口さんの作られた BeOS用のSystem3.x シナリオデコーダであるSD35B DR3.4をベースにPocketPC用に移植したものです。また、System 3.x for X Window Systemのコードも参考にしています。

ゲームをプレイするには、別途オリジナルの製品が必要となります。

なお、(SACT使用した)System3.9、System4.0のゲームには未対応です。

動作環境

SD35C/SD35Zの動作環境は以下の通りです。

SD35C

カラーデバイスを持つARM/MIPS系のPocketPCデバイス。

一応、PocketPC / PocketPC2002 / PocketPC2003/PocketPC2003SE / Windows Mobile 2005 で動作するように作成したつもりですが、現時点で確認が取れているものは以下の通りです。

  • GENIO-e(PocketPC ARM)
  • PocketLoox v70

SD35Z

VGA液晶を持つLinux Zaurusデバイス。

現時点では、C700でのみ動作を確認しています。

必要メモリ

ゲームにもよりますが、大量のメモリを必要とします。
8bit色モードのゲームで数MB、16bit色や32bit色のゲームだと10MB以上消費することも珍しくありません。
可能な限りメモリを空けて置いてください。
sd35zの場合はswapを作るのも手です(というか、私は64MBのswapをSDカード上に作って動かしています)。

SD35C/Zは基本的にエラーチェックが甘いので、メモリ不足が発生すると有無を言わさず落ちたり、不正な動作をしたりします。

その他、必要なソフトウェア

プレイしたいSystem3.x対応ソフトが必要です。

SD35CをPocketPC(2000)機で動かす場合はgx.dllが必要です。gx.dllはMicrosoftのサイトからダウンロードすることが出来ます。

BGMをCDDAを再生する場合はmad_yceが、MIDIで再生する場合はtimid_yceが各々必要となります。

ダウンロード

現在の最新版は“SD35C(Z) DR3.4 p1.55-3/Kanako”です。

SD35C

SD35Z

MAD_YCE

正式公開版のMAD_YCEは現在のSD35Cが正しく動作しない可能性があります。SD35C利用の方はこちらの物件を使用してみて下さい。

SD35Zの場合は正式公開版で大丈夫な筈です。

TIMID_YCE

正式公開版のTIMID_YCEでは現在のSD35Cが正しく動作しない可能性があります。SD35C利用の方はこちらの物件を使用してみて下さい。

SD35Zの場合は正式公開版で大丈夫な筈です。

ソース

GPL2に基づいてソースを公開しています。ビルド方法についてはdoc/build.*.txtを参照下さい。

インストール

SD35C

SD35Cをインストールするにはアーカイブを解凍し、SD35C.exeと同梱されているdllを同じディレクトリにインストールしてください。

SD35C.cfgは必要であれば同梱されているものを編集してインストールしてください。
SD35C.cfgの内容に関しては『SD35C/SD35Z設定ファイルについて』を参照してください。

SD35Z

SD35Zをインストールするにはダウンロードしたアーカイブを解凍し、ipkファイルをデバイスに転送してからアプリケーションの追加と削除からsd35zをインストールしてください。

アプリケーションの設定ファイル.sd35rc.s35はipkに入っていませんので必要に応じて作成して$HOMEディレクトリに格納してください(Windowsからマウントされる場所は$HOME/Documentsですので、ファイルを$HOMEに移動する必要があります)。

また、freetype2がインストールされていない場合は、ここからインストールしてください。このfreetype2以外の物件ではテストしていません(libSDL同梱のものとか…)。

ゲームのインストール

ゲームを本体もしくはメモリカードにコピーします。SD35Cでは/My Documentsの下に、SD35ZではDocumentsの下にコピーする必要があります(SD35Zでは設定ファイルで格納場所を変更することもできます)。

ゲームをコピーしたディレクトリにゲーム設定ファイルを拡張子s35で作成する必要があります。ゲーム設定ファイルの詳細については『SD35C/SD35Z設定ファイルについて』を参照してください。

ゲーム中の操作

ゲーム選択画面

ゲーム選択画面にはインストールされているゲームの一覧が表示されます。

ゲームを選択すると、そのゲームが始まります。右上のQUITをクリックするとプログラムを終了します。
ゲームが一画面に収まらない場合はNEXT/PREVをクリックすることで表示画面を切り替えることができます。

キーで操作する場合はカーソルキーの上下でゲームの選択位置を変更して、リターンキーで選択します。
カーソル左右キーで表示画面を切り替え、ESCキーでプログラムを終了します。

実際のキーの割り当てについては『SD35C/SD35Z設定ファイルについて』の『KEYSセクション』および『SELECT_KEYSセクション』を参照してください。

ゲーム中の操作

通常操作モードと簡易操作モード

操作モードには通常操作モードと簡易操作モードの二種類があります。

それぞれの違いは以下のとおりです。

通常操作モード

ペンの操作でマウスの移動を行います(マウスカーソルは表示されていませんが、内部的なマウスの位置が変更されています)。

マウス左ボタンキー、マウス右ボタンキーで各々マウスの左ボタン、右ボタンのクリック操作を行います。

簡易操作モード

ペンのクリックでマウスの左ボタンのクリックを行います。ペンのドラッグはマウスの左ボタン押下ドラッグに相当します。

マウス左ボタンキーを押しながらのペンダウンでマウスの左ボタンクリック無しにマウスの移動を行うことができます。

マウスの右ボタンキー押下でマウスの右ボタンクリックの操作を行うことができます。

マウス左ボタンキー、マウス右ボタンキーが実際にどのボタンに割り当てられているかはSD35C/SD35Z設定ファイルについてのKEYSセクションを参照してください。

通常操作モードと簡易操作モードはメニューで切り替えることができます。
また、設定ファイルでeasyOperationを設定することでゲーム起動時から通常操作モード、簡易操作モードを切り替えることができます。

メニュー表示

メニューバー表示ボタンの押下でメニューを表示することができます。メニューでは以下の操作を行うことができます。

システム 選択画面に戻る ゲームを終了して選択画面に戻ります。
サスペンド プログラムを終了させないまま、背面にまわします。
現時点ではSD35Cしか正しく動作しません。
終了 プログラムを終了します。
選択肢 次の選択肢まで飛ばします。
ズーム 縮小表示されている場合は、等倍に表示します。ペンのドラッグ/カーソルキーで表示領域を切り替えることができます。
簡易操作 通常操作モード、簡易操作モードを切り替えます。

SD35C/SD35Z設定ファイルについて

SD35C/SD35Zでは設定ファイルが2種類存在します。

一つは全てのゲームで共通に使用される設定ファイルでSD35Cでは実行バイナリと同じ場所にあるSD35C.cfgで、SD35Zではホームディレクトリ(~/Documentsではなく~/直下であることに注意)の.sd35rc.s35(このファイル名は次のバージョンで変更するかも……)です。以下の説明ではこのファイルをアプリケーション設定ファイルと呼ぶことにします。

もう一つはゲーム毎の設定ファイルで、これは通常ゲームのデータを格納した場所に???.s35(???はディレクトリ内でユニークであれば問題ない)という名前でおかれるファイルです。以下の説明ではこのファイルをゲーム設定ファイルと呼んでいます。

両方とも同じフォーマット(Windowsのiniファイルに似た形式)です。
[]で囲まれたセクションがあり、その後ろに一行毎にkey=valueという形でセクション毎のプロパティの設定を行います。
なお、;以降は全てコメントとして扱われます(つまり、セクション名、キー、値に;を含めることは出来ません)。
また、セクション名、キー、値とも大文字小文字が区別されることに注意してください。

アプリケーション設定ファイルとゲーム設定ファイルの両方で同じセクション、同じキーで異なる値で設定された場合は、ゲーム設定ファイルの方の指定が優先されます。

設定ファイルで漢字を使用する場合は必ずShift_JISで記述されている必要があります。

INFOセクション

INFOセクションにはゲームのタイトル等を指定します。

name

nameキーではゲームの名前を指定します。
ゲーム設定ファイルのみで指定してください。

longdesc

longdescではゲームの説明を指定します。
nameとlongdescの違いは現在は存在しません。
ゲーム選択画面にはlongdesc > name > ファイル名の優先順位で表示されます。
ゲーム設定ファイルのみで指定してください。

easyOperation

easyOperationにはtrue/falseのいづれかの値を指定します。
easyOperationにtrueが指定されたときはゲーム起動時に簡易操作モードになります。
アプリケーション設定ファイルとゲーム設定ファイルのいづれにも指定可能です。

forcebpp

forcebppは32bppのゲームが起動されたときに内部で強制的に16bppとして処理を行うためのプロパティです。値としては16もしくは32が指定可能です。

このプロパティを指定すると内部のバッファも16bppで確保されるため、メモリ消費が(バッファ分に関しては)半分で済むというメリットがあります。また、メモリ間転送の量も処理によっては半分になるので速度向上が見込めるかもしれません(が、処理によっては16bpp→32bpp→16bppという処理が行われるものもありますので一概に向上するとは言えません)。

ただし、ゲームによっては32bpp→16bppによる計算誤差によって動作不正を起こす可能性があることに注意してください。

InitViewWidth

従来のゲームでは一旦640x400の画面で起動してから640x480等にリサイズされていました。

しかしSystem39.iniなどで初期ビューサイズを指定されているゲームもあります。そのような場合にはそのiniファイル中のViewWidthの内容をInitViewWidthで指定するようにしてください。

InitViewHeight

従来のゲームでは一旦640x400の画面で起動してから640x480等にリサイズされていました。

しかしSystem39.iniなどで初期ビューサイズを指定されているゲームもあります。そのような場合にはそのiniファイル中のViewHeightの内容をInitViewHeightで指定するようにしてください。

 SD35Zセクション

SD35Zでのみ有効な設定です。
ここではsearchDirプロパティのみが指定可能です。

このプロパティはプログラム起動時のみ意味をもつプロパティですので、必然的にアプリケーション設定ファイルでのみ指定可能となります。

searchDir

ゲームを検索するディレクトリの名前を指定します。

ゲーム選択画面では$HOME, /mnt/card, /mnt/cfからここで指定したディレクトリの下の*.s35のファイルを検索します。デフォルトは/Documentsです。

SD35CとSD35Zで同一のCF/SDカードを使用するような場合にはここに/My Documentsを指定すればよいでしょう(というよりもそれをする事くらいしかこのプロパティを指定するメリットはありません)。

 FILESセクション

FILESセクションにはゲームで使用するファイル(ALD)を指定します。そのため、ゲーム設定ファイル以外で指定されることはありません。

file00~

ゲームで使用するファイルを指定します。番号の部分は必ず00から始まる連番になっている必要があります。

通常、System3.xのゲームではファイル名が『ゲーム名+(G/S/M/W/D){A/B/C/...}.ALD』のように命名されています。
ここで最初の(G/S/M/W/D)の部分がデータの種別を表し、次の{A/B/C/...}の部分が種別毎のインデックスになっています。

SD35C/SD35Zではファイル名のこれら2文字を見てデータ種別、インデックスを判別していますのでこの部分はファイル名を変更してはいけません(あと、拡張子もALDのままである必要があります)。

なお、System3.0時代のゲームをSystem3.xへの移植キットを使って変換したような場合にはファイル名が『{A/B/C...}DISK.ALD』、『{A/B/C...}CG.ALD』、『{A/B/C...}MIDI.ALD』のようになっている場合がありますが、その場合にはファイル名を各々『~S{A/B/C...}.ALD』、『~G{A/B/C...}.ALD』、『~M{A/B/C...}.ALD』にリネームして、それをfile00~に指定する必要があります。

SD35C/SD35Zでは(G/S/M/W/D)の種別各々について最大5つまで({A/B/C/D/E/F})指定できます。
もし、6つ以上のデータを使用するゲームがある場合にはご連絡ください。仕様を拡張します。

ain

ゲームでSystem3.9.ainを使用されている場合には、ここにain=ファイル名で指定する必要があります。

shortname

ゲーム中で大文字8.3文字のいわゆるDOS形式のファイルをアクセスするときのアクセス方法を指定します。指定可能な値は以下の通り。

  • upper(既定値)
  • lower
  • forcelower
  • forceupper

shortnameにupperが指定されたときは、(その名と反して)ファイル操作時に特別な処理を行いません。

shortnameにlowerが指定されたときは、大文字8.3文字のファイル名(FOO.BAR等)をアクセスするときに内部的に小文字に変換して(foo.bar)アクセスします。

shortnameにforcelower/forceupperが指定されたときは、ファイル名の長さにかかわらずファイル名を子文字化/大文字化してアクセスします(Foofoofoo.bar → foofoofoo.bar/FOOFOOFOO.BAR)。

このオプションはSD35Cでは指定する必要はないかと思われます(ファイルシステムが大文字小文字を区別しないため)。
LinuxZaurusではVFATのcf等のマウント時に通常mountオプションとしてshortname=lowerが指定されています。この状態でCF上にFOO.BARというファイルを作成してあったとしてもLinuxZaurus上からはfoo.barとして見えてしまいます。この状態でFOO.BARというファイルにアクセスしても大文字/小文字は区別されますのでファイルが存在しないことになってしまいます。
このような問題を回避するためにはFILESセクションにshortname=lowerとしておくと実行時に大文字8.3文字のファイルを小文字に変換してからアクセスしようとしますので正しくアクセスすることが出来るようになります。LinuxZaurus上でVFAT上のゲームを動作させるときは指定することを推奨します。
また、一部のゲーム(PERSIOMで確認されています)ではファイル作成時に大文字小文字交じりで作成しておいて、ファイルを読み出すときに全て大文字のファイル名でアクセスしたりする場合があります。このとき、LinuxZaurusでは大文字/小文字が区別されるために正しくファイルにアクセスできません。
このような場合にはforcelower/forceupperを指定することで回避することが出来ます。forcelower/forceupperの違いは実際に作成されるファイルが小文字か大文字かの違いだけで実際の動作自体には違いがないはずです。

Soundセクション

音楽/音声再生関連の設定を行います。

※ このセクション名は近い将来[SOUND]のように全て大文字に変わる可能性が高いです。

Rate

音楽の再生レートを指定します。11025/22050/44100が指定可能です。

MIDIでBGMを鳴らす場合はtimid_yceのサウンドファイル作成時に使用したレートを、mp3でBGMを鳴らす場合はmp3ファイルのレートと合わせておく方が無難かと思われます。

デフォルト値は22050です。

cdda

cddaでbgmを鳴らすゲームの場合はuseを、そうでない場合はnouseを指定します。
useを指定した場合は後のCDDAセクションでCDDAのトラック番号とmp3ファイルの対応付けを行う必要があります。

midi

midiでbgmを鳴らすゲームの場合はuseを、そうでない場合はnouseを指定します。
useを指定した場合は後のMIDIセクションでPatFileプロパティを指定する必要があります。

pcm

PCMを鳴らすゲームの場合はuseを、そうでない場合はnouseを指定する必要があります。
nouseを指定すると若干メモリ消費が抑えられますが、通常はuseを指定しておく方が望ましいです。

extpcm

System3.6以降で拡張された拡張pcmのチャンネル数を指定します。
System3.5以前では指定する必要はありません(指定しても問題はないがメモリの無駄)。
拡張PCMは最大128チャンネル使用される可能性がありますので、System3.6以降のゲームでは128を指定しておいた方が無難であると思われます。

mp3type

mp3再生時に使用するmp3モジュールの種類を切り替えます。
現時点ではmadの指定のみが有効です。\

CDDAセクション

ゲームのBGMをCDDAで鳴らすようなゲームの場合は、あらかじめCDのCDDA部をmp3でリッピングしておく必要があります。

track??~

CDDAのトラックをリッピングしたmp3ファイルのファイル名を指定します。
mp3ファイルはあらかじめゲーム定義ファイルと同じ場所に格納しておく必要があります。
track??の??はCDのトラック番号と一致している必要があります。
再生可能なmp3はサンプリングレートが11025/22050/44100のいづれかでなければなりません。
mp3ファイル作成時にはゆいさんの作られたWebページが参考になるかと思われます。

MIDIセクション

PatFile

timid_yce2インストール時に作成した変換済みサウンドファイルへのフルパスを指定します。

FONTセクション

FONTセクションではフォントマネージャに関する指定を行います。 フォントマネージャは現時点ではSD35Cでは未サポートですので、SD35Zでのみ有効となります。

fonttype

fonttypeで使用するフォントマネージャを指定します。qtもしくはftが指定可能です。

qtを指定した場合はqpfフォントを使用してレンダリングを行うフォントマネージャが、ftを指定した場合はTrueTypeフォントを使用してレンダリングを行うフォントマネージャが選択されます。デフォルトはqtです。

qtを指定した場合、内蔵しているqpfフォントのサイズのみが正しく表示されるため、ゲームによっては描画が正しく行われない可能性が高いです。また、後のFONT_QTセクションの指定を行う必要があります。

ftを指定した場合はあらかじめlibfreetype.so.6.3.2(※)と使用するTrueTypeフォントをインストールしておく必要があります。 また、後のFONT_FTセクションの指定を行う必要があります。

フォントマネージャはftを使用した方がqtでの描画と比べて(ゲームで使用するフォントが正しくインストールされている限りにおいて)正確な描画が行えます、qtに比べて速度が遅く、またメモリも多く消費されます。

※ 現在のバージョンのSD35Zでは(手抜きのため)fonttypeにqtを指定する場合でもlibfreetype.soが必要である(インストールされていない場合は起動できない)。

FONT_QTセクション

SD35Zでのみ有効。
FONTセクションでfonttype=qtを指定した場合のみ適用されます。

GothicFontName

ゲームでゴシック体フォントを表示するときに使用するqpfフォントのファミリ名を指定します。
デフォルトはlcfontです。

MinchoFontName

ゲームで明朝体フォントを表示するときに使用するqpfフォントのファミリ名を指定します。
デフォルトはlcfontです。

MenuFontName

ゲームでメニューを表示するときに使用するqpfフォントのファミリ名を指定します。
デフォルトはlcfontです。

GothicFontFace

ゲームでゴシック体フォントを表示するときに固定ピッチで表示するかプロポーショナルで表示するかを指定します。固定ピッチの場合は0を、プロポーショナルの場合は1を指定します。
デフォルトは0です。

MinchoFontFace

ゲームで明朝体フォントを表示するときに固定ピッチで表示するかプロポーショナルで表示するかを指定します。固定ピッチの場合は0を、プロポーショナルの場合は1を指定します。
デフォルトは0です。

MenuFontFace

ゲームでメニューを表示するときに固定ピッチで表示するかプロポーショナルで表示するかを指定します。固定ピッチの場合は0を、プロポーショナルの場合は1を指定します。
デフォルトは1です。

FontRotate

フォントのローテートの向きを指定します。-1/0/5/10/15が指定可能です()。

-1が指定された場合は実行時にそのフォントの回転方向を計算します。

デフォルトは10です。通常はこのプロパティを指定する必要はありません。

※ 現時点のSD35Zでは-1/0/10の場合しかインプリメントを行っていない。
また、-1での自動判別は少なくともSL-C700では正しく動作しないことが確認できている。
他機種でqtフォント表示の不具合が発生した場合にここの値を変更してみて正しく動作することが確認された場合には機種名と値を連絡していただけるとありがたいです。

FONT_FTセクション

SD35Zでのみ有効。
FONTセクションでfonttype=ftを指定した場合のみ適用されます。

basedir

TTFフォントを読み込むときの基準ディレクトリをフルパスで指定します。

デフォルト値は存在しない("")ため、指定しない場合は後ろのGothicFontName、MinchoFontName、MenuFontNameプロパティでフォントファイル名をフルパスで指定する必要があります。

GothicFontName

ゲームでゴシック体フォントを表示するときに使用するTTF/TTCフォントのファイル名を指定します。
先頭が/で始まる名前を指定した場合にはフルパスが指定されたものとして処理されます(basedirプロパティでの指定は無視される)。

デフォルトはmsgothic.ttcです。

MinchoFontName

ゲームで明朝体フォントを表示するときに使用するTTF/TTCフォントのファイル名を指定します。
先頭が/で始まる名前を指定した場合にはフルパスが指定されたものとして処理されます(basedirプロパティでの指定は無視される)。

デフォルトはmsmincho.ttcです。

MenuFontName

ゲームでメニューを表示するときに使用するTTF/TTCフォントのファイル名を指定します。
先頭が/で始まる名前を指定した場合にはフルパスが指定されたものとして処理されます(basedirプロパティでの指定は無視される)。

デフォルトはmsgothic.ttcです。

GothicFontFace

ゲームでゴシック体フォントを表示するときにTTCファイルを指定した時のFaceの番号を指定します。デフォルトは0です。

GothicFontNameにTTFフォントを指定した場合は0を指定した場合は0にしておく必要があります。

MinchoFontFace

ゲームで明朝体フォントを表示するときにTTCファイルを指定した時のFaceの番号を指定します。デフォルトは0です。

MinchoFontNameにTTFフォントを指定した場合は0を指定した場合は0にしておく必要があります。

MenuFontFace

ゲームでメニューを表示するときにTTCファイルを指定した時のFaceの番号を指定します。デフォルトは0です。

MenuFontNameにTTFフォントを指定した場合は0を指定した場合は0にしておく必要があります。

CacheSize

フォントマネージャが内部で使用するキャッシュメモリのサイズを指定します。128~2048が指定可能です。デフォルトは512。

ここで指定した値の2乗バイトのメモリが消費されるのであまり大きな値を指定しても意味がないだけでなく速度低下を招く要因になるので注意が必要です。

KEYSセクション

ゲーム実行中のキー入力時の動作を変更するときに指定します。

キー指定 = キー指定
キー指定 = 機能指定
仮想キー指定 = キー指定
仮想キー指定 = 機能指定

の何れかのパターンで指定を行うことが出来ます。

例えばSD35ZでCALENDERキーをマウスの右ボタンとして使用するような場合には

slCALENDER=MENU_RIGHT

と指定します。同様にSD35CでSTARTキーをENTERキーとして使用するような場合には

gvkSTART=keyENTER

と指定します。

SD35Cではデフォルトで以下の様にバインドが行われています。

gvkLEFT カーソル左(keyLEFT)
gvkUP カーソル上(keyUP)
gvkRIGHT カーソル右(keyRIGHT)
gvkDOWN カーソル下(keyDOWN)
gvkSTART メニューバーを表示する(MENU_OPEN)
gvkA マウス左ボタン(MOUSE_LEFT)
gvkB マウス右ボタン(MOUSE_RIGHT)
gvkC 仮想キーボードを使用(VIRTUAL_KEY)

SD35Zではデフォルトで以下の様にバインドが行われています(通常キー部分は省略)

slADDRESS マウス左ボタン(MOUSE_LEFT)
slHOME マウス右ボタン(MOUSE_RIGHT)
keyMENU メニューバーを表示(MENU_OPEN)
slKANAHIRA コントロールキー(keyCTRL)
slOK ENTERキー(keyENTER)(
slCANCEL ESCキー(keyESC)

キー指定

通常のキーに対応します。これはプロパティの左辺と右辺の何れにも指定可能となっています。

keyBS BSキー
keyTAB TABキー
keyCLEAR CLEARキー
keyENTER ENTERキー
keySHIFT SHIFTキー
keyCTRL CTRLキー
keyALT ALTキー
keyPAUSE PAUSEキー
keyCAPSLOCK CAPSLOCKキー
keyESC ESCキー
keySPACE SPACEキー
keyPAGEUP PAGEUPキー
keyPAGEDOWN PAGEDOWNキー
keyEND ENDキー
keyHOME HOMEキー
keyLEFT カーソルキー左
keyUP カーソルキー上
keyRIGHT カーソルキー右
keyDOWN カーソルキー下
keyPRINTSCREEN PRINTSCREENキー
keyINS INSERTキー
keyDEL DELETEキー
keyHELP HELPキー
key0~key9 0~9キー
keyA~keyZ A~Zキー
keyMENU MENUキー
keyPAD_0~keyPAD9 テンキーの0~9
keyPAD_STAR テンキーの*
keyPAD_PLUS テンキーの+
keyPAD_MINUS テンキーの-
keyPAD_DOT テンキーの.
keyPAD_SLASH テンキーの/
keyF1~keyF24 ファンクションキーF1~F24
keyNUMLOCK NUMLOCKキー
keySCROLLOCK SCROLLLOCKキー

仮想キー指定(SD35C用)

PocketPCでSD35Cを動作させた場合のキー指定ではこちらを使用します。

gvkLEFT カーソルキー左
gvkUP カーソルキー上
gvkRIGHT カーソルキー右
gvkDOWN カーソルキー下
gvkSTART STARTキー
gvkA アプリケーションキーA
gvkB アプリケーションキーB
gvkC アプリケーションキーC
gvkD アプリケーションキーD()
gvkE アプリケーションキーE()
gvkF アプリケーションキーF()

※ まっとうでない方法で処理を行っているので全ての機種で動作する保証はない。

なお、各PocketPCと仮想キーの関係は以下の通り。
この表に載っていない機種と仮想キーの対応が分かった人は連絡してくれると表に追加します。


E-700/GFORT iPAQ H3630 GENIO e550
gvkLEFT カーソル(ナビゲータ)左
gvkUP カーソル(ナビゲータ)上
gvkRIGHT カーソル(ナビゲータ)右
gvkDOWN カーソル(ナビゲータ)下
gvkSTART ボイスレコーダ ナビゲーションボタン押下
gvkA 予定表 ボイスレコーダ
gvkB メニュー コンタクト 予定表
gvkC 連絡先 カレンダ 仕事
gvkD - - ホーム
gvkE - - 連絡先
gvkF - - -

仮想キー指定(SD35Z用)

SD35ZをSL-C7xxで動作させた場合のキー指定では通常のキー指定に加えてこれらも使用します。

slCALENDER CALENDERキー
slADDRESS ADDRESSキー
slMAIL MAILキー
slHOME HOMEキー
slKANAHIRA カナひらキー
slOK OKキー
slCANCEL キャンセルキー

カレンダーキー(slCALENDER)、メールキー(slMAIL)は長押し時に別のアプリケーションが起動されてしまうため、通常は使用できません。KeyHelperを使えば使用できるかもしれませんが、KeyHelper動作時にSD35Zが正しく動作するか否かは確認していません。

機能指定

キー操作でキー以外の事を行うためにはキーにこれらの値を指定します。

なお、MOUSE_LEFTの動作に関しては簡易操作モードが指定されているか否かによって動作が異なります。

MOUSE_LEFT マウス左ボタン
MOUSE_RIGHT マウス右ボタン
MENU_OPEN メニューバーを表示する
SKIP_NEXT_SELECT メニューから次の選択肢まで飛ばすを選択したときと同じ
LUPE_MODE 拡大表示(※)
VIRTUAL_KEY 仮想キーボード使用(※)

(※)は現在未実装

SELECT_KEYSセクション

ゲーム選択画面でのキー入力時の動作を変更するときに指定します。

指定方法は基本的にKEYSセクションと同様ですが、プロパティの値としてはkeyLEFT/keyUP/keyRIGHT/keyDOWN/keyESC/keySPACE/keyENTERのみが意味を持ちます。

デフォルトのバインドは以下の通り

SD35C SD35Z 割り当て 機能
gvkLEFT - keyLEFT 前のページ()
gvkUP - keyUP 選択項目を上に()
gvkRIGHT - keyRIGHT 次のページ()
gvkDOWN - keyDEL 選択項目を下に()
gvkA -(OKボタン) keyENTER 選択項目を選択する
gvkB
gvkC -(Cancelボタン) keyESC 選択画面を閉じる(SD35C/SD35Zを終了する)

※ 現時点ではSD35Cではこのように動作せず、旧来のようにカーソルで選択項目を移動する形になっています

MENU_KEYSセクション

メニュー操作時のキー入力時の動作を変更するときに指定します。

指定方法は基本的にKEYSセクションと同様ですが、プロパティの値としてはkeyLEFT / keyUP / keyRIGHT / keyDOWN / keyESC / keySPACE / keyENTER / MENU_OPENのみが意味を持ちます。

デフォルトのバインドは以下の通り

SD35C SD35Z 割り当て 機能
gvkLEFT - keyLEFT 左のメニュー項目
gvkUP - keyUP 上のメニュー項目
gvkRIGHT - keyRIGHT 下のメニュー項目
gvkDOWN - keyDEL 右のメニュー項目
gvkA -(OKボタン) keyENTER 現在のメニュー項目を選択する
gvkB
gvkC -(Cancelボタン) keyESC メニューを閉じる
gvkSTART keyMENU MENU_OPEN

SD35C.cfgのサンプル

SD35C.cfgのサンプルです。

; SD35Cアプリケーション設定ファイル
;
; SD35C全体の設定を記述します。
; このファイルで設定した内容はSD35Cで起動される全てのゲームで適用されます。
; なお、ゲーム側の.s35ファイルとこのファイルで同じ内容が設定された場合、
; ゲーム側の.s35ファイルの方の設定が優先されます。
;
; このファイルは必ずShift_JISで記述されている必要があります。
;

[INFO]
; 24bppのゲームでも常に16bppとして内部処理を行う
; この設定によりメモリ消費量を減らすことが出来ます。
; ただし、この設定により画像処理の内部計算で誤差が発生するかも
; しれないので、その場合は設定を外してください。
; ゲーム側で上書きして設定を外す場合は.s35ファイル側で
; forcebpp = 0と記述すればいいです。
forcebpp = 16
easyOperation = true

[KEYS]
; ゲーム中のキー設定
[SELECT_KEYS]
; ゲーム選択画面でのキー設定
[MENU_KEYS]
; メニュー操作でのキー設定

[Sound]
; 音声の再生レート11025/22050/44100が選択できる。
; MIDIゲームの場合はPatFile作成時に指定したレートと合わせておく方が良い。
Rate=22050
mp3type=mad

[MIDI]
; MIDI音源を使用したゲームの場合のPatFile置き場
; フルパスで指定しない場合はゲームの.s35と同じ場所のディレクトリ
; にあるものとします。
PatFile = \メモリ カード\My Documents\timid_yce\GM.tfp

.sd35rc.s35

.sd35rc.s35ファイルのサンプルです。

; SD35Zアプリケーション設定ファイル
;
; SD35Z全体の設定を記述します。
; このファイルで設定した内容はSD35Cで起動される全てのゲームで適用されます。
; なお、ゲーム側の.s35ファイルとこのファイルで同じ内容が設定された場合、
; ゲーム側の.s35ファイルの方の設定が優先されます。
;
; このファイルは必ずShift_JISで記述されている必要があります。
;

[INFO]
; 24bppのゲームでも常に16bppとして内部処理を行う
forcebpp = 16
; 簡易操作モードを使用する
easyOperation = true

[SD35Z]
; ドキュメント検索開始ディレクトリ
; ここで指定したディレクトリを$HOME, /mnt/card, /mnt/cfから検索します。
; デフォルトは/Documentsです。
; ここではSD35Cと共通のカードを使用できるように/My Documentsを指定しています。
searchDir=/My Documents

[KEYS]
; ゲーム中のキー設定
[SELECT_KEYS]
; ゲーム選択画面でのキー設定
[MENU_KEYS]
; メニュー操作でのキー設定

[Sound]
; 音声の再生レート11025/22050/44100が選択できる。
; MIDIゲームの場合はPatFile作成時に指定したレートと合わせておく方が良い。
Rate=22050
mp3type=mad

[MIDI]
; MIDI音源を使用したゲームの場合のPatFile置き場
; MIDIを使用するゲームの場合は★必須★
PatFile = /mnt/card/PatFiles/gm.tfp

[FONT]
; フォントマネージャをftのものを使用する
fonttype=ft

[FONT_QT]
; フォンマネージャ(QT)用の設定
GothicFontName=lcfont
MinchoFontName=lcfont
MenuFontName=lcfont

[FONT_FT]
; フォントマネージャ(FT)用の指定
; 空き容量が足りないのでゴシック体/明朝体ともにゴシックフォントを指定している。
basedir=/mnt/card/Fonts
GothicFontName=msgothic.ttc
MinchoFontName=msgothic.ttc
CacheSize=512

ゲーム設定ファイルのサンプル

アトラク=ナクアのゲーム設定ファイルのサンプルです。

[INFO]
name = Atlach Nacha
longdesc = Atlach Nacha

[FILES]
file00 = 蜘蛛GA.ALD
file01 = 蜘蛛GB.ALD
file02 = 蜘蛛SA.ALD
file03 = 蜘蛛WA.ALD

[Sound]
Rate=22050
cdda=use
midi=nouse
pcm=use

[CDDA]
track02 = ATLACHNACHA_02.mp3
track03 = ATLACHNACHA_03.mp3
track04 = ATLACHNACHA_04.mp3
track05 = ATLACHNACHA_05.mp3
track06 = ATLACHNACHA_06.mp3
track07 = ATLACHNACHA_07.mp3
track08 = ATLACHNACHA_08.mp3
track09 = ATLACHNACHA_09.mp3
track10 = ATLACHNACHA_10.mp3
track11 = ATLACHNACHA_11.mp3
track12 = ATLACHNACHA_12.mp3
track13 = ATLACHNACHA_13.mp3
track14 = ATLACHNACHA_14.mp3
track15 = ATLACHNACHA_15.mp3
track16 = ATLACHNACHA_16.mp3

ゲームの動作状況

1.55-3でかなり大きなバグを取りましたが、代りに従来動いていたゲームが動かなくなっている可能性があります。とりあえず私が1.55-3で試したのは以下の通りです。

なお、ここに記載されているからといって、全ての環境で動作するとは限らないかと思います(主にメモリ問題)

ランス4 武田さんが公開されている"Rance4 -教団の遺産- For Win95 MIDI対応版"が起動する所まで確認しました。
闘神都市 武田さんが公開されている"闘神都市2 For Win95 MIDI対応版"が起動する所まで確認しました。
DARCROWS 知り合いに起動して少しは進めれる事だけは確認してもらいました(が、渡したのはちょっと前のバージョンなので最新で起動するかどうか……)
アトラク=ナクア 起動する事だけ確認しています

それ以前の対応状況は以下の通りですが、今では逆に動かなくなっている可能性もあります……

ランス1 (アリスの館456同梱) クリアしました。
ランス2 (アリスの館456同梱) クリアしました。
ランス3 (アリスの館456同根) リーザス城まではたどり着いています。
闘神都市1 (アリスの館456同梱) 起動はしました(トーナメントまでも動かしていません)。
鬼畜王ランス 途中まで
OnlyYou リクルス クリアしました(あやめENDのみ)。
妻みぐい クリアしました(ただし、mp3ファイル作り損ねてBGMなしでですが…)
大悪司 起動はしました(3週目くらいしかまだやってません)。

変更履歴

2006/10/18 …… DR3.4 p1.55-3/Kanako

  • ビルド環境崩壊により、再度最終ソースからビルド環境を作り直しました。そのため、最終版よりも退化している可能性もあります……orz
  • αテスタ向けに公開していたVGA対応版のSD35Cの公開版ベースにしています
  • J0,J1,J2,J3,J4での画像ロード位置指定コマンドの、J2,J3で永続的な画像ロード位置変更コマンドでロード位置が変更された後で、J0,J1で一時的にロード位置が変更されると、その後で正しい位置にロード位置が戻らなかったバグを修正
  • 文字列を画面に出さずに変数に格納するモードの時の改行動作不正を修正
  • 文字列を画面に出さずに変数に格納するモードの時に、描画位置が移動してしまっていたバグを修正
  • 表示文字列の取得命令MG5の動作不正を修正

2004/01/09

  • Gpx::LoadCG()でαチャンネルを持たない画像をロードした時にαチャンネルを持たないサーフェースを生成するように変更
  • ShGraph::AddAnimRemain()のバグを修正
  • ShGraph::PlayAnimeData()のバグを修正
  • ShGraph::ChangeNotColor()の実装を追加
  • ShPort::InitKeyState()、ShPort::SetKeyStatus()、ShPort::GetKeyStatus()の実装を追加
  • ShSound::wavSendMemory()のバグを修正
  • ddemo.dll(ダミー)を追加
  • 乱数をCランタイムの乱数からMersenne Twisterに変更
  • CDの最大トラック番号が正しく取得できていなかったバグを修正
  • CXコマンドで24bitDIB→影転送を行うときにForceBppで16bpp化されている時に正しく動作しないバグを修正
  • ZA2,3が呼び出された時に次の選択肢まで飛ばすフラグを立てていたのを止めた
  • GetRayKey()のパラメータ範囲チェックがバグっていたのを修正
  • BltFast()でサーフェース間のBltを行うときにαチャンネルも転送していたのを止めた

2003/12/28

  • 文字列入力コマンド(/57)で空入力の場合にエラーにしないようにした
  • SD35Zで表示範囲外への更新命令発生時に描画処理を呼び出さないように変更した(SD35C側には入っていた処理のSD35Z側への反映漏れでした)

2003/11/8

  • WAVE再生時間取得処理が抜けていたのを修正(かえるにょぱにょ~んが落ちていた)

2003/11/6

  • DALKのシナリオバグ回避コードに問題があったため、DALKが落ちていたのを修正

2003/11/2

  • モザイクエフェクトで落ちるのを修正

2003/11/1

  • V1.55版をリリース

著作権とライセンス

このプログラムはGPL2にそったフリーウェアです。配布、コード変更等はGPL2に沿った形で行ってください。

また、完全に無保証です。各人の責任で実行してください。

謝辞

  • 本プログラムは水口さんの作られた BeOS用のSystem3.x シナリオデコーダであるSD35B DR3.4を移植したものです。これ無しにはそもそも存在しなかったでしょう。
  • 処理の多くの部分をSytem3.5 for X Window Systemから流用させていただいております。近間さん他、作者の方々あってのことです。
  • 本プログラムで使用している音楽再生ルーチンはみあみいさんがわっふる for PocketPC向けに書かれたwsmix.c、wstream.cをベースにさせていただだきました。
  • FreeType、mad他多数のオープンソース資産を利用させていただきました。
  • pdame-ML(旧名PVNS-ML)の方々、%mobiledev:*.jpの方々にはいろいろアドバイスをしていただいたりデバッグに協力していただいたりしました。