https://github.com/fogleman/nes
이 곳에 NES ROM 에뮬레이터가 존재한다. go 언어 소스도 보고 어떻게 동작하는지 보려고 테스트해보았다.
바로 다운받으면 머큐리얼 클라이언트인 hg가 없다고 발생한다.
$ go get github.com/fogleman/nes
go: missing Mercurial command. See http://golang.org/s/gogetcmd
package code.google.com/p/portaudio-go/portaudio: exec: "hg": executable file not found in $PATH
그래서, http://mercurial.selenic.com/ 에서 hg 다운로드받고 $PATH에 등록한다.
그 다음 dependency를 다운받는다. (godeps가 왜 의미가 있는지 알게 된다.)
$ go get github.com/go-gl/gl/v2.1/gl
$ go get github.com/go-gl/glfw/v3.1/glfw
$ go get code.google.com/p/portaudio-go/portaudio
# pkg-config --cflags portaudio-2.0
Package portaudio-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `portaudio-2.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'portaudio-2.0' found
portaudio이 패키지 패스에 없어서 소스 컴파일해서 pkgconfig path에 복사해보았지만.. 동작되지 않았다.
(이 방법은 쓰면 안되었음)
http://www.portaudio.com/download.html 에서 tgz 다운로드 (pa_stable_v19_20140130.tgz 최신 버전 )
http://portaudio.com/docs/v19-doxydocs/compile_mac_coreaudio.html 보고 따라하기
$ ./configure && make
portaudio-2.0.pc 생성
$ sudo cp portaudio-2.0.pc /usr/lib/pkgconfig/
그래서 brew를 이용하니 동작되었다.
brew install portaudio
sudo brew link portaudio
계속 진행해서 nes를 GOPATH에 만들게 했다.
$ go get code.google.com/p/portaudio-go/portaudio
$ go get github.com/fogleman/nes
$ which nes
/mydev/go/bin/nes
어렸을 때 했던 버블버블 nes rom 하나를 다운받아 실행해 보았다.
$ /mydev/go/bin/nes BubbleBobble.nes
그리고, 소스에 눈이 가게 된다. ..
'go lang' 카테고리의 다른 글
[go lang] underscore(_) 의 사용 (0) | 2015.03.27 |
---|---|
atom 으로 go run 환경 구성하기 (0) | 2015.03.27 |
[Go Lang] Atom 에서 Go Lang 환경 설정하기 (0) | 2015.03.25 |
[Go lang] go 공부 - 워크스페이스, 환경, lib 찾기 (1) | 2015.03.25 |
go 공부 -switch, semicolon (0) | 2015.03.25 |