Elemental Shields in Sonic 1

Discussion in 'Staff Projects' started by Clownacy, Jul 16, 2020.

  1. Clownacy

    Clownacy Well-Known Member Staff

    Joined:
    Aug 15, 2014
    Messages:
    898
    Back in 2014, I made a video showing off a hack of Sonic 1 that featured the Elemental Shields. It never had a download link, leading to a lot of miffed comments.



    After all these years, I decided to remake the hack, and start a video series showing the process of creating it.

    Now that the series has concluded, the hack is complete and ready to be released.

    As you can imagine, it's just Sonic 1 with the Elemental Shields: it has the graphics, sounds, Sonic can use the shields' abilities, the Lightning Shield attracts rings, the Bubble Shield lets you breathe underwater, the shields deflect projectiles and make you immune to fire/electric attacks, etc.

    Download link:
    http://www.sonicresearch.org/clownacy/Elemental-Shields-in-Sonic-1-v1.0.zip
     
    Last edited: Jul 18, 2020
  2. DeltaWooloo

    DeltaWooloo Hi, how are you Member

    Joined:
    Aug 7, 2019
    Messages:
    203
    Location:
    A shed
    I didn't know you had a voice. Besides that, your guides, while not user friendly in the eyes, teaches people how to port elements from one game to another. It taught me how to differentiate code between games, which is something I didn't do a lot in the past due to how inexpirenced I was at the time. Elemental shields were never seen in most Sonic 1 or Sonic 2 hacks, so it's nice you're teaching and showing people how you did it and how to find and fix bugs. Good job, Clownacy! Take my virual chocolate chip cookie.

    As for the hack, I would like to see the spindash, speed cap off or to diasble random monitors but at the end of the day, you don't get what you want all the time.
     
    ProjectFM likes this.
  3. Giovanni

    Giovanni Please be patient I use ReadySonic Member

    Joined:
    Apr 16, 2015
    Messages:
    153
    Location:
    Italy
    There's a video series that shows the making process. You can try remaking the hack on a disassembly and adjusting it to your liking.
     
  4. Tanman Tanner

    Tanman Tanner Well-Known Member Member

    Joined:
    Dec 23, 2016
    Messages:
    108
    Location:
    Buffalo, New York
    Plus it's not a rocket science to add a spindash or removing the speed cap. That's probably why he didn't add it, or this is more or less a proof of concept thing.
     
    TheInvisibleSun and DeltaWooloo like this.
  5. rafit_000

    rafit_000 Newcomer In Limbo

    Joined:
    Jul 10, 2018
    Messages:
    10
    Location:
    Brazil
    There will be a tutorial on Sonic Retro about this?
     
  6. Clownacy

    Clownacy Well-Known Member Staff

    Joined:
    Aug 15, 2014
    Messages:
    898
    If it takes 12 one-hour-long videos to explain the whole thing, then imagine how long a written guide would be. The only way to shorten it would be to turn it into a copy/paste guide, at which point I'm not even teaching anyone anything.
     
    Niko, Pokepunch, Dj. Joker 27 and 5 others like this.
  7. CuckyDev

    CuckyDev Newcomer Trialist

    Joined:
    May 1, 2016
    Messages:
    2
    Good call. Even if you made it a proper guide, people would just copy and paste lazily like with the spindash tutorials. I wish new hackers were more open to actually learning rather than just copying every single SCHG How-To thing onto their hack only to then re-colour GHZ and add their original character. 68000 assembly is insanely easy to learn, so I'm not sure why people would rather just copy and paste.
     
  8. Tanman Tanner

    Tanman Tanner Well-Known Member Member

    Joined:
    Dec 23, 2016
    Messages:
    108
    Location:
    Buffalo, New York
    When you compare it to other programming languages, if ASM should really be called that as its pretty close to machine level, Assembly isn't as easy. By no means am I denying ASM or AS 68000 is easy to learn, but for a newcomer to ROM Hacking, it's a daunting task to learn and honestly (even though this might be a controversial opinion) if you cannot be bothered to learn Assembly or Assembly is not your cup of tea, then don't make a ROM Hack, make a fan game that mimics the gameplay of the Genesis games. If people sat down and read the 68k Tutorial MarkeyJester wrote (http://mrjester.hapisan.com/04_MC68/) before they began making ROM Hacks to actually understand what the code is doing, I'd genuinely see no issue with people copy and pasting crap from the SCHG guides so long as they knew what it exactly did. Again, I'm going to praise MarkeyJester (hopefully it is, it's been a while since I've seen the guide) for his Porting Knuckles into Sonic 2 Guide which really does go to some lengths to describe what exactly you're doing even if you didn't read his guide, which is awfully nice of him. I'm not as active as I use to be in the hacking scene (well to be fair I never really was outside of a silly Sonic 2 SMS ROM Hack that to this day I feel like I could done a whole lot better), I moved on to making ROM Hacks of the Pokemon Color games and occasionally try to tinker with Sonic 2 SMS to see if I can translate the Sonic 2 spindash into the 8bit game or at the very least make a Sonic CD-esque spindash and call it a day, and honestly if I didn't take the time to learn how to use assembly, I don't think I ever would of started making these ROM hacks. I guess the point I'm trying to drive home is Assembly is not something everybody is going to love and get the hang of immediately, but if you don't love it or feel like it's worth your time, as I stated above, don't make a ROM Hack, because it's not going to look good and it's going to look half-assed and as if you took a butcher knife to the original game. Trust me, I know from experience how it feels to make a bad ROM Hack that really doesn't offer anything to the table, it just makes you look foolish or inexperienced. Instead, make a fan game in something like GameMaker or Unity where there's probably thousands of resources and guides on how to make a Sonic-esque game engine/game.
    But to be honest, we've now gone quite off topic.
     
    Last edited: Jul 18, 2020
    Dj. Joker 27, ProjectFM and Giovanni like this.
  9. death rapunzel

    death rapunzel doin something Member

    Joined:
    Aug 26, 2013
    Messages:
    1,068
    Location:
    Hell
    I think it's mainly due to people being too impatient or lazy to actually learn programming (to be fair, it's not for everyone, and idiots will be idiots, too), and also the fact a good chunk of the hacking guides on Retro's wiki are not well written at all and kinda just promote copy and pasting. To be honest, I'm kind of in favor of abolishing the SCHG How-To guides.

    I think these videos are a much better method of guiding someone through hacking, especially with how they are unscripted. You can't exactly quickly copy (and "paste") from a video series like this, so you pretty much just have to follow along with the video. With that, the videos also show what the process of hacking Sonic is really about: navigating through disassemblies, fixing errors, making things compatible, etc. Honestly, a much better method of showing how to do something in a hack than a basic text-based guide. I would be in favor of more of these.
     
  10. RuthlessTheHooman

    RuthlessTheHooman The who, man? Member

    Joined:
    Nov 20, 2016
    Messages:
    86
    Location:
    Australia
    Well, I've tried the hack and it's what it promised it would be. I thought that one monitor cycling through all three shields was a neat idea, clearly taking some inspiration from collecting characters in Mania's Encore Mode. (I presume that was what Clownacy was going for, I haven't watched the porting series in a while admittedly.)

    I guess while I'm here I ought to give me thoughts on the discussion going on here. I commend Clownacy for not making a webpage guide or releasing the source for the hack, and my reasoning for this should be rather obvious.
    I feel that the SCHG How-To guides shouldn't be abolished, but need changes made. I agree that there are guides that are blatant copy-paste jobs and it in some ways feels less like a community driven resource on how to work with the engine and more like a dumping ground for various random features.
    Some guides should stay apart of it, such as the Spindash guide. As devalued as the Spindash has become the guide in my view is a good resource, albeit somewhat outdated with some of its methods, as getting rid of it will simply lead to people flooding the basic Q&A thread asking how they add the Spindash.
    I'd say the biggest problem with the SCHG How-To guides is that nobody wants to update them. And I'm not blaming anyone, it's not something you get paid for.

    Maybe I'm wrong, I just thought I'd ramble a bit but as Tanner has said this is getting too off-topic.
    That's most of what I have to say. I'm still open to discussion, but this is most of what I think.
     
    MarkeyJester, ProjectFM and AkumaYin like this.
  11. death rapunzel

    death rapunzel doin something Member

    Joined:
    Aug 26, 2013
    Messages:
    1,068
    Location:
    Hell
    One more point from me (staff could probably split this off). I feel like the spindash guide could definitely benefit from being in an unscripted video form like Clownacy's series on porting the elemental shields. The guide on Retro is basically just rotting away, and uses code based on the old 2006 Sonic 2 disassembly, and doesn't really convey some things well (particularly the part where you add the graphics and animation, I think). Hell, some people don't even finish the first part. Again, lazy people will be lazy and idiots will be idiots, but I think a change to help make things more accessible would be nice. I'm all for an expansion on the unscripted video idea.
     
    Last edited: Jul 18, 2020
    KZG4, ProjectFM, Giovanni and 3 others like this.
  12. DeltaWooloo

    DeltaWooloo Hi, how are you Member

    Joined:
    Aug 7, 2019
    Messages:
    203
    Location:
    A shed
    Or even better, just teach people how to properly use disassemblies and what does each bit mean and what'll happen so everyone won't start moaning about "It doesn't build properly" or "Changing the bit of code, did nothing" or just something basic like that. Sure we have MarkeyJester's 68k tutorial which I study and use all the time, but showing people verbally can also help which reduce the laziness here or in other forums similar to this. But I believe I'm starting to get off topic to this thread so we need to carry on on the main topic.
     
  13. Clownacy

    Clownacy Well-Known Member Staff

    Joined:
    Aug 15, 2014
    Messages:
    898
    Personally, I don't think this thread is going off-topic - I did bring up the videos in the first post.

    What? No. It's a common video game gimmick; Mania didn't invent it. Besides, I only played Encore Mode once, back when it first came out - I didn't even remember it doing something similar.
     
    Last edited: Jul 18, 2020
    ProjectFM likes this.
  14. RuthlessTheHooman

    RuthlessTheHooman The who, man? Member

    Joined:
    Nov 20, 2016
    Messages:
    86
    Location:
    Australia
    Apologies, I didn't mean to insinuate that Mania invented the gimmick, but I assumed that you drew inspiration from it due to it functioning suspiciously similarly to the way Encore Mode did it, thus being the closest comparison and appearing to me to be a logical conclusion.
    I should've worded my post better as well, I'll try to take this into consideration.
     
  15. MarkeyJester

    MarkeyJester ♡ ! Member

    Joined:
    Jun 27, 2009
    Messages:
    2,857
    I believe it's the pointers which are automatically assembled for which assembly gets its name, you can plop instructions down in binary but if you have to insert/remove code later; then rearrangement of code will require pointer changes, so any branches, any references (even absolute calls) may need adjustments, and your only weapon to combat the time lost from fixing the pointers is to pad subroutines to specific offsets, and absolutely reference them, and in the process waste space and CPU time. Assemblers pack the instructions/routines together without padding, but automatically handle labels to pointers, assembling everything correctly into place.

    Furthermore, I think it's not the assembly itself that's the issue, you can learn how the instructions work but if you do not understand the algebra the instructions are constructed to simulate, for example:
    Code:
    D = (X² + 4) / R
    Would be represented as:
    Code:
    		move.w	#X,d0
    		mulu.w	d0,d0
    		addq.l	#4,d0
    		divu.w	#R,d0
    ...then it can be considerably more difficult, not only that, you have to have the right mental outlook on this, you have to understand illusion and representation and how you can manipulate the basic form to create the represented illusion needed to be achieved.
    That's a very kind gesture, but I'm afraid you have me confused with someone else.
    I am so very sorry, I didn't want to do this as it seems dickish, but while I agree that videos are a much better method, I dislike almost everything about your post.

    What I worry about with your post, is that people are going to see the "videos are better" statement which is an obvious no-brainer (I don't think it's an opinion at this point, and more of an obvious fact), but I think having harsh reckless other opinions surrounding the "videos are better" statement can cause a misleading association where people will blindly agree to the rest just because of that one thing, and without giving much thought to the rest. I mean no disrespect, I don't think you did it intentionally, I just think it came out that way and I really feel I have to counter this by bringing up aspects above the stuff you dislike to ensure everyone understands fully before doing anything rash or reckless.

    ---

    Firstly, the whole lazy thing, you've got to understand these guys are here with the initial intent to make their own Sonic game, that's the absolute core reason for it all, the learning of programming is merely a byproduct you wouldn't have known initially coming into it, youth is another aspect, for the younger you are the more likely blind you are to the real world, so I think it's less about laziness and more about ignorance from youth. Another aspect is interest, if one does not have an interest in a subject, they are not inclined to learn it, but that does not make them lazy. A few people I've spoken to always say "I can't draw", but I don't go calling them "lazy", I understand that they probably could draw very well, but they don't have enough interest in it to do it. Having an automatic view that everyone new is immediately lazy, is a very snobbish approach and could even be hypocritical if you started in exactly the same way, if not for programming, then certainly some other unrelated subject.

    ---

    I'm also not in favour of outright abolishing the SCHG How-To guides necessarily, they are very valueable, even for experienced programmers like myself, if there is a project or a concept I want to work on, and it may require something from the guides, it's nice to be able to quickly nab that in and focus on the actual concept at hand, rather than wasting time hunting and reinventing the wheel so to speak. Furthermore, not all newcomers will abuse the copy/paste side of the guides, there is another side to the guides which explain the details of what's going on, the spindash guide is an excellent example as it explains the actual engine formats, and it explains them as and when it needs you to know them, I myself would never have learnt the mapping/dplc format for Sonic in Sonic 1 if it weren't for that guide, nor would I have been able to modify the spindash to act like a peelout (which was both fun and I learnt an absolute lot!), so they still have a place in the scene and I'd like to see them stay.

    I think RuthlessTheHooman said it well:
    Video tutorials are absolutely welcome, but remember, that's a no-brainer, that's obvious, anyone disagreeing with that is a moron, but the "How-To guides should be gone" or "newbies are just lazy" statements are still up for debate, and I don't think there are any simple answers/solutions to them.

    I would suggest as an option, if you are bothered by a newbie asking a silly question or posting a crappy hack, just ignore the post? It works somewhat well from what I've seen in other places, often the person either gives up or they go back and refine it because they are begging for attention. It's a harsh way of dealing with it, but there are great outcomes from it.
     
  16. Tanman Tanner

    Tanman Tanner Well-Known Member Member

    Joined:
    Dec 23, 2016
    Messages:
    108
    Location:
    Buffalo, New York
    ARGH, I had a gut feeling I was wrong.
     
  17. death rapunzel

    death rapunzel doin something Member

    Joined:
    Aug 26, 2013
    Messages:
    1,068
    Location:
    Hell
    @MarkeyJester Bleh, I do apologize, you are right. I am very bad at wording my thoughts. "Lazy" was the wrong term to use.
     
    Last edited: Jul 18, 2020