Sonic 2 Options Menu to Sonic 1

Discussion in 'Discussion and Q&A Archive' started by Javier, Sep 20, 2013.

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

    Javier Active Member Exiled

    Joined:
    Aug 18, 2013
    Messages:
    49
    Location:
    Unknown
    Hi i'm porting the sonic 2 options menu when i port the options menu i get the following errors here is the asm file.

    Code:
    ;=============================================================;
    ;Sonic 2 Options Screen Programed by Javier                   ;
    ;Options Screen from the Sonic 2 2007 Dissasembly by Xenowhirl;
    ;=============================================================;
    ; loc_8FCC:
    MenuScreen_Options:
    	lea	(Metablock_Table).l,a1
    	lea	(MapEng_Options).l,a0
    	move.w	#$70,d0
    	bsr.w	EniDec
    	lea     ($FFFFFAC00).w, A1
    	lea	(MapEng_Options).l,a0
    	move.w	#$2070,d0
    	bsr.w	EniDec
    	clr.b	(Options_menu_box).w
    	bsr.w	sub_9186
    	addq.b	#1,(Options_menu_box).w
    	bsr.w	loc_91F8
    	addq.b	#1,(Options_menu_box).w
    	bsr.w	loc_91F8
    	clr.b	(Options_menu_box).w
    	clr.b	(Level_started_flag).w
    	clr.w	($FFFFA7F0).w
    	lea	(word_87C6).l,a2
    	bsr.w	JmpTo2_Dynamic_Normal
    	moveq	#$26,d0
    	bsr.w	PalLoad1
    	move.b  #$91,d0 ; Play Normal Menu/Level Select Music
    	bsr.w	JmpTo_PlayMusic
    	clr.w	(Two_player_mode).w
    	clr.l	(Camera_X_pos).w
    	clr.l	(Camera_Y_pos).w
    	clr.w	(Correct_cheat_entries).w
    	clr.w	(Correct_cheat_entries_2).w
    	move.b	#$16,(Delay_Time).w
    	bsr.w	DelayProgram
    	move.w	($FFFFF60C).w,d0
    	ori.b	#$40,d0
    	move.w	d0,(VDP_control_port).l
    	bsr.w	Pal_FadeTo
    
    loc_9060:
    	move.b	#$16,(Delay_Time).w
    	bsr.w	DelayProgram
    	move	#$2700,sr
    	bsr.w	loc_91F8
    	bsr.w	sub_90E0
    	bsr.w	sub_9186
    	move	#$2300,sr
    	lea	(word_87C6).l,a2
    	bsr.w	JmpTo2_Dynamic_Normal
    	move.b	(Ctrl_1_Press).w,d0
    	or.b	(Ctrl_2_Press).w,d0
    	andi.b	#$80,d0
    	bne.s	loc_909A
    	bra.w	loc_9060
    ; ===========================================================================
    
    loc_909A:
    	move.b	(Options_menu_box).w,d0
    	bne.s	loc_90B6
    	moveq	#0,d0
    	move.w	d0,(Two_player_mode).w
    	move.w	d0,(Two_player_mode_copy).w
    	move.w	d0,(Current_ZoneAndAct).w
    	move.b	#$C,(Game_Mode).w ; => Level (Zone play mode)
    	rts
    ; ===========================================================================
    
    loc_90B6:
    	subq.b	#1,d0
    	bne.s	loc_90D8
    	moveq	#1,d0
    	move.w	d0,(Two_player_mode).w
    	move.w	d0,(Two_player_mode_copy).w
    	move.b	#$1C,(Game_Mode).w ; => LevelSelectMenu2P
    	move.b	#0,(Current_Zone_2P).w
    	move.w	#0,(Player_mode).w
    	rts
    ; ===========================================================================
    
    loc_90D8:
    	move.b	#0,(Game_Mode).w ; => SegaScreen
    	rts
    
    ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
    
    
    sub_90E0:
    	moveq	#0,d2
    	move.b	(Options_menu_box).w,d2
    	move.b	(Ctrl_1_Press).w,d0
    	or.b	(Ctrl_2_Press).w,d0
    	btst	#0,d0
    	beq.s	loc_90FC
    	subq.b	#1,d2
    	bcc.s	loc_90FC
    	move.b	#2,d2
    
    loc_90FC:
    	btst	#1,d0
    	beq.s	loc_910C
    	addq.b	#1,d2
    	cmpi.b	#3,d2
    	bcs.s	loc_910C
    	moveq	#0,d2
    
    loc_910C:
    	move.b	d2,(Options_menu_box).w
    	lsl.w	#2,d2
    	move.b	word_917A(pc,d2.w),d3
    	movea.l	word_917A(pc,d2.w),a1
    	move.w	(a1),d2
    	btst	#2,d0
    	beq.s	loc_9128
    	subq.b	#1,d2
    	bcc.s	loc_9128
    	move.b	d3,d2
    
    loc_9128:
    	btst	#3,d0
    	beq.s	loc_9136
    	addq.b	#1,d2
    	cmp.b	d3,d2
    	bls.s	loc_9136
    	moveq	#0,d2
    
    loc_9136:
    	btst	#6,d0
    	beq.s	loc_9146
    	addi.b	#$10,d2
    	cmp.b	d3,d2
    	bls.s	loc_9146
    	moveq	#0,d2
    
    loc_9146:
    	move.w	d2,(a1)
    	cmpi.b	#2,(Options_menu_box).w
    	bne.s	return_9178
    	andi.w	#$30,d0
    	beq.s	return_9178
    	move.w	(Sound_test_sound).w,d0
    	addi.w	#$80,d0
    	bsr.w	JmpTo_PlayMusic
    	lea	(level_select_cheat).l,a0
    	lea	(byte_97B7).l,a2
    	lea	(Level_select_flag).w,a1
    	moveq	#0,d2
    	bsr.w	loc_9746
    
    return_9178:
    	rts
    ; End of function sub_90E0
    ; ===========================================================================
    word_917A:
    	dc.w $2FF
    	dc.w Player_option	; 1
    	dc.w $1FF	; 2
    	dc.w Two_player_items	; 3
    	dc.w $7FFF	; 4
    	dc.w Sound_test_sound	; 5
    
    ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
    
    
    sub_9186:
    	bsr.w	loc_9268
    	moveq	#0,d1
    	move.b	(Options_menu_box).w,d1
    	lsl.w	#3,d1
    	lea	(off_92BA).l,a3
    	lea	(a3,d1.w),a3
    	move.w	#$6000,d0
    	lea	($FFFF0030).l,a2
    	movea.l	(a3)+,a1
    	bsr.w	sub_8FBE
    	lea	($FFFF00B6).l,a2
    	moveq	#0,d1
    	cmpi.b	#2,(Options_menu_box).w
    	beq.s	loc_91CE
    	move.b	(Options_menu_box).w,d1
    	lsl.w	#2,d1
    	lea	word_917A(pc),a1
    	movea.l	(a1,d1.w),a1
    	move.w	(a1),d1
    	lsl.w	#2,d1
    
    loc_91CE:
    	movea.l	(a4,d1.w),a1
    	bsr.w	sub_8FBE
    	cmpi.b	#2,(Options_menu_box).w
    	bne.s	loc_91E8
    	lea	($FFFF00C2).l,a2
    	bsr.w	loc_9296
    
    loc_91E8:
    	lea	(Metablock_Table).l,a1
    	move.l	(a3)+,d0
    	moveq	#$15,d1
    	moveq	#7,d2
    	bra.w	JmpTo_ShowVDPGraphics
    ; ===========================================================================
    
    loc_91F8:
    	bsr.w	loc_9268
    	moveq	#0,d1
    	move.b	(Options_menu_box).w,d1
    	lsl.w	#3,d1
    	lea	(off_92BA).l,a3
    	lea	(a3,d1.w),a3
    	moveq	#0,d0
    	lea	($FFFF0190).l,a2
    	movea.l	(a3)+,a1
    	bsr.w	sub_8FBE
    	lea	($FFFF0216).l,a2
    	moveq	#0,d1
    	cmpi.b	#2,(Options_menu_box).w
    	beq.s	loc_923E
    	move.b	(Options_menu_box).w,d1
    	lsl.w	#2,d1
    	lea	word_917A(pc),a1
    	movea.l	(a1,d1.w),a1
    	move.w	(a1),d1
    	lsl.w	#2,d1
    
    loc_923E:
    	movea.l	(a4,d1.w),a1
    	bsr.w	sub_8FBE
    	cmpi.b	#2,(Options_menu_box).w
    	bne.s	loc_9258
    	lea	($FFFF0222).l,a2
    	bsr.w	loc_9296
    
    loc_9258:
    	lea	($FFFF0160).l,a1
    	move.l	(a3)+,d0
    	moveq	#$15,d1
    	moveq	#7,d2
    	bra.w	JmpTo_ShowVDPGraphics
    ; ===========================================================================
    loc_9268:
    	lea	(off_92D2).l,a4
    	tst.b	(Graphics_Flags).w
    	bpl.s	loc_927A
    	lea	(off_92DE).l,a4
    
    loc_927A:
    	tst.b	(Options_menu_box).w
    	beq.s	loc_9286
    	lea	(off_92EA).l,a4
    
    loc_9286:
    	cmpi.b	#2,(Options_menu_box).w
    	bne.s	return_9294
    	lea	(off_92F2).l,a4
    
    return_9294:
    	rts
    ; ===========================================================================
    
    loc_9296:
    	move.w	(Sound_test_sound).w,d1
    	move.b	d1,d2
    	lsr.b	#4,d1
    	bsr.s	loc_92A2
    	move.b	d2,d1
    
    loc_92A2:
    	andi.w	#$F,d1
    	cmpi.b	#$A,d1
    	bcs.s	loc_92B0
    	addi.b	#4,d1
    
    loc_92B0:
    	addi.b	#$10,d1
    	move.b	d1,d0
    	move.w	d0,(a2)+
    	rts
    ; ===========================================================================
    off_92BA:
    	dc.l byte_97CA
    	dc.w $4192
    	dc.w 3
    	dc.l byte_982C
    	dc.w $4592
    	dc.w 3
    	dc.l byte_985E
    	dc.w $4992
    	dc.w 3
    off_92D2:
    	dc.l byte_97DC
    	dc.l byte_97FC
    	dc.l byte_980C
    off_92DE:
    	dc.l byte_97EC
    	dc.l byte_97FC
    	dc.l byte_981C
    off_92EA:
    	dc.l byte_983E
    	dc.l byte_984E
    off_92F2:
    	dc.l byte_9870
    ; ===========================================================================
    
    
     
  2. Dark Lips

    Dark Lips Well-Known Member Member

    Joined:
    Nov 14, 2008
    Messages:
    293
    Location:
    Wolverhampton UK
    What errors? all i can see is the asm :s
     
  3. Javier

    Javier Active Member Exiled

    Joined:
    Aug 18, 2013
    Messages:
    49
    Location:
    Unknown
    Here are the errors in a screen shot

    [​IMG]

    How can i fix those errors also when i remove somethings it will give me a bunch of errors how can I port the options screen to sonic 1 without errors.
     
    Last edited by a moderator: Sep 21, 2013
  4. Dark Lips

    Dark Lips Well-Known Member Member

    Joined:
    Nov 14, 2008
    Messages:
    293
    Location:
    Wolverhampton UK
    have you checked the usual? branches, subroutine labels ect ect...?
     
  5. fdswerty

    fdswerty Well-Known Member Member

    Joined:
    Apr 10, 2013
    Messages:
    138
    The branch is out of range, it's piss easy to fix. Just replace the "bsr.w" in your code with "jsr" and it should build.
     
Thread Status:
Not open for further replies.