标签: c64

模拟器如何工作以及它们是如何编写的?

模拟器如何工作?当我看到NES/SNES或C64模拟器时,它让我震惊.

http://www.tommowalker.co.uk/snemzelda.png

您是否必须通过解释其特定的装配说明来模拟这些机器的处理器?还有什么进入它?它们通常是如何设计的?

你能为有兴趣编写模拟器(特别是游戏系统)的人提供建议吗?

c64 emulation

968
推荐指数
11
解决办法
29万
查看次数

在Commodore 64中绘制屏幕边框

好.我希望它不会被关闭,因为我有25年的好奇心,我很想理解这个伎俩.

在商品64中,6569 VIC无法解决边界问题.您所能做的就是在中心区域绘制像素,即光标移动的像素.边框总是均匀的,虽然你可以用捅53280改变它的颜色,如果我没记错的颜色.

尽管如此,我清楚地记得游戏介绍边框的特色是图形,就像完全可以寻址一样.我试图理解它是如何工作的,但从未达到过这一点.传说说这是一个聪明的精灵用途,在某些情况下,可能会被边界划出,但我不知道它是否是一个都市传说.

编辑:只需从提供的链接中读取此内容即可

精灵在垂直光栅线上复用(超过8个精灵,有时多达120个精灵).在Group Crest于2007年5月发布Krestage 3之前,人们普遍认为在一条栅格线上不会出现超过8个精灵,但是分配新的Y坐标会使其重新出现在屏幕下方.

这是邪恶的....你击败了栅格并重新定位精灵然后到达那里......

c64 commodore retro-computing

56
推荐指数
3
解决办法
6696
查看次数

如何在C64的边框上显示精灵?

我看过很酷的C64演示,在屏幕的边框区域显示精灵.这不应该是可能的; 我认为他们设法以某种方式欺骗了图形芯片.他们究竟是怎么做到的?

border c64 sprite

38
推荐指数
3
解决办法
6546
查看次数

B64版本的C64代码艺术:10 PRINT CHR $(205.5 + RND(1)); :GOTO 10

我拿了一本书10 PRINT CHR $(205.5 + RND(1)); :GOTO 10

本书讨论了Commodore 64 BASIC单行产生的艺术:

10 PRINT CHR$(205.5+RND(1)); : GOTO 10
Run Code Online (Sandbox Code Playgroud)

这只是从PETSCII集中反复打印字符205或206到屏幕:

我不确定为什么原版使用字符205和206而不是相同的109和110.另外,我更喜欢在开头添加一个清晰.这就是我通常在C64中输入的内容:

1?CHR$(147)
2?CHR$(109.5+RND(1));:GOTO2
RUN
Run Code Online (Sandbox Code Playgroud)

您可以在模拟器中尝试这一切,例如使用Flash或JavaScript的模拟器:


我觉得写一个bash行来做类似的事很有趣.

我目前有:

clear; while :; do [ $(($RANDOM%2)) -eq 0 ] && (printf "\\") || (printf "/"); done;
Run Code Online (Sandbox Code Playgroud)

两个问题:

  1. 有什么建议让这个更简洁?
  2. 有关更好的输出特性的任何建议吗?前锋和后退的斜线并不是那么漂亮,因为他们的分数不对齐.PETSCII使用的字符是特殊字符,而不是斜杠.我没有看到任何可以正常工作的ASCII,但也许你可以建议一种方法从UTF-8或其他东西中提取一个角色?

迄今为止最好的答案

bash最短(40个字符):

yes 'c=(? ?);printf ${c[RANDOM%2]}'|bash
Run Code Online (Sandbox Code Playgroud)

这是一个简短的zsh(53个字符):

c=(? ?);clear;while :;do printf ${c[RANDOM%2+1]};done
Run Code Online (Sandbox Code Playgroud)

这是我喜欢放在.bashrc或.profile中的别名

alias art='c=(? ?);while :;do printf "%s" ${c[RANDOM%2]};done'
Run Code Online (Sandbox Code Playgroud)

有趣的是将此与我可以为C64 BASIC(23个字符)做的最短时间进行比较:

1?C_(109.5+R_(1));:G_1
Run Code Online (Sandbox Code Playgroud)

下划线分别是shift + H,shift …

bash c64

20
推荐指数
2
解决办法
7836
查看次数

如何在Commodore c64上从软盘自动启动程序

好消息,我的c64在我的阁楼花了很多年的时间后仍在运行..
但我一直想知道的是:

我怎么能自动加载运行及从程序软盘是已经插入
,当我打开了C64?

一些自动运行命令load "*",8,1就足够了......

关心
MoC

autorun c64

17
推荐指数
2
解决办法
3108
查看次数

如何在Commodore 64中禁用屏幕?

我知道这个问题是非常特殊的问题,但我知道这里有一些c64代码大师.所以,这是我的问题.

当我尝试使用$ d011技巧禁用屏幕时,上/下边框也会打开.我想这样做而不打开上/下边框.可能吗?

c64 commodore 6510

17
推荐指数
1
解决办法
880
查看次数

如何重现类似C64的声音?

我做了一些自己的研究,发现SID芯片只有很少的硬件支持合成功能.包括三个带有四种可能波形(锯齿波,三角波,脉冲,噪声)的音频振荡器,带有ADSR包络和环形调制器.配有振荡器同步和环形调制器.另外还有一种方法可以播放单个PCM声音.

这一切都很少,但我仍然从电视机中听到很多不同的声音.它们如何组合以产生各种音频?

为了给出一些细节,我想知道如何将这些组件组合起来制作吉他,钢琴或鼓状音频?另一个有趣的事情是C64特有的不同的嗡嗡声和声音.

audio synthesis c64

15
推荐指数
1
解决办法
3173
查看次数

为什么PRINT'ing一个真正的布尔表达式输出-1?

在Commodore 64 BASIC V2中,打印一个真正的布尔表达式输出-1:

READY.
A=(5=5)

READY.
PRINT A
-1
Run Code Online (Sandbox Code Playgroud)

为什么-1而不是1?

在此输入图像描述

basic c64

12
推荐指数
2
解决办法
451
查看次数

等待$ D012的更改(C64汇编程序)

我在仿真C64机器上玩asm时遇到了一些问题.

我想要做的是检查键盘上的键"N"是否被按下,然后程序应该等待更改显示在地址$ D012上.现在我不明白的是我如何"等待"改变出现?任何人都可以告诉我它的全部意义吗?

检查键盘上的N按钮是否按下很简单 - 只需使用子程序FFE4(输入)和FFD2(输出).

我真的不想要为我做任何事情,但如果我能得到关于D012如何工作以及如何"等待"改变的快速信息,我将非常感激.

提前致谢!

assembly c64 6502

10
推荐指数
1
解决办法
2039
查看次数

使用xa65汇编程序创建Commodore 64 .prg

我正在尝试学习6510汇编,因为我正在运行Debian xa65是我想要使用的汇编程序.

到目前为止,我写了一段看起来像这样的代码:

*=$0801
.byte $0c, $08, $0a, $00, $9e, $20
.byte $34, $30, $39, $36, $00, $00
.byte $00

*=$1000
INC 53280
INC 53281
JMP $1000
Run Code Online (Sandbox Code Playgroud)

现在,第一个.byte部分一旦加载就会被"自动启动"程序.这是我从教程中找到的东西,据我所知,它只会运行SYS 4096,使CPU开始执行地址$ 1000的代码

其余的代码应该只是开始闪烁C64的外边框和内边框,并永远重复.

组装时我只需运行以下命令:

xa test.s -o test.prg
Run Code Online (Sandbox Code Playgroud)

然后我尝试将test.prg加载到VICE中进行测试.使用LOAD"TEST.PRG",8,1:即使文件加载它也不会自动启动,如果我键入RUN则没有任何反应:如果我键入LIST则相同: - 唯一的结果是着名的READY.和光标一样快乐地闪烁着.

我试图删除自动启动的东西,只组装从*= $ 1000开始的代码,但我得到了相同的结果.尝试从SYS 4096开始也会导致READY,仅此而已.

我确信我没有正确使用xa汇编程序,但我无法弄清楚我是如何为C64创建一个合适的PRG文件来使用的.我究竟做错了什么?

assembly c64 commodore 6510

10
推荐指数
2
解决办法
1370
查看次数

标签 统计

c64 ×10

commodore ×3

6510 ×2

assembly ×2

6502 ×1

audio ×1

autorun ×1

bash ×1

basic ×1

border ×1

emulation ×1

retro-computing ×1

sprite ×1

synthesis ×1