Tools, Tutorials & Resources Various tools to help you develop your hacks can be found here.

TrollandToad.com
Reply
 
Thread Tools
  #1    
Old August 8th, 2010 (11:30 AM). Edited August 10th, 2010 by rstar095.
rstar095's Avatar
rstar095 rstar095 is offline
Baby Seal Clubber
     
    Join Date: Jul 2008
    Location: NewFoundland
    Gender: Male
    Nature: Serious
    Posts: 24
    I havent seen much mention of SMW hacking in this forum(probably because its a pokemon one) but Im bored and feel like sharing my knowledge.
    Here is what you need
    SNES Super mario World ROM.
    Lunar Magic
    Lunar Magic is a very powerful tool and is almost all you need to make a good hack. It can be found at Smwcentral.net with many other usefull tools, gfx, sprites, and hacks.

    Lets begin with the Basics:
    OPENING YOUR ROM
    Spoiler:
    like any other hacking program, you go to file>open ROM


    Keyboard Buttons
    Spoiler:
    Some Basic keys are
    Page Up/Down = Level Select
    Left Click = Select an Object and move it
    Right Click = Duplicate or Add Sprite/Object
    CTRL+ DELETE = Delete All Data on Level
    CTRL+S = Save


    LAYERS AND SPRITES
    Spoiler:

    There are 3 layers to choose from. The left one is the layer 1 foreground which is used the most. The middle is layer 2 foreground which is a lttle more complicated. The last one is the sprite layer which is used for, well, sprites.


    ADDING SPRITES/FOREGROUND
    Spoiler:

    The Next 2 are the buttons for adding objects. The left one is the foreground.From there you can select an object and right click on the map to place it. Hover over it for a description. To change the size move the sides like stretching out a window.

    Next is the Sprite window. Open it. Its basically the same except you can't stretch it out, also make sure you have the sprite layer button clicked.


    Foreground Sections
    Spoiler:

    If you haven't noticed yet, there is a drop down menu in the foreground box. The second one is Tileset Specific objects. These will only work if a certain tileset is set for the stage. Well they will still work but the graphics will be messed up.

    The Next one is Exteneded Objects Which are like tileset specific buthas some regular ones too. The last one and the more advanced one is the Map16 tiles. I will go on to explain it later in a diffrent section.


    SPRITE SECTIONS
    Spoiler:


    The second one is tileset specific which is the same as foreground. The third one is Special Commands and Generators.
    These are used for displaying messages, level scrolling, continuous bullet bills, flying fish, etc.

    And The last one is used with Sprite Tool and is a diffrent and seperate tool.


    PALETTES
    Spoiler:

    The Picture Explains most of it

    And you can end up with something like this. You may also notice that the backround is a little messed up. Thats because the pallette wasn't made to be used for that stage so you have to mess around with the colors a bit.


    CHANGING BACKGROUND
    Spoiler:
    Coming Soon!


    SCREEN EXITS
    Spoiler:


    Not as easy as the others. Well, each level has a certain amount of screen exits all the same size. Screen exits are the place the pipe or door will take you when you go through it. You can have one place that it will take you to per screen. They will take you to the levels entrance by default or the secondary entrance(explained later) Click on the blue door button to view the screen exits.

    To change the screen exits, click on the indicated button. Next select the screen exit you want to change. Then on the box right below it choose the level it will take you to. Once you choose one it will light up blue(the screen exit.)


    Next, when your adding the pipe, make sure its exit enables and inside the screen exit.



    SECONDARY EXITS
    Spoiler:
    Coming Soon!


    MUSIC AND TIME
    Spoiler:


    Again, not very Complicated, click bypass time limit, and change it, for music just choose one from the scroll down box.


    IN DEPTH SPRITES
    Spoiler:
    Coming Soon!


    IN DEPTH FOREGROUND
    Spoiler:
    Coming Soon!


    OVERWORLD
    Spoiler:
    Coming Soon!


    GRAPHIC EDITING
    Spoiler:
    Coming Soon!


    MAP16
    Spoiler:
    Guess what.
    Spoiler:
    Coming soon


    Block Tool
    Spoiler:
    Coming Soon!


    Sprite Tool
    Spoiler:
    Coming Soon!


    MUSIC INSERTION
    Spoiler:
    Coming Soon!



    TIPS
    Spoiler:
    http://www.smwcentral.net/?p=showhack&id=4013
    This game teaches you some donts in hacking. I didnt make it.



    What You Can End up With
    Spoiler:

    I cant figure this youtube stuff out

    Beginner


    Intermidiate


    Advanced


    Only if your some ASM genius










    Spoiler:
    Spoiler:
    Spoiler:
    Spoiler:
    Spoiler:
    Spoiler:
    Spoiler:
    Spoiler:
    Spoiler:
    Spoiler:
    Spoiler:
    Spoiler:
    Spoiler:
    Spoiler:
    Spoiler:
    Spoiler:
    Spoiler:
    NOTHING HERE
    __________________
    This signature has been disabled.
    Too tall
    Please review and fix the issues by reading the signature rules.

    You must edit it to meet the limits set by the rules before you may remove the [sig-reason] code from your signature. Removing this tag will re-enable it.

    Do not remove the tag until you fix the issues in your signature. You may be infracted for removing this tag if you do not fix the specified issues. Do not use this tag for decoration purposes.
    Reply With Quote

    Relevant Advertising!

      #2    
    Old August 9th, 2010 (7:26 PM).
    Incineroar's Avatar
    Incineroar Incineroar is online now
    the spirit of the fighter
    • Moderator
    • Platinum Tier
    • Developer
     
    Join Date: May 2009
    Location: Iki Town
    Age: 22
    Gender: Male
    Nature: Brave
    Posts: 13,573
    OMG. This is the first SMW Tutorial I HAVE EVER SEEN on this site. Looking forward to the updates!
    __________________
    Reply With Quote
      #3    
    Old August 11th, 2010 (5:12 AM).
    omegazeroINFI's Avatar
    omegazeroINFI omegazeroINFI is offline
       
      Join Date: Sep 2009
      Gender: Male
      Posts: 19
      you should try to use block tool super deluxe rather then block tool, btsd is alot better.
      if you need help on the music bit, i can help out there
      __________________
      私は救世主午前!HAHAHAHA...

      i need some scripthelp, music help, and some images editing help. because one. i have vista. two. dont have photoshop and gimp doesnt seem to work.
      three. because i got imagination. four. i can do pretty much everything else cept pallette editing.
      Reply With Quote
        #4    
      Old August 11th, 2010 (10:33 AM).
      rstar095's Avatar
      rstar095 rstar095 is offline
      Baby Seal Clubber
         
        Join Date: Jul 2008
        Location: NewFoundland
        Gender: Male
        Nature: Serious
        Posts: 24
        Thanks, I havent used block tool super deluxe yet, I haven't been doing much with smw lately, and i already know how to add music, I just need to add it to the tut, which I can't get to right now. I'll probably update it evry 2-3 days untill I have almost everything you need to know excluding asm and hex
        __________________
        This signature has been disabled.
        Too tall
        Please review and fix the issues by reading the signature rules.

        You must edit it to meet the limits set by the rules before you may remove the [sig-reason] code from your signature. Removing this tag will re-enable it.

        Do not remove the tag until you fix the issues in your signature. You may be infracted for removing this tag if you do not fix the specified issues. Do not use this tag for decoration purposes.
        Reply With Quote
          #5    
        Old August 11th, 2010 (12:28 PM).
        Incineroar's Avatar
        Incineroar Incineroar is online now
        the spirit of the fighter
        • Moderator
        • Platinum Tier
        • Developer
         
        Join Date: May 2009
        Location: Iki Town
        Age: 22
        Gender: Male
        Nature: Brave
        Posts: 13,573
        I hope the music can be converted from MIDI format. I love doing midi music!!! :D I can't wait now!
        __________________
        Reply With Quote
          #6    
        Old August 11th, 2010 (6:11 PM).
        rstar095's Avatar
        rstar095 rstar095 is offline
        Baby Seal Clubber
           
          Join Date: Jul 2008
          Location: NewFoundland
          Gender: Male
          Nature: Serious
          Posts: 24
          ya m pretty sure its still commonly used to insert the music
          __________________
          This signature has been disabled.
          Too tall
          Please review and fix the issues by reading the signature rules.

          You must edit it to meet the limits set by the rules before you may remove the [sig-reason] code from your signature. Removing this tag will re-enable it.

          Do not remove the tag until you fix the issues in your signature. You may be infracted for removing this tag if you do not fix the specified issues. Do not use this tag for decoration purposes.
          Reply With Quote
            #7    
          Old August 12th, 2010 (2:31 PM).
          omegazeroINFI's Avatar
          omegazeroINFI omegazeroINFI is offline
             
            Join Date: Sep 2009
            Gender: Male
            Posts: 19
            midis arent required when adding music, you can write it from scratch in a txt as well as use tinymm to convert a format 0 midi to an mml which you have to get fixed up, the syntax it throws out is not recognized in addmusic, the squares and channel 1 to whatever shouldnt be there, its specified most commonly like this for a channel header
            #0 @0 q7f w255 v255 y10 t45.
            the channel number s specified with a # and the number 0-7, the instruments are specified @0-29, this gives you 28 instruments total, 19 and 20 i think are the 2 that crash the game, either those 2 or its 20 and 21, the q7f isnt required and can be removed, same with either the w255 or v255, if you get rid of the w255, you can specify vwhatever to all the channels, a major limitation i like better then the pokemon limitations is you only get 8 channels. pokemon probably gives you more, never got it to work, and channels #4, #6, #7 all use sfx, so sfx has priority over music making the song cutout till the sfx is done, i have written a basic music tutorial that can easily be improved if i had a bigger screen to take screenshots with.
            http://s1.zetaboards.com/SMW_Archives/topic/3554146/1/#new
            you can read up on more in that thread.
            im not the best at music porting, but i definitely have alot off the top of my head here,

            now for a suggestion, hex isnt that hard, it goes on a base of 16 digits rather then the normal 10,
            1=1
            2=2
            3=3
            4=4
            5=5
            6=6
            7=7
            8=8
            9=9
            A=10
            B=11
            C=12
            D=13
            E=14
            F=15

            and 65c816 asm i suppose can be complicated, but try to mention a little bit of asm like making a block.

            using block tool super deluxe's format, which has the ability to add 3 extra offsets.

            db $42
            JMP MarioBelow : JMP MarioAbove : JMP MarioSide : JMP SpriteV : JMP SpriteH : JMP MarioCape : JMP MarioFireBall : JMP Corners : JMP MarioHeadIn : JMP MarioBodyIn

            MarioBelow:
            MarioAbove:
            MarioSide:
            SpriteV:
            SpriteH:
            MarioCape:
            MarioFireBall:
            Corners:
            MarioHeadIn:
            MarioBodyIn:
            RTL


            you can use http://www.smwcentral.net/?p=map&type=ram for ram address's to load and store to using
            LDA= load accumulator and STA store accumulator,

            a simple example would be to make mario big using these 2 lines of code.

            LDA #$01
            STA $19

            the ram address is 7e0019 and since 7e00 is assumed, you can either not use long addressing and cut out the 7e00 or just the 7e, up to you.

            ram addresses like 0DC2, 7e is assumed,

            a side note, ram addresses with flags, load value #$01 or STZ(store zero) to the flag ram address, its a no or yes question.
            LDA #$01 ;always use 2 digits for the value you pick,
            STA $13CE;if your storing zero, you can always do the below

            STZ $13CE ; feel free to change this ram address
            ;to whatever, you can load and store anything

            theres other important commands like
            CMP or BEQ, BNE
            compare branch if equal branch if not equal, when branching, you make a label for it like this

            BEQ label
            RTS
            label:
            RTL
            you use a word i guess sorta like a pokemon script, add a colon on the label, write code under it, your good to go.

            one more note, blocktool uses rts to end a code and btsd uses rtl to end a code
            both return from a subroutine and the rtl returns form a long subroutine, btsd completely obselete block tool at this point.

            generators i guess are the blocks version of sprites, if you can code a block, you can code a generator with not much else knowledge.

            dcb "INIT"
            RTL
            dcb "MAIN"
            RTL

            this is the build for a sprite that hasnt been coded yet in TRASM, xkas is better, but i currently dont know much about making xkas sprites let alone patches.

            generators have their code run every frame, so the init routine is left alone
            dcb "INIT"
            RTL
            dcb "MAIN"
            STZ $19
            RTL

            with this code, if you insert as a generator after of course making the config file, just take one form an existing generator, open it in note pad and change the whatever.asm to the name of your asm generator sprite.
            the init is run once while main is run every frame, if a generator is run every frame, i bet you dont see a reason to add anything to the init routine which you must always have anyway.

            LDA has an x and y counter part. same with sta and cmp
            LDX CPX STX same with y, theres also the stack were you push it onto a stack and pull it later like

            LDA #$01 load value 1
            PHA push to stack
            LDX #$02 load value 2 to x reguster
            STX $19 store to ram 19 to make mario have a cape
            PLA pull value 1 out back to the accumulator
            STA $19 store to 19 making mario big.

            i could go on for a little, but this isnt my thing to post about, its yours.
            __________________
            私は救世主午前!HAHAHAHA...

            i need some scripthelp, music help, and some images editing help. because one. i have vista. two. dont have photoshop and gimp doesnt seem to work.
            three. because i got imagination. four. i can do pretty much everything else cept pallette editing.
            Reply With Quote
            Reply

            Quick Reply

            Join the conversation!

            Create an account to post a reply in this thread, participate in other discussions, and more!

            Create a PokéCommunity Account

            Sponsored Links
            Thread Tools

            Posting Rules
            You may not post new threads
            You may not post replies
            You may not post attachments
            You may not edit your posts

            BB code is On
            Smilies are On
            [IMG] code is On
            HTML code is Off

            Forum Jump


            All times are GMT -8. The time now is 10:09 AM.