don't click here

Sonic Classic Heroes

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

  1. Xenowhirl

    Xenowhirl

    Tech Member
    175
    0
    0
    What I suggested for this level -- merge colors $5 and $9 in line 2 -- should work for this boss too. Since you're using $F, the glowing red in that slot on line 2 can be moved into slot $5. All of the level art can stay as it originally was if you do that.
     
  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)
    Except for rings, which use slot $5. Although if I edit slot $9 to be (64,64,32), and edit the rings, I will free a slot in every level. Hm, I hadn't thought of that... fortunately, that will be rather easy to change now.
     
  3. Youtube'd

     
  4. Xenowhirl

    Xenowhirl

    Tech Member
    175
    0
    0
    Yes, that was exactly the strategy I meant. That's what I've been doing to get a free color in every level. Some other things like checkpoints and egg prisons require editing too but it's not so bad. But it causes trouble in some levels (looks bad on MTZ nuts and changes the OOZ background kind of a lot) so I would keep using your other method wherever you can, and have two versions of the ring art to load depending on the level.

    Oh, here's a bug report also: I saw the breakaway tiles in WFZ getting stomped in VRAM by dust effects, probably the Obj08 on Tails.
     
  5. 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)
    That is a good idea; but you said that after I edited almost everything for the new palette... ugh. Well, fortunately, I do keep backups. This does mean I will have to double Knuckes shoe art, one for color $F and one for color $5 (Super Sonic's eyes too, but that is minor -- two tiles only).

    Thanks for the report, but I had already found and fixed that when I made that status report earlier. I removed the (unused) jet badnik (which was loaded in WFZ) and used the VRAM for it; and you are right, it was Tails' Obj08.

    On another note: one of the things I made in preparation for the hack was a add a lot of equates for art tiles (all I could figure out as being art tiles) and couple of macros and constants to convert an art tile to VRAM. This really comes in handy when looking for VRAM space (but you do need to know the sizes of stuff). I also figured out a few things, particularly regarding collision, as well as a few unknown variables (CNZ bumpers, WFZ wind tunnels, one in Tails' CPU control code). I will backport these things into clean SVN and commit them ("backport" because I split s2.asm into a cleaner s2.asm and 295 included files, based off of the structure of the SVN Sonic 1 disassembly); but I can send a diff file to you first if you want to look into it (it will also show how much work you dodged to make Knuckles collide correctly with stuff because I already did it...).
     
  6. Xenowhirl

    Xenowhirl

    Tech Member
    175
    0
    0
    Couldn't you swap $5 and $F in palette line 2 of those levels, to only need art for $F? I don't know which is easier though, and I doubt you're aiming to get the ROM size as small as the original.
     
  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)
    That is what I ended up doing after I rebooted my brain, yeah... I need to stop doing things before thinking about how to do them.
     
  8. ICEknight

    ICEknight

    Researcher Researcher
    Just a few bugs 'n things:


    -The water surface in Aquatic Ruin has some red shades.

    -You can make the left tower in Aquatic Ruin's boss disappear by gliding to the ground when facing left, with Knuckles.

    -Knuckles jumps higher than usual, now he doesn't have weak points... By the way, did all the characters really have the same stats in Sonic 3, besides said jump? If so, please consider adding an option to use some stats akin to the competition mode's, seeing how playing as Sonic would be kinda pointless...

    -After getting through the signpost in Hill Top 1, I started swapping characters and got a Sonic sign with Knuckles text. One of the letters in "KNUCKLES" appeared as part of the moving clouds in the background.

    -AI players can die when no rings are collected.

    -AI players can break monitors.

    -Sonic 3 shoe monitors (just inconsistant with the rest of the items from Sonic 2).

    -Sonic uses his water slide animation when getting hit.

    -Aren't the cycling palettes in Emerald Hill's waterfalls doing it wrong?

    -Knuckles looks very odd when he's flying right above you (facing the screen). Perhaps he could just drop by (with his usual pose) once his X position is the same than the player's?

    -Monitors behave like in Sonic 3 & Knuckles. I don't know if their behavior comes with the player objects, though, or if the programmers actually wanted them to be breakable by just jumping from their side (for the monitors at the end of Sandopolis 1, perhaps?).

    -The ring counter looks a bit strange, wouldn't it be better to just use the existant ring graphics? That would optimize the VRAM even better, and it could be animated like in the 8 bit games.

    -Now that both AI players jump at the same time again, wouldn't it be more consistant with Sonic 2 and 3 if they jumped with the same delay as Tails usually does?

    -Perhaps a subtle sound effect could play when switching players, like the one that's used in Sonic 3's Vs. mode when cycling between Sonic, Tails and Knuckles?


    + - -Also, no online multiplayer.  
     
  9. steveswede

    steveswede

    Member
    5,032
    1
    16
    Ask my hand
    Fighting against the Unitary State of Europe
    Man that would be bloody irritating to hear as it would be highly repetitive throughout the game.
     
  10. ICEknight

    ICEknight

    Researcher Researcher
    He could also make them go "HERE WE GO LEAVE IT TO ME GOT IT". + - =P  


    EDIT: I'm editing that one from my previous post, since I was just kidding but it game me an idea.
     
  11. nineko

    nineko

    I am the Holy Cat Tech Member
    6,308
    486
    63
    italy
    So I finally gave this a complete playthrough. It was definitely amazing, with some interesting techniques which can be exploited to beat some zones in a very short time (e.g. fly up as much as you can as Tails carrying Knuckles, then glide all the way to the end of the level). I found a few bugs, not sure if they were already noticed:

    [​IMG] [​IMG]
    Hill Top needs moar VRAM, I guess.

    [​IMG]
    Knuckles goes for a walk.

    [​IMG]
    Same old bug that happens in Sonic 3 as well. Hang on a wall, let some object push you down.

    [​IMG] [​IMG]
    2P and 3P characters can cross the barrier if they're not on the visible screen. And the A button makes things worse.

    [​IMG]
    The laser doesn't hurt you.

    [​IMG]
    This should be Amy. Same in the next picture of the slideshow.

    [​IMG]
    What.

    [​IMG]
    This should be Amy.

    And yeah it was fun defeating the final boss controlling Sonic as the second player... I could use the instashield AND I couldn't die :3
     
  12. Miles3298

    Miles3298

    Member
    583
    23
    18
    Going super when not controlling Sonic messes up the art (the 'mappings', I assume?)
     
  13. 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)
    Thanks, I will investigate those.

    He only jumps higher than (his) normal if being controlled by the AI. And when I switch some of the shield monitors to S3&K shields, Sonic will have something extra. Also, Super Sonic is faster and accelerates and brakes faster than the other two. Plus, insta-shield rules.

    That should be simple to fix; I just have to cache what character hit the signpost and use it for the text at the end. Currently, whatever character is selected when the text object is loaded gets credit, and whatever character was selected when the signpost stops gets the image.

    These are by design. Also, when I swap some shield monitors for the S3&K shield monitors, the speed shoes will look less out of place. (and besides, only the speed shoe monitor is actually different between S2 and S3). As for the AI dying: I was planning on them losing some rings when hit and reducing (the global, shared) lives when dying, but it turned out to make the game too hard.

    He does drop by when he is close enough; I don't have him drop too early because he can get stuck in higher levels or even inside a wall. (in a version before I released the first public version, Tails and Knuckles did drop when having the same x position; but they often ended up offscreen or inside walls).


    That is a good idea.

    I am still tweaking the AI delays, trying to find a good compromise between their ability to follow well and the delay.

    Ah, those damn background animations. The earlier revisions had similar problems in Aquatic Ruin and Casino Night. Fortunately, I already have a handle on fixing those now; I just hadn't noticed this one.

    Thanks for the reports.

    Yeah, that is an issue in other locations too. The issue being, of course, that the game does not check collisions offscreen. I think that the only way to prevent that in that location is to use different collision layers.

    For this and all other ending pictures: aye, I am aware of the issues. I am worrying about getting the normal gameplay 100% before worrying with special stages, ending and title screen. The last two items in my list are, in fact, the Sega screen and the ROM title.

    Together with a dumb mistake. Thanks for the report.

    Edit: Oh, I almost forgot. I am looking for improving the respawning of AI Sonic to make a bit more sense (particularly in Sky Chase). I still have to investigate VRAM to see if there is enough space, and I was planning on making this a surprise, but I can't make my mind: which one of these do you think looks best?
    [​IMG]
    The plan being, of course, to have Cream carry Sonic down when he respawns. Of these three versions, the first one would be restricted to Sky Chase and Wing Fortress; the other two use the same palette as Sonic, Tails and Knuckles. (the sprite is done by Deebs, by the way, I am just using a different set of colors).
     
  14. Xenowhirl

    Xenowhirl

    Tech Member
    175
    0
    0
    That's funny, those last two are some of the very first things I tried, along with making a palette to fit 3 players in the special stages. Says something about my priorities... (I couldn't get green working on the Sega screen but I know how to fix it now)
    [​IMG]


    Out of those, I prefer the one on the right, although it seems to use a color not quite in your palette (the wannabe-orange pink on the head). But here, let me make it harder to decide by adding three new choices:
    [​IMG]
    These use your regular palette. I like the middle one the most but it depends on how bright the sprite looks in the level.
     
  15. 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)
    That is similar to something I thought for he Sega screen. I thought of having the 3 of them running sequentially one after the other, each shading the screen with his colors. But then I realized it would increase the length of the screen too much. Out of curiosity: how does the build script work for the Sega screen? I am asking because I had tried it earlier (before I moved it to next-to-last in the queue) and couldn't get it to work. From what I gather, I have to edit the "fixpointer" call to point to the correct entry in the DPLC as well as editing the mappings for large Sonic, and the sprite will be scaled up. But even after doing that I still get a garbled up graphic, similar to the one in the released revision...

    Unless Imageshack garbled up the picture, it should be red for the shade and pink (Knuckles' pink) for the bright part.

    These look very nice indeed. But you are right, I guess I will have to test each of them now to see which one looks best in-game. On to find VRAM space...
     
  16. For Sonic's respawning animation... why not use his cutscene falling animation where he's twirling around?

    Eg: Beat Deathegg Zone without emeralds!
     
  17. Azookara

    Azookara

    yup Member
    I had an idea at one point where (if you could code this in) Sonic will all of the sudden, to get back in the screen, launch from the bottom of the screen like he just shot up from an offscreen ramp.
     
  18. Xenowhirl

    Xenowhirl

    Tech Member
    175
    0
    0
    The part of the build script to edit is where it says "MapRUnc_Sonic $2D 0 4". The $2D should be the mapping frame number of the first running sprite, and the 4 is the number of running sprite frames. Also look at SonicRunningSpriteScaleData in the latest SVN; it describes the size and number and order of sprite pieces, and that has to match up with your sprite mapping data. At loc_3A6A2 it says to copy the enlarged tiles into VRAM at $1100, and ObjB0_SubObjData says to use $1100 as the base address, so the final thing is to run the game and dump the VRAM at the Sega screen, then either clip off the first $1100 bytes or edit the base address to be 0, and use that as the graphics while you're editing the large Sonic mappings.

    In my opinion, getting rid of the checksum check saves so much startup time that it entitles you to make the Sega screen take longer if you want it to.
     
  19. nineko

    nineko

    I am the Holy Cat Tech Member
    6,308
    486
    63
    italy
    Everyone should get rid of the checksum check.
     
  20. ICEknight

    ICEknight

    Researcher Researcher
    I really don't like the idea of adding Cream to Sonic's respawn action. I honestly think it works quite well as it is now.