东方吧 关注:651,115贴子:17,710,627

浏览器里可跑的 东方旧作? Dosbox-X Emscripten 化取得初步成功

只看楼主收藏回复

看这几天浏览器里的 DOS 游戏 挺火,我也跟风搞了一个类似的。
其实就是根据 em-dosbox 对 dosbox 的第二种改法(用 Emterpreter 把主循环解释执行),把 Dosbox-X ( Dosbox 的一个支持 PC-98 模拟的 fork,我自己也 fork 了而且一直在跟)给弄到了 Emscripten 上。
链接的时候有问题(用-O3 参数,asm2wasm 会挂掉,也不是内存爆了,估计触发了 bug ),用-O1 参数生成的 wasm,导致图形部分卡得要死( SDL2 没有生成优化版本)。只是刚好能看而已。
其实昨天就搞定了类似之前的那个改 Dosbox 0.74-2 的,用暴力改 Dosbox-X 主循环为 Emscripten 主循环回调的版本,那个版本可以全优化,丝滑 60fps,但是一个瞬卡程序就可能跑飞,就可能把整个标签卡死在那里。这次没敢放出来。



demo地址看反应再放。


1楼2018-09-14 16:05回复
    大佬


    IP属地:四川来自Android客户端2楼2018-09-14 16:14
    回复(5)
      大佬


      IP属地:山东来自iPhone客户端3楼2018-09-14 18:41
      回复
        tql
        (某不知名打砖块html5小游戏风靡网络


        IP属地:福建来自Android客户端4楼2018-09-14 18:43
        收起回复
          我......什么都看不懂......打砖块是真的好玩。


          IP属地:江苏5楼2018-09-14 18:52
          收起回复
            PC98硬件指标里的屏幕刷新率最多也就56Hz,楼主这60fps是从何而来的呢……


            来自Android客户端6楼2018-09-14 19:03
            回复(3)
              并不能看懂,但是楼主太触了


              IP属地:日本来自Android客户端7楼2018-09-14 22:32
              回复


                来自Android客户端8楼2018-09-14 22:42
                回复
                  发现为啥固定cycles不工作的原因了,用istringstream转字符串为整数,但它必须要C++异常支持,而Emscripten好像默认不开这个且开了整体会变慢


                  9楼2018-09-14 22:48
                  回复(4)
                    该楼层疑似违规已被系统折叠 查看此楼


                    10楼2018-09-15 02:01
                    回复
                      话说,浏览器要求是什么。。。


                      来自Android客户端11楼2018-09-15 10:14
                      回复(2)
                        能更改一下增加Cycles的快捷键么,每次按到F12都会自动打开开发人员工具


                        IP属地:加拿大12楼2018-09-15 11:10
                        回复(5)
                          呜呼呼呼呼~~~~~~~~~~~~~~~~~~~~~~~H5的DosBox?


                          IP属地:湖北13楼2018-09-16 00:44
                          回复
                            强诶,已star


                            IP属地:上海来自Android客户端14楼2018-09-16 00:57
                            回复
                              事⑨打法作者()


                              IP属地:上海来自Android客户端15楼2018-09-16 12:30
                              回复