Sunday, August 14, 2016

openMSX設定:kbd_trace_key_presses

kbd_trace_key_presses


ホストキーボードで押されたキーの、それぞれのSDLキーコード、SDLモディファイアー、Unicodeの値を標準エラー出力のログに記録します。また、コンソールのtypeコマンドでMSX側にペーストされたunicodeとそれに対応する文字コードも表示します。この設定はunicodeキーマップを定義する時に特に便利です。そのため、ある特定のキーや文字がどのunicodeに対応しているか見つけ出すことができます。

使用例:
set kbd_trace_key_presses現在の設定を表示します。
set kbd_trace_key_presses on押されたキーのログ記録をオンにします。

Tuesday, August 9, 2016

openMSXコマンド:escape_grab


escape_grab

grabinput設定が有効な時、Windowモードでのみ有効になります。一時的に入力grabを解除します。openMSXのウィンドウがフォーカスを失い、再度フォーカスされた時、grabは再度有効になります。

使用例:
escape_grab一時的に入力grabを解除します。

openMSXコマンド:diskmanipulator

diskmanipulator

ディスクイメージ(に保存してあるファイル)を扱うコマンド群です。

これは、いろいろと違う用途に使えるので、diskmanipulatorの使い方、として個別の解説を用意しました[訳注:未訳]。

Sunday, August 7, 2016

openMSXコマンド:cycle / cycle_back

cycle / cycle_back

設定値

列挙された設定値を繰り返します。cycle_backcycleと同じですが、逆順になります。

使用法:
cycle <setting>
特定の設定をcycleの次の値に変更します。
cycle_back <setting>特定の設定をcycleの次の値に変更します。
使用例:
cycle scale_algorithm
cycle videosource

openMSXコマンド:cd<x>

cd<x>


CDROMイメージを交換します。cda, cdbなどのコマンドはMSXの使用可能なCDROMドライブが割り当てられます。これらはMSX-DOSのドライブ名とは対応しません。

使用法:

cda <iso image>CDROM に"cda"ドライブのISOイメージを使用します。
cda insert <iso image>CDROM に"cda"ドライブのISOイメージを使用します。
cda ejectCDROM ドライブの"cda"からイメージを取り出します。
cda
CDROM ドライブの"cda"の現在のISOイメージを表示します。

openMSXコマンド:cart

cart

ROMカートリッジを実行中のMSXに挿入します。cartコマンドは最初に使用可能なスロットに挿入します。carta、cartbなどのコマンドは特定のスロットに挿入します。ejectサブコマンドで、カートリッジは再び削除されます。

ROMカートリッジは、エクステンションの特殊クラスです。ROMカートリッジでないエクステンションについては、extlist_extensionsremove_extensionのコマンドを参照してください。

使用法:
cart KMARE.ROMROMカートリッジを最初の空きスロットに挿入します。
cart insert KMARE.ROMROMカートリッジを最初の空きスロットに挿入します。
carta USAS.ROM -ips USAS.IPSIPSパッチを適用した上でROMカートリッジをスロットAに挿入する。
cartb NEMESIS.ROM -romtype KonamiROMカートリッジをスロットBに挿入し、(通常は自動判定される)マッパーを明示的に指定する。
carta ejectスロットAから現在挿入されているカートリッジを取り外す。

Saturday, August 6, 2016

openMSXコマンド:bind / unbind / bind_default / unbind_default /activate_input_layer / deactivate_input_layer

bind / unbind / bind_default / unbind_default / activate_input_layer / deactivate_input_layer

(キーを押す、などの)イベントをコマンドと関連付けます。(なる特定のキーを押すなど)イベントを指定すると常に対応するコマンドが実行されます。単体のTclコマンドや;で区切られた一連のコマンドが(通常のTclの書式で)使用できます。キーバインドをカスタマイズするにはbind/unbindを使用してください。機能的に必要なデフォルトのキーバインドを提供するにはbind_defaultを使います。これは、異なった設定をデフォルトで上書きします。イベントが繰り返すとわかっている場合(キーを押し続けた時のキーイベントなど)は-repeatオプションをつかうことで、コマンドが同様の繰り返しをします。

