Basic Questions & Answers thread

Discussion in 'Engineering & Reverse Engineering' started by Tweaker, May 29, 2008.

  1. MarkeyJester

    MarkeyJester

    My predecessors have nothing on me. Tech Member
    What does it also say?

    When there's a build error (assembly error), the assembler will usually display information about the error, such as:
    1. The source file directory the error is in.
    2. The line number in that source file the error is on.
    3. What the error is (sometimes not 100% specific, but generally).
    I would argue approximately 90% of all errors are "branch out of range" for branches that are... out of range, or "illegal value" for instructions that reference a relative address which is simply too far away. The problem is, we don't know. Simply put, let us know what that error is, either paste the text or even a screenshot of the CMD window if you have to, and we'll explain what the error is, why it happened, and how to fix it so you know in future.
     
  2. MEGAGEN

    MEGAGEN

    Level 3
    20
    0
    0
    England
    Optimizing Sonic Franchise
    Tried a million combinations and loading up the ROM, its just a red screen.

    600 views and no-one has replied?

    Anybody?

    Is there any other Sonic forum which could help us here? Am I in the wrong forum here?
     
  3. Ralakimus

    Ralakimus

    ROT... AND... ASSIMILATE! Tech Member
    331
    1
    18
    Red screen = checksum error. You'll need to run the ROM through a checksum fixer (there's one in the Sonic 1 and 2 disassemblies)
     
  4. MEGAGEN

    MEGAGEN

    Level 3
    20
    0
    0
    England
    Optimizing Sonic Franchise
    Hello and thankyou for the reply much appreciated.

    Were using the s1disasm-master version and unfortunately we cannot find any checksum fixer in the disassembly? Downloaded a genesis checksum fixer but hoping we don't have to use that version as you stated its in the disassembly.

    So basically is the checksum fixer reverting the hash back to original ROM version? I highly doubt this will fix anything because I'm sure the edits are wrong, we cannot find the strings to convert them, and there is nothing online providing any help converting the strings so where do we start here? I have no information to work from, no baseline foundation, just wildly editing strings for luck.

    Do you know where we could find this information for the s1disasm-master version strings?

    Thanks again.
     
  5. Ralakimus

    Ralakimus

    ROT... AND... ASSIMILATE! Tech Member
    331
    1
    18
    "fixheadr.exe" fixes the checksum. It should be automatically run when you build a ROM, though.

    No, on Genesis, the checksum is just every word value after the header added together and AND'ed with $FFFF. It needs to calculate it every time you build a ROM with changes.

    And also, "converting the strings"? What do you exactly mean by that?
     
  6. KingofHarts

    KingofHarts

    Member Member
    1,617
    0
    0
    Project Sonic 8x16
    Can definitely tell you are a Trial Member (as if banners weren't making it already obvious)

    Complaining about lack of replies doesn't net too many replies here. That aside, you made a new thread about optimizing Sonic 1, of all things... there are tons of threads and guides that already do this, both in the forums and documented in the wiki.

    Secondly, looking at the content, there is very little, if any, meat on this bone to warrant its own thread.

    Thirdly, the Sonic 1 hacking "megathread" (Can I call it that, yet?) is more suitable for your questions... http://forums.sonicretro.org/index.php?showtopic=29751 I hope these posts can be moved there by a mod... or perhaps better yet, let's move the OP post to basic questions and answers, since your post was a question.

    Hope that explained the lack of response.
     
  7. EmeraldHog

    EmeraldHog

    New Member
    6
    0
    0
    Well before that, I found 2 sections of code of Tails getting hurt
    Tails when he gets hurt
    ; ---------------------------------------------------------------------------
    ; loc_1CBC6:
    Obj02_Hurt:
    jsr (ObjectMove).l
    addi.w #$30,y_vel(a0)
    btst #6,status(a0)
    beq.s +
    subi.w #$20,y_vel(a0)
    +
    cmpi.w #-$100,(Camera_Min_Y_pos).w
    bne.s +
    andi.w #$7FF,y_pos(a0)
    +
    bsr.w Tails_HurtStop
    bsr.w Tails_LevelBound
    bsr.w Tails_RecordPos
    bsr.w Tails_Animate
    bsr.w LoadTailsDynPLC
    jmp (DisplaySprite).l
    ; ===========================================================================
    ; loc_1CC08:
    Tails_HurtStop:
    move.w (Tails_Max_Y_pos).w,d0
    addi.w #$E0,d0
    cmp.w y_pos(a0),d0
    blt.w JmpTo2_KillCharacter
    bsr.w Tails_DoLevelCollision
    btst #1,status(a0)
    bne.s return_1CC4E
    moveq #0,d0
    move.w d0,y_vel(a0)
    move.w d0,x_vel(a0)
    move.w d0,inertia(a0)
    move.b d0,obj_control(a0)
    move.b #AniIDTailsAni_Walk,anim(a0)
    move.b #2,routine(a0) ; => Obj02_Control
    move.w #$78,invulnerable_time(a0)
    move.b #0,spindash_flag(a0)

    return_1CC4E:
    rts
    But what I am having trouble on is what code I can delete that makes tails lose rings and rebuild the rom without having build errors, I can show you the build errors as well if you'd like, But i thought you should see this first to get a better understanding of it.
     
  8. Super Egg

    Super Egg

    Master of MS Paint. Member
    309
    0
    16
    Tomball, TEXAS
    Sonic 2 beta 3 hoax
    I told you before it wasn't in Tails code at all. You're gonna need to look at the touch response routine, there is two player checks in the routine. The player hurt routines in the player object themselves just tells them to jump back.

    You don't need to port anything from other disassemblies.
     
  9. Tanman Tanner

    Tanman Tanner

    New Member
    6
    0
    1
    Tanman Tanner's Sonic The Hedgehog
    In Sonic 3 & Knuckles, what are the labels that resume invincibility music after cutscenes if Sonic was super/invincible? And how would I change it to work only if Sonic's invincible, NOT Super?

    Also, a song that's in the ROM Hack that makes use of _smps2asm_inc (the one from Flamedriver, albeit slightly edited) bizarrely sometimes play loud bang-like sounds. If I need to upload a video to show what I mean, I can.

    Edit: Both issues have been solved.
     
  10. Digimaks

    Digimaks

    New Member
    4
    0
    0
    My first Sonic 1 hack
    Sorry to pile-on other peeps question. But this issue driving me nuts.

    In Sonic 1 I am trying to free up some ram space to add more graphics tiles for Marble Zone in Pattern Load Cues asm. As from original setup
    "plcm Nem_MzBlock, $5700 ; green stone block " which means the level art space ends at $5700. I moved it to $7F80. It did let my new level art tiles load properly, however now this Nem_MzBlock borrows my level art tiles instead of its proper art tiles. WHY? Is it because the actual mapping still hard-wired to $5700 address somewhere else? How do I fix it?
     
  11. Super Egg

    Super Egg

    Master of MS Paint. Member
    309
    0
    16
    Tomball, TEXAS
    Sonic 2 beta 3 hoax
    I don't quite recognize this Nemesis queue format, probably new shit from the Git disasm. However, if I were to take an educated guess, you'd probably have to also change the VRAM location in the object as well.
     
  12. KingofHarts

    KingofHarts

    Member Member
    1,617
    0
    0
    Project Sonic 8x16
    Random... I don't even really hack anymore but this ALWAYS bugged me and I'm dying to know...

    The Knuckles in Sonic 2 build does not work, and is not identical to an actual GoodGen KIS2 ROM. Upon inspection, it appears that the builder places extra 00s in various areas of data which also throws off some important pointers. These 00s don't seem to be in the ASM file.

    Has this issue ever been discussed?
     
  13. Elliot Gindi

    Elliot Gindi

    Member Member
    92
    0
    0
    New York
    Brawl Minus
    Has anyone made any progress on All-Star Racing Transformed? I really want to replace Yogscast and all of his sounds with just a generic model/sounds. I hate him so much.
     
  14. Ralakimus

    Ralakimus

    ROT... AND... ASSIMILATE! Tech Member
    331
    1
    18
    The KiS2 disasm is only for the contents of the UPMEM ROM, you'll still need a Sonic & Knuckles ROM and a Sonic 2 ROM to properly build and play it.
     
  15. EmeraldHog

    EmeraldHog

    New Member
    6
    0
    0
    Quick thing: is it possible to change the color palletes per act so like of I wanted it day in act 1 but night in act 2? Or can you only edit the color pallete for the whole zone (act 1 and 2) (This is for sonic 2)
     
  16. MainMemory

    MainMemory

    Every day's the same old thing... Same place, diff Tech Member
    4,269
    0
    16
    SonLVL
    You would have to change the way the game loads the palettes to include separate palettes for acts 1 and 2, but yes it is possible.
     
  17. MEGAGEN

    MEGAGEN

    Level 3
    20
    0
    0
    England
    Optimizing Sonic Franchise
    Hello and thankyou for the reply.

    We are trying to convert the strings from the forum to the new disassembly version, the fixes provided are scripted on the older versions.

    The link is here.

    http://info.sonicretro.org/SCHG_How-to:Speed_Up_Ring_Loss_Process_(With_Underwater)

    I cannot find any other information regarding the ring loss lag, this is the only fix, and its the old version and we cannot convert the strings.

    The link to the list of requested converted strings is here.

    http://forums.sonicretro.org/index.php?showtopic=10880&view=findpost&p=941731

    I wrote clearly what needed to be converted and provided a link to the post.
     
  18. Wafer

    Wafer

    Member Member
    32
    0
    6
    Disassembling n00bs, WIP
    You're really asking someone to port the guide for you. But that's not what you really need because nobody actually has time for that unless they're invested in making it happen for their own sake. And it's getting out-of-scope for Basic Questions & Answers.

    One of you needs to learn at least some 68k assembly. Maybe cut your teeth on something else. Eg. right now I'm working on some Mega Drive homebrew almost from the ground up, but two years ago I was just trying to add a fixed items mode to Sonic 2 vs, which was probably about a 10 line hack. And THAT was with over 20 years worth of coding three or four different languages in my spare time.

    You could try following an up-to-date guide for a modern disassembly, even if it's not related to your end goal, you will at least be learning. There are plenty to choose from. But here's the key thing: don't just follow the guide blindly, actually look at each change and figure out why it works. That way you'll learn how to make the changes that you actually want.

    http://info.sonicretro.org/SCHG_How-to:Work_with_Motorola_68000_assembly is a good resource for people with no experience with 68k assembly. MarkeyJester also has a great reference site, here: http://mrjester.hapisan.com/04_MC68/ Finally, here's the 68k instruction set for reference once you've found your feet: http://wpage.unina.it/rcanonic/didattica/ce1/docs/68000.pdf

    Final note: Ralakimus was questioning your use of the word "strings" because what you're talking about aren't strings in terms of programming. You'll find that you rarely deal with strings when working with Mega Drive games.

    Final final note: you're almost out of trial posts, maybe don't waste them repeating the same request for help.
     
  19. MEGAGEN

    MEGAGEN

    Level 3
    20
    0
    0
    England
    Optimizing Sonic Franchise
    Hello,

    With all due respect I did create a thread but the moderator moved all the posts to here and said it was 'basic' so it cant be that difficult.

    I have 0 experience with sonic disassembly code and I even managed to convert 50% of the strings so what are you talking about that someone needs to spend all their time on this?

    All I request is 10mins from an expert for the other 50%, shouldn't take no more then that.

    There is nothing online regarding fixing lag issues with these games, otherwise I wouldn't be asking.

    Also I cant believe no-one here has fixed the lag issue anyway I don't understand? It even says on the thread 'shouldn't be difficult to convert the strings' and that's from the author.

    Thanks again.
     
  20. Aerosol

    Aerosol

    FML and FU2 Member
    10,245
    1
    16
    Not where I want to be.
    Sonic (?): Coming summer of 2055...?
    That's your problem right there. You have 0 experience with "Sonic" disassembly code. It's actually M68K assembly but that's neither here nor there.

    You should heed the message before yours. This project is above you, but not astronomically so. But nobody is going to port the guide specifically for you, you're gonna have to do it yourself. And to do that needs at least a rudimentary understanding of m68k assembly and patience.

    You could just waste the rest of your trial posts though, if you wanted.