プチコン4 まとめWiki

プチコンバータ ver. 0.7.7 β

パンくずリスト

2020年1月6日投稿 / 2020年1月7日更新 / 投稿者 : うつりきまぐれ / タグ : 投稿プログラム うつりきまぐれ ツール 変換 プチコンバータ

概要

これはプチコン3号・プチコンBIGのために作られたプログラムを、プチコン4で動作するように変換するツールです。置き換えが必要な命令にプレフィックスをつけた独自命令を定義して、変換時にプレフィックスを付加して独自命令を参照するというやり方をとっています。

主に次のことができます。

  • プチコン4のレイヤーを使って 3DS や TV/GamePad の2画面をエミュレート
  • XSCREENDISPLAY などのスクリーン関連の命令を置き換え
  • SPBG 系の命令も、エミュレートした独自命令に置き換え
  • MIC 系命令を置き換え
  • ボタンビットやタッチ座標、アニメーション種類やスプライトアトリビュートを変換

このプログラムはまだベータ版です。把握した範囲でのバグは修正していますが、まだ動作しないプログラムもあります。もしエラーが発生したり、挙動が違ったりしたとき、またツールやヘッダプログラムそのものに間違いを見つけたときは 不具合報告 をお願いします。

定期的に更新チェックをお願いします。

注意

  • MIC 入力では常に無音を返します。
  • MML の置き換えは未実装です。
  • MP 系の命令はまだダミーを実装していないめエラーになります。作業量は多くないのでできる限り早く実装します。
  • 変換したプログラムを動作させるにはプチコンバータのプロジェクトにある PETITC.LIB というファイルが必要です。プチコンバータのプロジェクトから直接ロードするのでコピーする必要はありませんが、プチコンバータのプロジェクトを削除してしまうと動作しなくなります。

つかいかた

まず MAIN.PRG を起動してください。変換ツールはボタン、タッチスクリーン、マウスのいずれでも操作できます。

プチコン3号・BIGのプログラムを選ぶ

メインメニューから プログラムを変換する を選択します。すると、プチコン3号またはBIGのものと思われるプロジェクトの一覧が表示されるので、変換したいプログラムのあるプロジェクトを選んでください。プチコン3号またはBIGのプロジェクトかどうかは MAIN.PRG がないかどうかで判定しています。もしプロジェクトが表示されないときは その他のプロジェクト を選択するとすべてのプロジェクトの一覧が表示されるので、その一覧から選択してください。

次にファイルを選択します。ファイル一覧には TXT 形式のすべてのファイルが表示されるので、変換したいプログラムを選んでください。

ファイルを選ぶと、現在のプロジェクトで今すぐにテストするかどうか質問されます。テストとは、変換したプログラムを実際に確認することです。ここで はい を選択すると、プログラムを変換してすぐにテストを開始します。いいえ を選択したときはテストをせずに、変換したプログラムを保存します。ファイル選択に戻るには B ボタンを押してください。

プログラムを変換してテストする

ファイルを選択したあとの画面で はい を選択します。プログラムが変換され、すぐに実行されます。根本的な文法エラーの場合はエラーメッセージが出てファイル選択画面に戻ります。

テストを終わるには、コントローラの + ボタンを押すか、キーボードの F5 を押してください。または、プログラム内に終了メニューが用意されているときは、そこから終了しても構いません。

テストを終了するとツールに戻ります。オプションを変えてもう一度テストする際は はい を選択してください。いいえを選択すると、変換したプログラムを保存するかどうか尋ねられます。

注意点として、テストの際 LOAD はファイルのあるプロジェクトを参照しますが、SAVE は現在のプロジェクト以外の場所に保存することができません。サブプログラムとしてプチコンバータを起動している場合を除き、テストでは SAVE は無視されます。書き出したプログラムを元のプロジェクト ( 変換する前のファイルのあるプロジェクト ) で実行すれば保存できます。

変換したプログラムを保存する

変換したプログラムはファイルとして保存したり、クリップボードまたはプログラムスロットに書き出すことができます。保存するかどうか聞かれたら はい を選択してから、どこに書き出すか選んでください。

変換したプログラムを動作させるには PETITC.LIB というファイルが必要です。プチコンバータのプロジェクトからコピーする必要はありませんが、逆にプチコンバータのプロジェクトを削除してしまうと動作しなくなります。

また、変換したプログラムを元のプロジェクト以外で実行した際 SAVE は無視されます。

スクリーンショット・動画

公開キー

プチコン4用の公開キーです。トップメニューの「作品を見る」から公開キーを入力すると、作品をダウンロードできます。

プチコン4 公開キー
4NJA5X3WD

更新履歴

ver. 0.7.7 - 2020/01/11

  • FILES に文字列配列のみを指定した場合にエラーになる問題を修正。
  • SPDEF の修正。

