From 3fa62291eb9bf1d5a590a375e3fefbd4924b881c Mon Sep 17 00:00:00 2001 From: Joshua Bell Date: Thu, 10 Oct 2024 19:38:17 -0700 Subject: [PATCH] MGTK: Shave 15 bytes by optimizing InflateRect No functional changes. --- mgtk/mgtk.s | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/mgtk/mgtk.s b/mgtk/mgtk.s index d53de922..eb05d7f6 100644 --- a/mgtk/mgtk.s +++ b/mgtk/mgtk.s @@ -10621,13 +10621,34 @@ ydelta .word END_PARAM_BLOCK ldy #0 - sub16in (params::rect),y, params::xdelta, (params::rect),y + + ;; Subtract from x1 and y1; Y is 0...3 + ldx #2 +: sec + lda (params::rect),y + sbc params::xdelta,y + sta (params::rect),y iny - sub16in (params::rect),y, params::ydelta, (params::rect),y + lda (params::rect),y + sbc params::xdelta,y + sta (params::rect),y iny - add16in (params::rect),y, params::xdelta, (params::rect),y + dex + bne :- + + ;; Add to x1 and y1; Y is 4...7 + ldx #2 +: clc + lda (params::rect),y + adc params::xdelta - 4,y + sta (params::rect),y + iny + lda (params::rect),y + adc params::xdelta - 4,y + sta (params::rect),y iny - add16in (params::rect),y, params::ydelta, (params::rect),y + dex + bne :- rts .endproc ; InflateRectImpl