Language…
8 users online:  Donut, h.carrell,  Hooded Edge, PermaBan,  Saphros, The Star Treker, WONIU, X11Gbyte - Guests: 73 - Bots: 228
Users: 66,534 (2,382 active)
Latest user: amyysucks

Posts by Hayashi Neru

Hayashi Neru's Profile → Posts

How can I modify this code to work with SA-1 ROM LM 3.04?
※ I checked ‘SA-1 Code’. but don't work.
※ I removed ‘.MainCode:’ and ‘.InitCode:’.

Parallax
Code
init: REP #$20 ; | LDA #$1142 ; | Use indeirect and mode 2 on register 2111 STA $4330 ; | 4330 = Mode, 4331 = Register LDA #ParallaxTable_220020132 ; | Address of HDMA table, get high and low byte STA $4332 ; | 4332 = Low-Byte of table, 4333 = High-Byte of table SEP #$20 ; | LDA.b #ParallaxTable_220020132>>16 ; | Address of HDMA table, get bank byte STA $4334 ; | 4334 = Bank-Byte of table LDA #$7F ; | Address of indirect table in RAM bank byte STA $4337 ; | 4334 = Bank-Byte of indirect table LDA #$08 ; | TSB $6D9F ; | Enable HDMA channel 3 RTL main: REP #$20 ;/ 16 bit action starts here. (To load the x position of the BG) LDA $22 ;\ Load BG x Position LSR #1 ; | Multiplied by 0.5 STA $7F9E00 ;/ Store to FreeRAM for indirect HDMA LDA $22 ;\ Load BG x Position LSR #2 ; | Multiplied by 0.25 STA $7F9E02 ;/ Store to FreeRAM for indirect HDMA LDA $22 ;\ Load BG x Position STA $7F9E04 ;/ Store to FreeRAM for indirect HDMA SEP #$20 ; Back to 8bit RTS ; Return ParallaxTable_220020132: ;\ db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E00 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $01 : dw $9E02 ; | db $00 ;/ RTL


Vertical wave
Code
init: REP #$20 ; | LDA #$1002 ; | Use Mode 02 on register 2110 STA $4330 ; | 4330 = Mode, 4331 = Register LDA #$9E00 ; | Address of HDMA table STA $4332 ; | 4332 = Low-Byte of table, 4333 = High-Byte of table SEP #$20 ; | LDA.b #$7F ; | Address of HDMA table, get bank byte STA $4334 ; | 4334 = Bank-Byte of table LDA #$08 ; | TSB $6D9F ; | Enable HDMA channel 3 RTS ;/ End HDMA setup ;The Table takes up 115 bytes of the free RAM ;It ranges from $7F9E00 - $7F9E72 (both addresses included) main: LDY #$00 ; | Y will be the loop counter. LDX #$00 ; | X the index for writing the table to the RAM LDA $13 ; | Speed of waves LSR #2 ; | Slowing down A STA $00 ;/ Save for later use. PHB : PHK : PLB ;\ Preservev bank .Loop: ; | Jump back if not finished writing table LDA #$06 ; | Set scanline height STA $7F9E00,x ; | for each wave TYA ; | Transfer Y to A, to calculate next index ADC $00 ; | Add frame counter AND #$0F ; | PHY ; | Preserve loop counter TAY ;/ Get the index in Y LDA.w .WaveTable,y ;\ Load in wave value LSR ; | Half only CLC ; | Clear Carry for addition ADC $20 ; | Add value to layer Y position (low byte) STA $7F9E01,x ; | store to HDMA table (low byte) LDA $21 ; | Get high byte of X position ADC #$00 ; | Add value to layer X position (low byte) STA $7F9E02,x ;/ store to HDMA table (high byte) PLY ;\ Pull original loop counter CPY #$25 ; | Compare if we have written enough HDMA entries. BPL .End ; | If bigger, end HDMA INX ; | Increase X, so that in the next loop, it writes the new table data... INX ; | ... at the end of the old one instead of overwritting it. INX ; | INY ; | Increase loop counter BRA .Loop ;/ Repeat loop .End: ;\ Jump here when at the end of HDMA PLB ; | Pull back data bank. LDA #$00 ; | End HDMA by writting 00... STA $7F9E03,x ; | ...at the end of the table. RTS ;/ .WaveTable: ;\ db $00 ; | db $01 ; | db $02 ; | db $03 ; | db $04 ; | db $05 ; | db $06 ; | db $07 ; | db $07 ; | db $06 ; | db $05 ; | db $04 ; | db $03 ; | db $02 ; | db $01 ; | db $00 ;/ RTS


