0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

kazuedaの活動記録2024Advent Calendar 2024

Day 23

ファイル転送プログラムsioload.pyをLLMを使ってunirom8対応にする

Last updated at Posted at 2024-12-22

はじめに

 初代プレステのシリアルポート経由でプログラムを転送する場合、プレステ上のunirom8とwindows上のnos.exeを組み合わせて用いるのが一般的です。
 MacOSやLinux上では、monoを使ってnops.exeを動かすようです。

 ファイル転送元をMCU搭載の小さなボードにしたい場合、windowsの実行ファイルよりはpythonプログラムの方が適しています。
 しかし、転送プログラムのsioload.pyやpypsxserial.pyとunirom8の組み合わせでは、ファイル転送できません。
 本稿では、sioload.pyを修正してunirom8との間でのファイル転送を実現した話を紹介します。
 本稿の内容には、「東海道らぐの万鹿博覧会ライトニングトーク大会 in 大阪南港」と「Unagi.py 勉強会61枚目 (Python勉強会in浜松市)」の発表内容が含まれます。

sioload.py

 sioload.pyは「sioloader v1.0」に含まれているpythonプログラムで、SIOLOAD.EXEの起動しているプレステにファイル転送する機能をもっています。SIOLOAD.EXEに対しては1036.8 kbpsの転送速度で、PSXSEIAL.EXEやUNIROM.EXEに対しては、115.2 kbpsの転送速度でデータを送ることが可能です。

転送実験とsioload.pyの修正

 Unirom8の起動しているプレステに対して、sioload.pyを使ってファイル転送を試みます。
 ファイル転送が始まると、プレステの画面に「DOWNLOADING.EXE…」が表示されますが、sioload.pyから転送した場合、画面表示も変わりません。nops.exeでは、「SEXE」 という文字列を送ることで、unirom8側がファイル受信状態になります。
 sioserial.pyを「SEXE」を送ってからファイル転送する用修正したプログラムで転送を行いました。
「DOWNLOADING.EXE…」が表示されましたが、「CHECKSUM ERROR」が表示されます。
image.png

DOWNLOADING .EXE…

CHECKSUM ERROR: CHECK YOUR CABLES!
EXPECTED: 0 CALCED: 1A3570

 LLMを利用して、チェックサムエラーの修正を試みますが、通り一遍のチェックサムエラーの回避法しか提案してくれません。unirom8のソースファイルは公開されていません。
 解決法が見つからないのでDISCORDのPSXDEVで相談したところ、nops.exeのソースファイルを参照するようにアドバイスを受けました。
 githubのリポジトリを見ると、「TransferLogic.cs」に転送の段取りが記載されているようですので、LLMにファイルをアップロードして解説してもらいました。
 2番目に、修正したい「sioload.py」をアップロードして、 「TransferLogic.cs」の転送の段取りを追加させるよう、LLMに指示しました。
 生成された修正後の「sioload.py」の動作を確認しました。以下は、windowsのコマンドプロンプトです。
image.png

以下は、プレステの画面です。
image.png

 ファイル転送に成功し転送したプログラムが動作しましたが、エラーが出ています。
 エラーメッセージをLLMに伝えて、プログラムを修正させました。
image.png

 エラーがでなくなりました。

おわりに

 LLMを使ってプレステ用のファイル転送pythonプログラムのsioload.pyを修正しました。
 LLMを使ってプログラムを修正する場合、参照するプログラムの提示後の解説をさせることにより、精度よく修正ができるようです。プログラムが表示するエラーメッセージを伝えることも、精度良く修正する際に重要だとわかりました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?