Sonic the Hedgehog 1 No-Name

Discussion in 'Engineering & Reverse Engineering' started by theocas, Aug 16, 2010.

Thread Status:
Not open for further replies.
  1. TomoAlien

    TomoAlien

    Member
    48
    0
    0
    Poland
    <!--quoteo(post=496028:date=Aug 25 2010, 09:07 PM:name=Ravenfreak)--><div class='quotetop'>QUOTE (Ravenfreak @ Aug 25 2010, 09:07 PM) <a href="index.php?act=findpost&pid=496028">[​IMG]</a></div><div class='quotemain'><!--quotec-->^ That's not the title screen... that looks like it's an error with VRAM, not necessarily an error with SRAM though. :\<!--QuoteEnd--></div><!--QuoteEEnd-->
    Sorry, my bad. There are 2 title screens actually:"The OCAS" logo and the weirdly animated Sonic the Hedgehog 1 title screen.
    Also, it seems as the options are just some odd values. The Enabled Moves option selection that appears in Kega Fusion seems to cause an overflow and screws up the option screen.
    Nevertheless it's a bug and should be fixed.
     
  2. theocas

    theocas

    Tech Member
    346
    0
    16
    <!--quoteo(post=496012:date=Aug 25 2010, 11:24 AM:name=TomoAlien)--><div class='quotetop'>QUOTE (TomoAlien @ Aug 25 2010, 11:24 AM) <a href="index.php?act=findpost&pid=496012">[​IMG]</a></div><div class='quotemain'><!--quotec-->So, I think this looks very promising.
    The graphics are very pleasing to the eyes and have a good mood. I don't like the water because it's just a barely visible and doesn't have the wave sprites. Also the ground pieces are illuminated from both sides, but they should only be illuminated from left side. The background for Act 1 is not too good but you know it already. Later I will show some pictures of the problems.

    So now for the level design. The first Zone feels like Green Hill Zone and plays like it. I like it but the problem is that it's too simple and uninspired. I just ran through it easily. Also I don't like the mushroom-shaped springs, they're ugly in my opinion.

    I won't be saying too much about the hub because it's just weird and confusing. The long scroll that appears when you enter it is annoying. I know that your team is working on it, so I am not picky here.

    Now some pictures of areas you should fix:
    [​IMG]
    This walls seems to be undecided if it's in foreground or background. The tiles on the right of the wall seem to be in foreground, but the rest isn't.<!--QuoteEnd--></div><!--QuoteEEnd-->
    Anyways, thanks for the positive feedback. What is wrong with the background? I did edit it a bit, but I can restore it's original mappings. As for the scroll delay - it is intended, as a cutscene-ish thing, you can skip it by pressing A, B or C. Also, the Hub I did clear up quite a bit in the next release that will be coming soon. Act 1 was kinda supposed to be a speed level, but I think the level design guy went a bit nuts. Mushroom-shaped springs? Where? They load different spring art for each act.

    Weird, the tiles are being clusterfucks again. We'll fix it!
    <!--quoteo(post=496012:date=Aug 25 2010, 11:24 AM:name=TomoAlien)--><div class='quotetop'>QUOTE (TomoAlien @ Aug 25 2010, 11:24 AM) <a href="index.php?act=findpost&pid=496012">[​IMG]</a></div><div class='quotemain'><!--quotec-->[​IMG]
    Misaligned pieces. It's not really a big problem but worth looking into it. This appears in more places.<!--QuoteEnd--></div><!--QuoteEEnd-->
    These fucking pieces are some weirdly placed. We'll fix that too.
    <!--quoteo(post=496012:date=Aug 25 2010, 11:24 AM:name=TomoAlien)--><div class='quotetop'>QUOTE (TomoAlien @ Aug 25 2010, 11:24 AM) <a href="index.php?act=findpost&pid=496012">[​IMG]</a></div><div class='quotemain'><!--quotec-->[​IMG]
    Are these tiles in the slope placeholders? I hope so because they look ugly.<!--QuoteEnd--></div><!--QuoteEEnd-->
    Level Design Guy gone bollocks.
    <!--quoteo(post=496012:date=Aug 25 2010, 11:24 AM:name=TomoAlien)--><div class='quotetop'>QUOTE (TomoAlien @ Aug 25 2010, 11:24 AM) <a href="index.php?act=findpost&pid=496012">[​IMG]</a></div><div class='quotemain'><!--quotec-->[​IMG]
    M.C. Escher's Totem. The brown part is in background and the gray part in the foreground.<!--QuoteEnd--></div><!--QuoteEEnd-->
    I will certainly fix that. The rock I'll try to fix.
     
  3. theocas

    theocas

    Tech Member
    346
    0
    16
    Sorry for the double post, but we're back with some bugfixes and more features. There is the Extended Camera (special thanks to Selbi) changed object and level layouts, fixes to the giant rings, etc. Hope you'll enjoy this. Wait, oh yeah, we need the ROM. <a href="http://theocas.net/wp-content/plugins/download-monitor/download.php?id=6" target="_blank">Click here.</a>
    Hope you enjoy the updates, and there's more stuff to come. Also, we'd all like to give a warm welcome to Tidbit, our new artist.
     
  4. [​IMG]

    Yeah, did anyone else notice that when you the homing attack to the left in the beginning of the act, you warp to the end of the level.
     
  5. theocas

    theocas

    Tech Member
    346
    0
    16
    <!--quoteo(post=497982:date=Aug 29 2010, 09:06 AM:name=BetaX)--><div class='quotetop'>QUOTE (BetaX @ Aug 29 2010, 09:06 AM) <a href="index.php?act=findpost&pid=497982">[​IMG]</a></div><div class='quotemain'><!--quotec-->[​IMG]

    Yeah, did anyone else notice that when you the homing attack to the left in the beginning of the act, you warp to the end of the level.<!--QuoteEnd--></div><!--QuoteEEnd-->
    Whoa. How the hell did that happen? I think I'll look into it when I get some moar time.
     
  6. <!--quoteo(post=497993:date=Aug 29 2010, 11:20 AM:name=theocas)--><div class='quotetop'>QUOTE (theocas @ Aug 29 2010, 11:20 AM) <a href="index.php?act=findpost&pid=497993">[​IMG]</a></div><div class='quotemain'><!--quotec--><!--quoteo(post=497982:date=Aug 29 2010, 09:06 AM:name=BetaX)--><div class='quotetop'>QUOTE (BetaX @ Aug 29 2010, 09:06 AM) <a href="index.php?act=findpost&pid=497982">[​IMG]</a></div><div class='quotemain'><!--quotec-->[​IMG]

    Yeah, did anyone else notice that when you the homing attack to the left in the beginning of the act, you warp to the end of the level.<!--QuoteEnd--></div><!--QuoteEEnd-->
    Whoa. How the hell did that happen? I think I'll look into it when I get some moar time.
    <!--QuoteEnd--></div><!--QuoteEEnd-->

    [​IMG]
    Same thing with Gens/GS.
    It can also happen at the beginning where you start the game before act 1.
    Other then that, I like this hack. :)
     
  7. theocas

    theocas

    Tech Member
    346
    0
    16
    <!--quoteo(post=498003:date=Aug 29 2010, 09:30 AM:name=BetaX)--><div class='quotetop'>QUOTE (BetaX @ Aug 29 2010, 09:30 AM) <a href="index.php?act=findpost&pid=498003">[​IMG]</a></div><div class='quotemain'><!--quotec--><!--quoteo(post=497993:date=Aug 29 2010, 11:20 AM:name=theocas)--><div class='quotetop'>QUOTE (theocas @ Aug 29 2010, 11:20 AM) <a href="index.php?act=findpost&pid=497993">[​IMG]</a></div><div class='quotemain'><!--quotec--><!--quoteo(post=497982:date=Aug 29 2010, 09:06 AM:name=BetaX)--><div class='quotetop'>QUOTE (BetaX @ Aug 29 2010, 09:06 AM) <a href="index.php?act=findpost&pid=497982">[​IMG]</a></div><div class='quotemain'><!--quotec-->[​IMG]

    Yeah, did anyone else notice that when you the homing attack to the left in the beginning of the act, you warp to the end of the level.<!--QuoteEnd--></div><!--QuoteEEnd-->
    Whoa. How the hell did that happen? I think I'll look into it when I get some moar time.
    <!--QuoteEnd--></div><!--QuoteEEnd-->

    [​IMG]
    Same thing with Gens/GS.
    It can also happen at the beginning where you start the game before act 1.
    Other then that, I like this hack. :)
    <!--QuoteEnd--></div><!--QuoteEEnd-->
    Thanks, but I have NO idea whatsoever causes this. I did add a few branches to <!--g1--><div class='geshitop'>Syntax Highlighted Code: ASM</div><div class='codemain'><!--eg1--><pre class="asm" style="font-family:monospace;">&nbsp;
    <span style="color: #00bfff;">jsr</span> Sonic_LevelBound</pre><!--gc2--><!--CgkJanNyCQlTb25pY19MZXZlbEJvdW5k--><!--egc2--><!--g2--></div><!--eg2--> in the routine to move Sonic during a Jumpdash, but then he doesn't move very far, if at the side of the level or not.
     
  8. DigitalDuck

    DigitalDuck

    Arriving four years late. Member
    5,058
    222
    43
    Lincs, UK
    TurBoa, S1RL
    I can't find it on the wiki, but this is the same bug that happens when you do an incomplete port of the spindash to Sonic 1 - spindashing at the very start of the level sends you to the end. If you know how to fix that, then you should be able to fix this in the same way.
     
  9. minichapman

    minichapman

    I'd like to think I'll be imparting words of wisdo Member
    676
    15
    18
    United Kingdom
    Staying sane.
    I'll be honest, I wasn't too keen on this hack but now with its improvements I must say I'm very impressed.

    This hack has a lot of potential!
     
  10. theocas

    theocas

    Tech Member
    346
    0
    16
    <!--quoteo(post=498234:date=Aug 29 2010, 05:34 PM:name=minichapman)--><div class='quotetop'>QUOTE (minichapman @ Aug 29 2010, 05:34 PM) <a href="index.php?act=findpost&pid=498234">[​IMG]</a></div><div class='quotemain'><!--quotec-->I'll be honest, I wasn't too keen on this hack but now with its improvements I must say I'm very impressed.

    This hack has a lot of potential!<!--QuoteEnd--></div><!--QuoteEEnd-->
    Thanks, and now I have a bit of an interesting list of changes until the next release for you Retro-goers (is that what I should call you :v: )
    First of all, a new zone called Booster Blast will be added. It is a very fast zone filled with Speed Boosters, blah blah blah. Here's what I posted a while ago:
    <!--quoteo(post=498793:date=Aug 30 2010, 07:15 PM:name=theocas)--><div class='quotetop'>QUOTE (theocas @ Aug 30 2010, 07:15 PM) <a href="index.php?act=findpost&pid=498793">[​IMG]</a></div><div class='quotemain'><!--quotec-->Eggman found out badniks were worthless, so he built speed boosters from junk in his backyard, each differing in size, due to his budget being low, and him only being able to afford smaller motors. He builds them, and litters an entire zone with them in hope of defeating Sonic. Due to Eggman's failure, some speed boosters actually propel Sonic in the correct direction, but some simply require him to pass it. The giant boosters are only seldom seen, due to Eggman not having enough money to afford many strong motors.<!--QuoteEnd--></div><!--QuoteEEnd-->
    I know, shit story, but it's all I can come up with. Feel free to suggest other stories.

    Also, we got our 'new Hub' to work, which will replace the existing one in GHZ. Thanks to Marc we solved a stupid PLC issue. Also, LZ 4 will likely be cut from SBZ, and it will simply go SBZ 1 -> SBZ 2 -> Final.

    We did fix a few bugs as well, and you can expect this release in a few days, if not sooner, as I will likely be gone over the weekend.
     
  11. Arctides

    Arctides

    I am a bloated bag of hate. Oldbie
    Unfortunately, being a mac user, I only have Genesis Plus as an emulator.
    And the rom you uploaded doesn't seem to be working with it. All I get is a black screen.
     
  12. dsrb

    dsrb

    Member
    3,149
    0
    0
    What about Kega Fusion? It's another 'big name' emulator, perhaps more so.
     
  13. theocas

    theocas

    Tech Member
    346
    0
    16
    <!--quoteo(post=500437:date=Sep 3 2010, 12:40 AM:name=Arctides)--><div class='quotetop'>QUOTE (Arctides @ Sep 3 2010, 12:40 AM) <a href="index.php?act=findpost&pid=500437">[​IMG]</a></div><div class='quotemain'><!--quotec-->Unfortunately, being a mac user, I only have Genesis Plus as an emulator.
    And the rom you uploaded doesn't seem to be working with it. All I get is a black screen.<!--QuoteEnd--></div><!--QuoteEEnd-->
    Oh yeah, the ROM's need to be padded. I have omitted that from the build process as it took quite a long time. I'm also a Mac user and made this entire hack on it :P (Wine FTW!)
    I use Kega Fusion, works like a charm.
     
  14. theocas

    theocas

    Tech Member
    346
    0
    16
    I might as well tell you what's been going on lately - I still need to define solidity for most of Booster Blast Zone, but once I finish that I'll do a release.
    As some people browsing the Basic Q&A topic, I'm trying to go dual sound-driver, with GEMS being used for some stuff, and SMPS for others. It works pretty good, except it hangs AFTER playing a GEMS song, but the song of course stays playing. Seemed to me as if the stack pointer screws up. And that crash doesn't happen on Gens/GS so I can't debug it. :<
     
  15. I really like how this hack is progressing! Keep up the good work! :)

    P.S. You don't need Wine for Kega on Mac as there is already a native Kega Fusion build for Mac OS X.
     
  16. dsrb

    dsrb

    Member
    3,149
    0
    0
    I presume theocas uses Wine for hacking utilities, not emulation. That said, the Mac OS X port of Fusion was very welcome indeed.
     
  17. Mercury

    Mercury

    His Name Is Sonic Tech Member
    <!--quoteo(post=498011:date=Aug 29 2010, 04:46 PM:name=theocas)--><div class='quotetop'>QUOTE (theocas @ Aug 29 2010, 04:46 PM) <a href="index.php?act=findpost&pid=498011">[​IMG]</a></div><div class='quotemain'><!--quotec--><!--quoteo(post=498003:date=Aug 29 2010, 09:30 AM:name=BetaX)--><div class='quotetop'>QUOTE (BetaX @ Aug 29 2010, 09:30 AM) <a href="index.php?act=findpost&pid=498003">[​IMG]</a></div><div class='quotemain'><!--quotec--><!--quoteo(post=497993:date=Aug 29 2010, 11:20 AM:name=theocas)--><div class='quotetop'>QUOTE (theocas @ Aug 29 2010, 11:20 AM) <a href="index.php?act=findpost&pid=497993">[​IMG]</a></div><div class='quotemain'><!--quotec--><!--quoteo(post=497982:date=Aug 29 2010, 09:06 AM:name=BetaX)--><div class='quotetop'>QUOTE (BetaX @ Aug 29 2010, 09:06 AM) <a href="index.php?act=findpost&pid=497982">[​IMG]</a></div><div class='quotemain'><!--quotec-->[​IMG]

    Yeah, did anyone else notice that when you the homing attack to the left in the beginning of the act, you warp to the end of the level.<!--QuoteEnd--></div><!--QuoteEEnd-->
    Whoa. How the hell did that happen? I think I'll look into it when I get some moar time.
    <!--QuoteEnd--></div><!--QuoteEEnd-->

    [​IMG]
    Same thing with Gens/GS.
    It can also happen at the beginning where you start the game before act 1.
    Other then that, I like this hack. :)
    <!--QuoteEnd--></div><!--QuoteEEnd-->
    Thanks, but I have NO idea whatsoever causes this. I did add a few branches to <!--g1--><div class='geshitop'>Syntax Highlighted Code: ASM</div><div class='codemain'><!--eg1--><pre class="asm" style="font-family:monospace;">&nbsp;
    <span style="color: #00bfff;">jsr</span> Sonic_LevelBound</pre><!--gc2--><!--CgkJanNyCQlTb25pY19MZXZlbEJvdW5k--><!--egc2--><!--g2--></div><!--eg2--> in the routine to move Sonic during a Jumpdash, but then he doesn't move very far, if at the side of the level or not.
    <!--QuoteEnd--></div><!--QuoteEEnd-->
    I know it's been over a week since this was mentioned, but this is how you can fix it, and some related bugs. (this is for the SVN disasm, so you'll have to translate for whatever one you're using). The scroll delay from the Spindash and Homing Attack causes a few conflicts in Sonic 1. Don't mind the way the following is written; it's copy pasta from a guide I'm writing.

    We need to clear the scroll delay when Sonic hits springs, too. Do this by opening "_incObj\41 Springs.asm" and finding "Spring_Flipped:" Add this line right before it plays the sfx:

    <!--g1--><div class='geshitop'>Syntax Highlighted Code: ASM</div><div class='codemain'><!--eg1--><pre class="asm" style="font-family:monospace;"><span style="color: #00bfff;">move</span>.<span style="color: #00bfff;">b</span> <span style="color: #ff0000;">#</span><span style="color: #ff0000;">0</span>,<span style="">(</span><span style="color: #ff0000;">$</span><span style="color: #ff0000;">FFFFC904</span><span style="">)</span>.<span style="color: #00bfff;">w</span> <span style="color: #adadad; font-style: italic;">;clear horiz scroll delay</span></pre><!--gc2--><!--bW92ZS5iCSMwLCgmIzAzNjtGRkZGQzkwNCkudwk7Y2xlYXIgaG9yaXogc2Nyb2xsIGRlbGF5--><!--egc2--><!--g2--></div><!--eg2-->

    We also need to clear the scroll delay when Sonic dies, so that when he respawns the screen won't go crazy. Add the same line after the label "Sonic_Death:" in "_incObj\Sonic (part 2).asm".

    Also, if Sonic Spindashes at Level Start or respawning at a Lamp Post, he can screw up the camera. To fix this, open "_inc\LevelSizeLoad & BgScrollSpeed (JP1).asm" and "_inc\LevelSizeLoad & BgScrollSpeed.asm" and add these lines after the label "LevSz_SkipStartPos:" in both of them.

    <!--g1--><div class='geshitop'>Syntax Highlighted Code: ASM</div><div class='geshimain'><!--eg1--><pre class="asm" style="font-family:monospace;">&nbsp;
    <span style="color: #00bfff;">clr</span>.<span style="color: #00bfff;">w</span> <span style="">(</span>v_trackpos<span style="">)</span>.<span style="color: #00bfff;">w</span> <span style="color: #adadad; font-style: italic;">; reset Sonic's position tracking index</span>
    <span style="color: #00bfff;">lea</span> <span style="">(</span>v_tracksonic<span style="">)</span>.<span style="color: #00bfff;">w</span>,<span style="font-weight:bold;">a2</span> <span style="color: #adadad; font-style: italic;">; load the tracking array into a2</span>
    <span style="color: #00bfff;">moveq</span> <span style="color: #ff0000;">#</span><span style="color: #ff0000;">63</span>,<span style="font-weight:bold;">d2</span> <span style="color: #adadad; font-style: italic;">; begin a 64-step loop</span>
    @looppoint:
    <span style="color: #00bfff;">move</span>.<span style="color: #00bfff;">w</span> <span style="font-weight:bold;">d1</span>,<span style="">(</span><span style="font-weight:bold;">a2</span><span style="">)</span>+ <span style="color: #adadad; font-style: italic;">; fill in X</span>
    <span style="color: #00bfff;">move</span>.<span style="color: #00bfff;">w</span> <span style="font-weight:bold;">d0</span>,<span style="">(</span><span style="font-weight:bold;">a2</span><span style="">)</span>+ <span style="color: #adadad; font-style: italic;">; fill in Y</span>
    <span style="color: #00bfff;">dbf</span> <span style="font-weight:bold;">d2</span>,@looppoint <span style="color: #adadad; font-style: italic;">; loop</span>
    &nbsp;</pre><!--gc2--><!--CgkJY2xyLncJKHZfdHJhY2twb3MpLncJCTsgcmVzZXQgU29uaWMmIzM5O3MgcG9zaXRpb24gdHJhY2tp
    bmcgaW5kZXgKCQlsZWEJCSh2X3RyYWNrc29uaWMpLncsYTIJOyBsb2FkIHRoZSB0cmFja2luZyBhcnJhe
    SBpbnRvIGEyCgkJbW92ZXEJIzYzLGQyCQkJCTsgYmVnaW4gYSA2NC1zdGVwIGxvb3AKCUBsb29wcG9pbn
    Q6CgkJbW92ZS53CWQxLChhMikrCQkJOyBmaWxsIGluIFgKCQltb3ZlLncJZDAsKGEyKSsJCQk7IGZpbGw
    gaW4gWQoJCWRiZgkJZDIsQGxvb3Bwb2ludAkJOyBsb29wCg==--><!--egc2--><!--g2--></div><!--eg2-->

    That fix seems like it removes the need for the fix with "Sonic_Death:" but I want to have both to be sure.

    Another problem is with the fans in SLZ. We have to clear the scroll delay when Sonic is blown by them, otherwise bad things can happen. Open "_incObj\5D Fan.asm" and, after these lines:

    <!--g1--><div class='geshitop'>Syntax Highlighted Code: ASM</div><div class='codemain'><!--eg1--><pre class="asm" style="font-family:monospace;">&nbsp;
    @movesonic:
    <span style="color: #00bfff;">add</span>.<span style="color: #00bfff;">w</span> <span style="font-weight:bold;">d0</span>,obX<span style="">(</span><span style="font-weight:bold;">a1</span><span style="">)</span> <span style="color: #adadad; font-style: italic;">; push Sonic away from the fan</span>
    &nbsp;</pre><!--gc2--><!--CkBtb3Zlc29uaWM6CgkJYWRkLncJZDAsb2JYKGExKQk7IHB1c2ggU29uaWMgYXdheSBmcm9tIHRoZSBm
    YW4K--><!--egc2--><!--g2--></div><!--eg2-->

    add this one:

    <!--g1--><div class='geshitop'>Syntax Highlighted Code: ASM</div><div class='codemain'><!--eg1--><pre class="asm" style="font-family:monospace;">&nbsp;
    <span style="color: #00bfff;">move</span>.<span style="color: #00bfff;">b</span> <span style="color: #ff0000;">#</span><span style="color: #ff0000;">0</span>,<span style="">(</span><span style="color: #ff0000;">$</span><span style="color: #ff0000;">FFFFC904</span><span style="">)</span>.<span style="color: #00bfff;">w</span> <span style="color: #adadad; font-style: italic;">;clear horiz scroll delay</span>
    &nbsp;</pre><!--gc2--><!--Cm1vdmUuYgkjMCwoJiMwMzY7RkZGRkM5MDQpLncJO2NsZWFyIGhvcml6IHNjcm9sbCBkZWxheQo=--><!--egc2--><!--g2--></div><!--eg2-->

    Hope it helps!
     
  18. theocas

    theocas

    Tech Member
    346
    0
    16
    <!--quoteo(post=502709:date=Sep 8 2010, 11:40 AM:name=Mercury)--><div class='quotetop'>QUOTE (Mercury @ Sep 8 2010, 11:40 AM) <a href="index.php?act=findpost&pid=502709">[​IMG]</a></div><div class='quotemain'><!--quotec--><!--quoteo(post=498011:date=Aug 29 2010, 04:46 PM:name=theocas)--><div class='quotetop'>QUOTE (theocas @ Aug 29 2010, 04:46 PM) <a href="index.php?act=findpost&pid=498011">[​IMG]</a></div><div class='quotemain'><!--quotec--><!--quoteo(post=498003:date=Aug 29 2010, 09:30 AM:name=BetaX)--><div class='quotetop'>QUOTE (BetaX @ Aug 29 2010, 09:30 AM) <a href="index.php?act=findpost&pid=498003">[​IMG]</a></div><div class='quotemain'><!--quotec--><!--quoteo(post=497993:date=Aug 29 2010, 11:20 AM:name=theocas)--><div class='quotetop'>QUOTE (theocas @ Aug 29 2010, 11:20 AM) <a href="index.php?act=findpost&pid=497993">[​IMG]</a></div><div class='quotemain'><!--quotec--><!--quoteo(post=497982:date=Aug 29 2010, 09:06 AM:name=BetaX)--><div class='quotetop'>QUOTE (BetaX @ Aug 29 2010, 09:06 AM) <a href="index.php?act=findpost&pid=497982">[​IMG]</a></div><div class='quotemain'><!--quotec-->[​IMG]

    Yeah, did anyone else notice that when you the homing attack to the left in the beginning of the act, you warp to the end of the level.<!--QuoteEnd--></div><!--QuoteEEnd-->
    Whoa. How the hell did that happen? I think I'll look into it when I get some moar time.
    <!--QuoteEnd--></div><!--QuoteEEnd-->

    [​IMG]
    Same thing with Gens/GS.
    It can also happen at the beginning where you start the game before act 1.
    Other then that, I like this hack. :)
    <!--QuoteEnd--></div><!--QuoteEEnd-->
    Thanks, but I have NO idea whatsoever causes this. I did add a few branches to <!--g1--><div class='geshitop'>Syntax Highlighted Code: ASM</div><div class='codemain'><!--eg1--><pre class="asm" style="font-family:monospace;">&nbsp;
    <span style="color: #00bfff;">jsr</span> Sonic_LevelBound</pre><!--gc2--><!--CgkJanNyCQlTb25pY19MZXZlbEJvdW5k--><!--egc2--><!--g2--></div><!--eg2--> in the routine to move Sonic during a Jumpdash, but then he doesn't move very far, if at the side of the level or not.
    <!--QuoteEnd--></div><!--QuoteEEnd-->
    I know it's been over a week since this was mentioned, but this is how you can fix it, and some related bugs. (this is for the SVN disasm, so you'll have to translate for whatever one you're using). The scroll delay from the Spindash and Homing Attack causes a few conflicts in Sonic 1. Don't mind the way the following is written; it's copy pasta from a guide I'm writing.

    We need to clear the scroll delay when Sonic hits springs, too. Do this by opening "_incObj\41 Springs.asm" and finding "Spring_Flipped:" Add this line right before it plays the sfx:

    <!--g1--><div class='geshitop'>Syntax Highlighted Code: ASM</div><div class='codemain'><!--eg1--><pre class="asm" style="font-family:monospace;"><span style="color: #00bfff;">move</span>.<span style="color: #00bfff;">b</span> <span style="color: #ff0000;">#</span><span style="color: #ff0000;">0</span>,<span style="">(</span><span style="color: #ff0000;">$</span><span style="color: #ff0000;">FFFFC904</span><span style="">)</span>.<span style="color: #00bfff;">w</span> <span style="color: #adadad; font-style: italic;">;clear horiz scroll delay</span></pre><!--gc2--><!--bW92ZS5iCSMwLCgmIzAzNjtGRkZGQzkwNCkudwk7Y2xlYXIgaG9yaXogc2Nyb2xsIGRlbGF5--><!--egc2--><!--g2--></div><!--eg2-->

    We also need to clear the scroll delay when Sonic dies, so that when he respawns the screen won't go crazy. Add the same line after the label "Sonic_Death:" in "_incObj\Sonic (part 2).asm".

    Also, if Sonic Spindashes at Level Start or respawning at a Lamp Post, he can screw up the camera. To fix this, open "_inc\LevelSizeLoad & BgScrollSpeed (JP1).asm" and "_inc\LevelSizeLoad & BgScrollSpeed.asm" and add these lines after the label "LevSz_SkipStartPos:" in both of them.

    <!--g1--><div class='geshitop'>Syntax Highlighted Code: ASM</div><div class='geshimain'><!--eg1--><pre class="asm" style="font-family:monospace;">&nbsp;
    <span style="color: #00bfff;">clr</span>.<span style="color: #00bfff;">w</span> <span style="">(</span>v_trackpos<span style="">)</span>.<span style="color: #00bfff;">w</span> <span style="color: #adadad; font-style: italic;">; reset Sonic's position tracking index</span>
    <span style="color: #00bfff;">lea</span> <span style="">(</span>v_tracksonic<span style="">)</span>.<span style="color: #00bfff;">w</span>,<span style="font-weight:bold;">a2</span> <span style="color: #adadad; font-style: italic;">; load the tracking array into a2</span>
    <span style="color: #00bfff;">moveq</span> <span style="color: #ff0000;">#</span><span style="color: #ff0000;">63</span>,<span style="font-weight:bold;">d2</span> <span style="color: #adadad; font-style: italic;">; begin a 64-step loop</span>
    @looppoint:
    <span style="color: #00bfff;">move</span>.<span style="color: #00bfff;">w</span> <span style="font-weight:bold;">d1</span>,<span style="">(</span><span style="font-weight:bold;">a2</span><span style="">)</span>+ <span style="color: #adadad; font-style: italic;">; fill in X</span>
    <span style="color: #00bfff;">move</span>.<span style="color: #00bfff;">w</span> <span style="font-weight:bold;">d0</span>,<span style="">(</span><span style="font-weight:bold;">a2</span><span style="">)</span>+ <span style="color: #adadad; font-style: italic;">; fill in Y</span>
    <span style="color: #00bfff;">dbf</span> <span style="font-weight:bold;">d2</span>,@looppoint <span style="color: #adadad; font-style: italic;">; loop</span>
    &nbsp;</pre><!--gc2--><!--CgkJY2xyLncJKHZfdHJhY2twb3MpLncJCTsgcmVzZXQgU29uaWMmIzM5O3MgcG9zaXRpb24gdHJhY2tp
    bmcgaW5kZXgKCQlsZWEJCSh2X3RyYWNrc29uaWMpLncsYTIJOyBsb2FkIHRoZSB0cmFja2luZyBhcnJhe
    SBpbnRvIGEyCgkJbW92ZXEJIzYzLGQyCQkJCTsgYmVnaW4gYSA2NC1zdGVwIGxvb3AKCUBsb29wcG9pbn
    Q6CgkJbW92ZS53CWQxLChhMikrCQkJOyBmaWxsIGluIFgKCQltb3ZlLncJZDAsKGEyKSsJCQk7IGZpbGw
    gaW4gWQoJCWRiZgkJZDIsQGxvb3Bwb2ludAkJOyBsb29wCg==--><!--egc2--><!--g2--></div><!--eg2-->

    That fix seems like it removes the need for the fix with "Sonic_Death:" but I want to have both to be sure.

    Another problem is with the fans in SLZ. We have to clear the scroll delay when Sonic is blown by them, otherwise bad things can happen. Open "_incObj\5D Fan.asm" and, after these lines:

    <!--g1--><div class='geshitop'>Syntax Highlighted Code: ASM</div><div class='codemain'><!--eg1--><pre class="asm" style="font-family:monospace;">&nbsp;
    @movesonic:
    <span style="color: #00bfff;">add</span>.<span style="color: #00bfff;">w</span> <span style="font-weight:bold;">d0</span>,obX<span style="">(</span><span style="font-weight:bold;">a1</span><span style="">)</span> <span style="color: #adadad; font-style: italic;">; push Sonic away from the fan</span>
    &nbsp;</pre><!--gc2--><!--CkBtb3Zlc29uaWM6CgkJYWRkLncJZDAsb2JYKGExKQk7IHB1c2ggU29uaWMgYXdheSBmcm9tIHRoZSBm
    YW4K--><!--egc2--><!--g2--></div><!--eg2-->

    add this one:

    <!--g1--><div class='geshitop'>Syntax Highlighted Code: ASM</div><div class='codemain'><!--eg1--><pre class="asm" style="font-family:monospace;">&nbsp;
    <span style="color: #00bfff;">move</span>.<span style="color: #00bfff;">b</span> <span style="color: #ff0000;">#</span><span style="color: #ff0000;">0</span>,<span style="">(</span><span style="color: #ff0000;">$</span><span style="color: #ff0000;">FFFFC904</span><span style="">)</span>.<span style="color: #00bfff;">w</span> <span style="color: #adadad; font-style: italic;">;clear horiz scroll delay</span>
    &nbsp;</pre><!--gc2--><!--Cm1vdmUuYgkjMCwoJiMwMzY7RkZGRkM5MDQpLncJO2NsZWFyIGhvcml6IHNjcm9sbCBkZWxheQo=--><!--egc2--><!--g2--></div><!--eg2-->

    Hope it helps!
    <!--QuoteEnd--></div><!--QuoteEEnd-->
    Thanks for the help! I'll be going to implement this later today. And yes, I do use Wine for hacking, and a Native Fusion port as an emu.
    Anyways guys, once I get this working, I'll likely be releasing something, and GEMS will be in the hack, but I'll make all it's methods rts for the time being.
    <!--quoteo(post=502709:date=Sep 8 2010, 11:40 AM:name=Mercury)--><div class='quotetop'>QUOTE (Mercury @ Sep 8 2010, 11:40 AM) <a href="index.php?act=findpost&pid=502709">[​IMG]</a></div><div class='quotemain'><!--quotec-->Also, if Sonic Spindashes at Level Start or respawning at a Lamp Post, he can screw up the camera. To fix this, open "_inc\LevelSizeLoad & BgScrollSpeed (JP1).asm" and "_inc\LevelSizeLoad & BgScrollSpeed.asm" and add these lines after the label "LevSz_SkipStartPos:" in both of them.

    <!--g1--><div class='geshitop'>Syntax Highlighted Code: ASM</div><div class='geshimain'><!--eg1--><pre class="asm" style="font-family:monospace;">&nbsp;
    <span style="color: #00bfff;">clr</span>.<span style="color: #00bfff;">w</span> <span style="">(</span>v_trackpos<span style="">)</span>.<span style="color: #00bfff;">w</span> <span style="color: #adadad; font-style: italic;">; reset Sonic's position tracking index</span>
    <span style="color: #00bfff;">lea</span> <span style="">(</span>v_tracksonic<span style="">)</span>.<span style="color: #00bfff;">w</span>,<span style="font-weight:bold;">a2</span> <span style="color: #adadad; font-style: italic;">; load the tracking array into a2</span>
    <span style="color: #00bfff;">moveq</span> <span style="color: #ff0000;">#</span><span style="color: #ff0000;">63</span>,<span style="font-weight:bold;">d2</span> <span style="color: #adadad; font-style: italic;">; begin a 64-step loop</span>
    @looppoint:
    <span style="color: #00bfff;">move</span>.<span style="color: #00bfff;">w</span> <span style="font-weight:bold;">d1</span>,<span style="">(</span><span style="font-weight:bold;">a2</span><span style="">)</span>+ <span style="color: #adadad; font-style: italic;">; fill in X</span>
    <span style="color: #00bfff;">move</span>.<span style="color: #00bfff;">w</span> <span style="font-weight:bold;">d0</span>,<span style="">(</span><span style="font-weight:bold;">a2</span><span style="">)</span>+ <span style="color: #adadad; font-style: italic;">; fill in Y</span>
    <span style="color: #00bfff;">dbf</span> <span style="font-weight:bold;">d2</span>,@looppoint <span style="color: #adadad; font-style: italic;">; loop</span>
    &nbsp;</pre><!--gc2--><!--CgkJY2xyLncJKHZfdHJhY2twb3MpLncJCTsgcmVzZXQgU29uaWMmIzM5O3MgcG9zaXRpb24gdHJhY2tp
    bmcgaW5kZXgKCQlsZWEJCSh2X3RyYWNrc29uaWMpLncsYTIJOyBsb2FkIHRoZSB0cmFja2luZyBhcnJhe
    SBpbnRvIGEyCgkJbW92ZXEJIzYzLGQyCQkJCTsgYmVnaW4gYSA2NC1zdGVwIGxvb3AKCUBsb29wcG9pbn
    Q6CgkJbW92ZS53CWQxLChhMikrCQkJOyBmaWxsIGluIFgKCQltb3ZlLncJZDAsKGEyKSsJCQk7IGZpbGw
    gaW4gWQoJCWRiZgkJZDIsQGxvb3Bwb2ludAkJOyBsb29wCg==--><!--egc2--><!--g2--></div><!--eg2-->

    That fix seems like it removes the need for the fix with "Sonic_Death:" but I want to have both to be sure.<!--QuoteEnd--></div><!--QuoteEEnd-->
    I can't seem to find it anywhere in the 2007 disasm, but I'll keep looking. What does the surrounding code look like, so I can search for that code?


    <!--quoteo(post=502659:date=Sep 8 2010, 08:46 AM:name=King)--><div class='quotetop'>QUOTE (King @ Sep 8 2010, 08:46 AM) <a href="index.php?act=findpost&pid=502659">[​IMG]</a></div><div class='quotemain'><!--quotec-->I really like how this hack is progressing! Keep up the good work! :)

    P.S. You don't need Wine for Kega on Mac as there is already a native Kega Fusion build for Mac OS X.<!--QuoteEnd--></div><!--QuoteEEnd-->
    Thanks!
     
  19. theocas

    theocas

    Tech Member
    346
    0
    16
    Meh, I think it's that time again! Release Time!
    Anyways, <a href="http://theocas.net/wp-content/plugins/download-monitor/download.php?id=6" target="_blank">here</a> is the latest build of No-Name, no padding once more, and there were some layout fixes, giant rings hidden in more levels, bugfixes and the like.

    Edit: Before I forget, special thanks go out to Selbi for the Extended Camera, much appreciated.
     
  20. Mercury

    Mercury

    His Name Is Sonic Tech Member
    <!--quoteo(post=502880:date=Sep 8 2010, 11:55 PM:name=theocas)--><div class='quotetop'>QUOTE (theocas @ Sep 8 2010, 11:55 PM) <a href="index.php?act=findpost&pid=502880">[​IMG]</a></div><div class='quotemain'><!--quotec--><!--quoteo(post=502709:date=Sep 8 2010, 11:40 AM:name=Mercury)--><div class='quotetop'>QUOTE (Mercury @ Sep 8 2010, 11:40 AM) <a href="index.php?act=findpost&pid=502709">[​IMG]</a></div><div class='quotemain'><!--quotec-->Also, if Sonic Spindashes at Level Start or respawning at a Lamp Post, he can screw up the camera. To fix this, open "_inc\LevelSizeLoad & BgScrollSpeed (JP1).asm" and "_inc\LevelSizeLoad & BgScrollSpeed.asm" and add these lines after the label "LevSz_SkipStartPos:" in both of them.

    <!--g1--><div class='geshitop'>Syntax Highlighted Code: ASM</div><div class='geshimain'><!--eg1--><pre class="asm" style="font-family:monospace;">&nbsp;
    <span style="color: #00bfff;">clr</span>.<span style="color: #00bfff;">w</span> <span style="">(</span>v_trackpos<span style="">)</span>.<span style="color: #00bfff;">w</span> <span style="color: #adadad; font-style: italic;">; reset Sonic's position tracking index</span>
    <span style="color: #00bfff;">lea</span> <span style="">(</span>v_tracksonic<span style="">)</span>.<span style="color: #00bfff;">w</span>,<span style="font-weight:bold;">a2</span> <span style="color: #adadad; font-style: italic;">; load the tracking array into a2</span>
    <span style="color: #00bfff;">moveq</span> <span style="color: #ff0000;">#</span><span style="color: #ff0000;">63</span>,<span style="font-weight:bold;">d2</span> <span style="color: #adadad; font-style: italic;">; begin a 64-step loop</span>
    @looppoint:
    <span style="color: #00bfff;">move</span>.<span style="color: #00bfff;">w</span> <span style="font-weight:bold;">d1</span>,<span style="">(</span><span style="font-weight:bold;">a2</span><span style="">)</span>+ <span style="color: #adadad; font-style: italic;">; fill in X</span>
    <span style="color: #00bfff;">move</span>.<span style="color: #00bfff;">w</span> <span style="font-weight:bold;">d0</span>,<span style="">(</span><span style="font-weight:bold;">a2</span><span style="">)</span>+ <span style="color: #adadad; font-style: italic;">; fill in Y</span>
    <span style="color: #00bfff;">dbf</span> <span style="font-weight:bold;">d2</span>,@looppoint <span style="color: #adadad; font-style: italic;">; loop</span>
    &nbsp;</pre><!--gc2--><!--CgkJY2xyLncJKHZfdHJhY2twb3MpLncJCTsgcmVzZXQgU29uaWMmIzM5O3MgcG9zaXRpb24gdHJhY2tp
    bmcgaW5kZXgKCQlsZWEJCSh2X3RyYWNrc29uaWMpLncsYTIJOyBsb2FkIHRoZSB0cmFja2luZyBhcnJhe
    SBpbnRvIGEyCgkJbW92ZXEJIzYzLGQyCQkJCTsgYmVnaW4gYSA2NC1zdGVwIGxvb3AKCUBsb29wcG9pbn
    Q6CgkJbW92ZS53CWQxLChhMikrCQkJOyBmaWxsIGluIFgKCQltb3ZlLncJZDAsKGEyKSsJCQk7IGZpbGw
    gaW4gWQoJCWRiZgkJZDIsQGxvb3Bwb2ludAkJOyBsb29wCg==--><!--egc2--><!--g2--></div><!--eg2-->

    That fix seems like it removes the need for the fix with "Sonic_Death:" but I want to have both to be sure.<!--QuoteEnd--></div><!--QuoteEEnd-->
    I can't seem to find it anywhere in the 2007 disasm, but I'll keep looking. What does the surrounding code look like, so I can search for that code?
    <!--QuoteEnd--></div><!--QuoteEEnd-->

    Here it is:

    <!--g1--><div class='geshitop'>Syntax Highlighted Code: ASM</div><div class='geshimain'><!--eg1--><pre class="asm" style="font-family:monospace;">&nbsp;
    LevSz_SonicPos:
    <span style="color: #00bfff;">moveq</span> <span style="color: #ff0000;">#</span><span style="color: #ff0000;">0</span>,<span style="font-weight:bold;">d1</span>
    <span style="color: #00bfff;">move</span>.<span style="color: #00bfff;">w</span> <span style="">(</span><span style="font-weight:bold;">a1</span><span style="">)</span>+,<span style="font-weight:bold;">d1</span>
    <span style="color: #00bfff;">move</span>.<span style="color: #00bfff;">w</span> <span style="font-weight:bold;">d1</span>,<span style="">(</span>v_player+obX<span style="">)</span>.<span style="color: #00bfff;">w</span> <span style="color: #adadad; font-style: italic;">; set Sonic's position on x-axis</span>
    <span style="color: #00bfff;">moveq</span> <span style="color: #ff0000;">#</span><span style="color: #ff0000;">0</span>,<span style="font-weight:bold;">d0</span>
    <span style="color: #00bfff;">move</span>.<span style="color: #00bfff;">w</span> <span style="">(</span><span style="font-weight:bold;">a1</span><span style="">)</span>,<span style="font-weight:bold;">d0</span>
    <span style="color: #00bfff;">move</span>.<span style="color: #00bfff;">w</span> <span style="font-weight:bold;">d0</span>,<span style="">(</span>v_player+obY<span style="">)</span>.<span style="color: #00bfff;">w</span> <span style="color: #adadad; font-style: italic;">; set Sonic's position on y-axis</span>
    &nbsp;
    SetScreen:
    LevSz_SkipStartPos:
    <span style="color: #00bfff;">subi</span>.<span style="color: #00bfff;">w</span> <span style="color: #ff0000;">#</span><span style="color: #ff0000;">160</span>,<span style="font-weight:bold;">d1</span> <span style="color: #adadad; font-style: italic;">; is Sonic more than 160px from left edge?</span>
    <span style="color: #00bfff;">bcc</span>.<span style="color: #00bfff;">s</span> SetScr_WithinLeft <span style="color: #adadad; font-style: italic;">; if yes, branch</span>
    <span style="color: #00bfff;">moveq</span> <span style="color: #ff0000;">#</span><span style="color: #ff0000;">0</span>,<span style="font-weight:bold;">d1</span>
    &nbsp;
    SetScr_WithinLeft:
    <span style="color: #00bfff;">move</span>.<span style="color: #00bfff;">w</span> <span style="">(</span>v_limitright2<span style="">)</span>.<span style="color: #00bfff;">w</span>,<span style="font-weight:bold;">d2</span>
    <span style="color: #00bfff;">cmp</span>.<span style="color: #00bfff;">w</span> <span style="font-weight:bold;">d2</span>,<span style="font-weight:bold;">d1</span> <span style="color: #adadad; font-style: italic;">; is Sonic inside the right edge?</span>
    <span style="color: #00bfff;">bcs</span>.<span style="color: #00bfff;">s</span> SetScr_WithinRight <span style="color: #adadad; font-style: italic;">; if yes, branch</span>
    <span style="color: #00bfff;">move</span>.<span style="color: #00bfff;">w</span> <span style="font-weight:bold;">d2</span>,<span style="font-weight:bold;">d1</span>
    &nbsp;</pre><!--gc2--><!--CkxldlN6X1NvbmljUG9zOgogICAgICAgICAgICAgICAgbW92ZXEgICAjMCxkMQogICAgICAgICAgICAg
    ICAgbW92ZS53ICAoYTEpKyxkMQogICAgICAgICAgICAgICAgbW92ZS53ICBkMSwodl9wbGF5ZXIrb2JYK
    S53IDsgc2V0IFNvbmljJiMzOTtzIHBvc2l0aW9uIG9uIHgtYXhpcwogICAgICAgICAgICAgICAgbW92ZX
    EgICAjMCxkMAogICAgICAgICAgICAgICAgbW92ZS53ICAoYTEpLGQwCiAgICAgICAgICAgICAgICBtb3Z
    lLncgIGQwLCh2X3BsYXllcitvYlkpLncgOyBzZXQgU29uaWMmIzM5O3MgcG9zaXRpb24gb24geS1heGlz
    CgpTZXRTY3JlZW46CiAgICAgICAgTGV2U3pfU2tpcFN0YXJ0UG9zOgogICAgICAgICAgICAgICAgc3Via
    S53ICAjMTYwLGQxICAgICAgICAgOyBpcyBTb25pYyBtb3JlIHRoYW4gMTYwcHggZnJvbSBsZWZ0IGVkZ2
    U/CiAgICAgICAgICAgICAgICBiY2MucyAgIFNldFNjcl9XaXRoaW5MZWZ0IDsgaWYgeWVzLCBicmFuY2gK
    ICAgICAgICAgICAgICAgIG1vdmVxICAgIzAsZDEKCiAgICAgICAgU2V0U2NyX1dpdGhpbkxlZnQ6CiAgI
    CAgICAgICAgICAgICBtb3ZlLncgICh2X2xpbWl0cmlnaHQyKS53LGQyCiAgICAgICAgICAgICAgICBjbX
    AudyAgIGQyLGQxICAgICAgICAgICA7IGlzIFNvbmljIGluc2lkZSB0aGUgcmlnaHQgZWRnZT8KICAgICA
    gICAgICAgICAgIGJjcy5zICAgU2V0U2NyX1dpdGhpblJpZ2h0IDsgaWYgeWVzLCBicmFuY2gKICAgICAg
    ICAgICAgICAgIG1vdmUudyAgZDIsZDEK--><!--egc2--><!--g2--></div><!--eg2-->

    You can check out the <a href="http://svn.sonicretro.org/filedetails.php?repname=CommunityDisassemblies&path=%2FSonic+1+Disassembly%2F_inc%2FLevelSizeLoad+%26+BgScrollSpeed+%28JP1%29.asm" target="_blank">whole file here</a> on the SVN.
     
Thread Status:
Not open for further replies.