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
51
PythonのソースファイルをLLMで修正した話
kazueda
November 30, 2024
Tweet
Share
More Decks by kazueda
See All by kazueda
Raspberry pi 400をUSBキーボードとして使う
kazueda
0
13
「東海道らぐ」のブースで「USBガジェット三昧」の展示
kazueda
0
2
Raspberry Pi Pico WでRNDIS-Wifiブリッジ
kazueda
0
1
Raspberry pi pico2の亜種で Risc-V用Linux-nommuを起動する話
kazueda
1
32
M5Stackサーバーを使って初代プレイステーションでuClinuxのカーネルを起動
kazueda
0
38
ChatGPTを使ってWebmsx上でFuzix
kazueda
0
16
ChatGPTを使ってwebmsx上でFuzixその2
kazueda
0
14
GUDドライバを使ったサブディスプレイその2
kazueda
1
100
Buildrootでsftpサーバーをビルド
kazueda
1
140
Other Decks in Programming
See All in Programming
PHPで作るWebSocketサーバー ~リアクティブなアプリケーションを知るために~ / WebSocket Server in PHP - To know reactive applications
seike460
PRO
2
700
オニオンアーキテクチャを使って、 Unityと.NETでコードを共有する
soi013
0
320
Amazon S3 NYJavaSIG 2024-12-12
sullis
0
130
良いユニットテストを書こう
mototakatsu
11
3.4k
Внедряем бюджетирование, или Как сделать хорошо?
lamodatech
0
790
return文におけるstd::moveについて
onihusube
1
1.3k
非ブラウザランタイムとWeb標準 / Non-Browser Runtimes and Web Standards
petamoriken
0
390
ドメインイベント増えすぎ問題
h0r15h0
2
500
採用事例の少ないSvelteを選んだ理由と それを正解にするためにやっていること
oekazuma
2
1.1k
Monixと常駐プログラムの勘どころ / Scalaわいわい勉強会 #4
stoneream
0
310
rails statsで大解剖 🔍 “B/43流” のRailsの育て方を歴史とともに振り返ります
shoheimitani
2
1k
EC2からECSへ 念願のコンテナ移行と巨大レガシーPHPアプリケーションの再構築
sumiyae
2
510
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.2k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.5k
Visualization
eitanlees
146
15k
Adopting Sorbet at Scale
ufuk
74
9.1k
Rails Girls Zürich Keynote
gr2m
94
13k
Agile that works and the tools we love
rasmusluckow
328
21k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
A designer walks into a library…
pauljervisheath
205
24k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Learning to Love Humans: Emotional Interface Design
aarron
274
40k
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 今後の展開 おしまい