gs2bg1cyc.s 3.89 KB
/*---------------------------------------------------------------------
	Copyright (C) 1997, Nintendo.
	
	File		gs2bg1cyc.s
	Coded    by	Yoshitaka Yasumoto.	Mar 27, 1997.
	Modified by	
	Comments	
	
	$Id: gs2bg1cyc.s,v 1.1.1.1 2002/05/02 03:29:12 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 の作画処理のオーバーレイコード
 #----------------------------------------------------------------------------
overlay_G_OBJ_SPRITE:
	#
	#   オーバーレイ終了後 case_G_OBJ_SPRITE へジャンプする
	#	既に sys0 に飛び先が代入されているので, そのまま overlay を
	#	行なう.
	#
	_li	(sys1, adrs_G_OBJ_SPRITE)
	j	loadOverlaySR1
	_li	(sys0, 8)		# Overlay code 1 をロード
	
	.space	adrs_G_OBJ_SPRITE_Txtr+0x1000
	#
	# 複合命令の処理, オーバーレイ後は $20 の値が破壊されるので
	# LoadTxtr に戻って再度 $20 の値を代入する.
	#
overlay_G_OBJ_SPRITE_Txtr:
	_li	(sys1, adrs_LoadTx_ReturnNext)
	j	loadOverlaySR1
	_li	(sys0, 8)		# Overlay code 1 をロード
	
 #----------------------------------------------------------------------------
 #	case_G_BG_1CYC_Cont:
 #	拡大縮小可能な BG の作画ルーチンの本体 (A パート)
 #----------------------------------------------------------------------------
case_G_BG_1CYC_Cont:
#include	"gs2bg1cycL.s"

 #----------------------------------------------------------------------------
 #	アドレス合せのための詰め物
 #	Overlay 領域 1 とのサイズを合わせるために nop を付加する
 #----------------------------------------------------------------------------
BG1CYC_PAD_START_A:	.symbol	dummy_BG1CYC_PAD_START_A, 0
			.space	adrs_G_BG_1CYC+0x1000
BG1CYC_PAD_END_A:	.symbol	dummy_BG1CYC_PAD_END_A, 0

 #----------------------------------------------------------------------------
 #	case_G_BG_1CYC:
 #	拡大縮小可能な BG の作画ルーチン起動フック
 #----------------------------------------------------------------------------
	.symbol	adrs_G_BG_1CYC_Cont, case_G_BG_1CYC_Cont
case_G_BG_1CYC:
        #---------------------------------------------------------------------
        # uObjBg データのアドレスを物理アドレスに変換し, 処理本体へ飛ぶ
	#	gs2sprite とオーバーレイを行なうので, この処理の命令数は
	#	gs2sprite 側と合わせなければならない
        #---------------------------------------------------------------------
	_li	(return, adrs_G_BG_1CYC_Cont)
	j	AdrsFixup
	_li     ($20, RSP_INPUT_BG)	# 64bit alignment

	.space	adrs_G_OBJ_RECT+0x1000
 #----------------------------------------------------------------------------
 #	overlay_G_OBJ_RECT:
 #	回転不可能な OBJECT の作画処理のオーバーレイコード
 #----------------------------------------------------------------------------
overlay_G_OBJ_RECT:
	#
	#   オーバーレイ終了後 case_G_OBJ_RECT へジャンプする
	#
	_li	(sys1, adrs_G_OBJ_RECT)
	j	loadOverlaySR1
	_li	(sys0, 8)		# Overlay code 1 をロード
	
	.space	adrs_G_OBJ_RECT_Txtr+0x1000
	#
	# 複合命令の処理, オーバーレイ後は $20 の値が破壊されるので
	# LoadTxtr に戻って再度 $20 の値を代入する.
	#
overlay_G_OBJ_RECT_Txtr:
	_li	(sys1, adrs_LoadTx_ReturnNext)
	j	loadOverlaySR1
	_li	(sys0, 8)		# Overlay code 1 をロード

 #----------------------------------------------------------------------------
 #	case_G_BG_1CYC_Cont:
 #	拡大縮小可能な BG の作画ルーチンの本体 (後半パート)
 #----------------------------------------------------------------------------
#include	"gs2bg1cycL.s"
		
 #----------------------------------------------------------------------------
 #	アドレス合せのための詰め物
 #	Overlay 領域 1 とのサイズを合わせるために nop を付加する
 #----------------------------------------------------------------------------
BG1CYC_PAD_START_B:	.symbol	dummy_BG1CYC_PAD_START_B, 0
			.space	adrs_G_OBJ_RECT_end+0x1000
BG1CYC_PAD_END_B:	.symbol	dummy_BG1CYC_PAD_END_B, 0
	
/*======== End of gs2bg1cyc.s ========*/