The Great Metroid Construction Collaboration Hunt - Post your resources here!

Started by Zhs2, July 20, 2009, 07:55:03 PM

Previous topic - Next topic

RedPhzzon

Quote from: Steel Sparkle on August 20, 2018, 03:55:55 PM
The beam burst could be a really nice reward for beating a super boss or something like collecting items to unlock it.

Oh! That would be a cool idea! Beam Bursts seems way too overpowered to get normally. It feels like one of those things you get after beating a difficult boss....question is...what boss (Besides the big 4) would be considered good enough for that? Only thing that comes to mind is Gold Torizo.

Tomtroid

Quote from: Jefe962 on August 20, 2018, 02:07:33 PM
https://www.youtube.com/watch?v=U66OBxw7xOs

Beam Burst. Samus will be able to collect an item which lets her shoot charged beams at a very fast rate, at the cost of 1 power bomb. This item is a replacement to the X-ray scope.
Credits to Person701 for the original ASM, SMILEUser96 for some help, and Tedicles for the item GFX. I did the HUD GFX and parts of the code.
When Scyzer fixes the message box editor, I may fix the message box as it still tells the user to hold the Run button.

BeamBurst.IPS will apply the new weapon and graphics.



I'll admit that the Beam Burst is an awesome item. It's best to apply it to a Vanilla ROM, even though it may be compatible with some hacks. Applying it to Project Base is too risky IMO.

JumZhu

#1077
ID 71 Sprite can be used as a floating platform
RipperCarPlus: ripper has head and tail attack, and ripper speeds up when you step on ripper.

amoeba

Custom Scrolling Sky

Thanks PJ for pointing me to the right places.

This will let you have as many different versions of scrolling sky as you have rooms. Just edit layer 2 for a room in SMILE and this will make the first column of screens load in as scrolling sky. The bands' sizes and speeds can be edited in asm below. All the edits should be right in that first section on tables  :^_^:

[spoiler]

lorom

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Custom Layer 2 scrolling sky by Amoeba
;
; Warning: this asm overwrites the built in scrolling sky routines. You will need to manually add a layer 2 and data in it to rooms that use scrolling sky.
; Rooms that use the alternate scrolling sky (ex. East Ocean) will crash as that is removed entirely.
;
; Use 91C9 for the room's setup asm (aka Layer1_2)
; Use C116 for the room's main asm. (aka FX2)
;
; Put the scrolling sky BG on a custom layer 2 for the room in the first olumn of screens. The rest of the screens aren't used.
; Edit/Add a scroll table to match the positions of the clouds / scrolling sections.
; Note: If th room goes past the end of the table, the remaining sections will inherit their X scroll properties from the room it. (Still fixed to one column.)
; Set the first tile's tile number to the scroll table index you want to use (000, 002, 004, etc.) this should be something in the CRE if it's sane.
; Note: The first row of tiles can never be visable.
; Note: you can save space in teh rom if you copy the scrolling sky to every column of layer 2. It will compress nicely.
;

org $8F91C9 ;Normal scrolling sky room setup code
  JSL RoomSetupASM
  RTS

org $8FC116 ;Normal scrolling sky room main asm
  JSL RoomMainASM
  RTS

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Add new tables here for each scrolling sky pattern needed
;
org $88F600 ;free space
ScrollingSkySectionTable_List:
  DW ScrollingSkySectionTable_000, ScrollingSkySectionTable_002

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; The first section should start at the top.
; Each next section must appear in order from top to bottom with increasing pixels locations.
; The last row should indicate the end of the last section and then have a null pointer for where to store the scroll value.
; The scroll values take 4 bytes to store. Only the highest word is actually read, so if you feel liek doing something tricky you could read something else if you set the speed to be 0.
; If you want to make the table really long, you'll have to allocate more space in bank $7F for storing scroll values.
; Columns: top pixel row of the section, sub-pixels/frame to move (pixels start at the high word), section scroll storage address
;
!repeated = "$00000000"
ScrollingSkySectionTable_000: ;optimized vanilla
  DW $0000 : DD $00008000 : DW $9F80
  DW $0010 : DD $0000C000 : DW $9F84
  DW $0038 : DD !repeated : DW $9F80
  DW $00D0 : DD !repeated : DW $9F84
  DW $00E0 : DD !repeated : DW $9F80
  DW $0120 : DD !repeated : DW $9F84
  DW $01A0 : DD !repeated : DW $9F80
  DW $01D8 : DD !repeated : DW $9F84
  DW $0238 : DD $00014000 : DW $9F88
  DW $0268 : DD !repeated : DW $9F84
  DW $02A0 : DD !repeated : DW $9F80
  DW $02E0 : DD !repeated : DW $9F88
  DW $0300 : DD !repeated : DW $9F80
  DW $0320 : DD !repeated : DW $9F84
  DW $0350 : DD !repeated : DW $9F80
  DW $0378 : DD !repeated : DW $9F84
  DW $03C8 : DD !repeated : DW $9F80
  DW $0440 : DD $00007000 : DW $9F8C
  DW $0460 : DD !repeated : DW $9F84
  DW $0480 : DD !repeated : DW $9F80
  DW $0490 : DD $00000000 : DW $9F90
  DW $0500 : DD $00000000 : DW $0000

