From 32f7d99c33a80833b734503555c41d8d74a19341 Mon Sep 17 00:00:00 2001 From: blondie7575 Date: Fri, 15 Sep 2017 18:10:59 -0700 Subject: [PATCH] Seemingly working rendering with PHY added --- V2Make.scpt | Bin 2460 -> 2460 bytes gamemanager.s | 4 +-- gscats.2mg | Bin 819264 -> 819264 bytes terrain.s | 66 +++++++++++++++++++++++++++++++------------------- 4 files changed, 43 insertions(+), 27 deletions(-) diff --git a/V2Make.scpt b/V2Make.scpt index eb180db3e574cd8fcbfb2819aeee9eaadc7db7d0..050b92c37e624b7e7145f208a416c33e339945e9 100644 GIT binary patch delta 22 ecmbOuJV$s#J{!}$?~@DJ{Fs&oZ9d3$n+X7C7YPFZ delta 22 ecmbOuJV$s#J{!|p_Q{28eoUK_HXmfW%>)2kdk8=P diff --git a/gamemanager.s b/gamemanager.s index f315c9e..57e85cc 100644 --- a/gamemanager.s +++ b/gamemanager.s @@ -41,11 +41,11 @@ beginGameplay: jsr clipTerrain ; Create players - lda #40 + lda #191 ldy #0 jsr playerCreate - lda #191 + lda #40 ldy #1 jsr playerCreate diff --git a/gscats.2mg b/gscats.2mg index 749d848d121d84b53f3b5f95bbfc9a972a6b45be..de2fabd2e5616a2c265789dd1e1e9da6af3c9525 100644 GIT binary patch delta 2543 zcmZ{m4{TG_9>-5xtnJubyE$HmIL7+~PgQBx z1D2*ibywIjW3yiy8~nq|1I~rovm~-jEA-vv(+cbIn^?rI5fXE|`-!{LPTsfs&b><_ z_J427^ zpl_)E=(#I2SvBOXKIZ6IW-Q6&O#HKPk2X$}$*NLdzR{>pRyoOduRRA>DwXUfnPXT` zYbLo|_)D#ggpc!-=J08(wraPXd{g6&{3Y|VVDS%~7j zy;`#pC03*MvblqS-VaxV+Vlz0!?I%2j|F8y)WTL@enJF_`|?>)$%^_}(U;GON={68 zt4DI8t9p5}cqWa!fjTWz(`s(dJ4oKR7^m| zt2}yKeRb^anI|NpJY9+X6YAly+R%Wc2y#M~JV6Ih7R!m_lCo4zoRE}zW$KgL1Eo?4 zNIWk>qHC9xcJ?5=@jJ+)&JUu>`cS7-=X$ zvIIv;5SVu+TE?f}40K5S=45jSHV>s-_#G+vTS~d!hEk%JOG-GP5)P<@11jNwN;ser z4yXj-@nMw0Lnws-#OT>peIs)<(rrv%#RMDurc-~K z88%wz)Yss*i|K3eyPoZHB~Q~&c2G^G`@5*8OJ5K15dFMU-+%+Z?$n=TMyzF>L-(`U zX)7@*6hHgG&tT5J^(@fmXW>cojwe}wuBcKru`*=~^91)3Wh=w=77EHLh6xf2z_5e# ziPqxir;7o(6j%f0*7DjFZ?*;q2@^spNujd0{!aC;7uHFeSb8-vzMnlCDh7@S`X**% z@4w&d6qj&BK!C~sFtZ5|fzoEg1c-TcP9yo=*REBrk7Kk_?4lZ=rAEm|M=;oV(4Kl1I>XrL8GSlz%Ddw`ZxVrQP*%O5I zHOM-Z(G*ixUv&!<%oR~`DQ~SctjH@)+nkFRE2+6lhrB_6}KNBnW zc4P6YG|^2%0C|{$_H^O)u4lNn8<}aAap=I_1)5E9AMYr7$`re`Jx;S*+2f%d+*59_ zqC0XxPeBL`qp9!^nhFOr6%J@B9MDuapr>#^PvL-`!T~*n19}Pv^b`*0DICyKZm?;P z^$ytFJK)vog_942;Jh{!?(5dQvSIJ@$}Ri4e=T+%o&|GnItxIo3(ta?Kc59~6zuIz z++bKcl|q0COaQqifLaqktqG6Ti$wytW(ee(0CG(Lxh8;I6F{yBAlC$tYXZncP!C_O zSv60N!?_n98kKz47l1Tj#{N+$05801 za-9ClZ8{YH?XcQ<%<@vjl~*dRSfE*<*`UpUb{jN1wA-OMpgEzHeO7U0=91Tb0+#}% A(EtDd delta 2607 zcmZ{m4{Q@v9LHZMo=#*p@2B1P6ith6TO?Oh6X{`xp#xaXqbt; zDAk2{GQ1G1PF;$Bdc!lunV7m%3P#hKja=q{t@sD#GFf0)QH)~Z{JnQQMT2eL-RJ%8 z_kQ=j_paa9jB-mxx#fel%SuNg=*H^Xya;`U+!UNzo%8el)!dcOIC?c{$4W<8zqUhh z%xVhhnf|Mu-|tz}yBX;-J@bS5)cwQE zB{=mKN`7gYo&R6qLk<#Yg)Ad`$aic=OYb8ns&|*ixE*f1%ikq<1NuI+g^O{@*-kd8 zUJ!s#&vAd6FZM&m;A?{}gkUX5Vb>az zafGZ=Iw+r)o(`>B7loAp;3`vV3^|2h$vhErH4FuQSceV;?Pm;lOxp* zUiP zY#d1WMK3|hj}7*y)E-H#kW+i5K*WvI1#&7SsSD-QfTUs>SIMp6ixWpgNK}uCI;4)W zV_w9SY!>jGq13ve^+dRK=w8C(;Pm<^iOmb@S@io}Nhr-_U>@GS^wp2SQ1FC}o)xm)3U_f;+pgP8+T6iE- z2n$gm45$tUR0jj9g8|jSfa(~Nn2y`W{LA)8k;MpK=S>JmUl9U;)lCEuHa&^Ek-nNm z2Bbt2i!>ws9u`S!v9ZMur$ZcPo*zA}ei|AV5~$aaPKV5rQzu;JuPN zQ!q>56o?4%OehQ23zg7a2cKey=9K(%**w|xVn*}jZ*zRnUzgANs*kmP-}-aw>_}x~ zWh4}dM&6Bl6>+sKYwKv+-*&p~=Et9U{ImWgKiuJpmRr__`#p)OD!j#wzwzU(e*8zN zegplPv0f@Kn38 zlAbTL8>{Gf4%x+LPT)7TVok;`bYN$PQ48@Xey817LkAvgHf>UlEUPQ6;`Ks&qD$QCDx(#0e4H2y`Zv=7u;}(^x3(Ee6w@E(-c&m|C2dd)5+bFEGXl?`par8$LM@fyw%0!z<^I z(iWu$y9Ed*tDH>VDs`L)x8|O5@;AW{`?`G&5Vx$lt-J}6b0fi>%OTzc+X{ZHL;0Ov}rO*H_ZcGsMFmo}J9f!qihOXscJt>^W(Z1#!LS{8&UosbeEz;|AXz8c7(dy^% zK6aj_Z(nBzU4vRe7ho;1Tr>$Cc&6b7OLWgxaBs*>jgx=-CbOF;_~rz;lyAnjGQXK5 zMc-sV{e}Vc8wS*G7*M}qK>daR^&1A%Zx~R!VLE{%>`{1w9BAz&}Kt(L-RoMemwWwoLgV|3ri2Gwg3PC diff --git a/terrain.s b/terrain.s index cbd8eab..a35f462 100644 --- a/terrain.s +++ b/terrain.s @@ -21,7 +21,8 @@ VISIBLETERRAINWINDOW = 80 ; In words ; renderTerrain: FASTGRAPHICS - ldy #MAXTERRAINHEIGHT + lda #MAXTERRAINHEIGHT + sta SCRATCHL2 ; Row counter lda #$9cff ; 4 Point stack to end of VRAM tcs ; 2 @@ -31,8 +32,9 @@ renderTerrain: sta PARAML0 renderTerrainLoop: - lda #$0000 ; Background - ldx #$1111 ; Foreground + lda #$0000 ; BG/BG + ldx #$1111 ; FG/FG + ldy #$1100 ; BG/FG jmp (PARAML0) renderRowComplete: @@ -40,7 +42,7 @@ renderRowComplete: sec sbc #COMPILEDTERRAINROW sta PARAML0 - dey + dec SCRATCHL2 bne renderTerrainLoop SLOWGRAPHICS @@ -227,9 +229,9 @@ compileTerrainDone: ; PARAML0 = Start of compiled row data ; PARAML1 = Row index ; -; Note: DA = PHX = BGBG -; 48 = PHA = FGFG -; 5A = PHY = +; Note: DA = PHX = FG/FG +; 48 = PHA = BG/BG +; 5A = PHY = BG/FG ; 0B = PHD = compileTerrainRow: @@ -240,23 +242,30 @@ compileTerrainRow: compileTerrainColumnLoop: stz compileTerrainOpcode - ; Right half + ; Rightmost byte lda terrainData,x cmp PARAML1 - bcc compileTerrainColumnBGRight - beq compileTerrainColumnBGRight + bcc compileTerrainColumnBG0 + beq compileTerrainColumnBG0 + + inx + inx + lda terrainData,x + cmp PARAML1 + bcc compileTerrainColumnBG1 + beq compileTerrainColumnBG1 + + ; Columns 0 and 1 are FG/FG, so PHX lda #$00da -compileTerrainColumnLeft: +compileTerrainColumn2: sta compileTerrainOpcode inx inx - inx ; Double-up for now - inx lda terrainData,x cmp PARAML1 - bcc compileTerrainColumnBGLeft - beq compileTerrainColumnBGLeft + bcc compileTerrainColumnBG2 + beq compileTerrainColumnBG2 lda compileTerrainOpcode ora #$da00 @@ -264,7 +273,7 @@ compileTerrainColumnStore: sta (PARAML0),y inx inx - inx ; Double-up for now + inx inx iny iny @@ -274,11 +283,21 @@ compileTerrainColumnStore: RESTORE_AXY rts -compileTerrainColumnBGRight: - lda #$0048 - bra compileTerrainColumnLeft +compileTerrainColumnBG0: -compileTerrainColumnBGLeft: + ; Columns 0 and 1 are BG/BG, so PHA + lda #$0048 + inx ; PHD check goes here? + inx + bra compileTerrainColumn2 + +compileTerrainColumnBG1: + + ; Columns 0 and 1 are BG/FG, so PHY + lda #$005a + bra compileTerrainColumn2 + +compileTerrainColumnBG2: lda compileTerrainOpcode ora #$4800 bra compileTerrainColumnStore @@ -313,16 +332,11 @@ generateTerrainLoop: sta (SCRATCHL),y iny iny - sta (SCRATCHL),y ; Double-up for now - iny - iny inx inx inx inx - inx - inx txa and #$03ff @@ -333,6 +347,8 @@ generateTerrainLoop: lda #1 sta terrainData + lda #2 + sta compiledTerrain-4 rts