ver. 0.7.6 - 2020/01/11

  • メインメニューに「サブプログラムとして起動」を追加。プチコンバータをサブプログラムとして起動します。スマイルツールに PETITC/MAIN.PRG が設定されているときのみ利用できます。
  • サブプログラムとして起動されている場合は、右上のバージョン表記の左に SUB と表示されるようになりました。

ver. 0.7.5 - 2020/01/11

  • 書き出しファイル名にプレフィックスを付加するように変更。
  • サブプログラムとして起動した場合は元のプロジェクトに保存するように変更。

ver. 0.7.4 - 2020/01/11

  • 画面回転オプションがエラーになる問題を修正。

ver. 0.7.3 - 2020/01/11

  • CALL BG がエラーになる問題を修正。
  • CALLIDX が番号を補正しない問題を修正。
  • SPPAGE 5SPPAGE 4 と同じ場所を参照する問題を修正。
  • BG チップ番号計算を修正。
  • XSCREEN 時に GCLS されないよう変更。

ver. 0.7.2 - 2020/01/10

  • PRINT に関する修正。
  • 変換オプション「New 3DS」「Wii U」「上画面のみ」「下画面のみ」を新たに追加。
    システム変数 HARDWARE の値を変更して New 3DS あるいは Wii U 用のプログラムを動作させたり、2画面モードの際にどちらか1画面のみを表示させることができます。

ver. 0.7.1 - 2020/01/10

  • PRINT に関する修正。
  • 下画面コンソール表示が著しく遅い問題を修正。
  • SPHITRC のスプライト番号が一部のケースで補正されない問題を修正。
  • CSRX CSRY が下画面でエラーになる問題を修正。
  • LINPUT のセミコロンが PRINT と同じように独自命令に変換され、エラーになる問題を修正。

ver. 0.7.0 - 2020/01/09

  • ツールのメニューをキーボードで操作可能に。
  • 境界色の指定がない GPAINT がエラーになる問題を修正。
  • 下画面コンソールをテキストスクリーンからスプライト実装に変更。
  • CSRZ を追加。
  • SPDEFOUT 引数が5つの場合に値を返さない問題を修正。
  • ファイル名をP3DEF.LIB から PETITC.LIB に変更しました。またツール本体は MAIN.PRG です。

ver. 0.6.6 - 2020/01/08

  • 10以上の引数が渡された SPANIM および BGANIM が無視される問題を修正。現時点で暫定的に32まで対応。

ver. 0.6.5 - 2020/01/08

  • MICSTART MICSTOP MICDATA MICSAVE MICPOS MICSIZE を実装。
  • 本来のプロジェクト以外で実行している際 LOAD などにプロジェクト名が含まれたパスを指定したときも二重に本来のプロジェクト名を付加してしまう問題を修正。

ver. 0.6.4 - 2020/01/08

  • CONTROLLER VIBRATE RGB 実装
  • BGSAVE の typo を修正
  • XSCREEN 6 の typo を修正
  • プロジェクト選択でワークスペースを選択しようとするとメインメニューに戻る問題を修正
  • DIALOG の特殊モードに対応
  • 識別子の直後にスペースを挟まず ? を記述するとエラーになる問題を修正
  1. CLS?

ver. 0.6.3 - 2020/01/07

  • USE でファイル名を指定できるように
  • SPHITSPSPHITRC の結果が -1 のときもスプライト番号を補正計算してしまう問題を修正
  • LOCATE の引数を省略したとき現在の位置を参照していない問題を修正

ver. 0.6.2 - 2020/01/07

  • メニューで「キャンセル」または B ボタンで戻ろうとした際に挙動がおかしくなることがある問題を修正 ( 急に「書き出しますか?」ダイアログが表示されるなど )
  • 書き出しの際、実際には文法エラーではないのに文法エラーが出て保存できない問題を修正

ver. 0.6.1 - 2020/01/07

  • EXEC で実行したプログラムが画面等の環境を初期化してしまう問題を修正。
  • VISIBLE を実装。
  • . がエラーになる問題を修正。
  • SPPAGEBGPAGE が機能していない

ver. 0.6.0 - 2020/01/07

  • ツールが新しくなりました。
  • 変換オプションを追加。画面の回転やアンチエイリアス設定を変更できます。
  • 文法エラーの際プログレスバーが止まったまま固まる問題を修正。
  • FILES の出力を修正。
  • OPTION STRICT 時に XONXOFF がエラーになる問題を修正。変換されたプログラムでは XONXOFF は削除されます。
  • OPTION TOOL がエラーになる問題を修正。変換後のプログラムでは削除されます。
  • EFCWET を実装。

ver. 0.5.4 - 2020/01/07

  • XSCREEN で2画面から1画面になる際に余計な内部スプライトが残っていた問題を修正。