全体のキーバインドのセットを必要とするTclスクリプトやある条件下でのみこれらを有効化するキーバインドはinput layerシステムが使えます。これは特定のレイヤーとのキーバインド設定を可能にし、その後特定のレイヤーを有効化、無効化します。このようなレイヤーはブロックモードで有効化することもできます。ブロックモードとはレイヤーがある特定のイベントととのキーバインドを持たない場合でも、そのイベントがエミュレートしているMSX側にまだ渡されない、ということを意味します。これはある(バーチャルOSDキーボードのような)OSDウィジェットを実装する時に便利です。

指定できるイベント:
<key>[,release]keyb <key>[,release]の省略形です。
keyb <key>[,release]<key>を押します [もしくは離します]
mouse button<n> <up/down>マウスボタン <n> が、上がるか下がります。
mouse motion <x> <y>マウスが<x>と<y>の移動をします。
joy<n> button<m> <up/down>ジョイスティック<n>のボタン<m>が上がるか、下がります。
joy<n> axis<m> <value>ジョイスティック<n>の方向キー<m>から値を取得[訳注:要確認]
focus <boolean>openMSXのウィンドウがフォーカスを取得(1)もしくはフォーカスを失います(0)
OSDcontrol <button> PRESS|RELEASEバーチャルOSD制御用 <button>を押します、もしくは離します
使用法
bindすべてのバインドを表示します。
bind -layer <layername>特定のレイヤーですべてを表示します。
bind <event> [-layer <layername>]イベントのバインドを表示します。オプションでレイヤーを指定できます。
bind <event> [-layer <layername>] [-repeat] <command>新しいバインドを作成します。オプションで特定のレイヤーにバインドを作成できます。また、オプションで(キーが押されたままの時など)一時的なバインドを再定義できます。
bind -layers現在バインドがあるすべてのレイヤー名を表示します。
unbind [-layer <layername>] <event>このイベントに対するすべてのバインドを取り消します(オプションで特定のレイヤーを指定できます)。
unbind -layer <layername>特定のレイヤーのバインドを取り消します。
activate_input_layer現在アクティブなレイヤーを表示します。
activate_input_layer [-blocking] <layername>特定の入力レイヤーを有効化します。オプションでこのレイヤーをブロックモードの状態で有効化できます。
deactivate_input_layer <layername>特定の入力レイヤーを無効化します。
使用例:
bind PAGEUP "set speed 100"
bind PAGEDOWN "set speed 50"

F9が押されている間、フルスロットルで実行します (BrMSXと同様):
unbind F9
bind F9 "set throttle off"
bind F9,release "set throttle on"

ウィンドウがフォーカスを失うと停止します(fMSXと同様):
bind "focus 0" "set pause on"
bind "focus 1" "set pause off"

マウスの真ん中ボタンでインプット切り替え:
bind "mouse button2 down" "toggle grabinput"

ジョイスティックのボタン8をF2キーに割り当てます:
bind "joy1 button8 down" "keymatrixdown 6 0x40"
bind "joy1 button8 up" "keymatrixup 6 0x40"

エミュレーション速度をPageUp/Downキーで増加、減少できます:
bind PAGEUP -repeat "incr speed 1"
bind PAGEDOWN -repeat "incr speed -1"

ジョイスティックの左と右をボリューム増加、減少に使います:
bind "joy1 hat0 left" -repeat "incr speed -5"
bind "joy1 hat0 right" -repeat "incr speed 5"

ALTとENTERでフルスクリーン表示を切り替えます。
bind ALT+RETURN toggle fullscreen

TCLスクリプト中でのジョイスティックもしくはカーソルの上の反応:
bind_default "OSDcontrol UP PRESS" -repeat {osd_menu::menu_action UP }
TCLスクリプト中でのジョイスティックの1ボタンもしくはスペースキーの反応:
bind_default "OSDcontrol A PRESS" -repeat {osd_menu::menu_action A }


