Language…
5 users online: BreadEater, Bullymario, h.carrell, LocoFuzzyPants, Scruffy - Guests: 78 - Bots: 253
Users: 66,534 (2,383 active)
Latest user: amyysucks

Posts by Hayashi Neru

Hayashi Neru's Profile → Posts

Originally posted by El Cuh Fermin
Originally posted by MarioFanGamer
Replace all instances of sprite_extra_byte with extra_byte because the former define has been removed due to duplicate defines.



I will go ahead try it out, and update


Update: It still did not work :(




lx5 Powerups question mark blocks.zip

Fixed to be compatible with GPS V1.4.3. Please try again with this file.
YY-CHR can't edit Mode 3/4's 8bpp graphics. Also, Mode7's 8bpp graphic is different from the Mode 3/4's 8bpp graphics.
The method I have used so far is editing the Mode 7 8bpp graphic and convert it using bpp++ 2.1.
Name: SMB3 Elevator block
Type: Sprite/Block
Description: It is a block of size 16×32. One of ‘↑’, ‘←’, ‘→’, and ‘!’ is drawn, and when the player steps on it, a moving platform with arrows is created.
But it is not included sprites. I need PIXI compatible sprites.
I modified Mario vs. DK Switches and Blocks to be SA-1 compatible.
This code doesn't work on BSNES/Higan, it works fine on other emulators. Is there a way to get this to work in Higan/BSNES?
Code
;Act as $025

(skip)
	LDA !ManuelTrigger	;\if corresponding color not match, !ManuelTrigger = $7FC070
	CMP #$01		;|then return.
	BNE return		;/

	LDY #$01
if !ledge = 0
	LDA #$30
else
	LDA #$00
endif
	STA $1693|!addr
return:
RTL

if !ledge = 0
print "Solid if the corresponding switch is activated."
else
print "Ledge if the corresponding switch is activated."
endif


Also, LM 1.7+ Trigger Blocks has the same problem.
Originally posted by Kevin
The issue is that the Lunar Magic Exanimation trigger addresses are in bank $7F, which can't be accessed by the SA-1 cpu, and blocks run on it by default. This means that you need to invoke the SNES cpu in order to access those addresses. You can find the code to do this in PIXI's sa1def.asm.
In this case you can change the code like this:
Code
macro invoke_snes(addr)
	LDA.b #<addr>
	STA $0183
.............
	RTL

Note that the code that uses the Exanimation address needs to be moved to a JSL subroutine in order for the SNES invoke to work. In this case the value is saved to scratch ram so it can be accessed from the SA-1 cpu when it returns. The SA-1 check at the start is needed just if you want the block to be SA-1 hybrid rather than SA-1 only (otherwise the macro will likely make the game crash if used on lorom).




Is it correct to put 'macro invoke_snes(addr)' above? or Routine folder?
This will result in an error.

And additional questions:

Code
	LDA #!Manuelflag	;\set flag.
	STA !ManuelTrigger	;/

How do I change this?

This is the code in 'ButtonSwitch_Red.asm'. Here, '#$02' is replaced with '#!Manuelflag', and '!Manuelflag = $02' is written at the top.
The error means that the block cannot be inserted into the rom with GPS.

For reference, this is what happens if put the macro code in define.asm.
Code
shared.asm:73: error: (E5095): Macro 'invoke_snes' redefined.


defines.asm
Code
; Feel free to add more if you want.

incsrc powerup_defs.asm		;this ROM using lx5's custom power ups.

namespace nested on

!sa1 = 0			; SA-1 flag
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
macro assert_lm_version(version, define)
	!lm_version #= ((read1($0FF0B4)-'0')*100)+((read1($0FF0B6)-'0')*10)+(read1($0FF0B7)-'0')
	if !lm_version >= <version>
		!<define> = 1
	else
		!<define> = 0
	endif
endmacro

macro invoke_snes(addr)
	LDA.b #<addr>
	STA $0183
	LDA.b #<addr>/256
	STA $0184
	LDA.b #<addr>/65536
	STA $0185
	LDA #$D0
	STA $2209
-	LDA $018A
	BEQ -
	STZ $018A
endmacro

%assert_lm_version(257, "EXLEVEL") ; Ex level support
...........
If remove that macro, getting this error:

Code
blocks/manualtrigger/blockred.asm:25 (called from blocks/manualtrigger/blockred.asm:25): error: (E5101): Wrong number of parameters to macro. [%invoke_snes(stuff)]


Found why macro 'macro invoke_snes(...)' didn't work. It's because I made a silly mistake. The mistake was putting the macro in the 'routines' folder. If I delete the macro from that folder, it works. (Tested in Higan)
Thanks for your help.


My SMW Hack uses this block for that purpose,(Using Configurable Vanilla Muncher v1.1) but I've never seen a blue POW turn into a coin in any other hack.
However, this means that not only the graphics change, it actually turns into collectible coins.

+Add question: Is it awkward to use this graphic for this purpose?

I think these macros are needed for this patch.
If this macro existed, it would be possible to put multiple languages on a single ROM, or rename the overworld levels in different contexts.

Example(This isn't actually working code.):

%ramdata(Address, Number)
%ramdata_end()
This will only display a message when the value of the Address is equal to Number.

%ramdata_range(Address, Number, Number2)
%ramdata_range_end()
This will only display a message when the value of the Address is greater than or equal to Number1 and less than Number2.

%number_dec(Address, Bit)
Displays the value of Address as a decimal number. Bit is number of bits, $00 is 8-bit, $01 is 16-bit.

%number_hex(Address)
Displays the value of Address as a hexadecimal.

Code
	%ramdata($14AF, $00)
		db "Switch is on."
	%ramdata_end()
	%ramdata($14AF, $01)
		db "Switch is off."
	%ramdata_end()
	db $00

The content of this message differs depending on whether the On/Off switch is enabled.

Name: Customable thwomp
Type: Sprite
Description: This is a thwomp sprite. but, This behaves differently depending on the extra bit or extra byte.

Extra bit = 0 : Normal size
Extra bit = 1 : Small size(Use Thwimp's graphics)

Extra byte 1 : This value determines the direction. (00 = ↓, 01 = ↑ 02 = ←, 03 = →, 04 = ↖, 05 = ↗, 06 = ↙, 07 = ↘)
Extra byte 2 : Determine the type. (00 = Normal, 01 = Power thwomp, 02 = Mad thwomp, 03 = Mad power thwomp)
Extra byte 3 : Sets the color of the Thwomp.(00~07)
Extra byte 4 : 00 = Normal, 01 = Only works when Switch On, 02 = Only works when Switch Off
Originally posted by TheMorganah
Hello, FuSoYa.

What are the chances that, in the future, slots BG4 and BG5 can be used normally like the others? I believe it is too difficult to implement this now in full glory, right?


My guess is that if VRAM remap is possible, this might be feasible.

However, in order to activate BG5, I think that the GFX of Layer 1 and Layer 2 must be shared with the sprite GFX(Or Layer 3 GFX), or Layer 3 must be removed.

+Alternatively, there is a way to change Layer 3 to 32×32 tiles after only enabling BG4.
The title of this hack rom has not been decided yet.





and I created SMB3-style player graphics for this hack.

The source of this graphic is written in a YouTube video.
Name: SMB3 Elevator block
Type: Sprite/Block
Description: It is a block of size 16×32. One of ‘↑’, ‘←’, ‘→’, and ‘!’ is drawn, and when the player steps on it, a moving platform with arrows is created.



It included in Romi's Spritetool, but no one has converted it to PIXI.

this is not same as SMB3 Directional Platform v1.1
Originally posted by Knight of Time
I've got the elevator blocks right here (they should work fine with PIXI and GPS). If you need help with them, you can PM me here or DM me on Discord, and I'll do my best to help you out.


It works fine, but there is a bug that sometimes spawns 2 sprites.

And it need to replace ‘elevator_dir2.asm’ with ‘elevator_dir.asm’ in 「elevator_dir.cfg」 file.
Originally posted by Knight of Time
Sorry about that; I could have sworn I had taken care of that bug.

Use this instead for the sprite portion, it should have the bug fixed.


This bug is not fixed