コミュニティアイコン プチコン 非公式コミュニティ トピック

アバター
こういち ◆.Id/aHiU36hu
2022/4/26 18:25
質問
3号/BIGと4の判定
3号でもBIGでも4でも動くような簡単なプログラムがあったとして、そのプログラムが動作してる環境が4かどうかの判別って出来ますかね?(もちろん判別するサブルーチンの類いも簡単である必要がある)

出来たら4で実行されたときだけメタデータを変更するプログラムを走らせたり、4かどうかで実行するプログラムを変えたり出来そうだな…と。

コメント

アバター
こういち 2022/4/26 18:34 ◆.Id/aHiU36hu
先人の知恵としては、おちゃめさんが処理速度の差を利用して旧3DSかNew3DSかを判定するサブルーチンを公開してますね。
http://ochameclub.web.fc2.com/petitcom3/about.htm

BIGと4ってどっちが速かったっけ…
それ以前に時間計るシステム変数って4と互換性あるっけ…


似たような例としては、グラフィックをGSPOITで取得して、海外版かどうかを判別するってのも聞いたことがあります。

あとは、しんいちさんがCHKCHRで色々な情報を取得してた気がします。

…プチコン4になってからその辺の状態を取得するサブルーチンが一新されたの痛すぎる…(命名規則が統一されたのは嬉しいけど)
アバター
こういち 2022/4/26 18:41 ◆.Id/aHiU36hu
調べたら、HARDWAREは4にも存在するらしいですね。ただし、定数なので3号のそれとは互換性が無さそう。

定数自体は3号にも存在するので、4と3号で同じ名前だけど値が違うような定数が存在すれば楽なんですよね(しかも最速)。例えば、色コードなんかは32ビットカラーになって変わったとかあり得そう。
アバター
こういち 2022/4/26 18:57 ◆.Id/aHiU36hu
…確かに値は違いました。
ただ、なんか接頭辞が付いてました。
なんか判定させないというスマブの強い意思を感じる(気のせい)

気を取り直して、他の案。
おちゃめさんはSUFFIXというサブルーチンを公開しています。
効果は「変数の型を調べる」というもの。
この効果自体はTYPEOFと変わらないですが、3号と4は型に関する仕様が大きく違います。
3号では型を接尾辞で明示して、一度型を決定してしまえば変化しません。(文字列、配列を除く)
それに対して4では右辺によって型が自動的に決定され、別の型が代入されれば変数の型ごと変化します。
これを上手く使えば…
http://ochameclub.web.fc2.com/petitcom3/lecture/var.htm#6
アバター
Na 2022/4/26 20:35 ◆QoELVrBXBQCI
プチコン4持ってないので以下のいずれも実際に試したことはありませんが...

プチコン4にシステム変数VERSIONはないので、
IF VERSION==0 THEN プチコン4
(ただしOPTION STRICTの前に限る)
VERSIONなら初代とmkIIも判別できます

MMLの仕様の違いを利用して
IF CHKMML("|C|")==-1 THEN プチコン4

3号BIGにしかないファイルを確認する
(逆にプチコン4にしかないファイルとかでもok?)
IF CHKFILE("SYS/GAME1DOTRC")==0 THEN プチコン4
アバター
こういち 2022/4/27 6:32 ◆.Id/aHiU36hu
Naさん
おぉ、結構ありますね。さすが。
versionとかsuffixより速そう。
アバター
SatoshiMcCloud 2022/4/27 11:27 ◆Z1qfV11i63Jr
これも試してないんで確実か分かりませんが、
#CHKUVは3号では&H04、4では64を返すらしいので、これでなんとか判別できないでしょうか
アバター
SatoshiMcCloud 2022/4/27 11:35 ◆Z1qfV11i63Jr
3号のマニュアル
ほうほう、#CHKRは&H16を返す…十進法に直すと22だな!
アバター
さすらいの名無し 2022/4/27 12:03 ◆LWMA5UzCJb3e
CHKCALL("FONTDEF")とか?
DEFで定義してたら駄目だけど
アバター
あまさとしおん 2022/4/28 23:37 ◆mzDKTVUAtwqE
色の定数リテラルは...と試したら
3号と4で名前が違うからダメという罠
アバター
あまさとしおん 2022/4/28 23:42 ◆mzDKTVUAtwqE
先に出てたCHK系列リテラルの3号での値
アバター
こういち 2022/4/29 20:32 ◆.Id/aHiU36hu
SatoshiMcCloudさん
CHKUV。使ったことないですね。知らなかった(そもそも定数リテラルをあまり使わないタイプ。特に理由とかはない)

さすらいの名無しさん
え、FONTDEFって4で解雇されたんですか?ならどうやってフォント変更するんだろう…(美咲フォントが万能すぎて基本変更する必要はないんだけど、K文字とかリパーシェとか幻字とか表示するときは変えられないと困る)

あまさとしおんさん
命名規則が統一されたのはありがたいですけど、こういう特殊な場面でなくてもトラップ牧場ですよね。ハードが大きく変わったので仕方ないですけど。
アバター
こういち 2022/5/3 16:39 ◆.Id/aHiU36hu
CHKMML("あ")

コメントを書く

  • こちらは「プチコン3号」「プチコンBIG」など、プチコンシリーズに関する話題を扱ったコミュニティです
  • プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
  • こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
  • ユーザー登録なしで書き込みができます
  • 秘密の合い言葉は成りすましの防止 (トリップ機能)、書き込みの編集時の本人認証に使用します
  • 秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
  • 書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります

- WEB PATIO -