Latest compatible version of Classicube from the original GitHub repository (https://github.com/ClassiCube/ClassiCube) that can be compiled on Classicube for PowerMac PPC running Mac OS X 10.4.
This commit is contained in:
170
misc/wiiu/Makefile
Normal file
170
misc/wiiu/Makefile
Normal file
@@ -0,0 +1,170 @@
|
||||
#-------------------------------------------------------------------------------
|
||||
.SUFFIXES:
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
ifeq ($(strip $(DEVKITPRO)),)
|
||||
$(error "Please set DEVKITPRO in your environment. export DEVKITPRO=<path to>/devkitpro")
|
||||
endif
|
||||
|
||||
TOPDIR ?= $(CURDIR)
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# APP_NAME sets the long name of the application
|
||||
# APP_SHORTNAME sets the short name of the application
|
||||
# APP_AUTHOR sets the author of the application
|
||||
#-------------------------------------------------------------------------------
|
||||
APP_NAME := ClassiCube
|
||||
APP_SHORTNAME := ClassiCube
|
||||
APP_AUTHOR := ClassiCube team
|
||||
|
||||
include $(DEVKITPRO)/wut/share/wut_rules
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# TARGET is the name of the output
|
||||
# BUILD is the directory where object files & intermediate files will be placed
|
||||
# SOURCES is a list of directories containing source code
|
||||
# DATA is a list of directories containing data files
|
||||
# INCLUDES is a list of directories containing header files
|
||||
# CONTENT is the path to the bundled folder that will be mounted as /vol/content/
|
||||
# ICON is the game icon, leave blank to use default rule
|
||||
# TV_SPLASH is the image displayed during bootup on the TV, leave blank to use default rule
|
||||
# DRC_SPLASH is the image displayed during bootup on the DRC, leave blank to use default rule
|
||||
#-------------------------------------------------------------------------------
|
||||
TARGET := ClassiCube-wiiu
|
||||
BUILD := build-wiiu
|
||||
SOURCES := src third_party/bearssl/src
|
||||
SHADERS := misc/wiiu
|
||||
DATA := data
|
||||
INCLUDES := third_party/bearssl/inc
|
||||
CONTENT :=
|
||||
ICON :=
|
||||
TV_SPLASH :=
|
||||
DRC_SPLASH :=
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# options for code generation
|
||||
#-------------------------------------------------------------------------------
|
||||
CFLAGS := -g -Wall -O2 -ffunction-sections -fno-math-errno \
|
||||
$(MACHDEP)
|
||||
|
||||
CFLAGS += $(INCLUDE) -D__WIIU__ -D__WUT__
|
||||
|
||||
CXXFLAGS := $(CFLAGS)
|
||||
|
||||
ASFLAGS := -g $(ARCH)
|
||||
LDFLAGS = -g $(ARCH) $(RPXSPECS) -Wl,-Map,$(notdir $*.map)
|
||||
|
||||
LIBS := -lwut -lm
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# list of directories containing libraries, this must be the top level
|
||||
# containing include and lib
|
||||
#-------------------------------------------------------------------------------
|
||||
LIBDIRS := $(PORTLIBS) $(WUT_ROOT)
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# no real need to edit anything past this point unless you need to add additional
|
||||
# rules for different file extensions
|
||||
#-------------------------------------------------------------------------------
|
||||
ifneq ($(BUILD),$(notdir $(CURDIR)))
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
export OUTPUT := $(CURDIR)/$(TARGET)
|
||||
export TOPDIR := $(CURDIR)
|
||||
|
||||
export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir)) \
|
||||
$(foreach dir,$(DATA),$(CURDIR)/$(dir))
|
||||
|
||||
export DEPSDIR := $(CURDIR)/$(BUILD)
|
||||
|
||||
CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c)))
|
||||
CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp)))
|
||||
SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s)))
|
||||
BINFILES := $(foreach dir,$(SHADERS),$(notdir $(wildcard $(dir)/*.gsh)))
|
||||
|
||||
export LD := $(CC)
|
||||
|
||||
export OFILES_BIN := $(addsuffix .o,$(BINFILES))
|
||||
export OFILES_SRC := $(CPPFILES:.cpp=.o) $(CFILES:.c=.o) $(SFILES:.s=.o)
|
||||
export OFILES := $(OFILES_BIN) $(OFILES_SRC)
|
||||
|
||||
export INCLUDE := $(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) \
|
||||
$(foreach dir,$(LIBDIRS),-I$(dir)/include) \
|
||||
-I$(CURDIR)/$(BUILD)
|
||||
|
||||
export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib)
|
||||
|
||||
ifneq (,$(strip $(CONTENT)))
|
||||
export APP_CONTENT := $(TOPDIR)/$(CONTENT)
|
||||
endif
|
||||
|
||||
ifneq (,$(strip $(ICON)))
|
||||
export APP_ICON := $(TOPDIR)/$(ICON)
|
||||
else ifneq (,$(wildcard $(TOPDIR)/$(TARGET).png))
|
||||
export APP_ICON := $(TOPDIR)/$(TARGET).png
|
||||
else ifneq (,$(wildcard $(TOPDIR)/icon.png))
|
||||
export APP_ICON := $(TOPDIR)/icon.png
|
||||
endif
|
||||
|
||||
ifneq (,$(strip $(TV_SPLASH)))
|
||||
export APP_TV_SPLASH := $(TOPDIR)/$(TV_SPLASH)
|
||||
else ifneq (,$(wildcard $(TOPDIR)/tv-splash.png))
|
||||
export APP_TV_SPLASH := $(TOPDIR)/tv-splash.png
|
||||
else ifneq (,$(wildcard $(TOPDIR)/splash.png))
|
||||
export APP_TV_SPLASH := $(TOPDIR)/splash.png
|
||||
endif
|
||||
|
||||
ifneq (,$(strip $(DRC_SPLASH)))
|
||||
export APP_DRC_SPLASH := $(TOPDIR)/$(DRC_SPLASH)
|
||||
else ifneq (,$(wildcard $(TOPDIR)/drc-splash.png))
|
||||
export APP_DRC_SPLASH := $(TOPDIR)/drc-splash.png
|
||||
else ifneq (,$(wildcard $(TOPDIR)/splash.png))
|
||||
export APP_DRC_SPLASH := $(TOPDIR)/splash.png
|
||||
endif
|
||||
|
||||
.PHONY: $(BUILD) clean all
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
all: $(BUILD)
|
||||
|
||||
$(BUILD):
|
||||
@[ -d $@ ] || mkdir -p $@
|
||||
@$(MAKE) --no-print-directory -C $(BUILD) -f $(CURDIR)/misc/wiiu/Makefile
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
clean:
|
||||
@echo clean ...
|
||||
@rm -fr $(BUILD) $(TARGET).wuhb $(TARGET).rpx $(TARGET).elf
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
else
|
||||
.PHONY: all
|
||||
|
||||
DEPENDS := $(OFILES:.o=.d)
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# main targets
|
||||
#-------------------------------------------------------------------------------
|
||||
all : $(OUTPUT).wuhb
|
||||
|
||||
$(OUTPUT).wuhb : $(OUTPUT).rpx
|
||||
$(OUTPUT).rpx : $(OUTPUT).elf
|
||||
$(OUTPUT).elf : $(OFILES)
|
||||
|
||||
# you need a rule like this for each extension you use as binary data
|
||||
#-------------------------------------------------------------------------------
|
||||
%.bin.o %_bin.h : %.bin
|
||||
#-------------------------------------------------------------------------------
|
||||
@echo $(notdir $<)
|
||||
@$(bin2o)
|
||||
#-------------------------------------------------------------------------------
|
||||
%.gsh.o %_gsh.h : ../misc/wiiu/%.gsh
|
||||
#-------------------------------------------------------------------------------
|
||||
echo $(notdir $<)
|
||||
$(bin2o)
|
||||
|
||||
-include $(DEPENDS)
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
endif
|
||||
#-------------------------------------------------------------------------------
|
||||
17
misc/wiiu/assembler.sh
Normal file
17
misc/wiiu/assembler.sh
Normal file
@@ -0,0 +1,17 @@
|
||||
ASSEMBLER=/home/minty/emulators/decaf-emu-ubuntu-20.04/bin/latte-assembler
|
||||
|
||||
assemble()
|
||||
{
|
||||
echo "Assembling $1 from VS $2 + PS $3"
|
||||
$ASSEMBLER assemble $1 --vsh $2 --psh $3
|
||||
}
|
||||
|
||||
assemble coloured_none.gsh vs_coloured.vsh ps_coloured_none.psh
|
||||
|
||||
assemble textured_none.gsh vs_textured.vsh ps_textured_none.psh
|
||||
assemble textured_lin.gsh vs_textured.vsh ps_textured_lin.psh
|
||||
assemble textured_exp.gsh vs_textured.vsh ps_textured_exp.psh
|
||||
|
||||
assemble offset_none.gsh vs_offset.vsh ps_textured_none.psh
|
||||
assemble offset_lin.gsh vs_offset.vsh ps_textured_lin.psh
|
||||
assemble offset_exp.gsh vs_offset.vsh ps_textured_exp.psh
|
||||
BIN
misc/wiiu/coloured_none.gsh
Normal file
BIN
misc/wiiu/coloured_none.gsh
Normal file
Binary file not shown.
BIN
misc/wiiu/offset_exp.gsh
Normal file
BIN
misc/wiiu/offset_exp.gsh
Normal file
Binary file not shown.
BIN
misc/wiiu/offset_lin.gsh
Normal file
BIN
misc/wiiu/offset_lin.gsh
Normal file
Binary file not shown.
BIN
misc/wiiu/offset_none.gsh
Normal file
BIN
misc/wiiu/offset_none.gsh
Normal file
Binary file not shown.
6
misc/wiiu/ps_coloured_none.glsl
Normal file
6
misc/wiiu/ps_coloured_none.glsl
Normal file
@@ -0,0 +1,6 @@
|
||||
varying vec4 out_col;
|
||||
|
||||
void main() {
|
||||
vec4 col = out_col;
|
||||
gl_FragColor = col;
|
||||
}
|
||||
8
misc/wiiu/ps_coloured_none.psh
Normal file
8
misc/wiiu/ps_coloured_none.psh
Normal file
@@ -0,0 +1,8 @@
|
||||
; $NUM_SPI_PS_INPUT_CNTL = 1
|
||||
; $SPI_PS_INPUT_CNTL[0].SEMANTIC = 0
|
||||
; $SPI_PS_INPUT_CNTL[0].DEFAULT_VAL = 1
|
||||
; $SQ_PGM_RESOURCES_PS.STACK_SIZE = 0
|
||||
|
||||
; -------- Disassembly --------------------
|
||||
00 EXP_DONE: PIX0, R0
|
||||
END_OF_PROGRAM
|
||||
13
misc/wiiu/ps_textured_exp.glsl
Normal file
13
misc/wiiu/ps_textured_exp.glsl
Normal file
@@ -0,0 +1,13 @@
|
||||
varying vec4 out_col;
|
||||
varying vec2 out_uv;
|
||||
uniform sampler2D texImage;
|
||||
uniform vec3 fogCol;
|
||||
uniform float fogDensity;
|
||||
|
||||
void main() {
|
||||
vec4 col = texture(texImage, out_uv) * out_col;
|
||||
float depth = 1.0 / gl_FragCoord.w;
|
||||
float f = clamp(exp2(fogDensity * depth), 0.0, 1.0);
|
||||
col.rgb = mix(fogCol, col.rgb, f);
|
||||
gl_FragColor = col;
|
||||
}
|
||||
50
misc/wiiu/ps_textured_exp.psh
Normal file
50
misc/wiiu/ps_textured_exp.psh
Normal file
@@ -0,0 +1,50 @@
|
||||
; $MODE = "UniformRegister"
|
||||
; $SAMPLER_VARS[0].name= "texImage"
|
||||
; $SAMPLER_VARS[0].type= "sampler2D"
|
||||
; $SAMPLER_VARS[0].location = 0
|
||||
|
||||
; Set position field enabled
|
||||
; https://github.com/DirectFB/mesa/blob/01e637114914453451becc0dc8afe60faff48d84/src/gallium/drivers/r600/r600_state.c#L2925
|
||||
; $SPI_PS_IN_CONTROL_0.POSITION_ENA = true
|
||||
; $SPI_PS_IN_CONTROL_0.POSITION_ADDR = 2
|
||||
|
||||
; $NUM_SPI_PS_INPUT_CNTL = 3
|
||||
; $SPI_PS_INPUT_CNTL[0].semantic = 0
|
||||
; $SPI_PS_INPUT_CNTL[0].default_val = 1
|
||||
; $SPI_PS_INPUT_CNTL[1].semantic = 1
|
||||
; $SPI_PS_INPUT_CNTL[1].default_val = 1
|
||||
; $SPI_PS_INPUT_CNTL[2].semantic = 2
|
||||
; $SPI_PS_INPUT_CNTL[2].default_val = 1
|
||||
|
||||
; C0
|
||||
; $UNIFORM_VARS[0].name = "fogColor"
|
||||
; $UNIFORM_VARS[0].type = "vec4"
|
||||
; $UNIFORM_VARS[0].count = 1
|
||||
; $UNIFORM_VARS[0].block = -1
|
||||
; $UNIFORM_VARS[0].offset = 0
|
||||
; C1
|
||||
; $UNIFORM_VARS[1].name = "fogValue"
|
||||
; $UNIFORM_VARS[1].type = "vec2"
|
||||
; $UNIFORM_VARS[1].count = 1
|
||||
; $UNIFORM_VARS[1].block = -1
|
||||
; $UNIFORM_VARS[1].offset = 4
|
||||
|
||||
; -------- Disassembly --------------------
|
||||
00 TEX: ADDR(48) CNT(1) VALID_PIX
|
||||
0 SAMPLE R1, R1.xy0x, t0, s0
|
||||
01 ALU: ADDR(32) CNT(13)
|
||||
1 x: MUL ____, R0.x, R1.x
|
||||
y: MUL ____, R0.z, R1.z
|
||||
z: MUL ____, R0.y, R1.y
|
||||
w: MUL R0.w, R0.w, R1.w
|
||||
t: RECIP_IEEE ____, R2.W
|
||||
2 x: ADD R1.x, PV1.z, -C0.y
|
||||
y: ADD R1.y, PV1.x, -C0.x
|
||||
z: ADD R1.z, PV1.y, -C0.z
|
||||
w: MUL ____, PS1, C1.x
|
||||
3 t: EXP_e ____, PV2.w CLAMP
|
||||
4 x: MULADD R0.x, R1.y, PS3, C0.x
|
||||
y: MULADD R0.y, R1.x, PS3, C0.y
|
||||
z: MULADD R0.z, R1.z, PS3, C0.z
|
||||
02 EXP_DONE: PIX0, R0
|
||||
END_OF_PROGRAM
|
||||
14
misc/wiiu/ps_textured_lin.glsl
Normal file
14
misc/wiiu/ps_textured_lin.glsl
Normal file
@@ -0,0 +1,14 @@
|
||||
varying vec4 out_col;
|
||||
varying vec2 out_uv;
|
||||
|
||||
uniform sampler2D texImage;
|
||||
uniform vec3 fogCol;
|
||||
uniform float fogEnd;
|
||||
|
||||
void main() {
|
||||
vec4 col = texture(texImage, out_uv) * out_col;
|
||||
float depth = 1.0 / gl_FragCoord.w;
|
||||
float f = clamp(1.0 - fogEnd * depth, 0.0, 1.0);
|
||||
col.rgb = mix(fogCol, col.rgb, f);
|
||||
gl_FragColor = col;
|
||||
}
|
||||
50
misc/wiiu/ps_textured_lin.psh
Normal file
50
misc/wiiu/ps_textured_lin.psh
Normal file
@@ -0,0 +1,50 @@
|
||||
; $MODE = "UniformRegister"
|
||||
; $SAMPLER_VARS[0].name= "texImage"
|
||||
; $SAMPLER_VARS[0].type= "sampler2D"
|
||||
; $SAMPLER_VARS[0].location = 0
|
||||
|
||||
; Set position field enabled
|
||||
; https://github.com/DirectFB/mesa/blob/01e637114914453451becc0dc8afe60faff48d84/src/gallium/drivers/r600/r600_state.c#L2925
|
||||
; $SPI_PS_IN_CONTROL_0.POSITION_ENA = true
|
||||
; $SPI_PS_IN_CONTROL_0.POSITION_ADDR = 2
|
||||
|
||||
; $NUM_SPI_PS_INPUT_CNTL = 3
|
||||
; $SPI_PS_INPUT_CNTL[0].semantic = 0
|
||||
; $SPI_PS_INPUT_CNTL[0].default_val = 1
|
||||
; $SPI_PS_INPUT_CNTL[1].semantic = 1
|
||||
; $SPI_PS_INPUT_CNTL[1].default_val = 1
|
||||
; $SPI_PS_INPUT_CNTL[2].semantic = 2
|
||||
; $SPI_PS_INPUT_CNTL[2].default_val = 1
|
||||
|
||||
; C0
|
||||
; $UNIFORM_VARS[0].name = "fogColor"
|
||||
; $UNIFORM_VARS[0].type = "vec4"
|
||||
; $UNIFORM_VARS[0].count = 1
|
||||
; $UNIFORM_VARS[0].block = -1
|
||||
; $UNIFORM_VARS[0].offset = 0
|
||||
; C1
|
||||
; $UNIFORM_VARS[1].name = "fogValue"
|
||||
; $UNIFORM_VARS[1].type = "vec2"
|
||||
; $UNIFORM_VARS[1].count = 1
|
||||
; $UNIFORM_VARS[1].block = -1
|
||||
; $UNIFORM_VARS[1].offset = 4
|
||||
|
||||
; -------- Disassembly --------------------
|
||||
00 TEX: ADDR(48) CNT(1) VALID_PIX
|
||||
0 SAMPLE R1, R1.xy0x, t0, s0
|
||||
01 ALU: ADDR(32) CNT(13)
|
||||
1 x: MUL ____, R0.x, R1.x
|
||||
y: MUL ____, R0.z, R1.z
|
||||
z: MUL ____, R0.y, R1.y
|
||||
w: MUL R0.w, R0.w, R1.w
|
||||
t: RECIP_IEEE ____, R2.W
|
||||
2 x: ADD R1.x, PV1.z, -C0.y
|
||||
y: ADD R1.y, PV1.x, -C0.x
|
||||
z: ADD R1.z, PV1.y, -C0.z
|
||||
w: MULADD R3.w, -PS1, C1.y, 1.0f CLAMP
|
||||
3 x: MULADD R0.x, R1.y, PV2.w, C0.x
|
||||
y: MULADD R0.y, R1.x, PV2.w, C0.y
|
||||
z: MULADD R0.z, R1.z, PV2.w, C0.z
|
||||
02 EXP_DONE: PIX0, R0
|
||||
END_OF_PROGRAM
|
||||
|
||||
9
misc/wiiu/ps_textured_none.glsl
Normal file
9
misc/wiiu/ps_textured_none.glsl
Normal file
@@ -0,0 +1,9 @@
|
||||
varying vec4 out_col;
|
||||
varying vec2 out_uv;
|
||||
uniform sampler2D texImage;
|
||||
|
||||
void main() {
|
||||
vec4 col = texture(texImage, out_uv) * out_col;
|
||||
gl_FragColor = col;
|
||||
}
|
||||
|
||||
21
misc/wiiu/ps_textured_none.psh
Normal file
21
misc/wiiu/ps_textured_none.psh
Normal file
@@ -0,0 +1,21 @@
|
||||
; $MODE = "UniformRegister"
|
||||
; $SAMPLER_VARS[0].name= "texImage"
|
||||
; $SAMPLER_VARS[0].type= "sampler2D"
|
||||
; $SAMPLER_VARS[0].location = 0
|
||||
|
||||
; $NUM_SPI_PS_INPUT_CNTL = 2
|
||||
; $SPI_PS_INPUT_CNTL[0].semantic = 0
|
||||
; $SPI_PS_INPUT_CNTL[0].default_val = 1
|
||||
; $SPI_PS_INPUT_CNTL[1].semantic = 1
|
||||
; $SPI_PS_INPUT_CNTL[1].default_val = 1
|
||||
|
||||
; -------- Disassembly --------------------
|
||||
00 TEX: ADDR(48) CNT(1) VALID_PIX
|
||||
0 SAMPLE R1, R1.xy0x, t0, s0
|
||||
01 ALU: ADDR(32) CNT(4)
|
||||
1 x: MUL R0.x, R0.x, R1.x
|
||||
y: MUL R0.y, R0.y, R1.y
|
||||
z: MUL R0.z, R0.z, R1.z
|
||||
w: MUL R0.w, R0.w, R1.w
|
||||
02 EXP_DONE: PIX0, R0
|
||||
END_OF_PROGRAM
|
||||
18
misc/wiiu/shaders.txt
Normal file
18
misc/wiiu/shaders.txt
Normal file
@@ -0,0 +1,18 @@
|
||||
Shader samples
|
||||
https://github.com/decaf-emu/wiiu-tests/blob/master/content/shaders/pos_colour.vsh
|
||||
https://github.com/GaryOderNichts/wiiu-shaders/blob/master/shaders.md
|
||||
https://github.com/luRaichu/recsbr/blob/163fa441712f6b25e780e914617941c2385b330e/src/Backends/Rendering/WiiUShaders/shader%20sources/plain.vsh#L6
|
||||
https://github.com/GaryOderNichts/MultiDRCSpaceDemo/blob/30a6337a47dabafd6d601ce0555b326866f63247/shaders/textureShader.vsh#L6
|
||||
https://github.com/luRaichu/recsbr/blob/163fa441712f6b25e780e914617941c2385b330e/src/Backends/Rendering/WiiUShaders/shader%20sources/texture.vsh#L9
|
||||
https://github.com/rw-r-r-0644/gx2-texture/blob/83d7707e8d4b33ec7ba63d5c7dfe62c359b2b50a/shaders/texture_shader.vsh#L9
|
||||
https://github.com/yawut/ntrview-wiiu/blob/45b1c7f05cfd9917b8b171f3db08dc63293fc5c5/gfx/gx2_shaders/main.psh
|
||||
https://github.com/Hydr8gon/NooDS/blob/b41cb3b9b889481c998e7e83db1ab3ef9d97b838/src/console/shaders/shader_wiiu.vsh
|
||||
https://github.com/luRaichu/recsbr/blob/163fa441712f6b25e780e914617941c2385b330e/src/Backends/Rendering/WiiUShaders/shader%20sources/wtf%20is%20this.txt
|
||||
https://github.com/comex/quiet_/blob/4b55e8c9585e336ad3e09628d951a4d7321e70f7/qmod/shader2.psh#L4
|
||||
|
||||
To generate shader assembly
|
||||
1) Get AMD ShaderAnalyzer
|
||||
2) Select Radeon HD 4670 (RV370) Assembly as the output format
|
||||
|
||||
Then run assembler.sh to assemble all files
|
||||
|
||||
BIN
misc/wiiu/textured_exp.gsh
Normal file
BIN
misc/wiiu/textured_exp.gsh
Normal file
Binary file not shown.
BIN
misc/wiiu/textured_lin.gsh
Normal file
BIN
misc/wiiu/textured_lin.gsh
Normal file
Binary file not shown.
BIN
misc/wiiu/textured_none.gsh
Normal file
BIN
misc/wiiu/textured_none.gsh
Normal file
Binary file not shown.
9
misc/wiiu/vs_coloured.glsl
Normal file
9
misc/wiiu/vs_coloured.glsl
Normal file
@@ -0,0 +1,9 @@
|
||||
attribute vec3 in_pos;
|
||||
attribute vec4 in_col;
|
||||
varying vec4 out_col;
|
||||
uniform mat4 mvp;
|
||||
|
||||
void main() {
|
||||
gl_Position = mvp * vec4(in_pos, 1.0);
|
||||
out_col = in_col;
|
||||
}
|
||||
42
misc/wiiu/vs_coloured.vsh
Normal file
42
misc/wiiu/vs_coloured.vsh
Normal file
@@ -0,0 +1,42 @@
|
||||
; $MODE = "UniformRegister"
|
||||
|
||||
; $SPI_VS_OUT_CONFIG.VS_EXPORT_COUNT = 0
|
||||
; $NUM_SPI_VS_OUT_ID = 1
|
||||
; out_colour
|
||||
; $SPI_VS_OUT_ID[0].SEMANTIC_0 = 0
|
||||
|
||||
; C0
|
||||
; $UNIFORM_VARS[0].name = "mvp"
|
||||
; $UNIFORM_VARS[0].type = "mat4"
|
||||
; $UNIFORM_VARS[0].count = 1
|
||||
; $UNIFORM_VARS[0].block = -1
|
||||
; $UNIFORM_VARS[0].offset = 0
|
||||
|
||||
; R1
|
||||
; $ATTRIB_VARS[0].name = "in_pos"
|
||||
; $ATTRIB_VARS[0].type = "vec3"
|
||||
; $ATTRIB_VARS[0].location = 0
|
||||
; R2
|
||||
; $ATTRIB_VARS[1].name = "in_col"
|
||||
; $ATTRIB_VARS[1].type = "vec4"
|
||||
; $ATTRIB_VARS[1].location = 1
|
||||
|
||||
; -------- Disassembly --------------------
|
||||
00 CALL_FS NO_BARRIER
|
||||
01 ALU: ADDR(32) CNT(12)
|
||||
0 x: MULADD R4.x, R1.z, C2.x, C3.x
|
||||
y: MULADD R4.y, R1.z, C2.y, C3.y
|
||||
z: MULADD R4.z, R1.z, C2.z, C3.z
|
||||
w: MULADD R4.w, R1.z, C2.w, C3.w
|
||||
1 x: MULADD R4.x, R1.y, C1.x, PV0.x
|
||||
y: MULADD R4.y, R1.y, C1.y, PV0.y
|
||||
z: MULADD R4.z, R1.y, C1.z, PV0.z
|
||||
w: MULADD R4.w, R1.y, C1.w, PV0.w
|
||||
2 x: MULADD R1.x, R1.x, C0.x, PV1.x
|
||||
y: MULADD R1.y, R1.x, C0.y, PV1.y
|
||||
z: MULADD R1.z, R1.x, C0.z, PV1.z
|
||||
w: MULADD R1.w, R1.x, C0.w, PV1.w
|
||||
02 EXP_DONE: POS0, R1
|
||||
03 EXP_DONE: PARAM0, R2 NO_BARRIER
|
||||
END_OF_PROGRAM
|
||||
|
||||
13
misc/wiiu/vs_offset.glsl
Normal file
13
misc/wiiu/vs_offset.glsl
Normal file
@@ -0,0 +1,13 @@
|
||||
attribute vec3 in_pos;
|
||||
attribute vec4 in_col;
|
||||
attribute vec2 in_uv;
|
||||
varying vec4 out_col;
|
||||
varying vec2 out_uv;
|
||||
uniform mat4 mvp;
|
||||
uniform vec2 texOffset;
|
||||
|
||||
void main() {
|
||||
gl_Position = mvp * vec4(in_pos, 1.0);
|
||||
out_col = in_col;
|
||||
out_uv = in_uv + texOffset;
|
||||
}
|
||||
57
misc/wiiu/vs_offset.vsh
Normal file
57
misc/wiiu/vs_offset.vsh
Normal file
@@ -0,0 +1,57 @@
|
||||
; $MODE = "UniformRegister"
|
||||
|
||||
; $SPI_VS_OUT_CONFIG.VS_EXPORT_COUNT = 1
|
||||
; $NUM_SPI_VS_OUT_ID = 1
|
||||
; out_colour
|
||||
; $SPI_VS_OUT_ID[0].SEMANTIC_0 = 0
|
||||
; out_uv
|
||||
; $SPI_VS_OUT_ID[0].SEMANTIC_1 = 1
|
||||
|
||||
; C0
|
||||
; $UNIFORM_VARS[0].name = "mvp"
|
||||
; $UNIFORM_VARS[0].type = "mat4"
|
||||
; $UNIFORM_VARS[0].count = 1
|
||||
; $UNIFORM_VARS[0].block = -1
|
||||
; $UNIFORM_VARS[0].offset = 0
|
||||
; C4
|
||||
; $UNIFORM_VARS[1].name = "texOffset"
|
||||
; $UNIFORM_VARS[1].type = "vec2"
|
||||
; $UNIFORM_VARS[1].count = 1
|
||||
; $UNIFORM_VARS[1].block = -1
|
||||
; $UNIFORM_VARS[1].offset = 16
|
||||
|
||||
; R1
|
||||
; $ATTRIB_VARS[0].name = "in_pos"
|
||||
; $ATTRIB_VARS[0].type = "vec3"
|
||||
; $ATTRIB_VARS[0].location = 0
|
||||
; R2
|
||||
; $ATTRIB_VARS[1].name = "in_col"
|
||||
; $ATTRIB_VARS[1].type = "vec4"
|
||||
; $ATTRIB_VARS[1].location = 1
|
||||
; R3
|
||||
; $ATTRIB_VARS[2].name = "in_uv"
|
||||
; $ATTRIB_VARS[2].type = "vec2"
|
||||
; $ATTRIB_VARS[2].location = 2
|
||||
|
||||
; -------- Disassembly --------------------
|
||||
00 CALL_FS NO_BARRIER
|
||||
01 ALU: ADDR(32) CNT(14)
|
||||
0 x: MULADD R4.x, R1.z, C2.x, C3.x
|
||||
y: MULADD R4.y, R1.z, C2.y, C3.y
|
||||
z: MULADD R4.z, R1.z, C2.z, C3.z
|
||||
w: MULADD R4.w, R1.z, C2.w, C3.w
|
||||
1 x: MULADD R4.x, R1.y, C1.x, PV0.x
|
||||
y: MULADD R4.y, R1.y, C1.y, PV0.y
|
||||
z: MULADD R4.z, R1.y, C1.z, PV0.z
|
||||
w: MULADD R4.w, R1.y, C1.w, PV0.w
|
||||
2 x: MULADD R1.x, R1.x, C0.x, PV1.x
|
||||
y: MULADD R1.y, R1.x, C0.y, PV1.y
|
||||
z: MULADD R1.z, R1.x, C0.z, PV1.z
|
||||
w: MULADD R1.w, R1.x, C0.w, PV1.w
|
||||
3 x: ADD R3.x, R3.x, C4.x
|
||||
y: ADD R3.y, R3.y, C4.y
|
||||
02 EXP_DONE: POS0, R1
|
||||
03 EXP: PARAM0, R2 NO_BARRIER
|
||||
04 EXP_DONE: PARAM1, R3.xyzz NO_BARRIER
|
||||
END_OF_PROGRAM
|
||||
|
||||
12
misc/wiiu/vs_textured.glsl
Normal file
12
misc/wiiu/vs_textured.glsl
Normal file
@@ -0,0 +1,12 @@
|
||||
attribute vec3 in_pos;
|
||||
attribute vec4 in_col;
|
||||
attribute vec2 in_uv;
|
||||
varying vec4 out_col;
|
||||
varying vec2 out_uv;
|
||||
uniform mat4 mvp;
|
||||
|
||||
void main() {
|
||||
gl_Position = mvp * vec4(in_pos, 1.0);
|
||||
out_col = in_col;
|
||||
out_uv = in_uv;
|
||||
}
|
||||
49
misc/wiiu/vs_textured.vsh
Normal file
49
misc/wiiu/vs_textured.vsh
Normal file
@@ -0,0 +1,49 @@
|
||||
; $MODE = "UniformRegister"
|
||||
|
||||
; $SPI_VS_OUT_CONFIG.VS_EXPORT_COUNT = 1
|
||||
; $NUM_SPI_VS_OUT_ID = 1
|
||||
; out_colour
|
||||
; $SPI_VS_OUT_ID[0].SEMANTIC_0 = 0
|
||||
; out_uv
|
||||
; $SPI_VS_OUT_ID[0].SEMANTIC_1 = 1
|
||||
|
||||
; C0
|
||||
; $UNIFORM_VARS[0].name = "mvp"
|
||||
; $UNIFORM_VARS[0].type = "mat4"
|
||||
; $UNIFORM_VARS[0].count = 1
|
||||
; $UNIFORM_VARS[0].block = -1
|
||||
; $UNIFORM_VARS[0].offset = 0
|
||||
|
||||
; R1
|
||||
; $ATTRIB_VARS[0].name = "in_pos"
|
||||
; $ATTRIB_VARS[0].type = "vec3"
|
||||
; $ATTRIB_VARS[0].location = 0
|
||||
; R2
|
||||
; $ATTRIB_VARS[1].name = "in_col"
|
||||
; $ATTRIB_VARS[1].type = "vec4"
|
||||
; $ATTRIB_VARS[1].location = 1
|
||||
; R3
|
||||
; $ATTRIB_VARS[2].name = "in_uv"
|
||||
; $ATTRIB_VARS[2].type = "vec2"
|
||||
; $ATTRIB_VARS[2].location = 2
|
||||
|
||||
; -------- Disassembly --------------------
|
||||
00 CALL_FS NO_BARRIER
|
||||
01 ALU: ADDR(32) CNT(12)
|
||||
0 x: MULADD R4.x, R1.z, C2.x, C3.x
|
||||
y: MULADD R4.y, R1.z, C2.y, C3.y
|
||||
z: MULADD R4.z, R1.z, C2.z, C3.z
|
||||
w: MULADD R4.w, R1.z, C2.w, C3.w
|
||||
1 x: MULADD R4.x, R1.y, C1.x, PV0.x
|
||||
y: MULADD R4.y, R1.y, C1.y, PV0.y
|
||||
z: MULADD R4.z, R1.y, C1.z, PV0.z
|
||||
w: MULADD R4.w, R1.y, C1.w, PV0.w
|
||||
2 x: MULADD R1.x, R1.x, C0.x, PV1.x
|
||||
y: MULADD R1.y, R1.x, C0.y, PV1.y
|
||||
z: MULADD R1.z, R1.x, C0.z, PV1.z
|
||||
w: MULADD R1.w, R1.x, C0.w, PV1.w
|
||||
02 EXP_DONE: POS0, R1
|
||||
03 EXP: PARAM0, R2 NO_BARRIER
|
||||
04 EXP_DONE: PARAM1, R3.xyzz NO_BARRIER
|
||||
END_OF_PROGRAM
|
||||
|
||||
Reference in New Issue
Block a user