Enviar pesquisa
Carregar
ゼロから始めるファミコンエミュレータ生活 PHPerKaigi2019
•
3 gostaram
•
7,098 visualizações
ichikaway
Seguir
PHPerKaigi2019の発表資料。ファミコンエミュレータの実装を通して好きな言語でコンピュータアーキテクチャが学べる話
Leia menos
Leia mais
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 34
Baixar agora
Baixar para ler offline
Recomendados
Asus WL500gP USB Serial
Asus WL500gP USB Serial
guestac21b8
NetBSDworkshop
NetBSDworkshop
Jun Ebihara
NetBSD workshop
NetBSD workshop
Jun Ebihara
Project1
Project1
Surya Bheri
Picobgp - A simple deamon for routing advertising
Picobgp - A simple deamon for routing advertising
Claudio Mignanti
1. openvpn simple
1. openvpn simple
khanh02l1
ROCm with dGPU(AMD GPU) (memo)
ROCm with dGPU(AMD GPU) (memo)
Naoto MATSUMOTO
ROCm with dGPU(AMD GPU) using pyopencl (memo)
ROCm with dGPU(AMD GPU) using pyopencl (memo)
Naoto MATSUMOTO
Mais conteúdo relacionado
Mais procurados
Zookeper
Zookeper
AlexeyStepanov21
linux_distro
linux_distro
Thipphachan Maniphousai
Programming OpenRISC on Altera De0_nano
Programming OpenRISC on Altera De0_nano
Yi-Chiao
망고100 보드로 놀아보자 10
망고100 보드로 놀아보자 10
종인 전
Swift on raspberry pi
Swift on raspberry pi
iCHEF
HP-UX 11iv3 How to Change Root Volume Group Name vg00 by Dusan Baljevic
HP-UX 11iv3 How to Change Root Volume Group Name vg00 by Dusan Baljevic
Circling Cycle
Clear cache memory
Clear cache memory
Abdullah Al Muzammi
Simple Sheet for resource calculation of openstack compute node
Simple Sheet for resource calculation of openstack compute node
Asmaa Ibrahim
Kako napraviti Google od zgrade sa računalima?
Kako napraviti Google od zgrade sa računalima?
Dobrica Pavlinušić
3 manual installation of open vpn
3 manual installation of open vpn
Ashwajit Maske
Spesifikasi server
Spesifikasi server
Julio Mukhlishin
Nvvp streams-3
Nvvp streams-3
Josh Wyatt
Gerenciando múltiplas versões do PostgreSQL com pgvm
Gerenciando múltiplas versões do PostgreSQL com pgvm
Dickson S. Guedes
4.4. Hashcracking server on generic hardware
4.4. Hashcracking server on generic hardware
defconmoscow
Ssh2 install
Ssh2 install
GGclub
Creación de máquinas virtuales basada en kernel usando qemu y virsh
Creación de máquinas virtuales basada en kernel usando qemu y virsh
Jonathan Franchesco Torres Baca
От sysV к systemd
От sysV к systemd
Denis Kovalev
Video game console specs 2
Video game console specs 2
gks1996
Fun with Raspberry PI (and Perl)
Fun with Raspberry PI (and Perl)
Andrew Shitov
Install Cuckoo on Mac OS X
Install Cuckoo on Mac OS X
Mohd Khairulazam
Mais procurados
(20)
Zookeper
Zookeper
linux_distro
linux_distro
Programming OpenRISC on Altera De0_nano
Programming OpenRISC on Altera De0_nano
망고100 보드로 놀아보자 10
망고100 보드로 놀아보자 10
Swift on raspberry pi
Swift on raspberry pi
HP-UX 11iv3 How to Change Root Volume Group Name vg00 by Dusan Baljevic
HP-UX 11iv3 How to Change Root Volume Group Name vg00 by Dusan Baljevic
Clear cache memory
Clear cache memory
Simple Sheet for resource calculation of openstack compute node
Simple Sheet for resource calculation of openstack compute node
Kako napraviti Google od zgrade sa računalima?
Kako napraviti Google od zgrade sa računalima?
3 manual installation of open vpn
3 manual installation of open vpn
Spesifikasi server
Spesifikasi server
Nvvp streams-3
Nvvp streams-3
Gerenciando múltiplas versões do PostgreSQL com pgvm
Gerenciando múltiplas versões do PostgreSQL com pgvm
4.4. Hashcracking server on generic hardware
4.4. Hashcracking server on generic hardware
Ssh2 install
Ssh2 install
Creación de máquinas virtuales basada en kernel usando qemu y virsh
Creación de máquinas virtuales basada en kernel usando qemu y virsh
От sysV к systemd
От sysV к systemd
Video game console specs 2
Video game console specs 2
Fun with Raspberry PI (and Perl)
Fun with Raspberry PI (and Perl)
Install Cuckoo on Mac OS X
Install Cuckoo on Mac OS X
Semelhante a ゼロから始めるファミコンエミュレータ生活 PHPerKaigi2019
Hello, Worldまで3ヶ月 Golangでファミコンエミュレータ実装 #gocon fukuoka 2019
Hello, Worldまで3ヶ月 Golangでファミコンエミュレータ実装 #gocon fukuoka 2019
ichikaway
R&D work on pre exascale HPC systems
R&D work on pre exascale HPC systems
Joshua Mora
Introduction to Docker (as presented at December 2013 Global Hackathon)
Introduction to Docker (as presented at December 2013 Global Hackathon)
Jérôme Petazzoni
Product Roadmap iEi 2017
Product Roadmap iEi 2017
Andrei Teleanu
Understanding Computer Architecture with NES Emulator
Understanding Computer Architecture with NES Emulator
ichikaway
Optimizing Servers for High-Throughput and Low-Latency at Dropbox
Optimizing Servers for High-Throughput and Low-Latency at Dropbox
ScyllaDB
High Performance Scaling Techniques in Golang Using Go Assembly
High Performance Scaling Techniques in Golang Using Go Assembly
Minio
Varnish http accelerator
Varnish http accelerator
no no
Bringing up Android on your favorite X86 Workstation or VM (AnDevCon Boston, ...
Bringing up Android on your favorite X86 Workstation or VM (AnDevCon Boston, ...
Ron Munitz
Linux memory-management-kamal
Linux memory-management-kamal
Kamal Maiti
Open Source Data Deduplication
Open Source Data Deduplication
RedWireServices
Build Gaming PC Presentation
Build Gaming PC Presentation
Rith Jo
Docker and Containers for Development and Deployment — SCALE12X
Docker and Containers for Development and Deployment — SCALE12X
Jérôme Petazzoni
No one puts java in the container
No one puts java in the container
kensipe
Docker Introduction + what is new in 0.9
Docker Introduction + what is new in 0.9
Jérôme Petazzoni
Docker Introduction, and what's new in 0.9 — Docker Palo Alto at RelateIQ
Docker Introduction, and what's new in 0.9 — Docker Palo Alto at RelateIQ
Jérôme Petazzoni
Kvm performance optimization for ubuntu
Kvm performance optimization for ubuntu
Sim Janghoon
Why use JavaScript in Hardware? GoTo Conf - Berlin
Why use JavaScript in Hardware? GoTo Conf - Berlin
TechnicalMachine
UNIT 2 P1
UNIT 2 P1
OriginalGSM
Speedrunning the Open Street Map osm2pgsql Loader
Speedrunning the Open Street Map osm2pgsql Loader
GregSmith458515
Semelhante a ゼロから始めるファミコンエミュレータ生活 PHPerKaigi2019
(20)
Hello, Worldまで3ヶ月 Golangでファミコンエミュレータ実装 #gocon fukuoka 2019
Hello, Worldまで3ヶ月 Golangでファミコンエミュレータ実装 #gocon fukuoka 2019
R&D work on pre exascale HPC systems
R&D work on pre exascale HPC systems
Introduction to Docker (as presented at December 2013 Global Hackathon)
Introduction to Docker (as presented at December 2013 Global Hackathon)
Product Roadmap iEi 2017
Product Roadmap iEi 2017
Understanding Computer Architecture with NES Emulator
Understanding Computer Architecture with NES Emulator
Optimizing Servers for High-Throughput and Low-Latency at Dropbox
Optimizing Servers for High-Throughput and Low-Latency at Dropbox
High Performance Scaling Techniques in Golang Using Go Assembly
High Performance Scaling Techniques in Golang Using Go Assembly
Varnish http accelerator
Varnish http accelerator
Bringing up Android on your favorite X86 Workstation or VM (AnDevCon Boston, ...
Bringing up Android on your favorite X86 Workstation or VM (AnDevCon Boston, ...
Linux memory-management-kamal
Linux memory-management-kamal
Open Source Data Deduplication
Open Source Data Deduplication
Build Gaming PC Presentation
Build Gaming PC Presentation
Docker and Containers for Development and Deployment — SCALE12X
Docker and Containers for Development and Deployment — SCALE12X
No one puts java in the container
No one puts java in the container
Docker Introduction + what is new in 0.9
Docker Introduction + what is new in 0.9
Docker Introduction, and what's new in 0.9 — Docker Palo Alto at RelateIQ
Docker Introduction, and what's new in 0.9 — Docker Palo Alto at RelateIQ
Kvm performance optimization for ubuntu
Kvm performance optimization for ubuntu
Why use JavaScript in Hardware? GoTo Conf - Berlin
Why use JavaScript in Hardware? GoTo Conf - Berlin
UNIT 2 P1
UNIT 2 P1
Speedrunning the Open Street Map osm2pgsql Loader
Speedrunning the Open Street Map osm2pgsql Loader
Mais de ichikaway
forteeに脆弱性検査をかけてみた VAddy編
forteeに脆弱性検査をかけてみた VAddy編
ichikaway
VAddyの課金システムを Stripeに乗り換えた話
VAddyの課金システムを Stripeに乗り換えた話
ichikaway
現場で使える脆弱性検査サービス VAddy
現場で使える脆弱性検査サービス VAddy
ichikaway
OS入門 Fukuoka.php vol.18 LT資料
OS入門 Fukuoka.php vol.18 LT資料
ichikaway
Yapc8oji: セキュリティテストサービスを開発運営してきた2年
Yapc8oji: セキュリティテストサービスを開発運営してきた2年
ichikaway
VAaddyとは VAddyミートアップvol3_20160629
VAaddyとは VAddyミートアップvol3_20160629
ichikaway
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
ichikaway
脆弱性もバグ、だからテストしよう DevSummiFukuoka
脆弱性もバグ、だからテストしよう DevSummiFukuoka
ichikaway
Vulnerabilities are bugs, Let's test for them!
Vulnerabilities are bugs, Let's test for them!
ichikaway
脆弱性もバグ、だからテストしよう!
脆弱性もバグ、だからテストしよう!
ichikaway
継続的Webセキュリティテスト PHPカンファレンス関西2015 LT
継続的Webセキュリティテスト PHPカンファレンス関西2015 LT
ichikaway
継続的Webセキュリティテスト testing casual talks2
継続的Webセキュリティテスト testing casual talks2
ichikaway
Ctf2015 ichikawa Eizoku PM2.5 dial
Ctf2015 ichikawa Eizoku PM2.5 dial
ichikaway
VAddy - CI勉強会 fukuoka
VAddy - CI勉強会 fukuoka
ichikaway
Jenkinsを使った継続的セキュリティテスト
Jenkinsを使った継続的セキュリティテスト
ichikaway
継続的セキュリティテストVaddy説明資料
継続的セキュリティテストVaddy説明資料
ichikaway
VAddy at LL Diver LT
VAddy at LL Diver LT
ichikaway
phpcon kansai 20140628
phpcon kansai 20140628
ichikaway
福岡xTwilio twilio meetup
福岡xTwilio twilio meetup
ichikaway
Nginxを使ったオレオレCDNの構築
Nginxを使ったオレオレCDNの構築
ichikaway
Mais de ichikaway
(20)
forteeに脆弱性検査をかけてみた VAddy編
forteeに脆弱性検査をかけてみた VAddy編
VAddyの課金システムを Stripeに乗り換えた話
VAddyの課金システムを Stripeに乗り換えた話
現場で使える脆弱性検査サービス VAddy
現場で使える脆弱性検査サービス VAddy
OS入門 Fukuoka.php vol.18 LT資料
OS入門 Fukuoka.php vol.18 LT資料
Yapc8oji: セキュリティテストサービスを開発運営してきた2年
Yapc8oji: セキュリティテストサービスを開発運営してきた2年
VAaddyとは VAddyミートアップvol3_20160629
VAaddyとは VAddyミートアップvol3_20160629
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
脆弱性もバグ、だからテストしよう DevSummiFukuoka
脆弱性もバグ、だからテストしよう DevSummiFukuoka
Vulnerabilities are bugs, Let's test for them!
Vulnerabilities are bugs, Let's test for them!
脆弱性もバグ、だからテストしよう!
脆弱性もバグ、だからテストしよう!
継続的Webセキュリティテスト PHPカンファレンス関西2015 LT
継続的Webセキュリティテスト PHPカンファレンス関西2015 LT
継続的Webセキュリティテスト testing casual talks2
継続的Webセキュリティテスト testing casual talks2
Ctf2015 ichikawa Eizoku PM2.5 dial
Ctf2015 ichikawa Eizoku PM2.5 dial
VAddy - CI勉強会 fukuoka
VAddy - CI勉強会 fukuoka
Jenkinsを使った継続的セキュリティテスト
Jenkinsを使った継続的セキュリティテスト
継続的セキュリティテストVaddy説明資料
継続的セキュリティテストVaddy説明資料
VAddy at LL Diver LT
VAddy at LL Diver LT
phpcon kansai 20140628
phpcon kansai 20140628
福岡xTwilio twilio meetup
福岡xTwilio twilio meetup
Nginxを使ったオレオレCDNの構築
Nginxを使ったオレオレCDNの構築
Último
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024
D Cloud Solutions
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and Istio
Christian Posta
201610817 - edge part1
201610817 - edge part1
Jamie (Taka) Wang
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
DianaGray10
20150722 - AGV
20150722 - AGV
Jamie (Taka) Wang
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
DianaGray10
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
Seth Reyes
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
infogdgmi
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
bruanjhuli
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
Asko Soukka
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity Webinar
Precisely
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
UiPathCommunity
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
shyamraj55
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership Blueprint
Mahmoud Rabie
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Will Schroeder
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
Jamie (Taka) Wang
Nanopower In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
Pedro Manuel
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UbiTrack UK
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
DianaGray10
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Safe Software
Último
(20)
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and Istio
201610817 - edge part1
201610817 - edge part1
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
20150722 - AGV
20150722 - AGV
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity Webinar
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership Blueprint
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
Nanopower In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
ゼロから始めるファミコンエミュレータ生活 PHPerKaigi2019
2.
▸ @cakephper ▸ ▸ ▸ VAddy: ▸
Scutum: Web Application Firewall
3.
(NES) ▸ CPU: RP2A03,
1.79MHz, 8bit ▸ PPU: RP2C02, 5.37MHz ▸ RAM: 2KB ▸ VRAM: 2KB ▸ Program ROM: 32KB ▸ Character ROM: 8KB
4.
GOAAAAAL ▸ ▸
5.
▸ (CPU, Memory,
etc) ▸ ▸ OS
6.
PHP NES EMULATOR ▸
PHP ▸ Go ▸ 30
7.
(PHP) PHP
9.
PROS/CONS PHP, JS, RUST,
GOLANG … ▸ ▸
10.
PROS/CONS PHP, JS, RUST,
GOLANG … ▸ ▸
11.
PROS/CONS ▸ Hello World
3 ▸
12.
HELLO WORLD
13.
HELLO WORLD ▸ (ROM) ▸
CPU ▸ : 56 13 ▸ CPU BUS (Memory-mapped I/O) ▸ PPU ( )
14.
ROM ROM 16KB or
32KB
15.
https://github.com/ichikaway/goNES/blob/master/cpu/opcode.go
16.
78 A2 FF
9A A9 00 8D 00 20 … 0x8000 0x8001 0x8002 0x8003 0x8004 0x8005 0x8006 0x8007 0x8008
17.
78 A2 FF
9A A9 00 8D 00 20 … 0x8000 0x8001 0x8002 0x8003 0x8004 0x8005 0x8006 0x8007 0x8008 0x8000 SEI
18.
78 A2 FF
9A A9 00 8D 00 20 … 0x8000 0x8001 0x8002 0x8003 0x8004 0x8005 0x8006 0x8007 0x8008 0x8001 LDX
19.
78 A2 FF
9A A9 00 8D 00 20 … 0x8000 0x8001 0x8002 0x8003 0x8004 0x8005 0x8006 0x8007 0x8008 0x8003 TXS
20.
(PHP) https://github.com/hasegawa-tomoki/php-terminal-nes-emulator/blob/master/src/Cpu/Cpu.php
21.
(RUST) https://github.com/bokuweb/rustynes/blob/master/src/nes/cpu/mod.rs
22.
(RUST) https://github.com/bokuweb/rustynes/blob/master/src/nes/cpu/instructions.rs
23.
▸ PHP RUST
Go ▸ ▸ uint8 uint16 ▸ PHP int int & FF
24.
▸ ▸ ▸
26.
STEP0 ▸ ▸ ▸ ▸ 2 PPU
27.
STEP1 ▸ Hello, World! ▸
@bokuweb ▸ https://qiita.com/bokuweb/items/1575337bef44ae82f4d3 ▸ 3 PPU 30%
28.
STEP2 ▸ ▸ ROM CPU ▸ ▸
: NES Emulator JavaScript ▸ PHP Terminal NES Emulator ▸ https://github.com/hasegawa-tomoki/php-terminal-nes- emulator/
29.
STEP3 ▸ ▸ PPU ▸
30.
THANK YOU ▸ @cakephper ▸
goNES ▸ https://github.com/ichikaway/goNES
31.
( ) ▸ (@tomzoh) ▸
https://speakerdeck.com/tomzoh/yeeh-php-nes-emulators- here ▸ PHP (@tomzoh) ▸ https://speakerdeck.com/tomzoh/create-a-nes-emulator- with-php
32.
( ) ▸ (@bokuweb) ▸
https://speakerdeck.com/bokuweb/ huamikonemiyuretafalsechuang-rifang
33.
https://gist.github.com/ichikaway/151d0366f380e83afee0023e3b6e0c1a
34.
▸ ▸ ▸
Baixar agora