2. S2DEX Functions

[UP]


2.1 Render Primitive

Since S2DEX has been tuned especially for the processing of 2D expressions, it is not capable of supporting the rendering of 3D primatives as in Fast3D and F3DEX. In place of that, the following types of primitives can be drawn with S2DEX microcode.

1) Rectangle A -------- gSPObjRectangle,gSPObjRectangleR (Copy Mode)
Fixed size, scaling and rotation are not possible
Horizontal/vertical texture flipping possible
Rendering in Copy mode
Texture interpolated display, sub-pixel motion not possible
Anti-Alias processing not possible
Texture must already be loaded to TMEM

2) Rectangle B -------- gSPObjRectangle,gSPObjRectangleR (1,2 Cycle Mode)
Scaling possible, rotation not possible
Horizontal/vertical texture flipping possible
Rendering in 1,2 Cycle Mode
Texture interpolated display, sub-pixel motion possible
Anti-Alias processing possible
Texture must already be loaded in TMEM

3) Sprite ------------- gSPObjSprite
Scaling and rotation possible
Horizontal/vertical texture flipping possible
Rendering in Copy Mode
Texture interpolated display, sub-pixel motion possible
Anti-Alias processing possible
Texture must already be loaded in TMEM

4) BackGround(BG) A --- gSPBgRectCopy
Scaling possible
Scrolling within respective vertically, horizontally looped closed areas
Only horizontal flipping of texture is possible, vertical flipping not possible
Dedicated for rendering in Copy Mode
Texture interpolated display, sub-pixel motion not possible
Anti-Alias processing not possible
Rendering by sequentially loading texture data in DRAM to TMEM

5) BackGround(BG) B --- gSPBgRect1Cyc
Emulation routine performed by CPU
Scaling possible
Scrolling within respective vertically, horizontally looped closed areas
Only horizontal flipping of texture is possible, vertical flipping not possible
Dedicated for rendering in 1 Cycle Mode
Texture interpolated display possible, sub-pixel motion possible only horizontally
Anti-Alias processing not possible
Rendering by sequentially loading texture data in DRAM to TMEM

6) Some past GBIs
Those which can be used
FillRectangle
TextureRectangle
TextureRectangleFlip
Those which cannot be used
1Triangle
2Triangle
1Quadrangle 

As shown above, S2DEX bears virtually no resemblance to the old sprite2D microcode in terms of its functions. S2DEX is not an upgraded version of sprite2D, and is being positioned as an entirely new microcode. In addition, since sprite libraries such as spInit(), and the like use 3D microcodes, they cannot be used in combination with S2DEX. S2DEX is different from the sprite libraries.

[UP]


2.2 Self-load Function

As discussed above, there are no functions in S2DEX for rendering 3D primitives. However, the self-load function of the microcode that has been supported in F3DEX Release 1.20 and later has been installed in 2SDEX. Because of this, it is possible to render 3D primitives by loading the F3DEX microcode.

However, please be aware that switching between S2DEX is not supported unless the F3DEX microcode is Release 1.22 or later or Development Environment 2.0I or later.

[UP]


2.3 DEBUG Data Output Function

The S2DEX microcode is equipped with two types of code. One is code which is brought into play during normal game shipment, while the other is used during debugging. The DEBUG microcode has the following functions that the shipping microcode does not.

Detailed instructions for use are given below.

[UP]


2.4 Command Transfer from RSP to RDP

Like the F3DEX series, S2DEX only supports fifo versions.

However, the FIFO buffer size required by S2DEX is larger than that for the F3DEX Series. While at least 0x300 bytes were required for the F3DEX Series, 0x800 bytes or more are needed for S2DEX. Please note that 0x800 bytes or more will be required to comply with the S2DEX needs if you wish to share the FIFO buffer between the F3DEX Series and S2DEX.

(*) The minimum FIFO size in the fifo microcode is given as 0x100 on some of the manual pages, but that is in error. The required FIFO size differs for each microcode, with F3DEX Series and S2DEX requiring the size noted above, and Fast3D which needs 0x180 bytes.

[UP]