Hey, all. Adam here. I was curious about reserve missiles, and Kejardon's RAMMap.txt said that it's only used by 91:DF80, so I disassembled it. The full disassembly is below, because I want to put my explanation first. When you get a missile pickup dropped by a slain enemy, the missile pickup routine is called with the size of a pickup in A. That size gets added to Samus' current missile stock. If she isn't fully stocked yet, we're done: we just restore registers and RTL. If this pickup pushes her over her *max* missiles, though, the overflow gets added to her *reserve* missiles. Her reserve missiles are limited to the lesser of 99, and her max missiles. Once max/reserve are set, current is set to max, and then the pull/RTL code runs. If we didn't skip down to that code in the first place, it was because current is over max and the reserve-missile path was invoked. There's still a lot of gameplay questions unanswered here--such as how the player would see their reserve missiles and the mechanics of actually using them--but I hope this is a fascinating glimpse of the cutting room floor. $91/DF80 08 PHP $91/DF81 8B PHB $91/DF82 4B PHK $91/DF83 AB PLB $91/DF84 C2 30 REP #$30 $91/DF86 18 CLC ; current += pickup_size $91/DF87 6D C6 09 ADC $09C6 [$00:09C6] $91/DF8A 8D C6 09 STA $09C6 [$00:09C6] $91/DF8D CD C8 09 CMP $09C8 [$00:09C8] ; if current <= max $91/DF90 30 3E BMI $3E [$DFD0] ; goto out $91/DF92 38 SEC ; overflow = current - max $91/DF93 ED C8 09 SBC $09C8 [$00:09C8] $91/DF96 85 12 STA $12 [$00:0012] $91/DF98 AD C8 09 LDA $09C8 [$00:09C8] $91/DF9B C9 63 00 CMP #$0063 ; if max <= 99 $91/DF9E 30 16 BMI $16 [$DFB6] ; goto add_until_max ; you might call this "add_until_99" $91/DFA0 A5 12 LDA $12 [$00:0012] ; reserves += overflow $91/DFA2 18 CLC $91/DFA3 6D D8 09 ADC $09D8 [$00:09D8] $91/DFA6 8D D8 09 STA $09D8 [$00:09D8] $91/DFA9 C9 63 00 CMP #$0063 ; if reserves <= 99 $91/DFAC 30 1C BMI $1C [$DFCA] ; goto reserves_ready $91/DFAE A9 63 00 LDA #$0063 ; reserves = 99 $91/DFB1 8D D8 09 STA $09D8 [$00:09D8] $91/DFB4 80 14 BRA $14 [$DFCA] ; goto reserves_ready add_until_max: $91/DFB6 A5 12 LDA $12 [$00:0012] ; reserves += overflow $91/DFB8 18 CLC $91/DFB9 6D D8 09 ADC $09D8 [$00:09D8] $91/DFBC 8D D8 09 STA $09D8 [$00:09D8] $91/DFBF CD C8 09 CMP $09C8 [$00:09C8] ; if reserves <= max $91/DFC2 30 06 BMI $06 [$DFCA] ; goto reserves_ready $91/DFC4 AD C8 09 LDA $09C8 [$00:09C8] ; reserves = max $91/DFC7 8D D8 09 STA $09D8 [$00:09D8] reserves_ready: $91/DFCA AD C8 09 LDA $09C8 [$00:09C8] ; current = max $91/DFCD 8D C6 09 STA $09C6 [$00:09C6] out: $91/DFD0 AB PLB $91/DFD1 28 PLP $91/DFD2 6B RTL