Language…
9 users online: CKJ1983,  Fyre150, h.carrell,  Hooded Edge, PermaBan,  Saphros, The Star Treker, WONIU, X11Gbyte - Guests: 82 - Bots: 230
Users: 66,534 (2,382 active)
Latest user: amyysucks

Posts by Hayashi Neru

Hayashi Neru's Profile → Posts

Name: Layer 3 Tide Current Adjuster
Description: This patch enables you to adjust the direction in which the Layer 3 water tides are going on the fly, by using one free RAM address. Some default speed values can be adjusted inside the patch, too.
This patch need update. Because it isn't compatible SA-1 and Asar.
Originally posted by jeffythedragonslayer
How did you come up with the number 2041?


255(At 8bpp, a palette has 255 colors, excluding transparency.) × 8(Palettes) + 1(Transparent)
This is a really great patch! Now I can create the big overworld I've only imagined.
I'm not ready to submit this yet. If I get a chance, I'll submit these to the Graphics section.

Super Mario Bros. 2 Cloud.


Horizontal version. But it is 1024×512. It needs UberASM code.



Vertical version. But it is 1024×1024. It needs UberASM code.

Super Mario Bros. 3 Desert


Super Mario Bros. 3 Forest


Super Mario Bros. 3 Fortress


Super Mario Bros. 3 Underwater


Super Mario World 2: Yoshi's Island Fortress.

This appeared in 〈SA-1: Special Adventure-1〉. but it has now been slightly modified.


1024×1024 version
Question: Does this patch support 255 levels and 255 events? In Luna Magic, press Alt+Shift+Ctrl+F8 to activate more levels and events.
I suggest a few features:


What if there was an option to change the tile size of layer 3 to 16×16? This will create a layer 3 background with a size of 1024×1024.


I wish there was a feature to not ignore the first column when saving or loading a palette. This feature is not useful in normally level. However, It needs when level used Mode 3, 4, and 7.
(restricted)
For example, if $1869|!addr set as #$28, the HDMA window grows to the same size as the message box in the center of the screen. As this value decreases, the window gets smaller, and when it reaches #$00, it disappears.


This is an ASM file that mimics a message box. But this is spaghetti code.
Code
Freeze:
	LDA #$01		;\
	STA $9D			;/Freezing sprites and animated tiles
	LDA #$01		;\
	STA $13FB|!addr		;/Freezing player
	LDA #$01		;
	STA $13D3|!addr		;Disable Pause

This is the code I used. However, this cannot stop Yoshi's tongue, and if player press X or Y in this state, Yoshi's tongue will come out when the game unfreezes.
p.s. In this code, it must not disable X or Y.
I made Pseudo message box with UberASM. it isn't load tilemap to Layer 3. However, this is buggy, and the code doesn't seem clean.
Pseudo Message Box.zip

This is not a screenshot, I drew with GraphicsGale. I imagined a patch like this and drew this:

This patch like as Multicolored Message Box, Message Box Select Choice, Slow Message Box, Message Box Expansion and Inline Layer 3 Messages patchs merged. And it supports both regular-sized and expanded message boxes.

Messages can be displayed not only on Layer 3, but also on Layer 1 or Layer 2 or Layer 4(If using Mode 0). and it isn't hijack original message boxes.

If I get the chance, I'd like to make this patch(or UberASM), but I'm not sure if it's possible.
Originally posted by TheXander
Maybe to improve best the code:

Code
Freeze:
        LDA #$0B
        STA $71 ;> Lock controller (probably?)
	INC $9D ;> Freezing sprites and animated tiles
	INC $13FB|!addr ;> Freezing player
	INC $13D3|!addr ;> Disable Pause


Test it and tell me if it worked... i don't know how you're using this code.


Good. But this too has problems.
1. If the player presses X or Y just before this code runs, Yoshi's tongue isn't freeze.
2. X/Y buttons are locked. In my work, the game should be paused, but X and Y should not be disabled.
Originally posted by TheXander
This is weird, maybe the Yoshi flag is interfering?

Have you tried figure nuke the Yoshi riding flags and them, increase thoses again when unfreeze? like:

STZ $187A|!addr
STZ $0DC1|!addr

Also, if you can please, send here the entire code file? To see it and understand better what needs the code for help you avoid this bug, thanks in advance.


Pseudo Message Box.asm
This is my work. It is mimics SMW's message box.
This is the code I wrote before. it work fine as intended.
Code
WindowingControl:
	LDY #$00
	LDX #$00
.loop01
	CPY !BoxYendRam
	BEQ .Draw01

	CPY !BoxYendRam
	BPL .NotDraw01

	CPY !BoxYstartRam
	BPL .Draw01

.NotDraw01
	LDA #$FF
	STA !WindowingRam,x
	LDA #$00
	STA !WindowingRam+1,x
	JMP .Skip01

.Draw01
	LDA !BoxXstartRam
	STA !WindowingRam,x
	LDA !BoxXendRam
	STA !WindowingRam+1,x
	JMP .Skip01

.Skip01
	INX #$02
	INY #$01
	CPY #$70
	BNE .loop01

	LDX #$00
.loop02
	CPY !BoxYendRam
	BEQ .Draw02

	CPY !BoxYendRam
	BPL .NotDraw02

	CPY !BoxYstartRam
	BPL .Draw02

.NotDraw02
	LDA #$FF
	STA !WindowingRam+224,x
	LDA #$00
	STA !WindowingRam+225,x
	JMP .Skip02

.Draw02
	LDA !BoxXstartRam
	STA !WindowingRam+224,x
	LDA !BoxXendRam
	STA !WindowingRam+225,x
	JMP .Skip02

.Skip02
	INX #$02
	INY #$01
	CPY #$E0
	BNE .loop02

	RTS


However, I thought this was inefficient, so I changed it as follows. But this code isn't work fine.

Code
WindowingControl:
	REP #$10
	LDY #$0000 : LDX #$0000
.loop
	CPY !BoxYendRam
	BEQ .Draw

	CPY !BoxYendRam
	BPL .NotDraw

	CPY !BoxYstartRam
	BPL .Draw				;It doesn't work

.NotDraw
	LDA #$FF
	STA !WindowingRam,x

	INX

	LDA #$00
	STA !WindowingRam,x

	JMP .Skip

.Draw
	LDA !BoxXstartRam
	STA !WindowingRam,x

	INX

	LDA !BoxXendRam
	STA !WindowingRam,x

	JMP .Skip

.Skip
	INY : INX
	CPX #$01C0
	BNE .loop

	SEP #$10

	RTS