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
75
PythonのソースファイルをLLMで修正した話
kazueda
November 30, 2024
Tweet
Share
More Decks by kazueda
See All by kazueda
初代プレステでuCLinuxその2「rootfsが公開されました」
kazueda
0
9
初代プレステでuCLinuxその1 Linuxのinitで「Hello World」
kazueda
0
29
Raspberry pi 400をUSBキーボードとして使う
kazueda
0
80
「東海道らぐ」のブースで「USBガジェット三昧」の展示
kazueda
0
13
Raspberry Pi Pico WでRNDIS-Wifiブリッジ
kazueda
0
20
Raspberry pi pico2の亜種で Risc-V用Linux-nommuを起動する話
kazueda
1
100
M5Stackサーバーを使って初代プレイステーションでuClinuxのカーネルを起動
kazueda
0
47
ChatGPTを使ってWebmsx上でFuzix
kazueda
0
40
ChatGPTを使ってwebmsx上でFuzixその2
kazueda
0
30
Other Decks in Programming
See All in Programming
事業戦略を理解してソフトウェアを設計する
masuda220
PRO
2
130
人には人それぞれのサービス層がある
shimabox
3
460
SpringBootにおけるオブザーバビリティのなにか
irof
1
890
技術懸念に立ち向かい 法改正を穏便に乗り切った話
pop_cashew
0
780
「MCPを使ってる人」が より詳しくなるための解説
yamaguchidesu
0
600
コンポーネントライブラリで実現する、アクセシビリティの正しい実装パターン
schktjm
1
660
PT AI без купюр
v0lka
0
190
Parallel::Pipesの紹介
skaji
2
870
❄️ tmux-nixの実装を通して学ぶNixOSモジュール
momeemt
1
120
TypeScript を活かしてデザインシステム MCP を作る / #tskaigi_after_night
izumin5210
4
470
ワイがおすすめする新潟の食 / 20250530phpconf-niigata-eve
kasacchiful
0
190
JSAI2025 RecSysChallenge2024 優勝報告
unonao
1
380
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Product Roadmaps are Hard
iamctodd
PRO
53
11k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
How to Ace a Technical Interview
jacobian
276
23k
The Straight Up "How To Draw Better" Workshop
denniskardys
233
140k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
48
5.4k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Unsuck your backbone
ammeep
671
58k
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 今後の展開 おしまい