User Tools

Site Tools


m1:disassembly:defines

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

m1:disassembly:defines [2015/06/07 12:13] – created - external edit 127.0.0.1m1:disassembly:defines [2025/06/18 09:13] (current) felixwright
Line 1: Line 1:
-The "defines" file declares names for constants and addresses of variables and data. It is included in other files via the .include directive, and also makes a handy RAM map. +~~REDIRECT>m1:docs:disasm:defines~~
- +
-<code> +
-; ------------------- +
-; METROID source code +
-; ------------------- +
-; MAIN PROGRAMMERS +
-;     HAI YUKAMI +
-;   ZARU SOBAJIMA +
-;    GPZ SENGOKU +
-;    N.SHIOTANI +
-;     M.HOUDAI +
-; (C) 1986 NINTENDO +
-+
-;Disassembled, reconstructed and commented +
-;by SnowBro [Kent Hansen] <kentmhan@online.no> +
-;Continued by Dirty McDingus (nmikstas@yahoo.com) +
-;Can be reassembled using Ophis. +
-;A work in progress. +
-;Last updated3/9/2010 +
- +
-;Hosted on wiki.metroidconstruction.com, with possible additions by wiki contributors. +
- +
-;Metroid defines. +
- +
-;-------------------------------------------[ Defines ]---------------------------------------------- +
- +
-.alias CodePtr                  $0C     ;Points to address to jump to when choosing--> +
-;      CodePtr+1                $0D     ;a routine from a list of routine addresses. +
- +
-;The bits of the change and status addresses represent the following joypad buttons: +
-;bit 7=A, bit 6=B, bit 5=SELECT, bit 4=START, bit 3=Up, bit 2=Down, bit 1=Left, bit 0=Right. +
- +
-.alias Joy1Change               $12     ;These addresses store any button changes--> +
-.alias Joy2Change               $13     ;that happened since last frame(pads 1 and 2). +
-.alias Joy1Status               $14     ;These two addresses store all buttons--> +
-.alias Joy2Status               $15     ;currently being pressed on the two controllers. +
-.alias Joy1Retrig               $16     ;These two addresses store any buttons that need--> +
-.alias Joy2Retrig               $17     ;to retrigger after being held down by player. +
-.alias RetrigDelay1             $18     ;These two addresses are counters that control--> +
-.alias RetrigDelay2             $19     ;The retriggering of held down buttons. +
- +
-.alias NMIStatus                $1A     ;0=NMI in progress. anything else, NMI not in progress. +
-.alias PPUDataPending           $1B     ;1=not PPU data pending, 1=data pending. +
-.alias PalDataPending           $1C     ;Pending palette data. Palette # = PalDataPending - 1. +
-.alias GameMode                 $1D     ;0 = Game is playing, 1 = At title/password screen +
-.alias MainRoutine              $1E     ;5 = Game paused, 3 = Game engine running +
-.alias TitleRoutine             $1F     ;Stores title routine number currently running. +
-.alias NextRoutine              $20     ;Stores next routine to jump to after WaitTimer expires. +
-.alias CurrentBank              $23     ;0 thru 7. current memory page in lower memory block. +
-.alias SwitchPending            $24     ;Switch memory page. Page # = SwitchPending - 1. +
-.alias MMCReg0Cntrl             $25     ;Stores bits to be loaded into MMC1 Register 0. +
-.alias SwitchUpperBits          $28     ;Used to store bits 3 and 4 for MMC1 register 3.  Bits--> +
-                                        ;3 and 4 should always be 0 under normal conditions. +
- +
-.alias TimerDelay               $29     ;Count down from 9 to 0. Decremented every frame. +
-.alias Timer1                   $2A     ;Decremented every frame after set. +
-.alias Timer2                   $2B     ;Decremented every frame after set. +
-.alias Timer3                   $2C     ;Decremented every 10 frames after set. +
- +
-.alias FrameCount               $2D     ;Increments every frame(overflows every 256 frames). +
- +
-.alias RandomNumber1            $2E     ;Random numbers used-->          +
-.alias RandomNumber2            $2F     ;throughout the game. +
- +
-.alias SpareMem30               $30     ;Written to, but never accessed. +
-.alias GamePaused               $31     ;#$00=Game running, #$01=Game paused. +
- +
-.alias RoomPtr                  $33     ;Low byte of room pointer address. +
-;      RoomPtr+1                $34     ;High byte of room pointer address. +
- +
-.alias StructPtr                $35     ;Low bute of structure pointer address. +
-;      StructPtr+1              $36     ;High byte of structure pointer address. +
-                                 +
-.alias CartRAMWorkPtr           $37     ;Low byte of pointer to current position in room RAM. +
-;      CartRAMWorkPtr+1         $38     ;High byte of pointer to current position in room RAM. +
-                                        ;The CartRAMWorkPtr points to the current memory address--> +
-                                        ;in the room RAM that is being loaded. +
- +
-.alias CartRAMPtr               $39     ;Low byte of pointer to room RAM (#$00). +
-;      CartRAMPtr+1             $3A     ;High byte of pointer to room RAM (#$60 or #$64). +
-                                        ;Room RAM is a screen buffer where the objects that make--> +
-                                        ;up a room are loaded.  There are two room RAM memory--> +
-                                        ;areas and they are the exact same size as the two name--> +
-                                        ;tables and attribute tables in the PPU. Once the room--> +
-                                        ;RAM conatins a completed room in it, the entire contents--> +
-                                        ;of the room RAM is loaded into the PPU.  +
- +
-.alias RoomPtrTable             $3B     ;Low byte of start of room pointer table. +
-;      RoomPtrTable+1           $3C     ;High byte of start of room pointer table. +
- +
-.alias StructPtrTable           $3D     ;Low byte of start of structure pointer table. +
-;      StructPtrTable+1         $3E     ;High byte of structure pointer table. +
- +
-.alias MacroPtr                 $3F     ;Low byte of pointer into macro definitions. +
-;      MacroPtr+1               $40     ;High byte of pointer into macro definitions. +
- +
-.alias EnmyFrameTbl1Ptr         $41     ;Low byte of pointer into address table to find enemy animations. +
-;      EnmyFrameTbl1Ptr+1       $42     ;High byte of pointer into address table to find enemy animations. +
- +
-.alias EnmyFrameTbl2Ptr         $43     ;Same as above except in a second table because there are--> +
-;      EnmyFrameTbl2Ptr+1       $44     ;too many entries to fit into one table. +
- +
-.alias EnmyPlaceTblPtr          $45     ;Low byte of pointer into enemy frame placement table. +
-;      EnmyPlaceTblPtr+1        $46     ;High byte of pointer into enemy frame placement table. +
- +
-.alias EnemyAnimPtr             $47     ;Low byte of start of EnemyAnimIndexTbl. +
-;      EnemyAnimPtr+1           $48     ;High byte of start of EnemyAnimIndexTbl. +
- +
-.alias ScrollDir                $49     ;0=Up, 1=Down, 2=Left, 3=Right. +
- +
-.alias TempScrollDir            $4A     ;Stores ScrollDir when room is initially loaded. +
- +
-.alias PageIndex                $4B     ;Index to object data. +
-                                        ;#$D0, #$E0, #$F0 = projectile indices(including bombs). +
-                                        ; +
-.alias ItemIndex                $4C     ;#$00 or #$08. Added to PowerUpType addresses to determine if--> +
-                                        ;the first or second item slot is being checked.  +
- +
-.alias SamusDir                 $4D     ;0 = Right, 1 = Left. +
-.alias SamusDoorDir             $4E     ;Direction Samus passed through door. +
-.alias MapPosY                  $4F     ;Current y position on world map. +
-.alias MapPosX                  $50     ;Current x position on world map. +
-.alias SamusScrX                $51     ;Samus x position on screen. +
-.alias SamusScrY                $52     ;Samus y position on screen. +
-.alias WalkSoundDelay           $53 +
-.alias IsSamus                  $55     ;1=Samus object being accessed, 0=not Samus. +
-.alias DoorStatus               $56     ;0=Not in door, 1=In right door, 2=In left door, 3=Scroll up--> +
-                                        ;4=Scroll down, 5=Exit door, MSB set=Door entered. If value--> +
-                                        ;is 3 or 4, a door was entered while in a verticle shaft and--> +
-                                        ;the door was not centered on the screen and up or down--> +
-                                        ;scrolling needs to occur before scrolling to the next room. +
-.alias DoorScrollStatus         $57     ;#$01=Entered right hand door from horizontal area.--> +
-                                        ;#$02=Entered left hand door from horizontal area.--> +
-                                        ;#$03=Entered door from verticle shaft and room needs to--> +
-                                        ;be centered before horizontal scrolling. #$04=Entered--> +
-                                        ;door from verticle shaft and room was already centered. +
-.alias SamusDoorData            $58     ;The upper 4 bits store either 1 or 2. If 1 is stored(bit 4--> +
-                                        ;set), the scrolling after Samus exits the door is toggled.--> +
-                                        ;If 2 is stored(bit 5 set), the scrolling is set to--> +
-                                        ;horizontal scrolling after Samus exits the door. This--> +
-                                        ;happens mostly in item rooms. The lower 4 bits store Samus'--> +
-                                        ;action status as she enters the door. This is used to set--> +
-                                        ;Samus' action after she exits and keeps her looking the same. +
-.alias DoorDelay                $59     ;Number of frames to delay when Samus entering/exiting doors. +
-.alias RoomNumber               $5A     ;Room number currently being loaded. +
-.alias SpritePagePos            $5B     ;Index into sprite RAM used to load object sprite data. +
-.alias SamusInLava              $64     ;#$01=Samus in lava, #$00=She is not. +
-.alias ObjectCounter            $65     ;Counts such things as object explosion time. +
-.alias ObjectPal                $67     ;Attrib. table info for room object(#$00 thru #$03). +
-.alias RoomPal                  $68 +
-.alias TempX                    $69 +
-.alias TempY                    $6A +
-.alias ObjectCntrl              $6B     ;Controls object properties such as mirroring and color--> +
-                                        ;bits. Bit 4 controls object mirroring. +
- +
-.alias DoorOnNameTable3         $6C     ;The following two addresses are used to keep track of the--> +
-.alias DoorOnNameTable0         $6D     ;doors loaded on the name tables. The information is used--> +
-                                        ;in the GetRoomNum routine to prevent the loading of a--> +
-                                        ;room behind a door when scrolling horizontally. This has--> +
-                                        ;the effect of stopping scrolling until Samus walks through--> +
-                                        ;the door. #$01=Left door on name table. #$02=right door--> +
-                                        ;on name table. #$03 two doors on the same name table.--> +
-                                        ;#$00 is possible in $6D if 2 doors are on name table 0--> +
-                                        ;while vertically scrolling. +
- +
-.alias HealthLoChange           $6E     ;Amount to add/subtract from HealthLo. +
-.alias HealthHiChange           $6F     ;Amount to add/subtract from HealthHi. +
- +
-.alias SamusBlink               $70 +
-.alias UpdatingProjectile       $71     ;#$01=Projectile update in process. #$00=not in process. +
-.alias DamagePushDirection      $72     ;#$00=Push Samus left when hit, #$01=Push right, #$FF=No push.  +
-.alias InArea                   $74     ;#$10(or #$00)=Brinstar, #$11=Norfair, #$12=Kraid hideout,--> +
-                                        ;#$13=Tourian, #$14=Ridley hideout. +
- +
-.alias SpareMem75               $75     ;Initialized to #$FF in AreaInit. Not used. +
-.alias PalToggle                $76 +
- +
-.alias ItemRoomMusicStatus      $79     ;#$00=Item room music not playing.  +
-                                        ;#$01=Play item room music. +
-                                        ;#$80=Stop item room music once door scroll complete.  +
-                                        ;#$81=Item room music already playing. Don't restart. +
- +
-.alias OnFrozenEnemy            $7D     ;#$01=Samus standing on frozen enemy, #$00=she is not. +
- +
-;--------------------------------------[ End routine specific ]-------------------------------------- +
- +
-.alias EndMsgWrite              $7A     ;0=don't write end message, 1=write end message. +
-.alias IsCredits                $7B     ;0=credits not rolling, 1=credits rolling. +
-.alias SpriteByteCounter        $7C     ;Used to indicate when Samus sprite load complete. +
-.alias SpritePointerIndex       $7D     ;Index to proper Samus sprite graphics at end game. +
-.alias SpriteAttribByte         $7E     ;#$00.  Attribute byte of some sprites. +
-.alias ColorCntIndex            $7F     ;Index for finding count number for ClrChangeCounter. +
-.alias CreditPageNumber         $80     ;Stores current page of credits(#$00 thru #$06). +
-.alias HideShowEndMsg           $81     ;0=show end message, 1=erase end message. +
-.alias ClrChangeCounter         $82     ;When=#$00, change end Samus sprite colors. +
-.alias WaveSpritePointer        $83     ;Address pointer to Samus hand waving sprites in end. +
-.alias WaveSpriteCounter        $84     ;Stores length of wave sprite data (#$10). +
- +
-;---------------------------------------------------------------------------------------------------- +
- +
-.alias MetroidOnSamus           $92     ;#$01=Metroid on Samus, #$00=Metroid not on Samus. +
- +
-.alias MaxMissilePickup         $93     ;Maximum missiles power-ups that can be picked up. Randomly--> +
-                                        ;recalculated whenever Samus goes through a door. +
-.alias MaxEnergyPickup          $94     ;Maximum energy power-ups that can be picked up. Randomly--> +
-                                        ;recalculated whenever Samus goes through a door. +
-.alias CurrentMissilePickups    $95     ;Number of missile power-ups currently collected by Samus--> +
-                                        ;Reset to 0 when Samus goes through a door. +
-.alias CurrentEnergyPickups     $96     ;Number of energy power-ups currently collected by Samus--> +
-                                        ;Reset to 0 when Samus goes through a door. +
- +
-.alias MotherBrainStatus        $98     ;#$00=Mother brain not in room, #$01=Mother brain in room,--> +
-                                        ;#$02=Mother brain hit, #$03=Mother brain dying--> +
-                                        ;#$04=Mother brain dissapearing, #$05=Mother brain gone,--> +
-                                        ;#$06=Time bomb set, #$07=Time bomb exploded,--> +
-                                        ;#$08=Initialize mother brain,--> +
-                                        ;#$09, #$0A=Mother brain already dead. +
-.alias MotherBrainHits          $99     ;Number of times mother brain has been hit. Dies at #$20. +
- +
-.alias SpareMemB7               $B7     ;Written to in title routine and accessed by unsed routine. +
-.alias SpareMemB8               $B8     ;Written to in title routine and accessed by unsed routine. +
-.alias SpareMemBB               $BB     ;Written to in title routine, but never accessed. +
- +
-.alias First4SlowCntr           $BC     ;This address holds an 8 frame delay. when the delay is up,--> +
-                                        ;The crosshair sprites double their speed. +
-.alias Second4Delay             $BD     ;This address holds a 32 frame delay.  When the delay is--> +
-                                        ;up, the second set of crosshair sprites start their movement. +
-.alias SecondCrosshairSprites   $BF     ;#$01=Second crosshair sprites active in intro. +
- +
-.alias FlashScreen              $C0     ;#$01=Flash screen during crosshairs routine. +
-.alias PalDataIndex             $C1 +
-.alias ScreenFlashPalIndex      $C2     ;Index to palette data to flash screen during intro. +
-.alias IntroStarOffset          $C3     ;Contains offset into IntroStarPntr table for twinkle effect. +
-.alias FadeDataIndex            $C4     ;Index to palette data to fade items in and out during intro. +
- +
-.alias SpareMemC5               $C5     ;Written to in title routine, but never accessed. +
-.alias CrossDataIndex           $C6     ;#$00 thru #$04. Index to find cross sprite data. +
-.alias DrawCross                $C7     ;#$01=Draw cross on screen during crosshairs routine. +
-.alias SpriteLoadPending        $C8     ;Set to #$00 after sprite RAM load complete. +
-.alias SpareMemC9               $C9     :Written to in title routine, but never accessed. +
-.alias SpareMemCB               $CB     ;Written to in title routine, but never accessed. +
-.alias SpareMemCC               $CC     ;Written to in title routine, but never accessed. +
-.alias SpareMemCD               $CD     ;Written to in title routine, but never accessed. +
-.alias SpareMemCE               $CE     ;Written to in title routine, but never accessed. +
-.alias SpareMemCF               $CF     ;Written to in title routine, but never accessed. +
-.alias SpareMemD0               $D0     ;Written to in title routine, but never accessed. +
-.alias SpareMemD1               $D1     ;Written to in title routine, but never accessed. +
-.alias SpareMemD2               $D2     ;Written to in title routine, but never accessed. +
-.alias SpareMemD3               $D3     ;Written to in title routine, but never accessed. +
-.alias SpareMemD7               $D7     ;Written to in title routine, but never accessed. +
-.alias IntroMusicRestart        $D8     ;After all title routines run twice, restarts intro music. +
-.alias ABStatus                 $F0     ;Stores A and B button status in AreaInit. Never used. +
-;                               $F7 +
- +
-.alias MirrorCntrl              $FA     ;If bit 3 is set, PPU set to horizontal mirroring--> +
-                                        ;else if bit 3 is clear, PPU is set to vertical--> +
-                                        ;mirroring. No other bits seem to matter. +
- +
-.alias ScrollY                  $FC     ;Y value loaded into scroll register.  +
-.alias ScrollX                  $FD     ;X value loaded into scroll register. +
-.alias PPUCNT1ZP                $FE     ;Data byte to be loaded into PPU control register 1. +
-.alias PPUCNT0ZP                $FF     ;Data byte to be loaded into PPU control register 0. +
- +
-.alias HealthLo                 $0106   ;Lower health digit in upper 4 bits. +
-.alias HealthHi                 $0107   ;Upper health digit in lower 4 bits--> +
-                                        ;# of full tanks in upper 4 bits. +
-.alias MiniBossKillDelay        $0108   ;Initiate power up music and delay after Kraid/Ridley killed. +
-.alias PowerUpDelay             $0109   ;Initiate power up music and delay after item pickup. +
- +
-.alias EndTimerLo               $010A   ;Lower byte of end game escape timer. +
-.alias EndTimerHi               $010B   ;Upper byte of end game escape timer. +
- +
-.alias MissileToggle            $010E   ;0=fire bullets, 1=fire missiles. +
- +
-;-----------------------------------------[ Sprite RAM ]--------------------------------------------- +
- +
-.alias Sprite00RAM              $0200   ;$0200 thru $02FF +
-.alias Sprite01RAM              $0204   ; +
-.alias Sprite02RAM              $0208   ; +
-.alias Sprite03RAM              $020C   ; +
-.alias Sprite04RAM              $0210   ; +
-.alias Sprite05RAM              $0214   ; +
-.alias Sprite06RAM              $0218   ; +
-.alias Sprite07RAM              $021C   ; +
-.alias Sprite08RAM              $0220   ; +
-.alias Sprite09RAM              $0224   ; +
-.alias Sprite0ARAM              $0228   ; +
-.alias Sprite0BRAM              $022C   ; +
-.alias Sprite0CRAM              $0230   ; +
-.alias Sprite0DRAM              $0234   ; +
-.alias Sprite0ERAM              $0238   ; +
-.alias Sprite0FRAM              $023C   ; +
-.alias Sprite10RAM              $0240   ; +
-.alias Sprite11RAM              $0244   ; +
-.alias Sprite12RAM              $0248   ; +
-.alias Sprite13RAM              $024C   ; +
-.alias Sprite14RAM              $0250   ; +
-.alias Sprite15RAM              $0254   ; +
-.alias Sprite16RAM              $0258   ; +
-.alias Sprite17RAM              $025C   ; +
-.alias Sprite18RAM              $0260   ; +
-.alias Sprite19RAM              $0264   ; +
-.alias Sprite1ARAM              $0268   ;These 256 bytes of memory are loaded into sprite +
-.alias Sprite1BRAM              $026C   ;RAM using the DMA sprite register $4014. +
-.alias Sprite1CRAM              $0270   ; +
-.alias Sprite1DRAM              $0274   ; +
-.alias Sprite1ERAM              $0278   ; +
-.alias Sprite1FRAM              $027C   ; +
-.alias Sprite20RAM              $0280   ; +
-.alias Sprite21RAM              $0284   ; +
-.alias Sprite22RAM              $0288   ; +
-.alias Sprite23RAM              $028C   ; +
-.alias Sprite24RAM              $0290   ; +
-.alias Sprite25RAM              $0294   ; +
-.alias Sprite26RAM              $0298   ; +
-.alias Sprite27RAM              $029C   ; +
-.alias Sprite28RAM              $02A0   ; +
-.alias Sprite29RAM              $02A4   ; +
-.alias Sprite2ARAM              $02A8   ; +
-.alias Sprite2BRAM              $02AC   ; +
-.alias Sprite2CRAM              $02B0   ; +
-.alias Sprite2DRAM              $02B4   ; +
-.alias Sprite2ERAM              $02B8   ; +
-.alias Sprite2FRAM              $02BC   ; +
-.alias Sprite30RAM              $02C0   ; +
-.alias Sprite31RAM              $02C4   ; +
-.alias Sprite32RAM              $02C8   ; +
-.alias Sprite33RAM              $02CC   ; +
-.alias Sprite34RAM              $02D0   ; +
-.alias Sprite35RAM              $02D4   ; +
-.alias Sprite36RAM              $02D8   ; +
-.alias Sprite37RAM              $02DC   ; +
-.alias Sprite38RAM              $02E0   ; +
-.alias Sprite39RAM              $02E4   ; +
-.alias Sprite3ARAM              $02E8   ; +
-.alias Sprite3BRAM              $02EC   ; +
-.alias Sprite3CRAM              $02F0   ; +
-.alias Sprite3DRAM              $02F4   ; +
-.alias Sprite3ERAM              $02F8   ; +
-.alias Sprite3FRAM              $02FC   ; +
- +
-;-----------------------------------------[ Object RAM ]--------------------------------------------- +
- +
-;Samus RAM. +
-.alias ObjAction                $0300   ;Status of object. 0=object slot not in use. +
-.alias ObjRadY                  $0301   ;Distance in pixels from object center to top or bottom. +
-.alias ObjRadX                  $0302   ;Distance in pixels from object center to left or right side. +
-.alias AnimFrame                $0303   ;*2 = Index into FramePtrTable for current animation. +
-.alias AnimDelay                $0304   ;Number of frames to delay between animation frames. +
-.alias AnimResetIndex           $0305   ;Restart index-1 when AnimIndex finished with last frame.  +
-.alias AnimIndex                $0306   ;Current index into ObjectAnimIndexTbl. +
-.alias SamusOnElevator          $0307   ;0=Samus not on elevator, 1=Samus on elevator. +
-.alias ObjVertSpeed             $0308   ;MSB set=moving up(#$FA max), MSB clear=moving down(#$05 max). +
-.alias ObjHorzSpeed             $0309   ;MSB set=moving lft(#$FE max), MSB clear=moving rt(#$01 max). +
-.alias SamusHit                 $030A   ;Samus hit by enemy. +
-.alias ObjectOnScreen           $030B   ;1=Object on screen, 0=Object beyond screen boundaries. +
-.alias ObjectHi                 $030C   ;0=Object on nametable 0, 1=Object on nametable 3. +
-.alias ObjectY                  $030D   ;Object y position in room(not actual screen position). +
-.alias ObjectX                  $030E   ;Object x position in room(not actual screen position). +
-.alias SamusJumpDsplcmnt        $030F   ;Number of pixels vertically displaced from jump point. +
-.alias VertCntrNonLinear        $0310   ;Verticle movement counter. Exponential change in speed. +
-.alias HorzCntrNonLinear        $0311   ;Horizontal movement counter. Exponential change in speed. +
-.alias VertCntrLinear           $0312   ;Verticle movement counter. Linear change in speed. +
-.alias HorzCntrLinear           $0313   ;Horizontal movement counter. Linear change in speed. +
-.alias SamusGravity             $0314   ;Value used in calculating vertical acceleration on Samus. +
-.alias SamusHorzAccel           $0315   ;Value used in calculating horizontal acceleration on Samus. +
-.alias SamusHorzSpeedMax        $0316   ;Used to calc maximum horizontal speed Samus can reach. +
- +
-;Elevator RAM. +
-.alias ElevatorStatus           $0320   ;#$01=Elevator present, #$00=Elevator not present. +
- +
-;Power-up item RAM. +
-.alias PowerUpAnimFrame         $0343   ;*2 = Index into FramePtrTable for current animation. +
-.alias PowerUpHi                $034C   ;Name table power up item is located on. +
-.alias PowerUpY                 $034D   ;Room Y coord of power up item. +
-.alias PowerUpX                 $034E   ;Room x coord of power up item. +
- +
-;-------------------------------------[ Title routine specific ]------------------------------------- +
- +
-.alias PasswordCursor           $0320   ;Password write position (#$00 - #$17). +
-.alias InputRow                 $0321   ;Password character select row (#$00 - #$04). +
-.alias InputColumn              $0322   ;Password character select column (#$00 - #$0C). +
-.alias PasswordStat00           $0324   ;Does not appear to have a function. +
-.alias StartContinue            $0325   ;0=START selected, 1=CONTINUE selected. +
- +
-;------------------------------------------[ Enemy RAM ]--------------------------------------------- +
- +
-.alias EnYRoomPos               $0400   ;Enemy y position in room.(not actual screen position). +
-.alias EnXRoomPos               $0401   ;Enemy x position in room.(not actual screen position). +
-;                               $0402 +
-;                               $0403 +
-;                               $0404 +
-;                               $0405 +
-.alias EnCounter                $0406   ;Counts such things as explosion time. +
-;                               $0407 +
-;                               $0408 +
-.alias EnDelay                  $0409   ;Delay counter between enemy actions. +
-;                               $040A +
-.alias EnHitPoints              $040B   ;Current hit points of enemy. +
-;                               $040C +
-;                               $040D +
-;                               $040E +
-.alias EnSpecialAttribs         $040F   ;Bit 7 set=tough version of enemy, bit 6 set=mini boss. +
- +
-;---------------------------------------------------------------------------------------------------- +
- +
-;Tile respawning +
-.alias TileRoutine              $0500 +
-.alias TileAnimFrame            $0503 +
-.alias TileAnimDelay            $0504 +
-.alias TileAnimIndex            $0506 +
-.alias TileDelay                $0507 +
-.alias TileWRAMLo               $0508 +
-.alias TileWRAMHi               $0509 +
-.alias TileType                 $050A +
- +
-;---------------------------------[ Sound engine memory addresses ]---------------------------------- +
- +
-.alias Cntrl0Data               $EA     ;Temp storage for data of first address sound channel +
-.alias VolumeCntrlAddress       $EB     ;Desired address number in VolumeCntrlAdressTbl +
- +
-.alias MusicSQ1PeriodLow        $0600   ;Loaded into SQ1Cntrl2 when playing music +
-.alias MusicSQ1PeriodHigh       $0601   ;Loaded into SQ1Cntrl3 when playing music +
- +
-.alias SFXPaused                $0602   ;0=Game not paused, 1=Game paused +
-.alias PauseSFXStatus           $0603   ;Plays PauseMusic SFX if less than #$12 +
- +
-.alias MusicSQ2PeriodLow        $0604   ;Loaded into SQ2Cntrl2 when playing music +
-.alias MusicSQ2PeriodHigh       $0605   ;Loaded into SQ2Cntrl3 when playing music +
- +
-.alias WriteMultiChannelData    $0607   ;1=data needs to be written, 0=no data to write +
- +
-.alias MusicTriPeriodLow        $0608   ;Loaded into TriangleCntrl2 when playing music +
-.alias MisicTriPeriodHigh       $0609   ;Loaded into TriangleCntrl3 when playing music  +
- +
-.alias TrianglePeriodLow        $0610   ;Stores triangle SFX period low for processing +
-.alias TrianglePeriodHigh       $0611   ;Stroes triangle SFX period high for processing +
-.alias TriangleChangeLow        $0612   ;Stores triangle SFX change in period low +
-.alias TriangleChangeHigh       $0613   ;Stores triangle SFX change in period high +
- +
-.alias TriangleLowPercentage    $0614   ;Stores percent to change period low by each frame +
-.alias TriangleHighPercentage   $0615   ;Stores percent to change period high by each frame  +
-.alias PercentDifference        $0616   ;if=5, percent=1/5(20%), if=0A, percent=1/10(10%), etc +
-.alias DivideData               $0617   ;Used in DivideTrianglePeriods +
- +
-.alias HasBeamSFX               $061F   ;Bit 7 set=has long beam, bit 0 set=has ice beam +
- +
-;The following addresses are loaded into $0640 thru $0643 when those  +
-;addresses decrement to zero.  These addresses do not decrement. +
- +
-.alias SQ1FrameCountInit        $0620   ;Holds number of frames to play sq1 channel data +
-.alias SQ2FrameCountInit        $0621   ;Holds number of frames to play sq2 channel data +
-.alias TriangleFrameCountInit   $0622   ;Holds number of frames to play triangle channel data +
-.alias NoiseFrameCountInit      $0623   ;Holds number of frames to play noise channel data +
- +
-.alias SQ1RepeatCounter         $0624   ;Number of times to repeat SQ1 music loop +
-.alias SQ2RepeatCounter         $0625   ;Number of times to repeat SQ2 music loop +
-.alias TriangleRepeatCounter    $0626   ;Number of times to repeat Triangle music loop +
-.alias NoiseRepeatCounter       $0627   ;Number of times to repeat Noise music loop +
- +
-.alias SQ1DutyEnvelope          $0628   ;Loaded into SQ1Cntrl0 when playing music +
-.alias SQ2DutyEnvelope          $0629   ;Loaded into SQ2Cntrl0 when playing music +
-.alias TriLinearCount           $062A   ;disable\enable counter, linear count length +
- +
-.alias NoteLengthTblOffset      $062B   ;Stores the offset to find proper note length table +
-.alias MusicRepeat              $062C   ;0=Music does not repeat, Nonzero=music repeats +
-.alias TriangleCounterCntrl     $062D   ;$F0=disable length cntr, $00=long note, $0F=short note +
-.alias SQ1VolumeCntrl           $062E   ;Entry number in VolumeCntrlAdressTbl for SQ1 +
-.alias SQ2VolumeCntrl           $062F   ;Entry number in VolumeCntrlAdressTbl for SQ2 +
-.alias SQ1LowBaseByte           $0630   ;low byte of base address for SQ1 music data +
-.alias SQ1HighBaseByte          $0631   ;High byte of base address for SQ1 music data +
-.alias SQ2LowBaseByte           $0632   ;low byte of base address for SQ2 music data +
-.alias SQ2HighBaseByte          $0633   ;High byte of base address for SQ2 music data +
-.alias TriangleLowBaseByte      $0634   ;low byte of base address for Triangle music data +
-.alias TriangleHighBaseByte     $0635   ;High byte of base address for Triangle music data +
-.alias NoiseLowBaseByte         $0636   ;low byte of base address for Noise music data +
-.alias NoiseHighBaseByte        $0637   ;High byte of base address for Noise music data +
- +
-.alias SQ1MusicIndexIndex       $0638   ;Index to find sQ1 sound data index. Base=$630,$631 +
-.alias SQ2MusicIndexIndex       $0639   ;Index to find SQ2 sound data index. Base=$632,$633 +
-.alias TriangleMusicIndexIndex  $063A   ;Index to find Tri sound data index. Base=$634,$635 +
-.alias NoiseMusicIndexIndex     $063B   ;Index to find Noise sound data index. Base=$636,$637 +
- +
-.alias SQ1LoopIndex             $063C   ;SQ1 Loop start index +
-.alias SQ2LoopIndex             $063D   ;SQ2 loop start index +
-.alias TriangleLoopIndex        $063E   ;Triangle loop start index +
-.alias NoiseLoopIndex           $063F   ;Noise loop start index +
- +
-.alias SQ1MusicFrameCount       $0640   ;Decrements every sq1 frame. When 0, load new data +
-.alias SQ2MusicFrameCount       $0641   ;Decrements every sq2 frame. when 0, load new data +
-.alias TriangleMusicFrameCount  $0642   ;Decrements every triangle frame. When 0, load new data +
-.alias NoiseMusicFrameCount     $0643   ;Decrements every noise frame. When 0, load new data +
- +
-.alias MusicSQ1Sweep            $0648   ;Value is loaded into SQ1Cntrl1 when playing music +
-.alias MusicSQ2Sweep            $0649   ;Value is loaded into SQ2Cntrl1 when playing music +
-.alias TriangleSweep            $064A   ;Loaded into TriangleCntrl1(not used) +
- +
-.alias ThisSoundChannel         $064B   ;Least sig. byte of current channel(00,04,08 or 0C) +
- +
-.alias CurrentSFXFlags          $064D   ;Stores flags of SFX currently being processed. +
- +
-.alias NoiseInUse               $0652   ;Noise in use? (Not used) +
-.alias SQ1InUse                 $0653   ;1=SQ1 channel being used by SFX, 0=not in use +
-.alias SQ2InUse                 $0654   ;2=SQ2 channel being used by SFX, 0=not in use +
-.alias TriangleInUse            $0655   ;3=Triangle channel being used by SFX, 0=not in use +
- +
-.alias ChannelType              $065C   ;Stores channel type being processed(0,1,2,3 or 4) +
-.alias CurrentMusicRepeat       $065D   ;Stores flags of music to repeat +
-.alias MusicInitIndex           $065E   ;index for loading $62B thru $637(base=$BD31). +
- +
-.alias NoiseSFXLength           $0660   ;Stores number of frames to play Noise SFX +
-.alias SQ1SFXLength             $0661   ;Stores number of frames to play SQ1 SFX +
-.alias SQ2SFXLngth              $0662   ;Stores number of frames to play SQ2 SFX +
-.alias TriangleSFXLength        $0663   ;Stores number of frames to play Triangle SFX +
-.alias MultiSFXLength           $0664   ;Stores number of frames to play Multi SFX +
- +
-.alias ThisNoiseFrame           $0665   ;Stores current frame number for noise SFX +
-.alias ThisSQ1Frame             $0666   ;Stores current frame number for sq1 SFX +
-.alias ThisSQ2Frame             $0667   ;Stores current frame number for SQ2 SFX +
-.alias ThisTriangleFrame        $0668   ;Stores current frame number for triangle SFX +
-.alias ThisMultiFrame           $0669   ;Stores current frame number for Multi SFX +
- +
-.alias SQ1VolumeIndex           $066A   ;Stores index to SQ1 volume data in a volume data tbl +
-.alias SQ2VolumeIndex           $066B   ;Stores index to SQ2 volume data in a volume data tbl +
- +
-.alias SQ1VolumeData            $066C   ;stores duty cycle and this frame volume data of SQ1 +
-.alias SQ2VolumeData            $066D   ;Stores duty cycle and this frame volume data of SQ2 +
- +
-.alias NoiseSFXData             $0670   ;Stores additional info for Noise SFX +
-.alias SQ1SFXData               $0671   ;Stores additional info for SQ1 SFX +
-.alias SQ2SFXData               $0672   ;Stores additional info for SQ2 SFX +
-.alias TriangleSFXData          $0673   ;Stores additional info for triangle SFX +
-.alias MultiSFXData             $0674   ;Stores additional info for Multi SFX +
-.alias SQ1SQ2SFXData            $0675   ;Stores additional info for SQ1 and SQ2 SFX +
- +
-.alias ScrewAttackSFXData       $0678   ;Contains extra data for screw attack SFX +
-.alias SQ1SFXPeriodLow          $0679   ;Period low data for processing multi SFX routines +
- +
-.alias NoiseSFXFlag             $0680   ;Initialization flags for noise SFX +
-.alias SQ1SFXFlag               $0681   ;Initialization flags for SQ1 SFX +
-.alias SQ2SFXFlag               $0682   ;Initialization flags for SQ2 SFX(never used) +
-.alias TriangleSFXFlag          $0683   ;Initialization flags for triangle SFX +
-.alias MultiSFXFlag             $0684   ;Initialization Flags for SFX and some music +
- +
-.alias MusicInitFlag            $0685   ;Music init flags +
- +
-.alias NoiseContSFX             $0688   ;Continuation flags for noise SFX +
-.alias SQ1ContSFX               $0689   ;Continuation flags for SQ1 SFX +
-.alias SQ2ContSFX               $068A   ;Continuation flags for SQ2 SFX (never used) +
-.alias TriangleContSFX          $068B   ;Continuation flags for Triangle SFX +
-.alias MultiContSFX             $068C   ;Continuation flags for Multi SFX +
- +
-.alias CurrentMusic             $068D   ;Stores the flag of the current music being played  +
- +
-;---------------------------------------------------------------------------------------------------- +
- +
-.alias PowerUpType              $0748   ;Holds the byte describing what power-up is on name table. +
-.alias PowerUpYCoord            $0749   ;Y coordinate of the power-up. +
-.alias PowerUpXCoord            $074A   ;X coordiante of the power-up +
-.alias PowerUpNameTable         $074B   ;#$00 if on name table 0, #$01 if on name table 3. +
-.alias PowerUpAnimIndex         $074F   ;Entry into FramePtrTable for item animation. +
- +
-.alias PowerUpBType             $0750   ;Holds the description byte of a second power-up(if any). +
-.alias PowerUpBYCoord           $0751   ;Y coordinate of second power-up. +
-.alias PowerUpBXCoord           $0752   ;X coordiante of second power-up. +
-.alias PowerUpBNameTable        $0753   ;#$00 if on name table 0, #$01 if on name table 3. +
-.alias PowerUpBAnimIndex        $0757   ;Entry into FramePtrTable for item animation. +
- +
-.alias TileSize                 $0780   ;4 MSBs=Y size of tile to erase.4 LSBs=X size of tile to erase. +
-.alias TileInfo0                $0781   ; +
-.alias TileInfo1                $0782   ; +
-.alias TileInfo2                $0783   ;Tile patterns to replace blasted tiles. +
-.alias TileInfo3                $0784   ; +
-.alias TileInfo4                $0785   ; +
-.alias TileInfo5                $0786   ; +
- +
-.alias PPUStrIndex              $07A0   ;# of bytes of data in PPUDataString. #$4F bytes max. +
- +
-;$07A1 thru $07F0 contain a byte string of data to be written the the PPU. The first +
-;byte in the string is the upper address byte of the starting point in the PPU to write +
-;the data.  The second bye is the lower address byte. The third byte is a configuration +
-;byte. if the MSB of this byte is set, the PPU is incremented by 32 after each byte write +
-;(vertical write).  It the MSB is cleared, the PPU is incremented by 1 after each write +
-;(horizontal write). If bit 6 is set, the next data byte is repeated multiple times during +
-;successive PPU writes.  The number of times the next byte is repeated is based on bits +
-;0-5 of the configuration byte.  Those bytes are a repitition counter. Any following bytes +
-;are the actual data bytes to be written to the PPU. #$00 separates the data chunks. +
- +
-.alias PPUDataString            $07A1   ;Thru $07F0. String of data bytes to be written to PPU. +
- +
-;-------------------------------------[ Hardware defines ]------------------------------------------- +
- +
-.alias PPUControl0              $2000   ; +
-.alias PPUControl1              $2001   ; +
-.alias PPUStatus                $2002   ; +
-.alias SPRAddress               $2003   ;PPU hardware control registers. +
-.alias SPRIOReg                 $2004   ; +
-.alias PPUScroll                $2005   ; +
-.alias PPUAddress               $2006   ; +
-.alias PPUIOReg                 $2007   ; +
- +
-.alias SQ1Cntrl0                $4000   ; +
-.alias SQ1Cntrl1                $4001   ;SQ1 hardware control registers. +
-.alias SQ1Cntrl2                $4002   ; +
-.alias SQ1Cntrl3                $4003   ; +
- +
-.alias SQ2Cntrl0                $4004   ; +
-.alias SQ2Cntrl1                $4005   ;SQ2 hardware control registers. +
-.alias SQ2Cntrl2                $4006   ; +
-.alias SQ2Cntrl3                $4007   ; +
- +
-.alias TriangleCntrl0           $4008   ; +
-.alias TriangleCntrl1           $4009   ;Triangle hardware control registers. +
-.alias TriangleCntrl2           $400A   ; +
-.alias TriangleCntrl3           $400B   ; +
- +
-.alias NoiseCntrl0              $400C   ; +
-.alias NoiseCntrl1              $400D   ;Noise hardware control registers. +
-.alias NoiseCntrl2              $400E   ; +
-.alias NoiseCntrl3              $400F   ; +
- +
-.alias DMCCntrl0                $4010   ; +
-.alias DMCCntrl1                $4011   ;DMC hardware control registers. +
-.alias DMCCntrl2                $4012   ; +
-.alias DMCCntrl3                $4013   ; +
- +
-.alias SPRDMAReg                $4014   ;Sprite RAM DMA register. +
-.alias APUCommonCntrl0          $4015   ;APU common control 1 register. +
-.alias CPUJoyPad1               $4016   ;Joypad1 register. +
-.alias APUCommonCntrl1          $4017   ;Joypad2/APU common control 2 register. +
- +
-;---------------------------------------------------------------------------------------------------- +
- +
-.alias RoomRAMA                 $6000   ;Thru $63FF. Used to load room before it is put into the PPU. +
-.alias RoomRAMB                 $6400   ;Thru $67FF. Used to load room before it is put into the PPU. +
- +
-.alias EndingType               $6872   ;1=worst ending, 5=best ending +
- +
-.alias SamusDataIndex           $6875   ;Index for Samus saved game stats(not used). #$00, #$10, #$20. +
- +
-.alias SamusStat00              $6876   ;Unused memory address for storing Samus info. +
-.alias TankCount                $6877   ;Number of energy tanks. +
-.alias SamusGear                $6878   ;Stores power-up items Samus has. +
-.alias MissileCount             $6879   ;Stores current number of missiles. +
-.alias MaxMissiles              $687A   ;Maximum amount of missiles Samus can carry +
-.alias KraidStatueStatus        $687B   ;bit 0 set, the statues blink, --> +
-.alias RidleyStatueStatus       $687C   ;bit 7 set, statues are up. +
-.alias SamusAge                 $687D   ;Low byte of Samus' age. +
-;      SamusAge+1               $687E   ;Mid byte of Samus' age. +
-;      SamusAge+2               $687F   ;High byte of Samus' age. +
-.alias SamusStat01              $6880   ;Unused memory address for storing Samus info. +
-.alias SamusStat02              $6881   ;SamusStat02 and 03 keep track of how many times Samus has--> +
-.alias SamusStat03              $6882   ;died, but this info is never accessed anywhere in the game. +
- +
-.alias AtEnding                 $6883   ;1=End scenes playing, 0=Not at ending. +
- +
-.alias EraseGame                $6884   ;MSB set=erase selected saved game(not used in password carts). +
- +
-.alias DataSlot                 $6885   ;#$00 thru #$02. Stored Samus data to load. Apparently a save--> +
-                                        ;game system was going to be used instead of a password routine.--> +
-                                        ;The code that uses this memory address is never accessed in--> +
-                                        ;the actual game. It looks like three player slots were going--> +
-                                        ;to be used to store game data(like Zelda).   +
- +
-.alias NumberOfUniqueItems      $6886   ;Counts number of power-ups and red doors--> +
-                                        ;opened.  Does not count different beams--> +
-                                        ;picked up (ice, long, wave). increments by 2. +
- +
-.alias UniqueItemHistory        $6887   ;Thru $68FC. History of Unique items collected.--> +
-.alias EndItemHistory           $68FC   ;Two bytes per item. +
- +
-.alias KraidRidleyPresent       $6987   ;#$01=Kraid/Ridley present, #$00=Kraid/Ridley not present. +
- +
-.alias PasswordByte00           $6988   ;Stores status of items 0 thru 7. +
-.alias PasswordByte01           $6989   ;Stores status of items 8 thru 15. +
-.alias PasswordByte02           $698A   ;Stores status of items 16 thru 23. +
-.alias PasswordByte03           $698B   ;Stores status of items 24 thru 31. +
-.alias PasswordByte04           $698C   ;Stores status of items 32 thru 39. +
-.alias PasswordByte05           $698D   ;Stores status of items 40 thru 47. +
-.alias PasswordByte06           $698E   ;Stores status of items 48 thru 55. +
-.alias PasswordByte07           $698F   ;Stores status of items 56 thru 58(bits 0 thru 2). +
-.alias PasswordByte08           $6990   ;start location(bits 0 thru 5), Samus suit status (bit 7). +
-.alias PasswordByte09           $6991   ;Stores SamusGear. +
-.alias PasswordByte0A           $6992   ;Stores MissileCount. +
-.alias PasswordByte0B           $6993   ;Stores SamusAge. +
-.alias PasswordByte0C           $6994   ;Stores SamusAge+1. +
-.alias PasswordByte0D           $6995   ;Stores SamusAge+2. +
-.alias PasswordByte0E           $6996   ;Stores no data. +
-.alias PasswordByte0F           $6997   ;Stores Statue statuses(bits 4 thu 7). +
-.alias PasswordByte10           $6998   ;Stores value RandomNumber1. +
-.alias PasswordByte11           $6999   ;Stores sum of $6988 thru $6998(Checksum). +
- +
-;Upper two bits of PasswordChar bytes will always be 00. +
-.alias PasswordChar00           $699A   ; +
-.alias PasswordChar01           $699B   ; +
-.alias PasswordChar02           $699C   ; +
-.alias PasswordChar03           $699D   ; +
-.alias PasswordChar04           $699E   ; +
-.alias PasswordChar05           $699F   ; +
-.alias PasswordChar06           $69A0   ; +
-.alias PasswordChar07           $69A1   ; +
-.alias PasswordChar08           $69A2   ; +
-.alias PasswordChar09           $69A3   ; +
-.alias PasswordChar0A           $69A4   ;These 18 memory addresses store the 18 characters--> +
-.alias PasswordChar0B           $69A5   ;of the password to be displayed on the screen. +
-.alias PasswordChar0C           $69A6   ; +
-.alias PasswordChar0D           $69A7   ; +
-.alias PasswordChar0E           $69A8   ; +
-.alias PasswordChar0F           $69A9   ; +
-.alias PasswordChar10           $69AA   ; +
-.alias PasswordChar11           $69AB   ; +
-.alias PasswordChar12           $69AC   ; +
-.alias PasswordChar13           $69AD   ; +
-.alias PasswordChar14           $69AE   ; +
-.alias PasswordChar15           $69AF   ; +
-.alias PasswordChar16           $69B0   ; +
-.alias PasswordChar17           $69B1   ; +
- +
-.alias NARPASSWORD              $69B2   ;0 = invinsible Samus not active, 1 = invinsible Samus active. +
-.alias JustInBailey             $69B3   ;0 = Samus has suit, 1 = Samus is without suit. +
-.alias ItmeHistory              $69B4   ;Thru $6A73. Unique item history saved game data (not used). +
- +
-;---------------------------------------[ More enemy RAM ]------------------------------------------- +
- +
-.alias Enstatus                 $6AF4   ;Keeps track of enemy statuses. #$00=Enemy slot not in use,--> +
-                                        ;#$04=Enemy frozen. +
-.alias EnRadY                   $6AF5   ;Distance in pixels from middle of enemy to top or botom. +
-.alias EnRadX                   $6AF6   ;Distance in pixels from middle of enemy to left or right. +
-.alias EnAnimFrame              $6AF7   ;Index into enemy animation frame data. +
-.alias EnAnimDelay              $6AF8   ;Number of frames to delay between animation frames. +
-.alias EnResetAnimIndex         $6AF9   ;Index to beginning of animation sequence. +
-.alias EnAnimIndex              $6AFA   ;Index to current animation. +
-.alias EnNameTable              $6AFB   ;#$00=Enemy on name table 0, #$01=Enemy on name table 3. +
-;                               $6AFC +
-;                               $6AFD +
-;                               $6AFE +
-;                               $6AFF +
-;                               $6B00 +
-;                               $6B01 +
-.alias EnDataIndex              $6B02   ;Contains index into enemy data tables. +
-;                               $6B03 +
- +
-;-------------------------------------[ Intro sprite defines ]--------------------------------------- +
- +
-.alias IntroStarSprite00        $6E00   ;thru $6E9F +
-.alias IntroStarSprite01        $6E04   ; +
-.alias IntroStarSprite02        $6E08   ; +
-.alias IntroStarSprite03        $6E0C   ; +
-.alias IntroStarSprite04        $6E10   ; +
-.alias IntroStarSprite05        $6E14   ; +
-.alias IntroStarSprite06        $6E18   ; +
-.alias IntroStarSprite07        $6E1C   ; +
-.alias IntroStarSprite08        $6E20   ; +
-.alias IntroStarSprite09        $6E24   ; +
-.alias IntroStarSprite0A        $6E28   ; +
-.alias IntroStarSprite0B        $6E2C   ; +
-.alias IntroStarSprite0C        $6E30   ; +
-.alias IntroStarSprite0D        $6E34   ; +
-.alias IntroStarSprite0E        $6E38   ; +
-.alias IntroStarSprite0F        $6E3C   ; +
-.alias IntroStarSprite10        $6E40   ; +
-.alias IntroStarSprite11        $6E44   ; +
-.alias IntroStarSprite12        $6E48   ; +
-.alias IntroStarSprite13        $6E4C   ; +
-.alias IntroStarSprite14        $6E50   ;RAM used for storing intro star sprite data. +
-.alias IntroStarSprite15        $6E54   ; +
-.alias IntroStarSprite16        $6E58   ; +
-.alias IntroStarSprite17        $6E5C   ; +
-.alias IntroStarSprite18        $6E60   ; +
-.alias IntroStarSprite19        $6E64   ; +
-.alias IntroStarSprite1A        $6E68   ; +
-.alias IntroStarSprite1B        $6E6C   ; +
-.alias IntroStarSprite1C        $6E70   ; +
-.alias IntroStarSprite1D        $6E74   ; +
-.alias IntroStarSprite1E        $6E78   ; +
-.alias IntroStarSprite1F        $6E7C   ; +
-.alias IntroStarSprite20        $6E80   ; +
-.alias IntroStarSprite21        $6E84   ; +
-.alias IntroStarSprite22        $6E88   ; +
-.alias IntroStarSprite23        $6E8C   ; +
-.alias IntroStarSprite24        $6E90   ; +
-.alias IntroStarSprite25        $6E94   ; +
-.alias IntroStarSprite26        $6E98   ; +
-.alias IntroStarSprite27        $6E9C   ; +
- +
-;Intro sprite 0 and sparkle sprite. +
-.alias IntroSpr0YCoord          $6EA0   ;Loaded into byte 0 of sprite RAM(Y position). +
-.alias IntroSpr0PattTbl         $6EA1   ;Loaded into byte 1 of sprite RAM(Pattern table index). +
-.alias IntroSpr0Cntrl           $6EA2   ;Loaded into byte 2 of sprite RAM(Control byte). +
-.alias IntroSpr0XCoord          $6EA3   ;Loaded into byte 3 of sprite RAM(X position). +
-.alias IntroSpr0Index           $6EA4   ;Index to next sparkle sprite data byte. +
-.alias IntroSpr0NextCntr        $6EA5   ;Decrements each frame. When 0, load new sparkle sprite data. +
-.alias SparkleSpr0YChange       $6EA6   ;Sparkle sprite y coordinate change. +
-.alias IntroSpr0XChange         $6EA6   ;Intro sprite x total movement distance. +
-.alias SparkleSpr0XChange       $6EA7   ;Sparkle sprite x coordinate change. +
-.alias IntroSpr0YChange         $6EA7   ;Intro sprite y total movement distance. +
-.alias IntroSpr0ChngCntr        $6EA8   ;decrements each frame from #$20. At 0, change sparkle sprite. +
-.alias IntroSpr0ByteType        $6EA9   ;#$00 or #$01. When #$01, next sparkle data byte uses all 8--> +
-                                        ;bits for x coord change. if #$00, next data byte contains--> +
-                                        ;4 bits for x coord change and 4 bits for y coord change. +
-.alias IntroSpr0Complete        $6EAA   ;#$01=sprite has completed its task, #$00 if not complete. +
-.alias IntroSpr0SpareB          $6EAB   ;Not used. +
-.alias IntroSpr0XRun            $6EAC   ;x displacement of sprite movement(run). +
-.alias IntroSpr0YRise           $6EAD   ;y displacement of sprite movement(rise). +
-.alias IntroSpr0XDir            $6EAE   ;MSB set=decrease sprite x pos, else increase sprite  x pos. +
-.alias IntroSpr0YDir            $6EAF   ;MSB set=decrease sprite y pos, else increase sprite  y pos. +
- +
-;Intro sprite 1 and sparkle sprite. +
-.alias IntroSpr1YCoord          $6EB0   ;Loaded into byte 0 of sprite RAM(Y position). +
-.alias IntroSpr1PattTbl         $6EB1   ;Loaded into byte 1 of sprite RAM(Pattern table index). +
-.alias IntroSpr1Cntrl           $6EB2   ;Loaded into byte 2 of sprite RAM(Control byte). +
-.alias IntroSpr1XCoord          $6EB3   ;Loaded into byte 3 of sprite RAM(X position). +
-.alias IntroSpr1Index           $6EB4   ;Index to next sparkle sprite data byte. +
-.alias IntroSpr1NextCntr        $6EB5   ;Decrements each frame. When 0, load new sparkle sprite data. +
-.alias SparkleSpr1YChange       $6EB6   ;Sparkle sprite y coordinate change. +
-.alias IntroSpr1XChange         $6EB6   ;Intro sprite x total movement distance. +
-.alias SparkleSpr1XChange       $6EB7   ;Sparkle sprite x coordinate change. +
-.alias IntroSpr1YChange         $6EB7   ;Intro sprite y total movement distance. +
-.alias IntroSpr1ChngCntr        $6EB8   ;decrements each frame from #$20. At 0, change sparkle sprite. +
-.alias IntroSpr1ByteType        $6EB9   ;#$00 or #$01. When #$01, next sparkle data byte uses all 8--> +
-                                        ;bits for x coord change. if #$00, next data byte contains--> +
-                                        ;4 bits for x coord change and 4 bits for y coord change. +
-.alias IntroSpr1Complete        $6EBA   ;#$01=sprite has completed its task, #$00 if not complete. +
-.alias IntroSpr1SpareB          $6EBB   ;Not used. +
-.alias IntroSpr1XRun            $6EBC   ;x displacement of sprite movement(run). +
-.alias IntroSpr1YRise           $6EBD   ;y displacement of sprite movement(rise). +
-.alias IntroSpr1XDir            $6EBE   ;MSB set=decrease sprite x pos, else increase sprite  x pos. +
-.alias IntroSpr1YDir            $6EBF   ;MSB set=decrease sprite y pos, else increase sprite  y pos. +
- +
-;Intro sprite 2. +
-.alias IntroSpr2YCoord          $6EC0   ;Loaded into byte 0 of sprite RAM(Y position). +
-.alias IntroSpr2PattTbl         $6EC1   ;Loaded into byte 1 of sprite RAM(Pattern table index). +
-.alias IntroSpr2Cntrl           $6EC2   ;Loaded into byte 2 of sprite RAM(Control byte). +
-.alias IntroSpr2XCoord          $6EC3   ;Loaded into byte 3 of sprite RAM(X position). +
-.alias IntroSpr2Spare5          $6EC4   ;Not used. +
-.alias IntroSpr2Spare6          $6EC5   ;Not used. +
-.alias IntroSpr2XChange         $6EC6   ;Intro sprite x total movement distance. +
-.alias IntroSpr2YChange         $6EC7   ;Intro sprite y total movement distance. +
-.alias IntroSpr2Spare8          $6EC8   ;Not used. +
-.alias IntroSpr2Spare9          $6EC9   ;Not used. +
-.alias IntroSpr2Complete        $6ECA   ;#$01=sprite has completed its task, #$00 if not complete. +
-.alias IntroSpr2SpareB          $6ECB   ;Not used. +
-.alias IntroSpr2XRun            $6ECC   ;x displacement of sprite movement(run). +
-.alias IntroSpr2YRise           $6ECD   ;y displacement of sprite movement(rise). +
-.alias IntroSpr2XDir            $6ECE   ;MSB set=decrease sprite x pos, else increase sprite  x pos. +
-.alias IntroSpr2YDir            $6ECF   ;MSB set=decrease sprite y pos, else increase sprite  y pos. +
- +
-;Intro sprite 3. +
-.alias IntroSpr3YCoord          $6ED0   ;Loaded into byte 0 of sprite RAM(Y position). +
-.alias IntroSpr3PattTbl         $6ED1   ;Loaded into byte 1 of sprite RAM(Pattern table index). +
-.alias IntroSpr3Cntrl           $6ED2   ;Loaded into byte 2 of sprite RAM(Control byte). +
-.alias IntroSpr3XCoord          $6ED3   ;Loaded into byte 3 of sprite RAM(X position). +
-.alias IntroSpr3Spare5          $6ED4   ;Not used. +
-.alias IntroSpr3Spare6          $6ED5   ;Not used. +
-.alias IntroSpr3XChange         $6ED6   ;Intro sprite x total movement distance. +
-.alias IntroSpr3YChange         $6ED7   ;Intro sprite y total movement distance. +
-.alias IntroSpr3Spare8          $6ED8   ;Not used. +
-.alias IntroSpr3Spare9          $6ED9   ;Not used. +
-.alias IntroSpr3Complete        $6EDA   ;#$01=sprite has completed its task, #$00 if not complete. +
-.alias IntroSpr3SpareB          $6EDB   ;Not used. +
-.alias IntroSpr3XRun            $6EDC   ;x displacement of sprite movement(run). +
-.alias IntroSpr3YRise           $6EDD   ;y displacement of sprite movement(rise). +
-.alias IntroSpr3XDir            $6EDE   ;MSB set=decrease sprite x pos, else increase sprite  x pos. +
-.alias IntroSpr3YDir            $6EDF   ;MSB set=decrease sprite y pos, else increase sprite  y pos. +
- +
-;Intro sprite 4. +
-.alias IntroSpr4YCoord          $6EE0   ;Loaded into byte 0 of sprite RAM(Y position). +
-.alias IntroSpr4PattTbl         $6EE1   ;Loaded into byte 1 of sprite RAM(Pattern table index). +
-.alias IntroSpr4Cntrl           $6EE2   ;Loaded into byte 2 of sprite RAM(Control byte). +
-.alias IntroSpr4XCoord          $6EE3   ;Loaded into byte 3 of sprite RAM(X position). +
-.alias IntroSpr4Spare5          $6EE4   ;Not used. +
-.alias IntroSpr4Spare6          $6EE5   ;Not used. +
-.alias IntroSpr4XChange         $6EE6   ;Intro sprite x total movement distance. +
-.alias IntroSpr4YChange         $6EE7   ;Intro sprite y total movement distance. +
-.alias IntroSpr4Spare8          $6EE8   ;Not used. +
-.alias IntroSpr4Spare9          $6EE9   ;Not used. +
-.alias IntroSpr4Complete        $6EEA   ;#$01=sprite has completed its task, #$00 if not complete. +
-.alias IntroSpr4SpareB          $6EEB   ;Not used. +
-.alias IntroSpr4XRun            $6EEC   ;x displacement of sprite movement(run). +
-.alias IntroSpr4YRise           $6EED   ;y displacement of sprite movement(rise). +
-.alias IntroSpr4XDir            $6EEE   ;MSB set=decrease sprite x pos, else increase sprite  x pos. +
-.alias IntroSpr4YDir            $6EEF   ;MSB set=decrease sprite y pos, else increase sprite  y pos. +
- +
-;Intro sprite 5. +
-.alias IntroSpr5YCoord          $6EF0   ;Loaded into byte 0 of sprite RAM(Y position). +
-.alias IntroSpr5PattTbl         $6EF1   ;Loaded into byte 1 of sprite RAM(Pattern table index). +
-.alias IntroSpr5Cntrl           $6EF2   ;Loaded into byte 2 of sprite RAM(Control byte). +
-.alias IntroSpr5XCoord          $6EF3   ;Loaded into byte 3 of sprite RAM(X position). +
-.alias IntroSpr5Spare5          $6EF4   ;Not used. +
-.alias IntroSpr5Spare6          $6EF5   ;Not used. +
-.alias IntroSpr5XChange         $6EF6   ;Intro sprite x total movement distance. +
-.alias IntroSpr5YChange         $6EF7   ;Intro sprite y total movement distance. +
-.alias IntroSpr5Spare8          $6EF8   ;Not used. +
-.alias IntroSpr5Spare9          $6EF9   ;Not used. +
-.alias IntroSpr5Complete        $6EFA   ;#$01=sprite has completed its task, #$00 if not complete. +
-.alias IntroSpr5SpareB          $6EFB   ;Not used. +
-.alias IntroSpr5XRun            $6EFC   ;x displacement of sprite movement(run). +
-.alias IntroSpr5YRise           $6EFD   ;y displacement of sprite movement(rise). +
-.alias IntroSpr5XDir            $6EFE   ;MSB set=decrease sprite x pos, else increase sprite  x pos. +
-.alias IntroSpr5YDir            $6EFF   ;MSB set=decrease sprite y pos, else increase sprite  y pos. +
- +
-;Intro sprite 6. +
-.alias IntroSpr6YCoord          $6F00   ;Loaded into byte 0 of sprite RAM(Y position). +
-.alias IntroSpr6PattTbl         $6F01   ;Loaded into byte 1 of sprite RAM(Pattern table index). +
-.alias IntroSpr6Cntrl           $6F02   ;Loaded into byte 2 of sprite RAM(Control byte). +
-.alias IntroSpr6XCoord          $6F03   ;Loaded into byte 3 of sprite RAM(X position). +
-.alias IntroSpr6Spare5          $6F04   ;Not used. +
-.alias IntroSpr6Spare6          $6F05   ;Not used. +
-.alias IntroSpr6XChange         $6F06   ;Intro sprite x total movement distance. +
-.alias IntroSpr6YChange         $6F07   ;Intro sprite y total movement distance. +
-.alias IntroSpr6Spare8          $6F08   ;Not used. +
-.alias IntroSpr6Spare9          $6F09   ;Not used. +
-.alias IntroSpr6Complete        $6F0A   ;#$01=sprite has completed its task, #$00 if not complete. +
-.alias IntroSpr6SpareB          $6F0B   ;Not used. +
-.alias IntroSpr6XRun            $6F0C   ;x displacement of sprite movement(run). +
-.alias IntroSpr6YRise           $6F0D   ;y displacement of sprite movement(rise). +
-.alias IntroSpr6XDir            $6F0E   ;MSB set=decrease sprite x pos, else increase sprite  x pos. +
-.alias IntroSpr6YDir            $6F0F   ;MSB set=decrease sprite y pos, else increase sprite  y pos. +
- +
-;Intro sprite 7. +
-.alias IntroSpr7YCoord          $6F10   ;Loaded into byte 0 of sprite RAM(Y position). +
-.alias IntroSpr7PattTbl         $6F11   ;Loaded into byte 1 of sprite RAM(Pattern table index). +
-.alias IntroSpr7Cntrl           $6F12   ;Loaded into byte 2 of sprite RAM(Control byte). +
-.alias IntroSpr7XCoord          $6F13   ;Loaded into byte 3 of sprite RAM(X position). +
-.alias IntroSpr7Spare5          $6F14   ;Not used. +
-.alias IntroSpr7Spare6          $6F15   ;Not used. +
-.alias IntroSpr7XChange         $6F16   ;Intro sprite x total movement distance. +
-.alias IntroSpr7YChange         $6F17   ;Intro sprite y total movement distance. +
-.alias IntroSpr7Spare8          $6F18   ;Not used. +
-.alias IntroSpr7Spare9          $6F19   ;Not used. +
-.alias IntroSpr7Complete        $6F1A   ;#$01=sprite has completed its task, #$00 if not complete. +
-.alias IntroSpr7SpareB          $6F1B   ;Not used. +
-.alias IntroSpr7XRun            $6F1C   ;x displacement of sprite movement(run). +
-.alias IntroSpr7YRise           $6F1D   ;y displacement of sprite movement(rise). +
-.alias IntroSpr7XDir            $6F1E   ;MSB set=decrease sprite x pos, else increase sprite  x pos. +
-.alias IntroSpr7YDir            $6F1F   ;MSB set=decrease sprite y pos, else increase sprite  y pos. +
- +
-;---------------------------------------------------------------------------------------------------- +
- +
-.alias WorldMapRAM              $7000   ;Thru $73FF. The map is 1Kb in size (1024 bytes). +
- +
-.alias SamusData                $77FE   ;Thru $782D. Samus saved game data (not used). +
- +
-.alias MMC1Reg0                 $8000   ;Writing to any of these addresses or any-->  +
-.alias MMC1Reg1                 $A000   ;address in between will write configuration--> +
-.alias MMC1Reg2                 $C000   ;bits to the MMC chip. +
-.alias MMC1Reg3                 $E000   ; +
- +
-;------------------------------------------[ Misc. defines ]----------------------------------------- +
- +
-.alias modeTitle                1 +
- +
-;Bitmask defs used for SamusGear. +
-.alias gr_BOMBS                 %00000001 +
-.alias gr_HIGHJUMP              %00000010 +
-.alias gr_LONGBEAM              %00000100 +
-.alias gr_SCREWATTACK           %00001000 +
-.alias gr_MARUMARI              %00010000 +
-.alias gr_VARIA                 %00100000 +
-.alias gr_WAVEBEAM              %01000000 +
-.alias gr_ICEBEAM               %10000000 +
- +
-;Samus action handlers. +
-.alias sa_Stand                 0 +
-.alias sa_Run                         ;Also run and jump. +
-.alias sa_Jump                  2 +
-.alias sa_Roll                  3 +
-.alias sa_PntUp                 4 +
-.alias sa_Door                  5 +
-.alias sa_PntJump               6 +
-.alias sa_Dead                  7 +
-.alias sa_Dead2                 8 +
-.alias sa_Elevator              9 +
-.alias sa_FadeIn0               20 +
-.alias sa_FadeIn1               21 +
-.alias sa_FadeIn2               22 +
-.alias sa_FadeIn3               23 +
-.alias sa_FadeIn4               24 +
-.alias sa_Begin                 255 +
- +
-;Animations +
-.alias an_SamusRun              $00 +
-.alias an_SamusFront            $04 +
-.alias an_SamusStand            $07 +
-.alias an_SamusJump             $0C +
-.alias an_SamusSalto            $0E +
-.alias an_SamusRunJump          $13 +
-.alias an_SamusRoll             $16 +
-.alias an_Bullet                $1B +
-.alias an_SamusFireJump         $20 +
-.alias an_SamusFireRun          $22 +
-.alias an_SamusPntUp            $27 +
-.alias an_Explode               $32 +
-.alias an_SamusJumpPntUp        $35 +
-.alias an_SamusRunPntUp         $37 +
-.alias an_WaveBeam              $7D +
-.alias an_BombTick              $7F +
-.alias an_BombExplode           $82 +
-.alias an_MissileLeft           $8B +
-.alias an_MissileRight          $8D +
-.alias an_MissileExplode        $91 +
- +
-;Weapon action handlers. +
-.alias wa_RegularBeam           1 +
-.alias wa_WaveBeam              2 +
-.alias wa_IceBeam               3 +
-.alias wa_BulletExplode         4 +
-.alias wa_LayBomb               8 +
-.alias wa_BombCount             9 +
-.alias wa_BombExplode           10 +
-.alias wa_Missile               11 +
-</code> +
m1/disassembly/defines.1433679190.txt.gz · Last modified: by 127.0.0.1