Sonic Classic Heroes

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

  1. null1024

    null1024

    Member
    161
    0
    16
  2. flamewing

    flamewing

    Emerald Hunter Tech Member
    1,161
    65
    28
    France
    Sonic Classic Heroes; Sonic 2 Special Stage Editor; Sonic 3&K Heroes (on hold)
    Sorry for the delay in replying, but I am doing a lot of stuff in the hack and did not want to reply until I had the time to fix the bug. As it turns out, it was a stack segmentation fault that was causing this -- the result is a bit emulator dependent: in Regen, the emulator would crash instead of just the game freezing, as happens on Gens. It is fixed for next revision, in any case.
     
  3. MotorRoach

    MotorRoach

    Member
    249
    1
    18
    For Tails' peel out

    [​IMG]

    I made this for ya
     
  4. flamewing

    flamewing

    Emerald Hunter Tech Member
    1,161
    65
    28
    France
    Sonic Classic Heroes; Sonic 2 Special Stage Editor; Sonic 3&K Heroes (on hold)
    New revision is out, just in time for the hacking contest!



    Grab it here: download it here.

    Changelog for this revision:
    Enhancements over previous revision:
    • New extra data/extra objects/function vtable object code for Sonic/Tails/Knuckles reduces code triplication with benefits.
    • Fully functional multitap support; the first 3 joypads found will be used for P1, P2 and P3 in the order in which they are found.
    • Fully functional support for 6-button controllers (although only X is used at the moment) (works on Gens, Regen and Kega Fusion).
    • Ported S3&K object manager to reduce lag (particularly MTZ2) (thanks to MoDule for tutorial).
    • Ported water ripple effects (thanks to MoDule for tutorial and Alriightyman for S3&K AIZ ripple data).
    • Ported S3&K collision manager to free RAM (thanks to MoDule for tutorial; I fixed a few invalid assumptions on collision data size).
    • Got rid of Silver Sonic's unnecessary decoding at Sega screen.
    • Knuckles drops from a higher position when respawning, making him slightly more efficient.
    • Sonic does not go as high up in the air when respawning.
    • Swapped Tails and Knuckles at the ending cutscene.
    • Tails CPU is controllable during flight/swim by a human-controlled carried character, and interprets up as being jump (similar to S3&K MG2 boss).
    • You can now swap to/from a character in more circumstances (e.g., while either or both characters are hanging from a vine in MCZ).
    • New Sonic 2 Heroes title screen, featuring FeliciaVal's Knuckles and Dark Sonic's logo layout idea.
    • New Special Stage palette and graphics allowing Sonic, Tails and Knuckles to use the same palette lines.
    • Special Stages load faster because Sonic/Tails/Knuckles art is now BINCLUDE'd uncompressed and read directly from ROM.
    • Optimized all DPLC (and respective mappings) to minimize the amount of DMA transfers.
    • Rings and shields are retained when returning from a Special Stage.
    • New rounded icons for HUD, with some art tweaking by Drex. Super Sonic has his own separate portrait, green eyes and all.
    • Super Sonic has his own unique portrait, including his green eyes, for 1-up monitors.
    • S3&K-style horizontal springs, which catapult them if you touch their side whether or not you are on the ground.
    • LOst's faster angle->direction calculation.
    • Removed last traces of 2P mode and debug mode.
    • Smarter (faster) handling of art swapping and portrait swapping for super palette swaps, as well as smarter mappings/DPLC handling for Super Sonic and (Super) Knuckles.
    • Hack branded end of game logo.
    • New end-sequence sprites for Super Tails. Super Tails and Super Knuckles also fly alongside Super Sonic when falling from the Death Egg, instead of falling helplessly.
    • Flickies are back in ending sequence, and display correctly when super (done by remapping their graphics to use a different color than the light blue). Flickies always show when Tails is present; otherwise, eagles show if Sonic is present. Knuckles is saddled with chickens.
    • CPU respawns better in Sky Chase during the Wing Fortress encounter.
    • Complete Super Sonic sprite set, with more detail.
    • Removed redundant/unused art from Sonic, Super Sonic, Knuckles and Tails.
    • S3&K-style commemorations at end of non-boss acts.
    • Sonic can do a Homing attack/jump dash when using the standard S2 shield (based on code by Selbi).
    • Improved priority for drawing order and collision order for player characters.
    • Tails can now carry Sonic and Knuckles at the same time.
    • Sonic now has a higher top speed (2 pixels/frame higher) than vanilla Sonic 2's top speed. Top speed when super or with speed shoes is unchanged, as is acceleration, deceleration and jump strength. Moreover, when Sonic is in the lead, Tails and Knuckles will share Sonic's top speed, acceleration, deceleration and jump strength. This is to help the other players/AI to stay on screen. If Sonic is not in the lead, he is faster than the other characters.
    • Knuckles jumping ability is no longer nerfed. The rationale is that the original S3&K nerf was most likely done to force the use of different paths for Knuckles in certain scenarios (while Knuckles' ability to break down some walls prevented Sonic/Tails from taking these paths).
    • Improved sound driver.
    Bugs fixed from previous revision:
    • You could break some breakable objects by standing on them while an AI was jumping.
    • Plungers in CNZ should work correctly in all circumstances.
    • Invincibility and super stars were not setting their parent objects.
    • Controllers were unreliable when under control of several objects (vines, hooks, breakable platings, Tornado).
    • The cutscene at the end of WFZ now works on all circumstances. Moreover, characters will always face right after falling (a.k.a., "the ship is over THERE").
    • CPUs had issues when respawning after defeating final boss.
    • Drowning checks were accidentally removed and you couldn't drown.
    • Grabber (spider badnik from CPZ) now works correctly.
    • There was a VRAM conflict between HTZ boss art and the animated BG.
    • Animation tiles are now loaded even when title card is active to prevent a few frames' worth of garbled animated graphics (most noticeable in HTZ 1 clouds and flowers).
    • You can no longer swap to a hurt or dying character.
    • Special Stages could not be accessed.
    • Optimized super PLC/portrait loading by reducing DMA transfers to VDP memory in order to prevent garbled graphics in some situations.
    • Lives counter was not working correctly.
    • Collision data got broken in one of the previous revisions for some levels (e.g., MTZ).
    • Crash on MCZ switch vines.
    • Underwater palettes for Super transformation are now in.
    • Rings were restored when you died after going through a checkpoint.
    • Leader no longer appears in front of title card if you die after hitting a checkpoint.
    • Knuckles has his proper lower jump when being controlled by a human player.
    • Special Stage messages no longer broken.
    • Removed final traces of (unused) debug mode.
    • Super palettes now correctly forces the (re)loading of the correct sprites when needed.
    • Fixed a few oversights in imported collision routines.
    • Fixed transformation bug with Sonic's mappings and DPLC when standing still.
    • Fixed all transformation bugs when players other than Sonic triggered the transformation.
    • Eliminated redundant cleaning of pattern name table A in endgame, which caused Knuckles to disappear for a few frames.
    • MoDule's fix for bug in ARZ Boss arrow's platform behavior.
    • MoDule's fix for collision with water after being hurt.
    • Fixed bugged interation of super transformation while being carried.
    • Fixed issues with in-water/out-of-water transition when Tails was carrying someone.
    • Fixed Sonic respawn in levels with water.
    • When leader is dead, CPU despawns when offscreen and does not respawn afterwards (a.k.a. screenwrapping Sonic/Knuckles glitch).
    • Invincibility stars and shields glitched with game over/time over text.
    • Wind tunnel bugs.
      [*} Fixed bug that caused HTZ rising lava to be lacking solidity.
    • Fixed SFX for insta-shield and Knuckles' slide.
    • Special stage results screen now work.
    Bugs fixed from the original games:
    • Several gliding/climbing/flying interaction issues with objects (similar issues plague S3&K, so I am chalking this up to 'original bugs').
    • Knuckles' gliding/sliding code did not work correctly when landing on sprite-based floor-type objects.
    • Fixed Special Stage animation bugs when Sonic/Tails(/Knuckles) are fully horizontal.
    • Tails' y-position was incorrectly adjusted in pinball mode or when grabbing an air bubble.
    • Fixed the infamous screen boundary spindash bug.
    • Special Stage CPU control was inactive while the CPU was jumping.
    • The arms of Special Stage Tails and Knuckles were incorrectly colored.
    • Moved WFZ palette switcher closer to the pre-boss rivet, so it cannot be skipped.
    • Special stage HUD no longer covers the start banner.
    • Got rid of double decoding of Tornado and cloud art in WFZ.
    • Jump height bug when exiting water (by MoDule).
    • Tornado no longer continually respawns at the start of Wing Fortress zone.
     
  5. MathUser

    MathUser

    3rd top wiki contributor Researcher
    2,151
    8
    18
    Sounds good. Keep up the good work.
     
  6. I found a couple of bugs. In Chemical Plant, When I jumped and hit some boxes, Tails and Knuckles hit the boxes after I broke them, and I got 2 lives from one life box!

    Also I finished as Tails after the boss, and was greeted by this:

    [​IMG]

    It didn't move, and the music just played.

    Overall though, these are awesome edits! Amazing job! One Question: What happened to Knuckles' gliding and climbing sprites holding Sonic and Tails?
     
  7. flamewing

    flamewing

    Emerald Hunter Tech Member
    1,161
    65
    28
    France
    Sonic Classic Heroes; Sonic 2 Special Stage Editor; Sonic 3&K Heroes (on hold)
    Can you post a screenshot of the location it happened?

    I will investigate it. Did you start as Tails or did you switch to him?

    They haven't been done yet.
     
  8. Namo

    Namo

    take a screenshot of your heart Member
    2,912
    0
    0
     
  9. 1) Sure thing:

    [​IMG]

    2) I started as Sonic as switched to Tails yes.

    3) Mk, I will wait patiently. :D
     
  10. flamewing

    flamewing

    Emerald Hunter Tech Member
    1,161
    65
    28
    France
    Sonic Classic Heroes; Sonic 2 Special Stage Editor; Sonic 3&K Heroes (on hold)
    O>o. When I got there, it took me a few tries to get up to the ledge. When I broke the boxes, I found no less than 6 of each. It is a horrible mistake on the monitor code due to the new object manager -- every time the monitors get unloaded due to vertical motion, they get duplicated. I have no clue as I have managed to miss this over the several months I have had the new object manager. Anyways, I have released an emergency bug-fix version available here.

    As for the bug in the transition CPZ->ARZ: I can't reproduce it no matter what I try.
     
  11. MarkeyJester

    MarkeyJester

    Original, No substitute Resident Jester
    2,213
    449
    63
    Japan
    All three of them in the special stage at once, hell yes! A lot of bugs fixed too from the last rev, this is certainly impressive, also, I do like the lives counter, it and the way the characters handle (even with one another) is stylish and smooth =)
     
  12. Selbi

    Selbi

    The Euphonic Mess Member
    1,501
    53
    28
    Northern Germany
    Sonic ERaZor
    I feel honored... :V

    But seriously, extremly nice work! Without a doubt a lot of fun I'm gonna have in the next days.
     
  13. Aquaslash

    Aquaslash

    <The Has-been Legend> Moderator
    I love this, especially the multi tap support. Gonna try with the fam later.

    However, doing my usual chaos emerald run in EHZ, I failed the second checkpoint in act 2 (was still Tails's fault), and came out at the last one, despite having never gotten that fat.
     
  14. flamewing

    flamewing

    Emerald Hunter Tech Member
    1,161
    65
    28
    France
    Sonic Classic Heroes; Sonic 2 Special Stage Editor; Sonic 3&K Heroes (on hold)
    Thats odd; as far as I know, I didn't do anything that should be affecting this. I will look into it -- I might have reused the wrong register somewhere... Thanks for the report.
     
  15. Covarr

    Covarr

    Sentient Cash Register Member
    4,233
    3
    18
    Trapped in my own thoughts.
    Two stageplays, a screenplay, and an album
    Bug: I was playing EHZ as Knuckles, got an invincibility during act 2, and it ran out during the boss. However, the other two characters still had the stars.
    Feature request: Alternate control scheme. A, B, C to jump. X, Y, Z to choose characters (e.g. x is always Sonic, y is always tails, z is always knuckles).
    Bug: Completed special stage, locked up on return to level. Music is playing, but characters never appear. I wouldn't be surprised if this is the same bug that RGamer2009 had, which would mean it's not just CPZ->ARZ.
    [​IMG]
     
  16. Steven M

    Steven M

    Member
    394
    0
    0
    I'm having far too much fun with this hack. Besides the hijinks you can get up to switching characters on-the-fly (like getting characters to do their finish poses in mid-air, flying the whole group past the checkpost and then, say, to the top of the building in Chemical Plant Act 1), you can also exploit the following-characters feature to skip huge chunks of the acts. I'd like to try doing a longplay on this sometime soon if I can get the recording software for it (and my shitty laptop doesn't have a fit about overheating). Thanks again for the hack, flamewing!
     
  17. flamewing

    flamewing

    Emerald Hunter Tech Member
    1,161
    65
    28
    France
    Sonic Classic Heroes; Sonic 2 Special Stage Editor; Sonic 3&K Heroes (on hold)
    RGamer2009, Namo, Covarr: What emulator are you guys using?

    Thanks for the report, I will investigate it.

    Edit: By the way: if anyone has suggestions about the shield placement, I'd appreciate it. I will add some layout edits in the future also, including new monitors and obstacles to prevent Knuckles/Tails from gliding/flying over everything. But that will wait until the actual programming is finished, and I will have to build the S2LVL ini files to do the job (as SonEd2 not only refuses to run under Wine, it has corrupted the collision data of every level I edited the object layout with; I had to resort to hex editing in the end).

    Edit 2:
    One thing I was thinking of for 6-button controllers is this: X rotates characters counterclockwise, Z rotates them clockwise and A, B, C all jump. Possibly having Y also jump, or maybe trigger the super transformation (if possible). To not let the 3-button controllers feel only envy, the super transformation might be changed to trigger by holding B+C then, without releasing them, pressing A.
     
  18. Covarr

    Covarr

    Sentient Cash Register Member
    4,233
    3
    18
    Trapped in my own thoughts.
    Two stageplays, a screenplay, and an album
    Fusion here.
     
  19. flamewing

    flamewing

    Emerald Hunter Tech Member
    1,161
    65
    28
    France
    Sonic Classic Heroes; Sonic 2 Special Stage Editor; Sonic 3&K Heroes (on hold)
    Wait, let me come back to this one: do you mean that, after failing the checkpoint in the special stage and being kicked out, the next time you entered a special stage it was the last one? If yes, then I have misunderstood you before (though my comment still holds true); if not, I will need some clarification.
     
  20. LordOfSquad

    LordOfSquad

    bobs over baghdad Member
    5,216
    249
    43
    Winnipeg, MB
    making cool music no one gives a shit about
    I didn't know we were playing Sonic 2 XL here. <3

    Hah, anyway. I'm gonna throw this on my PSP and beat it tonight. Will let you know if any issues arise, looks like it's a blast to play. Hopefully one day someone makes new levels that use Knuckles and Tails' abilities for it.