Actions

SCHG How-to Talk

Add Spin Dash to Sonic 1/Part 1

From Sonic Retro

HELP!!!!!

I can't get S1Built.bin. Here's my Errors.txt:

SN 68k version 2.53

F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(9) : Error : Symbol 'spindash_flag' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(11) : Error : Symbol 'aniidsonani_duck' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(13) : Error : Symbol 'ctrl_1_press_logical' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(14) : Error : Symbol 'button_a_mask' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(14) : Error : Symbol 'button_c_mask' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(14) : Error : Symbol 'button_b_mask' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(16) : Error : Symbol 'aniidsonani_spindash' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(17) : Error : Symbol 'sndid_spindashrev' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(20) : Error : Symbol 'spindash_flag' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(21) : Error : Symbol 'spindash_counter' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(22) : Error : Symbol 'air_left' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(23) : Error : Symbol 'sonic_dust' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(25) : Error : Symbol 'anglepos' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(40) : Error : Symbol 'ctrl_1_held_logical' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(41) : Error : Symbol 'button_down' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(47) : Error : Symbol 'aniidsonani_roll' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(49) : Error : Symbol 'spindash_flag' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(51) : Error : Symbol 'spindash_counter' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(53) : Error : Symbol 'inertia' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(54) : Error : Symbol 'super_sonic_flag' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(56) : Error : Symbol 'inertia' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(58) : Error : Symbol 'inertia' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(64) : Error : Symbol 'horiz_scroll_delay_val' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(67) : Error : Symbol 'inertia' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(70) : Error : Symbol 'sonic_dust' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(71) : Error : Symbol 'sndid_spindashrelease' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(100) : Error : Symbol 'spindash_counter' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(102) : Error : Symbol 'spindash_counter' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(104) : Error : Symbol 'spindash_counter' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(106) : Error : Symbol 'spindash_counter' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(108) : Error : Symbol 'ctrl_1_press_logical' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(109) : Error : Symbol 'button_a_mask' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(109) : Error : Symbol 'button_c_mask' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(109) : Error : Symbol 'button_b_mask' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(111) : Error : Symbol 'aniidsonani_spindash' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(112) : Error : Symbol 'sndid_spindashrev' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(114) : Error : Symbol 'spindash_counter' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(115) : Error : Symbol 'spindash_counter' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(117) : Error : Symbol 'spindash_counter' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(122) : Error : Symbol 'camera_y_pos_bias' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(125) : Error : Symbol 'camera_y_pos_bias' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(126) : Error : Symbol 'camera_y_pos_bias' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SONIC SPINDASH.ASM(130) : Error : Symbol 'anglepos' not defined
F:\SRC\SONIC4\SONED2\S1S\_INCOBJ\SUB REACTTOITEM.ASM(170) : Error : Symbol 'id_spindash' not defined

Assembly completed.
44 error(s) from 53468 lines in 0.75 seconds
--MarioMario456 (talk) 14:47, 13 October 2017 (CDT)


You could try defining the undefined symbols

Lilggamegenuis (talk) 16:24, 20 October 2017 (CDT)

Fixed,I was using the Sonic 2 GitHub disassembly and Sonic 1 GitHub disassembly. I'm now using the Sonic 2 Aurochs disassembly and Sonic 1 GitHub disassembly. Homewer, I have these problems and bugs:
  • Tile Molester uses the default palette, making imposibble to add the Spindashing sprites.
  • If I do a Spindash to the left, I'll go to the right instead.

Animated GIF of the problem:

S1SDB.GIF

My code:

; Start of subroutine Sonic_SpinDash

Sonic_SpinDash:
		tst.b	$39(a0)
		bne.s	loc_1AC8E
		cmpi.b	#id_Duck,obAnim(a0)
		bne.s	locret_1AC8C
		move.b	($FFFFF603).w,d0
		andi.b	#$70,d0
		beq.w	locret_1AC8C
		move.b	#id_Roll,obAnim(a0)
		move.w	#$BE,d0
		jsr	(PlaySound_Special).l
		addq.l	#4,sp
		move.b	#1,$39(a0)
		move.w	#0,$3A(a0)
		cmpi.b	#$C,$28(a0)
		bcs.s	loc_1AC84
		move.b	#2,($FFFFD11C).w

loc_1AC84:
		bsr.w	Sonic_LevelBound
		bsr.w	Sonic_AnglePos

locret_1AC8C:
		rts	

; ---------------------------------------------------------------------------

loc_1AC8E:
		move.b	($FFFFF602).w,d0
		btst	#1,d0
		bne.w	loc_1AD30
		move.b	#$E,$16(a0)
		move.b	#7,$17(a0)
		move.b	#id_Roll,obAnim(a0)
		addq.w	#5,$C(a0)
		move.b	#0,$39(a0)
		moveq	#0,d0
		move.b	$3A(a0),d0
		add.w	d0,d0
		move.w	Dash_Speeds(pc,d0.w),obInertia(a0)

loc_1ACF4:
		bset	#2,$22(a0)
		move.b	#0,($FFFFD11C).w
		move.w	#$BC,d0
		jsr	(PlaySound_Special).l
		bra.s	loc_1AD78

; ---------------------------------------------------------------------------

Dash_Speeds:	dc.w  $800		; 0
		dc.w  $880		; 1
		dc.w  $900		; 2
		dc.w  $980		; 3
		dc.w  $A00		; 4
		dc.w  $A80		; 5
		dc.w  $B00		; 6
		dc.w  $B80		; 7
		dc.w  $C00		; 8
		
; ---------------------------------------------------------------------------

loc_1AD30:				; If still charging the dash...
		tst.w	$3A(a0)
		beq.s	loc_1AD48
		move.w	$3A(a0),d0
		lsr.w	#5,d0
		sub.w	d0,$3A(a0)
		bcc.s	loc_1AD48
		move.w	#0,$3A(a0)

loc_1AD48:
		move.b	($FFFFF603).w,d0
		andi.b	#$70,d0	; 'p'
		beq.w	loc_1AD78
;		move.w	#$900,obAnim(a0)
		move.w	#$BE,d0	; 'à'
		jsr	(PlaySound_Special).l
		addi.w	#$200,$3A(a0)
		cmpi.w	#$800,$3A(a0)
		bcs.s	loc_1AD78
		move.w	#$800,$3A(a0)

loc_1AD78:
		addq.l	#4,sp
		cmpi.w	#$60,($FFFFEED8).w
		beq.s	loc_1AD8C
		bcc.s	loc_1AD88
		addq.w	#4,($FFFFEED8).w

loc_1AD88:
		subq.w	#2,($FFFFEED8).w

loc_1AD8C:
		bsr.w	Sonic_LevelBound
		bsr.w	Sonic_AnglePos
		move.w #$60,(v_lookshift).w
		rts
; End of subroutine Sonic_SpinDash

If you have a fix, give it to me. --MarioMario456 (talk) 16:03, 4 November 2017 (CDT)