don't click here

Sonic Classic Heroes

Discussion in 'Engineering & Reverse Engineering' started by flamewing, Nov 2, 2010.

  1. flamewing

    flamewing

    Emerald Hunter Tech Member
    1,161
    68
    28
    France
    Sonic Classic Heroes; Sonic 2 Special Stage Editor; Sonic 3&K Heroes (on hold)
    I have intentions of doing so -- after the code has stabilized enough and the critical bugs are all gone. I still will have to do all S2LVL INI files so I can edit the levels without corrupting them, as SonED2 is doing (and poor SonED 1 can't even work given the amount of changes I made...). Even then, I will probably maintain Sonic 2: Heroes without too many level edits and add a new hack ("Sonic Genesis: Heroes" or some such) built around it with custom levels.
     
  2. LordOfSquad

    LordOfSquad

    bobs over baghdad Member
    5,267
    303
    63
    Winnipeg, MB
    making cool music no one gives a shit about
    I had no idea. That's fuckin' ace, I'll be looking forward to it.
     
  3. Aquaslash

    Aquaslash

    <The Has-been Legend> Moderator
    After being kicked out I was at the last checkpoint, though I had entered in the second one.
     
  4. That One Jig

    That One Jig

    aka RichterSnipes Member
    67
    2
    8
    Somewhere in America
    (Not) Working on My PokéHack
    I can also confirm the level lock-up glitch. I ran into another one just before that, though. After getting the last Chaos Emerald as Knuckles (playing as the whole team), the results screen looked all buggy:

    [​IMG]

    Then the freeze:

    [​IMG]

    I was playing in Kega Fusion, too. Besides that and other minimal problems, the game's a blast! Once these major bugs are ironed out I'm gonna play this game twice to death.
     
  5. flamewing

    flamewing

    Emerald Hunter Tech Member
    1,161
    68
    28
    France
    Sonic Classic Heroes; Sonic 2 Special Stage Editor; Sonic 3&K Heroes (on hold)
    That is odd. I am seeing none of these problems with Regen or Gens. Will try also Gens/GS and Kega, maybe checking out the latest versions of them just in case.
     
  6. plushifoxed

    plushifoxed

    that power is yet unknown Oldbie
    1,709
    54
    28
    jazzy nyc
    puella magi chroma magica
    [​IMG]
    After I came out of this special stage, all the rings had respawned, a bunch of the walls had become solid for some reason, and this shield which Knuckles had lost earlier in the stage was just lying there.
    Also, the first spring in the tunnel at the beginning of EHZ1 doesn't seem to be there anymore.
     
  7. [​IMG]

    I ended up experiencing the same freeze-up glitch posted above, except not by exiting a SS. I was playing this game up to the point I got to ARZ Act 1, where the game froze as soon as the Title Card disappeared. I did have all Chaos Emeralds up at this point(I got them all at the end of EHZ Act 2). I'm not sure what caused this specific freeze up though. CPZ Act 2 ended like normal, and everything was running smoothly before. :psyduck:
     
  8. I'm also had a freeze. In Oil Ocean Zone. Played it on Gens ReRecording

    Update:
    It happens, when you enter special stage not those who touched starpost (or beat Robotnik and then press switch on animal prison)

    P.S.:
    Walkthrough of new version
     
  9. MotorRoach

    MotorRoach

    Member
    249
    1
    18
    I found the Super Sonic 1up box after I finished Act 1 in super form. Not sure how it happens:

    [​IMG]

    [​IMG]

    And when I chose Sonic and Tails only, I pressed A, and this happened:

    [​IMG]

    Also, I edited one of the looking up frames for a smoother looking up animation for you:

    [​IMG]

    [​IMG]
     
  10. Deef

    Deef

    Member
    733
    22
    18
    Yay! [​IMG] Finally!

    Very first thing to notice was the character icons. The new icons really are great.
    Next, the insta-shield sound effect is back! [​IMG] Except... it's too quiet. :/
    Third thing, the HUD. I'm glad it turned out to be so close to my personal pick. It's very gold-heavy though, so I'm wondering if it was a matter of taste or technicality that you didn't go with the leading silver zeroes.
    The new title screen looks great as well. New content and pleasing to look at, but maintaining styles we know. It all fits really well imo.
    I like how you've handled the special stages; the leading character stays in charge when you enter and is then fixed throughout the stage. No redundant switching.
    Being able to carry both others with Tails works really well. You've made the CPU-characters grab on really easily without looking faked, and the way they fall/get knocked off functions exactly how it should. Nice. :) Being able to switch characters while being carried, yet still control Tails, also works just like it should.

    Like others have mentioned, it's a lot of fun being able to mess with switching up at unexpected moments. I quite like how it works even while spin-dashing, with the camera switching between them.

    And the greatest thing is the Sonic 3 physics; monitors popping, Knuckles landing, insta-shield working and characters running through air as they should.

    _______________________

    Some little bugs:
    · Apart from when he is walking, Tails' tails appear behind the other characters even when he is the leader.
    · Some other very minor layering glitches that I couldn't reproduce. Characters sometimes appearing in front, sometimes behind, certain scenery. Waterfalls in Aquatic Ruin and wire frames in Chemical Plant. With the latter, once Tails was carrying the other two characters and the bottom character appeared behind the scenery but the top characters in front. I couldn't get it to happen again though.
    · The countdown on the continue screen (yeah I died) has the digits lined up vertically... it looks like that wasn't the plan.
    · Exiting a special stage resets the minutes count on the clock to zero, but seconds remain intact. It seems that the real time still exists, for the player will still die at the end of that minute if it was the 10th minute.
    · If you die due to time-over, the timer won't freeze exactly on 9:59:999, but on 9:59:983. It's probably worth faking this just for polish.
    · If Tails is carrying 1 other character while already touching a wall, the 3rd character can grab on but isn't aligned. But if Tails is first carrying both characters and then touches a wall, the bottom character falls off. I think this should be consistent; either the bottom character holds on and moves to an unaligned position if a wall is encountered while all 3 are flying, or the 3rd character shouldn't be able to grab on if Tails is already pressed against a wall while carrying 1 character.
    · If the leader is spin-dashing but the other characters aren't, as long as he keeps holding down the player still has some horizontal and jump control over the other characters. That's a throwback from the original game, right? The horizontal control is weird, but the real bug is that if the other characters do eventually start to spin-dash, when they slide towards the leader in spin-dash animation (another nice change btw), they will actually will slide through whatever it takes - air or ground - to get to where they want to be.
    · I also got a freeze in Chemical Plant upon exiting a special stage, in the same location as Covarr. Using Fusion 3.64. I can't remember what I was doing when I entered the stage though.

    _______________________

    Technical requests:
    · To have A, B, and C all jump if we're using the 6 button option. For the 3-button spin-dashers amongst us.
    · A louder insta-shield.
    · Leading silver zeroes? No not a huge concern; I just thought they looked nice in the older mockups.
    · That non-leaders not break open monitors. This was novel at first but now I'm finding that planning a bounce off a monitor is just so unreliable that it's getting irritating. If a player-controlled non-leader did it that would be fine and probably add to the fun, but when the CPU-controlled characters do it 3 out of 4 times, it's kinda rrrrg.
    · That fire projectiles, like from the Buzz Bomber, are not repelled by any shield and that only the fire shield protects the character from them.
    · That the falling rocks in the Mystic Cave boss are repelled by shields. Not a huge concern either, it's just that it works on Marble Garden's boss.
    _______________________

    Personal taste:
    · Is it set in stone that exiting a special stage retains all your rings? I know you must prefer the new way since you made it so, but I think it's better when you have to collect the 50 rings every time you want to access a special stage.
    · How come the circle around Knuckles' icon is a strong colour, but the circles around the others are very pastel?

    _______________________

    Finally, as a way of introducing the subject of balance, I offer this particular quote. It's confusing for two reasons, one being the obvious contradiction:
    The other confusion for me is that I brought this up before, and I'm still confused. The nerfed jump was already removed in v0.05, whether he was player or CPU controlled. Not that I'm complaining at all, I liked the change because Knuckles' low jump really made his game drag. I'm just pointing out/asking why I seem to be the only one saying it was already improved before v0.06. Even flamewing responded to say otherwise, but there it is in 0.05; full-height jump for Knuckles, player or CPU controlled. Verion 0.06 hasn't changed that.

    Confusion aside, when it comes to discussing new balance that particular example is a good one. I think increasing his jump height was a good buff even though it clearly made Knuckles the main character at the time (for me anyway). I recognised that I was basically defaulting to Knuckles all the time, but his game needed to be lifted and I knew the shields were coming to rebalance Sonic. So in v0.05, with Knuckles already jumping full height, things looked good.

    However in v0.06 we have not 1 but 3 original changes to control:
    · Sonic has a new speed
    · The homing attack/air dash is back to haunt us me
    · Characters can now perform the secondary move from any position

    I am still working out how I'm responding to these changes. It was easy to understand the one change to Knuckles; he was just nicer to use and there wasn't anything else to factor in. But in v0.06 there's more to get used to. For example, at first I thought Sonic's speed buff sounded just right - only a tiny and contained change. I believed it sounded good on paper and wouldn't be too strong in the game. Then I found that even this 2 pixels-per-frame was indeed making the other characters feel bogged down. But then later I realised I was barely even using Sonic. The same goes for all 3 changes; my impressions went one way, then the other, then my playing behaviour came along and said something else. So I'm still forming an opinion on all that. I'm not a fan of the homing attack especially just because it is so open to abuse, but I have to give that one time as as well because it certainly wasn't overpowering my recent playthrough.

    I will say however that the big change to accessing secondary moves is something I've always wanted to see done, if done well, and you have done them well. It makes sense that if Tails can start flying from the middle of a crazy somersault, he should be able to as well from a simple freefall. Same goes for Knuckles. The choice to keep secondary moves restricted to engaging only when the character isn't loaded with upwards momentum (like from a spring) is a good one. Perhaps that was already in the game's code, but either way it's good. Basically all the control changes you have applied, whether they were due to having 3 characters at once or due to particular edits of each character, have been implemented with simplicity and common sense that really isn't that common among Sonic fan games. It's refreshing. So while I'm in two minds about the 3 changes mentioned above, I can at least say that if they were going to be implemented, you have implemented them the way they should be.
     
  11. ICEknight

    ICEknight

    Researcher Researcher
    That wouldn't be too intuitive...

    Except for fighting games (for obvious reasons), X, Y and Z always belong to optional actions that shouldn't be mandatory to use continously, even the buttons' shape suggest that they shouldn't be used as main action buttons.
    Same as A is the "super special" button that should be used only as a last resort, because it's the one further away from the thumb.


    With that said, I really love Covarr's idea of X:Sonic Y:Tails Z:Knuckles, so quick to learn and easy to adapt to.




    EDIT:
    That would make the score a tiny bit more difficult to read, while not adding anything useful and/or cool in the proccess...
     
  12. Deef

    Deef

    Member
    733
    22
    18
    I don't know, it is quite likely that the way it fades the empty zeroes away from the real start of the score might make it easier to read. They looked good in the mockups several pages back.

    I agree with your point about making the character switching simpler though. I found myself wishing they would flash or something, because unless you pre-empt the change it's hard to instantly know who you're controlling.


    EDIT - Random idea. What if zero rings = can't switch characters? More significance to rings, fun implications for bosses too, while the final boss would add meaning to the character you picked as game leader.
     
  13. Endgame

    Endgame

    Formerly The Growler Member
    I accidentally died at the CPZ boss, and this happened when came to life at the last Starpost I was at - to which the controls didn't respond either (screenshot resized btw):

    [​IMG]
     
  14. flamewing

    flamewing

    Emerald Hunter Tech Member
    1,161
    68
    28
    France
    Sonic Classic Heroes; Sonic 2 Special Stage Editor; Sonic 3&K Heroes (on hold)
    O>o. That is supposed to be impossible: if Sonic is showing up with his normal art, then the 1-up should be showing his normal icon: the same routine handles all of this. The only explanation is if there is a full DMA queue; I will have to look into it.

    Hrm. I will need to investigate; thanks for the report.

    Very nice! Thanks, I will include it into the sheet and then into the hack.

    I would say that the S2 music drowns it out, rather -- it is the same volume as in S3&K. But yeah, after some recent work I did on the S&K sound driver and after learning about the S2 sound driver from Rob Jinnai's work, I was able to figure out what I had to change in the sound driver and on the SFX to get insta-shield sound working (and Knuckles' sliding sound too, for that matter).

    Taste -- it looked too busy with the leading zeroes.

    The issue here is that Tails' tails are a separate object in many poses. This allows it to animate independently of the body, but also forces its rendering order to be after all characters. One thing I did to fix this issue worked well in Gens but crashed Regen -- and I couldn't figure out why even after tracing the code execution: everything seemed to work exactly as it should, but then, for some reason, a value in the object's RAM that had not been overwritten anywhere suddenly was zero and led to the game trying to draw from address -1. It was weird. I have another idea for how to handle it, but haven't implemented it yet.

    Ugh, I knew I forgot to look at something -- that damn continue screen is broken since revision 0.01 and I keep forgetting to fix it.

    Thanks for the report, I will look into it.

    It doesn't stop on 9:59:999 because the next step is actually 10:00:000; but yeah, I guess I could fake it.

    That is because I haven't added the new vertically-aligned sprites; when I do, the last character in the chain will be vertically aligned with the one above him.
    I also didn't happen to have the CPU grab against a wall like this on my tests, so it is also due to under-testing
    .

    Ah, yes, you are right: they work like this in the original, and I didn't correct it. The CPU can "cheat" like that :-)

    That is a very nice idea: restricting opening of monitors to human players. And it will be simple to add it to boot!

    It seems I forgot to set the right bit for that projectile. If you see any similar issues, please say so!

    I am doing it because S3&K and S2&K do it, but it is not set in stone, no.

    Oversight and lack of good colors to use.

    That is a changelog error: at first, I had fixed the bug that Knuckles didn't have his lower jump as I intended; then, I changed my mind and removed the lower jump. I had added a changelog entry for the former, which I didn't remove when I did the latter.

    Thanks for the kind words on the changes. I must say that I agree with you that these changes take some getting used to. In my experience, that third change is by far the most jarring and the one that is hardest to get used to; but it also saved my ass in testing quite a few times, when a well-timed lightning shield double-jump (Sonic), flight (Tails) or glide followed by climb allowed me to escape falling into a bottomless pit.

    Those are very good points. I will have to do some extra thinking about how to implement Covarr's idea -- the scheme I proposed could be dealt with simply by remapping the A-button from 3-button controllers into a virtual X/Z button when reading it, and then handling input only in terms of 6-button controllers, but Covarr's idea requires me to know whether any controller is a 3- or 6-button controller at the time of reading.

    You know, the flashing idea is interesting. I now just have to figure out how I will implement it: whether the character would blink as if hit or something else.
     
  15. flamewing

    flamewing

    Emerald Hunter Tech Member
    1,161
    68
    28
    France
    Sonic Classic Heroes; Sonic 2 Special Stage Editor; Sonic 3&K Heroes (on hold)
    Sorry for the double post, but: I want to ask tot he folks that get the lockup problems if they can make a video of it happening. I have tried several variations of getting emeralds, not getting them, doing so at multiple checkpoints, swapping characters after the checkpoint is triggered but before entering the stars, on Regen, Gens and Kega, and all I have to show for it is wasted time. And also the fact that the total points is being incorrectly shown at the start of a score tally at the end of special stages.
     
  16. flamewing

    flamewing

    Emerald Hunter Tech Member
    1,161
    68
    28
    France
    Sonic Classic Heroes; Sonic 2 Special Stage Editor; Sonic 3&K Heroes (on hold)
    Triple post! Someone please post a combo breaker :-p

    Anyways, I have released a new bugfix revision: grab v0.06b here.

    Changelog:
    Enhancements over previous revision:
    • Credits screen duration is adjusted for the additional screens.
    • New Super Sonic sprite for looking up, by Gsuki.
    • Only human-controlled characters can break monitors.
    • New carried character art for vertical alignment.
    • CPU players will target unadjustment position of leader when leader is on the air or standing on an object.
    Bugs fixed from previous revision:
    • Incorrect score tally after special stages
    • 2p HUD problems
    • Characters can keep stars after invincibility is over
    • Second or third players could not swap characters.
     
  17. Updated...again.

    Whew, slow down on the updates a bit, I can hardly keep up! :P
     
  18. Deef

    Deef

    Member
    733
    22
    18
    Woot already. Downloading.
    That monitor-breaking change will already be really nice to have. I do like that you explored the idea of them all cracking monitors and I thought it was fun at first, but I like even more that you responded so quickly to that particular bit of feedback! Really, I think it's much better with only humans being able to do it.

    By the way, did you get what I meant about the sliding spin-dashers? As in, they slide along the ground while in spin-dash animation, which I assume was done deliberately, but they also slide through ground and air, which I assume was not.
     
  19. That One Jig

    That One Jig

    aka RichterSnipes Member
    67
    2
    8
    Somewhere in America
    (Not) Working on My PokéHack
    I don't recall if I switched to Knuckles after hitting the checkpoint, but I did get the freeze again. This time I started CPZ2 as Sonic, switching to Tails about halfway through before getting crushed to death due to my carelessness. I didn't pass any checkpoints this time, so I would have had to restart the act. I don't have a screnshot because I was running it on my PSP via PicoDrive v. 1.51b.

    Another release already? Dang, flamewing, you're really on top of things! I'll try it out soon.
     
  20. Deef

    Deef

    Member
    733
    22
    18
    Gotta say, this is probably the most enjoyable hack I've played. The pure shenanigans that are always happening as all three characters tear the place apart, love it. Really fun stuff.