当前位置 博文首页 > 程序猿DD:一个可以在多平台运行的任天堂GameBoy模拟器

    程序猿DD:一个可以在多平台运行的任天堂GameBoy模拟器

    作者:程序猿DD 时间:2021-02-05 12:26

    今天为大家带来一个很有趣的游戏模拟器GoBoy

    GoBoy

    GoBoy是一个可以在多平台运行的任天堂GameBoy和GameBoy Color的模拟器,目前这个模拟器可以运行大多数的GameBoy游戏和一部分GameBoy Color的游戏。同时还有声音和颜色的支持,是不是很多80后小时候偷偷玩GameBoy的回忆涌上心头了?

    这个模拟器是作者当初作为一个开发练习用的项目,目前仍然在不断更新中。

    模拟器包含了调试函数,便于使用者理解该如何使用操作这个模拟器,方便自己个性化的写一个类似的模拟器出来。

    这些调试函数会将每一步的操作码及数值打到控制台显示,不过这个可是会降低模拟器速度的哟。

    是不是很心动?赶紧来看下具体怎么弄!

    如何安装

    想知道怎么用吗?首先我们要去github上下载一个最新版本的GoBoy,地址如下:

    https://github.com/Humpheh/goboy/releases/tag/v0.5

    安装go后,可以通过运行以下命令将GoBoy安装到自己的go bin中:

    go get github.com/Humpheh/goboy/cmd/goboy
    

    如果你有1.11.版本的Go,你也可以这么做

    git clone https://github.com/Humpheh/goboy.git
    cd goboy
    go build -o goboy cmd/goboy/main.go
    

    GoBoy可以在MacOS、windows、linux多个平台上运行,不过需要注意的是在win10上运行需要安装MinGW ,在Linux上安装则需要安装gtk。

    GoBoy使用go的库像素进行控件的绑定和图形渲染,所以需要安装OpenGL。

    用法

    goboy zelda.gb
    

    控制键有: ← ↑ ↓ → Z X Enter Backspace;在DMG模式下调色板可以被=循环调用,游戏时可以用F切换为全屏显示。

    另外,一些要知道的设置命令:

      -dmg
         set to force dmg mode
      -mute
         mute sound output
    

    调试或者实验的设置命令:

      -cpuprofile string
         write cpu profile to file (debugging)
      -disableVsync
         set to disable vsync (debugging)
      -stepthrough
         step through opcodes (debugging)
      -unlocked
         if to unlock the cpu speed (debugging)
    

    调试

    有一些很有用的键盘快捷键用于调试:

    Q-强制切换背景
    
    W-强制切换精灵
    
    A-打印gb背景调色板数据(cgb)
    
    S-打印精灵调色板数据(cgb)
    
    D-打印背景地图到日志
    
    E-切换操作码打印到控制台(将减慢执行速度)
    
    7,8,9,0-切换声道1到4。
    

    本文首发一个可以在多平台运行的任天堂GameBoy的模拟器,转载清著名出处。

    保存

    如果加载的游戏rom是支持电池存储的,则记住要用<rom name>.sav(例如:塞尔达.gb.sav)文件,和加载的rom放在一起保存,其中会包含盒带中RAM的转储。

    程序中会默认循环在游戏运行时每秒更新一次这个保存文件。

    测试

    GoBoy目前通过了Blargg的“cpu指令”和“指令定时”测试ROM中的所有测试。

    最后

    整个项目的地址如下:https://github.com/Humpheh/goboy

    如果你还想深入了解,这里有一些关于GameBoy的资料供参考:

    • http://www.codeslinger.co.uk/pages/projects/gameboy/files/GB.pdf
    • https://github.com/retrio/gb-test-roms
    • http://www.codeslinger.co.uk/pages/projects/gameboy/beginning.html
    • http://bgb.bircd.org/ - invaluable for debugging
    • https://github.com/AntonioND/giibiiadvance/tree/master/docs
    • https://github.com/trekawek/coffee-gb

    欢迎关注我的公众号:程序猿DD,获得独家整理的免费学习资源助力你的Java学习之路!另每周赠书不停哦~

    bk