Varion Icaria, on 07 January 2015 - 01:39 PM, said:
DO you think its possible technically to create something hybrid if we don't plan on using the 32x? DAC playing through 32x or FM6 depending on what we plan to build?

Posted 07 January 2015 - 08:37 PM
Varion Icaria, on 07 January 2015 - 01:39 PM, said:
Posted 11 January 2015 - 12:23 AM
Clownacy, on 06 January 2015 - 09:01 AM, said:
Varion Icaria, on 07 January 2015 - 01:39 PM, said:
Posted 15 January 2015 - 08:43 AM
saxman, on 11 January 2015 - 12:23 AM, said:
Posted 15 January 2015 - 12:06 PM
Posted 18 January 2015 - 09:58 PM


; ---------------------------------------------------------------------------- ; Object 95 - Sol (fireball-throwing orbit badnik) from HTZ ; Orbinaut enemy (LZ, SLZ, SBZ) ; ---------------------------------------------------------------------------- ; Sprite_370FE: Obj95: moveq #0,d0 move.b routine(a0),d0 move.w Orb_Index(pc,d0.w),d1 jmp Orb_Index(pc,d1.w) ; =========================================================================== Orb_Index: dc.w Orb_Main-Orb_Index dc.w Orb_ChkSonic-Orb_Index; 1 dc.w Orb_Display-Orb_Index; 2 dc.w Orb_MoveOrb-Orb_Index; 3 dc.w Orb_ChkDel2-Orb_Index; 4 orb_parent: = $3C ; address of parent object ; =========================================================================== Orb_Main: if INCLUDE_SONIC_1_LEVELS == TRUE if INCLUDE_SONIC_2_LEVELS == TRUE btst.b #7,subtype(a0) beq.s ++ endif move.l #(ROM_Start+Map_Orb),mappings(a0) cmpi.b #ZONE_ID_LZ,(Current_Zone).w bne.s + move.w #$530,art_tile(a0) ; LZ specific code bra.s +++ + move.w #$429,art_tile(a0) ; SLZ specific code if INCLUDE_SONIC_2_LEVELS == TRUE bra.s ++ endif + endif if INCLUDE_SONIC_2_LEVELS == TRUE move.l #(ROM_Start+Obj95_MapUnc_372E6),mappings(a0) move.w #0,art_tile(a0) ; HTZ specific code endif + bsr.w JmpTo64_Adjust2PArtPointer ori.b #4,render_flags(a0) move.b #4,priority(a0) move.b #$B,collision_flags(a0) move.b #$C,width_pixels(a0) if INCLUDE_SONIC_2_LEVELS == TRUE if INCLUDE_SONIC_1_LEVELS == TRUE btst.b #7,subtype(a0) bne.s + endif move.w #-$40,x_vel(a0) endif + moveq #0,d2 lea objoff_37(a0),a2 movea.l a2,a3 addq.w #1,a2 moveq #3,d1 Orb_makesatellites: bsr.w JmpTo25_SingleObjLoad2 bne.s Orb_fail addq.b #1,(a3) move.w a1,d5 subi.w #$B000,d5 lsr.w #6,d5 andi.w #$7F,d5 move.b d5,(a2)+ move.b 0(a0),0(a1) ; load obj95 move.b #6,routine(a1) ; use Orb_MoveOrb routine move.l mappings(a0),mappings(a1) move.w art_tile(a0),art_tile(a1) ori.b #4,render_flags(a1) move.b #4,priority(a1) move.b #8,width_pixels(a1) move.b #3,mapping_frame(a1) move.b #$98,collision_flags(a1) move.b d2,angle(a1) if INCLUDE_SONIC_1_LEVELS == TRUE if INCLUDE_SONIC_2_LEVELS == TRUE move.b subtype(a0),subtype(a1) endif endif addi.b #$40,d2 move.l a0,objoff_3C(a1) dbf d1,Orb_makesatellites ; repeat sequence 3 more times Orb_fail: moveq #1,d0 btst #0,status(a0) ; is orbinaut facing left? beq.s Orb_noflip ; if not, branch neg.w d0 Orb_noflip: move.b d0,objoff_36(a0) move.b subtype(a0),routine(a0) ; if type is 02, skip Orb_ChkSonic andi.b #$E,routine(a0) addq.b #2,routine(a0) move.w #-$40,x_vel(a0) ; move orbinaut to the left btst #0,status(a0) ; is orbinaut facing left? beq.s Orb_noflip2 ; if not, branch neg.w x_vel(a0) ; move orbinaut to the right Orb_noflip2: rts ; =========================================================================== Orb_ChkSonic: ; Routine 2 move.w (MainCharacter+x_pos).w,d0 sub.w x_pos(a0),d0 ; is Sonic to the right of the orbinaut? bcc.s Orb_isright ; if yes, branch neg.w d0 Orb_isright: cmpi.w #$A0,d0 ; is Sonic within $A0 pixels of orbinaut? bcc.s Orb_animate ; if not, branch move.w (MainCharacter+y_pos).w,d0 sub.w y_pos(a0),d0 ; is Sonic above the orbinaut? bcc.s Orb_isabove ; if yes, branch neg.w d0 Orb_isabove: cmpi.w #$50,d0 bcc.s Orb_animate tst.w (Debug_placement_mode).w bne.s Orb_animate move.b #1,anim(a0) Orb_animate: if INCLUDE_SONIC_2_LEVELS == TRUE if INCLUDE_SONIC_1_LEVELS == TRUE btst.b #7,subtype(a0) bne.s + endif bsr.w JmpTo26_ObjectMove lea (ROM_Start+Ani_Orb).l,a1 bsr.w JmpTo25_AnimateSprite andi.b #3,mapping_frame(a0) bra.w JmpTo39_MarkObjGone endif + if INCLUDE_SONIC_1_LEVELS == TRUE lea (ROM_Start+Ani_Orb).l,a1 bsr.w JmpTo25_AnimateSprite bra.w Orb_ChkDel endif ; =========================================================================== Orb_Display: ; Routine 4 bsr.w JmpTo26_ObjectMove if INCLUDE_SONIC_2_LEVELS == TRUE if INCLUDE_SONIC_1_LEVELS == TRUE btst.b #7,subtype(a0) bne.s + endif lea (ROM_Start+off_372E0).l,a1 bsr.w JmpTo25_AnimateSprite andi.b #3,mapping_frame(a0) bra.w JmpTo39_MarkObjGone + endif if INCLUDE_SONIC_1_LEVELS == TRUE Orb_ChkDel: move.w x_pos(a0),d0 andi.w #$FF80,d0 sub.w (Camera_X_pos_coarse).w,d0 cmpi.w #OBJECT_X_SCOPE,d0 bhi.w Orb_chkgone jmp DisplaySprite Orb_chkgone: lea (Object_Respawn_Table).w,a2 moveq #0,d0 move.b respawn_index(a0),d0 beq.s loc_s1_11E34 bclr #7,2(a2,d0.w) loc_s1_11E34: lea $37(a0),a2 moveq #0,d2 move.b (a2)+,d2 subq.w #1,d2 bcs.s Orb_Delete loc_s1_11E40: moveq #0,d0 move.b (a2)+,d0 lsl.w #6,d0 addi.l #Object_RAM&$FFFFFF,d0 movea.l d0,a1 jsr DeleteObject2 dbf d2,loc_s1_11E40 Orb_Delete: jmp DeleteObject endif ;if INCLUDE_SONIC_1_LEVELS == TRUE ; =========================================================================== Orb_MoveOrb: ; Routine 6 if INCLUDE_SONIC_2_LEVELS == TRUE if INCLUDE_SONIC_1_LEVELS btst.b #7,subtype(a0) bne.s + endif lea (ROM_Start+off_372E0).l,a1 bsr.w JmpTo25_AnimateSprite endif + movea.l orb_parent(a0),a1 ; a1=object cmpi.b #$95,0(a1) bne.w JmpTo65_DeleteObject cmpi.b #2,mapping_frame(a1) bne.s Orb_circle cmpi.b #$40,angle(a0) bne.s Orb_circle addq.b #2,routine(a0) if INCLUDE_SONIC_2_LEVELS == TRUE if INCLUDE_SONIC_1_LEVELS == TRUE btst.b #7,subtype(a0) bne.s + endif move.b #0,anim(a0) endif + subq.b #1,objoff_37(a1) bne.s Orb_fire addq.b #2,routine(a1) Orb_fire: move.w #-$200,x_vel(a0) btst #0,status(a1) beq.s Orb_noflip3 neg.w x_vel(a0) Orb_noflip3 bra.w JmpTo45_DisplaySprite ; =========================================================================== Orb_circle: move.b angle(a0),d0 jsr (ROM_Start+CalcSine).l asr.w #4,d1 add.w x_pos(a1),d1 move.w d1,x_pos(a0) asr.w #4,d0 add.w y_pos(a1),d0 move.w d0,y_pos(a0) move.b objoff_36(a1),d0 add.b d0,angle(a0) bra.w JmpTo45_DisplaySprite ; =========================================================================== Orb_ChkDel2: bsr.w JmpTo26_ObjectMove tst.b render_flags(a0) bpl.w JmpTo65_DeleteObject if INCLUDE_SONIC_2_LEVELS == TRUE if INCLUDE_SONIC_1_LEVELS == TRUE btst.b #7,subtype(a0) bne.s + endif lea (ROM_Start+off_372E0).l,a1 bsr.w JmpTo25_AnimateSprite endif + bra.w JmpTo45_DisplaySprite ; =========================================================================== ; animation script Ani_Orb: dc.w Ani_Orb_normal-Ani_Orb dc.w Ani_Orb_angry-Ani_Orb; 1 Ani_Orb_normal: dc.b $F, 0,$FF Ani_Orb_angry: dc.b $F, 1, 2,$FE, 1 even if INCLUDE_SONIC_2_LEVELS == TRUE ; animation script off_372E0: dc.w byte_372E2-off_372E0 byte_372E2: dc.b 5, 3, 4,$FF even endif ; ---------------------------------------------------------------------------- ; sprite mappings ; ---------------------------------------------------------------------------- if INCLUDE_SONIC_1_LEVELS == TRUE Map_Orb: BINCLUDE "mappings/sprite/obj95_1.bin" even endif if INCLUDE_SONIC_2_LEVELS == TRUE Obj95_MapUnc_372E6: BINCLUDE "mappings/sprite/obj95_2.bin" endif
Posted 19 January 2015 - 01:22 AM
Posted 19 January 2015 - 01:55 PM
Posted 20 January 2015 - 09:53 PM
redquebec, on 07 January 2015 - 08:37 PM, said:
Varion Icaria, on 07 January 2015 - 01:39 PM, said:
Hitaxas, on 19 January 2015 - 01:22 AM, said:
Clownacy, on 19 January 2015 - 01:55 PM, said:
Posted 20 January 2015 - 10:12 PM
saxman, on 20 January 2015 - 09:53 PM, said:
Posted 21 January 2015 - 06:39 AM
DigitalDuck, on 20 January 2015 - 10:12 PM, said:
Posted 22 January 2015 - 04:35 AM
Posted 22 January 2015 - 04:56 PM
Posted 22 January 2015 - 05:08 PM
ThomasSpeedrunner, on 22 January 2015 - 04:56 PM, said:
Posted 22 January 2015 - 05:48 PM
Posted 23 January 2015 - 03:48 PM
saxman, on 20 January 2015 - 09:53 PM, said: