Sonic 2 Level Select help

Discussion in 'Discussion and Q&A Archive' started by Alriightyman, Feb 27, 2008.

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

    Alriightyman I'm back! Member

    Joined:
    Oct 3, 2007
    Messages:
    156
    Location:
    USA
    I ported the level select from sonic 2 and it works but there are a few bugs that i can't figure out.


    1 When you press left it selects whatever you are highlighting


    2 Soundtest doesn't work, if it's selected it resets to the sega screen


    3 The Sonic and Miles background doesn't load


    here's my code:



    Code:
    ; LevelSelectMenu:
    
    	bsr.w	Pal_FadeFrom
    
    	move	#$2700,sr
    
    	move.w	($FFFFF60C).w,d0
    
    	andi.b	#-$41,d0
    
    	move.w	d0,($C00004).l
    
    	bsr.w	ClearScreen
    
    	lea	($C00004).l,a6
    
    	move.w	#$8004,(a6)
    
    	move.w	#$8230,(a6)
    
    	move.w	#$8407,(a6)
    
    	move.w	#$8230,(a6)
    
    	move.w	#$8700,(a6)
    
    	move.w	#$8C81,(a6)
    
    	move.w	#$9001,(a6)
    
    	lea	($FFFFAC00).w,a1
    
    	moveq	#0,d0
    
    	move.w	#$FF,d1
    
    
    
    loc2_8C1A:			&#59; CODE XREF: ROM:00008C1Cj
    
    	move.l	d0,(a1)+
    
    	dbf	d1,loc2_8C1A
    
    	lea	($FFFFD000).w,a1
    
    	moveq	#0,d0
    
    	move.w	#$7FF,d1
    
    
    
    loc_8C2A:			&#59; CODE XREF: ROM:00008C2Cj
    
    	move.l	d0,(a1)+
    
    	dbf	d1,loc_8C2A
    
    	
    
    	clr.w	($FFFFA3FC).w
    
    	move.l	#$FFFFA3FC,($FFFFA3FC).w
    
    	move.l	#$42000000,($C00004).l
    
    	lea	(FontStuff).l,a0
    
    	bsr.w	NemDec
    
    &#59;move.l	#$4E000000,($C00004).l
    
    &#59;lea	(MenuBox).l,a0
    
    &#59;bsr.w	NemDec
    
    	move.l	#$52000000,($C00004).l
    
    	lea	(LevelPics).l,a0
    
    	bsr.w	NemDec
    
    	lea	($FFFF0000).l,a1
    
    	lea	(MapEng_MenuBack).l,a0
    
    	move.w	#$6000,d0
    
    	bsr.w	EniDec
    
    	lea	($FFFF0000).l,a1
    
    	move.l	#$60000003,d0
    
    	moveq	#$27,d1
    
    	moveq	#$1B,d2
    
    	bsr.w	ShowVDPGraphics
    
    	
    
    	
    
    	
    
    MenuScreen_LevelSelect:
    
    	lea	($FFFF0000).l,a1
    
    	lea	(MapEng_LevSel).l,a0
    
    	move.w	#0,d0
    
    	bsr.w	EniDec
    
    	lea	($FFFF0000).l,a1
    
    	move.l	#$40000003,d0
    
    	moveq	#$27,d1
    
    	moveq	#$1B,d2
    
    	bsr.w	ShowVDPGraphics
    
    	moveq	#0,d3
    
    	bsr.w	loc_965A
    
    	lea	($FFFF08C0).l,a1
    
    	lea	(MapEng_LevSelIcon).l,a0
    
    	move.w	#$90,d0
    
    	bsr.w	EniDec
    
    	bsr.w	loc_9688
    
    &#59;clr.b	($FFFFFF70).w
    
    	clr.w	($FFFFF7F0).w
    
    	lea	(word_87C6).l,a2
    
    	bsr.w	Dynamic_Normal_J
    
    	moveq	#$14,d0
    
    	bsr.w	PalLoad1
    
    	lea	($FFFFFB40).w,a1
    
    	lea	($FFFFFBC0).w,a2
    
    	moveq	#7,d1
    
    
    
    loc_9366:
    
    	move.l	(a1),(a2)+
    
    	clr.l	(a1)+
    
    	dbf	d1,loc_9366
    
    	move.b	#$94,d0
    
    	bsr.w	PlaySound_Special
    
    	move.w	#$707,($FFFFF614).w
    
    	clr.l	($FFFFF700).w
    
    	clr.l	($FFFFF704).w
    
    &#59;clr.w	(Correct_cheat_entries).w
    
    &#59;clr.w	(Correct_cheat_entries_2).w
    
    	move.b	#$16,($FFFFF62A).w
    
    	bsr.w	DelayProgram
    
    	move.w	($FFFFF60C).w,d0
    
    	ori.b	#$40,d0
    
    	move.w	d0,($C00004).l
    
    	bsr.w	Pal_FadeTo
    
    
    
    loc_93AC:
    
    	move.b	#$16,($FFFFF62A).w
    
    	bsr.w	DelayProgram
    
    	move	#$2700,sr
    
    	moveq	#0,d3
    
    	bsr.w	loc_95B8
    
    	bsr.w	LevSelControls
    
    	move.w	#$6000,d3
    
    	bsr.w	loc_95B8
    
    	bsr.w	loc_9688
    
    	move	#$2300,sr
    
    	lea	(word_87C6).l,a2
    
    	bsr.w	Dynamic_Normal_J
    
    	move.b	($FFFFF605).w,d0
    
    	andi.b	#$80,d0
    
    	bne.s	LevSel_Level_SS
    
    	bra.w	loc_93AC
    
    
    
    ; ===========================================================================
    
    
    
    LevSel_Level_SS:
    
    	move.w	($FFFFFF82).w,d0
    
    	add.w	d0,d0
    
    	move.w	LSelectPointers(pc,d0.w),d0
    
    	bmi.w	loc_944C
    
    	cmpi.w	#$0700,d0
    
    	bne.s	LevSel_Level
    
    	move.b	#$10,($FFFFF600).w&#59; => SpecialStage
    
    	clr.w	($FFFFFE10).w
    
    	move.b	#3,($FFFFFE12).w
    
    	moveq	#0,d0
    
    	move.w	d0,($FFFFFE20).w
    
    	move.l	d0,($FFFFFE22).w
    
    	move.l	d0,($FFFFFE26).w
    
    &#59;move.l	#5000,($FFFFFE26).w
    
    	rts
    
    ; ===========================================================================
    
    
    
    loc_944C:
    
    	move.b	#0,($FFFFF600).w&#59; => SegaScreen	
    
    	rts
    
    Dynamic_Normal_J:
    
    	jmp		Dynamic_Normal	
    
    	
    
    LevSel_Level:			&#59; XREF: LevSel_Level_SS
    
    		andi.w	#$3FFF,d0
    
    		move.w	d0,($FFFFFE10).w&#59; set level number
    
    PlayLevel:			&#59; XREF: ROM:00003246j ...
    
    		move.b	#$C,($FFFFF600).w&#59; set	screen mode to $0C (level)
    
    		move.b	#3,($FFFFFE12).w&#59; set lives to	3
    
    		moveq	#0,d0
    
    		move.w	d0,($FFFFFE20).w&#59; clear rings
    
    		move.l	d0,($FFFFFE22).w&#59; clear time
    
    		move.l	d0,($FFFFFE26).w&#59; clear score
    
    		move.b	d0,($FFFFFE16).w&#59; clear special stage number
    
    		move.b	d0,($FFFFFE57).w&#59; clear emeralds
    
    		move.l	d0,($FFFFFE58).w&#59; clear emeralds
    
    		move.l	d0,($FFFFFE5C).w&#59; clear emeralds
    
    		move.b	d0,($FFFFFE18).w&#59; clear continues
    
    		move.b	#$E0,d0
    
    		bsr.w	PlaySound_Special&#59; fade out music
    
    		rts	
    
    ; ===========================================================================
    
    ; ---------------------------------------------------------------------------
    
    ; Level	select - level pointers
    
    ; ---------------------------------------------------------------------------
    
    LSelectPointers:
    
    		incbin	misc\ls_point.bin
    
    		even
    
    		
    
    		
    
    ; ---------------------------------------------------------------------------
    
    ; Level	select codes
    
    ; ---------------------------------------------------------------------------
    
    LevelSelectMenuCode_J:
    
    		incbin	misc\ls_jcode.bin
    
    		even
    
    
    
    LevelSelectMenuCode_US:
    
    		incbin	misc\ls_ucode.bin
    
    		even
    
    ; ===========================================================================
    
    
    
    ; ---------------------------------------------------------------------------
    
    ; Demo mode
    
    ; ---------------------------------------------------------------------------
    
    
    
    Demo:				&#59; XREF: TitleScreen
    
    		move.w	#$1E,($FFFFF614).w
    
    
    
    loc_33B6:			&#59; XREF: loc_33E4
    
    		move.b	#4,($FFFFF62A).w
    
    		bsr.w	DelayProgram
    
    		bsr.w	DeformBgLayer
    
    		bsr.w	PalCycle_Load
    
    		bsr.w	RunPLC_RAM
    
    		move.w	($FFFFD008).w,d0
    
    		addq.w	#2,d0
    
    		move.w	d0,($FFFFD008).w
    
    		cmpi.w	#$1C00,d0
    
    		bcs.s	loc_33E4
    
    		move.b	#0,($FFFFF600).w&#59; set screen mode to 00 (level)
    
    		rts	
    
    ; ===========================================================================
    
    
    
    loc_33E4:			&#59; XREF: Demo
    
    		andi.b	#$80,($FFFFF605).w&#59; is	Start button pressed?
    
    		bne.w	Title_ChkLevSel&#59; if yes, branch
    
    		tst.w	($FFFFF614).w
    
    		bne.w	loc_33B6
    
    		move.b	#$E0,d0
    
    		bsr.w	PlaySound_Special&#59; fade out music
    
    		move.w	($FFFFFFF2).w,d0&#59; load	demo number
    
    		andi.w	#7,d0
    
    		add.w	d0,d0
    
    		move.w	Demo_Levels(pc,d0.w),d0&#59; load level number for	demo
    
    		move.w	d0,($FFFFFE10).w
    
    		addq.w	#1,($FFFFFFF2).w&#59; add 1 to demo number
    
    		cmpi.w	#4,($FFFFFFF2).w&#59; is demo number less than 4?
    
    		bcs.s	loc_3422&#59; if yes, branch
    
    		move.w	#0,($FFFFFFF2).w&#59; reset demo number to	0
    
    
    
    loc_3422:
    
    		move.w	#1,($FFFFFFF0).w&#59; turn	demo mode on
    
    		move.b	#8,($FFFFF600).w&#59; set screen mode to 08 (demo)
    
    		cmpi.w	#$600,d0&#59; is level number 0600 (special	stage)?
    
    		bne.s	Demo_Level&#59; if not, branch
    
    		move.b	#$10,($FFFFF600).w&#59; set screen	mode to	$10 (Special Stage)
    
    		clr.w	($FFFFFE10).w&#59; clear	level number
    
    		clr.b	($FFFFFE16).w&#59; clear	special	stage number
    
    
    
    Demo_Level:
    
    		move.b	#3,($FFFFFE12).w&#59; set lives to	3
    
    		moveq	#0,d0
    
    		move.w	d0,($FFFFFE20).w&#59; clear rings
    
    		move.l	d0,($FFFFFE22).w&#59; clear time
    
    		move.l	d0,($FFFFFE26).w&#59; clear score
    
    		rts	
    
    ; ===========================================================================
    
    ; ---------------------------------------------------------------------------
    
    ; Levels used in demos
    
    ; ---------------------------------------------------------------------------
    
    Demo_Levels:	incbin	misc\dm_ord1.bin
    
    		even
    
    
    
    ; ---------------------------------------------------------------------------
    
    ; Subroutine to	change what you're selecting in the level select
    
    ; ---------------------------------------------------------------------------
    
    
    
    ; ||||||||||||||| S U B	R O U T	I N E |||||||||||||||||||||||||||||||||||||||
    
    
    
    
    
    LevSelControls:			&#59; XREF: LevelSelectMenu
    
    		move.b	($FFFFF605).w,d1
    
    		andi.b	#3,d1	&#59; is up/down pressed and held?
    
    		bne.s	LevSel_UpDown&#59; if yes, branch
    
    		subq.w	#1,($FFFFFF80).w&#59; subtract 1 from time	to next	move
    
    		bpl.s	LevSel_SndTest&#59; if time remains, branch
    
    
    
    LevSel_UpDown:
    
    		move.w	#$B,($FFFFFF80).w&#59; reset time delay
    
    		move.b	($FFFFF604).w,d1
    
    		andi.b	#3,d1	&#59; is up/down pressed?
    
    		beq.s	LevSel_SndTest&#59; if not, branch
    
    		move.w	($FFFFFF82).w,d0
    
    		btst	#0,d1	&#59; is up	pressed?
    
    		beq.s	LevSel_Down&#59; if not, branch
    
    		subq.w	#1,d0	&#59; move up 1 selection
    
    		bcc.s	LevSel_Down
    
    		moveq	#$15,d0	&#59; if selection moves below 0, jump to selection	$14
    
    
    
    LevSel_Down:
    
    		btst	#1,d1	&#59; is down pressed?
    
    		beq.s	LevSel_Refresh&#59; if not, branch
    
    		addq.w	#1,d0	&#59; move down 1 selection
    
    		cmpi.w	#$16,d0
    
    		bcs.s	LevSel_Refresh
    
    		moveq	#0,d0	&#59; if selection moves above $14,	jump to	selection 0
    
    
    
    LevSel_Refresh:
    
    		move.w	d0,($FFFFFF82).w&#59; set new selection
    
    	&#59;bsr.w	LevSelTextLoad&#59; refresh text
    
    		rts	
    
    ; ===========================================================================
    
    
    
    LevSel_SndTest:			&#59; XREF: LevSelControls
    
    		cmpi.w	#$15,($FFFFFF82).w&#59; is	item $14 selected?
    
    		bne.s	loc_958A&#59; if not, branch
    
    		move.w	($FFFFFF84).w,d0
    
    		move.b	($FFFFF605).w,d1
    
    	&#59;andi.b	#$C,d1	&#59; is left/right	pressed?
    
    	&#59;beq.s	LevSel_NoMove&#59; if not, branch
    
    	&#59;move.w	($FFFFFF84).w,d0
    
    		btst	#2,d1	&#59; is left pressed?
    
    		beq.s	LevSel_Right&#59; if not, branch
    
    		subq.w	#1,d0	&#59; subtract 1 from sound	test
    
    		bcc.s	LevSel_Right
    
    		moveq	#$7F,d0	&#59; if sound test	moves below 0, set to $4F
    
    
    
    LevSel_Right:
    
    		btst	#3,d1	&#59; is right pressed?
    
    		beq.s	loc_954E&#59; if not, branch
    
    		addq.w	#1,d0	&#59; add 1	to sound test
    
    		cmpi.w	#$80,d0&#59;50
    
    		bcs.s	loc_954E
    
    		moveq	#0,d0	&#59; if sound test	moves above $4F, set to	0
    
    loc_954E:
    
    	btst	#6,d1
    
    	beq.s	loc_955C
    
    	addi.b	#$10,d0
    
    	andi.b	#$7F,d0		
    
    
    
    loc_955C:
    
    		move.w	d0,($FFFFFF84).w&#59; set sound test number
    
    		andi.w	#$30,d1
    
    		beq.s	LevSel_NoMove
    
    		move.w	($FFFFFF84).w,d0
    
    		addi.w	#$80,d0
    
    		bsr.w	PlaySound_Special
    
    	
    
    LevSel_NoMove:
    
    		rts	
    
    		
    
    loc_958A:
    
    	move.b	($FFFFF605).w,d1
    
    	andi.b	#$C,d1
    
    	beq.s	return_95A0
    
    	move.w	($FFFFFF82).w,d0
    
    	move.b	byte_95A2(pc,d0.w),d0
    
    	move.w	d0,($FFFFFF82).w
    
    
    
    return_95A0:
    
    	rts
    
    ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
    
    ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
    
    ; something to do with pushing the right button
    
    		
    
    byte_95A2:	dc.b $E		&#59; 0
    
    		dc.b $F		&#59; 1
    
    		dc.b $11	&#59; 2
    
    		dc.b $11	&#59; 3
    
    		dc.b $12	&#59; 4
    
    		dc.b $12	&#59; 5
    
    		dc.b $13	&#59; 6
    
    		dc.b $13	&#59; 7
    
    		dc.b $14	&#59; 8
    
    		dc.b $14	&#59; 9
    
    		dc.b $15	&#59; 10
    
    		dc.b $15	&#59; 11
    
    		dc.b $C		&#59; 12
    
    		dc.b $D		&#59; 13
    
    		dc.b 0		&#59; 14
    
    		dc.b 1		&#59; 15
    
    		dc.b 1		&#59; 16
    
    		dc.b 2		&#59; 17
    
    		dc.b 4		&#59; 18
    
    		dc.b 6		&#59; 19
    
    		dc.b 8		&#59; 20
    
    		dc.b $A		&#59; 21
    
    ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
    
    ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
    
    loc_95B8:
    
    	lea	($FFFF0000).l,a4
    
    	lea	(LevSel_Highlight).l,a5
    
    	lea	($C00000).l,a6
    
    	moveq	#0,d0
    
    	move.w	($FFFFFF82).w,d0
    
    	lsl.w	#2,d0
    
    	lea	(a5,d0.w),a3
    
    	moveq	#0,d0
    
    	move.b	(a3),d0
    
    	mulu.w	#$50,d0
    
    	moveq	#0,d1
    
    	move.b	1(a3),d1
    
    	add.w	d1,d0
    
    	lea	(a4,d0.w),a1
    
    	moveq	#0,d1
    
    	move.b	(a3),d1
    
    	lsl.w	#7,d1
    
    	add.b	1(a3),d1
    
    	addi.w	#-$4000,d1
    
    	lsl.l	#2,d1
    
    	lsr.w	#2,d1
    
    	ori.w	#$4000,d1
    
    	swap	d1
    
    	move.l	d1,4(a6)
    
    	moveq	#$D,d2
    
    
    
    loc_9608:
    
    	move.w	(a1)+,d0
    
    	add.w	d3,d0
    
    	move.w	d0,(a6)
    
    	dbf	d2,loc_9608
    
    	addq.w	#2,a3
    
    	moveq	#0,d0
    
    	move.b	(a3),d0
    
    	beq.s	loc_964C
    
    	mulu.w	#$50,d0
    
    	moveq	#0,d1
    
    	move.b	1(a3),d1
    
    	add.w	d1,d0
    
    	lea	(a4,d0.w),a1
    
    	moveq	#0,d1
    
    	move.b	(a3),d1
    
    	lsl.w	#7,d1
    
    	add.b	1(a3),d1
    
    	addi.w	#-$4000,d1
    
    	lsl.l	#2,d1
    
    	lsr.w	#2,d1
    
    	ori.w	#$4000,d1
    
    	swap	d1
    
    	move.l	d1,4(a6)
    
    	move.w	(a1)+,d0
    
    	add.w	d3,d0
    
    	move.w	d0,(a6)
    
    
    
    loc_964C:
    
    	cmpi.w	#$15,($FFFFFF82).w
    
    	bra.w	return_9658
    
    	bsr.w	loc_965A
    
    
    
    return_9658:
    
    	rts
    
    loc_965A:
    
    	move.l	#$49440003,($C00004).l
    
    	move.w	($FFFFFF84).w,d0
    
    	move.b	d0,d2
    
    
    
    loc_9670:
    
    	andi.w	#$F,d0
    
    	cmpi.b	#$A,d0
    
    	bcs.s	loc_967E
    
    	addi.b	#4,d0
    
    
    
    loc_967E:
    
    	addi.b	#$10,d0
    
    	add.w	d3,d0
    
    	move.w	d0,(a6)
    
    	rts	
    
    ; ===========================================================================
    
    loc_9688:
    
    	move.w	($FFFFFF82).w,d0
    
    	lea	(LevSel_IconOrder).l,a3
    
    	lea	(a3,d0.w),a3
    
    	lea	($FFFF08C0).l,a1
    
    	moveq	#0,d0
    
    	move.b	(a3),d0
    
    	lsl.w	#3,d0
    
    	move.w	d0,d1
    
    	add.w	d0,d0
    
    	add.w	d1,d0
    
    	lea	(a1,d0.w),a1
    
    	move.l	#$4B360003,d0
    
    	moveq	#3,d1
    
    	moveq	#2,d2
    
    	bsr.w	ShowVDPGraphics
    
    	lea	(Pal_LevelIcons).l,a1
    
    	moveq	#0,d0
    
    	move.b	(a3),d0
    
    	lsl.w	#5,d0
    
    	lea	(a1,d0.w),a1
    
    	lea	($FFFFFB40).w,a2
    
    	moveq	#7,d1
    
    
    
    loc_96D0:
    
    	move.l	(a1)+,(a2)+
    
    	dbf	d1,loc_96D0
    
    	rts
    
    ; ===========================================================================
    
    ; Level Select icon order
    
    ; ===========================================================================
    
    ; 0 - EHZ 	1 -	MZ 		2 -	HTZ		$C - SS
    
    ; 3 - HPZ	4 - OOZ		5 - MCZ		$D - X
    
    ; 6 - CNZ	7 - CPZ		8 - ARZ		$E - Sound Test
    
    ; 9 - SCZ	$A-	WFZ		$B - DEZ
    
    ; =========================================================================== 
    
    LevSel_IconOrder:
    
    	dc.b   0,0&#59; 1
    
    	dc.b   0,7&#59; 3
    
    	dc.b   7,7&#59; 5
    
    	dc.b   8,8&#59; 7
    
    	dc.b   8,6&#59; 9
    
    	dc.b   6,6&#59; 11
    
    	dc.b   2,2&#59; 13
    
    	dc.b   2,1&#59; 15
    
    	dc.b   1,1&#59; 17
    
    	dc.b  9,$A&#59; 19
    
    	dc.b  $C,$E&#59; 21
    
    ; ===========================================================================
    
    ; Level Select Text highlighting?
    
    ; ===========================================================================
    
    ; 1st byte:	Selects Level Name from top to bottom 3 being the top
    
    ; 2nd byte:	Which colum to select level text: 6 is left side, $2C is right side
    
    ; 3rd byte:	Selects act # from top to bottom 3 being the top
    
    ; 4th byte:	Which colum to select Act #: $24 is left side, $48 is right side
    
    ; ===========================================================================
    
    LevSel_Highlight:
    
    	dc.b   3,  6,  3,$24&#59;	EHZ1
    
    	dc.b	  3,  6,  4,$24&#59;	EHZ2
    
    	dc.b	  6,  6,  6,$24&#59;	CPZ1
    
    	dc.b	  6,  6,  7,$24&#59;	CPZ2
    
    	dc.b	  9,  6,  9,$24&#59;	ARZ1
    
    	dc.b	  9,  6, $A,$24&#59;	ARZ2
    
    	dc.b	  $C,  6, $C,$24&#59;	CNZ1
    
    	dc.b	  $C,  6, $D,$24&#59;	CNZ2
    
    	dc.b	  $F,  6, $F,$24&#59;	HTZ1
    
    	dc.b	  $F,  6,$10,$24&#59;	HTZ2
    
    	dc.b	  $12,  6,$12,$24&#59;	MCZ1
    
    	dc.b	  $12,  6,$13,$24&#59;	MCZ2
    
    	dc.b	  $15,  6,$15,$24&#59;	OOZ1
    
    	dc.b	  $15,  6,$16,$24&#59;	OOZ2
    
    	dc.b	  3,$2C,  3,$48&#59;	MZ1
    
    	dc.b	  3,$2C,  4,$48&#59;	MZ2
    
    	dc.b	  3,$2C,  5,$48&#59;	MZ3
    
    	dc.b 	 6,$2C,  0,  0&#59;	SCZ
    
    	dc.b	  9,$2C,  0,  0&#59;	WFZ
    
    	dc.b	  $C,$2C,  0,  0&#59;	DEZ
    
    	dc.b	  $F,$2C,  0,  0&#59;	SS
    
    	dc.b	  $12,$2C,$12,$48&#59;	Sound Test




    Code:
    word_87C6:	dc.w   0	&#59; 0&#59; DATA XREF: ROM:00007E4Ao
    
    				&#59; ROM:00007EBEo ...
    
    ; Sonic/Miles animated background
    
    		dc.l $FF000000+MenuBack
    
    		dc.w $20
    
    		dc.b 6
    
    		dc.b $A
    
    		dc.b   0,$C7	&#59; 0
    
    		dc.b  $A,  5	&#59; 2
    
    		dc.b $14,  5	&#59; 4
    
    		dc.b $1E,$C7	&#59; 6
    
    		dc.b $14,  5	&#59; 8
    
    		dc.b  $A,  5	&#59; 10

    Also how do I change the text that shows up?


    For example it says "Emerald Hill" and i want it to be "Green Hill".


    EDIT: Fixed the sound test and the left button, but still no luck on the background. Also I re-editted the code. The sound test plays music now but the numbers don't change.
     
    Last edited by a moderator: Feb 28, 2008
  2. redhotsonic

    redhotsonic Also known as RHS Member

    Joined:
    Aug 10, 2007
    Messages:
    2,969
    Location:
    England
    Find the text guide to find out what numbers represent which numbers. Find the code for emerald hill and then change it's numbers for green hill.
     
  3. ddrmaxromance

    ddrmaxromance Well-Known Member Member

    Joined:
    Aug 17, 2007
    Messages:
    102
    Could you provide a screenshot of what it looks like as of now? Also, did you remember to fix the pointer to the background art to wherever it's located (whether it be in the ASM or an external file)?
     
  4. Alriightyman

    Alriightyman I'm back! Member

    Joined:
    Oct 3, 2007
    Messages:
    156
    Location:
    USA
    Here's what it shows:


    [​IMG]


    The background art is the GHZ art, specifically the palm tree leaf.


    I just grabbed the art from sonic 2 2007 split disassembly.


    And this seems to be the only thing that loads the art:



    Code:
    word_87C6:	dc.w   0 &#59; 0; DATA XREF: ROM:00007E4Ao
    
    			 &#59; ROM:00007EBEo ...
    
    ; Sonic/Miles animated background
    
    		dc.l $FF000000+MenuBack
    
    		dc.w $20
    
    		dc.b 6
    
    		dc.b $A
    
    		dc.b   0,$C7 &#59; 0
    
    		dc.b  $A,  5 &#59; 2
    
    		dc.b $14,  5 &#59; 4
    
    		dc.b $1E,$C7 &#59; 6
    
    		dc.b $14,  5 &#59; 8
    
    		dc.b  $A,  5 &#59; 10
    I'm really not sure how that works.
     
    Last edited by a moderator: Feb 28, 2008
  5. redhotsonic

    redhotsonic Also known as RHS Member

    Joined:
    Aug 10, 2007
    Messages:
    2,969
    Location:
    England
    dc.l $FF000000+MenuBack means what art and mappings it is loading. The rest underneath is to do with the frames.
     
  6. Alriightyman

    Alriightyman I'm back! Member

    Joined:
    Oct 3, 2007
    Messages:
    156
    Location:
    USA
    Thanks I got it. The sound test works now. I just can't get the background to work. Is there anything I need to do the dynamic_normal routine? Also, does anyone know what $FFFFF7F0 is in sonic 2 or what i could change it to for sonic 1? Thanks
     
Thread Status:
Not open for further replies.