mirror of
https://github.com/HackerN64/F3DEX3.git
synced 2026-01-21 10:37:45 -08:00
Reorganized for running out of handler space
This commit is contained in:
@@ -84,10 +84,14 @@ breaking changes.**
|
||||
buffers, **saving some DRAM traffic** (maybe around 100 us per frame). The
|
||||
bits used for this are ignored by HLE.
|
||||
- Segment addresses are now resolved relative to other segments (feature by
|
||||
Tharo). This enables a strategy for skipping repeated material DLs: call
|
||||
Tharo). This enables a strategy for **skipping repeated material DLs**: call
|
||||
a segment to run the material, remap the segment in the material to a
|
||||
display list that immediately returns, and so if the material is called again
|
||||
it won't run.
|
||||
- New `SPMemset` command fills a specified RDRAM region with a repeated 16-bit
|
||||
value. This can be used for clearing the Z buffer or filling the framebuffer
|
||||
or the letterbox with a solid color **faster than the RDP can in fill mode**.
|
||||
Practical performance may vary due to scheduling constraints.
|
||||
|
||||
### Miscellaneous
|
||||
|
||||
|
||||
3
gbi.h
3
gbi.h
@@ -2388,6 +2388,9 @@ _DW({ \
|
||||
/**
|
||||
* Use RSP DMAs to set a region of memory to a repeated 16-bit value. This can
|
||||
* clear the color framebuffer or Z-buffer faster than the RDP can in fill mode.
|
||||
* SPMemset overwrites the DMEM vertex buffer, so vertices loaded before this
|
||||
* command cannot be used after it (though this would not normally be done).
|
||||
*
|
||||
* dram: Segmented or physical start address. Must be aligned to 16 bytes.
|
||||
* value: 16-bit value to fill the memory with. e.g. 0 for color, 0xFFFC for Z.
|
||||
* size: Size in bytes to fill, must be nonzero and a multiple of 16 bytes.
|
||||
|
||||
@@ -14,18 +14,18 @@ YDF_OFFSET_TASKDATAPTR equ 0x10
|
||||
YDF_OFFSET_UCODE equ 0x14
|
||||
|
||||
// OSTask data member offsets
|
||||
OSTask_type equ 0x0000
|
||||
OSTask_flags equ 0x0004 // see note below
|
||||
OSTask_ucode_boot equ 0x0008
|
||||
OSTask_ucode_boot_size equ 0x000C
|
||||
OSTask_type equ 0x0000 // EX3: fourthQWMVP ^
|
||||
OSTask_flags equ 0x0004 // see note below |
|
||||
OSTask_ucode_boot equ 0x0008 // |
|
||||
OSTask_ucode_boot_size equ 0x000C // v
|
||||
OSTask_ucode equ 0x0010 // used in F3D, S2D, and boot
|
||||
OSTask_ucode_size equ 0x0014
|
||||
OSTask_ucode_data equ 0x0018 // used in boot only
|
||||
OSTask_ucode_data_size equ 0x001C // used in boot only
|
||||
OSTask_ucode_size equ 0x0014 // EX3: startCounterTime
|
||||
OSTask_ucode_data equ 0x0018 // used in boot only. EX3: xfrmLookatDirs ^
|
||||
OSTask_ucode_data_size equ 0x001C // used in boot only v
|
||||
OSTask_dram_stack equ 0x0020 // used in F3D and S2D at first startup
|
||||
OSTask_dram_stack_size equ 0x0024
|
||||
OSTask_output_buff equ 0x0028 // used in F3D and S2D
|
||||
OSTask_output_buff_size equ 0x002C // actually end pointer; used in F3D and S2D
|
||||
OSTask_output_buff_size equ 0x002C // used in F3D and S2D; actually end pointer not size
|
||||
OSTask_data_ptr equ 0x0030 // used in F3D and S2D
|
||||
OSTask_data_size equ 0x0034
|
||||
OSTask_yield_data_ptr equ 0x0038 // used in F3D and S2D
|
||||
|
||||
Reference in New Issue
Block a user