ScrollingSkySectionTable_002: ;copy of vanilla
  DW $0000 : DD $00008000 : DW $9F80
  DW $0010 : DD $0000C000 : DW $9F84
  DW $0038 : DD $00008000 : DW $9F88
  DW $00D0 : DD $0000C000 : DW $9F8C
  DW $00E0 : DD $00008000 : DW $9F90
  DW $0120 : DD $0000C000 : DW $9F94
  DW $01A0 : DD $00008000 : DW $9F98
  DW $01D8 : DD $0000C000 : DW $9F9C
  DW $0238 : DD $00008000 : DW $9FA0
  DW $0268 : DD $0000C000 : DW $9FA4
  DW $02A0 : DD $00008000 : DW $9FA8
  DW $02E0 : DD $0000C000 : DW $9FA0
  DW $0300 : DD $00008000 : DW $9FB0
  DW $0320 : DD $0000C000 : DW $9FB4
  DW $0350 : DD $00008000 : DW $9FB8
  DW $0378 : DD $0000C000 : DW $9FBC
  DW $03C8 : DD $00008000 : DW $9FC0
  DW $0440 : DD $00007000 : DW $9FC4
  DW $0460 : DD $0000C000 : DW $9FC8
  DW $0480 : DD $00008000 : DW $9FCC
  DW $0490 : DD $00000000 : DW $9FD0
  DW $04A8 : DD $00000000 : DW $9FD4
  DW $04B8 : DD $00000000 : DW $9FD8
  DW $0500 : DD $00000000 : DW $0000
warnpc $88FFFF

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Room Setup ASM
; A JSR->JSL shim at $8F91C9 call this.
; Creates the HDMA object that handles changing the x scroll based on the position of the screen
;
org $88A7D8
RoomSetupASM:
  PHP
  SEP #$30
  LDA $091B
  ORA #$01
  STA $091B ;disable normal X scrolling graphics routines for layer 2
  LDA $091C
  ORA #$01
  STA $091C ;disable normal Y scrolling graphics routines for layer 2
  JSL $888435 ;spawn HDMA object
    DB $42, $0F
    DW ScrollInstructionList
  REP #$30
  LDA #$00E0
  STA $059A
  STZ $059C
  SEP #$30
  LDA #$4A
  STA $59 ;BG2 tilemap base address = $4800, size = 32x64
  REP #$30
  LDA $0915 ;Screen's Y position in pixels
  STA $0919 ;Screen's realtive Y position reference point in pixels
  STA $B7 ;Value for $2110 (Y scroll of BG 2)
  STZ $0923 ;Screen's relative Y position offset for transitions
  JSL LoadFullBG
  PLP
  RTL
warnpc $88A81C

org $88AD76
ScrollInstructionList:
  DW $8655 ;HDMA table bank = $7E
    DB $7E
  DW $866A ;Indirect HDMA data bank = $7E
    DB $7E
  DW $8570
    DL ScrollPreInstruction ;$88ADB2 ; Pre-instruction
ScrollInstructionList_Loop:
  DW $7000, $9F00
  DW $85EC, ScrollInstructionList_Loop

ScrollPreInstruction:
  REP #$30
  LDA $0A78
  BEQ ScrollPreInstruction_NotPaused
  RTL
ScrollPreInstruction_NotPaused:
  LDA $7F9602 ;First 16x16 tile of layer 2
  AND #$03FE ;Use to look up which table to use
  TAX
  LDA ScrollingSkySectionTable_List,x
  TAY
  LDA $0006,y ;HDMA table entry address
UpdateScrollPositions_Loop:
  TAX
  LDA $0002,y ;sub-pixel/frame
  CLC
  ADC $7E0000,x
  STA $7E0000,x
  LDA $0004,y ;pixel/frame
  ADC $7E0002,x
  STA $7E0002,x
  TYA
  CLC
  ADC #$0008
  TAY
  LDA $0006,y ;HDMA table entry address
  BNE UpdateScrollPositions_Loop ;look for terminator

  LDA #$0000
  STA $7E9FD8
  STA $7E9FDA
  LDA #$001F
  STA $7E9F00
  LDA #$059E
  STA $7E9F01 ;first entry int he HDMA table covers the section under the hud with a fixed scroll value

  LDA $0915 ;Screen's Y position in pixels
  CLC
  ADC #$0020
  STA $12 ;current first line (1 pixel below the hud)
  CLC
  ADC #$00C0
  STA $14 ;last line

  LDA $7F9602 ;First 16x16 tile of layer 2
  AND #$03FE ;Use to look up which table to use
  TAX
  LDA ScrollingSkySectionTable_List,x
  TAY ;Y = scrolling sky table index
  LDX #$0003 ;X = indirect HDMA table index starting at the second entry

