251 lines
6.2 KiB
NASM
251 lines
6.2 KiB
NASM
;Copyright (C) 1997-2007 ZSNES Team ( zsKnight, _Demo_, pagefault, Nach )
|
|
;
|
|
;http://www.zsnes.com
|
|
;http://sourceforge.net/projects/zsnes
|
|
;https://zsnes.bountysource.com
|
|
;
|
|
;This program is free software; you can redistribute it and/or
|
|
;modify it under the terms of the GNU General Public License
|
|
;version 2 as published by the Free Software Foundation.
|
|
;
|
|
;This program is distributed in the hope that it will be useful,
|
|
;but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
;GNU General Public License for more details.
|
|
;
|
|
;You should have received a copy of the GNU General Public License
|
|
;along with this program; if not, write to the Free Software
|
|
;Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
|
|
%include "macros.mac"
|
|
|
|
|
|
|
|
SECTION .bss
|
|
NEWSYM wramdataa, resb 65536
|
|
NEWSYM ram7fa, resb 65536
|
|
NEWSYM Inbetweendat, resd 4
|
|
NEWSYM opcjmptab, resd 256
|
|
|
|
NEWSYM Bank0datr8 , resd 256
|
|
NEWSYM Bank0datr16, resd 256
|
|
NEWSYM Bank0datw8 , resd 256
|
|
NEWSYM Bank0datw16, resd 256
|
|
|
|
NEWSYM tableA, resd 256
|
|
NEWSYM tableB, resd 256
|
|
NEWSYM tableC, resd 256
|
|
NEWSYM tableD, resd 256
|
|
NEWSYM tableE, resd 256
|
|
NEWSYM tableF, resd 256
|
|
NEWSYM tableG, resd 256
|
|
NEWSYM tableH, resd 256
|
|
|
|
NEWSYM tableAb, resd 256
|
|
NEWSYM tableBb, resd 256
|
|
NEWSYM tableCb, resd 256
|
|
NEWSYM tableDb, resd 256
|
|
NEWSYM tableEb, resd 256
|
|
NEWSYM tableFb, resd 256
|
|
NEWSYM tableGb, resd 256
|
|
NEWSYM tableHb, resd 256
|
|
|
|
NEWSYM tableAc, resd 256
|
|
NEWSYM tableBc, resd 256
|
|
NEWSYM tableCc, resd 256
|
|
NEWSYM tableDc, resd 256
|
|
NEWSYM tableEc, resd 256
|
|
NEWSYM tableFc, resd 256
|
|
NEWSYM tableGc, resd 256
|
|
NEWSYM tableHc, resd 256
|
|
|
|
NEWSYM SA1tableA, resd 256
|
|
NEWSYM SA1tableB, resd 256
|
|
NEWSYM SA1tableC, resd 256
|
|
NEWSYM SA1tableD, resd 256
|
|
NEWSYM SA1tableE, resd 256
|
|
NEWSYM SA1tableF, resd 256
|
|
NEWSYM SA1tableG, resd 256
|
|
NEWSYM SA1tableH, resd 256
|
|
|
|
NEWSYM tablead, resd 256
|
|
NEWSYM tableadb, resd 256
|
|
NEWSYM tableadc, resd 256
|
|
NEWSYM SA1tablead, resd 256
|
|
|
|
NEWSYM memtabler8, resd 256
|
|
NEWSYM memtablew8, resd 256
|
|
NEWSYM memtabler16, resd 256
|
|
NEWSYM memtablew16, resd 256
|
|
NEWSYM vidmemch2, resb 4096
|
|
NEWSYM vidmemch4, resb 4096
|
|
NEWSYM vidmemch8, resb 4096
|
|
NEWSYM snesmmap, resd 256
|
|
NEWSYM snesmap2, resd 256
|
|
NEWSYM cachebg1, resb 64
|
|
NEWSYM cachebg2, resb 64
|
|
NEWSYM cachebg3, resb 64
|
|
NEWSYM cachebg4, resb 64
|
|
NEWSYM sprlefttot, resb 256
|
|
NEWSYM sprleftpr, resb 256
|
|
NEWSYM sprleftpr1, resb 256
|
|
NEWSYM sprleftpr2, resb 256
|
|
NEWSYM sprleftpr3, resb 256
|
|
NEWSYM sprpriodata, resb 288
|
|
NEWSYM sprprtabc, resb 64
|
|
NEWSYM sprprtabu, resb 64
|
|
NEWSYM prevpal, resw 256 ; previous palette buffer
|
|
NEWSYM winbgdata, resb 288 ; window buffer for backgrounds
|
|
NEWSYM winspdata, resb 288 ; window buffer for sprites
|
|
NEWSYM FxTable, resd 256
|
|
NEWSYM FxTableA1, resd 256
|
|
NEWSYM FxTableA2, resd 256
|
|
NEWSYM FxTableA3, resd 256
|
|
NEWSYM FxTableb, resd 256
|
|
NEWSYM FxTablebA1, resd 256
|
|
NEWSYM FxTablebA2, resd 256
|
|
NEWSYM FxTablebA3, resd 256
|
|
NEWSYM FxTablec, resd 256
|
|
NEWSYM FxTablecA1, resd 256
|
|
NEWSYM FxTablecA2, resd 256
|
|
NEWSYM FxTablecA3, resd 256
|
|
NEWSYM FxTabled, resd 256
|
|
NEWSYM FxTabledA1, resd 256
|
|
NEWSYM FxTabledA2, resd 256
|
|
NEWSYM FxTabledA3, resd 256
|
|
NEWSYM SfxMemTable, resd 256
|
|
NEWSYM fxxand, resd 256
|
|
NEWSYM fxbit01, resd 256
|
|
NEWSYM fxbit23, resd 256
|
|
NEWSYM fxbit45, resd 256
|
|
NEWSYM fxbit67, resd 256
|
|
NEWSYM PLOTJmpa, resd 64
|
|
NEWSYM PLOTJmpb, resd 64
|
|
|
|
NEWSYM pal16b, resd 256
|
|
NEWSYM pal16bcl, resd 256
|
|
NEWSYM pal16bclha, resd 256
|
|
NEWSYM pal16bxcl, resd 256
|
|
NEWSYM xtravbuf, resb 576
|
|
NEWSYM BG1SXl, resw 256
|
|
NEWSYM BG2SXl, resw 256
|
|
NEWSYM BG3SXl, resw 256
|
|
NEWSYM BG4SXl, resw 256
|
|
NEWSYM BG1SYl, resw 256
|
|
NEWSYM BG2SYl, resw 256
|
|
NEWSYM BG3SYl, resw 256
|
|
NEWSYM BG4SYl, resw 256
|
|
NEWSYM BGMA, resb 256
|
|
NEWSYM BGFB, resb 256
|
|
NEWSYM BG3PRI, resb 256
|
|
NEWSYM BGOPT1, resw 256
|
|
NEWSYM BGOPT2, resw 256
|
|
NEWSYM BGOPT3, resw 256
|
|
NEWSYM BGOPT4, resw 256
|
|
NEWSYM BGPT1, resw 256
|
|
NEWSYM BGPT2, resw 256
|
|
NEWSYM BGPT3, resw 256
|
|
NEWSYM BGPT4, resw 256
|
|
NEWSYM BGPT1X, resw 256
|
|
NEWSYM BGPT2X, resw 256
|
|
NEWSYM BGPT3X, resw 256
|
|
NEWSYM BGPT4X, resw 256
|
|
NEWSYM BGPT1Y, resw 256
|
|
NEWSYM BGPT2Y, resw 256
|
|
NEWSYM BGPT3Y, resw 256
|
|
NEWSYM BGPT4Y, resw 256
|
|
NEWSYM BGMS1, resw 1024
|
|
NEWSYM prdata, resb 256
|
|
NEWSYM prdatb, resb 256
|
|
NEWSYM prdatc, resb 256
|
|
NEWSYM ngpalcon2b, resd 20h
|
|
NEWSYM ngpalcon4b, resd 20h
|
|
NEWSYM ngpalcon8b, resd 20h
|
|
NEWSYM tltype2b, resb 4096
|
|
NEWSYM tltype4b, resb 2048
|
|
NEWSYM tltype8b, resb 1024
|
|
|
|
NEWSYM ngptrdat, resd 1024
|
|
NEWSYM ngceax, resd 1024
|
|
NEWSYM ngcedi, resd 1024
|
|
NEWSYM bgtxad, resw 1024
|
|
NEWSYM sprtbng, resd 256
|
|
NEWSYM sprtlng, resb 256
|
|
NEWSYM mosszng, resb 256
|
|
NEWSYM mosenng, resb 256
|
|
|
|
SECTION .data
|
|
ALIGN32
|
|
|
|
NEWSYM vidmemch2s, times 4096 db 0FFh
|
|
NEWSYM vidmemch4s, times 2048 db 0FFh
|
|
NEWSYM vidmemch8s, times 1024 db 0FFh
|
|
|
|
SECTION .bss
|
|
|
|
NEWSYM mode7ab, resd 256
|
|
NEWSYM mode7cd, resd 256
|
|
NEWSYM mode7xy, resd 256
|
|
NEWSYM mode7st, resb 256
|
|
|
|
NEWSYM t16x161, resb 256
|
|
NEWSYM t16x162, resb 256
|
|
NEWSYM t16x163, resb 256
|
|
NEWSYM t16x164, resb 256
|
|
|
|
NEWSYM intrlng, resb 256
|
|
NEWSYM mode7hr, resb 256
|
|
|
|
NEWSYM scadsng, resb 256
|
|
NEWSYM scadtng, resb 256
|
|
|
|
NEWSYM scbcong, resw 256
|
|
|
|
NEWSYM cpalval, resd 256
|
|
NEWSYM cgfxmod, resb 256
|
|
|
|
NEWSYM winboundary, resd 256
|
|
NEWSYM winbg1enval, resb 256
|
|
NEWSYM winbg2enval, resb 256
|
|
NEWSYM winbg3enval, resb 256
|
|
NEWSYM winbg4enval, resb 256
|
|
NEWSYM winbgobjenval, resb 256
|
|
NEWSYM winbgbackenval, resb 256
|
|
NEWSYM winlogicaval, resw 256
|
|
|
|
NEWSYM winbg1envals, resb 256
|
|
NEWSYM winbg2envals, resb 256
|
|
NEWSYM winbg3envals, resb 256
|
|
NEWSYM winbg4envals, resb 256
|
|
NEWSYM winbgobjenvals, resb 256
|
|
NEWSYM winbgbackenvals, resb 256
|
|
NEWSYM winbg1envalm, resb 256
|
|
NEWSYM winbg2envalm, resb 256
|
|
NEWSYM winbg3envalm, resb 256
|
|
NEWSYM winbg4envalm, resb 256
|
|
NEWSYM winbgobjenvalm, resb 256
|
|
NEWSYM winbgbackenvalm, resb 256
|
|
|
|
NEWSYM FillSubScr, resb 256
|
|
|
|
NEWSYM objclineptr, resd 256 ; l1,r1,l2,r2,en,log,ptr
|
|
|
|
SECTION .data
|
|
ALIGN32
|
|
|
|
NEWSYM objwlrpos , times 256 dd 0FFFFFFFFh
|
|
NEWSYM objwen , times 256 dw 0FFFFh ; en,log
|
|
|
|
SECTION .bss
|
|
|
|
NEWSYM SpecialLine, resb 256
|
|
|
|
NEWSYM bgallchange, resb 256
|
|
NEWSYM bg1change, resb 256
|
|
NEWSYM bg2change, resb 256
|
|
NEWSYM bg3change, resb 256
|
|
NEWSYM bg4change, resb 256
|
|
NEWSYM bgwinchange, resb 256
|
|
|
|
NEWSYM PrevPicture, resb 64*56*2
|