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

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

  •  6
     
  •   wangyucn · 4 天前 · 2249 次点击

    出于怀旧,做了文曲星 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  
       4 天前
    我滴妈,太牛逼了 OP !
    lyric
        2
    lyric  
       4 天前 via Android
    想打赏点币
    wtks1
        3
    wtks1  
       4 天前
    厉害了
    01802
        4
    01802  
       4 天前 via Android
    前段时间买的这个 [闲鱼] https://m.tb.cn/h.hEHV2Id?tk=XVhd4mdEwPF CZ057 「快来捡漏 [赠品一份,崭新的掌声学习小电脑,准全新没有包装盒但是都带膜还] 」
    点击链接直接打开

    现在没货了

    给娃开眼界,挺好用的。
    levelworm
        5
    levelworm  
       4 天前
    多谢,准备下载下来研究一下大佬的源代码。粗粗看了下似乎是 65c02 的 CPU ,请问模拟这玩意主要的难点是什么?是不是资料不太齐全?还是说它的软件可能依赖于比较诡异的 timing ?(类似 atari 2600 )
    wangyucn
        6
    wangyucn  
    OP
       4 天前
    @lyric 不用了 之前 github 空投领的$200 币 因为一直懒得搞提现,都快跌没了也没领
    ETiV
        7
    ETiV  
       4 天前
    牛逼 66666
    想到了在我 cc800 上写 basic 的时光…,以及当时班上有个女同学,有个 nc1020 ,她也借给我玩,我至今都喜欢那种按键的手感…
    vivisidea
        8
    vivisidea  
       4 天前
    牛逼,我的计算机启蒙就是文曲星上的 basic ,有简单的指令可以绘制图形,当时觉得发现了新大陆上课都在写代码
    billzhuang
        9
    billzhuang  
       4 天前 via iPhone
    硬件还能模拟硬件,有点牛逼
    billzhuang
        10
    billzhuang  
       4 天前 via iPhone
    能去模拟去好玩点的计算器不
    Ti 的之类的,hp 的也行
    wangyucn
        11
    wangyucn  
    OP
       4 天前   ❤️ 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  
       4 天前
    太厉害了,是大佬
    zhujinliang
        13
    zhujinliang  
       4 天前
    原来是 UDPspeeder 和 udp2raw 的作者,太强大了
    wangyucn
        14
    wangyucn  
    OP
       4 天前
    @zhujinliang 现在在的公司就是做网络的 怕有利益纠纷不太敢搞网络相关的开源 所以做做别的东西
    Tink
        15
    Tink  
    PRO
       4 天前
    牛的大佬
    icyalala
        16
    icyalala  
       4 天前
    太厉害了!
    当年忘了哪个型号了,在上面能写 BASIC ,我还写了几个小游戏,好多关的打砖块,还有简单的类似英雄坛那样的小游戏。当年拿着纸写代码,也算是计算机入门了。。。可惜后来让母亲送人了,代码也找不回来了。。。
    levelworm
        17
    levelworm  
       4 天前
    @wangyucn #11
    多谢,这的确需要很强的耐心了,有些逆向的味道了。
    cooper
        18
    cooper  
       4 天前
    可惜我的 1020 ,没买一个月就被偷了。攒了很久的才买的,一想到这个想到就心痛不已。
    xi4oh4o
        19
    xi4oh4o  
       4 天前
    牛!以前主要玩 eebbk ,伏魔记,魔塔,侠客行
    marsgh
        20
    marsgh  
       4 天前
    我以前用的就是 nc2600c
    connecting
        21
    connecting  
       4 天前
    NB NB
    ctrlaltdeletel
        22
    ctrlaltdeletel  
       4 天前
    太强了 👍
    ajan
        23
    ajan  
       4 天前
    大神啊
    shuang
        24
    shuang  
       4 天前
    @xi4oh4o
    初中考上高中后,家里奖励了一台 bbk ,当时玩伏魔记太入迷了,不查攻略自己摸索,开心了一整个暑假
    goodryb
        25
    goodryb  
       4 天前
    当年借同学的,就拿来看小说和打游戏了,编程是一点没学
    wqywangweijia
        26
    wqywangweijia  
       3 天前
    我的文曲星 怎么没有 学编程的功能,不公平。T.T
    luoyide2010
        27
    luoyide2010  
       3 天前
    牛,有空体验下
    killadm
        28
    killadm  
       3 天前   ❤️ 1
    感谢,二十年前写的第一个程序成功跑起来了



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