Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
PythonのソースファイルをLLMで修正した話
Search
kazueda
November 30, 2024
Programming
0
87
PythonのソースファイルをLLMで修正した話
kazueda
November 30, 2024
Tweet
Share
More Decks by kazueda
See All by kazueda
初代プレステでuCLinuxその2「rootfsが公開されました」
kazueda
0
17
初代プレステでuCLinuxその1 Linuxのinitで「Hello World」
kazueda
0
36
Raspberry pi 400をUSBキーボードとして使う
kazueda
0
150
「東海道らぐ」のブースで「USBガジェット三昧」の展示
kazueda
0
13
Raspberry Pi Pico WでRNDIS-Wifiブリッジ
kazueda
0
27
Raspberry pi pico2の亜種で Risc-V用Linux-nommuを起動する話
kazueda
1
160
M5Stackサーバーを使って初代プレイステーションでuClinuxのカーネルを起動
kazueda
0
64
ChatGPTを使ってWebmsx上でFuzix
kazueda
0
54
ChatGPTを使ってwebmsx上でFuzixその2
kazueda
0
45
Other Decks in Programming
See All in Programming
AI Coding Agentのセキュリティリスク:PRの自己承認とメルカリの対策
s3h
0
200
Ruby Parser progress report 2025
yui_knk
1
430
奥深くて厄介な「改行」と仲良くなる20分
oguemon
1
510
基礎から学ぶ大画面対応(Learning Large-Screen Support from the Ground Up)
tomoya0x00
0
410
ProxyによるWindow間RPC機構の構築
syumai
3
1.1k
Improving my own Ruby thereafter
sisshiki1969
1
160
旅行プランAIエージェント開発の裏側
ippo012
2
890
時間軸から考えるTerraformを使う理由と留意点
fufuhu
15
4.6k
テストコードはもう書かない:JetBrains AI Assistantに委ねる非同期処理のテスト自動設計・生成
makun
0
250
ぬるぬる動かせ! Riveでアニメーション実装🐾
kno3a87
1
210
1から理解するWeb Push
dora1998
7
1.8k
Amazon RDS 向けに提供されている MCP Server と仕組みを調べてみた/jawsug-okayama-2025-aurora-mcp
takahashiikki
1
110
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
431
66k
Faster Mobile Websites
deanohume
309
31k
Side Projects
sachag
455
43k
Balancing Empowerment & Direction
lara
3
620
Thoughts on Productivity
jonyablonski
70
4.8k
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.8k
How GitHub (no longer) Works
holman
315
140k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
61k
A Tale of Four Properties
chriscoyier
160
23k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
520
It's Worth the Effort
3n
187
28k
Transcript
PythonのソースファイルをLLMで 修正した話 Unagi.py 勉強会61枚目 2024. 11. 30 か ず え
だ kazueda 1
kazueda(かずえだ)の紹介 • 大阪出身、丙午、おとめ座、O型 • 科学者(化学) • 2003年4月から浜松で、働き始める • 自転車での移動が生活の足 •
趣味は「ラジオを聴くこと」、「アメ リカのコミックの邦訳を読むこと」 @kazueda 2 slideshare speaker deck https://qiita.com/kazueda
PlayStation(プレイステーション、略称: PS, PS1) • ソニー・コンピュータエンタテインメント(略: SCE)が 1994年12月3日に発売した家庭用ゲーム機 • CPU:MIPS R3000A
ベース • 32ビット RISCプロセッサ (R3051) • メインメモリ: 2 MB EDO DRAM 3 https://ja.wikipedia.org/wiki/PlayStation_(%E3%82%B2%E3%83%BC%E3%83%A0%E6%A9%9F) 30歳おめでとう!
RUnix on PlayStation 1 • MIPS-NOMMUなので、uClinux 2.4.x kernel • RS232
SIO経由のシリアルコンソール • プレイステーションのGPU経由の仮想コンソール • 保存メディアとしてマルチプルメモリーカード • SL811を使って、USBキーボードやマウスを接続 • 上記の環境が構築されるらしい。。。 4 https://en.wikipedia.org/wiki/PSXLinux ルートファイルシステムの情報が消失!!
まずは完成形 5 • 初代プレステ側 ではunirom8と いうユーティリ ティを起動 • M5StackBasicか ら自作プログラ
ムを転送 • M5StackBasicの プログラムは Arduino IDEで作 成
プレステ側はunirom8 • FreePSXBootのメモリカードイメージに内包。 • 主な用途 1. メモリカードの操作 2. CD内のファイル操作 3.
メモリカードを使ってROMのバックアップやリストア 4. 自作ソフトをメモリカードから起動 5. シリアルポートを使ったファイルの送受信 6 https://github.com/JonathanDotCel/unirom8_bootdisc_and_firmware_for_ps1
Windows側 • sioload.py (pythonプログラム) • pypsxserial.py(pythonプログラム) • 使用した理由:小さなLinuxボードやMCUボードで使いた い 7
初代プレステへのファイル転送 1. プレステ側では、FreePSXBootを使ってメモリーカードか らプレステ用ユーティリティプログラムを起動 2. パソコン側では、転送プログラムを使って、シリアル ポート経由でプレステで実行可能な自作プログラムを転 送<-既存のpythonプログラムではファイル転送が行わ れない 3.
プレステ側でプログラムの受信が終わると、再起動後に 自作プログラムが動作 8
プレステ側はunirom8 • FreePSXBootのメモリカードイメージに内包。 • 主な用途 1. メモリカードの操作 2. CD内のファイル操作 3.
メモリカードを使ってROMのバックアップやリストア 4. 自作ソフトをメモリカードから起動 5. シリアルポートを使ったファイルの送受信 9 https://github.com/JonathanDotCel/unirom8_bootdisc_and_firmware_for_ps1 ソースファイルが 公開されていないので、転 送の段取りがわからない!
DISCORDのPSXDEVで質問 10
Windows側 • sioload.py (pythonプログラム)<-転送失敗 • pypsxserial.py(pythonプログラム) <-転送失敗 • nops.exe(windows実行ファイル) <-転送成功!ソースファイル有
• 「TransferLogic.cs」に転送の段取りが記載 11 https://github.com/JonathanDotCel/NOTPSXSerial
LLMでの修正の段取り 1. 「TransferLogic.cs」をアップロードして、詳細な説明をさせ る 2. 修正したい「sioload.py」をアップロードして、 「TransferLogic.cs」の転送の段取りを追加させる 3. 修正後の「sioload.py」の動作を確認 4.
エラーメッセージや不具合を明記して修正させる 5. 項目3と項目4を完成するまで繰り返す(今回は2周で完成) 12
まとめ • LLMを利用して、windows用のC言語のソースを参考に、 pythonプログラムの改良に成功 • さらに、pythonプログラムからArduino IDEのCPPプログラ ムへの移植も成功 • メモリカード上のルートファイルシステムの作り方をLLM
を利用してpythonプログラムで確立。 13 今後の展開 おしまい