BuildIndirectHDMATable_Loop:
  LDA $12 ;current first line
  CMP $0000,y ;top of scrolling section
  BMI BuildIndirectHDMATable_NotInView
  CMP $0008,y ;top of next scrolling section
  BMI ScrollingSection ;if the current first line in [top, top of next), go process this section
BuildIndirectHDMATable_NotInView:
  TYA
  CLC
  ADC #$0008
  TAY
  LDA $0006,y ;HDMA table entry address
  BNE BuildIndirectHDMATable_Loop ;look for terminator

  ;If we went past the bottom of the table we should treat the rest as a normal scrolling section
  ;Setup an entry to copy in the normal scroll value once and then leave the rest of the room below alone.
  LDA #$0001
  STA $7E9F00,x
  LDA #$00B5
  STA $7E9F01,x
  LDA #$0000
  STA $7E9F03,x ;terminate table
  RTL

ScrollingSection:
  LDA $0008,y ;top of next scrolling section
  SEC
  SBC $12 ;current first line
ScrollingSection_Loop:
  STA $18 ;section height
  CMP #$0080
  BMI ScrollingSection_Last
  LDA #$007F
  STA $7E9F00,x
  LDA $0006,y ;HDMA table entry address
  INC A
  INC A
  STA $7E9F01,x
  INX
  INX
  INX
  LDA $18
  SEC
  SBC #$007F
  BRA ScrollingSection_Loop

ScrollingSection_Last:
  STA $7E9F00,x
  LDA $0006,y ;HDMA table entry address
  INC A
  INC A
  STA $7E9F01,x
  LDA $18 ;section height
  CLC
  ADC $12 ;current first line
  STA $12
  INX
  INX
  INX
  LDA $12 ;current first line
  CMP $14 ;last line
  BPL ScrollingSection_Exit
  JMP BuildIndirectHDMATable_Loop
ScrollingSection_Exit:
  LDA #$0000
  STA $7E9F03,x ;terminate table
  RTL

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Room Main ASM
; A JSR->JSL shim at $8FC116 call this.
; Copies the graphics for two 8x8 rows above and two 8x8 rows below the screen.
; Data is loaded from the first column of screens in the layer 2 level data.
;
RoomMainASM:
  LDA $0A78 ;Pause timer, due to energy tank and x-ray scope.
  BEQ RoomMainASM_NotPaused
  LDA #$0000
  STA $7E9F00
  RTL

RoomMainASM_NotPaused:
  REP #$30
  LDA $0915 ;Screen's Y position in pixels
  BIT #$0008
  BNE HalfScroll
  JSL CopyTilesFullScroll
  BRA SetupGraphicsDMA
HalfScroll:
  JSL CopyTilesHalfScroll

SetupGraphicsDMA:
  LDA $0915 ;Screen's Y position in pixels
  STA $B7 ;Value for $2110 (Y scroll of BG 2)
  LDX $0330 ;'Stack' pointer for 00D0 table
  LDA #$0040
  ;Table of entries to update graphics, 7 bytes: Size (2 bytes), source address (3 bytes), VRAM target (2 bytes)
  STA $D0,x ;Graphics copy size 0
  STA $D7,x ;Graphics copy size 1
  STA $DE,x ;Graphics copy size 2
  STA $E5,x ;Graphics copy size 3

  LDA #$FB02
  STA $D2,x ;Graphics copy source address 0
  LDA #$FB42
  STA $D9,x ;Graphics copy source address 1
  LDA #$FB82
  STA $E0,x ;Graphics copy source address 2
  LDA #$FBC2
  STA $E7,x ;Graphics copy source address 3

  SEP #$20
  LDA #$7F
  STA $D4,x ;Graphics copy source bank 0
  STA $DB,x ;Graphics copy source bank 1
  STA $E2,x ;Graphics copy source bank 2
  STA $E9,x ;Graphics copy source bank 3
  REP #$20

  LDA $59 ;Value for $2108 with 'A' BG 2 Address and Size
  AND #$00FC ;Screen Base Address
  XBA
  STA $00
  LDA $0915 ;Screen's Y position in pixels
  SEC
  SBC #$0010
  AND #$01F8
  ASL A
  ASL A
  CLC
  ADC $00
  STA $D5,x ;Graphics copy target address 0
  CLC
  ADC #$0020
  STA $DC,x ;Graphics copy target address 1
  LDA $0915
  CLC
  ADC #$00F0
  AND #$01F8
  ASL A
  ASL A
  CLC
  ADC $00
  STA $E3,x ;Graphics copy target address 2
  CLC
  ADC #$0020
  STA $EA,x ;Graphics copy target address 3
  TXA
  CLC
  ADC #$001C
  STA $0330 ;'Stack' pointer for 00D0 table
  RTL
