Gameboy 模拟器 点火成功! - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
请不要在回答技术问题时复制粘贴 AI 生成的内容
Mohanson

Gameboy 模拟器 点火成功!

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

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

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

    go,dart , lua,c,c++,c#,js, 嗯,都可以来一遍. 哈哈.
    urmyfaith
        35
    urmyfaith  
       Apr 19, 2019
    运行起来是个推箱子的游戏
    Mohanson
        36
    Mohanson  
    OP
       Apr 19, 2019 via Android
    @urmyfaith 不敢放口袋妖怪,害怕任天堂律师函警告
    smeraldo
        37
    smeraldo  
      Apr 19, 2019
    厉害厉害
    话说从模拟游戏的角度看,是不是只要能够解析卡带的数据,剩下的怎么实现都可以呀?
    raysonx
        38
    raysonx  
       Apr 19, 2019
    厉害了,支持!有时间拿过来体验一下
    SuperMonster009
        39
    SuperMonster009  
       Apr 19, 2019 via Android
    太厉害了 必须 star 一个
    Chingim
        40
    Chingim  
       Apr 19, 2019
    这很硬核
    HorseMa
        41
    HorseMa  
       Apr 19, 2019
    大佬!(破音
    silvernoo
        42
    silvernoo  
       Apr 19, 2019
    看了眼代码,太巨了
    947211232
        43
    947211232  
       Apr 19, 2019
    很秀
    xfriday
        44
    xfriday  
       Apr 19, 2019
    居然是 rust 的项目,不容易,厉害
    xdlucky
        45
    xdlucky  
       Apr 19, 2019
    我的天, 推箱子真好玩
    Mohanson
        46
    Mohanson  
    OP
       Apr 19, 2019 via Android
    @xdlucky 哈哈,我没事就在玩推箱子
    cxyfreedom
        47
    cxyfreedom  
       Apr 19, 2019 via iPhone
    大佬牛逼!
    fantastM
        48
    fantastM  
       Apr 19, 2019
    谁会不喜欢宝可梦呢
    sidegem
        49
    sidegem  
       Apr 19, 2019
    虽然不懂,但看着好厉害
    motecshine
        50
    motecshine  
       Apr 19, 2019
    我也想试着写一写 楼主 需要涉及到哪些常用的知识
    Mohanson
        51
    Mohanson  
    OP
       Apr 19, 2019 via Android   1
    @motecshine 先搞明白 cpu 的工作原理 然后试着自己写一个 cpu 模拟器。8080,8086,51 单片机 什么的都可以,差不多就入了硬件模拟器的门了
    jiqing
        52
    jiqing  
       Apr 19, 2019 via Android
    大佬牛逼,一直想写一个 fc 模拟器。一直拖延
    tutustream
        53
    tutustream  
       Apr 19, 2019
    大佬都开始写模拟器了
    GPLer
        54
    GPLer  
       Apr 19, 2019 via Android
    编译成功,运行窗口一直黑屏怎么破。
    cjh1095358798
        55
    cjh1095358798  
       Apr 19, 2019
    大佬牛逼啊
    Foreverdxa
        56
    Foreverdxa  
       Apr 19, 2019
    硬核大牛。
    winboy
        57
    winboy  
       Apr 19, 2019
    欢迎分享到掘金呦 https://juejin.im/pins/recommended
    ldm0
        58
    ldm0  
       Apr 19, 2019
    酷!唤醒了我两个月前要写模拟器的想法。
    About     Help     Advertise     Blog     API     FAQ     Solana     3207 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 114ms UTC 11:53 PVG 19:53 LAX 04:53 JFK 07:53
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86