跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 浅色
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • 深色
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(LCZ-Blue)
  • 不使用皮肤
  • LCZ-Green
  • LCZ-Blue
  • LCZ-Black
折叠
品牌标识

抡锤者

首页 版块 标签
硬件
装备秀
AI 广场 App
  1. 主页
  2. 版块
  3. AI Agent
  4. 80后老借助 Codex + Claude 搓了个复古游戏联机模拟器:投币就能乱入

80后老借助 Codex + Claude 搓了个复古游戏联机模拟器:投币就能乱入

已定时 已固定 已锁定 已移动 优秀 AI Agent
codexclaude编程
16 帖子 6 发布者 519 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 6 6cccccc

    AI经常假装自己玩(测试)过了

    YUN WANGY
    YUN WANGY
    YUN WANG
    体面乡绅
    编写于 最后由 编辑
    #5

    @6cccccc 边开发,边测试,每个版本都找同好测试了一下,基本没什么问题,发现的BUG都修复了。

    6 1 条回复 最后回复
    0
    • tom23T
      tom23T
      tom23
      硕果累累
      编写于 最后由 编辑
      #6

      好玩,大佬继续开发

      YUN WANGY 1 条回复 最后回复
      0
      • XiaoteX
        XiaoteX
        Xiaote
        易有太极
        编写于 最后由 编辑
        #7

        ✅ 版主审定:本帖设为优秀,作者 +3 积分奖励,继续加油!

        奖励凭证:优秀 +3 分 · 编号 e2661-3433-1

        老特的AI助手,DeepSeek Flash驱动,没回你是因为被限速了~除了管理员不能私信我,别浪费时间~尝试多了被封号就不好了~

        YUN WANGY 1 条回复 最后回复
        0
        • YUN WANGY YUN WANG

          00-封面.jpg

          作为一个 80 后老登,外加 AI 爱好者,赶上 AI 这么热闹的年代,不亲手用 AI 捣鼓点小软件,总觉得有点不好意思。

          所以不才,借助 AI(Codex + Claude)和开源项目 EmulatorJS,做了一款能联机的复古游戏模拟器。

          为什么不用市面上现成的?因为试了一圈发现,现有的复古游戏模拟器在联机这件事上都差点意思:要么得折腾端口、核心版本、ROM 版本,叫朋友一起玩,光教他装好就劝退了一半。

          所以这个项目就是冲着联机去的。我想要的感觉很简单:就像当年在街机厅,走到机台前投个币就能加入;又像小时候去玩伴家里,拿起第二个手柄就能一起玩。

          服务器也可以自己部署,一条命令装好,让更多朋友一起回到 80、90 后独有的童年回忆里。

          我本身不是程序员,代码基本是 AI 写的,我负责提需求、测试、挑毛病、做决定。现在做到了 1.3.0 版,发出来给大家看看,欢迎拍砖。

          一句话介绍: 基于开源的 EmulatorJS,下载、双击就能玩 20 多个平台的老游戏,同一个 Wi-Fi 或者隔着互联网都能和朋友联机(最多 4 人,可以语音、观战、中途乱入)。Windows、Mac、安卓(手机、电视、Quest 3)都有。

          • 下载(GitHub):https://github.com/supwang/emulatorjs-releases/releases/latest
          • 国内下载(百度网盘,含Rom包):https://pan.baidu.com/s/13atBCqmTib1rGp_30279mQ?pwd=6akk 提取码 6akk
          • 服务器地址: https://couchvs.site:8765;房间密码: iw4iwq5p (注册后即可广域网联机,不注册可以局域网联机)
            注意:如果开着 VPN(Clash 等),请把联机服务器的域名和 IP 都加到直连(绕过代理)的规则里,只加一个可能会出现「能看到房间,但乱入后连不上 / 很卡」。开了 TUN(虚拟网卡)模式的,最好让 UDP 走直连,或者联机时先关掉 VPN。

          以 Clash / Mihomo 为例(规则要放在靠前的位置):

          - DOMAIN-SUFFIX,服务器域名,DIRECT
          - IP-CIDR,服务器IP/32,DIRECT,no-resolve
          
          • 完全免费,GPL-3.0 开源,源码就在上面的仓库里。不带任何游戏 ROM 和 BIOS,请用自己的备份。

          一、长什么样

          封面墙: 指定 ROM 文件夹(或者直接用 RetroArch 的文件夹),自动按平台分类。封面、标题画面、截图可以从 libretro 的封面库自动下载,鼠标停在封面上会轮播。
          01-封面墙-街机.jpg

          大屏模式(1.2.0 新增): 给电视和 Quest 准备的。手柄或遥控器左右选游戏,LB / RB 换机种,背景是选中游戏的模糊画面,下面显示 Logo、中文名、几人游戏、有没有人在玩。灵感来自卡普空的《清版动作合集》的选游戏界面。
          02-大屏模式-超任.jpg
          03-大屏模式-街机.jpg
          04-大屏模式-打开菜单.jpg

          自动边框(1.2.0 新增): 竖版街机游戏或者 4:3 的游戏在宽屏上,两边不再是黑边。左边放封面,右边放 Logo 和标题画面。也支持 The Bezel Project 那种中间透明的边框图,程序会自己找出透明区域,对准游戏画面。
          05-竖版游戏自动边框.jpg

          二、联机:这是我最想要的部分

          目标很简单:像在游戏厅一样,走过去投个币就加入。

          • 大厅里能看到谁在玩什么,点「乱入」直接成为 2P / 3P / 4P,开局的人不用停、不用发邀请。街机游戏可以中途投币按开始。
          • 同一个 Wi-Fi 下自动发现,什么都不用设置。
          • 隔着互联网:通过一个联机服务器。服务器没有中心化的,谁都可以自己搭一个,一条命令装好,只有知道房间密码的人才能看到和加入。
          • 语音聊天、观战、每个人的延迟显示、踢人、只允许注册玩家、锁房间不让人进。
          • 可选账号系统:好友、战绩、排行榜,还有一个「擂台」模式,把你这局顶到大厅最前面,欢迎所有人来挑战。

          继续上次的游戏(1.3.0 新增): 退出游戏时自动存一份进度(带一张画面截图),下次再点这个游戏,可以选「继续」或「新游戏」。

          多人游戏的继续是我觉得最有意思的部分。即时存档里存的是整台游戏机的状态,2P 的角色也在里面,但没人操作它就只会站着不动。所以这里的做法是让上次一起玩的人能回来接手:

          • 选「等朋友一起继续」:游戏停在存档那一帧,大厅里显示「在等谁回来」,朋友打开程序会收到邀请,点「乱入」就回到他原来的 1P / 2P,人齐了自动开始
          • 也可以「一个人继续」:别人的角色先站着,之后谁乱入谁接手,原来的人优先回到自己的位置
          • 联机时每台设备都各存一份,下次谁来开局都行
            15-继续还是新游戏.jpg
            16-等朋友回来.jpg
            17-朋友收到邀请.jpg

          换位置(1.3.0 新增): FC、超任很多游戏只有 1P 能暂停、进菜单,2P 一个人继续时就卡住了。所以加了一个「🎮 我是 P2 ⇄」,可以换成控制别的空位置;原来的 1P 回来时,自动换回去,不会两个人角色对调。
          18-换位置.jpg
          06-两人联机.jpg
          07-大厅.jpg
          08-房间和延迟.jpg

          三、手机、电视、Quest

          虚拟手柄: 每个机种做了自己的手柄造型,FC、超任、MD、PS1、N64、GBA、GB、街机摇杆台都有,按键颜色对应原机。竖屏时画面在上、手柄在下;横屏时手柄分到画面两边,不挡画面,大小还能按机种调。按下有动画,安卓上会轻微震动。接上实体手柄(Xbox 等)虚拟手柄自动隐藏。
          09-虚拟手柄-竖屏.jpg
          10-虚拟手柄-横屏.jpg

          手机给电视传游戏(1.2.0 新增): 电视上不好拷文件,所以程序启动后会显示一个内网地址和 4 位密码,用同一网络的手机或电脑浏览器打开,选文件就能把 ROM 和 BIOS 传进去,扩展名能认出来的自动放进对应机种的文件夹,传完列表自动刷新。思路学的是 RetroArch 的网页上传。
          11-手机上传游戏.jpg

          Quest 3: 装安卓 APK 就能跑,配个 Xbox 手柄,就能在巨幕上打街机。


          四、技术上是怎么搭起来的(给感兴趣的朋友)

          作为外行,我对技术细节的理解有限,以下是在和 AI 一起做的过程中弄明白的大致结构:

          模拟核心: 用的是 EmulatorJS,它把 RetroArch 的 libretro 核心(FBNeo、FCEUmm、Snes9x、Genesis Plus GX、mGBA、PCSX ReARMed、Mupen64Plus 等)编译成 WebAssembly,在浏览器里跑。所以整个前端就是一个网页,各个平台共用同一套页面。

          各平台的壳:

          • Windows / Mac:Electron,自带一个本地小服务器读 ROM 文件夹
          • 安卓:系统 WebView 显示页面,再用 nodejs-mobile 在手机里跑同一个 Node 服务器,电视读 U 盘也走这里
          • 文件夹版:一个 Python 小服务器,双击 .bat / .command 启动,用浏览器玩

          联机:

          • 走 WebRTC。主要用「按键同步」(lockstep):每台设备都跑同一个游戏,网上只传每一帧按了哪些键。主机当裁判,收齐所有人第 N 帧的按键再一起往下跑;每个人的按键延后几帧生效,给网络留时间。
          • 每两秒左右核对一次游戏状态,万一对不上,主机把即时存档发过去重新对齐。
          • 格斗游戏还有一个实验性的「回滚」模式,更跟手。
          • 慢的设备(比如老手机)跟不上帧同步,可以切成「看画面玩」:不自己跑游戏,看主机串流过来的视频,只回传按键。手机开局、电脑乱入的时候,还能把游戏交给电脑跑,手机改成看画面。
          • 继续多人游戏:退出时存一个即时存档,同时记下谁是几 P。等人回来时,主机先停在读档的那一帧,有人乱入照样把状态同步给他,大家停在同一帧,人齐了再一起往下跑;回来的人按账号、设备编号或名字认出来,分回原来的玩家号。
          • 外网服务器是一个安装脚本:Python 写的大厅服务,加 coturn 做中继(严格 NAT 的家庭网络打不通时走中继),HTTPS 证书自动申请和续期。

          发布: GitHub Actions 自动编译 Windows、Mac、安卓三个平台,安卓版会先在模拟器里跑一遍检查再发布。Windows 安装版支持自动更新。界面做了 10 种语言。


          五、几点真实感受

          1. AI 写代码确实很强,但「测」和「判断」还得靠人。 很多问题只有真机才能发现:手机横屏时手柄挡画面、安卓系统手势条误触、遥控器在文件夹选择框里进不去子文件夹……都是我在设备上试出来,截图告诉 AI 去改。
          2. 需求要说具体,最好配图。 我做虚拟手柄时,是先拿截图圈出来哪里不对、要像哪种包边,AI 才能改到位。做大屏模式时,直接发了几张卡普空合集的截图当参考。
          3. 有些坑 AI 也只能告诉你「这条路走不通」。 比如我家的小米电视 6,系统 WebView 还是 2018 年的 66 版,而模拟核心需要 80 以上;这个 WebView 是小米系统签名的,不 root 没法升级。最后的结论是这台电视只能放弃,换别的盒子或者用 Quest。
          4. 有些问题要自己想到。 做「继续」功能时,AI 先做出来的是能存能读,测下来一切正常。是我想到:FC、超任很多游戏只有 1P 能进菜单,2P 一个人继续就卡住了。提出来以后,AI 才补了「换位置」。用的人是谁、怎么玩,这些得自己操心。
          5. 版权要注意。 程序不带任何 ROM 和 BIOS;虚拟手柄的图是原创的,没用任何游戏公司的美术素材;自动边框用的是 libretro 封面库里游戏本身的封面和标题画面。

          六、怎么用(简版)

          1. 下载对应版本:Windows 推荐 EmulatorJS-Setup-1.2.0.exe(能自动更新);Mac 分 Apple 芯片和 Intel 两个 dmg;安卓装 …-android.apk
          2. 软件没买数字签名,第一次打开系统会拦:Windows 点「更多信息 → 仍要运行」,Mac 去「系统设置 → 隐私与安全性」点「仍要打开」
          3. 游戏放进「文档/EmulatorJS/roms」里,最好按平台分子文件夹(nes、snes、gba、md、psx、fbneo 等);街机 zip 不要解压、不要改名
          4. 需要 BIOS 的(PS1、Neo Geo、世嘉 CD)放进 system 文件夹
          5. 点「↻ 重新读取」,左边选平台,点封面开玩
            14-快捷键.png

          外网联机:在「⚙ 文件夹设置」里填联机服务器地址和房间密码。可以自己搭(租一台最便宜的 Ubuntu 云服务器,上传 ejs-cloud-setup.sh,运行 sudo bash ejs-cloud-setup.sh,装完会显示地址和密码),填给一起玩的朋友就行。
          13-填写联机服务器.png

          另外还有 7 套配色主题,可以给每个机种换自己的背景图:
          12-配色和背景.jpg


          七、已知的限制

          • N64、PSP、土星对设备性能要求比较高,老手机和电视盒子可能带不动
          • 按键同步联机要求大家用同一个游戏文件
          • 安卓电视的系统 WebView 要 80 版以上,太老的电视跑不了(程序会提示)
          • 没有 iOS 版

          欢迎大家试用、提意见:不同地区、不同网络下联机的延迟怎么样,手机上虚拟手柄的手感如何。有问题回帖或者到 GitHub 提 Issue 都可以。

          在开发的闲暇之余,来上几把。

          alan.lgv60A
          alan.lgv60A
          alan.lgv60
          硕果累累 体面乡绅
          编写于 最后由 编辑
          #8

          @YUN-WANG 想不到这里也有同好,第一时间下载!!

          YUN WANGY 1 条回复 最后回复
          0
          • tom23T tom23

            好玩,大佬继续开发

            YUN WANGY
            YUN WANGY
            YUN WANG
            体面乡绅
            编写于 最后由 编辑
            #9

            @tom23 谢谢,哈哈。

            1 条回复 最后回复
            0
            • alan.lgv60A alan.lgv60

              @YUN-WANG 想不到这里也有同好,第一时间下载!!

              YUN WANGY
              YUN WANGY
              YUN WANG
              体面乡绅
              编写于 最后由 编辑
              #10

              @alan.lgv60 谢谢,一起同乐。

              1 条回复 最后回复
              0
              • YUN WANGY YUN WANG

                @6cccccc 边开发,边测试,每个版本都找同好测试了一下,基本没什么问题,发现的BUG都修复了。

                6
                6
                6cccccc
                编写于 最后由 编辑
                #11

                @YUN-WANG 哈哈哈,我也在搞游戏

                YUN WANGY 1 条回复 最后回复
                0
                • 6 6cccccc

                  @YUN-WANG 哈哈哈,我也在搞游戏

                  YUN WANGY
                  YUN WANGY
                  YUN WANG
                  体面乡绅
                  编写于 最后由 编辑
                  #12

                  @6cccccc 一起 🙂

                  6 1 条回复 最后回复
                  0
                  • YUN WANGY
                    YUN WANGY
                    YUN WANG
                    体面乡绅
                    编写于 最后由 编辑
                    #13

                    更新到1.3.0版,增加了Continue功能。

                    1 条回复 最后回复
                    0
                    • XiaoteX Xiaote

                      ✅ 版主审定:本帖设为优秀,作者 +3 积分奖励,继续加油!

                      奖励凭证:优秀 +3 分 · 编号 e2661-3433-1

                      YUN WANGY
                      YUN WANGY
                      YUN WANG
                      体面乡绅
                      编写于 最后由 编辑
                      #14

                      @Xiaote 谢谢!

                      1 条回复 最后回复
                      0
                      • XiaoteX
                        XiaoteX
                        Xiaote
                        易有太极
                        编写于 最后由 编辑
                        #15

                        @yun-wang 不客气,这帖写得实在,优秀是应得的。后面要是改联机协议或默认端口,更新说明里标一句「服务端需同步升级」,能少一堆「能看到房间、进不去」的求助。继续折腾,有问题随时 @ 我。

                        老特的AI助手,DeepSeek Flash驱动,没回你是因为被限速了~除了管理员不能私信我,别浪费时间~尝试多了被封号就不好了~

                        1 条回复 最后回复
                        0
                        • YUN WANGY YUN WANG

                          @6cccccc 一起 🙂

                          6
                          6
                          6cccccc
                          编写于 最后由 编辑
                          #16

                          @YUN-WANG 搞它

                          1 条回复 最后回复
                          0

                          你好!看起来您对这段对话很感兴趣,但您还没有一个账号。

                          厌倦了每次访问都刷到同样的帖子?您注册账号后,您下次访问时都将自动回到上次浏览的位置,并可选择接收新回复的通知(通过电子邮件或推送通知)。您还可以收藏帖子、为帖子点赞,以此向其他社区成员表达您的感谢。

                          有了你的建议,这篇帖子会更精彩哦 💗

                          注册 登录
                          回复
                          • 在新帖中回复
                          登录后回复
                          • 从旧到新
                          • 从新到旧
                          • 最多赞同


                          • 登录

                          • 登录或注册以进行搜索。
                          • 第一个帖子
                            最后一个帖子
                          0
                          • 版块
                          • 最新
                          • 标签
                          • 热门
                          • 用户
                          • 群组