print pc
warnpc $88B057

org $8AB180 ;Overwriting the tilemap that used to be used by scrolling sky
Copy8x8TileRowTop:
  LDA $7F9602,x
  PHX
  PHA
  AND #$03FF
  ASL A
  ASL A
  ASL A
  TAX

  PLA
  BIT #$0400
  BNE Copy8x8TileRowTop_HorizontalFlip
  BIT #$0800
  BNE Copy8x8TileRowTop_VerticalFlip

Copy8x8TileRowTop_NoFlip:
  LDA $7EA000,x
  PHX
  TYX
  STA $7FFB02,x
  PLX
  LDA $7EA002,x
  TYX
  STA $7FFB04,x

Copy8x8TileRowTop_Next:
  PLX
  INX
  INX
  INY
  INY
  INY
  INY
  CPY $00
  BMI Copy8x8TileRowTop
  RTS

Copy8x8TileRowTop_HorizontalFlip:
  BIT #$0800
  BNE Copy8x8TileRowTop_BothFlip
  LDA $7EA002,x
  PHX
  TYX
  EOR #$4000
  STA $7FFB02,x
  PLX
  LDA $7EA000,x
  TYX
  EOR #$4000
  STA $7FFB04,x
  BRA Copy8x8TileRowTop_Next

Copy8x8TileRowTop_VerticalFlip:
  LDA $7EA004,x
  PHX
  TYX
  EOR #$8000
  STA $7FFB02,x
  PLX
  LDA $7EA006,x
  TYX
  EOR #$8000
  STA $7FFB04,x
  BRA Copy8x8TileRowTop_Next

Copy8x8TileRowTop_BothFlip:
  LDA $7EA006,x
  PHX
  TYX
  EOR #$C000
  STA $7FFB02,x
  PLX
  LDA $7EA004,x
  TYX
  EOR #$C000
  STA $7FFB04,x
  BRA Copy8x8TileRowTop_Next


Copy8x8TileRowBottom:
  LDA $7F9602,x
  PHX
  PHA
  AND #$03FF
  ASL A
  ASL A
  ASL A
  TAX

  PLA
  BIT #$0400
  BNE Copy8x8TileRowBottom_HorizontalFlip
  BIT #$0800
  BNE Copy8x8TileRowBottom_VerticalFlip

Copy8x8TileRowBottom_NoFlip:
  LDA $7EA004,x
  PHX
  TYX
  STA $7FFB02,x
  PLX
  LDA $7EA006,x
  TYX
  STA $7FFB04,x

Copy8x8TileRowBottom_Next:
  PLX
  INX
  INX
  INY
  INY
  INY
  INY
  CPY $00
  BMI Copy8x8TileRowBottom
  RTS

Copy8x8TileRowBottom_HorizontalFlip:
  BIT #$0800
  BNE Copy8x8TileRowBottom_BothFlip
  LDA $7EA006,x
  PHX
  TYX
  EOR #$4000
  STA $7FFB02,x
  PLX
  LDA $7EA004,x
  TYX
  EOR #$4000
  STA $7FFB04,x
  BRA Copy8x8TileRowBottom_Next

Copy8x8TileRowBottom_VerticalFlip:
  LDA $7EA000,x
  PHX
  TYX
  EOR #$8000
  STA $7FFB02,x
  PLX
  LDA $7EA002,x
  TYX
  EOR #$8000
  STA $7FFB04,x
  BRA Copy8x8TileRowBottom_Next

Copy8x8TileRowBottom_BothFlip:
  LDA $7EA002,x
  PHX
  TYX
  EOR #$C000
  STA $7FFB02,x
  PLX
  LDA $7EA000,x
  TYX
  EOR #$C000
  STA $7FFB04,x
  BRA Copy8x8TileRowBottom_Next

CopyTilesFullScroll:
  LDA $0915 ;Screen's Y position in pixels
  LSR
  LSR
  LSR
  LSR
  DEC A
  LDY $07A5 ;Current room's width in tiles
  JSL $8082D6 ;multiply A*Y -> 32-bits starting at $05F1
  LDA $05F1 ;low product
  ASL A
  TAX
  STA $14 ;position of first tile to copy 8x8 tiles from

  LDY #$0000
  LDA #$0040
  STA $00
  JSR Copy8x8TileRowTop
  LDX $14
  LDY #$0040
  LDA #$0080
  STA $00
  JSR Copy8x8TileRowBottom

  LDA $0915 ;Screen's Y position in pixels
  LSR
  LSR
  LSR
  LSR
  CLC
  ADC #$000F ;one tile below screen
  LDY $07A5 ;Current room's width in tiles
  JSL $8082D6 ;multiply A*Y -> 32-bits starting at $05F1
  LDA $05F1 ;low product
  ASL A
  TAX
  STA $14 ;position of first tile to copy 8x8 tiles from

  LDY #$0080
  LDA #$00C0
  STA $00
  JSR Copy8x8TileRowTop
  LDX $14
  LDY #$00C0
  LDA #$0100
  STA $00
  JSR Copy8x8TileRowBottom
  RTL