openMSXコマンド:cassetteplayer

cassetteplayer

openMSXカセットプレーヤーを制御します。テープイメージを挿入、撤去、作成、巻戻しするための様々なサブコマンドがあります。

使用法:

cassetteplayer insert <tape image>カセットプレーヤーにテープイメージ(WAVかCASフォーマット)を挿入します。
cassetteplayer ejectカセットプレーヤーからイメージを撤去します。
cassetteplayer rewind現在のテープを巻戻します。
cassetteplayer motorcontrol on|offモーター制御信号(remote)に従うかを選択します(デフォルトではon)。
cassetteplayer new [<tape image>]新規のテープイメージを作成し録音モードに入ります。



cassetteplayer play(録音モードに入っている時は)再生モードに入り、テープを巻戻します。

Friday, August 5, 2016

openMSXコマンド:type / type_via_keyboard

type / type_via_keyboard

エミュレートされたMSX上で文字列をタイプします。このコマンドはシミュレートされたMSXキーボード上で自動的にキーが押され、離されます。このコマンドはデモやMSXベーシックのタスク自動化に便利です。

このコマンドには-releaseオプションがあります。これを使うと、新しいキーが押される前に、キーを離すことを指定できます。あるゲームの入力ルーチンではこれが必要 ですが、それはまた、タイプを二回することになり遅くなります。

-freqオプションをつかうと、どれくらいの速さでタイプするか、またどれくらいの長さでキーが押されているか(-releaseが指定されている時は離す速さも)変えることができます。キーは、与えられた周波数で入力され、押す/離すスピードも1/周波数となります。

このコマンドは常に動くでしょう。というのは、ユーザーがMSX上で実際にタイピングしているかのようなものだからです。

もっと速いものを探しているのなら、type_via_keybufを見てください(正し、使えるところは限られます)。default_type_procと一緒に最も標準的なキータイプの実装であるtype_via_keybufも作成できます[訳注:詳細は要確認]。何をやっているのか、わかっている時だけこれは実行してください!

使用例:
type "Hello world!"最も有名なプログラムの、もう1つのマニフェスト


このコマンドを拡張するスクリプトもいくつかあります。

type_from_fileこのコマンドで、(テキスト)ファイルに保存されているテキストを自動でタイプできます。どこかで見つけた、またはテキストに保存してある断片的なベーシックプログラムを打ち込む時にとても便利です。
type_password_from_filetype_from_fileの特別版でファイルに保存された、ゲームのパスワードを入力します。
テキストファイルは特別なフォーマットである必要があります。1パスワード1行で、#で始まる行は無視されます。ファイル名の後に、タイプするパスワードのインデックスを入れられます。インデックスの最初の行は、コメント行や、空行ではいけません。[訳注:要詳細確認]

openMSXコマンド:after

after

あるイベントが終わった後にコマンドを実行します。例えば、一定の時間が過ぎた後や、エミュレーターを一定の時間アイドル状態にする、などです。

遅延するコマンドは、一度だけ実行されます。一定期間ごとにコマンドを実行したいのであれば、これが実行されるたびにコマンドを再度発行してください。afterコマンドは遅延したコマンドのidを返します。遅延したコマンドのリストの問い合わせや遅延したコマンドのキャンセルも可能です。

使用法:
after time <seconds> <command>ある時間が過ぎた後にコマンドを実行する。時間はMSX側の秒数になります。
after realtime <seconds> <command>ある時間が過ぎた後にコマンドを実行する。時間はホスト側の秒数になります。
after idle <seconds> <command>アイドル状態がある時間過ぎた後にコマンドを実行する。時
after frame <command>ビデオフレームが終了した時に実行する。 (VDPスキャニングが vsyncに達した時)
after break <command>ブレークポイントに達した後に実行します。
after boot <command>ブート(もしくはリブート)した後にコマンドを実行します。
after machine_switch <command>新しいマシンに切り替えた後に実行します。
after <input-event> <command>与えられたイベントが起きた後にコマンドを実行します。
イベントとは、マウス、ジョイスティック
、リサイズのイベントなど、bindコマンドと共通です。
after info遅延した術のコマンドを一覧にします。
after cancel <id>与えられたidのコマンドをキャンセルします。
使用例:
after time 2.6 "set renderer SDLGL-PP"
after idle 100 exit
after info
after cancel after#2
after "mouse button1 down" foo

