From d154813d7ae1253b3f9d8df59c1ab8c6a3080e61 Mon Sep 17 00:00:00 2001 From: LinkHpp <63952783+LinkHpp@users.noreply.github.com> Date: Thu, 25 Apr 2024 03:01:01 +0200 Subject: [PATCH] Add files via upload --- assemble.sh | 5 + helloworld.nes | Bin 0 -> 40976 bytes nes.cfg | 22 +++ src/background.nam | Bin 0 -> 1024 bytes src/constants.inc | 7 + src/header.inc | 8 + src/helloworld.asm | 421 +++++++++++++++++++++++++++++++++++++++++++++ src/helloworld.o | Bin 0 -> 19125 bytes src/reset.asm | 43 +++++ src/reset.o | Bin 0 -> 873 bytes src/starfield.chr | Bin 0 -> 8192 bytes 11 files changed, 506 insertions(+) create mode 100644 assemble.sh create mode 100644 helloworld.nes create mode 100644 nes.cfg create mode 100644 src/background.nam create mode 100644 src/constants.inc create mode 100644 src/header.inc create mode 100644 src/helloworld.asm create mode 100644 src/helloworld.o create mode 100644 src/reset.asm create mode 100644 src/reset.o create mode 100644 src/starfield.chr diff --git a/assemble.sh b/assemble.sh new file mode 100644 index 0000000..4f3df48 --- /dev/null +++ b/assemble.sh @@ -0,0 +1,5 @@ +#! /bin/sh + +ca65 src/helloworld.asm +ca65 src/reset.asm +ld65 src/reset.o src/helloworld.o -C nes.cfg -o helloworld.nes diff --git a/helloworld.nes b/helloworld.nes new file mode 100644 index 0000000000000000000000000000000000000000..6e3e5cebf5357a14edf3469669bd2dc1f560de19 GIT binary patch literal 40976 zcmeI$PiP}m9Ki9Hmq{|UwVACe#-+P?c7uPYT|EiA=w=A9gc4WTMOb=TMWh~tAbSW{ z(?MBTgb6*0AV^M*Q1Rel1zmcRMOZ5I;6?4hLr>bvYGFg;n@MNpB{_KVvV0$t%=`V` zo8Noy(_A{2UcPclW-=mf?O%Fs_c6CO_-wx`R5zo#j{B@s`f~2~L@@YV$bH>*{)sYy zcf$$3xN)NSx90}J&#FNBCtY>hQ&&74=ajx&yYWfm(?*cNg9gR-M;Y>WCDA&GR`)cj!Ys01VV|Vs8 zZC!m%G=KNP(D^18WOTSSC+=hp@^>B4{LA~(5y#JcEmg1D&8wb>zJ3rN`31GVr*`i3 z#FkXS6MkL=@9D4JbKQapGb+riO=PZ{ndqt2iOf$EnYYZ$f)0WoCo->3WWF;qXTzu7 zH8ar;qsmL>o?i{;jAWuZBbi^#IngOzF*8x+pC>XG!pu2yt*COGN$dPa=D@5IX*@ZR z`C}q;*UUs3FHB^1btY)(Kke|xyXgxRobfZNdGEu)aVyT9eX6+l;`!oC;gRCwQ_mEa zoJXU3*w>#{PI#@nxY;fUuWgH)@pIe}KmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0;rK@zy&3Gcio##(&Bv9yTuYvx_yTc${4P4RT1|hF`JH;R)m-kRu^YBDZrAk#^|m?QHpe@z zt7F$3zob`4;^A_}dZn-wBNK|xcKP#DwRrUWPDX;lKSCh^pYd7 zE}6s~X_b_5zEWj*<+8E=nUfXEvMwg`bur6!(s+JB&d7!NWW3R6grrH_aod)(+DSa? zsH=5jzFyyUl$(r~^l9{E#`AguaU5xgbpQITQDLxAEoTb_{ZsqkCH>ZDZ*bH<+}_*M z@$K)6#d5iNv3>3I>F{mS(c!_t;bDLMO#arbe*frbqa4>2!cDvB?se|?Xy%#Hne-4q T009ILKmY**5I_Kd2Ug%;67&p$ literal 0 HcmV?d00001 diff --git a/nes.cfg b/nes.cfg new file mode 100644 index 0000000..12f8cf4 --- /dev/null +++ b/nes.cfg @@ -0,0 +1,22 @@ +MEMORY { + HEADER: start=$00, size=$10, fill=yes, fillval=$00; + ZEROPAGE: start=$10, size=$ff; + STACK: start=$0100, size=$0100; + OAMBUFFER: start=$0200, size=$0100; + RAM: start=$0300, size=$0500; + ROM: start=$8000, size=$8000, fill=yes, fillval=$ff; + CHRROM: start=$0000, size=$2000; +} + +SEGMENTS { + HEADER: load=HEADER, type=ro, align=$10; + ZEROPAGE: load=ZEROPAGE, type=zp; + STACK: load=STACK, type=bss, optional=yes; + OAM: load=OAMBUFFER, type=bss, optional=yes; + BSS: load=RAM, type=bss, optional=yes; + DMC: load=ROM, type=ro, align=64, optional=yes; + CODE: load=ROM, type=ro, align=$0100; + RODATA: load=ROM, type=ro, align=$0100; + VECTORS: load=ROM, type=ro, start=$FFFA; + CHR: load=CHRROM, type=ro, align=16, optional=yes; +} \ No newline at end of file diff --git a/src/background.nam b/src/background.nam new file mode 100644 index 0000000000000000000000000000000000000000..bbfc52f2e8b35393abf44771f137c7200f119ee1 GIT binary patch literal 1024 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 Z8tqo8q(fZy){FUqxv{R_sbsT6e*jofe9`~_ literal 0 HcmV?d00001 diff --git a/src/starfield.chr b/src/starfield.chr new file mode 100644 index 0000000000000000000000000000000000000000..65626076287126d20cb0e5386dee6e26e9a0fb3f GIT binary patch literal 8192 zcmeI0ziYxk6vxlxs40p%bO=S8Alam)|3FO$K|+vHoQhN1p|eAWK+}s;=l(Gr97@Tb z;NV>R6C5*y*cUZ-7xymZJ(S${z32P!A&W;y)wTz#dI>50$4{Q8whh~keLJb2UYLk8P1Ah;TI75F%=bk8ZX9VI_jw8>McjRw1i?sX-GZp4^Lml%M)G_` zJh0BCcyuTCgMFByNb~LH74?ed)%`5X(kt;PczFF{7-(71P?Bq=P~DXF)2&f3k>+on zS(MTt&xc}E>j>TLD@~=}<#FHl3#42#C!`7uxo&mLdr!)T{#wU$cwC2V;3MlU3{dJF z4I<`;Tci3mwhgsjhga?G25ybk+dNB?^&0f|SG#Q(_Aq?t^@`i3Jl$;4G>a}y7K<#) r^Vlfs65@!Xm>ztG)#RN-CZ3Q05