CopyTilesHalfScroll:
  LDA $07A5 ;Current room's width in tiles
  ASL
  STA $12

  LDA $0915
  LSR
  LSR
  LSR
  LSR
  DEC A
  LDY $07A5 ;Current room's width in tiles
  JSL $8082D6 ;multiply A*Y -> 32-bits starting at $05F1
  LDA $05F1 ;low product
  ASL A
  TAX
  STA $14 ;position of first tile to copy 8x8 tiles from

  LDY #$0000
  LDA #$0040
  STA $00
  JSR Copy8x8TileRowBottom
  LDA $14
  CLC
  ADC $12
  TAX
  LDY #$0040
  LDA #$0080
  STA $00
  JSR Copy8x8TileRowTop

  LDA $0915 ;Screen's Y position in pixels
  LSR
  LSR
  LSR
  LSR
  CLC
  ADC #$000F ;one tile below screen
  LDY $07A5 ;Current room's width in tiles
  JSL $8082D6 ;multiply A*Y -> 32-bits starting at $05F1
  LDA $05F1 ;low product
  ASL A
  TAX
  STA $14 ;position of first tile to copy 8x8 tiles from

  LDY #$0080
  LDA #$00C0
  STA $00
  JSR Copy8x8TileRowBottom
  LDA $14
  CLC
  ADC $12
  TAX
  LDY #$00C0
  LDA #$0100
  STA $00
  JSR Copy8x8TileRowTop

  RTL

LoadFullBG:
  LDA #$0000
LoadFullBG_Loop:
  CMP #$00F0
  BMI LoadFullBG_Continue
  JSL $808338 ;Wait for NMI
  RTL
LoadFullBG_Continue:
  STA $02

  LDA $0915 ;Screen's Y position in pixels
  CLC
  ADC $02
  LSR
  LSR
  LSR
  LSR
  LDY $07A5 ;Current room's width in tiles
  JSL $8082D6 ;multiply A*Y -> 32-bits starting at $05F1
  LDA $05F1 ;low product
  ASL A
  TAX
  STA $14 ;position of first tile to copy 8x8 tiles from

  LDY #$0000
  LDA #$0040
  STA $00
  JSR Copy8x8TileRowTop
  LDX $14
  LDY #$0040
  LDA #$0080
  STA $00
  JSR Copy8x8TileRowBottom

  LDA $14
  LSR
  CLC
  ADC $07A5 ;Current room's width in tiles
  ASL
  TAX
  STA $14

  LDY #$0080
  LDA #$00C0
  STA $00
  JSR Copy8x8TileRowTop
  LDX $14
  LDY #$00C0
  LDA #$0100
  STA $00
  JSR Copy8x8TileRowBottom

  LDX $0330 ;'Stack' pointer for 00D0 table
  LDA #$0040
  ;Table of entries to update graphics, 7 bytes: Size (2 bytes), source address (3 bytes), VRAM target (2 bytes)
  STA $D0,x ;Graphics copy size 0
  STA $D7,x ;Graphics copy size 1
  STA $DE,x ;Graphics copy size 2
  STA $E5,x ;Graphics copy size 3

  LDA #$FB02
  STA $D2,x ;Graphics copy source address 0
  LDA #$FB42
  STA $D9,x ;Graphics copy source address 1
  LDA #$FB82
  STA $E0,x ;Graphics copy source address 2
  LDA #$FBC2
  STA $E7,x ;Graphics copy source address 3

  SEP #$20
  LDA #$7F
  STA $D4,x ;Graphics copy source bank 0
  STA $DB,x ;Graphics copy source bank 1
  STA $E2,x ;Graphics copy source bank 2
  STA $E9,x ;Graphics copy source bank 3
  REP #$20

  LDA $59 ;Value for $2108 with 'A'   BG 2 Address and Size
  AND #$00FC ;Screen Base Address
  XBA
  STA $00
  LDA $0915 ;Screen's Y position in pixels
  CLC
  ADC $02
  AND #$01F8
  ASL A
  ASL A
  CLC
  ADC $00
  STA $D5,x ;Graphics copy target address 0
  LDA $0915 ;Screen's Y position in pixels
  CLC
  ADC $02
  CLC
  ADC #$0008
  AND #$01F8
  ASL A
  ASL A
  CLC
  ADC $00
  STA $DC,x ;Graphics copy target address 1
  LDA $0915 ;Screen's Y position in pixels
  CLC
  ADC $02
  CLC
  ADC #$0010
  AND #$01F8
  ASL A
  ASL A
  CLC
  ADC $00
  STA $E3,x ;Graphics copy target address 2
  LDA $0915 ;Screen's Y position in pixels
  CLC
  ADC $02
  CLC
  ADC #$0018
  AND #$01F8
  ASL A
  ASL A
  CLC
  ADC $00
  STA $EA,x ;Graphics copy target address 3

  TXA
  CLC
  ADC #$001C
  STA $0330 ;'Stack' pointer for 00D0 table
  JSL $808338 ;Wait for NMI
  LDA #$0020
  CLC
  ADC $02
  JMP LoadFullBG_Loop
