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

アバター
こういち ◆ou0jbJnEJ0Kb
2025/5/31 0:02
情報交換
MkUのQRコード作成ツールを作る
テキストファイルから直接MkU用のQRコード作れたら便利だと思ったので、いつか作りたい。

言語はとりあえずのC言語です。
zopflipngはC++っぽいですけど、Cから呼び出せそうなので、なるべくCで頑張る。(というか、zopflipngが非圧縮のデータを圧縮する想定で作られてなさそう?)

zopflipngみたいな感じで
(コマンド名) 入力ファイル名 出力ファイル名
みたいな感じで使うような想定です。

出力形式はpng

あぁ、今2DSが壊れてて起動しないので検証は出来ないです。
検証できる人が居たら助かります。

あと欲しい機能とかあったら検討します。

コメント

アバター
こういち 2025/5/31 0:03 ◆ou0jbJnEJ0Kb
コマンドの仕様置き場

コマンド名はpetit2qrとかにしときます。

--time QRコードの倍率。(1ドット何ピクセルか) デフォルトで5
-q 速度重視のオプション
-m サイズ重視のオプション
-r 訂正レベル(デフォルト:L)
-v QRコードバージョン(デフォルト:20)

そんなオプション盛り盛りにしなくて良いのかな…と思います。
アバター
こういち 2025/5/31 0:04 ◆ou0jbJnEJ0Kb
解決すべき課題

・MkUのファイルやQRコードのフォーマット
・zopfliの使い方理解
・QRコード全般(誤り訂正レベルってどのくらいにすれば良いんだろう…そしてQRコードのバージョンってどのぐらいなんだろう…)
アバター
こういち 2025/5/31 0:13 ◆ou0jbJnEJ0Kb
MkUのファイルやQRコードの仕様
http://wiki.hosiken.jp/petc/html/Mame/PTCFileSystem.html

zopfliの使い方
https://qiita.com/komiya_atsushi/items/ad594fd35d19e6a239d5

ガロア体
http://petitverse.hosiken.jp/community/petitcom/topic/?read=1881&ukey=0

とりあえず、PRG(MkU)をQR化することを目標にする。
アバター
おつけもの 2025/5/31 2:55 ◆WmpvEwDiedDb
>検証
難しい話は分かりませんが、作ったQRコードを読み込むだけとかならできますよ。
アバター
あまさとしおん 2025/5/31 17:50 ◆mzDKTVUAtwqE
←読み込みテストならできる人その2
訂正レベルは公式QR生成ツールだと最低を避けてMにしてた(うろ覚え)はずですが、非公式には詰め込み重視でLで出力するものがあり、普通に読み込めます。
バージョンは20が公式なようです(https://smileboom.com/special/ptcm2/co_contest/image/qr-petitrunmk2.png など大喜利作品のやつを解析して真似すれば一番無難です)
こちらも非公式ツールだとルーズです
アバター
こういち 2025/6/2 23:28 ◆ou0jbJnEJ0Kb
読み込みテスト助かります。
誤り訂正レベルとバージョンの情報もありがとうございます。

とりあえず、訂正レベルL,バージョン20をデフォルトにしようと思います。

あとQRコードは凄く助かります。
ファイル名と枚数の少なさからしておちゃめさんのやつかな。2枚なの丁度良いです
これか。
https://smileboom.com/special/ptcm2/co_contest/1st.php

読んでみます。
アバター
こういち 2025/6/2 23:29 ◆ou0jbJnEJ0Kb
形式情報
10000001 10011100

10101000 00100100
と加算する(ガロア体上での加算)

0010 1001 1011 1000
で、必要なのは最初5ビット
2ビットは訂正レベル。3ビットはマスク
誤り訂正レベルはM
マスクは
0==(i*j)mod 2+(i*j)mod 3
(整数環上での演算)

こういう花柄模様
こっちの方が分かりやすいかも
https://qiita.com/santarou6/items/f254f9fa5ea32d83ae27
アバター
こういち 2025/6/3 21:58 ◆ou0jbJnEJ0Kb
そんなわけで、マスクを外したものがこちらになります。
(情報を送るので当然ではあるんですけど、QRコードって色数のわりにファイルサイズ大きいですね)

なんか読めないと思ったけど、どうも大きなQRコードはコードブロックの分割?なるものが必要らしい。
https://www.swetake.com/qrcode/qr9.html

どういう風に分割するかは仕様書(有料)読まないといけないのかな?
あとはQRコード生成ツールのコード読んで把握するか。

とりあえず、モードだけは読めるので読む
0100 (8ビットバイトモード)
それはそう。
アバター
こういち 2025/6/3 22:01 ◆ou0jbJnEJ0Kb
あと、よく考えたらMD5も必要ですね。
MD5程度なら直に書いた方が早いか。

まちゃラテさんのQR古寺読んでみたところ、バージョン20の訂正レベルMだと16個に分割されるらしい。

コメントを書く

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

- WEB PATIO -