From 5345f809a00170921700b82cb10136306492f852 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Mon, 14 Dec 2020 16:08:31 -0500 Subject: [PATCH] duke: fix scroll glitch --- duke/duke.s | 2 +- duke/maps/level1_map.png | Bin 8775 -> 9047 bytes duke/move_duke.s | 8 +++++--- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/duke/duke.s b/duke/duke.s index bbafa9e8..97bc4b3a 100644 --- a/duke/duke.s +++ b/duke/duke.s @@ -61,7 +61,7 @@ duke_start: lda #18 sta DUKE_X - lda #18 + lda #20 sta DUKE_Y lda #1 sta DUKE_DIRECTION diff --git a/duke/maps/level1_map.png b/duke/maps/level1_map.png index 4208b411f80b80853a8b788407615e01deb7ac58..7f52402dfed212d48bec1dbf934ab1ee15e629bb 100644 GIT binary patch delta 3983 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 diff --git a/duke/move_duke.s b/duke/move_duke.s index 5307da31..85944830 100644 --- a/duke/move_duke.s +++ b/duke/move_duke.s @@ -184,9 +184,11 @@ duke_get_feet_location: ; + 1 is because sprite is 4 pixels wide? - ; screen is 16 wide, but ofsset 4 in + ; screen is 16 wide, but offset 4 in - ; block index of foot is (feet approximately 8 lower than Y) + ; to get to feet add 6 to Y? + + ; block index of foot is (feet approximately 6 lower than Y) ; INT((y+4)/4)*16 + (x-4+1/2) ; FIXME: if 18,18 -> INT(26/4)*16 = 96 + 7 = 103 = 6R7 @@ -203,7 +205,7 @@ duke_get_feet_location: lda DUKE_Y clc - adc #6 ; +4 + adc #4 ; +4 lsr ; / 4 (INT) lsr