How Do You Port Sonic's Sprites From Sonic 1 to Sonic 3?

Discussion in 'Discussion & Q&A' started by Sping Bot, Aug 2, 2019.

  1. Sping Bot

    Sping Bot Newcomer Member

    Joined:
    Dec 12, 2018
    Messages:
    20
    Location:
    Ohio
    the title says everything
     
  2. Iso Kilo

    Iso Kilo Hater of all things Git Member

    Joined:
    Oct 9, 2017
    Messages:
    165
    Location:
    Small Town in BC, Canada
    Well first, choose a better game to pick sprites from because Sonic 3 is far too overused.
    Next, stop wasting forum space and go here.
     
  3. Sping Bot

    Sping Bot Newcomer Member

    Joined:
    Dec 12, 2018
    Messages:
    20
    Location:
    Ohio
    Well yeah back in the day they where used way too much so yeah you have a point

    Also you could of redirected me in a more nicer manner i understand the fact that i'm 13 and your 15 but sir please
     
    Last edited by a moderator: Aug 2, 2019
    KCEXE, Ozaleto, CHRdutch and 3 others like this.
  4. Ralakimia

    Ralakimia Pour your misery down on me Member

    Joined:
    Aug 26, 2013
    Messages:
    979
    You can use Flex 2 or SonMapEd to edit Sonic's sprites. I'd personally go with Flex 2, since it has a more user friendly UI than SonMapEd's. The usage guide for Flex 2 should be in the documentation.

    Sonic's sprite data is split up into 3 things: art, mappings, and DPLCs. The art is just that, the actual graphic tiles. Mappings use the art to arrange them into comprehensible sprites. DPLCs are used so that it can load the art into the same VRAM space. Normally, all the art is loaded into VRAM and just uses mappings to display the correct tiles. However, you cannot use DPLCs on compressed art, only uncompressed. Normally, game objects don't use too many tiles, so it's usually fine to load it all into VRAM, but Sonic simply has way too many tiles, so it needs to use DPLCs to load only the tiles that are being displayed in VRAM.

    1. Reread the title, it says from Sonic 1 to Sonic 3.
    2. I'm sorry, but I'm just sick and tired of this now, but please quit acting like a little shit with these kinds of things. Yes, this kind of question is best suited for the Basic Q&A thread, but you didn't need to have an attitude about it, and the comment on the sprites being "overused" wasn't even helpful at all and was more just you giving an opinion in a snarky way. It's just unnecessary and just makes you look like an asshole.
     
    Last edited: Aug 2, 2019
  5. Natsumi

    Natsumi Phoenix egg Member

    Joined:
    Oct 7, 2011
    Messages:
    699
    Location:
    Long and dangerous river
    Yes I have to 100% agree on it. As someone who really likes the S3K sprite style as well, to say "It's too overused" is like saying a BMW is way too popular just because its i good car, is to your liking and works well enough for your purposes. It makes no sense and not everyone can do art or steal someone elses. I would understand if its a piece of custom music or a gimmick or something but you have a choice of 3 art styles for Sonic from the original games, how can you avoid overusing them? This is such a stupid sticking point, and the attitude you show towards this person who wants to learn a difficult topic is absolutely disgraceful, especially coming from someone who is very much learning themselves and complaining how hacking is apparently so difficult. Get a fucking grip Kilo you keep doing this shit over and over again despite knowing this is not how you should act.
     
  6. StephenUK

    StephenUK Working on a Quackshot disassembly Administrator

    Joined:
    Aug 5, 2007
    Messages:
    979
    Honestly Iso Kilo, I'm on the verge of fucking you right off out of the door for the way you've been with people lately. Not only did you completely misread the actual title, but you go on to shit on them as if they're stupid to even ask. Any more of it and I'll pull the trigger, and I'm not even close to joking.
     
    Tanman Tanner, KCEXE and EMK-20218 like this.
  7. Iso Kilo

    Iso Kilo Hater of all things Git Member

    Joined:
    Oct 9, 2017
    Messages:
    165
    Location:
    Small Town in BC, Canada
    Apologies, I hadn't properly read the title. I must I've just glomped together the concepts of porting, Sonic 1, sprites and Sonic 3 into the most basic and over-asked question of "How do I port Sonic's sprites from Sonic 3 into Sonic 1" and looking back on it, I was far more blunt with my redirection. Now approaching this in a civil manner: The primary issue with this goal is that Sonic 3 has far more animations than Sonic 1. To get close to the required animations, grabbing frames from all sorts of sources would be needed. Hopefully combining Sonic 1, Sonic CD and Sonic 1 2013 can get you at least somewhere. As for actually putting this in the game, it's quite simple. I'll go through each step (Other than importing new frames)
    Tiles - These don't require any sort of conversion, Sonic 1 and Sonic 3 both use uncompressed tiles. Meaning each pixel is represented with a value from 0 to $F (Which is why each palette line has 16 colors.) To put it simply, just copy and paste Sonic's tiles over.
    Mappings - This will require Flex 2, at least with what I'm doing. I'm not going to in depth with how to use Flex 2, but I'm sure searching around will give some results. Anyways, what you'll want to do is load the file from Sonic 1 in the Sonic 1 format, and then save to the Sonic 3 file in the Sonic 3 format. This is the same for the DPLCs.
    Animation - Similar to tiles, they don't need to be converted. However, I thought I'd give a basic run through of the format. Let's take the skidding animation from Sonic 1.
    Code:
    SonAni_Stop:    dc.b 7,    $37, $38, $FF
    This might seem like a random mess of numbers, but there is meaning behind it.
    Code:
    SonAni_Stop:
    This is just the name of the entry, It can be what you want, it doesn't need to reflect the animation itself
    Code:
    dc.b
    This, well I'm not too sure myself. If I recall, it's just a reference for the assembler? Ah whatever, just make sure you have one of these at the start.
    Code:
    7,
    This is how many frames you want to happen before the sprites change. 1 meaning there's a 1 frame delay, and so on and so forth.
    Code:
    $37, $38,
    This is the frames you want to be in your animation, and in which order. Let's see what $37 and $38 are in Flex 2
    upload_2019-8-2_15-45-53.png
    As suspected, the skidding sprites.
    Code:
    $FF
    This is how the animation ends, there are a few different types. $FF is to make the animation loop forever. I won't get into detail what the others are, since you could figure them out on your own.
    There, happy, guys?
     
  8. Sping Bot

    Sping Bot Newcomer Member

    Joined:
    Dec 12, 2018
    Messages:
    20
    Location:
    Ohio
    thanks
     
  9. StephenUK

    StephenUK Working on a Quackshot disassembly Administrator

    Joined:
    Aug 5, 2007
    Messages:
    979
    I was until you finished off the post with a sarcastic tone. People have every right to call you out for your shit, and you may have noticed that more and more people are taking exception to your attitude towards people trying to learn. Maybe lay off the sarcasm and look at your own attitude towards others instead of playing the victim. You might find it will hold you in good stead for the future.
     
    Tanman Tanner, Natsumi, KCEXE and 2 others like this.
  10. Jdpense

    Jdpense Custom Title Member

    Joined:
    Jan 2, 2013
    Messages:
    67
    Location:
    No where-ville
    You guys are forgetting one important thing....before you modify Sonic 3 Sonic's sprites to Sonic 1's, Sonic's normal sprites and his super sprites should be separated, since the Super Sonic sprites are embedded in the same files of tiles, mappings, and DPLC's of Sonic's regular sprites. The data of Super Sonic's sprites in both mappings and DPLCs aren't stored in an user-friendly way in those files. While it's not necessary to separate the tiles, but the mappings and DPLCs should be in different files from each other to reduce the annoyance of dealing with compiling errors when you modify Sonic's sprites.

    But worry not! I have composed and simple mini-guide right here to fix this issue. First download these Super Sonic mappings and DPLCs that I customized right here. Extract these files from the zip and place them into the same folder of Sonic's sprites in your disassembly (Which is General\Sprites\Sonic).

    Next, open up the game's main code file, "sonic3k.asm", and scroll down to the bottom of the file where you see 'END':

    Code:
    endif
    
    END
    Add these two lines to right under 'endif' and above 'END':

    Code:
    
    PLC_SuperSonic: include "General/Sprites/Sonic/Super Sonic DPLC.asm"
    
    Map_SuperSonic: include "General/Sprites/Sonic/Super Sonic - Maps.asm"
    
    
    After that you now can safely modify Sonic 3 Sonic's sprites to Sonic 1's without dealing with the stress of errors. I hope this helps you out!

    P.S. I actually made this mini-guide years back on YouTube that you can watch here. Though this video is in crappy quality and the text is hard to read at times, so I thought it would be easier to just to elaborate my guide here since it's so short.
     
  11. Misinko

    Misinko YOU FOOLS! YOU MESSED WITH THE NATURAL ORDER! Staff

    Joined:
    Apr 30, 2013
    Messages:
    683
    Location:
    Ohio
    Alright, now that the mood has been lifted with actually helpful posts, time to bring it back down.

    I'm trying to be nice here man, but you've gotta stop the double-posting. If you wanna add on to your previous message, edit it. Don't post a new one. The two you had could've easily been condensed into one message as I did for you. Next time it's a warning point.

    Also, please refrain from one-word answers. Something along the lines of "Thanks for all the advice guys" is infinitely better than "thanks". Just something that actually adds to the discussion. Acknowledging you're going to try to implement the techniques outlined, or you're gonna try on something similar, or anything. Just make it longer than one word.

    Why? What compelled you to lay on the snark after an admin told you to check your attitude? Honestly, if Stephen hadn't said anything, you'd be sitting in time-out for the next day right now. Quit dancing on the ice and drop the awful sarcasm.
     
  12. Sping Bot

    Sping Bot Newcomer Member

    Joined:
    Dec 12, 2018
    Messages:
    20
    Location:
    Ohio
    Alright i will make sure to keep that in mind the next time I post something
     
    RyeBread and maple_t like this.