openMSXコマンド:vdpregs

vdpregs



ビデオディスプレイプロセッサ(VDP)の現在の設定を表示します。関連コマンドpallette


使用法:
vdpregs
VDPの現在のコントロールレジスタの内容を表示します。

openMSXコマンド:soundlog

soundlog

openMSXの音声をwavに書き込むサウンドログを制御します。

このコマンドは、record -audioonly

の省略形となっています。


使用法:
soundlog start音声ファイルの"openmsxNNNN.wav"にサウンドログを書き出します。
soundlog start <filename>ファイル名を指定して、サウンドログを開始します。
soundlog start -prefix fooファイル名"fooNNNN.wav"にサウンドログを書き込みます

soundlog stopサウンドログを停止します。
soundlog toggleサウンドログの状態を切り替えます

openMSXコマンド:save_settings

save_settings


現在のopenMSXの設定を設定用XMLファイルに書き込みます。load_settingsも参照してください。

save_settings_on_exitを無効化している場合、このコマンドで設定内容の保存ができます。

save_settingsデフォルトの設定用ファイルに設定内容を保存します。
save_settings <filename><filename>のファイルに設定内容を保存します。

openMSXコマンド:load_settings

load_settings


設定用XMLファイルから設定を読み込みます。設定ファイルは完全である必要はありません。ファイルは内で言及されていない内容については、変更されません。save_settingsも参照してください。

使用法:
load_settings <filename>ファイルから設定を読み込みます。

Thursday, August 4, 2016

openMSXコマンド:trainer

trainer


ゲームトレーナーを制御します。個々のトレーナーを有効化、無効化します。何が指定可能かについてはタブキーを使用してください。トレーナーを切り替えると現在アクティブなトレーナーは非アクティブになります。

使用法:
trainer どのトレーナーが現在アクティブなのかを見ます。。
trainer <game> トレーナー内で、どのチートが現在アクティブなのかを見ます。
trainer <game> all <game>のトレーナーにあるすべてのチートをアクティブにします。Activate all cheats in the trainer of <game>
trainer <game> \[<cheat> ..\] <game>のチートのon/offを切り替えます。
trainer deactivate トレーナーを非アクティブにします。

使用例:
trainer Frogger all
trainer "Circus Charlie" 1 2
trainer Pippols lives "jump shoes"




openMSXコマンド:findcheat

findcheat


これは新しいチートを発見するツールです。例えば、あるゲームでは、残機数が保持されているメモリ位置を探す手助けになります。このチートはのちにtrainerコマンドに追加されました。

これは以下のように動作します:

1.findcheatツールを初期化し、初期のMSXメモリのスナップショットを取ります。
2.ゲーム内で自分に関心のある値が変更されるような動作をします。例えば、残機数が保持されているメモリ位置を探したいのであれば、ゲーム内で残機数を減らし(または増やし)ます。
3.findcheatツールを使用し、現在のMSXメモリを以前のメモリスナップショットと比較します。findcheatはここで、可能性のあるいくつかを提示します。たとえば、数値が増えたり、減ったりしたメモリ位置を探したり、値が変化したりしなかったりした位置を探すことができます。
4.findcheatは検索基準に合うメモリ位置のリストを表示します。
5.もし、まだ数多くの合致する結果がある場合、ステップ2から繰り返します。

Vampier氏はfindcheatをどう使うかについての動画チュートリアルを作成しました。ここから参照できます。

openMSX設定:z80_freq / z80_freq_locked

z80_freq / z80_freq_locked


