From 391ee7e45ca826cb2472a8c328e4fd04a41e1ee9 Mon Sep 17 00:00:00 2001 From: LinkHpp Date: Fri, 3 May 2024 21:53:57 +0200 Subject: [PATCH] implemented .nam and .pal files --- helloworld.nes | Bin 40976 -> 40976 bytes src/background.nam | Bin 1024 -> 1024 bytes src/background.pal | Bin 16 -> 64 bytes src/helloworld.asm | 69 ++++++++++++++++++++++----------------------- src/helloworld.o | Bin 17025 -> 17044 bytes src/reset.o | Bin 873 -> 873 bytes src/starfield.chr | Bin 8192 -> 8192 bytes 7 files changed, 33 insertions(+), 36 deletions(-) diff --git a/helloworld.nes b/helloworld.nes index 99f44a04740c65a4908968acc01ba8bfd3d89222..9896830bc521c003d7f2e3e7ec5e32a1c9b4a7d1 100644 GIT binary patch delta 885 zcmY*XZAep57=G`EyH__oo71IpZdaXce&y2nmBV`zA&H_Qg<(kgN6iZSA*eKV=LaIx zWO)txXNW(PD2N3?5$;bQlrTbx)O4W4{!|N!md(4)W=TDq`@ZLS&-0%5p7$JIfb`+v zCaAmO?aTbMf}4k=c?n})h6{(d;P=NQH_!cDS-R-e!qS*G3+CYgJkes&N-+943&J5f z7%3+?^{*wL7q}&(m*CEw9hEK-egT2nhExSrC`D&MN_`13;JK!-8f6yQk=9&;zgm=i zybkFsbtu;(KGW89ZRIW+{olBl-#38%n zrP8JIq!N3TlutdQY$qphJfEzp#x7fWlv3=s(Lur}sBHq+XrKuIHIQm-Y#tEsegddd z{6@u_5h=}c=0dU>HWV`PyeJ;hR04ydD5dg{`#czdKp+_8fFOa+pv%fmRPeXD2^u^C za0A@h+ThdJ_N2$J8TTMR=lM#Cf>l?dJC@jiH6p|i8JYdFec>R0$}k*>gqXbSGM!Zb zipemrSQL(~Icn1sL?lw5qoQ#jI`Po=a3TsY>=IqW;BYi=j&3$P031E;9_&m7>#6Gn zCIDlT+++kdRyZ8kxqCV~dfd>&nDBXaSGJNzFz|dR8rznCEXOhDfE8eCWmgn=#PGZ! zDT&9w$nsV+l;{_5QUTT8$w6y5?%zKkb#}}MCjZ)NP^8Wb_J5K96soD&%p043aHK92 zi;MYU9ts7$9yS8dA}=h&7GlssI-PKZk~HJeb(&zcTq1*JSY5iQs=M?3)g6Fzd>P9; z2{j|JpYp*$T$bZt6nM-=#ll-2pQZ7lhD*oFBeIW_rp z1w_F#hz-P(1DHa&85kJO0x=NiPEKSJVbcY&^v_OKWYM2oz@#vFEi>=rTqbTH%`@4S zdHdu5X7kBsSyeX&uv}o2V-PTKU@%|->lR>O5?~NuFlbRGH@&W)h9z!z# diff --git a/src/background.nam b/src/background.nam index bbfc52f2e8b35393abf44771f137c7200f119ee1..3b47e6160b532bbed93033e175aea2a424dd7323 100644 GIT binary patch delta 110 zcmZqRXyBOO%AL-@aFziKbSE+jvs+jK+4^TEA7qqdva+7YXfoNCk#{05H<03)cy~Lq zfnm!;Mp-5!H-BKfz$oV+VBo-Dz{0@7$iN`Lz$5@93>p|5fJQkm2(V7R H$E*YZSgsc( delta 96 zcmZqRXyBOO%FV#Qa2AMxKzAae2%9dDp?`MrK}P+F0t%CT8F?r2asw%ziFdb8{9ryg qmsxf52gVDGats0n4h#k?V2uI{Oacr73 diff --git a/src/background.pal b/src/background.pal index e239166c005fe8708a27664c3163d0a4a32c9e86..96cd44639f47573081891ad63f1df6f39e8fdf64 100644 GIT binary patch literal 64 zcmd;Q5HR59Q8eOb6;tQumeS;x0kQ>^jQNF>P56aXOo7;pUsTPUUrgPcUsA(@UqaJ@ QUs}tOUs~ISUq;6o0Nq6gk^lez literal 16 Xcmd;Q5a8$MQ8eOb6;tQumeK?O34;Mk diff --git a/src/helloworld.asm b/src/helloworld.asm index 49ca808..6f1af78 100644 --- a/src/helloworld.asm +++ b/src/helloworld.asm @@ -47,7 +47,7 @@ ; write player ship tile attributes ; use palette 0 - LDA #$00 + LDA #$03 STA $0202 STA $0206 STA $020A @@ -146,32 +146,12 @@ exit_subroutine: .proc main LDX PPUSTATUS - LDX #$20 + LDX #$3f STX PPUADDR LDX #$00 STX PPUADDR LDX #$00 - LDY #$00 - -OutsideLoopBackground: - -LoadBackgroundLoop: - LDA #.HIBYTE(test_nametable) - STA pointerLo - LDA #.LOBYTE(test_nametable) - STA pointerHi - - LDA (pointerLo), y - - INY - CPY #$00 - BNE LoadBackgroundLoop - - INX - CPX #$04 - BNE OutsideLoopBackground - load_palettes: LDA palettes,X STA PPUDATA @@ -179,7 +159,34 @@ load_palettes: CPX #$20 BNE load_palettes +load_background: + LDX PPUSTATUS + LDX #$20 + STX PPUADDR LDX #$00 + STX PPUADDR + + LDA #background + STA pointerHi + + LDX #$00 + LDY #$00 + +outsideloop: + +insideloop: + LDA (pointerLo), y + STA PPUDATA + INY + BNE insideloop + + INC pointerHi + + INX + CPX #$04 + BNE outsideloop vblankwait: ; wait for another vblank before continuing BIT PPUSTATUS @@ -198,20 +205,11 @@ player_x: .res 1 player_y: .res 1 player_dir: .res 1 .exportzp player_x, player_y -pointerLo: .res 1 ; pointer variables are declared in RAM -pointerHi: .res 1 ; low byte first, high byte immediately after +pointerLo: .res 1 +pointerHi: .res 1 .segment "RODATA" -palettes: - .byte $0f, $12, $23, $27 - .byte $0f, $2b, $3c, $39 - .byte $0f, $0c, $07, $13 - .byte $0f, $19, $09, $29 - - .byte $0f, $2d, $10, $15 - .byte $0f, $19, $09, $29 - .byte $0f, $19, $09, $29 - .byte $0f, $19, $09, $29 +palettes: .incbin "background.pal" sprite: .byte $70, $05, $00, $80 @@ -219,8 +217,7 @@ sprite: .byte $78, $07, $00, $80 .byte $78, $08, $00, $88 -test_nametable: - .incbin "background.nam" +background: .incbin "background.nam" .segment "VECTORS" .addr nmi_handler, reset_handler, irq_handler diff --git a/src/helloworld.o b/src/helloworld.o index 72e0c6f8dcb871f451b4fb459e480299c911abed..2027abe287da626a62b0689e4049fbcfaff105a9 100644 GIT binary patch literal 17044 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 literal 17025 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 G(;fiETo9)K delta 50 zcmaFK_L6Nvis1FNmp8I8F-mVXNn6Om45T)esxt{%DCjDLCY9!ulqwkM8CvQZPF~Bj F2LR1Y5Y+$x diff --git a/src/starfield.chr b/src/starfield.chr index 11d9f07d2e0fa3021aff7dd6929836ada77860b6..710725f3543e689d4affdd885afeae4801f2a4bb 100644 GIT binary patch delta 605 zcmY*WL1+^}6#cWiW;bn`)M!^(W3sIYiKZ$@6~QI5mK=KX(!vrcZ7;D#g&qn`F=V$; zN)95Sso<@b911;2J?Wvj2n8=eQp6@UfriqH7(p;Cn^`AGEBFrc=lywq-u(H7YN*+V zkKh!n%ZIV9cbOeguq@l#+vQnRVEQVBId8bF9qN8R>xz}Su zjmG`U4vr?8%bVHFlv!IWlYR=jBtJNnuD21aJVukSa;ASAZzV=gqtc zQAX3?F-skC&p0GpklPg;FNl42?mfPRf++a^*X5^ngE){Xff)y`XDrN!z(!i;MoB>I)LEq z*Qs-v#jn+>zD^caLe|21EB!_kPDn~xN(eCfcDm4hUUvEwt^aiG{6(f+_75LlsPwl0 QqV8^L;=|Y$V!sQ20ogUSF#rGn delta 16 XcmZp0XmHphz{tFDS{47s1+BaQF~J4;