• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Mohanson
V2EX  ›  程序员

Gameboy 模拟器 点火成功!

  •  6
     
  •   Mohanson · Apr 18, 2019 · 11909 views
    This topic created in 2762 days ago, the information mentioned may be changed or developed.

    https://raw.githubusercontent.com/mohanson/gameboy/master/docs/sample.gif

    项目地址:

    https://github.com/mohanson/gameboy

    从去年有想法开始断断续续写到现在, 最近实在太忙所以偷懒基于 MIT 协议 Copy 了另一个开源项目 rboy 的图形显示(极小部分)和声音播放模块(全部)的代码. 就这样先开源了, 以后有时间再去补课.

    这是我写的第三个虚拟机项目啦! 上一个是 webassembly 吼吼吼. 累了累了.

    包含 CPU, GPU, APU, 主板, 卡带, 键盘, 定时器等核心模块, 每个模块均有详细注释(除声音播放模块外)... 硬件模拟器真的很难写啊, 杀时间的利器.

    59 replies  •  2019-04-19 23:14:58 +08:00
    CallMeReznov
    CallMeReznov
    Apr 18, 2019
    1
    大佬流弊!
    mq4079
    mq4079
    Apr 18, 2019
    2
    🐂🍺,我也想写但一直没时间
    sunocean
    sunocean
    Apr 18, 2019
    3
    默默的点了个 star 好奇 文本图纸是怎么画出来的, 手工嘛?
    Mohanson
    Mohanson
    OP
    Apr 18, 2019
    4
    @sunocean ascii art 上找的, 写 README 全靠它了
    lneoi
    lneoi
    Apr 18, 2019
    5
    大佬大佬
    vmebeh
    vmebeh
    Apr 18, 2019 via iPhone❤️1
    6
    Liang
    Liang
    Apr 18, 2019
    7
    膜拜一下
    AlisaDestiny
    AlisaDestiny
    Apr 18, 2019
    8
    点进大佬的博客,发现早已 CTRL+D.
    Mohanson
    Mohanson
    OP
    Apr 18, 2019 via Android
    9
    其实本来放了口袋妖怪的 rom,但是害怕任天堂的法务(害怕.gif
    designer
    designer
    Apr 18, 2019 via iPhone
    10
    先点赞
    SimonOne
    SimonOne
    Apr 18, 2019
    11
    编译不成功😭️brew install rust 现装的 rust
    misaka19000
    misaka19000
    Apr 18, 2019 via Android
    12
    哎。。。一直想写个 fc 模拟器,奈何一直没这个耐心
    Mohanson
    Mohanson
    OP
    Apr 19, 2019 via Android
    13
    @misaka19000 行动起来呀! 模拟器一套代码下来,从底层 cpu 寄存器到上层视频, 音频,都能吃透,收获很大的
    waruqi
    waruqi
    Apr 19, 2019 via Android
    14
    我之前也写过几个玩玩 flash/avm, jvm, x86vm
    rizon
    rizon
    Apr 19, 2019
    15
    @Mohanson #9 可以用另一个身份单独提供 rom 啊。常规操作~
    doraemon0711
    doraemon0711
    Apr 19, 2019 via iPhone
    16
    厉害厉害,我是之前关注了 mvba 的项目想学习,但一直都没动力开始,话说写模拟器是不是汇编必须玩的 6
    cd2want
    cd2want
    Apr 19, 2019
    17
    WTF!!!! 帅气!!!!!!
    sunocean
    sunocean
    Apr 19, 2019
    18
    谢谢大佬们 长知识了
    @waruqi
    @vmebeh
    sunocean
    sunocean
    Apr 19, 2019
    19
    @Mohanson 大佬写这个,先从哪个部分入手比较好?
    Mohanson
    Mohanson
    OP
    Apr 19, 2019 via Android
    20
    cpu,然后以主板。其他硬件都是接入到主板上的并受 cpu 管理
    @sunocean
    sosilver
    sosilver
    Apr 19, 2019 via Android
    21
    @sunocean 先试试 chip8 模拟器,应该是最简单的了
    boywhp
    boywhp
    Apr 19, 2019
    22
    @Mohanson 这年头沉下心搞技术的不多阿,居然还是 RUST 写的?牛皮牛皮,交个朋友么
    Variazioni
    Variazioni
    Apr 19, 2019
    23
    star 了。。。
    darknoll
    darknoll
    Apr 19, 2019
    24
    厉害。。。
    20015jjw
    20015jjw
    Apr 19, 2019
    25
    wow 厉害
    lrh3321
    lrh3321
    Apr 19, 2019 via Android
    26
    厉害
    strpbrk
    strpbrk
    Apr 19, 2019
    27
    居然是喵喵开发的
    urmyfaith
    urmyfaith
    Apr 19, 2019❤️1
    28
    最近我也在看这个.
    Mohanson
    Mohanson
    OP
    Apr 19, 2019 via Android
    29
    @urmyfaith 期待你也能成功点火
    but0n
    but0n
    Apr 19, 2019 via iPhone❤️1
    30
    我最近也在写,webassembly 版的
    Mohanson
    Mohanson
    OP
    Apr 19, 2019 via Android
    31
    @but0n 哇噢,一下子遇到好多感兴趣的人
    urmyfaith
    urmyfaith
    Apr 19, 2019
    32
    @Mohanson 怕是还有很长一段路要走哦,只是在看别人的实现,js 写的.

    你这个 rust 写的,话说我一句 rust 都没写过,不过基本的逻辑也能看的懂.

    怎么没用 c? c++ ? 之类的写呢?
    Mohanson
    Mohanson
    OP
    Apr 19, 2019 via Android
    33
    @urmyfaith 因为最近在学 rust, 拿不熟练的语言开发,干一件事能获得两份经验值
    urmyfaith
    urmyfaith
    Apr 19, 2019
    34
    @Mohanson 好主意!

    go,dart , lua,c,c++,c#,js, 嗯,都可以来一遍. 哈哈.
    urmyfaith
    urmyfaith
    Apr 19, 2019
    35
    运行起来是个推箱子的游戏
    Mohanson
    Mohanson
    OP
    Apr 19, 2019 via Android
    36
    @urmyfaith 不敢放口袋妖怪,害怕任天堂律师函警告
    smeraldo
    smeraldo
    Apr 19, 2019
    37
    厉害厉害😍
    话说从模拟游戏的角度看,是不是只要能够解析卡带的数据,剩下的怎么实现都可以呀?
    raysonx
    raysonx
    Apr 19, 2019
    38
    厉害了,支持!有时间拿过来体验一下
    SuperMonster009
    SuperMonster009
    Apr 19, 2019 via Android
    39
    太厉害了 必须 star 一个
    Chingim
    Chingim
    Apr 19, 2019
    40
    这很硬核
    HorseMa
    HorseMa
    Apr 19, 2019
    41
    大佬🐂🍺!(破音
    silvernoo
    silvernoo
    Apr 19, 2019
    42
    看了眼代码,太巨了
    947211232
    947211232
    Apr 19, 2019
    43
    很秀
    xfriday
    xfriday
    Apr 19, 2019
    44
    居然是 rust 的项目,不容易,厉害🐂
    xdlucky
    xdlucky
    Apr 19, 2019
    45
    我的天, 推箱子真好玩
    Mohanson
    Mohanson
    OP
    Apr 19, 2019 via Android
    46
    @xdlucky 哈哈,我没事就在玩推箱子
    cxyfreedom
    cxyfreedom
    Apr 19, 2019 via iPhone
    47
    大佬牛逼!
    fantastM
    fantastM
    Apr 19, 2019
    48
    谁会不喜欢宝可梦呢
    sidegem
    sidegem
    Apr 19, 2019
    49
    虽然不懂,但看着好厉害
    motecshine
    motecshine
    Apr 19, 2019
    50
    我也想试着写一写 楼主 需要涉及到哪些常用的知识
    Mohanson
    Mohanson
    OP
    Apr 19, 2019 via Android❤️1
    51
    @motecshine 先搞明白 cpu 的工作原理 然后试着自己写一个 cpu 模拟器。8080,8086,51 单片机 什么的都可以,差不多就入了硬件模拟器的门了
    jiqing
    jiqing
    Apr 19, 2019 via Android
    52
    大佬牛逼,一直想写一个 fc 模拟器。一直拖延
    tutustream
    tutustream
    Apr 19, 2019
    53
    大佬都开始写模拟器了
    GPLer
    GPLer
    Apr 19, 2019 via Android
    54
    编译成功,运行窗口一直黑屏怎么破。
    cjh1095358798
    cjh1095358798
    Apr 19, 2019
    55
    大佬牛逼啊
    Foreverdxa
    Foreverdxa
    Apr 19, 2019
    56
    硬核大牛。
    winboy
    winboy
    Apr 19, 2019
    57
    欢迎分享到掘金呦 https://juejin.im/pins/recommended
    ldm0
    ldm0
    Apr 19, 2019
    58
    酷!唤醒了我两个月前要写模拟器的想法。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2507 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 124ms · UTC 11:36 · PVG 19:36 · LAX 03:36 · JFK 06:36
    ♥ Do have faith in what you're doing.