gxs2bg1cyc.s 4 KB
/*---------------------------------------------------------------------
	Copyright (C) 1997, Nintendo.
	
	File		gs2bg1cyc.s
	Coded    by	Yoshitaka Yasumoto.	Mar 27, 1997.
	Modified by	
	Comments	
	
	$Id: gxs2bg1cyc.s,v 1.1.1.1 2002/05/02 03:29:11 blythe Exp $
  ---------------------------------------------------------------------*/
 #!Reserved  (0,11,12,17,18,19,20,23,24,25,26,27,30,31)
 #!Reserved  (v0,v1,v27,v28,v29,v30,v31)

 #----------------------------------------------------------------------------
 #	overlay_G_OBJ_SPRITE:
 #	回転可能な OBJECT の作画処理のオーバーレイコード
 #	オーバーレイ終了後 case_G_OBJ_SPRITE へジャンプする
 #	gfx1 が破壊されるので先にロードしておく
 #----------------------------------------------------------------------------
		.bound	8
overlay_G_OBJ_SPRITE:
  AssignForDMAproc
		jal	AdrsFixup
		_li	(dma_len, 23)
		jal	DMAread
		_li	(dmem_adrs, RSP_INPUT_SPRITE)
  EndAssignForDMAproc
		_li	(sys1, case_G_OBJ_SPRITE_1)
		j	LoadOverlay
		_li	(sys0, RSP_LSTAT_OVERLAY_SPRITE)
		
 #----------------------------------------------------------------------------
 #	overlay_G_OBJ_SPRITE_Txtr:
 #	複合命令の処理, オーバーレイ後は $20 の値が破壊されるので
 #	LoadTxtr に戻って再度 $20 の値を代入する.
 #----------------------------------------------------------------------------
		.space	case_G_OBJ_SPRITE_Txtr
overlay_G_OBJ_SPRITE_Txtr:
		_li	(sys1, adrs_LoadTx_ReturnNext)
		j	LoadOverlay
		_li	(sys0, RSP_LSTAT_OVERLAY_SPRITE)
	
 #----------------------------------------------------------------------------
 #	case_G_BG_1CYC_Cont:
 #	拡大縮小可能な BG の作画ルーチンの本体 (A パート)
 #----------------------------------------------------------------------------
overlay_G_BG_1CYC_Cont:
#include	"gs2bg1cycL.s"

 #----------------------------------------------------------------------------
 #	アドレス合せのための詰め物
 #	Overlay 領域 1 とのサイズを合わせるために nop を付加する
 #----------------------------------------------------------------------------
		.space	overlay_G_BG_1CYC-4

 #----------------------------------------------------------------------------
 #	case_G_BG_1CYC:
 #	拡大縮小可能な BG の作画ルーチン起動フック
 #----------------------------------------------------------------------------
        #---------------------------------------------------------------------
        # uObjBg データのアドレスを物理アドレスに変換し, 処理本体へ飛ぶ
	#	gs2sprite とオーバーレイを行なうので, この処理の命令数は
	#	gs2sprite 側と合わせなければならない
        #---------------------------------------------------------------------
case_G_BG_1CYC_0:
	lw	gfx1, (RSP_DLINPUT_BOTTOM-4)(dinp)
case_G_BG_1CYC:
	_li	(return, overlay_G_BG_1CYC_Cont)
	j	AdrsFixup
	_li     ($20, RSP_INPUT_BG)	# 64bit alignment
	
 #----------------------------------------------------------------------------
 #	overlay_G_OBJ_RECT:
 #	回転不可能な OBJECT の作画処理のオーバーレイコード
 #	オーバーレイ終了後 case_G_OBJ_RECT_1 へジャンプする
 #	gfx1 が破壊されるので先にロードしておく
 #----------------------------------------------------------------------------
		.space	case_G_OBJ_RECT
overlay_G_OBJ_RECT:
  AssignForDMAproc
		jal	AdrsFixup
		_li	(dma_len, 23)
		jal	DMAread
		_li	(dmem_adrs, RSP_INPUT_SPRITE)
  EndAssignForDMAproc
		_li	(sys1, case_G_OBJ_RECT_1)
		j	LoadOverlay
		_li	(sys0, RSP_LSTAT_OVERLAY_SPRITE)
	
 #----------------------------------------------------------------------------
 #	overlay_G_OBJ_RECT_Txtr:
 #	複合命令の処理, オーバーレイ後は $20 の値が破壊されるので
 #	LoadTxtr に戻って再度 $20 の値を代入する.
 #----------------------------------------------------------------------------
		.space	case_G_OBJ_RECT_Txtr
overlay_G_OBJ_RECT_Txtr:
		_li	(sys1, adrs_LoadTx_ReturnNext)
		j	LoadOverlay
		_li	(sys0, RSP_LSTAT_OVERLAY_SPRITE)

 #----------------------------------------------------------------------------
 #	case_G_BG_1CYC_Cont:
 #	拡大縮小可能な BG の作画ルーチンの本体 (後半パート)
 #----------------------------------------------------------------------------
#include	"gs2bg1cycL.s"
			
/*======== End of gs2bg1cyc.s ========*/