ver. 0.5.3 - 2020/01/07

  • SPCHROUT 引数が5つの場合に値を返さない問題を修正。
  • INKEY$ RENAME DELETE CHKFILE を実装。

ver. 0.5.2 - 2020/01/06

  • サブプログラムとして起動した場合はどのプロジェクトにいてもテスト中に SAVE できるように変更。
  • 定数を DATA に記述するとエラーになる問題を修正。
  • 3号/BIG・4間でのスプライト番号補正に関する修正。
  • GLOADGSAVE での物理色変換に対応。
  • ツールのコメントに記述されていた誤ったバージョンを修正。

ver. 0.5.1 - 2020/01/06

  • スプラッシュスクリーンを追加。
  • ツールのメニューで B ボタンに相当するタッチ・マウスの操作を追加。
  • サブプログラムとして起動されたときに正しく動作するように修正。
  • SPCOL SPCOLVEC SPHITSP SPHITRC SPHITINFO を実装。

不具合情報

  • DATA 文での TRUE FALSE がエラーとなる。
  • VISIBLE が現在の画面に関係なく、2画面両方に適用されてしまう。
  • SPCLIP BGCLIP が何もしない。
  • GYROSYNC GYROA GYROV ACCEL を引数なしで呼び出すとエラーとなる。
  • COLOR の背景色が上画面で機能していない。
  • XON 3DSXON WIIU および XON COMPAT が機能していない。
  • BG を回転させるプログラムが正しく動作しない。

不具合報告

変換したプログラムが動作しなかったり、ツールやヘッダプログラム内に間違いがあったりした場合はこちらにお願いします。

下から最新のコメントとなります。

  • みうぃき : PC8001エミュを変換した際に、2つ問題点がありました。それらを対策したら、動き始めました。(1).3号と4号で、FILESの出力の仕様が違う(4号だと、"DAT:"などがつくが、3号だと " "か"*"がつく。先頭の1文字を捨ててファイル名を取り出していた処理を4文字捨てるように修正)。(2). XON の後ろの機能名がそのまま残り、未定義変数扱いになる(単純にコメントアウト)。 (2020/01/06 (月) 23:42:53)
  • うつりきまぐれ : ありがとうございます。ver. 0.5.5 で修正します。 (2020/01/07 (火) 08:14:40)
  • うつりきまぐれ : 0.6.0 として修正しました (2020/01/07 (火) 16:04:00)
  • みうぃき : P3DEF.PRG 4453行目、P3DISP_SET6SCREENMODE 5 となっていますが、TYPOで、おそらくはP3DISP_SETXSCREENMODE 6が正しい? (2020/01/07 (火) 23:27:59)
  • みうぃき : SAVEで、"GRP:xxx"でSAVEGしたい時に、すでに"DAT:xxx"というファイルが存在する場合、SAVEG "DAT:xxx" で保存しようとして、エラーになる。SAVEのときは、"GRP:"を"DAT:"に変えないようにするべきか。 (2020/01/08 (水) 00:15:33)
  • うつりきまぐれ : 0.6.4 で修正します。 (2020/01/08 (水) 15:13:25)
  • sou51 : Twitterの方でもリプ飛ばしましたが、GPAINT用の関数で引数3個のときも4個目を参照している箇所がありエラーとなります。0.6.6だと2189行目のBCOLOR32=DEFARG(3)という部分。多分この行削除で大丈夫だと思います (2020/01/09 (木) 10:35:11)
  • うつりきまぐれ : ありがとうございます、修正します。 (2020/01/09 (木) 10:48:55)
  • takumi : NaさんのNewリズミカルおもちつきSPを使ってみだですが……起動毎に大量のセーブを求められます。ファイル名はP3OUTPUT.PRGです。曲洗濯でも毎回出ます。改善方法はありますか (2020/01/09 (木) 17:55:14)
  • うつりきまぐれ : ありがとうございます、修正します。 (2020/01/09 (木) 18:53:54)
  • うつりきまぐれ : すみません、誤送信 (2020/01/09 (木) 18:54:31)
  • うつりきまぐれ : > takumi さん EXEC の時に毎回出ます。改善できないか考えてみます (2020/01/09 (木) 18:55:32)
  • Na : 曲選択でも毎回出るってことはPRGNAME$が取得できてないとか? (2020/01/09 (木) 21:34:25)
  • みうぃき : (1). DEF P3CON_UPDATECURSOR DISP 関数内で、5168行目のLOCATE がOut of range in 4:5168(LOCATE:2)で止まる。5167行目でのCURSORX, CURSORYの値は、41, 0 となっています。(2). LINPT "xxx"; 変数 の場合の ; が P3CON_SEMICOLON に変換されてしまっている。PETITC.LIBの225行目を、IF CODE4$"INPUT" || CODE4$"LINPUT" THEN にすれば、回避できそう。 (2020/01/09 (木) 22:20:24)
  • うつりきまぐれ : Twitter でも受けております、修正いたします。 (2020/01/09 (木) 22:37:29)
  • tskumi : >Naさん そうかもしれません。あと、お餅エディタはエラーを吐きます。エラー文は (2020/01/10 (金) 17:24:20)