この二つの設定はZ80のクロック周波数を制御します。z80_freq_lockedが真であるとき、通常エミュレートされたZ80は3.5 Mhz(あるマシンではオプションで5.3Mhzで)で動作します。z80_freq_lockedが偽であるとき、z80_freqの値がZ80クロック周波数として使用されます。

使用法:
14 MHzへのオーバークロック:
set z80_freq 14318180
set z80_freq_locked false

F8キーで3.5Mhzと7Mhzを切り替え:
set Z80_freq 7159090
bind F8 "toggle z80_freq_locked"

openMSX設定:r800_freq / r800_freq_locked

r800_freq / r800_freq_locked

この二つの設定はR800のクロックを制御します。詳細はz80_freq / z80_freq_locked for detailsを参照してください。


Wednesday, August 3, 2016

js-dos test

I'd like to make MSX developping environment on browser.
First of all,I had tested to run (MS)DOS emulator on jsfiddle.net,
and successfully run dos game.

-------------------------------------------------
External Resources
-------------------------------------------------

https://js-dos.com/cdn/js-dos-api.js

-------------------------------------------------
CSS
-------------------------------------------------

.dosbox-container { width: 640px; height: 400px; }

-------------------------------------------------
html
-------------------------------------------------

<div id="dosbox"></div>
<br/>
<button onclick="dosbox.requestFullScreen();">Make fullscreen</button>

-------------------------------------------------
javascript
-------------------------------------------------
  var dosbox = new Dosbox({
    id: "dosbox",
    onload: function (dosbox) {
      dosbox.run("https://js-dos.com/cdn/digger.zip", "./DIGGER.COM");
    },
    onrun: function (dosbox, app) {
      console.log("App '" + app + "' is runned");
    }
  });

link:

js-dos
https://js-dos.com/getting-started/

Tuesday, August 2, 2016

openMSXコマンド:keymatrixdown / keymatrixup

keymatrixdown / keymatrixup


MSXキーボードマトリクスのキーを押したり離したりします。外部プログラムやTCLスクリプトを作成し、MSXキーを押すのに使用できます。キーマトリクスについてのさらなる情報については、MAPの説明を読んでください。

使用法:
keymatrixdown <row> <mask> 指定されたMSXキーを押します
keymatrixup <row> <mask> 指定されたMSXキーを離します

例:
keymatrixdown 6 0x01
keymatrixup 6 0x01

コマンド一覧へ戻る

openMSX設定:mute

mute

すべてのサウンドアウトプットをミュート(消音)、ミュート解除します。
使用法:
set mute現在の設定を表示
set mute on音声をミュート
set mute off音声のミュート解除

openMSX設定:power

power

エミュレーション中のMSXマシンの電源をon/offします。
使用法:
set power現在の設定を表示します
set power onMSXマシンをonします(デフォルト)
set power offMSXマシンをoffします

openMSXマニュアル:5.11キーマッピング

5.11キーマッピング

