首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Mohanson
V2EX  ›  程序员

Gameboy 模拟器 点火成功!

  •  6
     
  •   Mohanson · 280 天前 · 7521 次点击
    这是一个创建于 280 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    项目地址:

    https://github.com/mohanson/gameboy

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

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

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

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

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

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

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