Go 编写的 Gameboy 模拟器 Gameboy.Live

MIT
Google Go
Windows
2019-05-06
红薯

Gameboy.Live 是一个 Gameboy 模拟器 ,Go 语言开发,主要用于学习目的。你可以在桌面电脑上玩一些简单的 Gameboy 游戏。

https://github.com/HFO4/gameboy.live/raw/master/doc/screenshot.png

也可以通过终端来玩“云游戏”:

telnet gameboy.live 1989

https://github.com/HFO4/gameboy.live/raw/master/doc/cloud-gaming.gif

安装

可直接 下载 可执行程序,或者通过源码进行构建。要求至少是 Go 1.11 版本。在 Debian 系列系统中需要先安装 libasound2-dev 和 libgl1-mesa-dev 包:

git clone https://github.com/HFO4/gameboy.live.git
cd gameboy.live
go build -o gbdotlive main.go

使用

Usage of gbdotlive:
  -c config
        Set the game option list config file path
  -d    Use Debugger in GUI mode
  -f FPS
        Set the FPS in GUI mode (default 60)
  -g    Play specific game in GUI mode (default true)
  -h    This help
  -m    Turn on sound in GUI mode (default true)
  -p port
        Set the port for the cloud-gaming server (default 1989)
  -r ROM
        Set ROM file path to be played in GUI mode
  -s    Start a cloud-gaming server

GUI 模式

可在 GUI 模式先直接玩一个指定的 ROM 文件:

gbdotlive -r "Tetris.gb" 

设置云游戏服务器

你可以使用云游戏服务的方式来运行 Gameboy.Live ,玩家通过 telnet 登录到服务器指定端口,无需安装额外软件。

使用该模式运行需要一个 gamelist.json 配置文件来指定游戏的参数,配置示例:

[{
	"Title": "Tetris",
	"Path": "test.gb"
}, {
	"Title": "Dr. Mario",
	"Path": "Dr. Mario (JU) (V1.1).gb"
}, {
	"Title": "Legend of Zelda - Link's Awakening",
	"Path": "Legend of Zelda, The - Link's Awakening (U) (V1.2) [!].gb"
}]

在将 POM 放入配置之前请先测试。

接下来启动 Gameboy.Live 服务并指定配置即可:

gbdotlive -s -c "gamelist.json"

成功运行后会有类似以下的输出:

2019/04/30 21:27:56 Listen port: 1989 

现在你可以在其他机器中玩游戏,游戏的模拟和渲染过程是在服务器端完成的。

telnet <ip of your server>:<port>

"云游戏" 只支持使用 ANSI 和 UTF-8 编码的终端方式,在 Windows 下可以使用 WSL 替代 CMD。

调试

Gameboy.Live 提供一个简单的内建调试器,要开启调试模式需要设置 d 参数为 true:

gbdotlive -r "test.gb" -d=true

 

[OP:NOP]
AF:01B0  BC:0013  DE:00D8  HL:014D  SP:FFFE   
PC:0100  LCDC:91  IF:E1    IE:00    IME:false 
LCD:100 

键盘指令

Keyboard Gameboy
Enter Start
Backspace Select
Up
Down
Left
Right
X B
Z A

特性 & TODOs

  •  CPU 指令仿真
  •  定时器和中断
  •  支持 ROM-only, MBC1, MBC2, MBC3 cartridge
  •  声音仿真
  •  图形仿真
  •  云游戏
  •  ROM 调试器

Testing

Testing result

的码云指数为
超过 的项目
加载中

评论(9)

S
Sven_Tang
666
周慕云
周慕云

引用来自“syymren”的评论

看看人家,学习写的东西都这么牛B,看看我,学习写的东西只会写hello world,最后还编译不成功
真实的令人心痛
little_kid
little_kid
人才
游侠小陆
等我什么时候一家吃饱了饭也要研究这种玩意😋
s
syymren
看看人家,学习写的东西都这么牛B,看看我,学习写的东西只会写hello world,最后还编译不成功
LeeNux
LeeNux

引用来自“开源中国绿帽协会”的评论

唉呀妈呀眼睛疼
直接来ns模拟器吧!我就不用买啦
开源中国绿帽协会
唉呀妈呀眼睛疼
Anjelo
Anjelo
GBA呢?
泛逸舟
泛逸舟
赞一个

暂无资讯

暂无问答

HDU 1176 免费馅饼

Problem D Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submission(s) : 6 Accepted Submission(s) : 2 Font: Times New Roman | Verdana | Geo...

2014/10/17 23:32
11
0
HDU 1176 免费馅饼

Problem D Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submission(s) : 6 Accepted Submission(s) : 2 Font: Times New Roman | Verdana | Geo...

2014/10/17 23:32
7
0
世界级的安卓测试开发流!

**在「世界级的安卓测试开发流 — 第一部分」,作者开始了安卓测试[开发流的讨论](http://blog.karumi.com/world-class-testing-development-pipeline-for-android/)。我们探讨了一个软件工...

2016/02/24 11:32
14
4
macOS与Panic联手开发出laydate掌上型游戏机

专门开发macOS与iOS平台软件及游戏的Panic,在成立逾20年之后,于本周发表了该公司首款硬件产品:Playdate掌上型游戏机。它的售价为149美元,预计于今年底开放预购,明年初出货。Playdate的尺...

05/24 15:42
0
0
码农们的机器人:LEGO MindStorms EV3

2013-5-7, 18:30 | 李仲琴 1988 年第一代乐高 MindStorms RCX 上市,乐高当时宣传称“让你的机器人做任何事,煎牛肉、冲马桶,冲咖啡等等”,同时为了刺激和发掘学龄儿童和 GEEKER 爱好者们的...

2013/05/12 21:24
245
0
论坛推荐:嵌入式系统学习路线及嵌入式就业方向是什么?

近些年来,嵌入式系统的发展在国内蒸蒸日上,很多公司都急需嵌入式系统方面的开发人员。在本文中,华清远见老师将根据自己的嵌入式系统开发和教学经验,根据嵌入式定义、嵌入式应用领域、嵌入...

2016/01/21 14:18
94
1
Game of Life

生存游戏

2014/11/14 16:24
168
0
向服务端发送FCSubscribe命令

ffmpeg rtmp_subscribe JWPlayer

2016/09/23 15:48
68
0
jquery .live() .delegate() .bind() .click()区别

什么是.live()? 除了让你对Dom元素现在和将来绑定事件之外,.live() 方法和.bind()方法很像。你可以用.live()方法对没有存在的Dom节点绑定事件。考虑下面的情况。 当用户要离开你的站点时,点...

2012/04/13 14:01
1K
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部