don't click here

Basic Questions & Answers thread

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

  1. Animemaster

    Animemaster

    Prison bitch! Member
    346
    0
    0
    UK
    Sonic 1 Revelation
    Yeah I have always had this problem.
     
  2. In Sonic Megamix, I noticed the sound test allows you to see which notes are being played by the sound chip... Is there a way of using this data to make a midi file?
     
  3. FireStar

    FireStar

    The ultimate lurker
    Is there any way to quickly clear the layout of a level in Either Sonic Erasel?
     
  4. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,742
    338
    63
    SonLVL
    I'm having an art problem. I added the following code to the door object (obj2d):
    Code (Text):
    1. ;Check for other zones here
    2. loc_1171C:
    3.     cmpi.b    #8,(Current_Zone).w
    4.     bne.s    door_not_hpz
    5.     move.w    #$7DC0,art_tile(a0)
    6.     move.b    #8,width_pixels(a0)
    7.  
    8. door_not_hpz:
    9. ;continues normally from here
    and HPZ's plcs:
    Code (Text):
    1. PlrList_Hpz1: plrlistheader
    2.     plreq $77C0, ArtNem_Buzzer_Fireball
    3.     plreq $7A40, ArtNem_Buzzer
    4.     plreq $7DC0, ArtNem_ConstructionStripes
    5.     plreq $8000, ArtNem_WaterSurface
    6.     plreq $8680, ArtNem_Spikes
    7.     plreq $8780, ArtNem_DignlSprng
    8.     plreq $8B80, ArtNem_VrtclSprng
    9.     plreq $8E00, ArtNem_HrzntlSprng
    10. PlrList_Hpz1_End
    But the door is using scrambled tiles. What am I doing wrong?
     
  5. Sonic 65

    Sonic 65

    Tech Member
    You need to move $7DC0/$20 ($3EE) to art_tile(a0), not just $7DC0. (This is because each 8x8 tile takes up $20 bytes in VRAM.)
     
  6. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,742
    338
    63
    SonLVL
    How would I make Sonic 2's debug code accept 0 as part of the cheat like S2K?
    Edit: Never mind, fixed it myself.
     
  7. GT Koopa

    GT Koopa

    Member
    2,021
    18
    18
    Elgin, IL
    Flicky Turncoat DX, T.L.W.S. Vs M.G.W.
    Well, the main reason for wanting to know how to get the mac build tools to work is so I have a way to fix the "red screen of death" on a mac. I can do it at a away pc, sure, but I want access at home. I am slowly trying to figure out hex and the asm output work. So can the mac sonic hackers help me out here?

    Hmm...so I have to run it via the apple terminal?

    Last login: Tue Sep 15 17:55:56 on ttyp1
    /Users/********/Desktop/Bak-s2x/build-mac.sh; exit
    Welcome to Darwin!
    *********-Computer:~ *********$ /Users/**********/Desktop/Bak-s2x/build-mac.sh; exit
    env: mac/asl: No such file or directory
    logout
    [Process completed]



    Ok. It asks for the mac/asl file, but it can't find it. But I know it is there.
    By moving the msg files out of its msg folder and into the mac/ folder, I can get mac/asl to work correctly. But of course, build-mac.sh still doesn't think mac/asl exists.
     
  8. Hodgy

    Hodgy

    Member
    797
    0
    16
    UK
    Games programming :)
    Hello I was reading the "basic how to edit art" guide and at th bottom it mentions a second half that explains how to import a palette into Fatilety so the art can be edited correctly, but I am unable to find the seccond half of the guide >.< can someone provide me a link please?
     
  9. Selbi

    Selbi

    The Euphonic Mess Member
    1,497
    48
    28
    Northern Germany
    Sonic ERaZor
    There is no part 2 and there will probably never be one.
     
  10. Hodgy

    Hodgy

    Member
    797
    0
    16
    UK
    Games programming :)
    Awww :'(
     
  11. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,742
    338
    63
    SonLVL
    I added a (rather large) new object (Obj4C) to S2 and put the code after the "Tails' Tails" object, and now all these errors come up:
    Code (Text):
    1. > > >s2.asm(41076): error: jump distance too big
    2. > > >   bsr.w   Adjust2PArtPointer ;in Obj38_Main
    3. > > >s2.asm(41138): error: jump distance too big
    4. > > >   bsr.w   Adjust2PArtPointer2
    5. > > >s2.asm(41156): error: jump distance too big
    6. > > >   beq.w   DeleteObject
    7. > > >s2.asm(41194): error: jump distance too big
    8. > > >   bra.w   DisplaySprite3
    9. > > >s2.asm(41200): error: jump distance too big
    10. > > >   beq.w   DeleteObject
    11. > > >s2.asm(41261): error: jump distance too big
    12. > > >   bra.w   DisplaySprite3
    13. > > >s2.asm(41334): error: jump distance too big
    14. > > >   bsr.w   Adjust2PArtPointer
    15. > > >s2.asm(41405): error: jump distance too big
    16. > > >   bra.w   DeleteObject
    17. > > >s2.asm(41526): error: jump distance too big
    18. > > >   bsr.w   Adjust2PArtPointer
    19. > > >s2.asm(43438): error: jump distance too big
    20. > > > - bsr.w   SingleObjLoad2
    21. > > >s2.asm(43751): error: jump distance too big
    22. > > >   bsr.w   SingleObjLoad
    23. > > >s2.asm(43939): error: jump distance too big
    24. > > >   bsr.w   SingleObjLoad
    25. > > >s2.asm(44647): error: jump distance too big
    26. > > >   bsr.w   PlatformObject
    27. > > >s2.asm(44699): error: jump distance too big
    28. > > >   bsr.w   SolidObject
    29. > > >s2.asm(45173): error: jump distance too big
    30. > > >   bsr.w   SolidObject74_30
    31. > > >s2.asm(45741): error: jump distance too big
    32. > > >   bsr.w   loc_19E14
    33. > > >s2.asm(45769): error: jump distance too big
    34. > > >   bsr.w   loc_19E14
    35. > > >s2.asm(45900): error: jump distance too big
    36. > > >   bsr.w   loc_19E14
    37. > > >s2.asm(46101): error: jump distance too big
    38. > > >   bra.w   SlopeObject
    How do I fix it? I tried changing .w to .l but that didn't work.
     
  12. Afti

    Afti

    ORIGINAL MACHINE Member
    3,521
    0
    0
    Increase the distance of the branches.

    IE: bsr.w needs to be bsr.l
     
  13. Sik

    Sik

    Sik is pronounced as "seek", not as "sick". Tech Member
    6,718
    1
    0
    being an asshole =P
    Long branches are not supported in the 68000, it needs to be 68020 or higher, which means it's a no-no for the Mega Drive.

    Use jumps instead. Replace bra with jmp and bsr with jsr and you're done. The main differences are in how they store the address internally and that jumps can't be conditional (unlike branches).

    EDIT: and make sure to get rid of the .w suffix :P
     
  14. Malevolence

    Malevolence

    Tech Member
    274
    0
    16
    Edit: Sik's a slut.
     
  15. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,742
    338
    63
    SonLVL
    I found this posted in this topic after I posted. I need to search first, then ask questions. But it worked! Now I just have a bunch of "Symbol Undefined" errors that I need to define symbols for.
    Edit: Okay, looks like I broke something else... but it's nowhere near the code I added and it worked fine before:
    Code (Text):
    1. > > >s2.asm(53976): error: addressing mode not allowed on 68000
    2. > > >   lea     byte_28726(pc,d1.w),a1
    3. > > >s2.asm(53976): error: addressing mode not allowed here
    4. > > >   lea     byte_28726(pc,d1.w),a1
    loc_286A2 in Obj70
    Edit: Never mind? Adding/fixing the other labels fixed this (I think).
    Edit2: WOW, it actually worked! I wasn't really expecting it to work! I thought I would need to get help from someone (more than I did).
    Edit3: Okay, now how do I add entries to the Character Select in the Options Menu?
    Now you know what I'm doing.
     
  16. SegaLoco

    SegaLoco

    W)(at did you say? Banned
    Okay, so I am trying to learn Genesis assembly programming. I tried making my own rom, with my own initialization methods, I have no idea if it was successful, but I have to ask, how do I make the VDP do the checksum red thing, I am thinking of having checksum error point to a red screen, and success in my initialization point to a blue screen, would I need anything else besides
    Code (Text):
    1. move.l        #$C0000000, ($C00004).l
    2. move.w        #(color), ($C00000).l
    I have asked around the irc, and I have got some answers that have helped in general, but haven't solved my problem. Maybe some of you non-irc people can help me out.

    Edit: >_> Just realized this is for SONIC based Q&A, someone move this to Tech Discussion please.
     
  17. MoDule

    MoDule

    Tech Member
    327
    24
    18
    Procrastinating from writing bug-fix guides
    I guess I never did get around to documenting the options menu code for the SVN. Oh well.
    Anyway, I've already done similar things to the options menu. I even made a post about how to extend the 2p options here. It's about monitors at first, but the options menu stuff is in there, too.
    That should give you a bump in the right direction. If there's still problems, feel free to pm me.
     
  18. Sik

    Sik

    Sik is pronounced as "seek", not as "sick". Tech Member
    6,718
    1
    0
    being an asshole =P
    Doing that will write the color to the first entry in CRAM (palette 0, color 0). If that's what you want, then it's OK. Make sure VRAM is cleared up though because otherwise garbage will appear in real hardware.

    I don't see an equivalent for non-Sonic Q&A though...
     
  19. SegaLoco

    SegaLoco

    W)(at did you say? Banned
    Well, I just mean, is it proper to ask non-sonic assembly questions here?
     
  20. Overlord

    Overlord

    Now playable in Smash Bros Ultimate Moderator
    19,241
    974
    93
    Long-term happiness
    If it's Mega Drive related, I don't OVERLY see why not...