FG Gradient
Code
init: LDA #$17 ;\ BG1, BG2, BG3, OBJ on main screen (TM) STA $212C ; | LDA #$00 ; | 0 on main screen should use windowing. (TMW) STA $212E ;/ LDA #$00 ;\ 0 on sub screen (TS) STA $212D ; | LDA #$00 ; | 0 on sub screen should use windowing. (TSW) STA $212F ;/ LDA #$37 ; BG1, BG2, BG3, OBJ, Backdrop for color math STA $40 ;/ mirror of $2131 REP #$20 LDA #$3200 STA $4330 LDA #.RedTable STA $4332 LDY.b #.RedTable>>16 STY $4334 LDA #$3200 STA $4340 LDA #.GreenTable STA $4342 LDY.b #.GreenTable>>16 STY $4344 LDA #$3200 STA $4350 LDA #.BlueTable STA $4352 LDY.b #.BlueTable>>16 STY $4354 SEP #$20 LDA #$38 TSB $6D9F RTS .RedTable: ; db $09 : db $21 ; db $7A : db $20 ; db $38 : db $21 ; db $25 : db $22 ; db $00 ; .GreenTable: ; db $0A : db $4F ; db $0D : db $4E ; db $0D : db $4D ; db $0D : db $4C ; db $0C : db $4B ; db $0D : db $4A ; db $0C : db $49 ; db $0F : db $48 ; db $25 : db $47 ; db $2A : db $46 ; db $27 : db $45 ; db $05 : db $44 ; db $00 ; .BlueTable: ; db $33 : db $91 ; db $80 : db $92 ; db $2D : db $92 ; db $00 ; RTS


Or is there something wrong?
Request Name: SMB3 Doomship Flame
Type: Sprite
Tool: Pixi
Graphics: https://www.youtube.com/watch?v=Tifs6w7Lr5Y
Description: Fire comes out. The length of the fire is determined by the extra byte, and the direction is determined by the extension.

Extra byte:
02 = Short(32px)
03 = Long (48px)
Extension :
00 = Up
01 = Down
02 = Left
03 = Right
Code
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Sprite Message Box v1.1
; - by Edit1754
; - Modified & fixed by lx5
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


	lorom
	!sa1 = 0
	!bank = $800000
	!addr = $0000

	!freeram = $7F4000

if read1($00FFD5) == $23	; Detects SA-1.
	sa1rom
	!sa1 = 1
	!bank = $000000
	!addr = $6000
	!freeram = $410000
endif

;;;;;;;;;;;;;;;;
; Defines
;;;;;;;;;;;;;;;;

	!GFXFileNumber			= $0090				; Graphics file to use
	
	!DMACh				= 0		; Might want to change this to 1 if you use the DMA Remap patch
	!HDMACh				= 7		; Might want to change this to 0 if you use the DMA Remap patch
≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈
	BCS +					; / then get out
++	INY #2					; Next dest tile candidate
	CPY.w #!TileIndicesCount*2		; \ If we haven't exhausted our possibilities (shouldn't happen generally)
	BCS +					; / then loop
	JMP -					; loop
