Name: | Separate Luigi Graphics v3 |
Authors: | Bensalot, DiscoTheBat, Smallhacker |
Added: | |
Version History: | View |
Tool: | Asar |
Requires Free Space: | Yes |
Bug Fix: | No |
Featured: | No |
Description: | This is the Smallhacker's "Separate Luigi Graphics" patch. Luigi's graphics are changed to be different from Mario, just like in Super Mario All-Stars + World. Unlike version 2.1, this one relies on hijack $A1DA to change graphics every frame so you can change the player graphics without resetting the game. This patch also allows more than two player graphics, see the README for a tutorial on how to do this. Now updated for Asar, which will find freespace automatically for the patch AND the Mario & Luigi graphics. Added SA-1 support and fixed an issue where the separate graphics would not change after a game over or if you are starting the game as Luigi. |
Tags: | graphics lorom luigi mario player sa-1 |
Comments: | 69 (jump to comments) |
Download
27.96 KiB | 2,158 downloads
Comments (69)
luigi.asm:24: warning: (Wfeature_deprecated): DEPRECATION NOTIFICATION: Feature "header" is deprecated and will be REMOVED in the future. Please update your code to conform to newer styles. Suggested work around: Remove command, unnecessary... [header] One or more warnings were detected while assembling the patch. Do you want insert the patch anyway? (Default: yes)
When trying to play the rom, it freezes at the Nintendo logo.
Just open the ASM file in Notepad and remove the "header" command.
How would I do that?
You can insert separate Luigi blushing sprites by editing the "Replacement GFX files for Luigi" section in Luigi.asm.
Garatchten, to help clarify smwln's comment, in order to change Luigi's extended tiles (GFX00.bin), Small Luigi's blushing tiles (GFX22.bin), or Super Luigi's blushing tiles (GFX24.bin) you need to look at this section right at the top of luigi.asm:
Notice those
So what's happening by default without editing any code in this patch is that Vanilla SMW Mario's blush tiles are being drawn overtop of whatever graphics you're using for Luigi, resulting in the "scuffed" graphics.
If you'd like to use different graphics for Luigi's GFX00, GFX22, or GFX24 you need to change the
1) Make copies of GFX22.bin and GFX24.bin
2) Rename those copied .bin files to something like "ExGFX80.bin" and "ExGFX81.bin" respectively
3) Open your newly named files and alter Vanilla SMW Mario's blushing tiles to look how you want for Luigi
4) Make sure you insert your new ExGFX files into your ROM via Lunar Magic
5) Inside luigi.asm edit the "; Replacement GFX files for Luigi" lines to something like this:
6) Apply the patch with Asar and you should now have Luigi using tiles for his blush that work for you! You can do the same thing for Luigi's GFX00.bin slot.
One problem I am running into tho is that if you are playing as Luigi in a level that uses Super GFX Bypass, the default 00, 22, and 24 GFX.bin files will be used instead of the ones you change in luigi.asm. So if you want your Luigi extended, small blush, or super blush graphics to look right for P2 you apparently have to have them in a level that does not use Super GFX Bypass (unless there's a way to fix that, any help there would be incredibly welcome!)
I hope this helps folks. I was having trouble with this for a few days and finally figured it out! (except for the Super GFX Bypass problem)
You can insert separate Luigi blushing sprites by editing the "Replacement GFX files for Luigi" section in Luigi.asm.
does anyone know how to fix or avoid.
they've always worked before, why this just now man?
It's fine now, someway i did.
does anyone know how to fix or avoid.
they've always worked before, why this just now man?
Note that the readme includes instructions to add a third set of additional player graphics and beyond, which for the most part works as expected. What the patch is not set up for, is installing additional sets of extended tiles to go with these new graphics. You have GFX00, 22, and 24 to use for Mario, and three corresponding replacement files to share between all characters who are not Mario. Also note that this update does not change the readme from v2.2.
Tested with Asar 1.71, Lunar Magic 3.21, SA-1 1.32, SA-1 1.40, Snes9x 1.59.2, BSNES 0.6.9.
...Or is just similar in mechanics, just working very differently from other coding?
Second, why can’t I use this with 32x32 player graphics?
Cause... the patches hate each other
Second, why can’t I use this with 32x32 player graphics?
Way to fix this?
File Type .smc
Emulator. SNES9X
I'm having the same problem as Pigeon Lord, except I have a 4MB Rom with SMB:TLL-styled Choose Player Patch installed, and I'm hearing sounds playing at the black screen.
File Type .smc
Emulator. SNES9X
Just starting but I believe you need to expand the ROM size in File > Expand ROM > Expand ROM to 4MB
AFAIK you should be patching with an unheadered ROM while using ASAR. That is to say remove the ROM's Header and try again.
@Sylvenight_alt_alt
I don't think so. The 32x32 is broken with 2 *patches. I'd expect the same for this one too.
*DKCR Status Bar
*Custom Mario Palette
Emulator : ZSNES.
Or am just using the wrong RAM address?
if read1($00FFD5) == $23
sa1rom
endif
; Mario and Luigi graphics are stored separately in the files
; "Mario.bin" and "Luigi.bin". The graphics in GFX32 are no longer used.
; Make sure "Mario.bin" or "Luigi.bin" are around 24 KB in size,
; the same size as GFX32.bin, to avoid taking up freespace.
; The hack must have been edited by Lunar Magic before applying this patch.
; If you haven't used Lunar Magic, open your ROM, extract GFX, insert GFX
; and save a level.
; MUST BE AN UNUSED RAM ADDRESS
; (Default address: "Unused" part of stack)
!currentGfx = $7E010F
; Replacement GFX files for Luigi
!gfx00Luigi = #$00 ; Extended tiles
!gfx22Luigi = #$22 ; Blushing graphics (Small)
!gfx24Luigi = #$24 ; Blushing graphics (Super)
org $00AA6B
autoclean JSL Gfx
org $049DD6
autoclean JSL SwitchPlayer
org $00B8A4
autoclean JSL Load1st
RTS
org $009AA4
autoclean JSL Title
org $00A99B
autoclean JSL Setup
org $00A1DA
autoclean JML Select
freecode
prot MarioGfx,LuigiGfx
Select:
JSR Change ;\ Don't change this, it will upload the graphics every frame.
JSR Upload ;/ Scroll Down to see the Change:
LDA $7426 ;\
BEQ Select2 ;| Restore Codes
JML $00A1DF ;|
;|
Select2: ;|
JML $00A1E4 ;/
SwitchPlayer:
STA $6DB3
TAX
JSR Change
JSR Upload
RTL
Setup:
LDA #$FF
STA !currentGfx
LDA #$03
STA $0F
RTL
Load1st:
SEP #$30
JSR Change
JSR Upload
RTL
Title:
JSR Change
JSR Upload
JML $04F675
Change:
LDA $6DB3 ;\
CMP #$00 ;| See this? You can change this to whatever you want.
BEQ Mario ;|
;|
LDA $6DB3 ;|
CMP #$01 ;|
BEQ Luigi ;/
RTS
Luigi:
LDA.b #LuigiGfx
STA $4302
LDA.b #LuigiGfx>>8
STA $4303
LDA.b #LuigiGfx>>16
STA $4304
LDA #$01
RTS
;BRA Upload
Mario:
LDA.b #MarioGfx
STA $4302
LDA.b #MarioGfx>>8
STA $4303
LDA.b #MarioGfx>>16
LDA.b #MarioGfx>>16
STA $4304
LDA #$00
RTS
Upload:
CMP !currentGfx
BEQ Return
STA !currentGfx
LDA #$00
STA $4305
LDA #$5D
STA $4306
LDA #$00
STA $2181
LDA #$20
STA $2182
LDA #$7E
STA $2183
LDA #$80
STA $4301
LDA #$00
STA $4300
LDA #$01
STA $420B
Return:
RTS
Gfx:
LDA !currentGfx
CMP #$01
BNE GfxGo
CPY #$00
BEQ Gfx00
CPY #$22
BEQ Gfx22
CPY #$24
BEQ Gfx24
GfxGo:
if read3($0FF160) == $FFFFFF
JML $00BA28
else
JML $0FF160
endif
Gfx00:
LDY !gfx00Luigi
BRA GfxGo
Gfx22:
LDY !gfx22Luigi
BRA GfxGo
Gfx24:
LDY !gfx24Luigi
BRA GfxGo
; Point these to the start of two empty banks
freecode align
MarioGfx:
incbin Mario.bin
freecode align
LuigiGfx:
incbin Luigi.bin
I like this patch but I need to make it compatible with SA-1
; Replacement GFX files for Luigi
!gfx00Luigi = #$00 ; Extended tiles
!gfx22Luigi = #$22 ; Blushing graphics (Small)
!gfx24Luigi = #$24 ; Blushing graphics (Super)
Luigi.bin only applies to GFX32.
Edit: Figured it out! You have to use ExGFX. For example, copy GFX00, change it to the Luigi version, rename it ExGFX80, insert it into the ROM, change "!gfx00Luigi = #$00" to "!gfx00Luigi = #$80" in the patch, then apply the patch.
Edit: I fixed this, make sure you are using the right type of rom.