mirror of
https://github.com/HackerN64/F3DEX3.git
synced 2026-01-21 10:37:45 -08:00
Move to HackerN64 org
This commit is contained in:
65
Makefile
65
Makefile
@@ -2,49 +2,11 @@ MAKEFLAGS += --no-builtin-rules
|
||||
MAKEFLAGS += --no-builtin-variables
|
||||
.SUFFIXES:
|
||||
|
||||
default:
|
||||
@echo 'How to use this Makefile'
|
||||
@echo 'Method 1) Select a microcode, just run e.g. `make F3DZEX_NoN_2.06H`'
|
||||
@echo 'Method 2) `make ok`, builds all ucodes which have MD5 sums, to check if :OK:'
|
||||
@echo 'Method 3) `make all`, builds all ucodes in database'
|
||||
@echo 'Method 4) Custom microcode build via custom.mk file. Create a file custom.mk'
|
||||
@echo 'with contents like this:'
|
||||
@echo 'NAME := your_custom_ucode_name'
|
||||
@echo 'DESCRIPTION := Your Romhack Name'
|
||||
@echo 'ID_STR := Modded F3DZEX by _your_name_, real N64 hardware or RSP LLE is required'
|
||||
@echo ' ^ (this must be the exact number of characters)'
|
||||
@echo 'OPTIONS := CFG_NoN CFG_POINT_LIGHTING etc.'
|
||||
@echo 'Then run `make your_custom_ucode_name`. See the Makefile for the list of options.'
|
||||
default: F3DEX3_BrZ F3DEX3_BrW
|
||||
|
||||
# With the defaults--all of these options unset--you get 2.08 (Banjo-Tooie),
|
||||
# which has none of the bugs / the latest versions of everything, except
|
||||
# G_BRANCH_Z (F3DEX2), no point lighting, and no NoN. Enabling the different
|
||||
# BUG_ options *gives* you the bugs--the default is always with the bugs fixed.
|
||||
# If you are modding and adding options, you just have to add them here, and
|
||||
# in the options list for your custom configuration.
|
||||
# List of all compile-time options supported by the microcode source.
|
||||
ALL_OPTIONS := \
|
||||
CFG_G_BRANCH_W \
|
||||
CFG_XBUS \
|
||||
CFG_NoN \
|
||||
CFG_POINT_LIGHTING \
|
||||
CFG_OLD_TRI_WRITE \
|
||||
CFG_EXTRA_0A_BEFORE_ID_STR \
|
||||
CFG_G_SPECIAL_1_IS_RECALC_MVP \
|
||||
CFG_CLIPPING_SUBDIVIDE_DESCENDING \
|
||||
CFG_DONT_SKIP_FIRST_INSTR_NEW_UCODE \
|
||||
BUG_CLIPPING_FAIL_WHEN_SUM_ZERO \
|
||||
BUG_NO_CLAMP_SCREEN_Z_POSITIVE \
|
||||
BUG_TEXGEN_LINEAR_CLOBBER_S_T \
|
||||
BUG_WRONG_INIT_VZERO \
|
||||
BUG_FAIL_IF_CARRY_SET_AT_INIT \
|
||||
MOD_GENERAL \
|
||||
MOD_RDP_BUFS_2_TRIS \
|
||||
MOD_CMD_JUMP_TABLE \
|
||||
MOD_ATTR_OFFSETS \
|
||||
MOD_CLIP_CHANGES \
|
||||
MOD_CLIP_SUBDIVIDE \
|
||||
MOD_CLIP_EXPERIM \
|
||||
MOD_VL_REWRITE
|
||||
CFG_G_BRANCH_W
|
||||
|
||||
ARMIPS ?= armips
|
||||
PARENT_OUTPUT_DIR ?= ./build
|
||||
@@ -120,7 +82,7 @@ define ucode_rule
|
||||
-strequ DATA_FILE $$(DATA_FILE) \
|
||||
$$(OPTIONS_EQU) \
|
||||
$$(OFF_OPTIONS_EQU) \
|
||||
f3dex2.s \
|
||||
f3dex3.s \
|
||||
-sym2 $$(SYM_FILE) \
|
||||
-temp $$(TEMP_FILE)
|
||||
# Microcode target
|
||||
@@ -148,7 +110,7 @@ define ucode_rule
|
||||
$$(CODE_FILE): CODE_FILE:=$$(CODE_FILE)
|
||||
$$(CODE_FILE): DATA_FILE:=$$(DATA_FILE)
|
||||
# Target recipe
|
||||
$$(CODE_FILE): ./f3dex2.s ./rsp/* ucodes_database.mk $(EXTRA_DEPS) | $$(UCODE_OUTPUT_DIR)
|
||||
$$(CODE_FILE): ./f3dex3.s ./rsp/* $(EXTRA_DEPS) | $$(UCODE_OUTPUT_DIR)
|
||||
@printf "$(INFO)Building microcode: $(NAME): $(DESCRIPTION)$(NO_COL)\n"
|
||||
@$(ARMIPS) -strequ ID_STR "$(ID_STR)" $$(ARMIPS_CMDLINE)
|
||||
ifneq ($(MD5_CODE),)
|
||||
@@ -162,13 +124,18 @@ endef
|
||||
|
||||
$(eval $(call reset_vars))
|
||||
|
||||
ifneq ("$(wildcard custom.mk)","")
|
||||
include custom.mk
|
||||
EXTRA_DEPS := custom.mk
|
||||
$(eval $(call ucode_rule))
|
||||
endif
|
||||
NAME := F3DEX3_BrZ
|
||||
DESCRIPTION := Will make you want to finally ditch HLE (G_BRANCH_Z version)
|
||||
ID_STR := F3DEX3 by Sauraen & Nintendo, G_BRANCH_Z version______________________
|
||||
OPTIONS :=
|
||||
$(eval $(call ucode_rule))
|
||||
|
||||
include ucodes_database.mk
|
||||
NAME := F3DEX3_BrW
|
||||
DESCRIPTION := Will make you want to finally ditch HLE (G_BRANCH_W version)
|
||||
ID_STR := F3DEX3 by Sauraen & Nintendo, G_BRANCH_W version______________________
|
||||
OPTIONS := \
|
||||
CFG_G_BRANCH_W
|
||||
$(eval $(call ucode_rule))
|
||||
|
||||
.PHONY: default ok all clean
|
||||
|
||||
|
||||
73
README.md
73
README.md
@@ -1,8 +1,10 @@
|
||||
# F3DEX3 has moved!
|
||||
|
||||
**Please go to https://github.com/HackerN64/F3DEX3. This branch is deprecated.**
|
||||
# F3DEX3
|
||||
|
||||
Modern microcode for N64 romhacks. Will make you want to finally ditch HLE.
|
||||
Heavily modified version of F3DEX2, partially rewritten from scratch.
|
||||
|
||||
**F3DEX3 is in alpha. It is not stable yet for use in romhacks. If you try it,
|
||||
you should expect crashes and graphical issues.**
|
||||
|
||||
## Features
|
||||
|
||||
@@ -105,6 +107,9 @@ Modern microcode for N64 romhacks. Will make you want to finally ditch HLE.
|
||||
|
||||
## Bounding vertices system
|
||||
|
||||
**This system is planned to be removed--Kaze does not believe it will bring
|
||||
much extra performance--and replaced with a new occlusion plane system.**
|
||||
|
||||
The features of this system are easiest to understand with an example. Suppose
|
||||
you have five houses in a scene, and each house has a chimney. The following
|
||||
display list draws the chimneys, but culls each one if it is offscreen or too
|
||||
@@ -212,31 +217,32 @@ For an OoT codebase, only a few minor changes are required to use F3DEX3.
|
||||
However, more changes are recommended to increase performance and enable new
|
||||
features.
|
||||
|
||||
There is only one build-time option for F3DEX3: enable `CFG_G_BRANCH_W` if the
|
||||
microcode is replacing F3DZEX (i.e. OoT or MM), otherwise do not enable this
|
||||
option if the microcode is replacing F3DEX2 or an earlier F3D version (i.e.
|
||||
SM64). Enabling this option makes `SPBranchLessZ*` use the vertex's W
|
||||
coordinate, otherwise it uses the screen Z coordinate. New display lists should
|
||||
use the bounding vertices system instead of `SPBranchLessZ*`, so this only
|
||||
matters for vanilla display lists used in your romhack.
|
||||
There is only one build-time option for F3DEX3: `make F3DEX3_BrW` if the
|
||||
microcode is replacing F3DZEX (i.e. OoT or MM), otherwise `make F3DEX3_BrZ` if
|
||||
the microcode is replacing F3DEX2 or an earlier F3D version (i.e. SM64). This
|
||||
controls whether `SPBranchLessZ*` uses the vertex's W coordinate or screen Z
|
||||
coordinate. New display lists should use the bounding vertices system instead of
|
||||
`SPBranchLessZ*`, so this only matters for vanilla display lists used in your
|
||||
romhack.
|
||||
|
||||
How to modify the microcode in your HackerOoT based romhack (steps may be
|
||||
similar for other games):
|
||||
- Replace `include/ultra64/gbi.h` in your romhack with `gbi.h` from this repo.
|
||||
- Make the "Required Changes" listed below.
|
||||
- Build this repo (`make F3DEX3`).
|
||||
- Copy the microcode binaries (`build/F3DEX3/F3DEX3.code` and
|
||||
`build/F3DEX3/F3DEX3.data`) to somewhere in your romhack repo, e.g. `data`.
|
||||
- Build this repo: install the latest version of `armips`, then `make
|
||||
F3DEX3_BrZ` or `make F3DEX3_BrW` (see above).
|
||||
- Copy the microcode binaries (`build/F3DEX3_X/F3DEX3_X.code` and
|
||||
`build/F3DEX3_X/F3DEX3_X.data`) to somewhere in your romhack repo, e.g. `data`.
|
||||
- In `data/rsp.rodata.s`, change the line between `fifoTextStart` and
|
||||
`fifoTextEnd` to `.incbin "data/F3DEX3.code"` (or wherever you put the
|
||||
`fifoTextEnd` to `.incbin "data/F3DEX3_X.code"` (or wherever you put the
|
||||
binary), and similarly change the line between `fifoDataStart` and
|
||||
`fifoDataEnd` to `.incbin "data/F3DEX3.data"`. After both the `fifoTextEnd`
|
||||
`fifoDataEnd` to `.incbin "data/F3DEX3_X.data"`. After both the `fifoTextEnd`
|
||||
and `fifoDataEnd` labels, add a line `.balign 16`.
|
||||
- If you are planning to ever update the microcode binaries in the future,
|
||||
add the following to the Makefile of your romhack, after the section starting
|
||||
with `build/data/%.o` (i.e. two lines after that, with a blank line before
|
||||
and after): `build/data/rsp.rodata.o: data/F3DEX3.code data/F3DEX3.data`. It
|
||||
is not a mistake that this new line you are adding won't have a second
|
||||
and after): `build/data/rsp.rodata.o: data/F3DEX3_X.code data/F3DEX3_X.data`.
|
||||
It is not a mistake that this new line you are adding won't have a second
|
||||
indented line after it; it is like the `message_data_static` lines below that.
|
||||
This will tell `make` to rebuild `rsp.rodata.o`, which includes the microcode
|
||||
binaries, whenever they are changed.
|
||||
@@ -279,22 +285,24 @@ similar for other games):
|
||||
- Avoid using `G_MTX_MUL` in `SPMatrix`. That is, make sure your game engine
|
||||
computes a matrix stack on the CPU and sends the final matrix for each object
|
||||
/ limb to the RSP, rather than multiplying matrices on the RSP. OoT already
|
||||
does the former for precision / accuracy reasons and only uses `G_MTX_MUL` in
|
||||
a couple obscure places; it is okay to leave those. This change is recommended
|
||||
because the `G_MTX_MUL` mode of `SPMatrix` has been moved to Overlay 4 in
|
||||
F3DEX3 (see below), making it substantially slower than it was in F3DEX2. It
|
||||
still functions the same though so you can use it if it's really needed.
|
||||
usually does the former for precision / accuracy reasons and only uses
|
||||
`G_MTX_MUL` in a couple places; it is okay to leave those. This change is
|
||||
recommended because the `G_MTX_MUL` mode of `SPMatrix` has been moved to
|
||||
Overlay 4 in F3DEX3 (see below), making it substantially slower than it was in
|
||||
F3DEX2. It still functions the same though so you can use it if it's really
|
||||
needed.
|
||||
- Re-export as many display lists (scenes, objects, skeletons, etc.) as possible
|
||||
with fast64 set to F3DEX3 mode, to take advantage of the substantially larger
|
||||
vertex buffer, triangle packing commands, "hints" system, etc.
|
||||
- Once everything in your romhack is ported to F3DEX3 and everything is stable,
|
||||
`#define NO_SYNCS_IN_TEXTURE_LOADS` and fix any crashes or graphical issues
|
||||
that arise. Display lists exported from fast64 already do not contain these
|
||||
syncs, but vanilla display lists or custom ones using the texture loading
|
||||
multi-command macros do. Disabling the syncs saves a few percent of RDP cycles
|
||||
for each material setup; what percentage this is of the total RDP time depends
|
||||
on how many triangles are typically drawn between each material change. For
|
||||
more information, see the GBI documentation near this define.
|
||||
`#define NO_SYNCS_IN_TEXTURE_LOADS` (at the top of, or before including, the
|
||||
GBI) and fix any crashes or graphical issues that arise. Display lists
|
||||
exported from fast64 already do not contain these syncs, but vanilla display
|
||||
lists or custom ones using the texture loading multi-command macros do.
|
||||
Disabling the syncs saves a few percent of RDP cycles for each material setup;
|
||||
what percentage this is of the total RDP time depends on how many triangles
|
||||
are typically drawn between each material change. For more information, see
|
||||
the GBI documentation near this define.
|
||||
|
||||
### Recommended Changes (Lighting)
|
||||
|
||||
@@ -493,9 +501,10 @@ two tris, saving a substantial amount of DMEM.
|
||||
|
||||
## Credits
|
||||
|
||||
F3DEX3 modifications from F3DEX2 by Sauraen. If you use F3DEX3 in a romhack,
|
||||
please credit "F3DEX3 Microcode - Sauraen" in your project's in-game Staff Roll
|
||||
or wherever other contributors to your project are credited.
|
||||
F3DEX3 modifications from F3DEX2 are by Sauraen and are dedicated to the public
|
||||
domain. If you use F3DEX3 in a romhack, please credit "F3DEX3 Microcode -
|
||||
Sauraen" in your project's in-game Staff Roll or wherever other contributors to
|
||||
your project are credited.
|
||||
|
||||
Other credits:
|
||||
- Wiseguy: large chunk of F3DEX2 disassembly documentation and first version of
|
||||
|
||||
6
build.sh
6
build.sh
@@ -1,8 +1,8 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
make F3DEX3
|
||||
cp build/F3DEX3/F3DEX3.code ../../Mods/HackerOoT/data/F3DEX3.code
|
||||
cp build/F3DEX3/F3DEX3.data ../../Mods/HackerOoT/data/F3DEX3.data
|
||||
make F3DEX3_BrW
|
||||
cp build/F3DEX3_BrW/F3DEX3_BrW.code ../../Mods/HackerOoT/data/F3DEX3_BrW.code
|
||||
cp build/F3DEX3_BrW/F3DEX3_BrW.data ../../Mods/HackerOoT/data/F3DEX3_BrW.data
|
||||
make -C ../../Mods/HackerOoT -j12
|
||||
cp ../../Mods/HackerOoT/HackerOoT.z64 /media/`whoami`/SOME2/
|
||||
printf "\n====\nDone\n====\n"
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
NAME := F3DEX3
|
||||
DESCRIPTION := Will make you want to finally ditch HLE
|
||||
ID_STR := F3DEX3 by Sauraen & Nintendo, G_BRANCH_W version______________________
|
||||
OPTIONS := \
|
||||
CFG_G_BRANCH_W
|
||||
@@ -1,8 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
cp ../../Mods/HackerOOT/origucode_text.bin ../../Mods/HackerOOT/moducode_text.bin
|
||||
cp ../../Mods/HackerOOT/origucode_data.bin ../../Mods/HackerOOT/moducode_data.bin
|
||||
touch ../../Mods/HackerOOT/data/rsp.rodata.s
|
||||
make -C ../../Mods/HackerOOT -j12
|
||||
cp ../../Mods/HackerOOT/HackerOoT.z64 /media/`whoami`/SOME2/
|
||||
printf "\n====\nDone\n====\n"
|
||||
@@ -1,165 +0,0 @@
|
||||
NAME := F3DEX2_2.04H
|
||||
DESCRIPTION := Kirby 64, Smash 64
|
||||
ID_STR := RSP Gfx ucode F3DEX fifo 2.04H Yoshitaka Yasumoto 1998 Nintendo.
|
||||
MD5_CODE := d3a58568fa7cf042de370912a47c3b5f
|
||||
MD5_DATA := 6639b2fd15a73c5446aff592bb599983
|
||||
OPTIONS := \
|
||||
CFG_OLD_TRI_WRITE \
|
||||
CFG_EXTRA_0A_BEFORE_ID_STR \
|
||||
CFG_G_SPECIAL_1_IS_RECALC_MVP \
|
||||
CFG_CLIPPING_SUBDIVIDE_DESCENDING \
|
||||
CFG_DONT_SKIP_FIRST_INSTR_NEW_UCODE \
|
||||
BUG_CLIPPING_FAIL_WHEN_SUM_ZERO \
|
||||
BUG_NO_CLAMP_SCREEN_Z_POSITIVE \
|
||||
BUG_TEXGEN_LINEAR_CLOBBER_S_T \
|
||||
BUG_FAIL_IF_CARRY_SET_AT_INIT
|
||||
$(eval $(call ucode_rule))
|
||||
|
||||
NAME := F3DEX2_NoN_2.04H
|
||||
DESCRIPTION := Not in retail games; NoN added to F3DEX2_2.04H
|
||||
ID_STR := RSP Gfx ucode F3DEX.NoN fifo 2.04H Yoshitaka Yasumoto 1998 Nintendo.
|
||||
OPTIONS := \
|
||||
CFG_NoN \
|
||||
CFG_OLD_TRI_WRITE \
|
||||
CFG_EXTRA_0A_BEFORE_ID_STR \
|
||||
CFG_G_SPECIAL_1_IS_RECALC_MVP \
|
||||
CFG_CLIPPING_SUBDIVIDE_DESCENDING \
|
||||
CFG_DONT_SKIP_FIRST_INSTR_NEW_UCODE \
|
||||
BUG_CLIPPING_FAIL_WHEN_SUM_ZERO \
|
||||
BUG_NO_CLAMP_SCREEN_Z_POSITIVE \
|
||||
BUG_TEXGEN_LINEAR_CLOBBER_S_T \
|
||||
BUG_FAIL_IF_CARRY_SET_AT_INIT
|
||||
$(eval $(call ucode_rule))
|
||||
|
||||
NAME := F3DEX2_2.07
|
||||
DESCRIPTION := Rocket: Robot on Wheels
|
||||
ID_STR := RSP Gfx ucode F3DEX fifo 2.07 Yoshitaka Yasumoto 1998 Nintendo.
|
||||
MD5_CODE := 1523b8e38a9eae698b48909a0c0c0279
|
||||
MD5_DATA := 25be72ec04e2e6a23dfa7666645f0662
|
||||
OPTIONS := \
|
||||
BUG_FAIL_IF_CARRY_SET_AT_INIT
|
||||
$(eval $(call ucode_rule))
|
||||
|
||||
NAME := F3DEX2_2.07_XBUS
|
||||
DESCRIPTION := Lode Runner 3-D
|
||||
ID_STR := RSP Gfx ucode F3DEX xbus 2.07 Yoshitaka Yasumoto 1998 Nintendo.
|
||||
MD5_CODE := b882f402e115ffaf05a9ee44f354c441
|
||||
MD5_DATA := 71436bdc62d9263d5c2fefa783cffd4f
|
||||
OPTIONS := \
|
||||
CFG_XBUS \
|
||||
BUG_FAIL_IF_CARRY_SET_AT_INIT
|
||||
$(eval $(call ucode_rule))
|
||||
|
||||
NAME := F3DEX2_NoN_2.07
|
||||
DESCRIPTION := Not in retail games; NoN added to F3DEX2_2.07
|
||||
ID_STR := RSP Gfx ucode F3DEX.NoN fifo 2.07 Yoshitaka Yasumoto 1998 Nintendo.
|
||||
OPTIONS := \
|
||||
CFG_NoN \
|
||||
BUG_FAIL_IF_CARRY_SET_AT_INIT
|
||||
$(eval $(call ucode_rule))
|
||||
|
||||
NAME := F3DEX2_2.08
|
||||
DESCRIPTION := Banjo-Tooie
|
||||
ID_STR := RSP Gfx ucode F3DEX fifo 2.08 Yoshitaka Yasumoto 1999 Nintendo.
|
||||
MD5_CODE := 6ccf5fc392e440fb23bc7d7f7d71047c
|
||||
MD5_DATA := 3a3a406acb4295d33fa6e918dd3a7ae4
|
||||
OPTIONS :=
|
||||
$(eval $(call ucode_rule))
|
||||
|
||||
NAME := F3DEX2_2.08_XBUS
|
||||
DESCRIPTION := Power Rangers
|
||||
ID_STR := RSP Gfx ucode F3DEX xbus 2.08 Yoshitaka Yasumoto 1999 Nintendo.
|
||||
MD5_CODE := 38cbd8ef2cd168141347047cf7ec4fba
|
||||
MD5_DATA := dcb9a145381557d146683ddb853c6cfd
|
||||
OPTIONS := \
|
||||
CFG_XBUS
|
||||
$(eval $(call ucode_rule))
|
||||
|
||||
NAME := F3DEX2_NoN_2.08
|
||||
DESCRIPTION := Not in retail games; NoN added to F3DEX2_2.08
|
||||
ID_STR := RSP Gfx ucode F3DEX.NoN fifo 2.08 Yoshitaka Yasumoto 1999 Nintendo.
|
||||
MD5_CODE := b5c366b55a032f232aa309cda21be3d7
|
||||
MD5_DATA := 2c8dedc1b1e2fe6405c9895c4290cf2b
|
||||
OPTIONS := \
|
||||
CFG_NoN
|
||||
$(eval $(call ucode_rule))
|
||||
|
||||
NAME := F3DEX2_2.08PL
|
||||
DESCRIPTION := Paper Mario
|
||||
ID_STR := RSP Gfx ucode F3DEX fifo 2.08 Yoshitaka Yasumoto/Kawasedo 1999.
|
||||
MD5_CODE := 6a5117e62e51d87020fb81dc493efcb6
|
||||
MD5_DATA := 1a6b826322aab9c93da61356af5ead40
|
||||
OPTIONS := \
|
||||
CFG_POINT_LIGHTING
|
||||
$(eval $(call ucode_rule))
|
||||
|
||||
NAME := F3DEX2_NoN_2.08PL
|
||||
DESCRIPTION := Not in retail games; NoN added to F3DEX2_2.08PL
|
||||
ID_STR := RSP Gfx ucode F3DEX fifo 2.08 Yoshitaka Yasumoto/Kawasedo 1999.
|
||||
OPTIONS := \
|
||||
CFG_NoN \
|
||||
CFG_POINT_LIGHTING
|
||||
$(eval $(call ucode_rule))
|
||||
|
||||
NAME := F3DZEX_2.06H
|
||||
DESCRIPTION := Not in retail games; nearclipping added to F3DZEX_NoN_2.06H
|
||||
ID_STR := RSP Gfx ucode F3DZEX.NoN fifo 2.06H Yoshitaka Yasumoto 1998 Nintendo.
|
||||
OPTIONS := \
|
||||
CFG_G_BRANCH_W \
|
||||
CFG_OLD_TRI_WRITE \
|
||||
BUG_WRONG_INIT_VZERO \
|
||||
BUG_FAIL_IF_CARRY_SET_AT_INIT
|
||||
$(eval $(call ucode_rule))
|
||||
|
||||
NAME := F3DZEX_NoN_2.06H
|
||||
DESCRIPTION := Ocarina of Time
|
||||
ID_STR := RSP Gfx ucode F3DZEX.NoN fifo 2.06H Yoshitaka Yasumoto 1998 Nintendo.
|
||||
MD5_CODE := 96a1a7a8eab45e0882aab9e4d8ccbcc3
|
||||
MD5_DATA := e48c7679f1224b7c0947dcd5a4d0c713
|
||||
OPTIONS := \
|
||||
CFG_G_BRANCH_W \
|
||||
CFG_NoN \
|
||||
CFG_OLD_TRI_WRITE \
|
||||
BUG_WRONG_INIT_VZERO \
|
||||
BUG_FAIL_IF_CARRY_SET_AT_INIT
|
||||
$(eval $(call ucode_rule))
|
||||
|
||||
NAME := F3DZEX_2.08I
|
||||
DESCRIPTION := Not in retail games; nearclipping added to F3DZEX_NoN_2.08I
|
||||
ID_STR := RSP Gfx ucode F3DZEX.NoN fifo 2.08I Yoshitaka Yasumoto/Kawasedo 1999.
|
||||
OPTIONS := \
|
||||
CFG_G_BRANCH_W \
|
||||
CFG_POINT_LIGHTING \
|
||||
BUG_WRONG_INIT_VZERO
|
||||
$(eval $(call ucode_rule))
|
||||
|
||||
NAME := F3DZEX_NoN_2.08I
|
||||
DESCRIPTION := Majora's Mask
|
||||
ID_STR := RSP Gfx ucode F3DZEX.NoN fifo 2.08I Yoshitaka Yasumoto/Kawasedo 1999.
|
||||
MD5_CODE := ca0a31df36dbeda69f09e9850e68c7f7
|
||||
MD5_DATA := d31cea0e173c6a4a09e4dfe8f259c91b
|
||||
OPTIONS := \
|
||||
CFG_G_BRANCH_W \
|
||||
CFG_NoN \
|
||||
CFG_POINT_LIGHTING \
|
||||
BUG_WRONG_INIT_VZERO
|
||||
$(eval $(call ucode_rule))
|
||||
|
||||
NAME := F3DZEX_2.08J
|
||||
DESCRIPTION := Not in retail games; nearclipping added to F3DZEX_NoN_2.08J
|
||||
ID_STR := RSP Gfx ucode F3DZEX.NoN fifo 2.08J Yoshitaka Yasumoto/Kawasedo 1999.
|
||||
OPTIONS := \
|
||||
CFG_G_BRANCH_W \
|
||||
CFG_POINT_LIGHTING
|
||||
$(eval $(call ucode_rule))
|
||||
|
||||
NAME := F3DZEX_NoN_2.08J
|
||||
DESCRIPTION := Animal Forest
|
||||
ID_STR := RSP Gfx ucode F3DZEX.NoN fifo 2.08J Yoshitaka Yasumoto/Kawasedo 1999.
|
||||
MD5_CODE := a7f45433a67950cdd239ee40f1dd36c1
|
||||
MD5_DATA := f17544afa0dce84d589ec3d8c38254c7
|
||||
OPTIONS := \
|
||||
CFG_G_BRANCH_W \
|
||||
CFG_NoN \
|
||||
CFG_POINT_LIGHTING
|
||||
$(eval $(call ucode_rule))
|
||||
Reference in New Issue
Block a user