+


	LDA #!GFXFileNumber			; \ Upload graphics file temporarily
	JSR UploadGFXFile			; / over animation ExGFX

	SEP #%00110000				; 8-bit A, X/Y
	
	LDY #$00				; \
	PHY					;  | Mirrors SMW code
	PLB					;  | Copies ------ab
	LDY #$1E				;  | from $0420-$049F
-	LDX $8475,y				;  | to abababab


As you can see, this is part of the code in Sprite Message Box v1.1.

I want to set "! GFXFileNumber" to $0090+$7FC07F. This is to use different ExGFX for each level. ($7FC07F is custom manual address.)

In other words, if $ 7FC07F is 00, it will load ExGFX 90. If $ 7FC07F is 08, it will load ExGFX 98.

However, writing "+ $ 7FC07F" after "#! GFXFileNumber" does not work.
However, 7FC07F produces an error. So I changed to 15E8. The result is success.
Name: Reflecting Superball
Type: Sprite
Tool: Pixi
Graphics: Vanilla(GFX : SP1 $00, Tile : 43D(Like spring board), Tile size : 8×8, Palette : 9(Gray))

This super ball proceeds diagonally (like Super Mario Land's Super Ball). It touches the wall and reflects, and disappears 5 seconds after being fired. If Mario gets hit, he can take damage and remove it with a cloak (like Chuck's baseball).

Similar to Reflecting Fireball, but with differences.
1. Mario can't bounce this with a spin jump.
2. Do not remove Mario's fireball.
3. Disappear by Cape.
4. It will disappear after a certain time.

Derived Sprites: Super Ball Chuck, Super Ball Bros, Super Ball Venus piranha, Super Ball Shooter


If the number of background music is 18, I want to fix the screen to the selected section. (Like JUMP hack)

※I use Multiple Songs on Main Map patch, selected section's music number is $18.

Code
main:

	LDA $1DFB|!addr
	CMP #$18
	BEQ .LockScroll01				; /
RTL

.LockScroll01

	LDA #$10				; \ Disable player 1's Start button...(This hack is no have 2 player)
	ORA $0DAA|!addr				; |
	STA $0DAA|!addr				; /


	REP #$20				; \
	LDA #$000E				; |
	STA $????(|!addr)			; | If enter $94, it will not work, $210D~$2110 is causes a problem.
	SEP #$20				; /

	REP #$20				; \
	LDA #$0137				; |
	STA $????(|!addr)			; | If enter $96, it will not work. $210D~$2110 is causes a problem.
	SEP #$20				; /


RTL


I did not find a proper address in the SMW RAM MAP.

What code should I enter in the light blue part of this code? (I know the green part.)
Request Name: Variable Width Font Cutscene Plus
Type: Tool/Sprite/UberASM
Tool: Pixi
Graphics: Secret of Evermore font
Description: Like Variable Width Font Cutscene Tool.
But this is compatible with UberASM (Pixi if this is a sprite), AddMusicK and SA-1.
It also sets the characters size is 16 × 16, 256 characters. not 12 × 16. which allows you to use multiple fonts in one cutscene.
The script is almost the same, but there are some things that have been added.
[music=*]
Change the background music as before (* is the music number) but this also works with AMK.
[sprite text=*](T,P,W)...[/sprite]
Display text as a sprite. Unlike normal text, this can represent 15 colors in one character.
T = Tile number
P = Property (YXPPCCCT)
W = Width
[font=*]
Change font
Originally posted by ExONightZ
Well, here's my request.

Request name: delete selection of players
Type: patch
Brief description: eliminates the selection of playing with 1 or 2 players
Resources: not needed
Long description: this patch will remove the selection of playing with 1 or 2 players in the game just by letting mario play in the game.


