Basic Questions & Answers thread

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

  1. Dr. Kylstein

    Dr. Kylstein

    Member
    84
    0
    6
    Thank you. Now I need the DPLCs. I think I have found them in the disassembly, but I don't know what actually goes into one. Or you could just give me the ROM address range.

    Edit: Actually, I haven't found them. It does use them though, right?
     
  2. Peruant

    Peruant

    Just dropping in through gaps Member
    Oh man I feel like an idiot . Talkin bout xm3smps. This question refers to this one

    What are these xm files I keep seeing? I thought I just needed the bins alone to edit the music

    Next is ESE II Sound Importer

    Assuming I'm using Sonic 1 as the hack , I try to port one of the songs over from S3K but I'm left with a red screen when I load up in game. Did I forget to do something or does it have to do with the checksum or something in that area?
     
  3. nineko

    nineko

    I am the Holy Cat Tech Member
    XM is a music file format like MIDI, just much more awesome.
    You find a song you like in XM format and you can convert it to a BIN usable by Sonic 1.
     
  4. Peruant

    Peruant

    Just dropping in through gaps Member
    Makes much more sense to me. Any recommendations for find XMs ? I've tried google.

    Now what I'm doing at the moment is trying to find a song. I'm gonna check with Shinobi 3 since no one has touched that spot
     
  5. HighFrictionZone

    HighFrictionZone

    Hi. Member
    855
    0
    0
    Katy, Texas
    Nothing
    As far as I am aware, red screen = checksum error. If you're using a split disassembly, this shouldn't be a problem as I'm pretty sure the checksum is auto-calculated, or at least there is an easy way to disable the checksum routine. If you aren't using a split disassembly, there should be a checksum fixer around here somewhere. I can't find it right now, but some searching should turn one up if you really need it.
     
  6. FraGag

    FraGag

    Tech Member
    659
    0
    0
    Québec, Canada
    an assembler
    The program to fix the checksum is included with the disassembly and runs when build.bat is executed. When editing a ROM, you have to fix it manually. However, direct ROM editing is very limiting, so I suggest you work with a disassembly instead, mostly if you plan to change the code.
     
  7. Ughh, I can't do anything to my hack other than level editing, and adding compressed art. If I edit the palette, and run build.bat, nothing. If I TRY SO (place french curse-word here) TO ADD SPINDASH TO S1 AND RUN BUILD.BAT, nothing. Anyone know why?
     
  8. HighFrictionZone

    HighFrictionZone

    Hi. Member
    855
    0
    0
    Katy, Texas
    Nothing
    Well, that would depends. How, exactly, are you editing the palette? What files are you changing? What files are you editing to get spindash? How does it produce nothing? Did you follow the guides to the letter? We need more information on what files you are editing, what tools you are editing them with, where all your hack files are located before we can figure out what the problem is.

    This is true of any help request: be as detailed and specific as possible on what you are trying to do, what you have already done, and any errors you get - the more details you give, the easier it is to figure out what exactly the problem is.
     
  9. I am editing the palette using Hivepal, by loading the rom and selecting a level. After that, when I'm done, I save and run build.bat. Nothing. I am using Lightning and Puto's guide for spindash and editing it using ConTEXT, and saving the file, buid, nothing.
     
  10. Chobbsy

    Chobbsy

    Member
    4
    0
    0
    Im not sure, because I haven't used hivepal since I downloaded SonMapEd, but doesn't it just edit the clean rom rather than the split files? Try splitting the edited rom in another place, and then move the pallet file over and build. That should edit the pallet for the built file.
     
  11. Argh, I was editing the palette, and clicked build.bat. I left Gens+ on btw. Then all of a sudden my S1BUILT file changed from 512MB to 1 MB. How do I fix this?
     
  12. Joaki

    Joaki

    AKA BombJack93 Member
    How can I change the Title Cards route dissassembly? "Green Hill" is that instead of "Blast Park" now it goes out for me. Thank you for any help!
     
  13. HighFrictionZone

    HighFrictionZone

    Hi. Member
    855
    0
    0
    Katy, Texas
    Nothing
    Erm. I think that it's SUPPOSED to be 1MB. That is, after all, the function of the rompad.exe, is it not? To pad the rom out to an even value? I don't know, all I know is that all my roms build to 1 MB. Regardless, does the palette work now? If it does, no problem! If not, well, must be something else.
     
  14. Malevolence

    Malevolence

    Tech Member
    274
    0
    16
    After you add a certain amount it will change it from 512-I'm stupid-kb-I'm stupid- to 1mb. If you did everything correctly it will still work.
     
  15. Hey I have a small problem. When I was done porting the Rev01 effects to my hack, I saved, and ran build.bat. Then, like I said before, instead of "S1BUILT", it was "s1built" and was 1 KB. Luckily, I had a copy, fixed the checksum on the copy, and then tried it out. What the problem is though that I think whenever I want to add something to the hack, it will become 1 KB. Is this true? If it is, can you please tell me anyway to prevent it? Thanks anyway.
     
  16. Malevolence

    Malevolence

    Tech Member
    274
    0
    16
    I had the same problem when I started out. This usually happens though. Half the time you work with assembly, you're fixing things. What you need to do when this happens is go into command prompt and get to the folder it's in (you type "cd thisisthelocationthefileisin" without quotation marks), then you press enter and now it says you are in the folder. Next you type in build and hit enter. If you had a problem it will be displayed as an error and you will have to find it in the rom, and fix it.
     
  17. Can you give a specific tutorial please?
     
  18. FraGag

    FraGag

    Tech Member
    659
    0
    0
    Québec, Canada
    an assembler
    To make it more simple, just open build.bat in Notepad (or any other text editor) and add this line at the very end:
    Code (Text):
    1. pause
    The messages will stay there until you press a key.
     
  19. Malevolence

    Malevolence

    Tech Member
    274
    0
    16
    Okay, let's say I want to make the Eggman object in Sonic 1 a valid object. I look up the code to see this:
    <!--g1--><div class='geshitop'>Syntax Highlighted Code: ASM</div><div class='codemain'><!--eg1--><pre class="asm">Obj2E_ChkEggman: [color= #adadad; font-style: italic;]; XREF: Obj2E_Move[/color]
    [color= #00bfff;]addq[/color].[color= #00bfff;]b[/color] [color= #ff0000;]#[/color][color= #ff0000;]2[/color],[color= #ff0000;]$[/color][color= #ff0000;][color= #ff0000;]24[/color][/color]<span style="">(</span><span style="font-weight:bold;">a0</span><span style="">)</span>
    [color= #00bfff;]move[/color].[color= #00bfff;]w[/color] [color= #ff0000;]#[/color][color= #ff0000;]29[/color],[color= #ff0000;]$[/color][color= #ff0000;]1E[/color]<span style="">(</span><span style="font-weight:bold;">a0</span><span style="">)</span>
    [color= #00bfff;]move[/color].[color= #00bfff;]b[/color] [color= #ff0000;]$[/color][color= #ff0000;]1C[/color]<span style="">(</span><span style="font-weight:bold;">a0</span><span style="">)</span>,<span style="font-weight:bold;">d0</span>
    [color= #00bfff;]cmpi[/color].[color= #00bfff;]b[/color] [color= #ff0000;]#[/color][color= #ff0000;]1[/color],<span style="font-weight:bold;">d0</span> [color= #adadad; font-style: italic;]; does monitor contain Eggman?[/color]
    [color= #00bfff;]bne[/color].[color= #00bfff;]s[/color] Obj2E_ChkSonic
    [color= #00bfff;]rts[/color] [color= #adadad; font-style: italic;]; Eggman monitor does nothing[/color]</pre><!--gc2--><!--T2JqMkVfQ2hrRWdnbWFuOgkJCTsgWFJFRjogT2JqMkVfTW92ZQoJCWFkZHEuYgkjMiwmIzAzNjsyNChh
    MCkKCQltb3ZlLncJIzI5LCYjMDM2OzFFKGEwKQoJCW1vdmUuYgkmIzAzNjsxQyhhMCksZDAKCQljbXBpL
    mIJIzEsZDAJCTsgZG9lcyBtb25pdG9yIGNvbnRhaW4gRWdnbWFuPwoJCWJuZS5zCU9iajJFX0Noa1Nvbm
    ljCgkJcnRzCQkJOyBFZ2dtYW4gbW9uaXRvciBkb2VzIG5vdGhpbmc=--><!--egc2--><!--g2--></div><!--eg2-->
    Now, I'll add this at the end of it which should hurt sonic:
    <!--g1--><div class='geshitop'>Syntax Highlighted Code: ASM</div><div class='codemain'><!--eg1--><pre class="asm"> [color= #00bfff;]lea[/color] <span style="">(</span>[color= #ff0000;]$[/color][color= #ff0000;]FFFFD000[/color]<span style="">)</span>.[color= #00bfff;]w[/color],<span style="font-weight:bold;">a0</span>
    [color= #00bfff;]jsr[/color] HurtSonic</pre><!--gc2--><!--CQlsZWEJKCYjMDM2O0ZGRkZEMDAwKS53LGEwCgkJanNyCUh1cnRTb25pYw==--><!--egc2--><!--g2--></div><!--eg2-->
    Let's say I accidently put HurtSoni instead of HurtSonic. I then go to build, but what, it's only one kb.
    Then we'll go to our command prompt to see what the problem is. In windows command prompt is found in accessories in all programs.
    So, we click on it and it should say right next to where you type c:\Documents and Settings\UserName>_
    What you do is type in cd TheAreaWhereYouClickBuild and then press enter. After that it should have that area as opposed to c:\Documents and Settings\UserName>_
    Now, type in build and press enter. In our case this will come up:
    Code (Text):
    1. > > >sonic1.asm<12698>: error: symbol undefined<-[K
    2. > > > HurtSoni<-[K
    3. > > >        jsr    HurtSoni<-[K
    4. > > >sonic1.asm<12689>: warning: address is not properly aligned<-[K
    5. > > >        jsr    HurtSoni<-[K
    6. > > >sonic1.asm<12698>: error: addressing mode not allowed here<-[K
    7. > > >        jsr    HurtSoni<-[K
    Now we know that there is something wrong here, and we should go fix it. In this case, it's obvious that HurtSonic was spelled incorrectly.
    Now go and fix it, and look, 512 KB just as it should be. Now that's not everything needed to make the eggman monitor to work.
    If you wanted to completely restore it (I might as well finish), you just need to put this before the other things you added:
    <!--g1--><div class='geshitop'>Syntax Highlighted Code: ASM</div><div class='codemain'><!--eg1--><pre class="asm"> [color= #00bfff;]tst[/color].[color= #00bfff;]b[/color] <span style="">(</span>[color= #ff0000;]$[/color][color= #ff0000;]FFFFFE2D[/color]<span style="">)</span>.[color= #00bfff;]w[/color] [color= #adadad; font-style: italic;]; is Sonic invincible?[/color]
    [color= #00bfff;]bne[/color].[color= #00bfff;]s[/color] ChkEggmanNO [color= #adadad; font-style: italic;]; if yes, branch[/color]
    [color= #00bfff;]tst[/color].[color= #00bfff;]w[/color] <span style="">(</span>[color= #ff0000;]$[/color][color= #ff0000;]FFFFD030[/color]<span style="">)</span>.[color= #00bfff;]w[/color] [color= #adadad; font-style: italic;]; is Sonic invulnerable?[/color]
    [color= #00bfff;]bne[/color].[color= #00bfff;]s[/color] ChkEggmanNO [color= #adadad; font-style: italic;]; if yes, branch[/color]</pre><!--gc2--><!--CQl0c3QuYgkoJiMwMzY7RkZGRkZFMkQpLncJOyBpcyBTb25pYyBpbnZpbmNpYmxlPwoJCWJuZS5zCUNo
    a0VnZ21hbk5PCTsgaWYgeWVzLCBicmFuY2gKCQl0c3QudwkoJiMwMzY7RkZGRkQwMzApLncJOyBpcyBTb
    25pYyBpbnZ1bG5lcmFibGU/CgkJYm5lLnMJQ2hrRWdnbWFuTk8JOyBpZiB5ZXMsIGJyYW5jaA==--><!--egc2--><!--g2--></div><!--eg2-->
    Then add this right underneath the code:
    <!--g1--><div class='geshitop'>Syntax Highlighted Code: ASM</div><div class='codemain'><!--eg1--><pre class="asm">ChkEggmanNO:
    [color= #00bfff;]rts[/color]</pre><!--gc2--><!--Q2hrRWdnbWFuTk86CgkJcnRz--><!--egc2--><!--g2--></div><!--eg2-->
    If those are not put, sonic will get hurt while invincible or when hurt right before (like the spike bug), and ChkEggmanNO will stop sonic from getting hurt.
    So, in the end your code should be this:
    <!--g1--><div class='geshitop'>Syntax Highlighted Code: ASM</div><div class='geshimain'><!--eg1--><pre class="asm">Obj2E_ChkEggman: [color= #adadad; font-style: italic;]; XREF: Obj2E_Move[/color]
    [color= #00bfff;]addq[/color].[color= #00bfff;]b[/color] [color= #ff0000;]#[/color][color= #ff0000;]2[/color],[color= #ff0000;]$[/color][color= #ff0000;][color= #ff0000;]24[/color][/color]<span style="">(</span><span style="font-weight:bold;">a0</span><span style="">)</span>
    [color= #00bfff;]move[/color].[color= #00bfff;]w[/color] [color= #ff0000;]#[/color][color= #ff0000;]29[/color],[color= #ff0000;]$[/color][color= #ff0000;]1E[/color]<span style="">(</span><span style="font-weight:bold;">a0</span><span style="">)</span>
    [color= #00bfff;]move[/color].[color= #00bfff;]b[/color] [color= #ff0000;]$[/color][color= #ff0000;]1C[/color]<span style="">(</span><span style="font-weight:bold;">a0</span><span style="">)</span>,<span style="font-weight:bold;">d0</span>
    [color= #00bfff;]cmpi[/color].[color= #00bfff;]b[/color] [color= #ff0000;]#[/color][color= #ff0000;]1[/color],<span style="font-weight:bold;">d0</span> [color= #adadad; font-style: italic;]; does monitor contain Eggman?[/color]
    [color= #00bfff;]bne[/color].[color= #00bfff;]s[/color] Obj2E_ChkSonic
    [color= #00bfff;]tst[/color].[color= #00bfff;]b[/color] <span style="">(</span>[color= #ff0000;]$[/color][color= #ff0000;]FFFFFE2D[/color]<span style="">)</span>.[color= #00bfff;]w[/color] [color= #adadad; font-style: italic;]; is Sonic invincible?[/color]
    [color= #00bfff;]bne[/color].[color= #00bfff;]s[/color] ChkEggmanNO [color= #adadad; font-style: italic;]; if yes, branch[/color]
    [color= #00bfff;]tst[/color].[color= #00bfff;]w[/color] <span style="">(</span>[color= #ff0000;]$[/color][color= #ff0000;]FFFFD030[/color]<span style="">)</span>.[color= #00bfff;]w[/color] [color= #adadad; font-style: italic;]; is Sonic invulnerable?[/color]
    [color= #00bfff;]bne[/color].[color= #00bfff;]s[/color] ChkEggmanNO [color= #adadad; font-style: italic;]; if yes, branch[/color]
    [color= #00bfff;]lea[/color] <span style="">(</span>[color= #ff0000;]$[/color][color= #ff0000;]FFFFD000[/color]<span style="">)</span>.[color= #00bfff;]w[/color],<span style="font-weight:bold;">a0</span>
    [color= #00bfff;]jsr[/color] HurtSonic
    &nbsp;
    ChkEggmanNO:
    [color= #00bfff;]rts[/color]</pre><!--gc2--><!--T2JqMkVfQ2hrRWdnbWFuOgkJCTsgWFJFRjogT2JqMkVfTW92ZQoJCWFkZHEuYgkjMiwmIzAzNjsyNChh
    MCkKCQltb3ZlLncJIzI5LCYjMDM2OzFFKGEwKQoJCW1vdmUuYgkmIzAzNjsxQyhhMCksZDAKCQljbXBpL
    mIJIzEsZDAJCTsgZG9lcyBtb25pdG9yIGNvbnRhaW4gRWdnbWFuPwoJCWJuZS5zCU9iajJFX0Noa1Nvbm
    ljCgkJdHN0LmIJKCYjMDM2O0ZGRkZGRTJEKS53CTsgaXMgU29uaWMgaW52aW5jaWJsZT8KCQlibmUucwl
    DaGtFZ2dtYW5OTwk7IGlmIHllcywgYnJhbmNoCgkJdHN0LncJKCYjMDM2O0ZGRkZEMDMwKS53CTsgaXMg
    U29uaWMgaW52dWxuZXJhYmxlPwoJCWJuZS5zCUNoa0VnZ21hbk5PCTsgaWYgeWVzLCBicmFuY2gKCQlsZ
    WEJKCYjMDM2O0ZGRkZEMDAwKS53LGEwCgkJanNyCUh1cnRTb25pYwoKQ2hrRWdnbWFuTk86CgkJcnRz--><!--egc2--><!--g2--></div><!--eg2-->
    And you you will be able to check the errors in your assembly file when needed.
    Also, as FraGag stated (which is a simpler way), but command prompt shows the same thing.
     
  20. Dark Sonic

    Dark Sonic

    I'll find the old avatar eventually Member
    12,119
    6
    18
    Working on my art!
    Where are the mappings located for the title screen in Sonic 1? Hard to edit the title screen art without them (I think I've looked through them all however I'm not too sure. I may have overlooked something).

    Still having the previous problem involving Title screen deformation. I've tried everything I can think of.