Language…
22 users online: AmazingChest,  AmperSam, anonimzwx, Blizzard Buffalo,  Eden_, elegist, Fozymandias, GRIMMKIN, h.carrell, Hiro-sofT, Maw, Mr. MS, mtheordinarygamer, NewPointless, NTI Productions, Null42, playagmes169, Snowfool948,  Thomas, Tulip Time Scholarship Games, underway,  yoshi3706 - Guests: 297 - Bots: 468
Users: 64,795 (2,373 active)
Latest user: mathew

Posts by chillyfox

chillyfox's Profile → Posts

if you want to change gfx, you should take a look at the gfx list and see what file you need to edit. in this case, the HUD character text is in gfx28
~<3
supposedly that is leftover test code from moderation, so redownload the patch and see if that quirk is gone
~<3
hello again lol

im trying to convert the Mode 7 Game Over Screen patch to sa-1 (despite the patch's tags telling you otherwise) and it works, but i ran into a problem described in the comments there. when it fades to OW/title, it shows a white strip of garbage gfx in the center of screen. here's my code, although it shouldnt be too different from the source

i was wondering if there was something i did wrong in my conversion or if sa-1 doesnt like this patch for some other reason
~<3
i recommend inserting the Floating Skull disassembly as a custom sprite. you can change the number of skulls in the asm file:
Code
!Number_Of_Skulls	= $04					; Don't set this to higher than 08

~<3
looks like you are hijacking the original SMW code found

so it's 19 bytes. using a JSL to repoint to your new code takes up 4 bytes, so in order to cancel out the rest of the original code, you need 15 NOPs. you only have 4

Originally posted by Doherty192
Code
BNE $008F3B   ; if NOT true, branch to $8F3B

be careful if the code you hijack contains branches. in this case, it jumps to the end of your JSL/RTL hijack and is an easy fix, but if you need to jump to code outside of your hijack, you need to use JMLs instead. 1 for your hijack to replace JSL and then 1 to replace each RTL in your custom code, which also requires specifying where the JMLs will go. back to the quoted code, branches actually go to labels, so you need to add a new label for this to branch properly.

you can shorten RAM address $7E0DBF to $0DBF. this image should help: http://prntscr.com/nf2v6o

with all of that said, here is what your fixed code should look like:
Code
Org $008F28		; routine to hack
autoclean JSL OurCode	; jump to our code
NOP #15

freedata

OurCode:
LDA $0DBF   ; load coin count
CMP #$32         ; does coin count equal 50?
BNE .return   ; if NOT true, branch
INC $18E4         ; if true, increase lives by 1


LDA $0DBF    ; load coin count
SEC
SBC #$32          ; decrease coins by 50
STA $0DBF    ; write decrease coins by 50
.return      ; new label to skip ahead
RTL

~<3
Originally posted by MarioFanGamer
Question: Why so complicated? There is absolutely nothing you add in this hijack so just doing a hex edit at $008F2C and $008F37 does the same thing.

i noticed too, but i prioritized teaching more about hijacking over efficiency, since they're new (and it's implied this was just a random code challenge)

to OP, this particular custom code is the exact same length as the hijack, except it's a little inefficient, since it calls a JSL and then comes back to run 15 NOPs, when you can do as MFG said and just change 2 bytes in the original code. however, i am glad to see you understand hijacking more and you will also learn more about efficiency the more you code
~<3
dolphins are tileset-specific sprites and require the Water sprite tileset #lm{gfxby} i can tell that you're using the Mushroom tileset instead, since you have both floating mines and floating platforms. if you want to use them all side-by-side, you'll have to use ExGFX #lm{sgfxby} and create a new gfx file for SP4 that has all the tiles you need (provided that none of them share the same tile numbers)
~<3
Originally posted by Doherty192
If patching can only overwrite code, how do I add code via patch if I don't want to overwrite what's in that org?

the safest way to *add* code into smw is to include the code you hijacked into your custom code, so no original code is actually lost. then add whatever you like into your custom code

you're hijacking $008F28 again and only used 14 NOPs, but you mentioned overwriting stuff, so i dont know what your ROM currently looks like

Originally posted by smwdisc.txt
Code
CODE_008F28:        AD BF 0D      LDA.W RAM_StatusCoins     ; \  
CODE_008F2B:        C9 64         CMP.B #$64                ;  |If coins<100, branch to $8F3B
here is the original code again, except your goal is to hijack as few bytes as possible, since you want to add code. this is 5 bytes, but you can see they're in 2 blocks. you want to preserve how the blocks are, since that affects how the code could be read. if you use the wrong number of NOPs, you will likely overwrite half a block and cause that code to be read incorrectly. remember that JSL takes 4 bytes regardless, so you need 1 NOP to safely hijack here

