mirror of https://github.com/g012/l65.git
51 lines
1.2 KiB
Plaintext
51 lines
1.2 KiB
Plaintext
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) |