warnpc $8AE980
[/spoiler]

Mentlegen

Super Screw Attack

Collect Super Screw Attack, and demolish frozen enemies at high speeds!
(unique sfx coming soon!)

.zip Includes:
Smile PLM txt and gif
Asm files
custom item gfx


Enjoy!

Mentlegen

Super Screw Attack

Collect Super Screw Attack, and demolish frozen enemies at high speeds!
(unique sfx coming soon!)

.zip Includes:
Smile PLM txt and gif
Asm files
custom item gfx


Enjoy!

Quote58

It'd be super cool if you credited the people who made almost the entire thing just fyi

I felt like I should point this out considering the speed part is literally just Crashtour's 'unique sj/sa speeds' patch with the condition (holding run) changed to an item check (i.e. the argument for 2 opcodes in the file), the frozen enemy part being almost entirely just Adamf's 'Screw Attack Frozen Enemies v1' patch (with an added branch for the item check), and the message box part is just kej/jam's expanded message box patch (with extra comments by nodever btw).

I'm not sure about the plm part at the top, but it's formatting is distinct from the others and I don't know a lot of people here other than me who use the same sub label formatting and comment distance, but if it's someone else I apologize for thinking it was based on something from me.

Anyway by my count the people who should've been credited for the majority of this patch are:
Crashtour
Adamf
Jam
Kejardon
Nodever

The people who were credited anywhere in the files:
Adamf (only in his own file though, where it says the original is by him)

Crashtour99

It's been a while since I did anything neat, so here y'all go as an early New Year's / late X-mas thingy...
https://youtu.be/AXAY2TItgQI

Now you can have 2 different sets of gfx for Samus.
Power suit has been replaced by Auximine's Justin Bailey, just for effect (and only added in the base palette for it).
Varia and Gravity are still in their Vanilla locations, the new gfx were added on to the back end of the ROM.
Only space used code-wise is in $92.

Mentlegen

Super Palette Expansion

allows for 16 unique palette lines for almost all of samus's palette changes

Demonstration video: https://www.youtube.com/watch?v=oVtHJVIowYA&feature=youtu.be

PHOSPHOTiDYL

Quick four digit energy cache for your vanilla hud needz.
This one works with the e-tank display as well.
You'll need to do something about the 'ENERGY' display.

I went with NRG0000. :wink:

LoROM

;==============================================================;
;--------------------------------------------------------------;
;//.....[old hud four digitz]
ORG $808577 ;//[unused $0011/$0015 bytez]
NewTweak:
LDA #$9DBF : STA $00 : LDX #$0088 : LDA $14 : JSR $9D98
LDA $09C4 : RTS
dw $EAEA,$EAEA ;//[]

ORG $809BB3 : JSR NewTweak
ORG $809BEE
OldTweak:
LDA #$9DBF : STA $00 : LDX #$008C : LDA $12 : JSR $9D98
;--------------------------------------------------------------;
;//[000577 : A9 BF 9D 85 00 A2 88 00 A5 14 20 98 9D AD C4 09 60]
;//[001BB3 : 20 77 85]
;//[001BEE : A9 BF 9D 85 00 A2 8C 00 A5 12 20 98 9D]
;==============================================================;

Mentlegen

Quote from: PHOSPHOTiDYL on January 08, 2019, 06:55:16 AM
Quick four digit energy cache for your vanilla hud needz.
This one works with the e-tank display as well.
You'll need to do something about the 'ENERGY' display.

I went with NRG0000. :wink:

LoROM

;==============================================================;
;--------------------------------------------------------------;
;//.....[old hud four digitz]
ORG $808577 ;//[unused $0011/$0015 bytez]
NewTweak:
LDA #$9DBF : STA $00 : LDX #$0088 : LDA $14 : JSR $9D98
LDA $09C4 : RTS
dw $EAEA,$EAEA ;//[]

ORG $809BB3 : JSR NewTweak
ORG $809BEE
OldTweak:
LDA #$9DBF : STA $00 : LDX #$008C : LDA $12 : JSR $9D98
;--------------------------------------------------------------;
;//[000577 : A9 BF 9D 85 00 A2 88 00 A5 14 20 98 9D AD C4 09 60]
;//[001BB3 : 20 77 85]
;//[001BEE : A9 BF 9D 85 00 A2 8C 00 A5 12 20 98 9D]
;==============================================================;