この節では、openMSXのキーマッピングを列挙していきます。MSXの特殊キーはハードコードでマッピングされていますが、エミレーター機能のキーはコンソールでbindコマンドを使用することにより、完全にカスタマイズが可能です。カスタマイズしたキーバインドは設定と一緒に保存されます。
MSXの特殊キーは、以下のようにマッピングされます。一列目はPC(Windows、Linux、BSD)二列目はAppleのマック用です。
MSX keykey (PC)key (Mac)
CTRL keyL-CTRLL-CTRL
dead (accents) keyR-CTRLR-CTRL
GRAPH keyL-ALTL-ALT
CODE/KANA keyR-ALTR-ALT
iee ('no') keyL-Windows
hai ('yes') keyR-Windows
SELECT keyF7F7
STOP keyF8F8
INS keyInsertCmd+I
[訳注:デッドキーは、フランス語などで使われるアクセント記号などを入力するためのもので、日本語版MSXには存在しません]
エミュレーター機能も同様にキーからアクセス可能です(bindコマンドで変更可能です)
keys (PC)keys (Mac)function
PauseCmd+P (Pause)Pause emulation
ALT+F4Cmd+Q (Quit)Quit openMSX
CTRL+Pause (Break)Quit openMSX (not in Windows)
PrtScrCmd+D (Dump)Save current screen to a file (screen shot)
PageUpPageUpGo 1 second back in time, using the reverse feature
PageDownPageDownGo 1 second forward in time, using the reverse feature
F9Cmd+T (Throttle)Toggle full throttle (maximum speed)
F10Cmd+L (consoLe)Toggle console display
F11Cmd+U (mUte)Toggle audio mute
F12 or ALT+EnterCmd+F (Full)Toggle full screen mode
ALT+F7Cmd+R (Restore)Quick loadstate (from 'quicksave' slot)
ALT+F8Cmd+S (Save)Quick savestate (to 'quicksave' slot)
MENUCmd+O (Open menu)Show the On-Screen-Display menu
マックユーザーへの注:コンソールでカスタムキーの割り当てをしたい時には、コマンドキー(アップルのロゴのキーは)をMETAキーとして使ってください。
ハンドヘルドデバイスでは、ほとんどのキーがスクリーン上の表示メニューと、スクリーンキーボードを介してのみ使用可能です。

*openMSXドキュメント日本語版 翻訳方針

翻訳に当たって、以下の点はご容赦ください。

・何より最後までまとまった形でリリースするのを目的とするため、負担のない形で進めています。
・空き時間を作って、少しずつ訳しています。そのため、気をつけてはいますが、翻訳時期によって若干訳語が違う場合があります。
・ブログのシステムの関係で、レイアウトが若干貧弱です。表組みなど、見栄えが悪いところがあります。
・意味が変わらないと判断した時は、原文の長い文章を積極的に短く切って訳しています。
・読んでくれるであろうユーザーの層を考えて、専門的な用語は一般的な用語に訳すか、訳注をつけています。
・ノリで訳した部分、深夜帯に訳した部分は若干「あれ?」という部分があるかもしれませんが、そのような場合は原文の記述にもあたってみてください。

Monday, August 1, 2016

openMSX設定:kbd_mapping_mode

kbd_mapping_mode


キーボードドライバーは二つのマッピングモードで動作します。「キー」マッピングモードと「キャラクタ」マッピングモードです。

キーマッピング:
ホストのキーボードで押されたキーをMSXのキーボードの特定のキーにマップします。このモードはホストキーボードとMSXキーボードが同じレイアウトになっていたり、キーボードマトリクスを直接キーボードマトリクスを読んで、キャラクターマッピングモードでは自動生成できないある特定のキーの組み合わせをユーザーに要求するときに便利です。

キャラクターマッピング:
ユーザーに入力された文字がMSXで文字列を入力するのに適切なキーコンビネーションにマッピングされます。例えば、ユーザーが!という文字を入力すると、openMSXはMSXのインターナショナルモデルをエミュレートし、キーボードドライバはMSXキーボードのシフトキーと1を押します。これはホスト側のキーボードで!の文字を入力するのにキーが1つ、もしくは複数で押されたか否かにかかわらず行われます。これはユーザーがホスト上ではAZERTY配列で、MSX上ではQWERTY配列を使っている場合、または、日本版MSX上でUS-QWERTYキーボードが使われている場合に便利です。
特殊キー(CAPSLOCKのような)はキーマッピングモードと同様、直接にマップされます。

使用例:
set kbd_mapping_mode
set kbd_mapping_mode CHARACTER キャラクターマッピングモードを設定
set kbd_mapping_mode KEY キーマッピングモードを設定

コマンド一覧へ戻る

openMSXコマンド:slotmap

slotmap


どのデバイスがどのスロットに挿入されているか表示します。関連コマンドのiomapも同様ですが、iomapはI/Oマップ上のデバイスを表示します。

使用法:
slotmap 現在のMSXマシンのスロットマップを表示します。

コマンド一覧へ戻る