コメント欄

コメントと要望はこちらにどうぞ。バグ報告はここではなくすぐ上にお願いします。

下から最新のコメントとなります。

  • サル : プチコンmarkIIも対応して欲しいです。 (2020/01/07 (火) 10:56:36)
  • Na : ↑プチコンmkII at 3号をプチコンバータで変換すればできそうです。ただmkIIat3号のプロジェクト内のファイルが多くてどれをコンバートすればいいかわからなくなるのでそのうち改善します (2020/01/07 (火) 15:33:53)
  • うつりきまぐれ : あとで試してみます。あと EXEC で実行するプログラムもコンバートされます (2020/01/07 (火) 22:27:35)
  • Na : E​X​E​Cで実行するプログラムもコンバートされる、というのはEXECをした瞬間そのスロットに入ってるプログラムをコンバートしはじめるってことですか? (2020/01/08 (水) 18:13:43)
  • Na : つまりEXECで実行するファイルはコンバートしておく必要がないってことですかね? (2020/01/08 (水) 18:14:41)
  • Na : あ、mkIIat3号の今のバージョンは中途半端にVERSIONで3号/4の判別をして処理しているところがあったりして不具合が起きると思います。できるだけはやくver3.0出すのでちょとお待ちください (2020/01/08 (水) 18:31:00)
  • takimi : 今度Musics Kingを変換しようと思うんですが…ほしけんさんの漢字ライブラリはさすがに無理なんでしょうか(まだやってないので全く分からない) (2020/01/08 (水) 23:22:00)
  • うつりきまぐれ : > Na さん はい。コンバートするのは最初のファイルだけでよいです。 (2020/01/09 (木) 10:47:25)
  • うつりきまぐれ : > takimi さん 漢字ライブラリは多分動くと思います。昨日動作確認したような気もするんですが覚えてないので、今日改めて動作確認します。 (2020/01/09 (木) 10:48:32)
  • tskumi : ありがとうございます。 (2020/01/09 (木) 16:25:10)
  • Na : ↑3 既にコンバートしたファイルをEXECしたらエラーですか? 1回EXECしてコンバートされたスロットをもう一回EXECしたらどうなるんでしょうか (2020/01/09 (木) 20:13:06)
  • Na : mkIIのやつをエミュレータからコンバータに作り替えようと思ってたんですが、...長くなるので続き (2020/01/09 (木) 20:16:32)
  • うつりきまぐれ : 既にコンバートしたファイルは判別されてそのまま実行してくれるはずです。 (2020/01/09 (木) 21:14:17)
  • Na : VERSIONやHARDWAREとかのシステム変数ってどうなってますか? (2020/01/09 (木) 21:43:35)
  • うつりきまぐれ : 現時点では VERSION=&H03060300 HARDWARE=0 固定になってます。そのうち変更できるようにします (2020/01/09 (木) 22:36:02)
  • うつりきまぐれ : ERR系とMP系以外のシステム変数はだいたい対応してたような気がします。 (2020/01/09 (木) 22:36:35)
  • Na : HARDWARE=0 固定よりもHARDWARE=1固定の方がいいのでは?(Old3DSで処理落ちを防止するためにHARDWARE=0の時だけ特別な処理をするプログラムがあるので) (2020/01/09 (木) 22:50:00)
  • Na : あとBIG専用プログラムがHARDWARE=2じゃないとENDする、みたいなこともあるかと (2020/01/09 (木) 22:51:27)
  • うつりきまぐれ : わかりました。変更できるようにします。 (2020/01/10 (金) 07:33:39)
  • takumi : プチコン通信の題材はこれにしようかな...(ネタ切れてる) (2020/01/11 (土) 14:58:21)

メニュー 【4】

過去シリーズWiki

ヘルプ

リンク

最近の更新

最近の人気ページ

オンライン情報

  • 現在同時に 3 人がこのサイトを見ています
  • このページはこれまでに 551 回、本日は 2 回、昨日は 6 回閲覧されました

ページの先頭に戻る

表示モード : [ スマホ・3DS対応表示 | クラシック表示 ]
PukiWiki 1.4.7 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL. Based on "PukiWiki" 1.3 by yu-ji
ページの処理時間 : 0.063 秒 | このページの最終更新 : 2020/01/17 (金) 21:30:31 (6d) | ログイン
Copyright(C) 2011-2019 プチコンまとめWiki