don't click here

Sonic 2 Level Select Help

Discussion in 'Engineering & Reverse Engineering' started by Alriightyman, Mar 5, 2008.

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

    Alriightyman

    I am back... from the dead! Tech Member
    357
    11
    18
    Somewhere in hot, death Florida
    0101001101101111011011100110100101100011 00000010: 0101001100000011 01000101011001000110100101110100011010010110111101101110
    I ported the level select from sonic 2 to sonic 1. Everything works except the Sonic/Miles background doesn't load in the vram. Here's a screen shot:
    [​IMG]
    Her is my code:

    Code (ASM):
    1. LevelSelectMenu:
    2.     bsr.w   Pal_FadeFrom
    3.     move    #$2700,sr
    4.     move.w  ($FFFFF60C).w,d0
    5.     andi.b  #-$41,d0
    6.     move.w  d0,($C00004).l
    7.     bsr.w   ClearScreen
    8.     lea ($C00004).l,a6
    9.     move.w  #$8004,(a6)
    10.     move.w  #$8230,(a6)
    11.     move.w  #$8407,(a6)
    12.     move.w  #$8230,(a6)
    13.     move.w  #$8700,(a6)
    14.     move.w  #$8C81,(a6)
    15.     move.w  #$9001,(a6)
    16.     lea ($FFFFAC00).w,a1
    17.     moveq   #0,d0
    18.     move.w  #$FF,d1
    19.  
    20. loc2_8C1A:          ; CODE XREF: ROM:00008C1Cj
    21.     move.l  d0,(a1)+
    22.     dbf d1,loc2_8C1A
    23.     lea ($FFFFD000).w,a1
    24.     moveq   #0,d0
    25.     move.w  #$7FF,d1
    26.  
    27. loc_8C2A:           ; CODE XREF: ROM:00008C2Cj
    28.     move.l  d0,(a1)+
    29.     dbf d1,loc_8C2A
    30.    
    31.     clr.w   ($FFFFA300).w
    32.     move.l  #$FFFFA300,($FFFFA3FC).w
    33.     move.l  #$42000000,($C00004).l
    34.     lea (FontStuff).l,a0
    35.     bsr.w   NemDec
    36.     move.l  #$52000000,($C00004).l
    37.     lea (LevelPics).l,a0
    38.     bsr.w   NemDec
    39.     lea ($FFFF0000).l,a1
    40.     lea (MapEng_MenuBack).l,a0
    41.     move.w  #$6000,d0
    42.     bsr.w   EniDec
    43.     lea ($FFFF0000).l,a1
    44.     move.l  #$60000003,d0
    45.     moveq   #$27,d1
    46.     moveq   #$1B,d2
    47.     bsr.w   ShowVDPGraphics
    48.    
    49.    
    50.    
    51. MenuScreen_LevelSelect:
    52.     lea ($FFFF0000).l,a1
    53.     lea (MapEng_LevSel).l,a0
    54.     move.w  #0,d0
    55.     bsr.w   EniDec
    56.     lea ($FFFF0000).l,a1
    57.     move.l  #$40000003,d0
    58.     moveq   #$27,d1
    59.     moveq   #$1B,d2
    60.     bsr.w   ShowVDPGraphics
    61.     moveq   #0,d3
    62.     bsr.w   loc_965A
    63.     lea ($FFFF08C0).l,a1
    64.     lea (MapEng_LevSelIcon).l,a0
    65.     move.w  #$90,d0
    66.     bsr.w   EniDec
    67.     bsr.w   loc_9688
    68.     clr.b   ($FFFFFF70).w
    69.     clr.w   ($FFFFF7F0).w
    70.     lea (word_87C6).l,a2
    71.     bsr.w   j_Dynamic_Normal
    72.     moveq   #$14,d0
    73.     bsr.w   PalLoad1
    74.     lea ($FFFFFB40).w,a1
    75.     lea ($FFFFFBC0).w,a2
    76.     moveq   #7,d1
    77.  
    78. loc_9366:
    79.     move.l  (a1),(a2)+
    80.     clr.l   (a1)+
    81.     dbf d1,loc_9366
    82.     move.b  #$94,d0
    83.     bsr.w   PlaySound_Special
    84.     move.w  #$707,($FFFFF614).w
    85.     clr.l   ($FFFFF700).w
    86.     clr.l   ($FFFFF704).w
    87.     move.b  #$16,($FFFFF62A).w
    88.     bsr.w   DelayProgram
    89.     move.w  ($FFFFF60C).w,d0
    90.     ori.b   #$40,d0
    91.     move.w  d0,($C00004).l
    92.     bsr.w   Pal_FadeTo
    93.  
    94. loc_93AC:
    95.     move.b  #$16,($FFFFF62A).w
    96.     bsr.w   DelayProgram
    97.     move    #$2700,sr
    98.     moveq   #0,d3
    99.     bsr.w   loc_95B8
    100.     bsr.w   LevSelControls
    101.     move.w  #$6000,d3
    102.     bsr.w   loc_95B8
    103.     bsr.w   loc_9688
    104.     move    #$2300,sr
    105.     lea (word_87C6).l,a2
    106.     bsr.w   j_Dynamic_Normal
    107.     move.b  ($FFFFF605).w,d0
    108.     andi.b  #$80,d0
    109.     bne.s   LevSel_Level_SS
    110.     bra.w   loc_93AC
    111.        
    112. ; ===========================================================================
    113.  
    114. LevSel_Level_SS:
    115.     move.w  ($FFFFFF82).w,d0
    116.     add.w   d0,d0
    117.     move.w  LSelectPointers(pc,d0.w),d0
    118.     bmi.w   loc_944C
    119.     cmpi.w  #$0700,d0
    120.     bne.s   LevSel_Level
    121.     move.b  #$10,($FFFFF600).w; => SpecialStage
    122.     clr.w   ($FFFFFE10).w
    123.     move.b  #3,($FFFFFE12).w
    124.     moveq   #0,d0
    125.     move.w  d0,($FFFFFE20).w
    126.     move.l  d0,($FFFFFE22).w
    127.     move.l  d0,($FFFFFE26).w
    128.     rts
    129. ; ===========================================================================
    130.  
    131. loc_944C:
    132.     move.b  #0,($FFFFF600).w; => SegaScreen
    133.     rts
    134. j_Dynamic_Normal:
    135.     jmp     Dynamic_Normal
    Code (ASM):
    1. Dynamic_Normal:
    2.     lea ($FFFFF7F0).w,a3   ;Don't have a clue as to what $FFFFF7F0 does
    3.  
    4. loc_3FF30:
    5.     move.w  (a2)+,d6
    6.  
    7. loc_3FF32:
    8.     subq.b  #1,(a3)
    9.     bcc.s   loc_3FF78
    10.     moveq   #0,d0
    11.     move.b  1(a3),d0
    12.     cmp.b   6(a2),d0
    13.     bcs.s   loc_3FF48
    14.     moveq   #0,d0
    15.     move.b  d0,1(a3)
    16.  
    17. loc_3FF48:
    18.     addq.b  #1,1(a3)
    19.     move.b  (a2),(a3)
    20.     bpl.s   loc_3FF56
    21.     add.w   d0,d0
    22.     move.b  9(a2,d0.w),(a3)
    23.  
    24. loc_3FF56:
    25.     move.b  8(a2,d0.w),d0
    26.     lsl.w   #5,d0
    27.     move.w  4(a2),d2
    28.     move.l  (a2),d1
    29.     andi.l  #$FFFFFF,d1
    30.     add.l   d0,d1
    31.     moveq   #0,d3
    32.     move.b  7(a2),d3
    33.     lsl.w   #4,d3
    34.     jsr (DMA_68KtoVRAM).l
    35.  
    36. loc_3FF78:
    37.     move.b  6(a2),d0
    38.     tst.b   (a2)
    39.     bpl.s   loc_3FF82
    40.     add.b   d0,d0
    41.  
    42. loc_3FF82:
    43.     addq.b  #1,d0
    44.     andi.w  #$FE,d0
    45.     lea 8(a2,d0.w),a2
    46.     addq.w  #2,a3
    47.     dbf d6,loc_3FF32
    48.     rts
    Code (ASM):
    1. ; ===========================================================================
    2. word_87C6:  dc.w   0    ; 0; DATA XREF: ROM:00007E4Ao
    3.                 ; ROM:00007EBEo ...
    4. ; Sonic/Miles animated background
    5.         dc.l $FF000000+MenuBack
    6.         dc.w $20
    7.         dc.b 6
    8.         dc.b $A
    9.         dc.b   0,$C7    ; 0
    10.         dc.b  $A,  5    ; 2
    11.         dc.b $14,  5    ; 4
    12.         dc.b $1E,$C7    ; 6
    13.         dc.b $14,  5    ; 8
    14.         dc.b  $A,  5    ; 10
    Any help would be great!
     
  2. Sik

    Sik

    Sik is pronounced as "seek", not as "sick". Tech Member
    6,718
    1
    0
    being an asshole =P
    Wait a second, is that background fixed? Does it always show like that? Because changing the palette that background would be more original than the Sonic/Miles one. It looks like a bunch of rocks to me.

    Yes, that's lazyness :P
     
Thread Status:
Not open for further replies.