if you only want to hurt mario, i highly recommend just replacing your entire custom code with "JSL $00F5B7" instead. this will call one of many smw subroutines; this one is used to hurt mario, since the original coders know that writing out the entire hurt routine every single time they need something to hurt mario would be a drag, since a lot of things can hurt mario

so um if you want coin collecting to function normally and still hurt mario (which will occur with all ways of obtaining coins, like yoshi eating a sprite), your code should look like this:
Code
;tested on a clean lorom
Org $008F28		; routine to hack
autoclean JSL OurCode	; jump to our code
NOP

freedata

OurCode:
JSL $00F5B7 ; hurt mario subroutine
LDA $0DBF   ; \ 
CMP #$64    ; / restored code
RTL

~<3
your kill code is the exact same as smw's, so you could replace that section with "JSL $00F606" (the kill mario subroutine). you can also shorten ram address $0019 to $19. i should have shown this image earlier too: http://prntscr.com/nfjngj. if this patch is meant to go onto a clean rom, then it has an error, because you only use 14 NOPs instead of 15. i wont post the original code again, but your JSL and 14 NOPs hijack will stop in the middle of an asm block, which can sometimes crash the game. fixing your hijack in this case will solve the 99 life glitch

so i should probably distinguish what i say: the "hijack" is above the freedata part, your "custom code" is below it (which is stored by Asar into freespace elsewhere). the "hijack" overwrites smw's code and gives it new instructions to JSL to your "custom code" instead, so that original code is lost. if you want it back, then include the hijacked code you overwrote into your "custom code", so technically, you are not losing any original code at all. this is essentially "adding new code only"

you can look back at the previous code i posted as an example: all i wanted to do was call another JSL to hurt mario, but since i am hijacking original code, i needed to restore the original smw code by including it in my custom code
~<3
here is a visualization of what your hijack is doing to the original code. the total code is 19 bytes. JSL takes up 4, so you need 15 NOPs to cancel out the rest of the original code
~<3
Originally posted by Doherty192
I thought I was only replacing $8F28 to 8F2F; which is LDA to INC.

if you want to stop at $008F32, then you only need 6 NOPs. however, the rest of the original code (which subtracts 100 coins from your total) will execute as normal now, when it's usually a conditional code that only executes once you collect 100 coins. this is why i lumped that in with the 100 coins check that you've been hijacking, because it's dependent on that check

EDIT: an easy way to tell what code can be depending on is to see where branches are and where they jump to. in this case, there's a branch (BCC) that goes to just outside of the code i've been posting, so everything between that and where the branch goes is one code
~<3
i think adding 2-3 new colors for guests would be nice and you could have them be less saturated by default so they will usually mean normal members, whereas staff could stll have more color choices and also more vivid colors to distinguish themselves more
~<3
Originally posted by FPzero
enforce that staff must have saturated colors

that isnt what i meant; i see people with some colors that are barely different from the default colors already. i just meant that staff would be the only ones that could pick vivid colors. i also agree that having less variety for default users would make it easy to group them as such, but i was being hypothetical in case something did have to change.

another idea could be having another emblem for staff, kinda like how donators have their own. this way, you wouldnt rely on the color scheme to tell who's who and could have more default freedom
~<3
Originally posted by Plasmodium00
I feel like that would start becoming way too similar to speedrun.com and Twitch and so many others. There would be no uniqueness anymore.

is the fact that this is a super mario world hacking website not unique enough for you that you would say no to a small site upgrade? is that what makes it unique to you??

i really only brought it up because i've confused donators for staff multiple times already and im positive that colorblind people will as well, until they too hover over the coin icon

of course im not in charge, 'tis merely an idea from a user
~<3
Originally posted by Katerpie
How do people confuse donors with staff though?

because as referenced earlier, other places do this (and this is a curse of knowledge problem). for this site in particular, there are users with different colors, users with an emblem, and users with both, so at first glance, it would appear that those with emblems are staff and those with only simple recoloring are donators or special privilege.
the brown users have very special privilege!

~<3
Originally posted by TimYungIll
I've just started using lunar magic and for some reason when I put a Yoshi in my level it looks normal in lm but when I play the game it looks messed up. (Like two bottom halfs put together) can anyone explain what I'm doing wrong?

idk what your level looks like, but it sounds like another dynamic sprite using the same slots as yoshi, such as a baby yoshi or a lava bubble. avoid using them together if im right
~<3
im no master designer, but i personally feel that having the main clickable columns (name, preview, download) as close together as possible is the best way to avoid misclicks
~<3
Originally posted by Tob
The direct download link could perhaps be integrated into the Name - Date column or something?

name/date is a little crowded already, so a different take on this idea would be to merge Preview and Download, which also keeps links close together still. here's a quick mock-up:
http://prntscr.com/nj6zk2
...and then decide where this new column actually goes
~<3
i like the new emblems and how the more advanced staff get different ones, which makes them more easily distinguishable
~<3