Added Chaotix-style coop mode (based on idea given in unrelated context by Iceman404) where players are tied to one another by energy bands. In this mode, players 2 and 3 can activate signposts and starposts.

Team Chaotix is now up, with graphics by E-122-Psi, some by Iceman404 and a lot of palette editing by me.

Taken rings, broken monitors and destroyed badniks are saved when entering (and restored exiting) Special Stage. Perfect count is also kept.

Reported graphics of lightning shield, bubble shield, super and invincibility stars, insta-shield, hyper stars from S3&K with more detail (using palette line 2 now). The same was done for the black-and-white sprites of Sonic, Tails and Knuckles.

Freed turtles parachute to safety in Sky Chase zone.

New HUD layout. Timer now only shows centiseconds (milliseconds was fake precision anyway), back to 7-digit scores, ring counter centered. Centiseconds are now shown based on auto-generated lookup table.

Changed starpost positioning behavior to have all characters together at the starpole because of a certain starpole in SBZ1.

Blue nomal shield no longer exists, having been replaced with golden shield.

Team Hyper transformation from having all 14 emeralds, Team Super with either set.

Invincibility monitors become S monitors when super/hyper. When picking up the monitor, it may act as speed shoes (if you are hyper or are playing with a team that can't become hyper), invincibility (if transformation ends before bonus is given) or gives you 20 rings and transform you into hyper for about 20 seconds.

Fully functional S1 ending and S1->S2 transition.

Zone ordered tables for Oil Slides, Wind Tunnels.

Reordered zone IDs and zone tables to eliminate special cases almost everywhere.

Enhancements over original games:

Smarter art loading in Final Zone causes boss fight to begin faster.

Big Ring does a better job of removing the player that went through it.

Variable jump height in S1 special stage by Mercury (yes, I love this fix).

Characters face the right way in Scrap Brain Zone 3.

Signpost takes slightly longer to stop spinning if a big ring is on-screen.

Perfect bonus for collecting all rings in S1 special stages.

Bugs fixed from previous revision:

Incorrect animation was being shown when Knuckles hit a boss while gliding.

Fixed subtle bug in 3- versus 6-button controller input reading that was harmless only due to sheer luck.

Fixed subtle bug in TeamPlayer code that caused a controller to be skipped and was harmless only as long as you had at least 3 controllers by the time a port with a multitap was finished reading.

Corrected tone shift in PSG sounds, and modulation differences in all sounds, from S3&K.

Deef's credits entry was being accidentaly overwritten by Aquaslash's.

Lava bubble from HTZ boss (and the fire it set) cut through the fire shield because flag was being set on wrong object.

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.

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.

Changelog for revision 0.05:
- Now works on Regen.
- Completely fixed ending, including new pictures of Amy.
- Pre-title screen credits are now correct.
- Endgame credits added. If anyone feels they should be included, speak up and say why.
- Fixed bug where going super when not controlling Sonic messed up the art.
- Fixed ARZ water surface.
- Fixed HTZ end of level text getting mixed up with clouds.
- Fixed cycling palettes in Emerald Hill's waterfalls.
- The WFZ boss laser now hurts you when it is moving, as it should.
- The laser walls in WFZ boss prevent you from going past it by pushing it offscreen.
- Fixed Knuckles gliding crash.
- Sonic AI now respawns from the bottom of the screen, moving up at high speed.
- Fixed all remaining underwater/speed shoe/super speed issues, whether be it from CPU respawning or else. Speed shoes also work correctly in water.
- Speed shoes and invincibility now always end correctly.
- Fixed priority of Tails's tails.
- Music should correctly speed-up with speed shoes and slow down without them.
- AI gets the leader's layers when respawning.
- Fixed climbing on air bug which happens with Knuckles if you grab on a wall and let an object push you down.
- Fixed Sega screen.
- ROM title fixed.
(yeah, I know I said these last two would be the last ones... sue me)

Changelog for revision 0.04:
- Tails and Knuckles respawn better.
- AI follows slightly greater delay.
- New primary palette using Xenowhirl's method.
- The current leader always stays in front of the other two characters.
- All characters are playable in Sky Chase.
- Tornado doesn't jerk as much around when jumping, and should be exceedingly hard to fall from as player 1.
- Wing Fortress cutscene bugs fixed.
- Super palette rotation is independent for the 3 characters, and identical to S3&K's. Like in S3&K, there are some side effects of Super Tails.
- Fixed end of level results in Aquatic Ruin and Casino Night zones.
- Fixed breakaway panels in Wing Fortress.
- Knuckles climbing has been fixed when facing left.

---------

Changelog for revision 0.03:
The following bugs from revision 0.02 have been fixed:
- Sonic's AI still does not set an animation when respawning, so he uses whatever he was using when he disappeared.
- Mystic Cave vines, Wing Fortress hooks, plates and hangers don't work correctly with Tails or Knuckles (or with AIs). These were bugs for 2p Tails in the original too, but the Wing Fortress ones were harmless.
- Wind tunnels did not work correctly for Tails or Knuckles.
- Speed shoes speed up the music, instead of slowing it down.
- [CNZ] [t]he Pinball flippers and launchers don't seem to work unless everyone is present (as well as some other bugs with the same root cause).
- Layers get reset to the same layers of the character that hit the last starpole. This hopefully minimizes the layering issues.
- [edit]Forgot to mention: CPU characters will now respawn underwater and in a few other conditions which were filtered out before.

New feature: Tails and Knuckles are playable in Wing Fortress and Death Egg. Cutscene at the end is working well, and the improved AI does a good job of not falling to their deaths in the platformer sections. Still have to do the code for Sky Chase.

Of note: the level select is enabled by default as it makes it easier for debugging. You can enable it by holding A and pressing start at the title as usual (earlier revisions also had it enabled).

Edit: The values given below are inaccurate, and may lead to crashes, starting at version v0.06. Use them at your own peril.
While I haven't implement the character switching option, you can fiddle with variable $FFFF72. It is a word value, and the following values have work in the game:

"Team player" controls anyone? I just started this. I'll call it "Sonic and Tails and Knuckles in Sonic 2" if no one has a better idea. All three of them are capable of going Super separately too, but I don't know if I should give them separate ring counts or what.

Argh. Dammit, that is the first hack I am working with and you do this! I was waiting for the hack to be closer to ready (such as character selection, Sonic's AI still does not have a proper animation for getting back on screen, special stages are probably broken), but here is what I have so far. I also have been digging through multitap code to implement 3-players, but so far you can swap the characters with 'A' (the 2nd player can also do this, but only with the AI-controlled players).

The architect of the universe, didn't build a stairway, leading nowhere.

Posts:1832

Joined:22-July 08

Gender:Male

Location:Japan

Wiki edits:16

QUOTE (flamewing @ Nov 2 2010, 08:14 PM)

Argh. Dammit, that is the first hack I am working with and you do this! I was waiting for the hack to be closer to ready (such as character selection, Sonic's AI still does not have a proper animation for getting back on screen, special stages are probably broken), but here is what I have so far. I also have been digging through multitap code to implement 3-players, but so far you can swap the characters with 'A' (the 2nd player can also do this, but only with the AI-controlled players).

"Team player" controls anyone? I just started this. I'll call it "Sonic and Tails and Knuckles in Sonic 2" if no one has a better idea. All three of them are capable of going Super separately too, but I don't know if I should give them separate ring counts or what.

Argh. Dammit, that is the first hack I am working with and you do this! I was waiting for the hack to be closer to ready (such as character selection, Sonic's AI still does not have a proper animation for getting back on screen, special stages are probably broken), but here is what I have so far. I also have been digging through multitap code to implement 3-players, but so far you can swap the characters with 'A' (the 2nd player can also do this, but only with the AI-controlled players).

That is EXACTLY what I was looking for in Xeno's hack! Amazing work!

It works well too! Although, when I died in the boss of Aquatic Ruin, all the characters graphics were glitched!!

Although I guess my suggestions for his hack could work on this one as well, the one where Tails can carry both characters ala Sonic Heroes, and Knuckles can carry characters when climbing walls.

And Sonic could use a better return pose. Dunno what it could be though. :P

It works well too! Although, when I died in the boss of Aquatic Ruin, all the characters graphics were glitched!!

I will investigate what is causing this; thanks for the report.

QUOTE (RGamer2009 @ Nov 2 2010, 05:44 PM)

Although I guess my suggestions for his hack could work on this one as well, the one where Tails can carry both characters ala Sonic Heroes, and Knuckles can carry characters when climbing walls.

I actually have code for Tails to carry both of them, but it is disabled in the ROM I posted because I still haven't done the correct art/mappings for the situation. I am also preparing for Knuckles carrying people when gliding; but the idea of having him carry them when climbing is also good. I am also planning on Tails and Knuckles being able to tailgate after Sonic (particularly when super).

QUOTE (RGamer2009 @ Nov 2 2010, 05:44 PM)

And Sonic could use a better return pose. Dunno what it could be though. :P

My plan is to have him jump back into the screen, making him return the fastest of the 3.

Technically awesome, but I just don't seem to enjoy it that much because the characters lag behind too much. Not your fault, of course. Also, is the music supposed to slow down when you get speedy shoes?

A few bugs:- Instashield during the act clear screen messes up the letters.- When Tails is carrying Sonic, Sonic's legs go crazy happy dance.- Dying and respawning breaks it in a whole crazy way. You start from the beginning of the level, but the camera spawn at the last chekpoint you were at, then scrolls all the way back through the level. And when it gets back to the start, the character sprites are absolutely screwed.- Knuckles has issues climbing on surfaces. In addition, though somewhat unfixable, his lower jump height makes his following the other duo a lot more difficult.- Music doesn't return after getting an Extra Life.- The crash that occurred at the end of Aquatic Ruin also happened in Emerald hill 1. I presume they're the same bug as everyone else seems to have. But here are pics for reference!

Note that in both, Knuckles has just jumped and glided into the ground. Coincidence, I think NOT! It could totally have something to do with that reason Knuckles wasn't in Sonic 1, with the conveyor belts and stuff, right?

Right?

Anyway, this post may seem nitpicky as hell, but don't get me wrong. This was fantastic to play co-op, especially finding out that Tails can carry both Sonic AND Knuckles, albeit separately. Plus, I'm guessing you're aware of at least half of these issues already. Keep up the outstanding work!

So I decided to use a save state which allowed me to go Super in flamewing's hack...

Meet the TRUE Team Super Sonic!

Ah, so someone tried it :-)

I would suggest fiddling about with RAM address $FFFF72, but the posted version is very buggy. The next revision will fix it, though.

QUOTE (Irixion @ Nov 2 2010, 08:23 PM)

How the fuck did you find the VRAM space for this :V *downloads*

Lets see: I removed one of the monitors (the Robotnik one) to gain 4 tiles; that is where the life counter is. The old life counter has 12 tiles, which neatly fit the 3 character portraits. The new HUD was done to free up $20 tiles for Knuckles. I ported S3&K invincibility and super stars and code because it is more dynamic (loaded when needed) and smaller. I converted the shield to use DPLC and hand-edited it to minimize the number of tiles. This allowed me to fit invincibility stars, shield(s) and super stars in the same address, starting at tile $4CE, as only one of them show up at any given time; Sonic's shield is separate and starts $18 tiles later, because of the instashield, flamedash and bubble bounce. At tile $4BE, I was able to fit Knuckles' spidash dust/bubbles -- a neat $10 tiles. I still have $E tiles free at $5F2 (the old location of super stars).

QUOTE (footbigmike @ Nov 2 2010, 08:30 PM)

A few bugs:- Instashield during the act clear screen messes up the letters.- When Tails is carrying Sonic, Sonic's legs go crazy happy dance.- Dying and respawning breaks it in a whole crazy way. You start from the beginning of the level, but the camera spawn at the last chekpoint you were at, then scrolls all the way back through the level. And when it gets back to the start, the character sprites are absolutely screwed.- Knuckles has issues climbing on surfaces. In addition, though somewhat unfixable, his lower jump height makes his following the other duo a lot more difficult.- Music doesn't return after getting an Extra Life.

I didn't notice the instashield in act clear, but it is easily fixable now that I now about it.

Re: the legs: I may have forgotten something when I ported over the code from S3&K; I will go through it again.

The dying and respawning: I already have a fix for that (all of it). The Knuckles climbing: this is due to differences in the game physics. I already had to import a lot of things from S3&K to get the bubble shield bounce* working correctly, I may have to import some more to get climbing working right.

Re: the music: I think I already have it fixed here; I think it was an issue with too many sound effects.

QUOTE (footbigmike @ Nov 2 2010, 08:30 PM)

- The crash that occurred at the end of Aquatic Ruin also happened in Emerald hill 1. I presume they're the same bug as everyone else seems to have. But here are pics for reference!

Note that in both, Knuckles has just jumped and glided into the ground. Coincidence, I think NOT! It could totally have something to do with that reason Knuckles wasn't in Sonic 1, with the conveyor belts and stuff, right?

How exactly have you triggered it? Did you get hit as Knuckles glided over the ground, get hit while triggering a character swap or something? Also, what emulator are you using (or are you running on hardware)?

* Yes, bubble bounce. I have ported the S3&K shields and they are already on the ROM I posted. However, because Xenowhirl forced my hand early, I didn't have time to edit the level layouts to include monitors for them. And no, different characters can't have different shields -- there is not enough VRAM space for that... although if I can free up $18 tiles more, it will be possible, as Sonic already has separate VRAM space for his shield -- the instashield and shield abilities required it.

QUOTE (Drex @ Nov 2 2010, 08:58 PM)

QUOTE (footbigmike @ Nov 2 2010, 06:30 PM)

- Knuckles has issues climbing on surfaces. In addition, though somewhat unfixable, his lower jump height makes his following the other duo a lot more difficult.

I was just wondering if it would be possible to have Knuckles' jump height match the other characters while in AI mode. That maybe something to consider doing if possible.

I was thinking of doing that too (the AI is crippled enough without it), as well as to fix the cutscene at the end of Wing Fortress.

So I decided to use a save state which allowed me to go Super in flamewing's hack...

Meet the TRUE Team Super Sonic!

Ah, so someone tried it :-)

I would suggest fiddling about with RAM address $FFFF72, but the posted version is very buggy. The next revision will fix it, though.

QUOTE (Irixion @ Nov 2 2010, 08:23 PM)

How the fuck did you find the VRAM space for this :V *downloads*

Lets see: I removed one of the monitors (the Robotnik one) to gain 4 tiles; that is where the life counter is. The old life counter has 12 tiles, which neatly fit the 3 character portraits. The new HUD was done to free up $20 tiles for Knuckles. I ported S3&K invincibility and super stars and code because it is more dynamic (loaded when needed) and smaller. I converted the shield to use DPLC and hand-edited it to minimize the number of tiles. This allowed me to fit invincibility stars, shield(s) and super stars in the same address, starting at tile $4CE, as only one of them show up at any given time; Sonic's shield is separate and starts $18 tiles later, because of the instashield, flamedash and bubble bounce. At tile $4BE, I was able to fit Knuckles' spidash dust/bubbles -- a neat $10 tiles. I still have $E tiles free at $5F2 (the old location of super stars).

QUOTE (footbigmike @ Nov 2 2010, 08:30 PM)

A few bugs:- Instashield during the act clear screen messes up the letters.- When Tails is carrying Sonic, Sonic's legs go crazy happy dance.- Dying and respawning breaks it in a whole crazy way. You start from the beginning of the level, but the camera spawn at the last chekpoint you were at, then scrolls all the way back through the level. And when it gets back to the start, the character sprites are absolutely screwed.- Knuckles has issues climbing on surfaces. In addition, though somewhat unfixable, his lower jump height makes his following the other duo a lot more difficult.- Music doesn't return after getting an Extra Life.

I didn't notice the instashield in act clear, but it is easily fixable now that I now about it.

Re: the legs: I may have forgotten something when I ported over the code from S3&K; I will go through it again.

The dying and respawning: I already have a fix for that (all of it). The Knuckles climbing: this is due to differences in the game physics. I already had to import a lot of things from S3&K to get the bubble shield bounce* working correctly, I may have to import some more to get climbing working right.

Re: the music: I think I already have it fixed here; I think it was an issue with too many sound effects.

QUOTE (footbigmike @ Nov 2 2010, 08:30 PM)

- The crash that occurred at the end of Aquatic Ruin also happened in Emerald hill 1. I presume they're the same bug as everyone else seems to have. But here are pics for reference!

Note that in both, Knuckles has just jumped and glided into the ground. Coincidence, I think NOT! It could totally have something to do with that reason Knuckles wasn't in Sonic 1, with the conveyor belts and stuff, right?

How exactly have you triggered it? Did you get hit as Knuckles glided over the ground, get hit while triggering a character swap or something? Also, what emulator are you using (or are you running on hardware)?

* Yes, bubble bounce. I have ported the S3&K shields and they are already on the ROM I posted. However, because Xenowhirl forced my hand early, I didn't have time to edit the level layouts to include monitors for them. And no, different characters can't have different shields -- there is not enough VRAM space for that... although if I can free up $18 tiles more, it will be possible, as Sonic already has separate VRAM space for his shield -- the instashield and shield abilities required it.

QUOTE (Drex @ Nov 2 2010, 08:58 PM)

QUOTE (footbigmike @ Nov 2 2010, 06:30 PM)

- Knuckles has issues climbing on surfaces. In addition, though somewhat unfixable, his lower jump height makes his following the other duo a lot more difficult.

I was just wondering if it would be possible to have Knuckles' jump height match the other characters while in AI mode. That maybe something to consider doing if possible.

I was thinking of doing that too (the AI is crippled enough without it), as well as to fix the cutscene at the end of Wing Fortress.

All sweetness to know the game is getting bug-fixed!

Oh yeah, one more thing. I went to Sky Chase out of lols, and I noticed that from here on out it is just Sonic that is controllable. Knuckles is no where in sight for the rest of the game, and Tails leaves with the plane as in the game he does.

What I propose is that the characters all stick around on Sky Chase and CAN be changed, but one CPU is hanging on/flying next to the plane, while one stays in the cockpit. This allows only one character to be playable on the plane in the level at a time. When they are switched, the characters leap to their new positions.

At Wing Fortress, The plane gets shot down. All three characters leap off the plane, smoking, falls to its demise. The level plays as normal with all three characters. At the end, when Robotnik is taking off, the characters leap on BEFORE the spaceship leaves the fortress, and ride with it to the station, eliminating the need for the Tornado.

Death Egg happens and goes. They are falling. Knuckles can glide. Tails grabs Sonic, and the cut scene at the end happens with out the Tornado.

This is basically an idea for keeping all three characters in the game till the very end.

Oh yeah, one more thing. I went to Sky Chase out of lols, and I noticed that from here on out it is just Sonic that is controllable. Knuckles is no where in sight for the rest of the game, and Tails leaves with the plane as in the game he does.

What I propose is that the characters all stick around on Sky Chase and CAN be changed, but one CPU is hanging on/flying next to the plane, while one stays in the cockpit. This allows only one character to be playable on the plane in the level at a time. When they are switched, the characters leap to their new positions.

At Wing Fortress, The plane gets shot down. All three characters leap off the plane, smoking, falls to its demise. The level plays as normal with all three characters. At the end, when Robotnik is taking off, the characters leap on BEFORE the spaceship leaves the fortress, and ride with it to the station, eliminating the need for the Tornado.

Death Egg happens and goes. They are falling. Knuckles can glide. Tails grabs Sonic, and the cut scene at the end happens with out the Tornado.

This is basically an idea for keeping all three characters in the game till the very end.

All good ideas. I will get to it; please note that I didn't know almost about S2 hacking until a couple weeks ago, and this hack is just over one week old today -- I simply didn't had time to get everything working as I wanted because Xenowhirl forced me to release early :-).