NES 64–Commodore 64内核和基本ROM移植到NES

2022-02-17 03:08:30

大家好,我';我不熟悉这些论坛,但我';我几十年来一直在搞6502组装。。。几年前,我有一个疯狂的想法,尝试将Commodore 64内核和基本ROM移植到NES,因为它们的CPU基本相同。但当PPU的事情变得复杂时,我放弃了。几周前,我看到有人把它移植到Atari 1200XL上,所以我决定';我会再试一次。这一次,我能够制作一个(大部分)工作系统。下面是一些视频:我可以';我们无法在硬件上测试它,但在仿真中似乎还可以。因为它需要家庭基本键盘支持,我想我';我只限于FCEUX和BizHawk,尽管我可以';我得不到BizHawk';它的键盘支持根本不起作用。FCEUX 2.6.2似乎也有点问题,所以我不得不为它编写一些解决方案。我';我也不确定是否发布该项目的代码。虽然似乎没有人关心github周围已经存在的各种各样的问题。。。实现细节我使用了MMC5映射器,这样我就可以在文本屏幕上使用ExRAM,而不用担心在PPU中读/写字节。内核和基本ROM每个都是8KB,所以我把它们放在最后两个存储库中(C000-$FFFF),并用PRG RAM(6000-$BFFF)填充其他存储库。OS RAM的第一个字节是保留的,其余字节可供BASIC使用。因此";24575字节空闲";在启动屏幕中:$C000-$6001=$5FFF=24575。CHR ROM只包含C64中的默认all caps字符集。我禁用了所有的映射器';s中断,但操作系统用于键盘扫描的光栅扫描除外,因为它';如果使用MMC5,它将免费获得8位到16位的乘法器。我测试了它,它很有效,但我可以';我找不到它的实际用途。(并不是说这个项目有任何实际用途!)原始代码来自我在github上发现的一个带大量注释的反汇编。我需要做一些小的修改,让它与ca65组装在一起,主要是在标签后添加冒号。为了给新代码腾出空间,我删除了与数据盒带、调制解调器、RS232设备和彩色RAM相关的部分。注意事项/未来工作FCEUX似乎只支持字母的shift键。例如,";shift+A";工作,但是";shift+1和#34;不';不要注册为按键。因此';It’没办法打"", 或者大多数其他符号';d.基本的需求。然而,控制键组合是有效的,所以我让键盘代码表现得好像控制键和shift键一样。C64文本屏幕是40列乘25行。我把它改为32x30,这对模拟器来说很好,但我意识到它';它超出了电视的显示范围。(Family BASIC的文本屏幕只有28x24。)进一步缩小它将需要大量代码更改,以忽略每个屏幕行前后的屏幕RAM字节。因此';这就是我现在的全部。我希望你喜欢这本书!我仍然可以';I don’我根本不相信它能起作用。