AppleWin 1.20.1+CU11 svnで落としてきたAppleWin 1.20.1.0(SVN889)のソースを元に主にグラフィックス表示を変更しました。 ファイルバージョンは1.20.1.1011としました。 ■ライセンス GNU GENERAL PUBLIC LICENSE Version 2, June 1991 ■使用方法 AppleWin 1.20.0にApplewin.exeを上書きコピーしてください。 ■変更点 ・カラーパレットに81色追加して滲みを再現しています。  各ドットはマゼンタ、ダークブルー、ダークグリーン、ブラウンの0%、50%、100%の混色で表示しています。  ある点を表示するとき、その点を中心に両隣り数ドットを調べて光っているドットの色を重み付けして加算しています。  その為に4色3段階の組み合わせで3x3x3x3=81色をパレットに追加しました。  (RGB値の混色で色を作っている場合は上記のとおり。YIQの場合は色の作り方は違いますが滲み処理は同じです。)  2色のグレーは同じ色になっています。  オリジナルのAppleWinのように明るさの違う色にする場合は後述のパレットファイルを使用してください。  1.19.2+CU05とは違う色合いに変えました。 ・カラーパレットから使用しなくなった17色を削除しました。 ・設定ダイアログConfigulationタブにパレットファイル指定用のテキストボックスを追加しました。  パレットに追加した81色をファイルから読み込んで設定できます。  ファイル形式や設定内容についてはPALETTE.TXTを参照してください。  パレットファイルの内容を変更してもファイル名が同じときは再読み込みしません。  再読み込みさせる時は一度別ファイルを指定するかクリアして設定ダイアログをOKで閉じ、再度ダイアログを  開いて指定しなおす、または再起動してください。 ・設定ダイアログConfigulationタブで設定するVideo Modeの表示を以下のように変更/追加しました。 Monochrome (Custom Luminance) プログラムの処理は変更していますが見た目の変化は無いはずです。 Monochrome (Amber) Monochrome (Green) Monochrome (White) Color (standard) 滲みありで表示します。 Color (text optimized) 白ドットと白ドットの間の黒は黒いままで表示し、殆ど滲まないように 表示します。 Color (TV emulation) なんちゃってY/C分離で滲み抑え気味で表示します。 Color (TV emulation 2) ドットの斜め並びを白っぽくする等しています。 斜めにドットがあるところで不自然に横線が途切れたりすることがあります。 特にダブルハイレゾモードでは乱れた表示になる場合が多いです。 Color (TV emulation 2)はColor (TV emulation)と比べて横線が途切れる ことが多いです。 Monochrome Colorize モノクロモードで光るドットに色が付いた表示になります。 オリジナルをDebugビルドしたときに同じ名前のモードがありますが 緑と紫が隣接する部分が白になる等の違いがあります。 1.19.2+CU05でのColor (Half-Shift)と同じです。  オリジナルと比べて負荷が高くなっています。  特にColor (TV emulation)とColor (TV emulation 2)は重いです。  縦方向の滲み処理は負荷が高くなりすぎたので断念しました。 ・設定ダイアログConfigulationタブにBlur Mixed Mode Text項目を追加しました。  チェックするとVideo ModeがColor (standard)、Color (TV emulation)、Color (TV emulation 2)、  Monochrome Colorizeのときミックスモード(グラフィックの下にテキストを4行表示するモード)のテキストを  滲み表示します。 ・設定ダイアログConfigulationタブにReverse Monochrome Video項目を追加しました。  チェックするとモノクロモードが反転表示になります。 ・フォントデータの一部の文字が少しズレたりしていたのを修正しました。 ・設定ダイアログInputタブにカーソルキーの割り当て変更用のコンボボックスを追加しました。  割り当ては矢印キーファイルで変更できます。  ファイル形式や設定内容についてはARROWKEYS.TXTを参照してください。  デフォルトの設定内容は以下のとおりです。 no changes up=RETURN down=/ up=[ left=; right=' down=/ up=W left=A right=D down=X up=3 left=W right=E down=S up=N left=W right=E down=S up=F left=L right=R down=B up=A down=Z up=I left=J right=L down=K up=I left=J right=K down=M  を指定するとF2キーやツールバーのボタンでリセットしたとき  ドライブ1に入っているイメージファイル名により自動的に割り当てを変更します。  リセット時にドライブ1が空で後からファイルを指定した時には自動変更しません。  デフォルトでは以下のように設定しています。 ファイル名が aklabeth u1Mater U2Prog u3master のいずれかに前方一致したとき up=RETURN down=/ ディスクイメージのあるディレクトリ名が AP_WIZ1 AP_WIZ2 AP_WIZ3 AP_WIZ4 AP_WIZ5 のいずれかに一致したとき up=W left=A right=D down=X どれにも一致しないときは変更なし ・設定ダイアログInputタブの矢印キー選択の右のSelect Nowボタンを押すと  を選択して現在のイメージファイルで割り当て変更するようにしました。  ドライブ1が空のときは割り当て解除します。  これは設定ダイアログをキャンセルで閉じても割り当て変更します。 ・設定ダイアログInputタブにSwap joystick 1 buttons項目を追加しました。  チェックするとジョイスティックのボタン1と2を入れ替えます。  入れ替えるのはジョイスティック/ジョイパッドの入力のみです。  キーボードを割り当てた場合は入れ替わりません。 ・設定ダイアログSoundタブにMonaural sound項目を追加しました。  チェックするとサウンド出力がモノラルになります。 ・以下のレジストリ設定項目を追加しました。 HKEY_CURRENT_USER\Software\AppleWin\CurrentVersion\Configuration\Video Palette Filename HKEY_CURRENT_USER\Software\AppleWin\CurrentVersion\Configuration\Arrowkeys HKEY_CURRENT_USER\Software\AppleWin\CurrentVersion\Configuration\Arrowkeys Filename HKEY_CURRENT_USER\Software\AppleWin\CurrentVersion\Configuration\Swap Joy1 Buttons HKEY_CURRENT_USER\Software\AppleWin\CurrentVersion\Configuration\Monaural Sound  以下の場所にもレジストリ登録されます。 HKEY_CURRENT_USER\Software\Microsoft\DirectInput\APPLEWIN.EXE + 16桁の16進数 ・+CUバージョンとオリジナルを交互に起動した場合、Video Modeの数が違うために違う表示モードになる場合があります。 ■バグ修正 ・1.19.2+CU05にはカーソルキーの内部コードチェックが不十分だった事が原因で  「&」、「%」、「'」、「(」がArrowkeysで設定したキーになってしまうバグがありました。  普段ゲームしかしてなかったので気付かないままでした。 ・1.20.1+CU10には矢印キー設定が以外でもリセット時に自動選択するバグと  に変更すると矢印キー割り当てが解除されるバグがありました。 ■パレットファイル palette*.cfg はパレットファイルのサンプルです。 お好みにあわせて使用する/しないしてください。 palette-default.cfg 何も指定していない時と同じ palette-grey.cfg 2色のグレーに明度差をつけた以外はpalette-default.cfgと同じ palette-light.cfg 明るめで黒が灰色気味 palette-original.cfg オリジナルのAppleWin 1.20.1とほぼ同じ色合い ファイル形式や設定内容についてはPALETTE.TXTを参照してください。 ■矢印キーファイル arrowkeys*.cfgは矢印キーファイルのサンプルです。 お好みにあわせて使用する/しないしてください。 arrowkeys-default.cfg 何も指定していない時と同じ The Genesis of UltimaとWizardry Collectionに付属の ディスクイメージ用にファイル名とディレクトリ名を指定 しています ファイル形式や設定内容についてはARROWKEYS.TXTを参照してください。 ■ソースコード 元ソースは以下のコマンドで取得しました。 svn checkout svn://svn.berlios.de/applewin/trunk 差分と新規ファイルがdiff.zip内にあります。 差分適用はpatchコマンドあるいは手作業で行ってください。 diff/resource/Applewin.rc.diff diff/resource/resource.h.diff diff/source/Applewin.cpp.diff diff/source/Common.h.diff diff/source/Frame.cpp.diff diff/source/Joysthick.cpp.diff diff/source/Keyboard.cpp.diff diff/source/Keyboard.h.diff diff/source/Mockingboard.cpp.diff diff/source/PropertySheetPage.cpp.diff diff/source/PropertySheetPage.h.diff diff/source/Video.cpp.diff diff/source/Video.h.diff source/Charset40_Data.cpp source/Charset8C_Data.cpp source/Charset8M_Data.cpp (未使用) source/Charset82_Data.cpp source/Charset_Data.h ApplewinExpress9.00.vcproj Charset*_Data.*はresourceフォルダにあったビットマップから変換したものです。 *.vcprojファイルはMicrosoft Visual C++ 2008 Express Edition用のみです。 他のバージョンを使用している場合はプロジェクトのリソースから CHARSET40.BMP CHARSET82.bmp CHARSET8C.bmp を外し、ソースに Charset40_Data.cpp Charset82_Data.cpp Charset8C_Data.cpp Charset_Data.h を追加してください。 Debugビルドの事は考慮しないでソース変更しました。 ビルドおよび動作確認は以下の環境で行いました。 Microsoft Windows XP Home Edition SP3 Microsoft Visual C++ 2008 Express Edition SP1 Microsoft DirectX SDK (February 2010) くれゆに 2011-11-27