プチコン関連メニューに戻る
N60-BASIC→SMILEBASICコンバーター(Windows用)
Papi2Petit パピtoプチ
papi2petit.zip
PC-6001(初代機)用のBASICプログラムを、プチコン用に変換することを目的としたツールですが、
色々と問題が多く、手作業による修正が必要になることがほとんどだったり、パフォーマンスの調整が必要だったりと、作っている最中に「もしかして、このツールの存在意義って薄いんじゃね?」ということに気づいてしまい(しかもクリスマスの日!)、途中で投げ出しました。
あくまでも自己責任で、「P6っぽい絵がプチコンで表示されることに喜びを感じる!」という方だけ、お試しください。
Windows7(64bit)のみでしか動作確認していません。すみません。
【使い方】
- Papi2Petit.exeを起動し、左側のN60-BASICウインドウに、P6用のBASICプログラムをコピペしてください。
- 「変換」ボタンを押してください。右側のSMILEBASICウインドウに、プチコン用のBASICプログラムらしきものが表示されます。
- 「出力結果をコピー」ボタンを押すか、自前で出力されたプログラムをクリップボードにコピーしてください。
- Gust Notchさん作成のPetitEditorなどに、さきほどのプログラムをペーストしてQR化し、プチコンで取り込んでください。
http://www2.u-netsurf.ne.jp/~ozawa/petitcom/petiteditor.html
- もちろん、自力でプチプチ打ち込んでも良いのですが…たぶん労力に見合わないと思います。
【いろいろ】
- 主に表示系を中心に、全コマンドの半分くらいは対応したつもり。
- 未対応の命令は基本的にスルーされるので、そのまま動くときもある。
- SCREEN 2は未対応。
- SCREEN 3のグラフィック解像度は256x192のまま。ただし、文字は倍角になる。
- SCREEN 1またはSCREEN 2へのグラフィック命令は無視される。
- マシン語およびEXEC,PEEK,POKEは使用不可。
- 基本的に、先頭の文字から見て機械的に変換しているだけなので、論理式の符号反転(N60は論理式が真だと-1、プチコンは1)、RND関数(プチコンは0〜nまでの乱数を返す)、IF〜THEN(1行に書ききれない)などはかなり無理やりな感じ。
- INKEY$はプチコンのINKEY$()で受け取れる文字のみ。カーソルキーやTABなどは受け付けない。
- ファンクションキーは表示されないが、デフォルトでは15行目までしか使えないのでCONSOLE 0,16,0で16行表示。
- PRINT "A="A のようなセミコロン省略は不可。
- PLAY文のMMLはそのまま BGMPLAYになるので、プチコンで使えないコマンドはエラーになる。パラメータ省略("O"とか"L"とか)も不可。
- グラフィック命令のSTEPについては、POINT STEPの後のみ基点が更新されない。
- BASICの仕様の違いは吸収していない。例えば FOR の終値を変数にしてループ内で変更した場合、プチコンだとループ回数が変わるけどP6は変わらないとか。
- リソースファイルなしの完全スタンドアローンで動作するようになっているのでリストが長い。
- 使用リソースは、BGU0〜BGU3まで、P6フォントのキャラクターパターンが入っている。
- だいたい速すぎてゲームにならないので、自キャラの表示後や、STICK関数とかを使ってる場所などに適度にVSYNCを入れてあげると良いかも。
- 【お願い】DIM文は、P6の添字よりも1つ大きくしてほしいのですが、2次元配列の場合、最後の添字以外はツール側では対応しきれていないので、手作業で+1してください。
- 【お願い】IF文に複数の条件が書かれている場合、"="が"=="に変換しきれない場合があるので、手作業で修正してください。
【あとがき】
結局、ほとんどのプログラムは、そのままではまともに動きませんし、運良く動いたとしても、速度の関係で、使いものになりません。
また、できあがったプログラムはバカでかいうえに、ライブラリ用の変数が各所に埋め込まれ、改造もしにくいです。
どうせプチコンに移植するなら、最初から自分でアレンジしたほうが楽しいですし、クオリティーも高くなると思います。
というわけで、あまり存在意義のないツールだということに気づいたので、この辺で終了ということに。
あ、ソース公開とかはご勘弁ください。見せられるものではないので…。
そんなこんなで、無駄といえば無駄なツールだったのですが、これを作って色々とP6の仕様がわかったり、絵が出たときは結構楽しかったりしたので、個人的には満足です(^_^)
2012.12.25 TINY野郎
お問い合わせ
Twitter: @tiny_yarou
E-MAIL : tiny_yarou@yahoo.co.jp