Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
PythonのソースファイルをLLMで修正した話
Search
kazueda
November 30, 2024
Programming
140
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
PythonのソースファイルをLLMで修正した話
kazueda
November 30, 2024
More Decks by kazueda
See All by kazueda
16ビットCPU用FUZIXを実機で動かす「X68000でrootfsマウント編」
kazueda
1
19
16ビットCPU用FUZIXを実機で動かす USBキーボード接続編
kazueda
0
31
16ビットCPU用FUZIXを実機で動かす キー入力編
kazueda
0
33
初代プレステでuCLinuxその2「rootfsが公開されました」
kazueda
0
71
初代プレステでuCLinuxその1 Linuxのinitで「Hello World」
kazueda
0
110
Raspberry pi 400をUSBキーボードとして使う
kazueda
0
490
「東海道らぐ」のブースで「USBガジェット三昧」の展示
kazueda
0
59
Raspberry Pi Pico WでRNDIS-Wifiブリッジ
kazueda
0
140
Raspberry pi pico2の亜種で Risc-V用Linux-nommuを起動する話
kazueda
1
660
Other Decks in Programming
See All in Programming
モバイル交通系ICへのチャージ実例から考える、クロスプラットフォーム開発におけるiOS実機テスト設計とCI運用
yusuga
1
520
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
250
モジュールの視点からSwiftを読み解く #iosdc
s_shimotori
0
180
一人だけ、Kiroが静止する日
hideg
0
120
技術的負債を組織課題として解く-増えすぎたマイクロサービスとの戦い-
reimaru
1
2k
更なる可用性を求めて、5年間運用したKotlinのアプリケーションをGoでリプレイスする話
ken_tunc
0
300
速習iPhone Duo対応
yuukiw00w
1
660
The Rails Doctrine Decade
koic
2
170
SREの越境 / SRE Collaboration
y0hgi
2
260
『寄り添うラジオ』をAIで作る 体験価値から逆算した、会話しないUXと品質設計
theoriatec2024
3
180
Go × SIMDで高速化するベクトル検索 ~ルーフラインモデルでSIMDが効く境界を探れ! ~
po3rin
1
2.1k
JPUG勉強会 OSSデータベースの内部構造を理解しよう(第2回)
oga5
0
260
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
55
10k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
200
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
2.9k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
420
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
How to make the Groovebox
asonas
2
2.4k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
Paper Plane
katiecoart
PRO
4
53k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
440
Deep Space Network (abreviated)
tonyrice
0
310
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
340
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 今後の展開 おしまい