TOFIX: Room Transition to Statue Room ends up with blocks still there (Will probably fix this later when it comes time to implement the room) Might be related to above: PLM updates to room graphics are lost, probably due to the new room graphic code. Hm. BG3 tilemap needs to be fixed from log book? UPDATE: Not sure what this is talking about. Logbook's working fine? Music notes have been lost. >_< Kraid's hideout needs major work anyways. Wall jump in water rooms doesn't work. An underwater check must be wrong somewhere. AUTO graphics on status bar need to be shut down for good. Found another lead in the PLM pickup instruction (8986). Need to edit and see if that'll do it. Might as well fix the sprites in Ceres Elevator Escape. Just really need to fix bomb sprites I guess, check how it does beam sprites and imitate it. Also don't set Samus's pose, just lock controls out. There is unmarked data at 90:FCB2, looks like references to buttons (jump, aim up, aim down). I have no idea if it's useful or not. Grep comes up with nothing? Guess I'll ignore it. Is the Waver change documented? FIXED: Firing while spinjumping doesn't work right yet. Yes it does. Fix Spark Bounce endings to fire echoes in consistent directions. Done. Updated Spark Bounce entry. Aim Up + Aim Down = Aim Down, not Aim Straight Up. Forgot a few things in controller input code making Aim Down cancel Aim Up. More unmarked PLM stuff. 84:F143 looks like a single animation to F0 5F. I think this is the block Ridley spawns? F153 looks like the block's bomb reaction PLM (breaks over 4 frames). F180 has some code to check for Ceres... it's JSRed to from 84:8232. Ceres escape stuff, marked now. I started a PLM at 84:F111. Grep that and find what it is. I'm guessing it's the spark bounce. Anything else in that bank I need to still note? Yeah, that's spark bounce item PLM. Background graphics from room transition sometimes glitches (I've forgotten this one. Repeatable near noob tube) A stray Carry messed up an addition for left room transitions under certain conditions. A REP #$21 fixed that. No other glitched graphics, I hope. Shooting point blank causes explosions to move. Off the top of my head I don't know what code I changed to cause that. Was something real old in the beam code. I don't know why I removed the check. Copied it from original code, plenty of space, works fine now. Using Speed Morph without it equipped puts Samus into the ground Overzealous bug anticipation. Removed some of the cancel code, and it's fixed. Samus can't duck while aiming down and running though... minor loss. Room transition does not reload CRE when told to. Transposed 2 bytes. Easiest fix ever. The code that moves you outside of a door when you room transition? Yeah, that actually does work. So I need to put it back in now. Don't remember explicitly fixing this, but I *think* I did. Need to test. Rapid wall jumping locks up the controls. It turned out STZ $0DC6 WAS necessary. Well, fixed now. Spark Bounce is crashing when the jump ends on a wall, either by waiting or hitting too high (Stack misalignment due to electromorph fix, I think) I think this is fixed now, need to test. Also test other shinespark endings Spark Bounce has different timers? Should be a single, constant timer. Vertical sets after horizontal movement. Vertical is now skipped after spark bounce. Electromorph is currently allowing a short shinespark timer after ending. Need to kill 0A68 after EM. Done so. Echo speeds are no longer zeroed, this does not seem to cause any problems though Samus's elbow is not attached to her arm during right-wall walljumps. It's an original bug, but it's really observable when bouncing. FIXED, purely graphical mistake. Use ElbowFix.ips Super missiles can seriously glitch up. I don't know why. Super Missiles no longer seriously glitch up. Never figured out precisely how the glitch worked - might look into for original Super Metroid. List of things to still work on, roughly in order: 023, 018, 048, 061, 067, 093?, 096, 098, 101, 104, 109, 111, 113 PLMS: 055, 057, 081, 083, 051 MB: 064, 030, 028, 025, 012, 016 (need a place/environment to put it), 044, 047, 051, 059, 060, 062, 069, 070, 071, 076, 077, 078, 087, 091, 097, 009, 043, 049, 065, 074, 107 114 MISCELLANEOUS CHANGES Apply TransitionTable.ips first, and ElbowFix Kejardon Stack! Currently inside of LogBookVWF.asm 80:9589 - 80:95FD 80:D7A4 - 80:D809 Game (/SNES) Initialization: 80:FCAA - 80:FCD0 (May be added to) 8B:9158 - 8B:915B 000. General optimizations Nothing really to add here. See Optimizations.txt. - Kejardon. I guess. IN PROGRESS. Will be added to continuously, probably. 80:802F - 80:8046 80:8111 - 80:812E 80:82D6 - 80:8323 80:875D - 80:8789 80:896E - 80:8ACB 001. Draygon Eats Morph Balls If Samus is morphed as a ball and Draygon grabs her, make Draygon 'eat' Samus. Samus's energy will drain until she dies or lays a power bomb, which can kill Draygon instantly. - Idea by Drewseph, 'inspired' by cpujunkie3 DONE. Uses spaces 90:85EC - 90:8605 A5:94C2 A5:8EA9 - A5:8F06 A5:F960 - A5:FC95 002. Randomly switching enemies Some new innocent looking enemy (like a zoomer) will randomly switch places and positions with its normal look-alike enemy. Stats will be drastically different than the normal enemy. - Kejardon DONE. See waver. 003. Super jump --> Speed Run hack - Fusion and Zero Mission DONE. Uses spaces 90:D2CF - 90:D2D1 90:F640 - 90:F6B1 94:8884 - 94:8886 94:B1B0 - 94:B257 Available immediately after Speed Booster 004. Super Jump Wall Grab If Samus does a super jump and hits a wall horizontally, holding jump will put Samus into a wall jump pose, where she will sit on the wall for the length of a normal super jump timer. Pressing away or R will cause Samus to continue in a horizontal or diagonal super jump, and pressing up or releasing jump will cause Samus to do a vertical super jump. Energy will continue to drain while Samus is in this pose, so speed is a good thing. Update: Echo shot fix. See SparkBounceEchoFix.asm - Idea inspired/by Drewseph, modified by Kejardon Mostly Done. Uses spaces 90:D1D6 - 90:D1D8 90:D40D - 90:D4C1 90:F6B8 - 90:F71B 90:F720 - 90:F746 91:9F22 - 91:9F25 91:A624 - 91:A657 91:B050 - 91:B053 91:B729 - 91:B738 91:BC75 - 91:BC9F ;Just various single-byte changes 91:FAD6 - 91:FAE6 92:92A3 - 92:92A6 92:949D - 92:94A0 92:D98E - 92:D991 92:EE00 - 92:EE0F 92:FFEF - 92:FFFE 94:B1A0 - 94:B1AA B8:8090 - B8:80AB ;Works with Electromorph too Uses Equipment bit #$0040. (7E:09A2 and 09A4: 0000 0000 0X00 0000) ;Item not implemented yet. To be placed behind Ridley. Item done. Among bank 8F stuff, yet to be placed. Message box data noted in message box expansion. 84:F111 - 84:F142 005. Drastically different cooldowns / damage / abilities from beam comboes - Kejardon DONE. See 83. 006. Quicker transition between pause screens - Kejardon DONE 80:8925 - 80:8926 8011 Yeah. That's it. :) X. 'Item' PLMs that are in fact spikes - Kejardon Canceling... doesn't seem attractive in any way. 008. Disappearing / Appearing blocks ala Megaman - Vivi57 DONE, not placed yet. Uses space 84:F060 - 84:F110 Use with PLM F060 Room Argument will be OffTime(High byte) and OnTime(Low byte). Multiplied by 16 frames. Initial time will be BTS * 16. Initial value will be block type (0-7 = air, 8-F = solid. ASSUMED to be 0 or 8) Graphic will be original graphic, obviously (0 - FFF) 009. Varying Enemy resistances - Vivi57 This will be much later, near the end. 010. Reconfigured damage multipliers Damage multiplier default is 0A instead of 02, all damage values divided by 5. Changing: Default is 02, charge beam multiplies its own (default 04), constituent beams, and divides by 4. - Vivi57, modified extremely by Kejardon DONE... I think. Could use more testing. See A0A6DE.txt Uses spaces: A0:A643 - A0:A645 A0:A6AD - A0:A6AF A0:A6BA - A0:A6BC A0:A6DE - A0:A8BB XX. Screw Attack heals Ridley - Vivi57 Canceling. I intend to make Ridley hard enough as it is. 012. More Ninja-Pirate types (Need details) - JagerMeister89 (AIM) I'll just use them liberally in the game. Maybe enhance some. 013. 4 way beam - JagerMeister89 DONE (though now 3 way). See 83. XX. Randomly Alternating Beam Item - JagerMeister89 Canceled 015. Reverse (or random) Controls You get hit by a certain attack and your controls will go out of whack! - 13M13 (M2K2), seconded by Kamek DONE. Currently used by Kago bugs and Spore Spawn. 80:9465 - 80:948F 80:D5C0 - 80:D601 86:D036 - 86:D039 86:DE82 - 86:DE85 86:F4B0 - 86:F4CD 90:E6B3 - 90:E6B5 90:E700 - 90:E702 90:FBF0 - 90:FC78 016. Gravity-Altering trigger (Need details) - 13M13 XX. Upside down or Rotating rooms (*Very* unlikely) - 13M13 Canceling. Lots of work, little appeal. 018. Blackouts Lights go out (or flash on and off). And, hey, you think you can get one of those light bugs to follow you? Like those Donkey Kong levels. - 13M13 019. Reserve tanks store Missiles instead of Health Reserve tanks charge as normal with energy, but instead refill missiles. 1 tank = 10 missiles, so 10 energy per missile. Automatic refill will be disabled to simplify and avoid glitches. - Yoshi348 (M2K2), slightly modified by Kejardon DONE. Part of 79's edits, also 84:8993 80 91:DF3B 80 XX. Missile projectiles can Bounce Off Walls at 45 degrees (Or maybe a beam in place of Spazer) (Unlikely) - Yoshi348 Canceled 021. Normal Weakling Enemy As Vital Sub-Boss Preferably geemer. Dramatic entrance: Will walk through a hidden maze of enemy crumble blocks to make it sound like footsteps or something. 1 block a second, then 2, then 4, a short pause, then enter from the top right corner. Will be moving fairly fast. 1 shot kills. On death, will slow down, random explosions start around it, maybe make the same death sounds as Draygon, it'll walk about 5 more blocks, then trigger the same death animation and item drop as Metroids. Oh, and start passing out rumors about an uber powerful Geemer boss. XD - Yoshi348 Enemy is DONE (but not placed yet) A0:F850 - A0:F88F A3:F460 - A3:F4D0 XX. Beam Shields mess with Enemy Palletes temporarily (Need research) - Yoshi348 Canceling. Don't see any use for it. 023. Bosses have Reserve Tanks When the boss's hp hits 0 the first time, pause the game and increment it a random amount of health. Might possibly steal the pause function from Maridia bridge. To be used by Ridley, maybe Botwoon. - kwinse (M2K2), some additions by Kejardon XX. Zero Gravity using Recoil to move - MathOnNapkins .... Nah. Canceling. 025. Reflec Maze room A wide room with a massive amount of Reflectors. You shoot one missile to the first reflector, and the missile starts making it's way forward through hundreds of reflectorrs. Now, when you've shot the missile, you will have to go through a horrible morphball maze, and when you finish it, you must be there before the missile, because if the missile is there before you, you can't pass the giant gap. But, If the missile is coming from behind, you'll execute a Enemy Boost and can pass the gap. - Raccoon Sam (M2K2) 026. Shorter Powerbomb fuse - MonsterERB (M2K2) DONE. 90:C06D A90C00 XX. Shorter Powerbomb delay - MonsterERB Canceled 028. Gate Trap At a gate, shoot the button and the floor drops out from under you instead of the gate opening. Possibly only if you're going through it the wrong way, with the Wave Beam or even GGG. - Chanoire (M2K2) 029. HZoomer Trap the orange geemer. Killing it does something dreadful like consumes all your missiles. - Chanoire DONE. Nice and easy. :D Uses space 9B:D7E2 - 9B:D7E9 A0:DC67 - A0:DC68 A0:DC71 - A0:DC72 A3:F720 - A3:F754 (ROM says F757?) 030. Freeing Dachora Something special could happen in that event, like the bird exploding. - Chanoire 031. Phantoon vulnerability Using a power bomb on Phantoon doubles his damage cap before he runs away - Chanoire DONE. Hard to use, but it DOES work. A0:E4E7 - A0:E4E8 A7:D4D6 - A7:D4D8 A7:D614 - A7:D616 A7:D6B5 - A7:D6B7 A7:D78F - A7:D791 A7:DEA6 - A7:DEA8 A7:FF82 - A7:FFA7 B4:F0FB 032. Ridley vulnerability Ridley extra vulnerable to spazer, moreso than to plasma. - Chanoire XX. Random Crystal Flash Set off a power bomb in a screen with a kago and Samus goes into Crystal Flash (but only if she has enough items) JSL to anyplace, PHP, and JMP to 90:D5D2 - Chanoire Canceled. Too random. XX. Grappling Changes Doors (Unlikely) Have green and yellow switch and pink and blue switch - Chanoire Pink and blue would be impossible, other seems pointless. Canceling. XX. Shaktool 'Crushes' Samus into Morph Ball - Chanoire 036. Ore (?) unequips Samus's items on contact - Chanoire XX. Hatchling Metroid Survives - Chanoire Part of secret ending. XX. Walljumping off of skull heads kills them Perhaps only if you have gravity but not space jump, or something stupid like that. - Chanoire Not a bad idea, but walljump detection would be pretty hard for such a small idea, so I'll have to cancel. XX. Boss Stunt Rewards Getting behind Kraid restores Health and Missiles, getting behind Crocamire restores Super Missiles and Power Bombs. Should be neat. - Chanoire Nah. Canceled 040. Hidden Item in Crocamire's Crumble Blocks Will be a 'Suit item' that gives blue suit ala Draygon kill. - Kejardon, inspired by Chanoire 041. Mockballing Noob Bridge restores missiles Running on the bridge closes a door that leads to a missile recharge. - Chanoire XX. LN Enemy susceptibility If you don't have either suit on in Lower Norfair, some or all weapons do extra damage. - Chanoire Probably a pain to code, and it doesn't sound that interesting. Canceled 043. Self Destruct A poorly hidden, off-color looking Energy tank says 'Self Destruct' when picked up. And Samus dies. :) Gotta have a save not long before this. Need a way to make this NOT entirely unavoidable. Hrm. - Kejardon 044. Random Start Locations + I decided to take this several steps farther and make this absolutely insane. Several rooms and areas will be different, depending on some event flags. Some of these event flags will first be set at Ceres, when you escape. At some particular room transition, the game cuts away to show Zebes. It vanishes and reappears. It then cuts back to Samus, walking across a platform. The room disappears, Samus falls a moment, and then the room reappers, and Samus lands in a small area with morph ball tunnels. All event flags will be changed at this point. At random doors from then on, the game cuts away and Zebes respawns again, changing the event flags. The map will be saved in its explored form to sram. Each roomstate will now have associated map tiles. - Troy (e-mail). Heavily expanded on by Kejardon In Progress. 80:858C 80:D602 - 80:D7A3 81:811D - 81:8125 81:82E4 - 81:82F2 81:834B - 81:8359 81:EF20 - 81:EF58 82:89BB - 82:89BC 82:943D - 82:9482 82:9517 - 82:9570 82:9EC4 - 82:9F71 82:DEF2 - 82:DF67 82:E29E - 82:E305 82:E6A2 - 82:E731 82:F710 - 82:FA29 90:A8EF - 90:A8F1 90:A91B - 90:AAB7 045. Waver Enemy boss Will uses the randomly switching AI (Idea 2) to make it uber hard to find and kill. - Skreemaster (M2K2), added to by Kejardon DONE. May need some finetuning... Uses space A3:F320 - A3:F45C A0:F7D3 - A0:F812 Layout plan 1: Crumble/Speed blocks (Idea 46) lead to Waver boss (Idea 45/2), which forces player to Geemer boss (Idea 21). Player recieves Speed Boots to pass Idea 46. Will probably require Super Missiles to access. - Kejardon 046. Crumble / Speed blocks If hit when at full speed, break instantly and do not respawn. If hit from above normally, momentary solid then break, respawn visibly as speed blocks. - Kejardon Graphics done in SMILE, unknown addresses, graphic 06A (CRE) DONE. Uses space 94:9149 - 94:914A 94:9DB4 - 94:9DB5 84:F050 - 84:F05F 84:EFE0 - 84:F041 91:D3AA - 91:D3AA 047. Reflec room Contains Reflecs in the walls, and lots of flying Novas (name?). Lots of walls inside of room to encourage wave beam despite Reflecs. - Skreemaster 048. Change either Green or Red doors so they aren't redundant with Super Missiles (Need details) - Dark RPG Wizard (GameFAQs) 049. Mario Reference Killing Ridley leads to Etecoons and the message 'Thank you Samus! But your metroid is in another area' - Kejardon, Inspired by Chanoire. 050. Heat Sink Beam Item reduces cooldown times of shots, and speeds charged shots. Drains energy with use. - Kejardon DONE. See 83. 051. Green Chozo Room Contains a misc. upgrade (Unknown) for randomly reduced damage. - Chanoire XX. Energy Recharge in LN Lava Room when lava has risen. - Chanoire XX. Spore Spawn Lava Fight How about a lava pit under you and you have to walljump during the entire boss battle. Canceling. The bugs messing with controls is enough for now. - Distort (M2K2), stolen shamelessly by Kejardon 054. Normal Jump --> Spin Jump - Metroid Fusion and Zero Mission Mostly done. Uses spaces 91:9F08 - 91:9F13 91:9F7C - 91:9F7F 91:9F84 - 91:9F87 91:9FB4 - 91:9FBB 91:A28C - 91:A367 91:A982 - 91:A9E9 91:AB7E - 91:AC72 91:AF98 - 91:B00B 91:F624 - 91:F629 91:FCA9 - 91:FCAC B8:8000 - B8:8009 B8:8010 - B8:803B Uses Equipment bit #$0010 (7E:09A2 and 7E:09A4; 0000 0000 000X 0000) *Clears* 91:AAC0 - 91:AB7D 91:A376 - 91:A3C3 91:AC40 - 91:AC93 Yet to create item PLM. 055. 'AM Sink' Misc. Item Allows Normal Jump --> Spin Jump - Kejardon 056. Aim Up + Aim Down can be any buttons - Kejardon DONE. Subset of ControlFreak. XD Uses space: 82:F5CA (Free to F638?) 91:81F4 - 91:8297 (Free to 82D8) 057. Instant Speedball Boot item Pickup allows Samus to instantly morph into a ball by pressing aim down while running, and change back by pressing aim up. - Kejardon Mostly done (not the item) Uses spaces 90:F7B0 - 90:F7CB 90:A627 - 90:A62B 91:9F04 - 91:9F07 91:9F1E - 91:9F21 91:9FD8 - 91:9FDB 91:A7F4 - 91:A86F 91:AC72 - 91:ACED 91:B50A - 91:B50D 91:B512 91:B517 91:BD01 - 91:BD20 91:ECDA - 91:ED4D 91:F775 - 91:F778 92:8D8D - 92:8D8E B8:8040 - B8:806F Uses Equipment bit #$0400 (7E:09A2 and 7E:09A4; 0000 0X00 0000 0000) XX. Spring Ball before Bombs - Squash Monster (M2K2) 059. Improved Torizos Lower cooldown of some of the attacks, and fix the blind spot. - Squash Monster 060. Glass Tube doesn't break - Kamek 061. Bomb Torizo Door Taunt Bomb Torizo's door takes longer to close. However, bomb PLM instantly changes it to solid anyways. - Kejardon 062. Fake Doors Hiding Reflecs - Kamek XX. Fake item tiles - Kamek 064. Mother Brain's final attack temporarily disables Samus's death routine (go low percent runs!) Didn't I do this already? ... At least the 0617 bit that keeps Samus from dieing? ... No I haven't. - Kejardon 065. Running Hell After a hidden, tricky super jump puzzle, player finds a save room with refills, followed by the statue room. There are crumble blocks in the middle of the statue room, and the bottom of the statue room has a door leading to an incredibly hard run through a given path, leading to Mother Brain, and finally a special escape path. Player percent must be below some number, and time must also be low, or a PLM makes the crumble blocks unbreakable. Beating the game this way allows the Metroid to survive. Also, a timer will record how fast you make it through. If you finish exceptionally fast, you can restart the game with your current equipment. Enemy ideas for it... Lightning fast enemies that spawn at screen edge. Random Y position, random angle, speed is relative to Samus's speed. Curves towards Samus and accelerate. Hurts through screw attack and speed boost. Mwehehe. Boss idea from uNsane: 50% of reflecting attacks back at Samus. - Kejardon, stolen from Doukutsu Monogatari / Cave Story, and implementing idea 37. XX. Forced moonwalk in certain rooms - NeoPhazer 067. Different messages Just because I accidently stumbled onto it, I have to change it: 134450 / A6:C450 'KEJ BROKE SOMETHING IMPORTANT EVACUATE COLONY IMMEDIATELY' And I'm going to screw with the timer to make it look glitchy, if it's feasible. :) - Kejardon Still haven't changed the text yet, but the timer hijinx are pretty much done, though not implemented yet. 80:9DFB - 80:9FCE 80:9E09 - 80:9E0C 80:9E1C - 80:9E1F 80:D80A - 80:D8D7 82:804A - 82:804D 82:836F - 82:8372 82:8390 - 82:8393 82:E267 - 82:E26A 82:E297 - 82:E29A 90:E10F - 90:E112 90:E114 - 90:E117 90:E1C3 - 90:E1C6 90:E1F2 - 90:E1F5 A6:C117 - A6:C134 068. Optimized transition tables + Diagonal aim+Fire fix Optimized table, and spin jump + up + right + fire will actually fire diagonal instead of straight. 19, 1A, 1B, 1C, 81, 82 It's probably better to fix the force-shoot routine instead. Nevermind. More ControlFreak copying. Part of InsanityTransitions.asm - Kejardon 069. Crocomire battle Redux Acid covers ground, moves up and down so ground level isn't safe half the time. Small platforms allow you to stay off of ground. Crocamire's legs and hands are bone, no skin. Pushing Crocamire into the acid lowers the acid level, and reveals a secret exit. Crocamire does not reappear. - Kejardon 070. Green Hill Zone Stolen shamelessly from Sonic. XD Requires speed boots to enter - Jigglysaint 071. Green Hill Zone boss Must spin jump into to hurt, 8 hits to kill. Long running/looping section. Guarding Angular/Linear Momentum Transformer. - Jigglysaint 072. Short Charge Modification When Samus's speed counter (0B3F) is incremented, apply a minimum cap on Samus's horizontal speed (0B42). At 0B3F=1, if Speed < SpeedCap, Speed = Speed + 1/4 (SpeedCap - Speed) = 3/4 Speed + 1/4 SpeedCap At 0B3F=2, if Speed < SpeedCap, Speed = Speed + 1/2 (SpeedCap - Speed) = 2/4 Speed + 2/4 SpeedCap At 0B3F=3, if Speed < SpeedCap, Speed = Speed + 3/4 (SpeedCap - Speed) = 1/4 Speed + 3/4 SpeedCap At 0B3F=4, if Speed < SpeedCap, Speed = SpeedCap SpeedCap will be the speed as if Samus ran the entire distance. Short charge now takes more space to reach blue suit, but has a new use so the TASers have no reason to complain. :) - Kejardon DONE. Uses space 90:852C - 90:85DD 90:F7A0 - 90:F7AF 073. Max Speed Space Jump Allow space jump even at full falling speed. - Kejardon ;DONE ;90:A4AC - 90:A4AD ;8003 ;90:A49D - 90:A49E ;8003 UPDATE: Samus's full falling speed is now A. That should be unspacejumpable. Actual implementation is in GravityFall.asm (idea 103) 074. Samus's ship stolen by Zoomer If Samus takes too long (10+ hours, let's say), and then spends too much time on the last screen getting to her ship, a zoomer reaches the ship before her and flys off. - Kejardon 075. Improved Waver customization Made during waver boss programming. New Waver horizontal speeds: Change 3rd Speed Nybble to multiply Waver speed: 0 = normal, 1 = 1/4, F = 15/4, 4 = random 1-F - Kejardon DONE Apply Waver boss code, (F320, namely) Change waver AI initialization pointer A0:D651 20F3 076. Pacman enemy Well... Mother Brain loads some graphics that look a LOT like a monsterized Pacman. So, why not? Need characteristics. KP9000 suggested grabbing the powerups other enemies drop. - Kejardon 077. Temporary Platforms Samus shoots or bombs a trigger block, and a platform appears in the room for a short amount of time. - Magic Mario (M2K2) 078. Fakeout Room Make a room where everything is different. Like make it so Super Missile blocks aren't destroyed by Super Missiles but Power Bombs, or maybe Screw Attack blocks are destroyed by regular ol' missiles. - Magic Mario (M2K2) 079. Heavily Edited Status Screen New lists for items, new controls for selecting stuff, etc. - Kejardon DONE. LOTS of edits... 82:8FBA - 82:8FBC 82:8FC5 - 82:8FC7 82:8FCF - 82:8FD1 82:A12B - 82:A261 82:AC1A - 82:AC1C 82:AC70 - 82:AC78 82:AC8B - 82:ACBB 82:AD0A - 82:AD38 82:AF4F - 82:AFA5 82:AFBE - 82:AFD6 82:AFDB - 82:B04E 82:B068 - 82:B0CD 82:B0D2 - 82:B125 82:B150 - 82:B15B 82:B160 - 82:B1B7 82:B267 - 82:B29E 82:B2A2 - 82:B3C8 82:B456 - 82:B481 82:B489 - 82:B4B1 82:B4B7 - 82:B4E0 82:B4E6 - 82:B509 82:B511 - 82:B537 82:B53F - 82:B562 82:B568 - 82:B5C6 82:BF02 - 82:BFBB 82:D521 - 82:D960 B6:8000 - B6:DFFF B6:E800 - B6:EFFF B6:F200 - B6:F23F 82:BFBC - 82:C0B1 now cleared 080. Pause Screen TIME: The tiles already exist. Maybe the function does too. So, let's add it to the pause screen. :) - Kejardon DONE. Wound up writing the function myself, not like it was long. Part of status screen initilization (see 79) 081. Electromorph As seen in Third Derivative. Crouch, tap run once, then hold run after, and Samus does a forward super jump. Eats up 30 energy at start, and 2 per frame. Electromorph ends at 49 health, release of run, or wall. Does not cause echoes when it ends, does not transition to speed running or spark bouncing. - Reynard, author of Third Derivative, viewable on Bob and George DONE, not including PLM pickup. 90:D0AB - 90:D131 90:D2BA - 90:D345 90:FAB0 - 90:FAC1 91:8014 - 91:804B 91:8066 - 91:81A8 91:F44F - 91:F451 91:FAD6 - 91:FAE6 91:FAFC - 91:FB07 B8:8090 - B8:80AD XX. Arbitrarily large rooms Expand rooms with PLMs. Something like a 7x7 room, the borders change when Samus is within 1 screen of the edge. - Kejardon Canceled 083. Beam Changes They're all closely related, so I'm putting all the stuff here in one lump. New cooldown and charge times, damages, SBA damages, PSA damages, 3-way, heat sink, and t. charge - Kejardon DONE... I think. Not including PLM pickups. 82:BE47 - 82:BE48 90:A4F9 - 90:A4FA 90:A748 - 90:A749 90:AC26 - 90:AC28 90:AC32 90:B82A - 90:B82C 90:B836 - 90:B837 90:B843 - 90:B853 90:B857 - 90:B859 90:B860 - 90:B861 90:B86A - 90:B86C 90:B873 - 90:B875 90:B887 - 90:B96D 90:B986 - 90:BA3D 90:BAFC - 90:BBE0 90:C0B7 - 90:C0B8 90:C254 - 90:C25F 90:C264 - 90:C26F 90:C283 - 90:C28E 90:C487 - 90:C4A6 90:CD79 - 90:CD7B 90:CDD4 - 90:CDD7 90:CDEF - 90:CDF1 90:CE79 - 90:CE7B 90:CEE4 - 90:CEE6 90:D054 - 90:D055 90:DE4C - 90:DE4D 90:F1BA - 90:F1BB 90:F495 - 90:F496 90:F4C3 - 90:F4C4 90:F522 - 90:F523 90:F5D3 - 90:F5D4 (Obsolete by ButtonMessup code's debug removal) 90:F7D0 - 90:F7E7 90:F7E9 - 90:F834 90:F840 - 90:F861 90:F870 - 90:F883 90:F888 - 90:FAA6 91:D756 - 91:D757 91:D92D - 91:D92E 91:E6C0 - 91:E6C1 93:8431 - 93:8432 93:8447 - 93:8448 93:845D - 93:845E 93:8473 - 93:8474 93:8489 - 93:848A 93:849F - 93:84A0 93:84B5 - 93:84B6 93:84CB - 93:84CC 93:84E1 - 93:84E2 93:84F7 - 93:84F8 93:850D - 93:850E 93:8523 - 93:8524 93:8539 - 93:853A 93:854F - 93:8550 93:8565 - 93:8566 93:857B - 93:857C 93:8591 - 93:8592 93:85A7 - 93:85A8 93:85BD - 93:85BE 93:85D3 - 93:85D4 93:85E9 - 93:85EA 93:85FF - 93:8600 93:8615 - 93:8616 93:862B - 93:862C 93:8641 - 93:8642 93:8657 - 93:8658 93:8671 - 93:8672 93:8685 - 93:8686 93:86AB - 93:86AC 9B:C079 - 9B:C083 A0:A4CC - A0:A4C3 A0:F820 - A0:F82D A0:F830 - A0:F847 B8:8070 - B8:808B 084. Title Screen I finally decided to make one. Nothing much, but it's there. See TitleScreen.txt - Kejardon DONE. Uses space: 80:E000 - 80:FCA9 (according to IPS, not in notes, confirmed used) 8B:9295 - 8B:929A (according to IPS) 8B:9746 - 8B:9795 (974D - 9798 according to IPS) 8B:9BCA - 8B:9BCF (according to IPS) 8B:A0C7 - 8B:A0C8 8B:A0CD - 8B:A0CE 8B:F760 - 8B:F7F4 8C:F3F0 - 8C:F540 95:80D8 - 95:9D81 (817A - 962F according to IPS) FREES 8C:879D - 8C:8861 95:9D82 - 95:A5E1 085. Multiple Super Missiles bug fix Just what it says. No more disappearing super missiles. Also only use 1 projectile slot instead of 2 - Kejardon DONE. Again. Hopefully. Uses space: 90:AC61 90:AE19 - 90:AE1A 90:B005 - 90:B01C 90:B362 90:B366 - 90:B3B3 90:B406 - 90:B453 90:ADB7 - 90:AE03 90:B01B - 90:B023 90:B02B - 90:B032 086. Metroid Randomness Metroids will have a spawn percentage; if the RNG picks a number less than the Metroid's spawn percentage, the Metroid will not appear that time in the room. - Kejardon DONE, easily. A0:DD91 - A0:DD92 A3:F4E0 - A3:F4F5 087. Mini-Kraid Improvement Give Mini-Kraid an ability of some sort to push Samus back. Ideas: Normal attacks push Samus back farther and give little invincibility time, make back spikes slightly homing, make all-new attack (not too likely) - Kejardon, sorta inspired by KP9000 088. Misaligned Door Scroll Bug Fix Simple bug prevention in 82:E310. Make sure both are 00 before proceeding, not just the one that's expected to be off. - Kejardon DONE. Part of 89 089. Room transition optimization Start scrolling immediately after DDB data is ready, decompress room during the scrolling, and possibly speed up scrolling by say 50%. Oh, and start music transfer *before* the end of scrolling. - Kejardon, probably wanted by 90% of players already (amaurea also suggested. XD. Gaius_4 thirded) ALMOST done, still a few minor bugs with CRE I'll work out later. - DONE. Bug was a stupid typo. 80:A0F6 80:AE41 80:AEAC - 80:AEAF 80:AEBA - 80:AEBD 80:AEF0 - 80:AEF3 80:AF30 - 80:AF33 80:AF73 - 80:AF76 80:AF81 - 80:AF84 80:AFB7 - 80:AFBA 80:B020 - 80:B023 80:9799 - 80:979E 80:97FA - 80:97FF 80:CD90 - 80:D4ED (Some spots of free space) 82:D962 82:E29E - 82:E565 82:E6A2 - 82:E736 (Some free space) 84:8DC5 - 84:8DCB 84:9024 - 84:902A 88:838D - 88:838E Frees 82:E659 - 82:E674 090. Grey door tweak Disable 'hit' sound for wave beam - Kejardon DONE Change 84BDC4 to 60. There's no need for the sound at all. Alternatively, changing 84BDC7 to 80 is 'cleaner', but meh. 091. In-Joke #1 giant. enemy. crab. - I don't know who to blame for this 092. Metroids Dodge Ice Shots Self explanatory. The function will probably be a = (constant / ((linear distance from beam along beam travel axis)/constant + (normal distance from beam along beam axis) + Constant)) * normal direction from beam - Kejardon DONE. Speeds up metroids in general. And it's quite nice, too. :) Uses space: A3:EC11 - A3:ECDB (Free space at end) A3:F500 - A3:F648 093. Charge Beam SBA Not sure exactly what to do for it. Maybe a rapid-fire charge beam attack. - Blame Jathys with his saboten pic without an explanation XXX. Nameable save files Nothing to add here - interdpth Canceled. Minimal improvement, and more of a nuisance if coded simply. If coded excessively, too much work. 095. Optimized SPC transfer engine 3 bytes in one transfer. And much cleaner code. Benchmark: Elevator up from Tourian took 32 frames compared to 39. Eh, it's an improvement. - Kejardon DONE, pending breaking by a bad coincidence. Uses space: 80:8F7E - 80:8F81 80:D4F0 - 80:D5B9 CF:8A93 - CF:8ADE 096. Optimized enemy routines Optimize enemy beam collision code. And maybe other things that cause slowdown when enemies are onscreen. - Kejardon 097. Grapple Upgrade (And Nix X-ray scope) Complete overhaul on grapple beam: Last item, select will deselect grapple beam, item cancel will not necessarily. If there is a grapple shot in screen, item cancel will kill the grapple shot. If there isn't, item cancel will deselect grapple. When a grapple shot is connected to something, Samus's main beam will be available with the fire button. New enemy responces to grapple beam: Stop while beam is on enemy, Samus can pull enemy Stop while beam is on enemy, Samus can grapple from enemy Stop while beam is on enemy, Samus can grapple from enemy, enemy falls from gravity Stopped enemies will NOT hurt Samus through contact, except while falling Continue moving, but unable to move past beam (Samus can pull enemy) Continue moving, enemy can pull Samus Die (will be rare) Stop grapple beam Completely ignore grapple beam Samus's controls while grappling... Run + Down pulls grapple to Samus - does not crouch or aim down Run + Up pushes grapple from Samus - does not aim up If Samus can pull the enemy, no change from normal controls. If enemy can pull Samus, Samus has two modes of movement Normal movement within grapple beam range Grapple swing at grapple beam range Press Run in mid-air to switch to grapple swing Press Jump to pull Samus towards enemy from grapple swing, goes to spin jump/normal movement Collision with ground while swinging will put Samus into normal movement Attempting to move past grapple range will put Samus into grapple movement Easy jump-away hook: Holding away and jumping will cancel the grapple shot SEMIDONE, individual enemies need to be programmed, and may be finetuned later. Uses space: 90:9256 - 90:9258 90:94F7 - 90:953C ;90:A654 - 90:A656 ;90:A68F - 90:A691 90:C4B5 - 90:C529 90:C5F7 - 90:C5F9 90:DD21 - 90:DD22 90:DD33 - 90:DD36 90:DD3D - 90:DD52 90:DD69 - 90:DD6A 90:DD6F - 90:DD72 90:DD7D - 90:DD85 90:DDB6 - 90:DDC3 ;90:E5FE - 90:E600 90:E626 - 90:E628 90:E647 - 90:E649 90:EB86 - 90:EBEC 90:F0C8 - 90:F0C9 90:F2C5 - 90:F2C7 90:FAD0 - 90:FBE8 91:EBB7 - 91:EBBA ;91:EC10 - 91:EC12 91:EF4F - 91:EF89 91:F3A5 - 91:F3A8 91:F41A - 91:F41D 94:ACFE - 94:AECD 94:AFBA - 94:B05B 94:B260 - 94:BA33 9B:BD95 - 9B:BE6B 9B:C036 - 9B:C0DA 9B:C490 - 9B:C4D8 9B:CC00 - 9B:D7E1 A0:8000 - A0:801D A0:9E9A - A0:9FAA A0:C0AE - A0:C151 A0:DD19 - A0:DD1A A0:DD2F - A0:DD30 A2:8000 - A2:801D A3:8000 - A3:801D A3:E669 - A3:E6BA A3:E785 - A3:E7ED A3:F650 - A3:F71B A4:8000 - A4:801D A5:8000 - A5:801D A6:8000 - A6:801D A7:8000 - A7:801D A8:8000 - A8:801D A9:8000 - A9:801D AA:8000 - AA:801D B2:8000 - B2:801D B3:8000 - B3:801D B8:80B0 - B8:81D7 B8:FC04 - B8:FFFF 098. Environmental effects 3 ideas fit in here currently Giant Rail-gun: Pushes Samus left until she does a superjump, then propells her right at excessively high speed. See if I can break 16 pixels per frame without the glitchiness looking bad. Don't know where the rail-gun will lead to yet. Magnetic field: Super Jumps take no energy - Electromorph start takes 1/2 energy to start and no energy to go. Gravity field: Localized field to flip-flop gravity. This one's not as likely - making Samus operate on ceilings seems unlikely, and tweaking the physics engine to work right... - Kejardon (Anti-Grav boots also suggested by amaurea) 099. Starting equipment Samus gets... 10 missiles and morphball to start with. Maybe more. - Kejardon Lumped into Ceres Ridley changes 100. Minor jumping tweak Samus cannot transition to spinjump currently without falling. Let's fix that. Holding up will keep Samus from falling while letting go of jump. It will also still allow Samus to transition to spinjump. - Kejardon Done, nice and easy. Uses space: 90:8FE6 - 90:8FE8 90:FC79 - 90:FC81 91:A2F4 - 91:A367 91:A41E - 91:A437 91:A46E - 91:A4B7 91:A4BE - 91:A507 91:A50E - 91:A557 91:A55E - 91:A5A7 91:A5AE - 91:A5F7 91:AF98 - 91:B00B 101. Item Pickups Some way to speed up item pickups. Not quite sure how I want to do that yet. Skippable text/music for expansions? - amaurea, seconded by Gaius_4 102. Bouyant Liquid Yes, I know that's not terminologically correct. A liquid in which Samus will float unless she has special equipment. Physics for this will be annoying, I'm sure. I'm somewhat hesitant about this. - amaurea 103. Raised Falling Velocity Give a higher falling velocity cap that allows Samus to reach blue suit speed and charge for shinespark. I'll make it require Gravity Suit to use. Need to decide if it'll always work or what... Hold down to use it. Works decently well, there's some pickiness but I like it. - amaurea DONE, uses space: 90:90E2 - 90:9163 90:98C2 - 90:98C7 90:994F - 90:996A 90:99DC - 90:99ED 90:9A2F - 90:9A5D 90:9E99 - 90:9E9A 90:9E9D - 90:9E9E 90:FC82 - 90:FCB1 91:AFB0 - 91:AFF9 91:F010 - 91:F012 104. Ending statistics Display the amount of damage done to Samus throughout the game on the ending screen. Maybe other things too. - amaurea 105. Armpump fix Because it's pointless and looks stupid. - Kejardon DONE. Uses space 91:EADE - 91:EB73 106. Puzzle game room Something like Tetris. Make a square/crossed lines for points, larger the square more points. - Kejardon DONE. I hope. Has some extra parts in MiscChanges.asm and InsanityFX.asm 80:FFAE - 80:FFBF 84:B1F0 - 84:B20A 84:F187 - 84:F1C4 90:F1B1 - 90:F1B2 90:F747 - 90:F74F 94:91D5 - 94:91D6 B8:8200 - B8:92B2 ;Graphics at B8:8200 loaded by InsanityBank8F.asm, the rest is in PiratePuzzle.asm 9A:B890 - 9A:B8CF ;Layer 3 graphics BA:F911 - BB:AA04 ;Graphics set 3 Graphics ;Graphics set 3 tiles 107. Log Book Pressing L on the map screen goes to the log book. Log book will by my own game state that shows logs of whatever. - Kejardon SEMIDONE, logs need to be written. Uses space 81:8ECD 82:89B7 - 82:89B8 82:8D3B - 82:8D3D 82:9016 - 82:9018 82:9346 - 82:9348 82:A124 - 82:A126 82:A50C - 82:A566 (to A56C free) 82:A615 - 82:A720 (to A84C free) 82:DC10 - 82:DC42 (to DC7F free) 82:FA30 - 82:FCAE (ROM says otherwise: FD28) 83:AD80 - 83:B83C (Will use more space as I add to it) B6:E64A - B6:E653 B6:E68A - B6:E693 XX. Powerbomb optimization Only blocks at the edge of the explosion are hit by the powerbomb, not the entire area. - MathOnNapkins. Rakki brought up the subject Huh. I must have remembered wrong, only the rectangle is hit already. Size $33 takes 19 decimal scanlines, max size is FF which would take ~90 decimal lines, I'm guessing. Hmm. Canceling for now. I might decide to optimize what I can of it. Maybe hit 1 edge of the side per frame? 109. Bugfixes Moving left and right in mid-air always works correctly, blackout from pausing no longer possible. - Galbalan on AIM. 110. Expanded Message Boxes More message box options. Because it's necessary. - Kejardon I guess. 85:8243 - 85:8245 85:82E5 - 85:82E7 85:82F6 - 85:82F8 85:9643 - 85:96A7+ (Will expand) 111. Powerbomb Reveals As part of getting rid of x-ray scope, allow power bombs to reveal blocks ala GBA games. - Kejardon 112. FX Improvements Just redoing and adding stuff for FX stuff. InsanityFX.asm -Kejardon 88:8000 - 88:8228 113. Planet Name Randomly alternate (50% chance each) between Zebes and Zebeth. May be too much work and get canceled fast, but I can at least look into the possibility. - Kejardon 114. Savestate Compatibiliry Make a SRAM check somewhere to make sure if savestates are being used they won't glitch anything up. - Kejardon Layout stuff: 01a. (49.) Mario Reference Killing Ridley leads to Etecoons and the message 'Thank you Samus! But your metroid is in another area' Oh, and you get the Spark Bounce there. XD - Kejardon, Inspired by Chanoire. 02a. Crumble/Speed blocks (Idea 46) lead to Waver boss (Idea 45/2), which forces player to Geemer boss (Idea 21). Player recieves Speed Boots to pass Idea 46. Will probably require Super Missiles to access. - Kejardon 03a. (44). Random Start Locations Leaning towards 4 places for Samus's ship to land. One will have a 1/256 spawn rate Metroid in it. - Troy (e-mail). Metroid by Kejardon. :) 04a. Ceres escape First off, all of Ceres will be revamped and look different. And you can pause in it. Self-destruct message starts up when Ridley decides to leave / is leaving. Ridley will cause a block to become shootable when he leaves and pushes Samus. The door will *not* open. See MiscChanges.asm. Also in here: Starting equipment change, scroll routine optimization - Kejardon DONEISH. Startup routine may be updated. 81:B2CB - 81:B37D 82:CA9B - 82:CAA0 84:8232 - 84:824F 84:F143 - 84:F186 90:96C0 - 90:96F9 90:EA5E 94:A022 - 94:A023 94:937B - 94:937C A6:C162 - A6:C163 A6:C456 - A6:C457 A6:C470 - A6:C471 A6:C486 - A6:C487 A6:AADD - A6:AADF A6:D943 - A6:D945 A6:F66A - A6:F673 A6:F770 - A6:F772 A6:FF82 - A6:FF8C 05a. Doukutsu Secret The Doukutsu parallel will be hidden thusly: A set of fairly-obvious super jump blocks in the roof, leading to an item (Missiles or something trivial, probably). A marking on the ground showing where one can start a diagonal super jump through the same blocks and spark bounce, which leads to a second item(s) (More worthwhile, supers probably). Shooting directly up from that location then quickly spark bouncing will allow one to use frozen enemies to bounce farther up the shaft, leading to the super secret Doukutsu Parallel entrance. :D - Kejardon 06a. Conglomeration Organizing some stuff better. To start with, the transition table has been organized into a single text file (InsanityTransitions.asm) - Kejardon SEMI-DONE. May add to in the future. CURRENT CONTENTS: Transition table, Aim-up-run 91:9EE2 - 91:AE93 92:84CF - 92:84F6 92:DF30 - 92:DF31 92:DF34 - 92:DF35 92:DF38 - 92:DF39 92:DF44 - 92:DF45 92:DF48 - 92:DF49 92:DF4C - 92:DF4D 92:DF58 - 92:DF59 92:DF5C - 92:DF5D 92:DF60 - 92:DF61 92:DF6C - 92:DF6D 92:DF70 - 92:DF71 92:DF74 - 92:DF75 92:EE10 - 92:EE7B Current Total Edits: 80:802F - 80:8046 80:8111 - 80:812E 80:82D6 - 80:8323 80:858C 80:875D - 80:8789 80:8925 - 80:8926 80:896E - 80:8ACB 80:8F7E - 80:8F81 80:9465 - 80:948F 80:9589 - 80:95FD 80:9799 - 80:979E 80:97FA - 80:97FF 80:9DFB - 80:9FCE 80:9E09 - 80:9E0C 80:9E1C - 80:9E1F 80:A0F6 80:AE41 80:AEAC - 80:AEAF 80:AEBA - 80:AEBD 80:AEF0 - 80:AEF3 80:AF30 - 80:AF33 80:AF73 - 80:AF76 80:AF81 - 80:AF84 80:AFB7 - 80:AFBA 80:B020 - 80:B023 80:CD90 - 80:D4ED (Some small spots of free space) 80:D4F0 - 80:D5B9 80:D5C0 - 80:D601 80:D602 - 80:D7A3 80:D7A4 - 80:D809 80:D80A - 80:D8D7 80:E000 - 80:FCA9 (according to IPS, not in notes, confirmed used) 80:FCAA - 80:FCD0 (May be added to) 80:FFAE - 80:FFBF 81:811D - 81:8125 81:82E4 - 81:82F2 81:834B - 81:8359 81:8ECD 81:EF20 - 81:EF58 82:804A - 82:804D 82:836F - 82:8372 82:8390 - 82:8393 82:89B7 - 82:89B8 82:89BB - 82:89BC 82:8D3B - 82:8D3D 82:8FBA - 82:8FBC 82:8FC5 - 82:8FC7 82:8FCF - 82:8FD1 82:9016 - 82:9018 82:9346 - 82:9348 82:943D - 82:9482 82:9517 - 82:9570 82:9EC4 - 82:9F71 82:A124 - 82:A126 82:A12B - 82:A264 82:A50C - 82:A566 (to A56C free) 82:A615 - 82:A720 (to A84C free) 82:AC1A - 82:AC1C 82:AC70 - 82:AC78 82:AC8B - 82:ACBB 82:AD0A - 82:AD38 82:AD90 - 82:AE52 82:AFBE - 82:AFD6 82:AFDB - 82:B04E 82:B068 - 82:B0CD 82:B0D2 - 82:B125 82:B150 - 82:B15B 82:B160 - 82:B1B7 82:B267 - 82:B29E 82:B2A2 - 82:B3C8 82:B456 - 82:B481 82:B489 - 82:B4B1 82:B4B7 - 82:B4E0 82:B4E6 - 82:B509 82:B511 - 82:B537 82:B53F - 82:B562 82:B568 - 82:B5C6 82:BE47 - 82:BE48 82:BF02 - 82:BFBB 82:D521 - 82:D960 82:D962 82:DC10 - 82:DC42 (to DC7F free) 82:DEF2 - 82:DF67 Something changed code around 82:E082, not sure what or why (music related?) 82:E267 - 82:E26A 82:E297 - 82:E29A 82:E29E - 82:E565 (ReEdit 82:E29E - 82:E305) 82:E6A2 - 82:E736 (ReEdit 82:E6A2 - 82:E731) 82:F5CA (Free to F638?) 82:F710 - 82:FA29 82:FA30 - 82:FCAE (ROM says otherwise: FD28) 83:AD80 - 83:B83C (Will use more space as I add to it) 84:8993 84:8DC5 - 84:8DCB 84:9024 - 84:902A 84:B1F0 - 84:B20A 84:BDC4 84:EFE0 - 84:F041 84:F050 - 84:F110 84:F111 - 84:F142 84:F143 - 84:F186 84:F187 - 84:F1C4 85:8243 - 85:8245 85:82E5 - 85:82E7 85:82F6 - 85:82F8 85:9643 - 85:96A7+ (Will expand) 86:D036 - 86:D039 86:DE82 - 86:DE85 86:F4B0 - 86:F4CD 88:838D - 88:838E 8B:9158 - 8B:915B 8B:9295 - 8B:929A (according to IPS) 8B:9746 - 8B:9795 (974D - 9798 according to IPS) 8B:9BCA - 8B:9BCF (according to IPS) 8B:A0C7 - 8B:A0C8 8B:A0CD - 8B:A0CE 8B:F760 - 8B:F7F4 8C:F3F0 - 8C:F540 90:852C - 90:85DD 90:85EC - 90:8605 90:8FE6 - 90:8FE8 90:90E2 - 90:9163 90:9256 - 90:9258 90:94F7 - 90:953C 90:98C2 - 90:98C7 90:994F - 90:996A 90:99DC - 90:99ED 90:9A2F - 90:9A5D 90:9E99 - 90:9E9A 90:9E9D - 90:9E9E 90:A49D - 90:A49E 90:A4AC - 90:A4AD 90:A4F9 - 90:A4FA 90:A627 - 90:A62B ;90:A654 - 90:A656 ;90:A68F - 90:A691 90:A748 - 90:A749 90:A8EF - 90:A8F1 90:A91B - 90:AAB7 90:AC26 - 90:AC28 90:AC32 90:AC61 90:AE19 - 90:AE1A 90:B005 - 90:B01C 90:B362 90:B366 - 90:B3B3 90:B406 - 90:B453 90:B82A - 90:B82C 90:B836 - 90:B837 90:B843 - 90:B853 90:B857 - 90:B859 90:B860 - 90:B861 90:B86A - 90:B86C 90:B873 - 90:B875 90:B887 - 90:B96D 90:B986 - 90:BA3D 90:BAFC - 90:BBE0 90:C06D - 90:C06F 90:C0B7 - 90:C0B8 90:C254 - 90:C25F 90:C264 - 90:C26F 90:C283 - 90:C28E 90:C487 - 90:C4A6 90:C4B5 - 90:C529 90:C5F7 - 90:C5F9 90:CD79 - 90:CD7B 90:CDD4 - 90:CDD7 90:CDEF - 90:CDF1 90:CE79 - 90:CE7B 90:CEE4 - 90:CEE6 90:D054 - 90:D055 90:D0AB - 90:D131 90:D1D6 - 90:D1D8 90:D2BA - 90:D345 90:D40D - 90:D4C1 90:DD21 - 90:DD22 90:DD33 - 90:DD36 90:DD3D - 90:DD52 90:DD69 - 90:DD6A 90:DD6F - 90:DD72 90:DD7D - 90:DD85 90:DDB6 - 90:DDC3 90:DE4C - 90:DE4D 90:E10F - 90:E112 90:E114 - 90:E117 90:E1C3 - 90:E1C6 90:E1F2 - 90:E1F5 ;90:E5FE - 90:E600 90:E6B3 - 90:E6B5 90:E700 - 90:E702 90:EB86 - 90:EBEC 90:F0C8 - 90:F0C9 90:F1B1 - 90:F1B2 90:F1BA - 90:F1BB 90:F2C5 - 90:F2C7 90:F495 - 90:F496 90:F4C3 - 90:F4C4 90:F522 - 90:F523 90:F5D3 - 90:F5D4 90:F640 - 90:F6B1 90:F6B8 - 90:F71B 90:F720 - 90:F746 90:F747 - 90:F74F 90:F7A0 - 90:F7CB 90:F7D0 - 90:F7E7 90:F7E9 - 90:F834 90:F840 - 90:F861 90:F870 - 90:F883 90:F888 - 90:FAA6 90:FAB0 - 90:FAC1 90:FAD0 - 90:FBE8 90:FBF0 - 90:FC78 90:FC79 - 90:FC81 90:FC82 - 90:FCB1 91:8014 - 91:804B 91:8066 - 91:81A8 91:81F4 - 91:8296 (Free to 82D8) 91:9EE2 - 91:AE93 (Absorbed all the below) ;91:9F04 - 91:9F07 ;91:9F08 - 91:9F13 ;91:9F1E - 91:9F21 ;91:9F22 - 91:9F25 ;91:9F7C - 91:9F7F ;91:9F84 - 91:9F87 ;91:9FB4 - 91:9FBB ;91:9FD8 - 91:9FDB ;91:A28C - 91:A367 ;91:A2F4 - 91:A367 (Re-edit in UpJump) ;91:A41E - 91:A437 ;91:A46E - 91:A4B7 ;91:A4BE - 91:A507 ;91:A50E - 91:A557 ;91:A55E - 91:A5A7 ;91:A5AE - 91:A5F7 ;91:A624 - 91:A657 ;91:A7F4 - 91:A86F ;91:A982 - 91:A9E9 ;91:AB7E - 91:ACED ;91:AF98 - 91:B00B (Latest in UpJump) 91:AFB0 - 91:AFF9 91:B050 - 91:B053 91:B50A - 91:B50D 91:B512 91:B517 91:B729 - 91:B738 91:BC75 - 91:BC9F 91:BD01 - 91:BD20 91:D3AA 91:D756 - 91:D757 91:D92D - 91:D92E 91:DF3B 91:E6C0 - 91:E6C1 91:EADE - 91:EB73 91:EBB7 - 91:EBBA ;91:EC10 - 91:EC12 91:ECDA - 91:ED4D 91:EF4F - 91:EF89 91:F010 - 91:F012 91:F3A5 - 91:F3A8 91:F41A - 91:F41D 91:F44F - 91:F451 91:F624 - 91:F629 91:F775 - 91:F778 91:FAD6 - 91:FAE6 91:FAFC - 91:FB07 91:FCA9 - 91:FCAC 92:84CF - 92:84F6 92:8D8D - 92:8D8E 92:92A3 - 92:92A6 92:949D - 92:94A0 92:D98E - 92:D991 92:DF30 - 92:DF31 92:DF34 - 92:DF35 92:DF38 - 92:DF39 92:DF44 - 92:DF45 92:DF48 - 92:DF49 92:DF4C - 92:DF4D 92:DF58 - 92:DF59 92:DF5C - 92:DF5D 92:DF60 - 92:DF61 92:DF6C - 92:DF6D 92:DF70 - 92:DF71 92:DF74 - 92:DF75 92:EE00 - 92:EE0F 92:EE10 - 92:EE7B 92:FFEF - 92:FFFE 93:8431 - 93:8432 93:8447 - 93:8448 93:845D - 93:845E 93:8473 - 93:8474 93:8489 - 93:848A 93:849F - 93:84A0 93:84B5 - 93:84B6 93:84CB - 93:84CC 93:84E1 - 93:84E2 93:84F7 - 93:84F8 93:850D - 93:850E 93:8523 - 93:8524 93:8539 - 93:853A 93:854F - 93:8550 93:8565 - 93:8566 93:857B - 93:857C 93:8591 - 93:8592 93:85A7 - 93:85A8 93:85BD - 93:85BE 93:85D3 - 93:85D4 93:85E9 - 93:85EA 93:85FF - 93:8600 93:8615 - 93:8616 93:862B - 93:862C 93:8641 - 93:8642 93:8657 - 93:8658 93:8671 - 93:8672 93:8685 - 93:8686 93:86AB - 93:86AC 94:8884 - 94:8886 94:9149 - 94:914A 94:91D5 - 94:91D6 94:9DB4 - 94:9DB5 94:ACFE - 94:AECD 94:AFBA - 94:B05B 94:B1A0 - 94:B1AA 94:B1B0 - 94:B257 94:B260 - 94:BA33 95:80D8 - 95:9D81 9A:B890 - 9A:B8CF ;Layer 3 graphics 9B:BD95 - 9B:BE6B 9B:C036 - 9B:C0DA 9B:C490 - 9B:C4D8 9B:CC00 - 9B:D7E9 A0:8000 - A0:801D A0:9E9A - A0:9FAA A0:A4CC - A0:A4C3 A0:A643 - A0:A645 A0:A6AD - A0:A6AF A0:A6BA - A0:A6BC A0:A6DE - A0:A8BB A0:C0AE - A0:C151 A0:D651 - A0:D652 A0:DC67 - A0:DC68 A0:DC71 - A0:DC72 A0:DD19 - A0:DD1A A0:DD2F - A0:DD30 A0:DD91 - A0:DD92 A0:E4E7 - A0:E4E8 A0:F7D3 - A0:F812 A0:F820 - A0:F82D A0:F830 - A0:F847 A0:F850 - A0:F88F A2:8000 - A2:801D A3:8000 - A3:801D A3:E669 - A3:E6BA A3:E785 - A3:E7ED A3:EC11 - A3:ECDB (Free space at end) A3:F320 - A3:F45C A3:F460 - A3:F4D0 A3:F4E0 - A3:F4F5 A3:F500 - A3:F648 A3:F650 - A3:F71B A3:F720 - A3:F754 (ROM says F757?) A4:8000 - A4:801D A5:8000 - A5:801D A5:8EA9 - A5:8F06 A5:94C2 A5:F960 - A5:FC95 A6:8000 - A6:801D A6:C117 - A6:C134 A7:8000 - A7:801D A7:D4D6 - A7:D4D8 A7:D614 - A7:D616 A7:D6B5 - A7:D6B7 A7:D78F - A7:D791 A7:DEA6 - A7:DEA8 A7:FF82 - A7:FFA7 A8:8000 - A8:801D A9:8000 - A9:801D AA:8000 - AA:801D B2:8000 - B2:801D B3:8000 - B3:801D B4:F0FB B6:8000 - B6:DFFF B6:E64A - B6:E653 B6:E68A - B6:E693 B6:E800 - B6:EFFF B6:F200 - B6:F23F B8:8000 - B8:8009 B8:8010 - B8:803B B8:8040 - B8:806F B8:8070 - B8:808B B8:8090 - B8:80AD B8:80B0 - B8:81D7 B8:8200 - B8:92B2 B8:FC04 - B8:FFFF BA:F911 - BB:AA04 ;Graphics set 3 Graphics CF:8A93 - CF:8ADE Item Array 7E:09A2/09A4 0000 0000 0000 0000 |||| |||| |||| |||\Varia |||| |||| |||| ||\-Spring Ball |||| |||| |||| |\--Morphing Ball |||| |||| |||| \---Screw Attack |||| |||| |||| |||| |||| |||\-----Unused (1) Now Normal --> Spin Jump |||| |||| ||\------Gravity Suit |||| |||| |\-------Unused (2) Now Spark Bounce |||| |||| \--------Unused (3) Now Green Chozo Item (Unknown) |||| |||| |||| |||\-----------High Jump |||| ||\------------Space Jump |||| |\-------------Unused (4) Now Speed Morph |||| \--------------Unused (5) Now Electromorph |||| |||\----------------Bomb ||\-----------------Speed Booster |\------------------Grapple \-------------------X-Ray, now unused 7E:09A6/09A8 0000 0000 0000 0000 |||| |||| |||| |||\Wave |||| |||| |||| ||\-Ice |||| |||| |||| |\--Spazer |||| |||| |||| \---Plasma |||| |||| |||| |||| |||| |||\-----Charged (Unused) |||| |||| ||\------Unused |||| |||| |\-------Unused |||| |||| \--------Unused |||| |||| |||| |||\-----------Missile (Unused) |||| ||\------------Super Missile (Unused) |||| |\-------------Unused |||| \--------------Unused |||| |||\----------------Allow Charge ||\-----------------Unused, Now T.Charge |\------------------Unused, Now 3-Way Beam \-------------------Unused, Now Heat Sink 7E:0617 - 7E:0618 are unused (Was debug soft reset flag). Using them for 'special game bits' now. 0000 0000 0000 0000 |||| |||| |||| |||\Make Samus invisible |||| |||| |||| ||\-Charge Beam sound is running |||| |||| |||| |\--Electromorph bit (Crouching, run has been pressed once) |||| |||| |||| \---Electromorph bit (Electromorph Superjump active) |||| |||| |||| |||| |||| |||\----- |||| |||| ||\------ |||| |||| |\------- |||| |||| \-------- |||| |||| |||| |||\----------- |||| ||\------------ |||| |\------------- |||| \-------------- |||| |||\---------------- ||\----------------- |\------------------ \------------------- RAM reallocations: Grapple RAM has been redone, see the Grapple doc for details. 7E:0617 - 7E:0618 was debug, now used for various game bits 7E:07F7 - 7E:08F6 was freed up +7E:07F7 - 7E:07F8 Previous gamestate during cutscenes +7E:07F9 - 7E:07FA Cutscene timer +7E:07FB - 7E:07FC Cutscene code pointer +7E:07FD - 7E:07FE Previous OAM size (4 * number of sprites) +7E:0800 - 7E:081F List of possible entries for Log Book +7E:0820 - 7E:0821 Log Book string variable 7E:CD52 - 7E:D551 is now free 7E:D91B - 7E:DE1B? is now free (saved in SRAM too) +7E:D91B - 7E:D92A Target rooms to trigger cutscenes. Expecting around 3, making room for 8, just in case. +7E:D92B - 7E:D939 Bits for log book. 5 bytes per group should be overkill. +7E:D93A - 7E:D94D Pirate Game High Scores. 5 bytes each (3 byte name + 2 byte score), 4 scores saved. +7E:D94E - 7E:D94F Save room X and Y. +7F:FA02 - 7F:FB51 Tilemap for logbook options (equipment, lifeforms, environment) +7F:FB52 - 7F:FC81 Transferring tiles for log book VWF +7F:FFDF - 7F:FFEE RAM for routines on KejardonStack +7F:FFEF Counter for KejardonStack +7F:FFF0 - 7F:FFFF KejardonStack - routines to call every frame at NMI until they're done, bank 80. (Done = STZ to this one) New general use routines: 9B:B951 Deal damage to Samus (A) and push her back. Ignores suits. (JSR) 9B:B938 Deal damage to Samus (A) and push her back. Accounts for suits. (JSR) 9B:D7E2 Deal damage to Samus (A) and push her back. Ignores suits. (JSL) 9B:D7E6 Deal damage to Samus (A) and push her back. Accounts for suits. (JSL) 90:99E2 Check for liquid effect (X = 0 (air), 2 (water), 4 (lava)) (JSL) 90:9A35 Check for liquid environment (ignores Gravity) (JSL) New stuff to keep in mind: 80:FCAA Add stuff to this routine for game initialization. ================================= EVENT BIT ARRAY 7ED820 0 0 z z z 0 0 0 | | | | | | | |__ 00 -- ;Zebes is awake. (Set when MB's old room is cleared.) | | | | | | |____ 01 -- First Planet Cutscene has occured | | | | | |______ 02 -- Mother Brain's container has been destroyed. | | | | |________ --. Zebetites | | | |____________ | Destroyed | | |______________ --' Counter | |________________ 06 -- Phantoon statue is grey. |__________________ 07 -- Ridley statue is grey. 7ED821 0 0 0 0 0 0 0 0 | | | | | | | |__ 08 -- Draygon statue is grey. | | | | | | |____ 09 -- Kraid statue is grey. | | | | | |______ 0A -- Path to Tourian Running Hell is open. | | | | |________ 0B -- ;Glass tube is broken. | | | |____________ 0C -- ;Orange Soda Chozo has lowered the lava. | | |______________ 0D -- ;Shaktool has cleared a path. | |________________ 0E -- The Zebes timebomb has been set. |__________________ 0F -- The hatchling metroid has been saved ;The Dachola and the Etecoons have been saved. 7ED822 0 0 0 0 0 0 0 0 | | | | | | | |__ 10 -- Insanity Var 0 (Samus's ship 0/1) | | | | | | |____ 11 -- Insanity Var 1 (Samus's ship 0/2) | | | | | |______ 12 -- Insanity Var 2 | | | | |________ 13 -- Insanity Var 3 | | | |____________ 14 -- Insanity Var 4 | | |______________ 15 -- Insanity Var 5 | |________________ 16 -- Insanity Var 6 |__________________ 17 -- Insanity Var 7 7ED823 0 0 0 0 0 0 0 0 | | | | | | | |__ 18 -- Insanity Var 8 | | | | | | |____ 19 -- Insanity Var 9 | | | | | |______ 1A -- Insanity Var A | | | | |________ 1B -- Insanity Var B | | | |____________ 1C -- Insanity Var C | | |______________ 1D -- Insanity Var D | |________________ 1E -- Insanity Var E (May replace 'Zebes awakes' with this for first reset) |__________________ 1F -- Insanity Var F (Do not ever set this, will mess up checks) 7E:05C9 - 7E:05CA: Was Debug Missile swap. Now 'Room Catchup' counter. 8000 = caught up 7E:05CB - 7E:05CC: Was Debug Super Missile swap. Now 'Room Catchup' BG1 starting spot, X or Y in blocks (Where BG1 was before scrolling between rooms) 7E:05CD - 7E:05CE: Was Debug Power Bomb swap. Now 'Room Catchup' BG2 starting spot, X or Y in blocks (Where BG2 was before scrolling between rooms) Misc notes: Things I need to clear out: Original rooms span from 2142BB to 27322C. Original minimaps span from 1A8000 to 1AFFFF (clear with 1F 00) Original FX1 data: 18000 to 188FB, 19AC2 to 1A189. Original DDB data: (possibly 1890A to 18915), 18916 to 19AC1, 1A18C to 1ABC3. 1ABC4 to 1ABEF are faulty doors used by the debug room. Original Scroll Update code: B971, B981, B98C, B997, B9A2, B9B3, B9CA, B9F1, BA00, BA0B, BA16, BA21, BA2C, BD07, BD16, BD25, BD30, BD3F, BD50, BD5B, BD6C, BD77, BD8A, BD95, BDA0, BDAF, BDD1, BDE2, BDF1, BDC0, BE00, BE0B, BE1A, BE25, BE36, BF9E, BFBB, BFE9, BFDA, BFFA, C016, C025, C03A, C04B, C056, C067, C078, C089, C0A2, C0AD, C0C2, C0D3, C0DE, C0EF, C0FA, C10B, E1D8, E1E8, E1F3, E1FE, E20F, E21A, E229, E26C, E291, E301, E309, E318, E345, E356, E367, E378, E38D, E398, E3A3, E3C8, E3D9, E4C0, E4CF, E4E0, E513 Original PLM data: 78000 to 79193, 7C215 to 7C8C6, 7E87F to 7E880 Original MDB data: 791F8 to 7B769, 7C98E to 7E0FC, 7E82C to 7E85A Original Room Population is all that's inside of 108000 to 10FFFF