小编Qui*_*ver的帖子

应用负 HMP0 值时渲染 ATARI-2600 Sprite 时出现问题

有人质疑 ATARI-2600 吗?

在此输入图像描述

当一个字节存储在 TIA HMP0 寄存器中时,精细位置调整将应用于粗略光束位置。Stella 手册称该值可以是 -8 到 7 之间的任何值。其中 -8 是(二进制 1000),7 是(二进制 0111),因为半字节被读取为二进制补码。

我的问题是,当应用任何负的精细位置值时,我无法让 Sprite 渲染。作为演示,请观察由于 HMOVE 按栅格线移动的结果而为 Sprite 0 渲染的对角线。然而,当应用的值的高位为 1(也称为负数)时,精灵就会消失,并且该扫描线上没有任何内容。为了进行比较,Sprite 1 将屏幕长度渲染为一条直线,b/c 没有应用精细位置。

可见线循环的代码如下:

ScanLoop
    REPEAT 10   ; wait to 
      nop       ;   get beam 
    REPEND      ;       arbitrarily near center
        
    ; All we do here is ++ the hi nibble in the Accumulator
    ; and apply it to HMP0 to adjust the fine position.
    ; QUESTION FOR READER: WHY DOESN'T THE SPRITE RENDER WHEN
    ; …
Run Code Online (Sandbox Code Playgroud)

assembly 6502 atari-2600 batari-basic

4
推荐指数
1
解决办法
118
查看次数

标签 统计

6502 ×1

assembly ×1

atari-2600 ×1

batari-basic ×1