Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;---------------------------------------------
- RAM_Offsets:
- ColorTrig = $18
- draw_horizontal = $19
- draw_EXAtt = $1B
- Palfade_hologram = $1C ;not used???
- CommonPurpose = $1F ;used by many things
- leveldata_Low = $20 ;20/21 together, current level data address
- leveldata_High = $21
- cur_level = $22
- NTDrawDirection = $23
- Scroll_NTline = $24
- Scroll_YposCopy1 = $26
- Scroll_XposCopy2 = $27
- Read32x32Block = $28
- Scroll_ScrNum = $29 ;similiar to $F9
- Scroll_Direction = $2A
- Scroll_CurMap = $2B
- Scroll_MaxScr = $2C
- Scroll_CurScr = $2D
- Scroll_8way = $2E ;8way scroll status
- Scroll_DrawType = $2F ;FF: 8-way 01: EX 00: NT
- ;---------------------------------------------
- MegamanState = $30
- MegamanDirection = $31
- BusterTimer = $32
- MB_ChargeTimer = $34
- Platform_Dir = $36
- Platform_XLo = $37
- Platform_XHi = $38
- InvisibleTimer = $39
- fallingflag = $3A ;ignore jump release, used by Rush Coil
- ;---------------------------------------------
- AnimationDisable = $5E
- itemdrops = $5F ;nonzero: disable
- cleared_wily = $60 ;future wily stages
- cleared_level = $61 ;8 RM stages
- cleared_sublevel = $62 ;extra stages
- HeartTanks = $63 ;8 max, 32 HP
- yoku_reference = $64
- yoku_timer = $65
- yoku_Pattern = $66 ;main address to read
- yoku_curblock = $67 ;current block #
- eventstats = $6C ;special event flags
- WeaponTanks = $6D ;bit 0-3: W, bit 4-7: Mini W
- prevscreen = $6F ;level checkpoints
- PlayTime = $75 ;75-79: Status-ms-sec-min-hour
- TAMode = $7A
- TATimers = $7B ;7B-7F
- framecounter = $95 ;used by EVERYTHING
- SprRAMoffset = $97
- gravityadd = $99 ;0.40 megaman, 0.55 enemies
- nextenemy = $9E
- prevenemy = $9F
- ;---------------------------------------------
- ;weapons RAM
- WepMenuPos1 = $A0
- WepMenuPos2 = $A1
- megamanHP = $A2
- duplexHP = $A3
- rapidHP = $A4
- spikeHP = $A5
- necroHP = $A6
- glacierHP = $A7
- discHP = $A8
- rcoilHP = $A9
- boltHP = $AA
- rmarineHP = $AB
- pyroHP = $AC
- rjetHP = $AD
- lives = $AE
- itemstats = $AF
- bossHP = $B0
- WeaponBar = $B1
- lifebar = $B2 ;megaman lifebar
- bossbar = $B3 ;boss lifebar
- shootcounter = $B5 ;# times wep is shot
- ;---------------------------------------------
- water_Gtimer = $B9 ;water gravity timer
- water_enable = $BA ;00: no water, 01: water
- ;---------------------------------------------
- mutesound = $CD ;used with CC
- bgmID = $D9 ;current BGM ID
- ;---------------------------------------------
- ;graphics registers
- bgCHR1 = $E8 ;BG tile 00-7F
- bgCHR2 = $E9 ;BG tile 80-FF
- sprCHR1 = $EA ;Spr tile 00-3F
- sprCHR2 = $EB ;Spr tile 40-7F
- sprCHR3 = $EC ;Spr tile 80-BF
- sprCHR4 = $ED ;Spr tile C0-FF
- bgAnimation = $EE ;BG tile 00-3F animate
- ;---------------------------------------------
- cur_IRQ = $F0 ;use $F0 with $F9
- IRQScanlinePos = $F1
- newPRG_8000 = $F4
- newPRG_A000 = $F5
- cur_screen = $F9
- ScrollY = $FA
- copy_ScrollX = $FB ;needed in NMI/IRQ
- ScrollX = $FC
- cur_nametable = $FD ;written to $2000
- Display_2001 = $FE ;written to $2001
- laghandle = $FF ;lag handler
- challengetimer = $14F ;also pyro water
- BeatCalls = $186
- Heart_lvlStats = $187 ;hearts collected
- Menus_Action = $1DE ;1DE + 1DF together
- File1_Enable = $6000
- File2_Enable = $6001 ;00: disable, 01: enable
- GameSetup_Init = $6003
- GameLanguage = $6004 ;00: english, 01: japanese
- PlayerLanguage = $6005 ;same as 6004
- File1_SRAM = $6010 ;6010-603F
- File2_SRAM = $6040 ;6040-606F
- PlayerName = $60E0 ;name + 60F0: Jp dakutens
- Playername_dup = $60EB ;no duplicate names
- TimeAttack_SRAM = $6100 ;6100-617F
- ;---------------------------------------------
- ;common movements/etc in 38000 area:
- CommonRoutines:
- set_seenflag = $88FF
- jump_routine = $8925 ; 6B00,x + 6B20,x RAM
- set_routine = $8930 ; puresabe's technique
- G_Main_00 = $8A64 ;Y = 00
- G_MoveLR_00 = $8A69 ;Y = 00
- G_MoveLR_1E = $8A6D ;16x16 size, Y = 1E
- defaulthitbox = $8A71 ;16x16 size
- Invert_Repelshot = $8A77
- G_MoveLR = $8A80
- G_MoveUD = $8A8E
- NoG_MoveLR = $8A9C
- NoG_MoveUD = $8AA9
- Invert_DirLR = $8AB6
- Invert_DirUD = $8ABF
- Set_Invisibility = $8AC8
- Clear_Invisibility = $8AD1
- Invert_Invisibility = $8ADA
- Face_Right = $8AE3
- Face_Left = $8AEC
- Invert_Facing = $8AF5
- DeleteSpriteY = $8AFE ;300,y delete
- DeleteSprite = $8B04 ;300,x delete
- resetAI = $8B0A ;300,x to 80
- objidXtoY = $8B0E
- dirXtoY = $8B15
- SetXSpeedlohi = $8B1C ;sets 400,x + 420,x same val
- ClearVar1 = $8B23 ;clears 500,x
- ClearVar1_2 = $8B29 ;clears 500,x + 520,x
- addXspeed = $8B32
- subtractXspeed = $8B46
- addYspeed = $8B5A
- subtractYspeed = $8B68
- NoG_MoveLRUD = $8B74 ;both LR and UD
- initExplode = $8B7A ;full explosion
- bossrng = $8B89
- enemyrng = $8B9B ;50% RNG
- Invert_Xspeed = $8BA4 ;used for circles
- resetgravity = $8BC2 ;non-mm gravity 0.55 pix/frame
- Clear_SprHide = $8BC7 ;clears 3E0,x
- ClearVar4 = $8BCD ;clears 560,x
- common_settings1 = $96B3
- turndir_facemm = $973F
- Delete_ExplodeBall = $99AA
- ;---------------------------------------------
- ;fixed variables in 7C000-7FFFF area.
- unloadEXRAM = $C4CB
- unloadNTBL = $C50B
- turnoff_PPU = $C550
- turnon_PPU = $C55A
- loadleveldata = $C570 ;lvl to $6300-7FFF
- clearnametable = $C58C
- enableEXRAM = $C5AA
- clearsprRAM = $C5B7
- palfade_restore = $C74C
- palfade_darken = $C752
- miscleveldata = $C82E ;setup all level data
- megamanpalette = $C898
- AwardInit1 = $CAE1 ; Y reg = challenge # in dec
- AwardInit2 = $CAF3 ; X reg = challenge # in hex
- clearallsprites = $CB1D
- calcmaxHP = $CB2E
- drawscreen = $CB3B
- reset_commonreg1 = $CBA4 ; resets MANY registers
- reset_commonreg2 = $CBBD ; only used in menuscreens.asm
- InitWpn = $D0D5 ; init wpn obj
- fastjump = $D10C ; uses the 6C JMP
- PlaceObjYatX = $D2F0
- defaultMMspeed = $D3FD ; 1.4C LR mm spd
- initCommonSprY = $D444 ; default settings
- landingSFX = $D68A ; mm land SFX
- AND_table = $DEE0 ; 01 02 04 08 10 20 40 80
- Scroll_EntryPoint = $E195 ; scr/scroll engine here
- VerticalNT = $E472 ; 5105: 44 vertical
- HorizontalNT = $E476 ; 5105: 50 horizontal
- HitDetect_Block = $E8D4 ; load Y reg
- reset_tempRAM = $EB77 ; clear $110-14F
- drawscreen_type2 = $EEC9
- killmegaman = $F144
- reset_SlipperyIce = $F35C
- HitDetect_SprWpn = $F42F
- faceleft = $F572
- G_MoveRightMM = $F59A ;megaman only
- G_MoveRight = $F59F
- G_MoveLeftMM = $F5D5 ;megaman only
- G_MoveLeft = $F5DA
- G_MoveDown = $F613
- G_MoveUp = $F646
- main_gravityMM = $F671 ;megaman only
- main_gravity = $F676
- MoveRight = $F71D
- MoveLeft = $F73B
- MoveDown = $F759
- MoveUp = $F779
- move_gravity = $F797 ; dont need much, use normal routine
- setYspeed00 = $F812 ;sets Y speed to xx.00
- resetYspeed = $F81B
- AniChange = $F835
- ResetAniOrder = $F838
- SetAniFrame = $F83A ;manual set frame
- ResetAniTimer = $F83D
- initSprY = $F845
- DirAtRock = $F86C
- FacingAtDir = $F883
- initbgm = $F898
- initsound = $F89A
- CheckXPos = $F8BD
- hitdetectspr = $FAE2
- newX = $FC43
- newY = $FC53
- newY_manual = $FC55
- waitframe_manual = $FD5B
- waitframe_drawspr = $FD6B
- LONG_CALL_BODY = $FDBB ; new puresabe technique
- waitvblank_x = $FE79
- waitvblank = $FE80
- forcevblank = $FF4D
- bankswap_F5 = $FF69
- bankswap_F4 = $FF6D
- bankswap = $FF6F
- M_DBObjPointer .macro
- TRASH_GLOBAL_LABEL_\@:
- .db LOW (\1)
- ORG_DELTA $FF
- .db HIGH(\1)
- ORG_DELTA $FF
- .db (BANK(\1)|$80)
- ORG_DELTA -$200
- .endm
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement