Basic Questions and Answers Thread

Discussion in 'Discussion & Q&A' started by Malevolence, Jul 7, 2009.

  1. ProjectFM

    ProjectFM Optimistic and self-dependent Member

    Joined:
    Oct 4, 2014
    Messages:
    802
    Location:
    Portland, Maine
    First of all, why would you (or the person playing the game) want to turn Sonic 2's HUD off? It's too useful. Second, adding a pause menu would be complicated and should be done yourself. The best method would most likely be adding a new game mode based off of either Sonic 1/2 beta's level select or Sonic 2's options menu. You should make sure it doesn't clear any of the level data when accessed. Third, the basic idea for change options that you had could easily be done by checking for button presses while the game is paused (which is already done in Sonic 1 [and possibly other games] through the pause cheats) and make it so when the button is pressed, a RAM address is changed. If you toggle it on or off, you need to check if the RAM address is a certain value first and make pressing the button change the address accordingly.
     
  2. ProjectFM

    ProjectFM Optimistic and self-dependent Member

    Joined:
    Oct 4, 2014
    Messages:
    802
    Location:
    Portland, Maine
    Sorry for the double post but I have a question.

    How do you trigger the y-wrap from the top of the level in Sonic 1 HiveBrain like it's used in Labyrinth Zone's boss? I can't find any RAM address that needs to be set/cleared to enable it.
     
  3. Painto

    Painto Samodzierżca Najdłuższego Kija Member

    Joined:
    Mar 24, 2014
    Messages:
    315
    Location:
    Poland
    You need to set the top boundary to $FF00 and the bottom boundary to $0800.
     
  4. Deadalive

    Deadalive Newcomer Trialist

    Joined:
    Aug 3, 2014
    Messages:
    19
    Location:
    Green Hill Zone
    With the Hacking contest so near and my progress with my hacking off and on I found a solution to most of my issues with various asm experimentation. That said I still have 2 lingering issues. 1: Because of Greensnake's reply I have been able to use a different palette line as need but I can't figure out how to use the second palette line for the Shield monitor icon, since my Shield uses palette line 2 and the Green i have located there. 2: After altering the art for some of the enemies and moving them to another zone I wanted to move Sol Badnik to OOZ, I put both him and the fireballs in OOZ's plc but only he shows, his fire orbs show as garbled nonsense any ideas. Any help with these issues would be appreciated and thanks for reading wall-of-text. P.s. im using Sonic 2 GIT dissassembly. Thanks. 
     
  5. hackman

    hackman Newcomer Trialist

    Joined:
    Aug 30, 2015
    Messages:
    6
    Location:
    behind you
    How do I get goggles on sonic I got the code I need the sprite please.

    Sonicgoggles_Run.gif
     
    Last edited by a moderator: Sep 9, 2015
  6. FFuser

    FFuser a.k.a Darklight Member

    Joined:
    Nov 14, 2013
    Messages:
    88
    I haven't touched my project in a while and wanted to get back into it and update it after seeing some gameplay videos. After seeing them, I have a question: Is there any way to alleviate or fix the zipping glitch besides removing the moving platforms that would allow you to phase through walls in the first place? So far I've only tried to move the invisible solid objects a bit in my SBZ level but Sonic can still zip through. :(
     
    Last edited by a moderator: Sep 4, 2015
  7. Psycho RFG

    Psycho RFG Well-Known Member Member

    Joined:
    Feb 22, 2011
    Messages:
    229
    Hi!

    Does someone knows if there is any unused chunk/chunks in Star Light Zone? If yes, wich one/ones?

    Thanks.
     
  8. Clownacy

    Clownacy Negative Clownancy Staff

    Joined:
    Aug 15, 2014
    Messages:
    884
    It's a little hard to say, considering each act uses some chunks that the others don't. Here's a small tool that scans any S1 format layout files you drag-and-drop on it to see if there are any chunks that go unused throughout all of them. Good for scanning entire zones. Just drag slz1.bin, slz2.bin, slz3.bin and slzbg.bin on it at the same time.

    In case you don't know, any "unused" loop chunks that come immediately after another identical chunk are likely not unused. They're a part of S1's loop system; the layouts don't directly use them.
     
    Last edited by a moderator: Sep 13, 2015
  9. Selbi

    Selbi Plug in, baby. Retired Staff

    Joined:
    Jul 20, 2008
    Messages:
    2,398
    Location:
    Northern Germany
    Likewise, don't forget that some stages share can share the same chunk layouts. I don't think this is the case with S1, but it definitely is with EHZ and HTZ in S2.
     
  10. Psycho RFG

    Psycho RFG Well-Known Member Member

    Joined:
    Feb 22, 2011
    Messages:
    229
    ​Thanks! It is very useful and it helped me a lot with what I was doing.
     
  11. RyeBread

    RyeBread Well-Known Member Member

    Joined:
    May 10, 2013
    Messages:
    155
    Location:
    Devon, UK
    Really quick question - does anybody know how to make Sonic's jump sprite use a singular frame and not animate? I tried and it worked but a bit after he began falling Sonic would just vanish. In case you're wondering, I made a thing for a minihack.

    meganmen.png

    also no, that isn't the final sprite.
     
  12. Clownacy

    Clownacy Negative Clownancy Staff

    Joined:
    Aug 15, 2014
    Messages:
    884
    Guess I'm too late, but I just updated the tool to detect and identify those "unused" loop chunks.

    I also fixed some bugs, optimised it, and made it not check loop IDs above 0x7F, since the chunk ID cap is at 0x7F. Technically, the limit is at 0x52 because of RAM constrains, but I can't be sure how close to stock your engine is. It could read chunks from ROM for all I know, giving you all 0x7F.
     
    Last edited by a moderator: Sep 13, 2015
  13. Natsumi

    Natsumi Phoenix egg Member

    Joined:
    Oct 7, 2011
    Messages:
    702
    Location:
    Long and dangerous river
    Clownacy, is there a tool to do this for Sonic 2/Sonic 128 level format? Would be fairly nice to optimize chunk and block usage and save some additional ROM, as I am running dangerously low on it.

    RaideInSlash: The basic way the animation scripts works, is that there is animation speed, animation contents, and end marker. I am assuming you are changing the rolling animation, which originally is this:

    Code:
    dc.b $FE, $2E, $2F, $30, $31, $32, $FF,    $FF
    Code:
    now, $FF here is the end marker, which you want to use with a singular frame, and here is example of what you may want to do:
    Code:
    dc.b $FE, $2E, $FF
     


    This is fine and all, but because of the way the engine treats running, walking and pushing animations, if another animation was ran at any other animation offset than 0 or 1 ($2E or $FF in this case), it will read contents of the next animation. This of course will cause it to show incorrect frames, as can be seen in Sonic Green Snake, where sometimes this glitch would occur due to error in my part. The way to fix this is actually really easy:
    Code:
    dc.b $FE, $2E, $FF, $FF, $FF, $FF, $FF,    $FF
     

    now, if the engine tries to read any other frame than the first, the animation script will terminate and restart from the beginning!
     
  14. Clownacy

    Clownacy Negative Clownancy Staff

    Joined:
    Aug 15, 2014
    Messages:
    884
    Not yet, but I can always write one.

    Tada. This only accepts uncompressed files, so it works with Project Two Eight.
     
  15. Psycho RFG

    Psycho RFG Well-Known Member Member

    Joined:
    Feb 22, 2011
    Messages:
    229
    Thanks for the update Clownacy. I already did my changes to an unused chunk like I wanted, yeah, but It's very welcome for future edits.
     
  16. LucasMadword

    LucasMadword That one nerd. You know the one. Member

    Joined:
    Jul 18, 2015
    Messages:
    29
    Hi all. I need a bit of help with changing the frame that is displayed when a certain monitor is destroyed. I've added a line into obj26.asm which looks like this:

    DestroyedTwo: dc.b 1, $D, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, 0This is a new line that I added in. I've tested it, and it displays the right sprite (when this code replaces the previous lines). How do I add this in to play when a certain monitor is destroyed? Currently, it is only playing byte_A582, which is the default sprite. I want it to display this sprite when only the S monitor is destroyed. How would I go about doing this? 

    Thanks everyone! 
     
  17. JoenickROS

    JoenickROS ROS is on hiatus. (...again) Member

    Joined:
    Feb 5, 2012
    Messages:
    922
    The way I would do it, is to check by the monitors subtype for the S monitor, if the check is met it will branch over the default frame and use your new frame instead when the monitor is destroyed. Make sure your calling that frame after the check of course.

    Edit: Sorry I answered it incorrectly at first, I was distracted.
     
    Last edited by a moderator: Sep 17, 2015
  18. warr1or2

    warr1or2 I AM CLG Member

    Joined:
    Apr 7, 2008
    Messages:
    389
    Location:
    Town Creek, AL
    I'm having a little trouble trying to make the project sonic 1 two eight kram disassembly use addressed music. Right now I can't get by the lines

    Move.l (a0), -($04+$04)(a0)

    Three lines of this in loc_71bb2, smps_ nomusic, smps_nosound, and smps_ nocontrol which brings the error "unknown function) $04

    >>mentioned line here<<<Addressingi mode not allowed here."

    Its alI have left to get by. 
     
  19. MarkeyJester

    MarkeyJester ! % # @ Member

    Joined:
    Jun 27, 2009
    Messages:
    2,796
    Kram1024 insisted that the "kraminator special" version should use the "AS" macro assembler, instead of the initial "asm68k" that was supplied with the original Two Eight.

    AS cannot assemble -($04+$04)(a0) as it does not understand that the first line of brackets, are not used in the form of (aN) or (aN,dN), but rather a precalculative requirement to ensure the $04+$04 is converted to $08, before applying the "-".

    You're solution is quite simple.  So simple in fact, I'm not going to tell you~~~
     
    Last edited by a moderator: Sep 18, 2015
  20. warr1or2

    warr1or2 I AM CLG Member

    Joined:
    Apr 7, 2008
    Messages:
    389
    Location:
    Town Creek, AL
    BAH. I tried everything but the obvious. Thanks anyway markey. Got it fixed. I just got a few things to fix up and I'm ready to redo my Richter hack, since I have a better idea on what to do with it.