The patch already exists.
One OR two players only
Request Name: Sprite Status Bar v1.1.1 UberASM Version
Type: UberASM
Tool: UberASM Tool
Graphics:
Dynamic version : Like Sprite Status Bar patch
Non Dynamic version : Image
Description: UberASM version of the sprite status bar. This is for ROMs with patches (VWF dialogs, sprite message boxes, etc.) that are not compatible with the sprite status bar patch.
There are dynamic and non-dynamic versions, both of which allow you to set the tile number, display position, or YXPPCCCT.
When the VWF message box opens, it disappears temporarily. However, disable on settings.
Originally posted by Flamesofshadow
Originally posted by Hayashi Neru
Request Name: SMB3 Doomship Flame
Type: Sprite
Tool: Pixi
Graphics: Yes
Description: Fire comes out. The length of the fire is determined by the extra byte, and the direction is determined by the extension.

Extra byte:
02 = Short(32px)
03 = Long (48px)
Extension :
00 = Up
01 = Down
02 = Left
03 = Right



its not exactly the same, but i made some blocks for this using some graphics and frame-based damaging blocks, they go vertical up and down, and both sideways directions, you could use that if you want I would just have to gather the pieces for you, and you would need to know exanimation


I know this But despite this, there is a reason for this request. because
1. Blocks do not sound.
2. Blocks are difficult to overlap with other foregrounds or coins (though not impossible).
Request Name: 16×16 sprite moving/directional coin
Type: Patch(not sprite)
Tool: ASAR
Graphics:

Description: Fix the tile number of the moving coin(21) and Directional coin(45) graphic to E8. In this case, the EA and FA are empty, and the coin tile size is maintained at 16 × 16.
Flying red coin sprites change the tile number to A2 (smiley coin). (smiley coin).
Request Name: Custom Note Block & Custom Side bounce Block & Custom Turn Block Package
Type: Block
Tool: GPS
Graphics: Vanilla
Description:
Custom Note Block : Touching from the up or down will generate a bounce sprite, which will bounce the player. (Like 113)

Custom Side bounce Block : Touching from the side creates a bounce sprite and bounces the player. (Like 12B or SMB3 Bouncing wooden block)

Custom Note Block All side : Touching from all side creates a bounce sprite and bounces the player. (Like 116)

Custom Turn Block : When the player or sprite hits this block from the bottom, it changes to another tile(default: 0048) for a few frames (default: 255) with the bounce block, and then returns. (Like 11E)

Custom Note Block with item : Touching from the up or down will generate a bounce sprite, which will bounce the player. after the item comes out and is replaced by another tile. (default: 0113) (Like 111)

Custom Side bounce Block with item : Touching from the side creates a bounce sprite and bounces the player. after the item comes out and is replaced by another tile. (default: 012B) (Like 12A or SMB3 Bouncing wooden block)

Custom Note Block All side : Touching from all side creates a bounce sprite and bounces the player. after the item comes out and is replaced by another tile. (default: 0116)

Red Note Block : Teleports by flicking up if the player presses A or B after stepping on from above.

Killing Red Note Block : Kill player if the player presses A or B after stepping on from above.(It's safe if the player doesn't climb off the screen.)

32×32 Note Block : Same as the note block, but 32 × 32. (This link is not work in Custom bounce patch 3.3)

Invisible Custom Note Block & Invisible Turn Block : If hit on below,
custom note block / custom turn block appears.

This blocks need Custom bounce patch 3.3

(Did I make too many requests?)
Originally posted by Hayashi Neru
Request Name: 16×16 sprite moving/directional coin
Type: Patch(not sprite)
Tool: ASAR
Graphics:

Description: Fix the tile number of the moving coin(21) and Directional coin(45) graphic to E8. In this case, the EA and FA are empty, and the coin tile size is maintained at 16 × 16.
Flying red coin sprites change the tile number to A2 (smiley coin). (smiley coin).

Exit:
Code
org $01C667
	db $EA,$EA
org $029A6B
	db $EA,$EA
Name:Manualed vanilla sprites
Type:Patch
Description: Existing sprites operate differently depending on the Extra byte and Extension. This patch can be useful for those who don't want to use a lot of custom sprites.
(Maybe this proposal is very unreal.)



(I'm sorry if that request is too huge.)