don't click here

Sonic Classic Heroes

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

  1. In regards to the shield abilities thing, I figured I'd put in my vote for not being a huge fan of it. I think rather than putting all of those abilities in it would be better to find abilities from other games that would be fun to implement, if there's any that come to mind.
     
  2. Brainulator

    Brainulator

    Regular garden-variety member Member
    Just before notifications are purged, I shall draw up attention with another topic that may or may not matter: the demo screens. These are... broken. Here's what's wrong with how they play out:

    • Emerald Hill: Tails takes the lead as Sonic and Knuckles get hit by a Masher, stumble for a bit, move forward, jump randomly, and when Tails joins, they push a ring monitor.
    • Chemical Plant: In the middle, they mistime a jump, move the opposite direction randomly for a bit, and then just... stand there. They briefly move a bit before the demo ends.
    • Aquatic Ruin: Sonic runs into a Grounder (as does Knuckles a second later), then into two different Chop Chops.
    • Casino Night: This one's okay, but towards the end, the trio just stand there.
    The only gameplay variable that affects these demos is the Super Dash mode.
    • Emerald Hill: Pushing a spring, some awkward jumps and rolls... this one is okay, too.
    • Chemical Plant: The trio push a wall and once again stand around.
    • Aquatic Ruin: Totem pole pushing, drowning towards the end, meh...
    • Casino Night: This one is the best. What is normally a Insta-Shield is now a Super Dash to the right. Super Sonic eventually stalls in an area where he gets crushed. This resets the demo timer, and when you lose all your lives? The Super Dash save file you last used (assuming you used one) will be switched to Team Sonic with 3 lives (continues are not affected), normal co-op, the default character order, and all Emeralds but not Super Dash or direct Hyper transformation.
    I guess the demo screens exist for a) Genesis units on display in stores (something that doesn't apply here), b) leftovers from Sega's arcade days, and c) anti-screen burn-in (which the S3(K) and SCH save screen deny). So...
     
  3. DigitalDuck

    DigitalDuck

    Arriving four years late. Member
    5,168
    295
    63
    Lincs, UK
    TurBoa, S1RL
    The answer's mostly a), attract screens are still used in modern games for the same reason.

    As for c), the save screen is a really bad counter-example when it moves and is only supposed to be on-screen for a short amount of time. A better example would be pausing the game.
     
  4. ElectricSparx

    ElectricSparx

    20
    0
    1
    United States
    Temporal Shift: Flow of Eternity
    I feel the drop dash would work best with down + C myself. I tend to hold down the button when I do the insta-shield or trigger a shield ability, and having that do the drop dash instead would throw me off.

    Of course, if you can't decide which option to go for, maybe you should just implement both methods and make a toggle for it?
     
  5. rata

    rata

    Member
    622
    23
    18
    Argentina
    Trying to be useful somehow.
    Not to mention that b) is also pointless since Sega keeps doing arcades so there's not leftovers from past days or something.
     
  6. 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)
    I mentioned it before, but I can forgive not wanting to read the entire thread for it. This is a known issue, for which I really, really, really, REALLY don't give a fuck about at the moment because any change I make internally has the potential to desynch the demos, and I would have to record them again.

    At some point in the future I will record new demos; for now, their priority is -infinity.
     
  7. Fred

    Fred

    Taking a break Oldbie
    1,563
    116
    43
    Portugal
    Sonic 3 Unlocked
    Then maybe you should lock them out of the public build if they're broken and you're not fixing them.
     
  8. 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 solution, which I will be doing.
     
  9. ICEknight

    ICEknight

    Researcher Researcher
    I was about to post these words.
     
  10. Brainulator

    Brainulator

    Regular garden-variety member Member
    Funny thing, I used the search function this time and came out empty.
     
  11. lordexodus

    lordexodus

    Member
    3
    0
    1
    My apologies for entering this post late. Will there be an updated 'Sonic Classic Heroes' that has 'all' characters (Rouge, Silver, etc) coming out soon? If so, is there a specific release month?

    This update with the Drop Dash will definitely be awesome... :)
     
  12. Jeffery Mewtamer

    Jeffery Mewtamer

    Blind Bookworm Member
    1,732
    22
    18
    @Lordexodus: The impression I've gotten is that most characters up for consideration are likely to be implemented on a timescale measured in years rather than months, which would be in keeping with how long it's been since this hack was first unveiled(this thread's initial post was nearly six years ago). Granted, I can't read Flamewing's mind and the technical issues here are beyond me, so the unreleased characters might be much further along in development than I've been lead to believe and adding additional characters might be easier than I've been lead to believe.
     
  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)
    The two things that impact development of SCH are my job (I don't have nearly as much free time as I used to, and this free time is split among several projects, my wife and my cat) and the fact that the sprite sheets are done by volunteers on their free time.

    I have been thinking of giving more people access to SCH code to work around the former issue (so it doesn't depend so much on me); for the latter issue, you may consider throwing a couple donations to the spriters to support their work.

    As for releases, there is likely to be a release with Team SegaSonic, Team Super, Team Hyper, and a ton of bugfixes and improvements before any other teams are done.
     
  14. MathUser

    MathUser

    3rd top wiki contributor Researcher
    2,133
    5
    18
    Whens the hacking contest? I'm guessing the next release will be around then.
     
  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)
    You are guessing wrong; I barely had any time to work on anything this year, and won't be entering anything on the hacking contest this year.
     
  16. I think y'all need to remember (again) the project is being worked on in his free time. Slight bummer to see it not make the contest but understandable.

    EDIT: Oh! Out of curiosity, what are the other projects you have going on?
     
  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)
    On the Sonic side, and other than SCH and BFD, I have (in no order):
    • three hack ideas I am working on at a conceptual level (there is no code, art or music, just ideas);
    • one hack I started working on (but had nowhere near enough time to make it in time for the contest);
    • one mini-hack I been wanting to make (and which would take a few minutes to do it);
    • trying to figure out a way to allow editing the appearance of S2 special stage tracks;
    • looking into ways of improving the framerate of S2 special stages (using different methods than the mini-hacks I had made);
    • splitting off my libraries and tools off from s2-ssedit;
    • I am working on a Genesis optimization guide;
    • writing a 68k/z80/SH2 assembler to get rid of AS;
    • writing a 68k peephole optimizer that makes source code transformations;
    • Sonic CD 100% TAS (still routing and deciding what 100% will mean);
    • Sonic CD disassembly;
    • updating Sonic CD any% TAS with new tricks;
    • improve my Sonic TAS lua HUD (planning to show distances for collision with terrain, ghost display, some auto-optimizers);
    • see about adding 68k and z80 support for highlight.js.
    Non-Sonic:
    • Seeing if I get some work done on Exult (with a TODO list several miles long);
    • try to get some work done on my usecode decompiler;
    • trying to make U7: Black Gate and U7: Serpent Isle TASes;
    • data extractor for Inkle games (notably, Sorcery! series) and maybe a repacker;
    • X-Men 2: Clone Wars disassembly;
    • (redacted);
    • lots more I am probably forgetting.

    Edit: added a couple more things I remembered.
     
  18. TheLastWhiteFlame

    TheLastWhiteFlame

    Member
    13
    0
    0
    Earth
    S1 & S2 Restored
    I may be able to help you with 4 of those ideas:

    1. I already have a partially working SCD disassembly on my pc.
    2. I have found a few ways to improve the framerate on S1 & S2 special stages.
    3. I know a thing or 2 about lua that may be helpful.
    4. I know a way to edit the appearances of the S2 special stages.
     
  19. Jeffery Mewtamer

    Jeffery Mewtamer

    Blind Bookworm Member
    1,732
    22
    18
    And now I don't feel so bad that I never make as much progress as I'd like on my pet project to do list. To say Flame Wing's list eclipses my own would be an understatement.
     
  20. 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)
    Lets see:
    I have a full 100% disassembly of R11A, which is done at a level near to that of the S2 Git disassembly (basically, every identifiable byte has been identified); and several IDA scripts which I plan to use to disassemble the other zones more quickly, then compare the differences. What I really need is to identify where data is (most likely using qiuuƛ SCD data dump) so it is auto-identified to make the process go smoother.

    I have also been working with TheStoneBanana and Ralakimus, both of which also have buildable partial SCD disassembies.

    My aim is to have a single codebase for all levels, allowing you to mod the whole game by editing things once. Then, see if it is possible to make a Sonic NoCD hack, with the whole game in a plain MD.

    I know of 3 ways to do it, and I think I may have a few more. These are the ones I know work (base framerate is (60/9 = 6.666666667 FPS):
    1. pre-decompressed plane data, transferred each frame at the same rate as the original (7 tile rows per frame). Disadvantage is that the data becomes 10 times larger. This allows 12 FPS.
    2. Same as above, but transferring 14 tile rows per frame instead using DMA. This allows 24 FPS.
    3. Not displaying the track for an added frame. By itself, this allows 7.5 FPS; combined with (1), you get 15 FPS; combined with (2), you get 30 FPS.
    And these are the ones i am unsure:
    • instead of 128x32 planes, use per-frame art for a 32x32 plane and transfer art+plane mappings. I think there is not enough bandwidth for this (my calculations indicate that the art+plane mappings would take 4 frames to upload).
    • Try merging frames: each 128x32 plane "draws" not one, but 2 or 4 frames and hscroll is changed to show the others when needed. I need to write a frame merger* to test this, and it might turn out that I need to allow a small tolerance from bit-perfect rendering so that this can work. Would need to upload art and mappings frequently, unless a universal tileset for all frames is possible.
    • Try using raster effects (in hblank) to double the lines of each tile, to reduce required bandwidth on the above two options.
    I'd love to hear what you have to suggest about this.

    The issue is basically time; in order to improve the script, I am planning on rewriting it in Moonscript, rewrite ROM detection code and add several improvements that allow loading ROMs based on the serial number, all so I can find collision data automatically. Before this, I rolled out my own OO code, and it takes some time getting re-used to it when I mess around with the script. But if you want to help, all you will need is a GitHub account.

    So do I, I am the guy that cracked the format and documented it completely on S2 Git disassembly; the issue is coming up with a good UI for it. I have an idea on how to take an image and import it as closely as possible using the SS tiles, and you would edit based on that.