this is really cool! Do you have any resources abut the HUD? i'd really like to get into messing with it.

dewhi100

Spiderball. Should be able to crawl on solid blocks, shotblocks, and bomb blocks. It can only handle "inside" corners. It also does NOT crawl on slopes. Comes with a PLM for a basic pickup, $EFD3 in the selector. Find it attached to this post.

Edit: Added the ReadMe for an easy-to access download on the main site.

Sting_Chameleon

Boss Equipment Mod


Finally finished my Boss Equipment ASM(after a few years or so of not doing anything). All bosses now modify Samus' equipment directly upon their complete defeat, excluding only the Metroid and Mother Brain. I might end up changing that in the future.

Keep in mind that there are two notable major changes that seems to not fall in line with this code exactly, but sets up for what this mod does.

You now start off with Varia Suit, Morph Ball and Bombs, but you won't keep them for long!  :wink:

I did the hotfix for Bomb Torizo to check for Morph Ball to account for the bomb drop.

There's much more detail in this ASM patch as well as the readme files included and each entry point has been tested properly to an extent. I hope there's no bugs in this one apart from possibly Spore Spawn and Botwoon. Spore Spawn is the bigger concern.  :eyeroll:

Items that are forced in Samus' inventory are listed in the readme. These haven't been moved from their original rooms!

Mentlegen

Zero Mission Screw Attack Electricity tiles

(in case someone would like to use them with the dual suit gfx or otherwise)

alexman25

Most of the raw .s music files I used in the 1.0 version of my Metroid: Zero Mission hack, Metroid: Return to Zebes.

All information in README.txt

SUPERMETROIDFTP

Custom Music - Phantoon's Curse II

[2019/2/28]
I made Super Metroid custom music using kottpower's [ Phantoon's Curse II ] music.
It seems that "Another Phantoon song" is a theme. That way, there was a comment on the YouTube.

Although I used the mITroid v0.99.4 application, please unzip the attached file for details and browse it.

Changelog
[spoiler]
[2019/03/03]
changed the attachment to a new file for updating.

[2019/03/02]
Occupying 6ch also for custom music performance conflicts with game sound effects, causing problems. The countermeasure is to synthesize musical instruments and reduce 1ch, but it will deteriorate. Therefore, we plan to attach "a new version that fixes the file attached here or adds a file" to the resource.

[2019/02/28]
Optimized .IT file to mITroid-v0.99.4
[/spoiler]

SUPERMETROIDFTP

GB Metroid2 - Tunnel theme
Attached file list:
[spoiler]

  • GB_Metroid2_-_Tunnel_theme.it  :Source file optimized for mITroid-v0.99.4
  • GB_Metroid2_-_Tunnel_theme.nspc :N-SPC Custom Music
  • GB_Metroid2_-_Tunnel_theme.spc :SNES SPC700 players
*Will reserve 1ch to 4ch for music performance.
[/spoiler]

Mentlegen

Phantoons and Metroids (Ghosts and Goblins)
brand new custom music for your SM needs!

[spoiler]
Coming soon
video:

https://www.youtube.com/watch?v=e0mxKP3FsB8[/spoiler]

SUPERMETROIDFTP

GBA Metroid Zero Mission - Kraid's Lair
Attached file list :Ver2018/04/27
[spoiler]
[/spoiler]

Note
[spoiler]

  • Will reserve 1ch to 6ch for music performance.
  • When 8ch to 6ch is performed for sound effects, 6ch percussion will be silent.
  • Please refrain from Power-Bomb and Screw-Attack scenes.
  • I used the Echo[S05-S08] switch change technique. However, due to its side effects, it was impossible to solve the problem of conspicuous noise entering. :cry:
[/spoiler]

SUPERMETROIDFTP

Let it snow - Xmas song
Attached file list :Ver2019/03/05 (*The length of the song is two minutes)
[spoiler][/spoiler]

Note
[spoiler]

  • Will reserve 1ch to 5ch for music performance.
  • When 8ch to 5ch is performed for sound effects, 5ch Ice-bell will be silent.
  • Please refrain from Power-Bomb and scenes.
  • I used Echo[S05-S08]-volume-slide as a technique. As a side effect, there is a possibility that noise may occur while using Power-Bomb.
[/spoiler]

SUPERMETROIDFTP

Metroid Prime2 Echoes - Hydro Dynamo
Attached file list :Ver2018/06/29
[spoiler]

  • Metroid_Prime2_Echoes_-_Hydro_Dynamo.it  :Source file optimized for mITroid-v0.99.4
  • Metroid_Prime2_Echoes_-_Hydro_Dynamo.nspc :N-SPC Custom Music
  • Metroid_Prime2_Echoes_-_Hydro_Dynamo.spc :SNES SPC700 players
