Random Hack/Mini Project Thread

Discussion in 'Engineering & Reverse Engineering' started by Malevolence, Jul 4, 2009.

  1. GenesisFan64

    GenesisFan64

    The bright side of the dark side. Member
    108
    0
    16
    Double post:

    <a href="http://theocas.net/fs/u/4cb8d494e44723.59068120_S1_SocketDrv.bin" target="_blank">Socket sound driver in Sonic 1</a>

    Note: No DAC
     
  2. Andlabs

    Andlabs

    「いっきまーす」 Wiki Sysop
    2,175
    0
    0
    Writing my own MD/Genesis sound driver :D
    <!--quoteo(post=517774:date=Oct 15 2010, 12:37 PM:name=Jaseman)--><div class='quotetop'>QUOTE (Jaseman @ Oct 15 2010, 12:37 PM) <a href="index.php?act=findpost&pid=517774"><img src="public/style_images/retro/snapback.png"></a></div><div class='quotemain'><!--quotec-->Sorry for the extended n00bness, but how would I go about getting the GEMS sound files in this? And how could I extract GEMS sound files from games?<!--QuoteEnd--></div><!--QuoteEEnd-->The reason why I haven't ripped any DAC out of GEMS games yet is because I was planning on documenting the locations of the data in every GEMS game one day. It's actually really trivial since the GEMS initialization routine takes the pointers to everything, so all I would need to know is the size of the item on the list closest to the end of the ROM (assuming it's all contiguous, that is).
     
  3. ColinC10

    ColinC10

    Tech Member
    <!--quoteo(post=517771:date=Oct 15 2010, 05:34 PM:name=KingDedede16)--><div class='quotetop'>QUOTE (KingDedede16 @ Oct 15 2010, 05:34 PM) <a href="index.php?act=findpost&pid=517771"><img src="public/style_images/retro/snapback.png"></a></div><div class='quotemain'><!--quotec--><!--quoteo(post=517594:date=Oct 14 2010, 09:51 PM:name=theocas)--><div class='quotetop'>QUOTE (theocas @ Oct 14 2010, 09:51 PM) <a href="index.php?act=findpost&pid=517594"><img src="public/style_images/retro/snapback.png"></a></div><div class='quotemain'><!--quotec--><!--quoteo(post=517587:date=Oct 14 2010, 09:20 PM:name=KingDedede16)--><div class='quotetop'>QUOTE (KingDedede16 @ Oct 14 2010, 09:20 PM) <a href="index.php?act=findpost&pid=517587"><img src="public/style_images/retro/snapback.png"></a></div><div class='quotemain'><!--quotec-->
    I hope you guys find this hack of mine a little fun and challenging. If anyone knows how I might be able to remove that group of rings I missed in EHZAct1 without having to redo the entire hack all over again, that would be great. :)<!--QuoteEnd--></div><!--QuoteEEnd-->
    Find the object code for the rings (Something like ObjXX, where XX are hex numbers) and add an RTS directly under the label. That makes the object code return immediately and therefore, disappear.
    <!--QuoteEnd--></div><!--QuoteEEnd-->
    It think I might be able to figure that out...but I'm quite the noob hacker. lol

    So I'm gonna need a hex editor for this? And I hate to ask, but what does RTS mean? :ohdear:
    <!--QuoteEnd--></div><!--QuoteEEnd-->
    Rings are obj25. In Sonic 1, rings are treated the same way as any other object, so by disabling obj25 you'll remove all rings. However, Sonic 2 treats rings as a special case and normally doesn't use obj25. Instead, rings are handled by the RingsManager routine, so you need to stop this from running.

    If you're using SonEd2, that means you're using a split disassembly. So, to make changes to the code, you just need to open "s2.asm" in a text editor, do a search for the thing you want (in this case, "RingsManager"), make the change and then save and build. If you don't know how to code in ASM, don't worry, as you'll be able to get by with just two things!

    First, a semicolon ";" means a comment, so place this in front of individual lines to prevent them from executing. Secondly, "rts" means "<b>r</b>e<b>t</b>urn from <b>s</b>ubroutine", so place this within a block of code to stop anything below it executing. In your case, you want to type it just below the "RingsManger:" label, so that any time it tries to run it immediately exits again.
     
  4. Namo

    Namo

    take a screenshot of your heart Member
    2,915
    0
    0
    <!--quoteo(post=517941:date=Oct 15 2010, 06:27 PM:name=GenesisFan64)--><div class='quotetop'>QUOTE (GenesisFan64 @ Oct 15 2010, 06:27 PM) <a href="index.php?act=findpost&pid=517941"><img src="public/style_images/retro/snapback.png"></a></div><div class='quotemain'><!--quotec-->Double post:

    <a href="http://theocas.net/fs/u/4cb8d494e44723.59068120_S1_SocketDrv.bin" target="_blank">Socket sound driver in Sonic 1</a>

    Note: No DAC<!--QuoteEnd--></div><!--QuoteEEnd-->

    This is pretty glitchy - the explosions are random letters and the flickies are letters as well. Also, I paused it and the game froze.
     
  5. MainMemory

    MainMemory

    Every day's the same old thing... Same place, diff Tech Member
    4,338
    32
    28
    SonLVL
    <a href="http://x-hax.cultnet.net/MainMemory/s2srcontrol.7z" target="_blank">Sonic 2 Secret Rings Control</a>, a port of SatSR's controls to S2.
    Tails is disabled, 2P is disabled, the level select screen always appears when starting the game.

    Controls:
    Press nothing to move forward
    Press the opposite direction to walk backwards
    Press C to jump
    Press C while jumping to do a homing attack or jump dash
    Jump while holding back to hop backwards, but this leaves you vulnerable
    Hold B to stop
    Press B in the air to do a jump cancel (stop moving forwards and shoot down)
    Hold B or back while in the air to not move forwards
    Hold A to perform Speed Break, draining your rings and making you invincible
    Sonic will turn around when he hits: a spring, a CPZ booster, or the bouncy walls in Metropolis.
     
  6. <!--quoteo(post=537842:date=Dec 12 2010, 10:14 PM:name=MainMemory)--><div class='quotetop'>QUOTE (MainMemory @ Dec 12 2010, 10:14 PM) <a href="index.php?act=findpost&pid=537842"><img src="public/style_images/retro/snapback.png"></a></div><div class='quotemain'><!--quotec--><a href="http://x-hax.cultnet.net/MainMemory/s2srcontrol.7z" target="_blank">Sonic 2 Secret Rings Control</a>, a port of SatSR's controls to S2.<!--QuoteEnd--></div><!--QuoteEEnd-->

    Gave this a try and it's certainly interesting. Managed to get through all of Emerald Hill and then got stuck in the first act of Chemical Plant thanks to not being able to go the other direction. Still, it's pretty fun, good work!
     
  7. MainMemory, I am determined to beat each zone in this manner! I love a good challenge.

    EDIT: Case in point:

    <img src="http://img574.imageshack.us/img574/7485/s2srcchemicalplantact1.jpg" border="0" class="linked-image" />

    <img src="http://img443.imageshack.us/img443/7189/s2srcchemicalplantact2.jpg" border="0" class="linked-image" />
     
  8. MainMemory

    MainMemory

    Every day's the same old thing... Same place, diff Tech Member
    4,338
    32
    28
    SonLVL
    Updated with fixed homing attack, now targets badniks, monitors, bosses, springs, signpost, breakable block, bumpers.
     
  9. <!--quoteo(post=537962:date=Dec 13 2010, 05:07 PM:name=RGamer2009)--><div class='quotetop'>QUOTE (RGamer2009 @ Dec 13 2010, 05:07 PM) <a href="index.php?act=findpost&pid=537962"><img src="public/style_images/retro/snapback.png"></a></div><div class='quotemain'><!--quotec-->EDIT: Case in point:

    <img src="http://img574.imageshack.us/img574/7485/s2srcchemicalplantact1.jpg" border="0" class="linked-image" />

    <img src="http://img443.imageshack.us/img443/7189/s2srcchemicalplantact2.jpg" border="0" class="linked-image" /><!--QuoteEnd--></div><!--QuoteEEnd-->

    This reminds me: the Sonic 2 Secret Rings Edition should have a challenge called "Hold Right to Win". This playability should be included in that game ALONG WITH THAT CHALLENGE.

    The legitimate "Hold Right to Win" challenge was just made by MainMemory. We just need to implement this as a challenge mode in Sonic 2 Secret Rings Edition and voilá (is this how this word is written?).
     
  10. MainMemory

    MainMemory

    Every day's the same old thing... Same place, diff Tech Member
    4,338
    32
    28
    SonLVL
    Well, I'd pretty much have to make two versions of each of Sonic's movement routines, but I could probably do it.
     
  11. Well, they challenged you to put this challenge in that hack once. And it seems you've finally reached the feat with this hack.
     
  12. Xenowhirl

    Xenowhirl

    Tech Member
    175
    0
    0
    <!--quoteo(post=537971:date=Dec 13 2010, 02:59 PM:name=MainMemory)--><div class='quotetop'>QUOTE (MainMemory @ Dec 13 2010, 02:59 PM) <a href="index.php?act=findpost&pid=537971"><img src="public/style_images/retro/snapback.png"></a></div><div class='quotemain'><!--quotec-->Updated with fixed homing attack, now targets badniks, monitors, bosses, springs, signpost, breakable block, bumpers.<!--QuoteEnd--></div><!--QuoteEEnd-->
    This is kind of fun. Boss fights are crazy, and SCZ.

    Bug: At the shield monitor near the start of MCZ1 (after breaking it), if you jump and do a homing attack Sonic gets pushed through the ground, or if you jump and do a Speed Break Sonic falls through the ground. It happens all over but this is a convenient place to test both problems.

    Bug: If you Speed Break into the lava at the HTZ boss, you'll get hit and instantly drop rings, even though you were invincible, and if you had a shield you lose your rings and the shield at the same time.

    Bug: The background layer has trouble keeping up with Sonic when he's using Speed Break. I'll reach the end of ARZ1 and then the leaves scroll in later. Intentional?
     
  13. Hitaxas

    Hitaxas

    Retro 80's themed Paladins Twich streamer Member
    1,438
    0
    16
    Litchfield,CT
    Becoming a Twitch partner, and getting my life back together
    <!--quoteo(post=537971:date=Dec 13 2010, 02:59 PM:name=MainMemory)--><div class='quotetop'>QUOTE (MainMemory @ Dec 13 2010, 02:59 PM) <a href="index.php?act=findpost&pid=537971"><img src="public/style_images/retro/snapback.png"></a></div><div class='quotemain'><!--quotec-->Updated with fixed homing attack...springs, signpost, breakable block<!--QuoteEnd--></div><!--QuoteEEnd-->

    While it is a nice idea to home into such objects, it seems to suffer the same issue that I came across when homing into such objects. If you are at the wrong height compared to the object, you might home into the side of a spring or block. I suppose the code could be altered in those objects themselves to check for homing attack, though.


    Nice concept for a hack, however. It makes for a good challenge.
     
  14. DigitalDuck

    DigitalDuck

    Arriving four years late. Member
    4,792
    7
    18
    Lincs, UK
    TurBoa, S1RL
    <!--quoteo(post=538149:date=Dec 14 2010, 08:51 AM:name=Xenowhirl)--><div class='quotetop'>QUOTE (Xenowhirl @ Dec 14 2010, 08:51 AM) <a href="index.php?act=findpost&pid=538149"><img src="public/style_images/retro/snapback.png"></a></div><div class='quotemain'><!--quotec-->Bug: The background layer has trouble keeping up with Sonic when he's using Speed Break. I'll reach the end of ARZ1 and then the leaves scroll in later. Intentional?<!--QuoteEnd--></div><!--QuoteEEnd-->

    This happens in the original all the time if you're a speedrunner.
     
  15. Xenowhirl

    Xenowhirl

    Tech Member
    175
    0
    0
    <!--quoteo(post=538168:date=Dec 14 2010, 07:45 AM:name=DigitalDuck)--><div class='quotetop'>QUOTE (DigitalDuck @ Dec 14 2010, 07:45 AM) <a href="index.php?act=findpost&pid=538168"><img src="public/style_images/retro/snapback.png"></a></div><div class='quotemain'><!--quotec--><!--quoteo(post=538149:date=Dec 14 2010, 08:51 AM:name=Xenowhirl)--><div class='quotetop'>QUOTE (Xenowhirl @ Dec 14 2010, 08:51 AM) <a href="index.php?act=findpost&pid=538149"><img src="public/style_images/retro/snapback.png"></a></div><div class='quotemain'><!--quotec-->Bug: The background layer has trouble keeping up with Sonic when he's using Speed Break. I'll reach the end of ARZ1 and then the leaves scroll in later. Intentional?<!--QuoteEnd--></div><!--QuoteEEnd-->

    This happens in the original all the time if you're a speedrunner.
    <!--QuoteEnd--></div><!--QuoteEEnd-->
    Oh, I guess I'm not, but I couldn't see it happen from running at red spring speed through the second part of ARZ1 in the original. Maybe it has to do with maintaining that speed over a longer time period, which this hack makes easy to do. Never mind on that one.
     
  16. FinalBeyond

    FinalBeyond

    Member
    1,569
    0
    0
    Is it actually possible to pass every act without the use of glitches? I can't figure out how to get past CPZ Act 2 (although the screenshot on the last page suggests that one is possible), and I only got through MCZ1 thanks to a very lucky jump onto the top of a closed bridge-wall thingy, and spindashed through.
     
  17. MainMemory

    MainMemory

    Every day's the same old thing... Same place, diff Tech Member
    4,338
    32
    28
    SonLVL
    <!--quoteo(post=538151:date=Dec 14 2010, 03:40 AM:name=Hitaxas)--><div class='quotetop'>QUOTE (Hitaxas @ Dec 14 2010, 03:40 AM) <a href="index.php?act=findpost&pid=538151"><img src="public/style_images/retro/snapback.png"></a></div><div class='quotemain'><!--quotec--><!--quoteo(post=537971:date=Dec 13 2010, 02:59 PM:name=MainMemory)--><div class='quotetop'>QUOTE (MainMemory @ Dec 13 2010, 02:59 PM) <a href="index.php?act=findpost&pid=537971"><img src="public/style_images/retro/snapback.png"></a></div><div class='quotemain'><!--quotec-->Updated with fixed homing attack...springs, signpost, breakable block<!--QuoteEnd--></div><!--QuoteEEnd-->

    While it is a nice idea to home into such objects, it seems to suffer the same issue that I came across when homing into such objects. If you are at the wrong height compared to the object, you might home into the side of a spring or block. I suppose the code could be altered in those objects themselves to check for homing attack, though.


    Nice concept for a hack, however. It makes for a good challenge.
    <!--QuoteEnd--></div><!--QuoteEEnd-->
    That's why jump cancel works even during a homing attack.

    And yes, speed break is very buggy, mostly because you move very fast, but I'm not sure why it allows you to fall through floors.

    And I've never been able to beat CPZ2 either. I would have liked an object like a path swapper that I could place when you need to turn around and a spring won't work, but I know nothing about programming new objects.
     
  18. nineko

    nineko

    I am the Holy Cat Tech Member
    Am I supposed to be able to perform the spin dash?
    <img src="http://img560.imageshack.us/img560/9864/62814773.png" border="0" class="linked-image" />
    (ffff, I kept Gens's window in the screenshot to show that this is the "secret rings control" version and not regular Sonic 2, but it was truncated)
     
  19. MainMemory

    MainMemory

    Every day's the same old thing... Same place, diff Tech Member
    4,338
    32
    28
    SonLVL
    <!--quoteo(post=538186:date=Dec 14 2010, 08:56 AM:name=nineko)--><div class='quotetop'>QUOTE (nineko @ Dec 14 2010, 08:56 AM) <a href="index.php?act=findpost&pid=538186"><img src="public/style_images/retro/snapback.png"></a></div><div class='quotemain'><!--quotec-->Am I supposed to be able to perform the spin dash?
    <img src="http://img560.imageshack.us/img560/9864/62814773.png" border="0" class="linked-image" />
    (ffff, I kept Gens's window in the screenshot to show that this is the "secret rings control" version and not regular Sonic 2, but it was truncated)<!--QuoteEnd--></div><!--QuoteEEnd-->
    Yes.
     
  20. nineko

    nineko

    I am the Holy Cat Tech Member
    Alright, let me try again then:
    <img src="http://img577.imageshack.us/img577/5967/84808619.png" border="0" class="linked-image" />
    If you enter a CPZ tube while using the dash move thing, the stars will stay with you as long as you are in the tube. Rings aren't depleted though.