From e57aee36bd8c0e38afd5eb7f6b4af8cb9a9ef921 Mon Sep 17 00:00:00 2001 From: maraflush Date: Sun, 9 Jun 2019 07:33:37 -0700 Subject: [PATCH] nes samples : - show anametable - show a 8x8 pixels sprite - show the metasprites --- samples/nes_beer.chr | Bin 0 -> 8192 bytes samples/nes_beer.pal | 1 + samples/nes_beer_sprite.l65 | 51 ++++++++++++++ samples/nes_ghosts.chr | Bin 0 -> 8192 bytes samples/nes_ghosts.msb | Bin 0 -> 65538 bytes samples/nes_ghosts.nam | Bin 0 -> 1024 bytes samples/nes_ghosts.pal | 1 + samples/nes_ghosts_metasprites.l65 | 93 ++++++++++++++++++++++++++ samples/nes_house.nam | Bin 0 -> 1024 bytes samples/nes_house_print_nametable.l65 | 80 ++++++++++++++++++++++ samples/nes_house_tileset.chr | Bin 0 -> 8192 bytes 11 files changed, 226 insertions(+) create mode 100644 samples/nes_beer.chr create mode 100644 samples/nes_beer.pal create mode 100644 samples/nes_beer_sprite.l65 create mode 100644 samples/nes_ghosts.chr create mode 100644 samples/nes_ghosts.msb create mode 100644 samples/nes_ghosts.nam create mode 100644 samples/nes_ghosts.pal create mode 100644 samples/nes_ghosts_metasprites.l65 create mode 100644 samples/nes_house.nam create mode 100644 samples/nes_house_print_nametable.l65 create mode 100644 samples/nes_house_tileset.chr diff --git a/samples/nes_beer.chr b/samples/nes_beer.chr new file mode 100644 index 0000000000000000000000000000000000000000..d80bd871b0306aca5928c6591ede33f656d63b7b GIT binary patch literal 8192 zcmeIup%DN;2m?V1i-P`p`gutQh&`8y+p1mCGt)`sw@-@z0RjXF5FkK+009C72oNAZ XfB*pk1PBlyK!5-N0t5&UI4SS|_`m~d literal 0 HcmV?d00001 diff --git a/samples/nes_beer.pal b/samples/nes_beer.pal new file mode 100644 index 0000000..3c48cff --- /dev/null +++ b/samples/nes_beer.pal @@ -0,0 +1 @@ +80!1& ) \ No newline at end of file diff --git a/samples/nes_beer_sprite.l65 b/samples/nes_beer_sprite.l65 new file mode 100644 index 0000000..479857b --- /dev/null +++ b/samples/nes_beer_sprite.l65 @@ -0,0 +1,51 @@ +require'nes' + +-- asm code : 2019 - mara/flush +-- gfx : mara/flush + +mappers.CNROM{chrmap = function(ci) return ci*0x2000, 0x2000, (ci&1)*0x2000 end} + + +location(chrrom0) + +-- set beer tileset for sprite +@@beer_tileset do local f, s = assert(io.open('nes_beer.chr','rb')) s=f:read('*all') f:close() byte{s:byte(1,-1)} end + +location(prgrom) +@@nmi rti +@@irq rti + +-- the beer sprite's palette +local beer_pal = { 0x0F,0x10,0x38,0x30,0x0F,0x01,0x21,0x31,0x0F,0x06,0x16,0x26,0x0F,0x09,0x19,0x29 } + +-- describe oam bank for the sprite +-- number, x position, x position, tile number, index in palette +local sprite_beer = { 0, x=0x80, y=0x80, tile=1, palette=0 } + +@@main + init() + vblank_waitbegin() + -- activate sprite + lda #0b00011000 + sta PPUMASK + -- load SPRITE palette in PPU RAM + ppu_addr(OBJPAL) + -- set sprite palette + for _,v in ipairs(beer_pal) do lda #v sta PPUDATA end + ppu_addr(0x2000) + + -- set the sprite on sprite bank 0 + oam_set(sprite_beer) + -- reset scroll position + ppu_addr(0) sta BGSCROL sta BGSCROL + + -- idle + @_loop jmp _loop + + + + +writebin(filename..'.nes') +writesym(filename..'.mlb', 'mesen') +writesym(filename..'.nes', 'fceux') +print(stats) \ No newline at end of file diff --git a/samples/nes_ghosts.chr b/samples/nes_ghosts.chr new file mode 100644 index 0000000000000000000000000000000000000000..7141a57e906fe3a292f0a16edf9e93b42e0f769a GIT binary patch literal 8192 zcmeIuF;2rU7zJQQk?>OLp-UtX9=m2@#7F2AdV_YXgp}j}m3jaqxJpKjz|?qPZ(wMQ zVq&7-aiTIZF+2~kUJ~2SA7j5q6mua}cq?*8Bjmcf%#0PKu8j@fY2FSw%=2NtepcCI z-hA6Li#Qk8vzeh$7Oq*oC?{j;y$8-J0xV(M1Pg9#6yNyyCR_JxwkLeuWvu|U~ zmNDOoo=VQAJpJ!`y4GLdibwQGH5DyNjHYZ)tK^bNhgjK4?dz2uUXCPVLc zZ77G{FEXcmx$ob5gnckW00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| JfWZF{_yJK*=jZ?c literal 0 HcmV?d00001 diff --git a/samples/nes_ghosts.msb b/samples/nes_ghosts.msb new file mode 100644 index 0000000000000000000000000000000000000000..43083527e8532b12aa483b7e2d7005db599c7aa1 GIT binary patch literal 65538 zcmeIvH&P`~3Y&dfZkDEmZ5`+Sukr$`K!+vRafahZWpmmHTF@{I}!#({&< z>1;hA7+r@BOr;<3wP<5#X; zi%!I2%;QZ7ej=GjT~AKlxOwaL9ki2D9P`ps)0uQ8d-q-z75=C`ZG`f0qq&*;DWpA^ z&CksvJDJF#pE{;I%up8=B^cC|rU!KH4p&hC!oww207dk>iEo$Xm)_rmt`!6d|p4r)?SfW0Gb`(^?KQSvw?h$ zix`;}Y`(2jxc>8&0xff + sta nam_high + lda #nam & 0xff + sta nam_low + jsr loadBG + + + -- reset scroll position + ppu_addr(0) sta BGSCROL sta BGSCROL + lda #0x0a sta PPUMASK + -- idle + @_loop jmp _loop + + +-- routine to load a nametable with the attributes +@loadBG + ldy #0 + ldx #0 + +@loopLoadBG + lda (nam_low), y -- can only be used with y + sta 0x2007 + iny + bne loopLoadBG + inc nam_high + inx + cpx #04 + bne loopLoadBG + rts + +-- produce NES file, and debug symbols +writebin(filename..'.nes') +writesym(filename..'.mlb', 'mesen') +writesym(filename..'.nes', 'fceux') +print(stats) \ No newline at end of file diff --git a/samples/nes_house_tileset.chr b/samples/nes_house_tileset.chr new file mode 100644 index 0000000000000000000000000000000000000000..99d34dd07533d86f5a2147c900f4e7f02e88250b GIT binary patch literal 8192 zcmeHMzl$4382xlIk_gI4;42hjZm$SfrK+Gp+?o(@d9Gc#auu*4&4q~Fy-SnAU`QKC z@~7-^AiIh?lghV-fbB|h4Autk?c}|0W>za>NN|;6zm<3PeZS|;?2p4D9}r`V*Wyye z0Zu8vGYarIg+ZDM3Kfx7QM6huV@mwW68Q4cVjyB$I5CKW#A1d+!C_>% zG&q0>;ieF7y`JDOvR)e;z=W_Xgq=Mwt>(kfY6%V_Wr-e2U_#gx!rtx<_GiZ{v}on* z`Rcpb{vc6*WBOX}$h>j&`daTMFw1+|Zu)3jU5*@HOUvc=4q2M0kH_71YYYGQI9nZ~ zKFX=s=^be?&i6#;^U6eSJ|{Y#m%yB!pSFf(6ki9UE@2Jp64r2+(mFXgJA3}hlu>ke zxW6y9+m|M`j)KJleXzUw%Fl~s#g9&A`NDd8eqeVBQT|}}{8_!WTI*I@#mR-)-G+WW z)>d&cW|ikf@%ptHbi3{LV1WDwJ<cIpXBRBjW6;`tm62kKZW~4+f`&w|7p={ z{%E#XW2{rjbU)BB_IKEb{Up_C$PyKm8{_4*QwIdn%E1ZAZKVP(T zm*uq}Yr3aa4QG{|o07ZJ8$UGi#;fb={=5mehThJ^6pyh#RXoP?4UgAaJ;jw(FIEud z7(l4tHARgH1Qqpq`=maMr7)I4C6-WQv8^>%l2{zan*{10LEtqKL$J{q&k1_HmapCE zULOSXbUi|eNX<|MI>)xr3_c9~usg=FJ7Z?EqTnm){Jh0g^#$C^Jf=uZum9*HT_soXdi_O77RZ@0#KyB(1$z2U)) zMC6mb@h$i0M1A!?pudc6&u(j;FTRQ}-o2}tsuQ|>U*>g%ov)p6HSwCme6d)Rh&Y9g zd`wAz%gM3Wou}0A$mxOd)hRnA-ny8A`XfB*U>+g|3CA)k)J_ljM_Hly6Nk$V1@1i& zj`PLb)jw5#AdUC^pucjlu>El?7RaadZT|Tpwek2))BZRg+8vJ4GA$$fou~Z(r>Vsp zqZIx%yOu*83hOByH9k5Wcz`bo^DWR1{iL_k5hrLKs z_21zL`_pnh8d*L@Bic0{1%F4LD4Q!^306?&kL@~f+l?cuZTGwQW;$ed&zDO*sdUTzVE+tI}hLY^=_b{BiHwzS+3ak{c8{_-p>2+efT`h n*f7vA&@j+2&@j+2&@j+2&@j+2&@j+2@IPf>Iv?V{)GPT1vKuHA literal 0 HcmV?d00001