分享我最近做的在浏览器运行各色 RetroArch 怀旧游戏模拟器的 JS 库 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
battlefield
V2EX    分享创造

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

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

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

    直接在 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://ser-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     Solana     5252 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 08:39 PVG 16:39 LAX 00:39 JFK 03:39
    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