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

新的开源文曲星 nc2000/nc1020 硬件模拟器

  •  6
     
  •   wangyucn · 11 天前 · 2610 次点击

    出于怀旧,做了文曲星 nc2000 和 nc1020 的模拟器。模拟器参考了泄漏的芯片资料,可以运行真机 rom ,效果和兼容性都堪比真机。

    给没用过的人也说下:文曲星是以前没电脑时候的神器,不但可以玩游戏,还可以写汇编、BASIC 、C 语言(lava)。OP 的汇编和 C 语言就是以前在文曲星上学的。

    截图

    image image image

    模拟

    支持以下 feature:

    • 运行从真机 dump 的 rom
    • 兼容真机软件,和各种自制内核
    • 下载, 上传文件, 保存状态
    • 发音,蜂鸣器
    • 4 灰度
    • 液晶格栅效果, 液晶残影, 液晶抖灰度, 液晶屏侧面的小图标
    • 热键唤醒, 闹铃唤醒

    基本上真机有的都支持。 不过串口和红外暂时没有模拟(因为也没什么大用)。

    附 NC2000 电路图:

    image

    兼容性

    经测试支持的 rom:

    • nc2000c 官方 3.5
    • nc2600c 官方 3.2, 3.5 内核 by Sun,4.1 内核 by qiqi, 4.1 内核保留剑桥版 by qiqi, 非常 4.2 内核 by 41824984, 5.0 内核 by epc
    • 哈电族 nc2000 官方 3.6B (注:nc2600 本质上跟 nc2000 本质上是同一型号,可以互刷)
    • nc1020 官方 3.6 4.9 ( wqx 编程俱乐部)
    • 哈电族 nc1020 官方 5.2

    软件兼容性(在 nc2600 上测试):

    • bin 兼容性:测试了 nc2600 能找到的几十个 bin 软件,只有一个 sun 加密的 hgp 浏览器 2.5 不能用(用了 CPU 指令的未定义行为)
    • lava 兼容性: 几乎 100%
    • basic 兼容性:几乎 100%

    跟其他模拟器对比

    之前有其它前辈也做过模拟器,不过都有些遗憾:

    • cc800 模拟器(曾半仙),pc1000emux(lee): 型号较老,软件资源不丰富,没有 lava
    • nc3000emux(lee): 因为缺乏芯片资料,发音部分无法模拟。游戏和单词都没有声音。
    • nc1020 模拟器(android 版,js 版):芯片 io 模拟不全,一些功能靠 hack 内存实现,兼容性不好。容易死机,甚至查单词会乱码。使用的是从 GGV 模拟器里提取的 rom 而不是真机 rom 。

    新的模拟器在前人工作基础上,实现了 NC2000 的支持(也顺便支持 NC1020),参考了泄漏的芯片资料做完善,兼容性堪比真机(至少 NC2000 可以这么说)。弥补了上述遗憾。

    源码和程序

    源码: https://github.com/wangyu-/NC2000

    下载: https://github.com/wangyu-/NC2000/releases

    交流

    项目主页 wiki 里可以找到一个文曲星群。很多 wqxnet/wqxsky/emsky 论坛上的大佬都在,比如曾半仙、lee 、诗诺比、SAILOR-HB 、_dragon 、eastsun 、isword 、红色激情、epc 、电脑蛙蛙...等等等等

    31 条回复    2025-08-28 20:38:24 +08:00
    zenfsharp
        1
    zenfsharp  
       11 天前
    我滴妈,太牛逼了 OP !
    lyric
        2
    lyric  
       11 天前 via Android
    想打赏点币
    wtks1
        3
    wtks1  
       11 天前
    厉害了
    01802
        4
    01802  
       11 天前 via Android
    前段时间买的这个 [闲鱼] https://m.tb.cn/h.hEHV2Id?tk=XVhd4mdEwPF CZ057 「快来捡漏 [赠品一份,崭新的掌声学习小电脑,准全新没有包装盒但是都带膜还] 」
    点击链接直接打开

    现在没货了

    给娃开眼界,挺好用的。
    levelworm
        5
    levelworm  
       11 天前
    多谢,准备下载下来研究一下大佬的源代码。粗粗看了下似乎是 65c02 的 CPU ,请问模拟这玩意主要的难点是什么?是不是资料不太齐全?还是说它的软件可能依赖于比较诡异的 timing ?(类似 atari 2600 )
    wangyucn
        6
    wangyucn  
    OP
       11 天前
    @lyric 不用了 之前 github 空投领的$200 币 因为一直懒得搞提现,都快跌没了也没领
    ETiV
        7
    ETiV  
       11 天前
    牛逼 66666
    想到了在我 cc800 上写 basic 的时光…,以及当时班上有个女同学,有个 nc1020 ,她也借给我玩,我至今都喜欢那种按键的手感…
    vivisidea
        8
    vivisidea  
       11 天前
    牛逼,我的计算机启蒙就是文曲星上的 basic ,有简单的指令可以绘制图形,当时觉得发现了新大陆上课都在写代码
    billzhuang
        9
    billzhuang  
       11 天前 via iPhone
    硬件还能模拟硬件,有点牛逼
    billzhuang
        10
    billzhuang  
       11 天前 via iPhone
    能去模拟去好玩点的计算器不
    Ti 的之类的,hp 的也行
    wangyucn
        11
    wangyucn  
    OP
       11 天前   ❤️ 2
    @levelworm 细节特别多,缺乏资料。 没有遇到诡异的 timing 。

    PCB 图上面的 CPU(严格来说 spdc1024 是 SoC ,内含 CPU)、DSP 、nor flash 、nand flash 全都要模拟。

    cpu 本身不难模拟,6502 cpu 模拟器网上有现成的。麻烦的是 SoC 上面各种特殊寄存器。0x00~0x3f 每一个都有不同的功能,比如切内存(实际上有好几段内存都可以切页,方式还不同)、timer0/1/A/B 、中断控制、驱动 lcd 、电压比较(测电池电量)、RTC 时钟、RTC 定时器、IO port(各种方向控制,锁存不锁存等细节)。0x00~0x3f 的寄存器几乎每一个单独拉出来细节都可以写一页纸。

    资料极度缺乏,当年文曲星流行的时候基本上就没有。SoC spdc1024 、DSP spds104a 厂家 sun plus 根本就没公开公布过任何资料。 后来 GGV 网站被攻击才泄露出来一些,但是很多细节资料里并没有解释,要猜和慢慢 debug 。

    nor 和 nand 擦除、修改等等操作,各有 10 来种指令序列,也要模拟。

    我也不是从头开始写的,我是从曾半仙的 cc800(另一型号文曲星,不过硬件差别挺大的)模拟器 fork 的。DSP 部分是 fork 的 lee 的 pc1000emux 里的代码,然后 debug 和看资料改进。
    zhujinliang
        12
    zhujinliang  
       11 天前
    太厉害了,是大佬
    zhujinliang
        13
    zhujinliang  
       11 天前
    原来是 UDPspeeder 和 udp2raw 的作者,太强大了
    wangyucn
        14
    wangyucn  
    OP
       11 天前
    @zhujinliang 现在在的公司就是做网络的 怕有利益纠纷不太敢搞网络相关的开源 所以做做别的东西
    Tink
        15
    Tink  
    PRO
       11 天前
    牛的大佬
    icyalala
        16
    icyalala  
       11 天前
    太厉害了!
    当年忘了哪个型号了,在上面能写 BASIC ,我还写了几个小游戏,好多关的打砖块,还有简单的类似英雄坛那样的小游戏。当年拿着纸写代码,也算是计算机入门了。。。可惜后来让母亲送人了,代码也找不回来了。。。
    levelworm
        17
    levelworm  
       11 天前
    @wangyucn #11
    多谢,这的确需要很强的耐心了,有些逆向的味道了。
    cooper
        18
    cooper  
       10 天前
    可惜我的 1020 ,没买一个月就被偷了。攒了很久的才买的,一想到这个想到就心痛不已。
    xi4oh4o
        19
    xi4oh4o  
       10 天前
    牛!以前主要玩 eebbk ,伏魔记,魔塔,侠客行
    marsgh
        20
    marsgh  
       10 天前
    我以前用的就是 nc2600c
    connecting
        21
    connecting  
       10 天前
    NB NB
    ctrlaltdeletel
        22
    ctrlaltdeletel  
       10 天前
    太强了 👍
    ajan
        23
    ajan  
       10 天前
    大神啊
    shuang
        24
    shuang  
       10 天前
    @xi4oh4o
    初中考上高中后,家里奖励了一台 bbk ,当时玩伏魔记太入迷了,不查攻略自己摸索,开心了一整个暑假
    goodryb
        25
    goodryb  
       10 天前
    当年借同学的,就拿来看小说和打游戏了,编程是一点没学
    wqywangweijia
        26
    wqywangweijia  
       10 天前
    我的文曲星 怎么没有 学编程的功能,不公平。T.T
    luoyide2010
        27
    luoyide2010  
       10 天前
    牛,有空体验下
    killadm
        28
    killadm  
       10 天前   ❤️ 1
    感谢,二十年前写的第一个程序成功跑起来了



    xygod
        29
    xygod  
       9 天前
    看了眼书柜里被砸了一个坑的 1020
    PanuiQ
        30
    PanuiQ  
       8 天前
    GVBasic 启动,当年我那个应该是 1020 ,写了人生第一个程序。lee 是当年那个 lava 的创始人么?
    Jet
        31
    Jet  
       8 天前
    死去的回忆突然攻击我
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1092 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 18:16 · PVG 02:16 · LAX 11:16 · JFK 14:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.