[/spoiler]

Note
[spoiler]

  • Will reserve 1ch to 5ch for music performance.
  • When 8ch to 5ch is performed for sound effects, 5ch will be silent.
  • Please refrain from Power-Bomb and scenes.

  • Regarding music performance quality, I realized that this is the limit unless the mITroid-v0.99.4 function was enhanced. Flexibility of Echo FIR filter is narrow, OpenMPT Order List is usually volume fade out, so underwater-like-atmosphere is difficult. It was not possible to avoid the freeze bug at the time of "combination of plural effects", and it was necessary to lower expressive power. Especially by restricting it to a maximum of 5ch, it gave rigorous results to expression power. However, even if it is restricted to 5ch, it competes with 5ch of powerbom reservation 8ch to 5ch and mutes. From that, I believe that reducing "number of reservations" consumed more often by sound effect melodies will have mutually good results.
[/spoiler]

albert v.

Quote from: SUPERMETROIDFTP on March 06, 2019, 04:25:11 PM
Metroid Prime2 Echoes - Hydro Dynamo

Attached file list :Ver2018/06/29

  • Metroid_Prime2_Echoes_-_Hydro_Dynamo.it  :Source file optimized for mITroid-v0.99.4
  • Metroid_Prime2_Echoes_-_Hydro_Dynamo.nspc :N-SPC Custom Music
  • Metroid_Prime2_Echoes_-_Hydro_Dynamo.spc :SNES SPC700 players

Note

  • Will reserve 1ch to 5ch for music performance.
  • When 8ch to 5ch is performed for sound effects, 5ch will be silent.
  • Please refrain from Power-Bomb and scenes.

  • Regarding music performance quality, I realized that this is the limit unless the mITroid-v0.99.4 function was enhanced. Flexibility of Echo FIR filter is narrow, OpenMPT Order List is usually volume fade out, so underwater-like-atmosphere is difficult. It was not possible to avoid the freeze bug at the time of "combination of plural effects", and it was necessary to lower expressive power. Especially by restricting it to a maximum of 5ch, it gave rigorous results to expression power. However, even if it is restricted to 5ch, it competes with 5ch of powerbom reservation 8ch to 5ch and mutes. From that, I believe that reducing "number of reservations" consumed more often by sound effect melodies will have mutually good results.

This is one of the songs i've been trying to make or get from long ago! ohh my gosh it's amazing! will you mind if i use your .it file and change some intruments so i can try to make a different version? am so obsessed to have this song on my new underwater brinstar area for an upcoming update of my hack!

SUPERMETROIDFTP

Quote from: albert v. on March 07, 2019, 05:51:55 PM
This is one of the songs i've been trying to make or get from long ago! ohh my gosh it's amazing!
Thank you for your interest :)

Quote from: albert v. on March 07, 2019, 05:51:55 PM
Will you mind if i use your .it file and change some intruments so i can try to make a different version? am so obsessed to have this song on my new underwater brinstar area for an upcoming update of my hack!
You can edit and distribute .IT files freely. Musical instrument change is very difficult because various factors are intertwined, please do your best! :)
*(By the way, I enclose the .IT file every time because "enemy instruments" are necessary in some cases. )

SUPERMETROIDFTP

Undertale - Nyeh Heh Heh

Attached file list :Ver2019/03/16
[spoiler]

  • The etecoon voice waveform from Brinstar is included.
    Created exclusively for the etecoon room.
[/spoiler]

Note
[spoiler]

  • Will reserve 1ch to 5ch[moment 6ch] for music performance.
  • When 8ch to 5ch is performed for sound effects, 5ch will be silent.
  • Please refrain from Power-Bomb and scenes.
[/spoiler]

Charmander106

Here are four assembly patches from me.

- Direct Scroll PLM Enhanced -
This patch is to make this it's own PLM by using the space in the unused Solid Scroll PLM code. This is if you want both the regular Scroll PLM plus the Direct Scroll PLM. This also means we don't use any freespace!
Original code by Moody Blues.

Revision #1: There was an issue with the PLM using solid tiles, it has been fixed now. If you downloaded the patch before the fix, just apply the fixed ASM file. [Download Revision #1]

- Disable Pause in Boss Room -
This patch is to disable going into the pause menus when inside a boss room. This is useful if you want an challenge but also to hide the buggy pause menus if you are using DC's Map Patch.

- Long Beam Enhanced -
This patch is to make applying JAM's Long Beam item more streamlined. This includes a separate patch to make this compatible with DC's Map Patch.

- Unrestricted Torizo -
This patch is to modify the Torizo code to check for a particular BTS in the room instead of checking the region, to have more control where we want to use Torizo.

Credit to PJBoy for his disassembly. Happy hacking!