V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
battlefield
V2EX  ›  分享创造

分享我最近做的在浏览器运行各色 RetroArch 怀旧游戏模拟器的 JS 库

  •  2
     
  •   battlefield · 2023-10-13 10:38:12 +08:00 · 1547 次点击
    这是一个创建于 406 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大概效果可以参考这个动图,主打一个一行代码启动游戏开打。

    直接在 V2EX 这个网页上打开控制台也能直接试用,跑一下这段代码就能直接开玩 flappy bird

    const { Nostalgist } = await import('https://esm.run/nostalgist')
    await Nostalgist.nes('flappybird.nes')
    

    更多详细信息可以参考上面链接。

    另外我有个大胆的想法,能不能基于这个整个摸鱼神器什么的,搞个插件在 vscode 控制台或者边栏上,领导不在就偷偷玩塞尔达救公主,领导来了随便开个别的页面就像正常上班了

    当然现代塞尔达肯定不行,也就打打众神的三角力量、缩小帽啥的……

    9 条回复    2023-10-15 17:42:55 +08:00
    ragnaroks
        1
    ragnaroks  
       2023-10-13 12:02:55 +08:00
    看起来需要增加一个参数用于指定挂载的 DOM 来让第三方做集成,直接使用 body 绝对不是好的选择
    battlefield
        2
    battlefield  
    OP
       2023-10-13 12:11:27 +08:00
    @ragnaroks 有道理!不过其实可以指定 DOM 的,类似这样
    ```js
    await Nostalgist.launch({
    element: '.xxx',
    rom: 'flappybird.nes',
    })

    ```
    默认弄到 body 是出于方便新来的人一键试用的考虑,免得读者看到想跑起来还得配置一堆东西,就懒得看了…
    debuggerx
        3
    debuggerx  
       2023-10-13 12:13:33 +08:00
    巧了,我前两天刚用 Emulator.js 给自己搭了个随时玩游戏的页面,魔改了它的一部分代码来支持平板和手机的自适应,部署在 gh pages 上,并利用 cf 的 kv 做了个云存档功能。测试发现它提供的 snes 核心对一些汉化游戏的支持不太好,又自己修改编译了一个 snes9x-wasm ,gba 倒是挺完美,ss 也能运行但是速度只有 10 几 fps ,nes 及更早的游戏就没什么兴趣了,然后街机全军覆没,要么提示 rom sets unknown ,要么运行后直接显示 RetroArch……
    这两天在折腾把 sdlpal 移植到网页,并适配手机和平板用触屏游玩,以及云存档功能了
    battlefield
        4
    battlefield  
    OP
       2023-10-13 12:24:20 +08:00
    哇,难得碰到类似折腾喜好的同道中人呀。

    街机的问题,是不是 Emulator.js 附带的 fba 版本跟你对不上?我自己编译的 GitHub 上最新版 1.0.0.3 的 fba ,ROM 也用的最新版,跑起来没啥问题。存档同步我用的 OneDrive 。
    ![]( https://user-images.githubusercontent.com/10987902/274794880-a89c74c6-90e9-4192-928c-020d3bbb8bd7.jpg)
    battlefield
        5
    battlefield  
    OP
       2023-10-13 12:25:12 +08:00
    @debuggerx 哇,难得碰到类似折腾喜好的同道中人呀。

    街机的问题,是不是 Emulator.js 附带的 fba 版本跟你对不上?我自己编译的 GitHub 上最新版 1.0.0.3 的 fba ,ROM 也用的最新版,跑起来没啥问题。存档同步我用的 OneDrive 。
    ![]( https://user-images.githubusercontent.com/10987902/274794880-a89c74c6-90e9-4192-928c-020d3bbb8bd7.jpg)
    debuggerx
        6
    debuggerx  
       2023-10-13 16:17:55 +08:00
    @battlefield 谢谢,我没自己编译它的所有核心,只用了它仓库里已经编译好的核心简单试了试,因为我本身对街机游戏也不是很感兴趣,一是我比较喜欢有剧情的,二是街机游戏在手机平板上操作很不舒服。
    刚刚把手机浏览器运行 sdlpal 给优化得差不多了,借用了 Emulator.js 项目里虚拟手柄的代码,也分享下:

    https://imgur.com/a/dcxX3qV
    battlefield
        7
    battlefield  
    OP
       2023-10-13 16:33:47 +08:00
    @debuggerx 效果不错!
    IDKAFK
        8
    IDKAFK  
       2023-10-15 14:58:13 +08:00
    也分享一下收藏的在线游戏包含 FCS 、FC 、街机、GBA 、MD 、暗黑 1 、h5 游戏

    [小霸王,其乐无穷 。红白机,FC 在线游戏,街机游戏,街机在线,NES games ,NES games online ,Super Mario]( https://www.yikm.net/)
    battlefield
        9
    battlefield  
    OP
       2023-10-15 17:42:55 +08:00 via iPhone
    @IDKAFK 我知道这个,网站搞得挺好的,也是 retroarch ,我这个算轮子的话这种网站相当于小轿车
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3852 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 05:18 · PVG 13:18 · LAX 21:18 · JFK 00:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.