HELLO, WORLD 3
GO
▸ @cakephper
▸
▸ VAddy:
▸ Scutum: Web Application Firewall
(NES)
▸ CPU 1.79MHz, 8bit
▸ RP2A03 (6502)
▸ PPU 5.37MHz
▸ RP2C02
(NES)
▸ RAM: 2KB
▸ VRAM: 2KB
▸ Program ROM: 32KB
▸ Character ROM: 8KB
▸ 16bit
GOAAAAAL
▸
▸
▸ (CPU, Memory, etc)
▸
PHP NES EMULATOR
▸ PHP
▸ Go
▸ 30
Golang
PROS/CONS
PHP, JS, RUST, GOLANG …
▸
▸
PROS/CONS
PHP, JS, RUST, GOLANG …
▸
▸
PROS/CONS
▸ Hello World 3
▸
HELLO WORLD
HELLO WORLD
▸ (ROM)
▸ CPU
▸ : 56 13
HELLO WORLD
▸ CPU BUS (Memory-mapped I/O)
▸ PPU ( )
(NES ROM)
ROM ROM
16KB or 32KB
https://github.com/ichikaway/goNES/blob/master/cpu/opcode.go
78 A2 FF 9A A9 00 8D 00 20 …
0x8000 0x8001 0x8002 0x8003 0x8004 0x8005 0x8006 0x8007 0x8008
78 A2 FF 9A A9 00 8D 00 20 …
0x8000 0x8001 0x8002 0x8003 0x8004 0x8005 0x8006 0x8007 0x8008
0x8000
SEI
78 A2 FF 9A A9 00 8D 00 20 …
0x8000 0x8001 0x8002 0x8003 0x8004 0x8005 0x8006 0x8007 0x8008
0x8001
LDX
78 A2 FF 9A A9 00 8D 00 20 …
0x8000 0x8001 0x8002 0x8003 0x8004 0x8005 0x8006 0x8007 0x8008
0x8003
TXS
(GOLANG)
https://github.com/ichikaway/goNES/blob/master/cpu/cpu.go
(PHP)
https://github.com/hasegawa-tomoki/php-terminal-nes-emulator/blob/master/src/Cpu/Cpu.php
(RUST)
https://github.com/bokuweb/rustynes/blob/master/src/nes/cpu/mod.rs
(RUST)
https://github.com/bokuweb/rustynes/blob/master/src/nes/cpu/instructions.rs
78 A2 FF 9A A9 00 8D 00 20 …
0x8000 0x8001 0x8002 0x8003 0x8004 0x8005 0x8006 0x8007 0x8008
0x8005
STA 0x2000
▸
▸
▸
https://github.com/ichikaway/goNES
goNES
GONES
1
▸
▸
▸termbox
GONES
GONES
2
▸HTTP
▸
▸upper uint8 << 8
▸
STEP0
▸
▸
STEP0
▸
▸ 2 PPU
STEP1
▸ Hello, World!
▸ @bokuweb
▸ https://qiita.com/bokuweb/items/
1575337bef44ae82f4d3
▸ 3 PPU 30%
STEP2
▸
▸ ROM CPU
STEP3
▸
▸ PPU
▸
THANK YOU
▸ @cakephper
▸ goNES
▸ https://github.com/ichikaway/goNES

Hello, Worldまで3ヶ月 Golangでファミコンエミュレータ実装 #gocon fukuoka 2019