123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328 |
- .ENUM $00 ;1byte direct page variables for kernel and game mechanics
- TempBuffer ds 20
- CurrentEvent db
- FrameCounterLo db
- FrameCounterHi db
- SetIni db
- ScreenMode db
- MainScreen db
- SubScreen db
- ScreenBrightness db
- BGTilesVram12 db
- BGTilesVram34 db
- BG1TilemapVram db
- BG2TilemapVram db
- BG3TilemapVram db
- BG4TilemapVram db
- SpriteTileOffsetVram dw
- ObjSel db
- BG1HOfLo db
- BG1HOfHi db
- BG1VOfLo db
- BG1VOfHi db
- BG2HOfLo db
- BG2HOfHi db
- BG2VOfLo db
- BG2VOfHi db
- HdmaFlags db
- HdmaPause db ;if msb is set, don't initiate further hdma transfers. this is useful when the rom hdma is trying to read from isnt present atm.
- ThreeBytePointerLo db
- ThreeBytePointerHi db
- ThreeBytePointerBank db
- ThreeBytePointerLo2 db
- ThreeBytePointerHi2 db
- ThreeBytePointerBank2 db
- BrightnessSpeed db
- LastFrameLo db
- LastFrameHi db
- CGWsel db
- CgadsubConfig db
- FixedColourR db
- FixedColourG db
- FixedColourB db
- InterruptEnableFlags db
- IrqRoutineNumber db
- IrqRoutineNumberBuffer db ;backup in case multiple irqs are executed per frame. nmi writes this number back to irq number every frame
- IrqVCounter dw
- IrqHCounter dw
- W12SEL db
- W34SEL db
- WOBJSEL db
- W1L db
- W1R db
- W2L db
- W2R db
- WBGLOG db
- WOBJLOG db
- WMS db
- WSS db
- Mosaic db
- BGTilesVram2 dw
- Bg3Status db
- PrintStringThreeBytePointerLo db
- PrintStringThreeBytePointerHi db
- PrintStringThreeBytePointerBank db
- VramBg1Tilemap dw
- VramBg2Tilemap dw
- VramBg3Tilemap dw
- VramBg4Tilemap dw
- VramBg1Tiles dw
- VramBg2Tiles dw
- VramBg3Tiles dw
- VramBg4Tiles dw
- SetBGThreeBytePointerLo db
- SetBGThreeBytePointerHi db
- SetBGThreeBytePointerBank db
- NMIOamUploadFlag db
- NMIPaletteUploadFlag db ;refresh palette during nmi?
- NMIBg1UploadFlag db ;refresh bg1 tilemap during nmi?
- NMIBg2UploadFlag db
- NMIBg3UploadFlag db ;UploadBg3Map db ;if this is not zero, upload tilemap to bg3
- CurrentMapNumber db ;number of currently loaded map
- CurrentMapPointer ds 3 ;24bit pointer to current map file
- CurrentColMapPointer ds 3 ;24 bit pointer to current collision map
- BgScrollCounterX db ;ranges from 0-7 inside one tile
- BgScrollCounterY db
- BgMapCurrentPositionX db ;current upper left tile on screen
- BgMapCurrentPositionY db
- ScreenPixelPositionX dw ;exact pixel position of upper left border for sprite position calculation
- ScreenPixelPositionY dw ;exact pixel position of upper left border for sprite position calculation
- BgScrollRowUploadDisplace db ;number of tiles to add/substract when uploading tilerows. this gets added to current position in map depending on the scrolling direction.(scroll right: add 28/scroll left: substract 1)
- BgScrollTilemapRowUploadDisplaceX db ;number of tiles to add/substract when uploading tilerows. this gets added to current position in map depending on the scrolling direction.(scroll right: add 28/scroll left: substract 1)
- BgScrollTilemapRowUploadDisplaceY db ;number of tiles to add/substract when uploading tilerows. this gets added to current position in map depending on the scrolling direction.(scroll right: add 28/scroll left: substract 1)
- BgScrollOffsetPointerTilesX db ;pointer to current vertical column that holds the leftmost tiles onscreen(goes from 0-27)
- BgScrollOffsetPointerTilesY db
- BgScrollOffsetPointerTilemapX db ;pointer to current vertical column that holds the leftmost tiles onscreen for tilemap (goes from 0-32)
- BgScrollOffsetPointerTilemapY db
- BgScrollTileSourcePointer ds 3 ;pointer to first tile of tileline to be uplodaded
- DmaFifoPointer dw ;relative pointer to current free entry in buffer
- DmaFifoPointerIrq dw
- DmaFifoSourcePointerLo dw
- DmaFifoSourcePointerBa db
- DmaFifoOverhang dw
- DmaFifoTotalBytesTransferred dw ;used to guesstimate how much time we have left for transfers
- ObjectListPointer dw ;pointer to next free object in object list
- ObjectListPointerCurrent dw ;pointer to current object in object list, used to set direct register
- CurrentObjectNumber db ;number of currently selected object in list
- OamBufferPointer dw ;pointer to current sprite in oam buffer
- OamZsortBufferPointer dw ;pointer to current sprite in oam zsort buffer
- OamZsortSpriteNumber db ;number of sprites to sort
- OamAniListStraightRepeatFlag dw
- FocusScreenFlags db ;flags for focus
- ;bit0=enable focus on object
- FocusScreenObject db ;number of object in object list to focus to
- FocusScreenSpline db ;number of preset table to use for scrolling depending on distance to object(linear,sine,exp etc)
- FocusScreenXWait db
- FocusScreenYWait db
- CollisionPixelX dw
- CollisionPixelY dw
- CollisionTemp dw
- PalTemp db ;used for object subroutine
- ExitCollisionPointer dw ;bits0-14 contain number of exit. old:;bits0-14 contain pointer to an entry in the exit list. if bit15 is set, this exit has been hit and needs to be procesed.
- R1 db ;random number generator buffers
- R2 db
- R3 db
- R4 db
- ColObjListPointer dw
- HdmaListPointer dw
- VwfFontPointerLo ds 3
- SpcTempBuffer ds 8 ;temp buffer for spc stuff
- SpcCurrentStreamSet db
- SpcHandlerState db
- SpcHandlerArgument0 db
- SpcHandlerArgument1 db
- SpcHandlerArgument2 db
- SpcCmdFifoStart db
- SpcCmdFifoEnd db
- PtPlayerDataPointerLo db ;assumes dreg: $0000
- PtPlayerDataPointerHi db ;assumes dreg: $0000
- PtPlayerDataPointerBa db ;assumes dreg: $0000
- PtPlayerCurrentSong db ;assumes dreg: $0000
- PtPlayerCurrentSamplePack db
- PtPlayerCurrentSoundEffect db
- PtPlayerSmplBufferPosLo db ;not needed at all
- PtPlayerSmplBufferPosHi db
- SpcUploadedFlag db ;msb set=song upload complete and playing. bit6 set=sample pack uploaded
- VideoHandlerState db
- CheckJoypadMode db ;0=1 player, 1=8 players, 2=instruments + 1 joypad
- FontSelector db
- FixedStringLength db
- PrintStringPalette db
- MenuFileThreeBytePointerLo db
- MenuFileThreeBytePointerHi db
- MenuFileThreeBytePointerBank db
- MenuRowsThreeBytePointerLo db
- MenuRowsThreeBytePointerHi db
- MenuRowsThreeBytePointerBank db
- MenuRowsThreeByteOptionPointerLo db
- MenuRowsThreeByteOptionPointerHi db
- MenuRowsThreeByteOptionPointerBank db
- MenuRowsThreeByteCodePointerLo db
- MenuRowsThreeByteCodePointerHi db
- MenuRowsThreeByteCodePointerBank db
- LoadMenuInitialOffset dw
- LoadMenuInitialOptionOffset dw
- LoadMenuVerticalSpacing dw
- LoadMenuNumberOfRows db
- LoadMenuCurrentRow db
- LoadMenuStringPosLo db
- LoadMenuStringPosHi db
- LoadMenuPalUnselSel db
- LoadMenuDoInit db
- BattleSubroutine db
- HdmaListCounter db ;counter used by hdma handler to switch through channels
- TempBufferIrq ds 8 ;Temporary Buffer for irq routines
- BattleMusicState db
- CurrentTablistPointer ds 3
- .ENDE
- .ENUM $200 ;2-byte adresses for game status stuff
- TempBufferTest ds 4
- Hdma3dScrollCountV db ;amount of lines to wait before hdma table
- CurrentBattleFile db
- MapStartPosX db ;map start position set by external routine
- MapStartPosY db
- MapSizeX db ;/must not be seperated cause they may be written to both at the same time in word-mode
- MapSizeY db ;\
- BGMapStartPosX db ;start position for bg upload(may differ from sprite location if near a border)
- BGMapStartPosY db
- CurrentStringTarget db ;current position in bg1 tilemap to write to, 2 bytes
- CurrentStringTargetHi db
- FixedColourRsave db
- FixedColourGsave db
- FixedColourBsave db
- CpuUsageScanline db
- SpcStreamVolume db
- SpcSEVolume db
- SpcSEPitch db
- SpcSongSpeed db ;default $a0
- SpcSongChMask db ;default $0f
- SpcReportType db ;0=none 1=timecode 2=channel-levels(vol out) 3=special mod command
- SpcCmdFifo ds 64
- MessageDeleteCounter dw ;inactive when zero, delete message when 1(then set zero), decrease each frame when not 0 or 1
- HdmaFadeInOutState db ;bit7set=fade in/bit7clear=fade out,bit6set=done fading bit0-5=current state in LUT for window and mosiac size
- MainCharaObjectNumber db
- MainCharaXPos dw
- MainCharaYPos dw
- ExitMapTarget dw ;target map
- ExitXTarget dw ;target x-pos on map
- ExitYTarget dw ;target y-pos on map
- Pseudo3dScrollUpdateFlag db ;if this isn't zero, update scroll table
- CurrentLevel dw
- PlayerState db ;current mode of player characters. 0=active battle 1=player select menu(start sitting. when start pressed for that player, switch to subroutine that is similar to battle, but without being able to fight) 2=results screen.
- PlayersPresentFlags db ;flags to signalize players connected.
- ActivePlayers db ;number of alive players
- WinningPlayer db ;number of player that has won the match. $ff=invalid
- IrqBrightnessIncDec db ;just a flag. bit0 set=increase. bit1 clear=decrease. bit8=ack/done
- BrightnessEventBuffer db ;buffer event routine to jum p to after brightness inc/dec
- SpcStreamFrame dw
- SpcSoundEffectFlipFlag dw ;flag alternating between each sound effect upload so that spc doesnt trigger the same one twice.
- BattleFinished db ;$80 if battle is finished
- IntroScene3ScrollPoint dw
- VideoFrames db
- VideoFrameRate dw ;ANDed with framecounter. 0=60hz, 1=30hz, 3=15hz etc.
- CurrentVideo db
- CurrentVideoFrame db
- PlayerSelectScrollCounter dw
- WinningPlayerPointer dw
- RandomLevelCounter db ;msb=shuffle direction. bits0-3 level number
- RandomStreamCounter db ;msb=shuffle direction. bits0-3 Streamset number
- SpecialReportOld db
- HdmaScrollPointerBuffer dw
- GravityCutOffYPos dw ;y-pos of object(with 4bit precision) that triggers delete if bigger and gravity affected
- GravObjectCounter db ;counter of particle/gravity objects to create to prevent slowdown and such
- MaxGravObjCount db ;max allowed particles per frame. dont create new ones if exceeded
- EventJumper db ;variable to select which event to jump to in debug menu
- CollisionObjPointer dw ;pointer to object that just has collided with calling obj
- Reg3000WriteVar db
- VIrqCounter dw
- ExtIrqCounter dw
- CartChecksum db
- .ENDE
- .ENUM $7e0300
- JoyPort1Data1Io0Buffer ds 4
- JoyPort1Data2Io0Buffer ds 4
- JoyPort2Data1Io0Buffer ds 4
- JoyPort2Data2Io0Buffer ds 4
- JoyPort1Data1Io1Buffer ds 4
- JoyPort1Data2Io1Buffer ds 4
- JoyPort2Data1Io1Buffer ds 4
- JoyPort2Data2Io1Buffer ds 4
- VectorAngleSMCode ds 9 ;8 inc/decs per frame + rtl
- LoadMenuStringBuffer ds 9
- PrintStringBuffer0 ds 16
- ;.ende
- ;.ENUM $7e0300
- JoyPortBuffer ds 16 ;8 joypads max, word entries.
- ;0=port1 joy 1
- ;2=port1 joy 2
- ;4=port1 joy 3
- ;6=port1 joy 4
- ;8=port2 joy 1
- ;a=port2 joy 2
- ;c=port2 joy 3
- ;e=port2 joy 4
- JoyPortBufferOld ds 16
- JoyPortBufferTrigger ds 16
- ;joypad buttons:
- ;15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
- ;b y se st U D L R a x l r 0 0 0 0
- PaletteBuffer ds $0200 ;bg3 palettes: buffer $0-$20 (4 different 4-color palettes, for text
- Bg1MapBuffer ds $1000
- Bg2MapBuffer ds $800
- Bg3MapBuffer ds $0800
- Bg4MapBuffer ds $1
- OamZSortBuffer ds $0500 ;256 entries, each 6 bytes
- OamZSortObjList ds 128*2 ;prioritized list of objects that need priority processing(2 byte relative pointers)
- ;ZSortOamPriorityBuffer ds $0040
- OamBuffer ds $0200
- OamPriorityBuffer ds $0020
- DmaFifoBuffer ds $1000 ;DmaFifoEntryLength*256
- ObjectList ds $0800 ;32 entries, each 32 bytes
- ExitList ds $0080 ;16 entries, each 8 bytes
- ColObjList ds $00c0 ;32 entries, each 4 bytes
- HdmaBuffer ds $0340
- HdmaBuffer1 ds $0340
- HdmaBuffer2 ds $0340
- HdmaBuffer3 ds $0340
- HdmaBuffer4 ds $0340
- HdmaBuffer5 ds $0340
- HdmaDataBuffer1 ds $0400
- HdmaSpcBuffer ds 200 ;streaming table, uses channel 7
- TextBoxMenuBuffer ds $0040 ;8 entries * 8
- SpcReportBuffer ds 16 ;8 entries, each 2 bytes
- ;0=none
- ;2=timecode
- ;4=channel levels
- ;6=special mod cmd
- Hdma3dScrollBuffer ds 400 ;80 entries, each 5 bytes
- WinnerArray ds 8*1
- .ENDE
|