summary refs log tree commit diff
path: root/misc/vita
diff options
context:
space:
mode:
Diffstat (limited to 'misc/vita')
-rw-r--r--misc/vita/Makefile48
-rw-r--r--misc/vita/colored_alpha_f.cg9
-rw-r--r--misc/vita/colored_alpha_f.gxpbin0 -> 304 bytes
-rw-r--r--misc/vita/colored_alpha_f.h21
-rw-r--r--misc/vita/colored_f.cg7
-rw-r--r--misc/vita/colored_f.gxpbin0 -> 212 bytes
-rw-r--r--misc/vita/colored_f.h16
-rw-r--r--misc/vita/colored_v.cg10
-rw-r--r--misc/vita/colored_v.gxpbin0 -> 320 bytes
-rw-r--r--misc/vita/colored_v.h22
-rw-r--r--misc/vita/gxp_to_c.c60
-rw-r--r--misc/vita/readme.txt9
-rw-r--r--misc/vita/sce_sys/ICON0.pngbin0 -> 2319 bytes
-rw-r--r--misc/vita/textured_alpha_f.cg12
-rw-r--r--misc/vita/textured_alpha_f.gxpbin0 -> 372 bytes
-rw-r--r--misc/vita/textured_alpha_f.h26
-rw-r--r--misc/vita/textured_f.cg9
-rw-r--r--misc/vita/textured_f.gxpbin0 -> 288 bytes
-rw-r--r--misc/vita/textured_f.h20
-rw-r--r--misc/vita/textured_v.cg13
-rw-r--r--misc/vita/textured_v.gxpbin0 -> 348 bytes
-rw-r--r--misc/vita/textured_v.h24
22 files changed, 306 insertions, 0 deletions
diff --git a/misc/vita/Makefile b/misc/vita/Makefile
new file mode 100644
index 0000000..702723f
--- /dev/null
+++ b/misc/vita/Makefile
@@ -0,0 +1,48 @@
+PROJECT_TITLE 	:= ClassiCube
+PROJECT_TITLEID := CUBE00200
+TARGET 			:= ClassiCube-vita
+
+BUILD_DIR		:= build-vita
+SOURCE_DIRS		:= src third_party/bearssl/src
+
+CFLAGS += -Wl,-q -Ithird_party/bearssl/inc -O1
+C_FILES := $(foreach dir,$(SOURCE_DIRS),$(wildcard $(dir)/*.c))
+OBJS 	:= $(addprefix $(BUILD_DIR)/, $(notdir $(C_FILES:%.c=%.o)))
+
+LIBS += -lm -lSceDisplay_stub -lSceCtrl_stub -lSceTouch_stub -lSceGxm_stub -lSceCommonDialog_stub
+
+
+#---------------------------------------------------------------------------------
+# main targets
+#---------------------------------------------------------------------------------
+default: $(BUILD_DIR) $(TARGET).vpk
+
+$(BUILD_DIR):
+	mkdir -p $(BUILD_DIR)
+
+$(TARGET).vpk: eboot.bin param.sfo
+	vita-pack-vpk -s param.sfo -b eboot.bin -a misc/vita/sce_sys/ICON0.png=sce_sys/ICON0.png $(TARGET).vpk
+
+eboot.bin: $(TARGET).velf
+	vita-make-fself $(TARGET).velf eboot.bin
+
+param.sfo:
+	vita-mksfoex -s TITLE_ID="$(PROJECT_TITLEID)" "$(PROJECT_TITLE)" param.sfo
+
+$(TARGET).velf: $(TARGET).elf
+	arm-vita-eabi-strip -g $<
+	vita-elf-create $< $@
+
+$(TARGET).elf: $(OBJS)
+	arm-vita-eabi-gcc $(CFLAGS) $^ $(LIBS) -o $@
+
+$(BUILD_DIR)/%.o : src/%.c
+	arm-vita-eabi-gcc -c $(CFLAGS) -o $@ $<
+	
+$(BUILD_DIR)/%.o : third_party/bearssl/src/%.c
+	arm-vita-eabi-gcc -c $(CFLAGS) -o $@ $<
+	
+# TODO: There's gotta be a better way of .o to .c than this
+
+clean:
+	rm $(TARGET).velf $(TARGET).elf $(TARGET).vpk param.sfo eboot.bin $(OBJS)
diff --git a/misc/vita/colored_alpha_f.cg b/misc/vita/colored_alpha_f.cg
new file mode 100644
index 0000000..8bae2c1
--- /dev/null
+++ b/misc/vita/colored_alpha_f.cg
@@ -0,0 +1,9 @@
+float4 main
+(
+	float4 out_color: COLOR
+) : COLOR
+{
+	if (out_color.a < 0.5) discard;
+	
+	return out_color;
+}
\ No newline at end of file
diff --git a/misc/vita/colored_alpha_f.gxp b/misc/vita/colored_alpha_f.gxp
new file mode 100644
index 0000000..00a87e8
--- /dev/null
+++ b/misc/vita/colored_alpha_f.gxp
Binary files differdiff --git a/misc/vita/colored_alpha_f.h b/misc/vita/colored_alpha_f.h
new file mode 100644
index 0000000..25f508d
--- /dev/null
+++ b/misc/vita/colored_alpha_f.h
@@ -0,0 +1,21 @@
+const char colored_alpha_f[304] = {
+	0x47, 0x58, 0x50, 0x00, 0x01, 0x05, 0x00, 0x03, 0x30, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x09, 0x10, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 
+	0x04, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x09, 0x00, 0x00, 0x00, 
+	0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x90, 0x3a, 0x03, 0x00, 
+	0x03, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 
+	0x01, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
+	0x0f, 0xa0, 0xd0, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x44, 0xfa, 
+	0x8c, 0x80, 0x03, 0x90, 0x91, 0xc6, 0x89, 0x48, 0x00, 0x01, 0x00, 0xe0, 0x00, 0x10, 0x81, 0x91, 
+	0x80, 0x00, 0x00, 0xe0, 0x08, 0x00, 0x81, 0x55, 0x01, 0x00, 0x0a, 0x30, 0x85, 0x01, 0x88, 0x48, 
+	0x00, 0x00, 0x00, 0xf0, 0x06, 0x04, 0x30, 0xf9, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x04, 0xf8, 
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x44, 0xfa, 0x02, 0x80, 0x19, 0xa0, 0x7e, 0x0d, 0x80, 0x40, 
+	0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00
+};
\ No newline at end of file
diff --git a/misc/vita/colored_f.cg b/misc/vita/colored_f.cg
new file mode 100644
index 0000000..2d95ff7
--- /dev/null
+++ b/misc/vita/colored_f.cg
@@ -0,0 +1,7 @@
+float4 main
+(
+	float4 out_color : COLOR
+) : COLOR
+{
+	return out_color;
+}
\ No newline at end of file
diff --git a/misc/vita/colored_f.gxp b/misc/vita/colored_f.gxp
new file mode 100644
index 0000000..f626c95
--- /dev/null
+++ b/misc/vita/colored_f.gxp
Binary files differdiff --git a/misc/vita/colored_f.h b/misc/vita/colored_f.h
new file mode 100644
index 0000000..234ce86
--- /dev/null
+++ b/misc/vita/colored_f.h
@@ -0,0 +1,16 @@
+const char colored_f[212] = {
+	0x47, 0x58, 0x50, 0x00, 0x01, 0x05, 0x00, 0x03, 0xd4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 
+	0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 
+	0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x90, 0x3a, 0x03, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
+	0x0f, 0xa0, 0xd0, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x44, 0xfa, 0x02, 0x80, 0x19, 0xa0, 
+	0x7e, 0x0d, 0x80, 0x40
+};
\ No newline at end of file
diff --git a/misc/vita/colored_v.cg b/misc/vita/colored_v.cg
new file mode 100644
index 0000000..dc132a1
--- /dev/null
+++ b/misc/vita/colored_v.cg
@@ -0,0 +1,10 @@
+void main(
+	float3 in_position, 
+	float4 in_color,
+	uniform float4x4 mvp_matrix,
+	out float4 out_position: POSITION, 
+	out float4 out_color: COLOR)
+{
+	out_position = mul(mvp_matrix, float4(in_position, 1.0f));
+	out_color    = in_color;
+}
\ No newline at end of file
diff --git a/misc/vita/colored_v.gxp b/misc/vita/colored_v.gxp
new file mode 100644
index 0000000..113ce7e
--- /dev/null
+++ b/misc/vita/colored_v.gxp
Binary files differdiff --git a/misc/vita/colored_v.h b/misc/vita/colored_v.h
new file mode 100644
index 0000000..9274ed8
--- /dev/null
+++ b/misc/vita/colored_v.h
@@ -0,0 +1,22 @@
+const char colored_v[320] = {
+	0x47, 0x58, 0x50, 0x00, 0x01, 0x05, 0x00, 0x03, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 
+	0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x05, 0x00, 0x00, 0x00, 
+	0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x90, 0x3a, 0x03, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 
+	0x01, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x08, 
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x44, 0xfa, 0x80, 0x00, 0x08, 0x83, 0x21, 0x1d, 0x80, 0x38, 
+	0x02, 0x80, 0x81, 0xaf, 0x9c, 0x0d, 0x80, 0x40, 0x00, 0xa2, 0x3d, 0xc0, 0x81, 0x30, 0x90, 0x18, 
+	0x00, 0x00, 0x20, 0xa0, 0x00, 0x50, 0x27, 0xfb, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 
+	0x30, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+	0x2c, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
+	0x25, 0x00, 0x00, 0x00, 0x01, 0xe4, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+	0x69, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x00, 0x69, 0x6e, 0x5f, 0x63, 
+	0x6f, 0x6c, 0x6f, 0x72, 0x00, 0x6d, 0x76, 0x70, 0x5f, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x00
+};
\ No newline at end of file
diff --git a/misc/vita/gxp_to_c.c b/misc/vita/gxp_to_c.c
new file mode 100644
index 0000000..2fe8422
--- /dev/null
+++ b/misc/vita/gxp_to_c.c
@@ -0,0 +1,60 @@
+#include <dirent.h> 
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+// Inspired by the public domain bin2c https://github.com/gwilymk/bin2c
+// TODO: log errors
+void convert_gxp(const char* src) {
+	char* copy = strdup(src);
+	char* name = strtok(copy, ".");
+	char dst[256];
+	sprintf(dst, "%s.h", name);	
+	printf("  %s --> %s\n", src, dst);
+
+	FILE* file_in  = fopen(src, "r");
+	if (!file_in) return;
+
+	FILE* file_out = fopen(dst, "w");
+	if (!file_out) return;
+	
+	fseek(file_in, 0, SEEK_END);
+	int file_size = ftell(file_in);
+	fseek(file_in, 0, SEEK_SET);
+
+	char* data = malloc(file_size);
+	fread(data, file_size, 1, file_in);
+	fclose(file_in);
+
+	int comma = 0;
+	fprintf(file_out, "const char %s[%i] = {", name, file_size);
+	
+	for (int i = 0; i < file_size; i++)
+	{
+		if (comma) fprintf(file_out, ", ");
+		if ((i % 16) == 0) fprintf(file_out, "\n\t");
+			
+		fprintf(file_out, "0x%.2x", data[i] & 0xFF);
+		comma = 1;
+	}
+	
+	fprintf(file_out, "\n};");
+	fclose(file_out);
+}
+
+int main(void) {
+	struct dirent* e;
+	DIR* d = opendir(".");
+	if (!d) return 0;
+
+	while ((e = readdir(d))) {
+		printf("checking %s\n", e->d_name);
+		
+		if (strstr(e->d_name, ".gxp")) {
+			convert_gxp(e->d_name);
+		}
+	}
+	
+	closedir(d);
+	return 0;
+}
diff --git a/misc/vita/readme.txt b/misc/vita/readme.txt
new file mode 100644
index 0000000..3dd61a5
--- /dev/null
+++ b/misc/vita/readme.txt
@@ -0,0 +1,9 @@
+Shaders on the PS Vita use the proprietary .gxp binary format
+
+To compile CG shaders to .gxp you need to use
+1) Extract libshacccg.suprx - see https://cimmerian.gitbook.io/vita-troubleshooting-guide/shader-compiler/extract-libshacccg.suprx
+2) Use vitaShaRK to compile the CG shader (see sample 3 in https://github.com/Rinnegatamante/vitaShaRK for some reference)
+
+You can then use compiled gxp_to_c to convert all the .gxp shaders into .h files, which src/Graphics_PSVita.c can then include
+
+Note that you only need to perform these steps if you want to compile modified shaders - you don't need libshacccg.suprx to run ClassiCube
\ No newline at end of file
diff --git a/misc/vita/sce_sys/ICON0.png b/misc/vita/sce_sys/ICON0.png
new file mode 100644
index 0000000..190549b
--- /dev/null
+++ b/misc/vita/sce_sys/ICON0.png
Binary files differdiff --git a/misc/vita/textured_alpha_f.cg b/misc/vita/textured_alpha_f.cg
new file mode 100644
index 0000000..cc04854
--- /dev/null
+++ b/misc/vita/textured_alpha_f.cg
@@ -0,0 +1,12 @@
+float4 main
+(
+	uniform sampler2D tex,
+	float4 out_color    : COLOR,
+	float2 out_texcoord : TEXCOORD0
+) : COLOR
+{
+	float4 color = tex2D(tex, out_texcoord) * out_color;
+	
+	if (color.a < 0.5) discard;
+	return color;
+}
\ No newline at end of file
diff --git a/misc/vita/textured_alpha_f.gxp b/misc/vita/textured_alpha_f.gxp
new file mode 100644
index 0000000..cec48c1
--- /dev/null
+++ b/misc/vita/textured_alpha_f.gxp
Binary files differdiff --git a/misc/vita/textured_alpha_f.h b/misc/vita/textured_alpha_f.h
new file mode 100644
index 0000000..e07981e
--- /dev/null
+++ b/misc/vita/textured_alpha_f.h
@@ -0,0 +1,26 @@
+const char textured_alpha_f[372] = {
+	0x47, 0x58, 0x50, 0x00, 0x01, 0x05, 0x00, 0x03, 0x74, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x09, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x18, 0x01, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 
+	0x08, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0b, 0x00, 0x00, 0x00, 
+	0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0x90, 0x3a, 0x03, 0x00, 
+	0x03, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, 
+	0x01, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x01, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 
+	0x00, 0xa9, 0xd0, 0x0e, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x44, 0xfa, 
+	0x02, 0x00, 0x84, 0xa0, 0x86, 0x41, 0xa4, 0x08, 0x43, 0x00, 0xc4, 0xa0, 0x8a, 0x41, 0xc0, 0x08, 
+	0x8c, 0x81, 0x03, 0x90, 0x91, 0xc6, 0x89, 0x48, 0x00, 0x01, 0x00, 0xe0, 0x02, 0x10, 0x81, 0x91, 
+	0x80, 0x00, 0x00, 0xe0, 0x0a, 0x00, 0x81, 0x55, 0x01, 0x00, 0x0a, 0xb0, 0x85, 0x01, 0x88, 0x48, 
+	0x00, 0x00, 0x00, 0xf0, 0x06, 0x04, 0x30, 0xf9, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x04, 0xf8, 
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x44, 0xfa, 0x06, 0x82, 0x19, 0xa0, 0x7e, 0x0d, 0x80, 0x40, 
+	0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 
+	0x30, 0x00, 0x00, 0x00, 0x02, 0x04, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+	0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+	0x74, 0x65, 0x78, 0x00
+};
\ No newline at end of file
diff --git a/misc/vita/textured_f.cg b/misc/vita/textured_f.cg
new file mode 100644
index 0000000..a59b804
--- /dev/null
+++ b/misc/vita/textured_f.cg
@@ -0,0 +1,9 @@
+float4 main
+(
+	uniform sampler2D tex,
+	float4 out_color    : COLOR,
+	float2 out_texcoord : TEXCOORD0
+) : COLOR
+{
+	return tex2D(tex, out_texcoord) * out_color;
+}
\ No newline at end of file
diff --git a/misc/vita/textured_f.gxp b/misc/vita/textured_f.gxp
new file mode 100644
index 0000000..83df3e5
--- /dev/null
+++ b/misc/vita/textured_f.gxp
Binary files differdiff --git a/misc/vita/textured_f.h b/misc/vita/textured_f.h
new file mode 100644
index 0000000..033305b
--- /dev/null
+++ b/misc/vita/textured_f.h
@@ -0,0 +1,20 @@
+const char textured_f[288] = {
+	0x47, 0x58, 0x50, 0x00, 0x01, 0x05, 0x00, 0x03, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x05, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 
+	0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x05, 0x00, 0x00, 0x00, 
+	0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x90, 0x3a, 0x03, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x01, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 
+	0x00, 0xa9, 0xd0, 0x0e, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x44, 0xfa, 0x00, 0x00, 0x00, 0x00, 
+	0x40, 0x09, 0x00, 0xf8, 0x02, 0x80, 0x99, 0xaf, 0xbc, 0x0d, 0xc0, 0x40, 0x06, 0x82, 0xb9, 0xaf, 
+	0xbc, 0x0d, 0x80, 0x40, 0x7c, 0x0f, 0x04, 0x00, 0x86, 0x47, 0xa4, 0x10, 0x30, 0x00, 0x00, 0x00, 
+	0x02, 0x04, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x65, 0x78, 0x00
+};
\ No newline at end of file
diff --git a/misc/vita/textured_v.cg b/misc/vita/textured_v.cg
new file mode 100644
index 0000000..7952b91
--- /dev/null
+++ b/misc/vita/textured_v.cg
@@ -0,0 +1,13 @@
+void main(
+	float3 in_position,
+	float4 in_color, 
+	float2 in_texcoord,
+	uniform float4x4 mvp_matrix,
+	out float4 out_position : POSITION, 
+	out float4 out_color : COLOR, 
+	out float2 out_texcoord: TEXCOORD0)
+{
+	out_position = mul(mvp_matrix, float4(in_position, 1.0f));
+	out_color    = in_color;
+	out_texcoord = in_texcoord;
+}
\ No newline at end of file
diff --git a/misc/vita/textured_v.gxp b/misc/vita/textured_v.gxp
new file mode 100644
index 0000000..46577ec
--- /dev/null
+++ b/misc/vita/textured_v.gxp
Binary files differdiff --git a/misc/vita/textured_v.h b/misc/vita/textured_v.h
new file mode 100644
index 0000000..e8b212f
--- /dev/null
+++ b/misc/vita/textured_v.h
@@ -0,0 +1,24 @@
+const char textured_v[348] = {
+	0x47, 0x58, 0x50, 0x00, 0x01, 0x05, 0x00, 0x03, 0x5c, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 
+	0x0c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x05, 0x00, 0x00, 0x00, 
+	0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x90, 0x3a, 0x03, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 
+	0x01, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf7, 0x03, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x0a, 
+	0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x44, 0xfa, 0x80, 0x00, 0x08, 0x83, 0x21, 0x2d, 0x80, 0x38, 
+	0x02, 0x80, 0x81, 0xaf, 0x9c, 0x0d, 0x80, 0x40, 0x00, 0xa2, 0x3d, 0xc0, 0x81, 0x30, 0x90, 0x18, 
+	0x00, 0x00, 0x20, 0xa0, 0x00, 0x50, 0x27, 0xfb, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 
+	0x40, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+	0x3c, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
+	0x35, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
+	0x31, 0x00, 0x00, 0x00, 0x01, 0xe4, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+	0x69, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x00, 0x69, 0x6e, 0x5f, 0x63, 
+	0x6f, 0x6c, 0x6f, 0x72, 0x00, 0x69, 0x6e, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 
+	0x00, 0x6d, 0x76, 0x70, 0x5f, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x00
+};
\ No newline at end of file