Java cube
This commit is contained in:
parent
a6830aea78
commit
88318fde35
@ -1,6 +1,5 @@
|
||||
#include "example/DreamcastVideo2.class.h"
|
||||
#include "example/DreamcastVideo.class.h"
|
||||
#include "example/Vec2.class.h"
|
||||
#include "java/io/PrintStream.class.h"
|
||||
#include "java/lang/Integer.class.h"
|
||||
#include "java/lang/Math.class.h"
|
||||
@ -8,7 +7,8 @@
|
||||
#include "java/lang/String.class.h"
|
||||
#include "java/lang/System.class.h"
|
||||
#include "java/misc/Memory.class.h"
|
||||
#include "model/FacePNT.class.h"
|
||||
#include "java/misc/Resource.class.h"
|
||||
#include "model/FacePTN.class.h"
|
||||
#include "model/ModelObject.class.h"
|
||||
#include "model/UntitledModel.class.h"
|
||||
#include "model/Vec2.class.h"
|
||||
|
@ -1,6 +1,5 @@
|
||||
(const uint8_t *)&_binary_example_DreamcastVideo2_class_start,
|
||||
(const uint8_t *)&_binary_example_DreamcastVideo_class_start,
|
||||
(const uint8_t *)&_binary_example_Vec2_class_start,
|
||||
(const uint8_t *)&_binary_java_io_PrintStream_class_start,
|
||||
(const uint8_t *)&_binary_java_lang_Integer_class_start,
|
||||
(const uint8_t *)&_binary_java_lang_Math_class_start,
|
||||
@ -8,7 +7,8 @@
|
||||
(const uint8_t *)&_binary_java_lang_String_class_start,
|
||||
(const uint8_t *)&_binary_java_lang_System_class_start,
|
||||
(const uint8_t *)&_binary_java_misc_Memory_class_start,
|
||||
(const uint8_t *)&_binary_model_FacePNT_class_start,
|
||||
(const uint8_t *)&_binary_java_misc_Resource_class_start,
|
||||
(const uint8_t *)&_binary_model_FacePTN_class_start,
|
||||
(const uint8_t *)&_binary_model_ModelObject_class_start,
|
||||
(const uint8_t *)&_binary_model_UntitledModel_class_start,
|
||||
(const uint8_t *)&_binary_model_Vec2_class_start,
|
||||
|
@ -10,7 +10,7 @@ void op_aaload(struct vm * vm)
|
||||
{
|
||||
int32_t index = operand_stack_pop_u32(vm->current_frame);
|
||||
int32_t * arrayref = (int32_t *)operand_stack_pop_u32(vm->current_frame);
|
||||
assert(arrayref[0] > 0 && index < arrayref[0]);
|
||||
assertvm(vm, arrayref[0] > 0 && index < arrayref[0]);
|
||||
uint32_t * referencearray = (uint32_t *)&arrayref[1];
|
||||
uint32_t value = referencearray[index];
|
||||
operand_stack_push_u32(vm->current_frame, value);
|
||||
|
18
c/frame.c
18
c/frame.c
@ -283,6 +283,24 @@ void vm_native_method_call(struct vm * vm, struct class_entry * class_entry, str
|
||||
}
|
||||
}
|
||||
|
||||
int java_misc_resource_length = 18;
|
||||
bool java_misc_resource =
|
||||
class_name_constant->utf8.length == java_misc_resource_length &&
|
||||
hash_table_key_equal(class_name_constant->utf8.bytes, (const uint8_t *)"java/misc/Resource", class_name_constant->utf8.length);
|
||||
if (java_misc_resource) {
|
||||
int getresource_length = 11;
|
||||
bool getresource =
|
||||
method_name_constant->utf8.length == getresource_length &&
|
||||
hash_table_key_equal(method_name_constant->utf8.bytes, (const uint8_t *)"getResource", method_name_constant->utf8.length);
|
||||
if (getresource) {
|
||||
assert(nargs == 1);
|
||||
assert(return_type == '[');
|
||||
uint32_t value = java_misc_resource_getresource_1(args);
|
||||
operand_stack_push_u32(vm->current_frame, value);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
int java_io_printstream_length = 19;
|
||||
bool java_io_printstream =
|
||||
class_name_constant->utf8.length == java_io_printstream_length &&
|
||||
|
20
c/native.c
20
c/native.c
@ -3,7 +3,7 @@
|
||||
|
||||
void native_java_io_printstream_write(uint32_t * arrayref)
|
||||
{
|
||||
uint32_t length = arrayref[0];
|
||||
int32_t length = arrayref[0];
|
||||
char * buf = (char *)&arrayref[1];
|
||||
print_string(buf, length);
|
||||
}
|
||||
@ -103,3 +103,21 @@ native_java_lang_math_cos_1(uint32_t * args)
|
||||
float value = __builtin_cosf(arg);
|
||||
return *((uint32_t *)&value);
|
||||
}
|
||||
|
||||
#if defined(__dreamcast__)
|
||||
#include "resources.inc.c"
|
||||
#endif
|
||||
|
||||
uint32_t java_misc_resource_getresource_1(uint32_t * args)
|
||||
{
|
||||
uint32_t * objectref = (uint32_t *)args[0];
|
||||
int32_t * arrayref = (int32_t *)objectref[1];
|
||||
int32_t name_length = (int32_t)arrayref[0];
|
||||
uint8_t * name = (uint8_t *)&arrayref[1];
|
||||
#if defined(__dreamcast__)
|
||||
uint32_t resource = find_resource(name, name_length);
|
||||
return resource;
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
@ -14,3 +14,4 @@ uint32_t native_java_misc_memory_getU1_1(uint32_t * args);
|
||||
void native_java_misc_memory_putSQ1_2(uint32_t * args);
|
||||
uint32_t native_java_lang_math_sin_1(uint32_t * args);
|
||||
uint32_t native_java_lang_math_cos_1(uint32_t * args);
|
||||
uint32_t java_misc_resource_getresource_1(uint32_t * args);
|
||||
|
56
c/resources.inc.c
Normal file
56
c/resources.inc.c
Normal file
@ -0,0 +1,56 @@
|
||||
#include "images/java_text.data.h"
|
||||
#include "images/java_cup.data.h"
|
||||
#include "images/java_powered.data.h"
|
||||
|
||||
#include "hash_table.h"
|
||||
#include "assert.h"
|
||||
|
||||
struct resource {
|
||||
const uint8_t * name;
|
||||
int32_t name_length;
|
||||
const int32_t * buf;
|
||||
int32_t buf_length;
|
||||
};
|
||||
|
||||
static struct resource resources[] = {
|
||||
{
|
||||
.name = (const uint8_t *)"images/java_text",
|
||||
.name_length = 16,
|
||||
.buf = (const int32_t *)&_binary_images_java_text_data_start,
|
||||
.buf_length = (int32_t)&_binary_images_java_text_data_size
|
||||
},
|
||||
{
|
||||
.name = (const uint8_t *)"images/java_cup",
|
||||
.name_length = 15,
|
||||
.buf = (const int32_t *)&_binary_images_java_cup_data_start,
|
||||
.buf_length = (int32_t)&_binary_images_java_cup_data_size
|
||||
},
|
||||
{
|
||||
.name = (const uint8_t *)"images/java_powered",
|
||||
.name_length = 19,
|
||||
.buf = (const int32_t *)&_binary_images_java_powered_data_start,
|
||||
.buf_length = (int32_t)&_binary_images_java_powered_data_size
|
||||
},
|
||||
};
|
||||
|
||||
static int resources_length = (sizeof (resources)) / (sizeof (resources[0]));
|
||||
|
||||
static uint32_t find_resource(const uint8_t * name, int32_t name_length)
|
||||
{
|
||||
for (int i = 0; i < resources_length; i++) {
|
||||
struct resource * resource = &resources[i];
|
||||
if (resource->name_length != name_length)
|
||||
continue;
|
||||
if (hash_table_key_equal(resource->name, name, name_length)) {
|
||||
//debugf("resource match: ");
|
||||
//print_string((const char *)name, name_length);
|
||||
//debugc('\n');
|
||||
uint32_t buf = (uint32_t)resource->buf;
|
||||
// alignment check
|
||||
assert((resource->buf_length & (~3)) == resource->buf_length);
|
||||
assert((buf & ~(3)) == buf);
|
||||
return buf;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
@ -1,7 +1,6 @@
|
||||
CLASS_PATH = \
|
||||
example/DreamcastVideo2.class.o \
|
||||
example/DreamcastVideo.class.o \
|
||||
example/Vec2.class.o \
|
||||
java/io/PrintStream.class.o \
|
||||
java/lang/Integer.class.o \
|
||||
java/lang/Math.class.o \
|
||||
@ -9,7 +8,8 @@ CLASS_PATH = \
|
||||
java/lang/String.class.o \
|
||||
java/lang/System.class.o \
|
||||
java/misc/Memory.class.o \
|
||||
model/FacePNT.class.o \
|
||||
java/misc/Resource.class.o \
|
||||
model/FacePTN.class.o \
|
||||
model/ModelObject.class.o \
|
||||
model/UntitledModel.class.o \
|
||||
model/Vec2.class.o \
|
||||
|
@ -12,31 +12,25 @@ import sega.dreamcast.holly.TextureMemoryAllocation;
|
||||
import sega.dreamcast.holly.ISPTSP;
|
||||
import sega.dreamcast.holly.TAVertexParameter;
|
||||
import sega.dreamcast.holly.TAGlobalParameter;
|
||||
import sega.dreamcast.systembus.Systembus;
|
||||
import sega.dreamcast.systembus.SystembusBits;
|
||||
import sega.dreamcast.MemoryMap;
|
||||
import model.UntitledModel;
|
||||
import model.Vec3;
|
||||
import model.FacePNT;
|
||||
import model.Vec2;
|
||||
import model.FacePTN;
|
||||
import model.ModelObject;
|
||||
import java.misc.Memory;
|
||||
|
||||
/*
|
||||
class Vec2 {
|
||||
float x;
|
||||
float y;
|
||||
}
|
||||
*/
|
||||
import java.misc.Resource;
|
||||
|
||||
class DreamcastVideo2 {
|
||||
static final int framebuffer_width = 640;
|
||||
static final int framebuffer_height = 480;
|
||||
|
||||
static TAGlobalParameter.polygon_type_0 gt0;
|
||||
static TAVertexParameter.polygon_type_0 vt0;
|
||||
static TAGlobalParameter.polygon_type_0[] gt0;
|
||||
static TAVertexParameter.polygon_type_3 vt0;
|
||||
static TAGlobalParameter.end_of_list eol;
|
||||
|
||||
//static Vec2[] vtx;
|
||||
static Vec2[] quad;
|
||||
static Vec2[] quad_uv;
|
||||
|
||||
static float theta;
|
||||
|
||||
@ -49,66 +43,102 @@ class DreamcastVideo2 {
|
||||
|
||||
static {
|
||||
int parameter_control_word = TAParameter.para_control__para_type__polygon_or_modifier_volume
|
||||
| TAParameter.para_control__list_type__opaque
|
||||
| TAParameter.obj_control__col_type__packed_color;
|
||||
| TAParameter.para_control__list_type__translucent
|
||||
| TAParameter.obj_control__col_type__packed_color
|
||||
| TAParameter.obj_control__texture;
|
||||
|
||||
int isp_tsp_instruction_word = ISPTSP.isp_tsp_instruction_word__depth_compare_mode__greater
|
||||
| ISPTSP.isp_tsp_instruction_word__culling_mode__no_culling;
|
||||
|
||||
int tsp_instruction_word = ISPTSP.tsp_instruction_word__src_alpha_instr__one
|
||||
| ISPTSP.tsp_instruction_word__dst_alpha_instr__zero
|
||||
| ISPTSP.tsp_instruction_word__fog_control__no_fog;
|
||||
int tsp_instruction_word = ISPTSP.tsp_instruction_word__src_alpha_instr__src_alpha
|
||||
| ISPTSP.tsp_instruction_word__dst_alpha_instr__inverse_src_alpha
|
||||
| ISPTSP.tsp_instruction_word__fog_control__no_fog
|
||||
| ISPTSP.tsp_instruction_word__texture_u_size__512
|
||||
| ISPTSP.tsp_instruction_word__texture_v_size__1024
|
||||
| ISPTSP.tsp_instruction_word__use_alpha;
|
||||
|
||||
int texture_address = TextureMemoryAllocation.texture_regions[1][0] + 512;
|
||||
int texture_control_word = ISPTSP.texture_control_word__pixel_format__4444
|
||||
| ISPTSP.texture_control_word__scan_order__non_twiddled
|
||||
| ISPTSP.texture_control_word__texture_address(texture_address / 8);
|
||||
|
||||
int texture_control_word = 0;
|
||||
int data_size_for_sort_dma = 0;
|
||||
int next_address_for_sort_dma = 0;
|
||||
|
||||
gt0 = new TAGlobalParameter.polygon_type_0(parameter_control_word,
|
||||
gt0 = new TAGlobalParameter.polygon_type_0[2];
|
||||
gt0[0] = new TAGlobalParameter.polygon_type_0(parameter_control_word,
|
||||
isp_tsp_instruction_word,
|
||||
tsp_instruction_word,
|
||||
texture_control_word,
|
||||
data_size_for_sort_dma,
|
||||
next_address_for_sort_dma);
|
||||
|
||||
vt0 = new TAVertexParameter.polygon_type_0(0, // parameter_control_word
|
||||
tsp_instruction_word = ISPTSP.tsp_instruction_word__src_alpha_instr__src_alpha
|
||||
| ISPTSP.tsp_instruction_word__dst_alpha_instr__inverse_src_alpha
|
||||
| ISPTSP.tsp_instruction_word__fog_control__no_fog
|
||||
| ISPTSP.tsp_instruction_word__texture_u_size__128
|
||||
| ISPTSP.tsp_instruction_word__texture_v_size__64
|
||||
| ISPTSP.tsp_instruction_word__use_alpha;
|
||||
|
||||
texture_address = TextureMemoryAllocation.texture_regions[1][0] + 512 + (512 * 512 * 2 * 2);
|
||||
texture_control_word = ISPTSP.texture_control_word__pixel_format__4444
|
||||
| ISPTSP.texture_control_word__scan_order__non_twiddled
|
||||
| ISPTSP.texture_control_word__texture_address(texture_address / 8);
|
||||
|
||||
gt0[1] = new TAGlobalParameter.polygon_type_0(parameter_control_word,
|
||||
isp_tsp_instruction_word,
|
||||
tsp_instruction_word,
|
||||
texture_control_word,
|
||||
data_size_for_sort_dma,
|
||||
next_address_for_sort_dma);
|
||||
|
||||
vt0 = new TAVertexParameter.polygon_type_3(0, // parameter_control_word
|
||||
0.0f, // x
|
||||
0.0f, // y
|
||||
0.1f, // z
|
||||
0); // color
|
||||
0.0f, // z
|
||||
0.0f, // u
|
||||
0.0f, // v
|
||||
0, // color
|
||||
0); // offset_color
|
||||
|
||||
eol = new TAGlobalParameter.end_of_list(TAParameter.para_control__para_type__end_of_list);
|
||||
|
||||
/*
|
||||
vtx = new Vec2[3];
|
||||
for (int i = 0; i < 3; i++)
|
||||
vtx[i] = new Vec2();
|
||||
vtx[0].x = 0.0f;
|
||||
vtx[0].y = 1.0f;
|
||||
vtx[1].x = 0.866025f;
|
||||
vtx[1].y = -0.5f;
|
||||
vtx[2].x = -0.866025f;
|
||||
vtx[2].y = -0.5f;
|
||||
*/
|
||||
float x = 256.0f;
|
||||
float y = 208.0f;
|
||||
quad = new Vec2[4];
|
||||
quad[0] = new Vec2(x + 0.0f, y + 0.0f);
|
||||
quad[1] = new Vec2(x + 128.0f, y + 0.0f);
|
||||
quad[2] = new Vec2(x + 128.0f, y + 64.0f);
|
||||
quad[3] = new Vec2(x + 0.0f, y + 64.0f);
|
||||
|
||||
quad_uv = new Vec2[4];
|
||||
quad_uv[0] = new Vec2(0.0f, 0.0f);
|
||||
quad_uv[1] = new Vec2(1.0f, 0.0f);
|
||||
quad_uv[2] = new Vec2(1.0f, 1.0f);
|
||||
quad_uv[3] = new Vec2(0.0f, 1.0f);
|
||||
}
|
||||
|
||||
public static void transform_vertex(Vec3[] position, FacePNT pnt) {
|
||||
float px = position[pnt.position].x;
|
||||
float py = position[pnt.position].y;
|
||||
float pz = position[pnt.position].z;
|
||||
public static void transform_vertex(Vec3[] position, Vec2[] texture, FacePTN ptn) {
|
||||
float px = position[ptn.position].x;
|
||||
float py = position[ptn.position].y;
|
||||
float pz = position[ptn.position].z;
|
||||
|
||||
//px *= 0.5;
|
||||
//py *= 0.5;
|
||||
//pz *= 0.5;
|
||||
float theta2 = theta * 2.0f;
|
||||
float scale = (Math.sin(theta2) + 3.0f) * 0.3f;
|
||||
|
||||
px *= scale;
|
||||
py *= scale;
|
||||
pz *= scale;
|
||||
|
||||
float x0 = px * Math.cos(theta) - py * Math.sin(theta);
|
||||
float y0 = px * Math.sin(theta) + py * Math.cos(theta);
|
||||
float z0 = pz;
|
||||
|
||||
float theta2 = theta / 2.0f;
|
||||
float theta05 = theta * 0.5f;
|
||||
|
||||
float x1 = x0 * Math.cos(theta2) - z0 * Math.sin(theta2);
|
||||
float x1 = x0 * Math.cos(theta05) - z0 * Math.sin(theta05);
|
||||
float y1 = y0;
|
||||
float z1 = x0 * Math.sin(theta2) + z0 * Math.cos(theta2);
|
||||
float z1 = x0 * Math.sin(theta05) + z0 * Math.cos(theta05);
|
||||
|
||||
// camera transform
|
||||
float z2 = 3f + z1;
|
||||
@ -122,67 +152,197 @@ class DreamcastVideo2 {
|
||||
float y = -y2 * 240f + 240f;
|
||||
float z = 1.0f / z2;
|
||||
|
||||
DreamcastVideo2.vt0.x = x;
|
||||
DreamcastVideo2.vt0.y = y;
|
||||
DreamcastVideo2.vt0.z = z;
|
||||
vt0.x = x;
|
||||
vt0.y = y;
|
||||
vt0.z = z;
|
||||
vt0.u = texture[ptn.texture].x;
|
||||
vt0.v = texture[ptn.texture].y;
|
||||
}
|
||||
|
||||
public static void transform_triangle(int n, Vec3[] position, FacePNT[] face) {
|
||||
public static void transform_triangle(int n, Vec3[] position, Vec2[] texture, FacePTN[] face) {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
DreamcastVideo2.vt0.parameter_control_word = TAParameter.para_control__para_type__vertex_parameter;
|
||||
vt0.parameter_control_word = TAParameter.para_control__para_type__vertex_parameter;
|
||||
if (i == 2)
|
||||
DreamcastVideo2.vt0.parameter_control_word |= TAParameter.para_control__end_of_strip;
|
||||
transform_vertex(position, face[i]);
|
||||
DreamcastVideo2.vt0.base_color = colors[n];
|
||||
vt0.parameter_control_word |= TAParameter.para_control__end_of_strip;
|
||||
transform_vertex(position, texture, face[i]);
|
||||
vt0.base_color = colors[n];
|
||||
|
||||
Memory.putSQ1(DreamcastVideo2.vt0, MemoryMap.ta_fifo_polygon_converter);
|
||||
Memory.putSQ1(vt0, MemoryMap.ta_fifo_polygon_converter);
|
||||
}
|
||||
}
|
||||
|
||||
public static void transfer_scene() {
|
||||
// global parameter
|
||||
Memory.putSQ1(DreamcastVideo2.gt0, MemoryMap.ta_fifo_polygon_converter);
|
||||
public static void transform_quad() {
|
||||
// strip order:
|
||||
// 0 1 3 2
|
||||
|
||||
// vertex parameters
|
||||
vt0.z = 0.1f;
|
||||
|
||||
vt0.parameter_control_word = TAParameter.para_control__para_type__vertex_parameter;
|
||||
vt0.x = quad[0].x;
|
||||
vt0.y = quad[0].y;
|
||||
vt0.u = quad_uv[0].x;
|
||||
vt0.v = quad_uv[0].y;
|
||||
Memory.putSQ1(vt0, MemoryMap.ta_fifo_polygon_converter);
|
||||
|
||||
vt0.parameter_control_word = TAParameter.para_control__para_type__vertex_parameter;
|
||||
vt0.x = quad[1].x;
|
||||
vt0.y = quad[1].y;
|
||||
vt0.u = quad_uv[1].x;
|
||||
vt0.v = quad_uv[1].y;
|
||||
Memory.putSQ1(vt0, MemoryMap.ta_fifo_polygon_converter);
|
||||
|
||||
vt0.parameter_control_word = TAParameter.para_control__para_type__vertex_parameter;
|
||||
vt0.x = quad[3].x;
|
||||
vt0.y = quad[3].y;
|
||||
vt0.u = quad_uv[3].x;
|
||||
vt0.v = quad_uv[3].y;
|
||||
Memory.putSQ1(vt0, MemoryMap.ta_fifo_polygon_converter);
|
||||
|
||||
vt0.parameter_control_word = TAParameter.para_control__para_type__vertex_parameter
|
||||
| TAParameter.para_control__end_of_strip;
|
||||
vt0.x = quad[2].x;
|
||||
vt0.y = quad[2].y;
|
||||
vt0.u = quad_uv[2].x;
|
||||
vt0.v = quad_uv[2].y;
|
||||
Memory.putSQ1(vt0, MemoryMap.ta_fifo_polygon_converter);
|
||||
}
|
||||
|
||||
public static void transfer_cube_scene() {
|
||||
// global parameters
|
||||
Memory.putSQ1(gt0[0], MemoryMap.ta_fifo_polygon_converter);
|
||||
|
||||
// triangle parameters
|
||||
ModelObject obj = UntitledModel.objects[0];
|
||||
for (int i = 0; i < obj.faces.length; i ++) {
|
||||
transform_triangle(i, UntitledModel.position, obj.faces[i]);
|
||||
transform_triangle(i, UntitledModel.position, UntitledModel.texture, obj.faces[i]);
|
||||
}
|
||||
|
||||
// end of list
|
||||
Memory.putSQ1(DreamcastVideo2.eol, MemoryMap.ta_fifo_polygon_converter);
|
||||
Memory.putSQ1(eol, MemoryMap.ta_fifo_polygon_converter);
|
||||
}
|
||||
|
||||
public static void transfer_splash_scene() {
|
||||
// global parameters
|
||||
Memory.putSQ1(gt0[1], MemoryMap.ta_fifo_polygon_converter);
|
||||
|
||||
// quad parameters
|
||||
transform_quad();
|
||||
|
||||
// end of list
|
||||
Memory.putSQ1(eol, MemoryMap.ta_fifo_polygon_converter);
|
||||
}
|
||||
|
||||
public static void transfer_textures() {
|
||||
int texture = TextureMemoryAllocation.texture_regions[1][0] + 512;
|
||||
|
||||
// java_cup
|
||||
int[] java_cup = Resource.getResource("images/java_cup");
|
||||
int java_cup_length = (java_cup == null) ? 0 : java_cup.length;
|
||||
//System.out.print("images/java_cup length: ");
|
||||
//System.out.println(java_cup_length);
|
||||
|
||||
for (int i = 0; i < java_cup_length; i++) {
|
||||
Memory.putU4(MemoryMap.texture_memory64 + texture, java_cup[i]);
|
||||
texture += 4;
|
||||
}
|
||||
|
||||
// java_text
|
||||
int[] java_text = Resource.getResource("images/java_text");
|
||||
int java_text_length = (java_text == null) ? 0 : java_text.length;
|
||||
//System.out.print("images/java_text length: ");
|
||||
//System.out.println(java_text_length);
|
||||
|
||||
for (int i = 0; i < java_text_length; i++) {
|
||||
Memory.putU4(MemoryMap.texture_memory64 + texture, java_text[i]);
|
||||
texture += 4;
|
||||
}
|
||||
}
|
||||
|
||||
public static void transfer_java_powered() {
|
||||
int texture = TextureMemoryAllocation.texture_regions[1][0] + 512 + (512 * 512 * 2 * 2);
|
||||
|
||||
// java_powered
|
||||
int[] java_powered = Resource.getResource("images/java_powered");
|
||||
int java_powered_length = (java_powered == null) ? 0 : java_powered.length;
|
||||
//System.out.print("images/java_powered length: ");
|
||||
//System.out.println(java_powered_length);
|
||||
|
||||
for (int i = 0; i < java_powered_length; i++) {
|
||||
Memory.putU4(MemoryMap.texture_memory64 + texture, java_powered[i]);
|
||||
texture += 4;
|
||||
}
|
||||
}
|
||||
|
||||
public static void boot_splash(int ta_alloc, int opb_size_total) {
|
||||
// unpipelined render loop
|
||||
TAFIFOPolygonConverter.init(TextureMemoryAllocation.isp_tsp_parameters_start[0],
|
||||
TextureMemoryAllocation.isp_tsp_parameters_end[0],
|
||||
TextureMemoryAllocation.object_list_start[0],
|
||||
TextureMemoryAllocation.object_list_end[0],
|
||||
opb_size_total,
|
||||
ta_alloc,
|
||||
framebuffer_width / 32,
|
||||
framebuffer_height / 32);
|
||||
transfer_splash_scene();
|
||||
TAFIFOPolygonConverter.wait_translucent_list();
|
||||
|
||||
Core.start_render(TextureMemoryAllocation.region_array_start[0],
|
||||
TextureMemoryAllocation.isp_tsp_parameters_start[0],
|
||||
TextureMemoryAllocation.background_start[0],
|
||||
TextureMemoryAllocation.framebuffer_start[0],
|
||||
framebuffer_width);
|
||||
Core.wait_end_of_render_tsp();
|
||||
|
||||
while ((CoreBits.spg_status__vsync(Memory.getU4(Holly.SPG_STATUS)) != 0));
|
||||
Core.fb_r_enable();
|
||||
Memory.putU4(Holly.FB_R_SOF1, TextureMemoryAllocation.framebuffer_start[0]);
|
||||
}
|
||||
|
||||
public static void main() {
|
||||
Core.init();
|
||||
Core.fb_init(framebuffer_width, framebuffer_height);
|
||||
System.out.println(Memory.getU4(Holly.FB_R_SOF1));
|
||||
|
||||
int ta_alloc =
|
||||
TABits.ta_alloc_ctrl__opb_mode__increasing_addresses
|
||||
| TABits.ta_alloc_ctrl__pt_opb__no_list
|
||||
| TABits.ta_alloc_ctrl__tm_opb__no_list
|
||||
| TABits.ta_alloc_ctrl__t_opb__no_list
|
||||
| TABits.ta_alloc_ctrl__t_opb__8x4byte
|
||||
| TABits.ta_alloc_ctrl__om_opb__no_list
|
||||
| TABits.ta_alloc_ctrl__o_opb__8x4byte
|
||||
| TABits.ta_alloc_ctrl__o_opb__no_list
|
||||
;
|
||||
|
||||
RegionArray.OPBSize[] opb_size = {
|
||||
new RegionArray.OPBSize(8 * 4, // opaque
|
||||
new RegionArray.OPBSize(0, // opaque
|
||||
0, // opaque_modifier_volume
|
||||
0, // translucent
|
||||
8 * 4, // translucent
|
||||
0, // translucent_modifier_volume
|
||||
0) // punch_through
|
||||
};
|
||||
|
||||
int opb_size_total = opb_size[0].total();
|
||||
int num_render_passes = opb_size.length;
|
||||
|
||||
transfer_java_powered();
|
||||
|
||||
Background.background(TextureMemoryAllocation.background_start[0],
|
||||
0x00c0c0c0); // sega white
|
||||
|
||||
int num_render_passes = opb_size.length;
|
||||
RegionArray.region_array(framebuffer_width / 32,
|
||||
framebuffer_height / 32,
|
||||
opb_size,
|
||||
num_render_passes,
|
||||
TextureMemoryAllocation.region_array_start[0],
|
||||
TextureMemoryAllocation.object_list_start[0]);
|
||||
|
||||
Core.init();
|
||||
Core.fb_init(framebuffer_width, framebuffer_height);
|
||||
|
||||
boot_splash(ta_alloc, opb_size_total);
|
||||
|
||||
transfer_textures();
|
||||
|
||||
int background_color = 0xff100a00;
|
||||
Background.background(TextureMemoryAllocation.background_start[1],
|
||||
background_color);
|
||||
|
||||
RegionArray.region_array(framebuffer_width / 32,
|
||||
framebuffer_height / 32,
|
||||
opb_size,
|
||||
@ -190,12 +350,6 @@ class DreamcastVideo2 {
|
||||
TextureMemoryAllocation.region_array_start[1],
|
||||
TextureMemoryAllocation.object_list_start[1]);
|
||||
|
||||
int background_color = 0xff443300;
|
||||
Background.background(TextureMemoryAllocation.background_start[0],
|
||||
background_color);
|
||||
Background.background(TextureMemoryAllocation.background_start[1],
|
||||
background_color);
|
||||
|
||||
int core = 0;
|
||||
int ta = 0;
|
||||
while (true) {
|
||||
@ -208,12 +362,12 @@ class DreamcastVideo2 {
|
||||
ta_alloc,
|
||||
framebuffer_width / 32,
|
||||
framebuffer_height / 32);
|
||||
transfer_scene();
|
||||
TAFIFOPolygonConverter.wait_opaque_list();
|
||||
transfer_cube_scene();
|
||||
TAFIFOPolygonConverter.wait_translucent_list();
|
||||
|
||||
Core.start_render(TextureMemoryAllocation.region_array_start[ta],
|
||||
TextureMemoryAllocation.isp_tsp_parameters_start[ta],
|
||||
TextureMemoryAllocation.background_start[ta],
|
||||
TextureMemoryAllocation.background_start[1],
|
||||
TextureMemoryAllocation.framebuffer_start[core],
|
||||
framebuffer_width);
|
||||
Core.wait_end_of_render_tsp();
|
||||
|
@ -1,15 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern C {
|
||||
#endif
|
||||
|
||||
extern uint32_t _binary_example_Vec2_class_start __asm("_binary_example_Vec2_class_start");
|
||||
extern uint32_t _binary_example_Vec2_class_end __asm("_binary_example_Vec2_class_end");
|
||||
extern uint32_t _binary_example_Vec2_class_size __asm("_binary_example_Vec2_class_size");
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
@ -13,4 +13,9 @@ python regs/bits_gen.py ../dreamcast/regs/systembus_bits.csv systembus Systembus
|
||||
python regs/ta_parameters.py ../dreamcast/regs/vertex_parameter_format.csv holly TAVertexParameter > sega/dreamcast/holly/TAVertexParameter.java
|
||||
python regs/ta_parameters.py ../dreamcast/regs/global_parameter_format.csv holly TAGlobalParameter > sega/dreamcast/holly/TAGlobalParameter.java
|
||||
|
||||
PYTHONPATH=./regs/ python ../model_generator/generate_java.py ../untitled.obj UntitledModel > ./models/UntitledModel.java
|
||||
PYTHONPATH=./regs/ python ../model_generator/generate_java.py ../untitled.obj UntitledModel > ./model/UntitledModel.java
|
||||
|
||||
|
||||
python images/color_convert.py images/java_cup.png argb4444 images/java_cup.data
|
||||
python images/color_convert.py images/java_text.png argb4444 images/java_text.data
|
||||
python images/color_convert.py images/java_powered.png argb4444 images/java_powered.data
|
||||
|
96
images/color_convert.py
Normal file
96
images/color_convert.py
Normal file
@ -0,0 +1,96 @@
|
||||
import struct
|
||||
import sys
|
||||
|
||||
from PIL import Image
|
||||
|
||||
class color_format:
|
||||
def gbgr1555(r, g, b, a): # nintendo ds
|
||||
r5 = (r >> 3) & 31
|
||||
g6 = (g >> 3) & 31
|
||||
g6_l = (g >> 2) & 1
|
||||
b5 = (b >> 3) & 31
|
||||
return (g6_l << 15) | (b5 << 10) | (g6 << 5) | (r5 << 0)
|
||||
|
||||
def argb4444(r, g, b, a):
|
||||
a4 = (a >> 4) & 15
|
||||
r4 = (r >> 4) & 15
|
||||
g4 = (g >> 4) & 15
|
||||
b4 = (b >> 4) & 15
|
||||
return (a4 << 12) | (r4 << 8) | (g4 << 4) | (b4 << 0)
|
||||
|
||||
def argb1555(r, g, b, a):
|
||||
a1 = (a >> 7) & 1
|
||||
r5 = (r >> 3) & 31
|
||||
g5 = (g >> 3) & 31
|
||||
b5 = (b >> 3) & 31
|
||||
return (a1 << 15) | (r5 << 10) | (g5 << 5) | (b5 << 0)
|
||||
|
||||
def rgb565(r, g, b, a):
|
||||
r5 = (r >> 3) & 31
|
||||
g6 = (g >> 2) & 63
|
||||
b5 = (b >> 3) & 31
|
||||
return (r5 << 11) | (g5 << 5) | (b5 << 0)
|
||||
|
||||
def axxx4444(r, g, b, a):
|
||||
a4 = (a >> 4) & 15
|
||||
return (a4 << 12)
|
||||
|
||||
def from_string(s):
|
||||
return dict([
|
||||
("gbgr1555", color_format.gbgr1555),
|
||||
("argb4444", color_format.argb4444),
|
||||
("argb1555", color_format.argb1555),
|
||||
("rgb565", color_format.rgb565),
|
||||
("axxx4444", color_format.axxx4444),
|
||||
])[s]
|
||||
|
||||
def convert_colors(f, convert, colors):
|
||||
assert len(colors) % 2 == 0, len(colors)
|
||||
f.write(struct.pack("<I", (len(colors) * 2) // 4))
|
||||
for color in colors:
|
||||
value = convert(*color)
|
||||
f.write(struct.pack("<H", value))
|
||||
|
||||
def convert_indices(f, palette, pixels):
|
||||
if len(palette) <= 4:
|
||||
for i in range(len(pixels) // 4):
|
||||
a = pixels[i * 4 + 0]
|
||||
b = pixels[i * 4 + 1]
|
||||
c = pixels[i * 4 + 2]
|
||||
d = pixels[i * 4 + 3]
|
||||
assert a <= 3 and b <= 3 and c <= 3 and d <= 3, (a, b, c, d)
|
||||
pixel = (d << 6) | (c << 4) | (b << 2) | (a << 0)
|
||||
f.write(struct.pack("<B", pixel))
|
||||
elif len(palette) <= 16:
|
||||
for i in range(len(pixels) // 2):
|
||||
a = pixels[i * 2 + 0]
|
||||
b = pixels[i * 2 + 1]
|
||||
assert a <= 15 and b <= 15, (a, b)
|
||||
pixel = (b << 4) | (a << 0)
|
||||
f.write(struct.pack("<B", pixel))
|
||||
elif len(palette) <= 256:
|
||||
for pixel in pixels:
|
||||
assert pixel <= 255
|
||||
f.write(struct.pack("<B", pixel))
|
||||
else:
|
||||
assert False, len(palette)
|
||||
|
||||
if __name__ == "__main__":
|
||||
in_file = sys.argv[1]
|
||||
format = sys.argv[2]
|
||||
out_file = sys.argv[3]
|
||||
|
||||
convert = color_format.from_string(format)
|
||||
|
||||
with Image.open(in_file) as im:
|
||||
if not im.palette:
|
||||
pixels = list(im.convert("RGBA").getdata())
|
||||
with open(out_file, 'wb') as f:
|
||||
convert_colors(f, convert, pixels)
|
||||
else:
|
||||
pixels = list(im.convert("P").getdata())
|
||||
palette = list(im.palette.colors)
|
||||
with open(out_file, 'wb') as f:
|
||||
convert_indices(f, palette, pixels)
|
||||
with open(out_file + '.pal', 'wb') as f:
|
||||
convert_colors(f, convert, [(*c, 255) for c in palette])
|
BIN
images/java_cup.data
Normal file
BIN
images/java_cup.data
Normal file
Binary file not shown.
After Width: | Height: | Size: 512 KiB |
15
images/java_cup.data.h
Normal file
15
images/java_cup.data.h
Normal file
@ -0,0 +1,15 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern C {
|
||||
#endif
|
||||
|
||||
extern uint32_t _binary_images_java_cup_data_start __asm("_binary_images_java_cup_data_start");
|
||||
extern uint32_t _binary_images_java_cup_data_end __asm("_binary_images_java_cup_data_end");
|
||||
extern uint32_t _binary_images_java_cup_data_size __asm("_binary_images_java_cup_data_size");
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
BIN
images/java_cup.png
Normal file
BIN
images/java_cup.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 40 KiB |
BIN
images/java_cup.xcf
Normal file
BIN
images/java_cup.xcf
Normal file
Binary file not shown.
BIN
images/java_powered.data
Normal file
BIN
images/java_powered.data
Normal file
Binary file not shown.
15
images/java_powered.data.h
Normal file
15
images/java_powered.data.h
Normal file
@ -0,0 +1,15 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern C {
|
||||
#endif
|
||||
|
||||
extern uint32_t _binary_images_java_powered_data_start __asm("_binary_images_java_powered_data_start");
|
||||
extern uint32_t _binary_images_java_powered_data_end __asm("_binary_images_java_powered_data_end");
|
||||
extern uint32_t _binary_images_java_powered_data_size __asm("_binary_images_java_powered_data_size");
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
BIN
images/java_powered.png
Normal file
BIN
images/java_powered.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
BIN
images/java_powered.xcf
Normal file
BIN
images/java_powered.xcf
Normal file
Binary file not shown.
BIN
images/java_text.data
Normal file
BIN
images/java_text.data
Normal file
Binary file not shown.
After Width: | Height: | Size: 512 KiB |
15
images/java_text.data.h
Normal file
15
images/java_text.data.h
Normal file
@ -0,0 +1,15 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern C {
|
||||
#endif
|
||||
|
||||
extern uint32_t _binary_images_java_text_data_start __asm("_binary_images_java_text_data_start");
|
||||
extern uint32_t _binary_images_java_text_data_end __asm("_binary_images_java_text_data_end");
|
||||
extern uint32_t _binary_images_java_text_data_size __asm("_binary_images_java_text_data_size");
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
BIN
images/java_text.png
Normal file
BIN
images/java_text.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 26 KiB |
BIN
images/java_text.xcf
Normal file
BIN
images/java_text.xcf
Normal file
Binary file not shown.
5
java.mk
5
java.mk
@ -21,7 +21,10 @@ OBJ = \
|
||||
|
||||
MAIN_DREAMCAST_OBJ = \
|
||||
c/sh7091_scif.o \
|
||||
c/main_dreamcast.o
|
||||
c/main_dreamcast.o \
|
||||
images/java_text.data.o \
|
||||
images/java_cup.data.o \
|
||||
images/java_powered.data.o
|
||||
|
||||
MAIN_HOSTED_OBJ = \
|
||||
c/file.o \
|
||||
|
15
java/misc/Resource.class.h
Normal file
15
java/misc/Resource.class.h
Normal file
@ -0,0 +1,15 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern C {
|
||||
#endif
|
||||
|
||||
extern uint32_t _binary_java_misc_Resource_class_start __asm("_binary_java_misc_Resource_class_start");
|
||||
extern uint32_t _binary_java_misc_Resource_class_end __asm("_binary_java_misc_Resource_class_end");
|
||||
extern uint32_t _binary_java_misc_Resource_class_size __asm("_binary_java_misc_Resource_class_size");
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
8
java/misc/Resource.java
Normal file
8
java/misc/Resource.java
Normal file
@ -0,0 +1,8 @@
|
||||
package java.misc;
|
||||
|
||||
public class Resource {
|
||||
private Resource() {
|
||||
}
|
||||
|
||||
public static native int[] getResource(String name);
|
||||
}
|
@ -1,15 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern C {
|
||||
#endif
|
||||
|
||||
extern uint32_t _binary_model_FacePNT_class_start __asm("_binary_model_FacePNT_class_start");
|
||||
extern uint32_t _binary_model_FacePNT_class_end __asm("_binary_model_FacePNT_class_end");
|
||||
extern uint32_t _binary_model_FacePNT_class_size __asm("_binary_model_FacePNT_class_size");
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
@ -1,13 +0,0 @@
|
||||
package model;
|
||||
|
||||
public class FacePNT {
|
||||
public int position;
|
||||
public int normal;
|
||||
public int texture_coordinate;
|
||||
|
||||
FacePNT(int position, int normal, int texture_coordinate) {
|
||||
this.position = position;
|
||||
this.normal = normal;
|
||||
this.texture_coordinate = texture_coordinate;
|
||||
}
|
||||
}
|
15
model/FacePTN.class.h
Normal file
15
model/FacePTN.class.h
Normal file
@ -0,0 +1,15 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern C {
|
||||
#endif
|
||||
|
||||
extern uint32_t _binary_model_FacePTN_class_start __asm("_binary_model_FacePTN_class_start");
|
||||
extern uint32_t _binary_model_FacePTN_class_end __asm("_binary_model_FacePTN_class_end");
|
||||
extern uint32_t _binary_model_FacePTN_class_size __asm("_binary_model_FacePTN_class_size");
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
13
model/FacePTN.java
Normal file
13
model/FacePTN.java
Normal file
@ -0,0 +1,13 @@
|
||||
package model;
|
||||
|
||||
public class FacePTN {
|
||||
public int position;
|
||||
public int texture;
|
||||
public int normal;
|
||||
|
||||
FacePTN(int position, int texture, int normal) {
|
||||
this.position = position;
|
||||
this.texture = texture;
|
||||
this.normal = normal;
|
||||
}
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
package model;
|
||||
|
||||
public class ModelObject {
|
||||
public FacePNT[][] faces;
|
||||
public FacePTN[][] faces;
|
||||
}
|
||||
|
@ -10,7 +10,7 @@ public class UntitledModel {
|
||||
static {
|
||||
position = new Vec3[8];
|
||||
normal = new Vec3[6];
|
||||
texture = new Vec2[4];
|
||||
texture = new Vec2[6];
|
||||
objects = new ModelObject[1];
|
||||
position[0] = new Vec3(1.0f, 1.0f, -1.0f);
|
||||
position[1] = new Vec3(1.0f, -1.0f, -1.0f);
|
||||
@ -27,46 +27,48 @@ public class UntitledModel {
|
||||
normal[4] = new Vec3(1.0f, 0.0f, 0.0f);
|
||||
normal[5] = new Vec3(0.0f, 0.0f, -1.0f);
|
||||
texture[0] = new Vec2(1.0f, 0.0f);
|
||||
texture[1] = new Vec2(0.0f, 1.0f);
|
||||
texture[1] = new Vec2(0.0f, 0.5f);
|
||||
texture[2] = new Vec2(0.0f, 0.0f);
|
||||
texture[3] = new Vec2(1.0f, 1.0f);
|
||||
texture[3] = new Vec2(1.0f, 0.5f);
|
||||
texture[4] = new Vec2(0.0f, 1.0f);
|
||||
texture[5] = new Vec2(1.0f, 1.0f);
|
||||
objects[0] = new ModelObject();
|
||||
objects[0].faces = new FacePNT[12][3];
|
||||
objects[0].faces[0][0] = new FacePNT(4, 0, 0);
|
||||
objects[0].faces[0][1] = new FacePNT(2, 1, 0);
|
||||
objects[0].faces[0][2] = new FacePNT(0, 2, 0);
|
||||
objects[0].faces[1][0] = new FacePNT(2, 0, 1);
|
||||
objects[0].faces[1][1] = new FacePNT(7, 1, 1);
|
||||
objects[0].faces[1][2] = new FacePNT(3, 2, 1);
|
||||
objects[0].faces[2][0] = new FacePNT(6, 0, 2);
|
||||
objects[0].faces[2][1] = new FacePNT(5, 1, 2);
|
||||
objects[0].faces[2][2] = new FacePNT(7, 2, 2);
|
||||
objects[0].faces[3][0] = new FacePNT(1, 0, 3);
|
||||
objects[0].faces[3][1] = new FacePNT(7, 1, 3);
|
||||
objects[0].faces[3][2] = new FacePNT(5, 2, 3);
|
||||
objects[0].faces[4][0] = new FacePNT(0, 0, 4);
|
||||
objects[0].faces[4][1] = new FacePNT(3, 1, 4);
|
||||
objects[0].faces[4][2] = new FacePNT(1, 2, 4);
|
||||
objects[0].faces[5][0] = new FacePNT(4, 0, 5);
|
||||
objects[0].faces[5][1] = new FacePNT(1, 1, 5);
|
||||
objects[0].faces[5][2] = new FacePNT(5, 2, 5);
|
||||
objects[0].faces[6][0] = new FacePNT(4, 0, 0);
|
||||
objects[0].faces[6][1] = new FacePNT(6, 3, 0);
|
||||
objects[0].faces[6][2] = new FacePNT(2, 1, 0);
|
||||
objects[0].faces[7][0] = new FacePNT(2, 0, 1);
|
||||
objects[0].faces[7][1] = new FacePNT(6, 3, 1);
|
||||
objects[0].faces[7][2] = new FacePNT(7, 1, 1);
|
||||
objects[0].faces[8][0] = new FacePNT(6, 0, 2);
|
||||
objects[0].faces[8][1] = new FacePNT(4, 3, 2);
|
||||
objects[0].faces[8][2] = new FacePNT(5, 1, 2);
|
||||
objects[0].faces[9][0] = new FacePNT(1, 0, 3);
|
||||
objects[0].faces[9][1] = new FacePNT(3, 3, 3);
|
||||
objects[0].faces[9][2] = new FacePNT(7, 1, 3);
|
||||
objects[0].faces[10][0] = new FacePNT(0, 0, 4);
|
||||
objects[0].faces[10][1] = new FacePNT(2, 3, 4);
|
||||
objects[0].faces[10][2] = new FacePNT(3, 1, 4);
|
||||
objects[0].faces[11][0] = new FacePNT(4, 0, 5);
|
||||
objects[0].faces[11][1] = new FacePNT(0, 3, 5);
|
||||
objects[0].faces[11][2] = new FacePNT(1, 1, 5);
|
||||
objects[0].faces = new FacePTN[12][3];
|
||||
objects[0].faces[0][0] = new FacePTN(4, 0, 0);
|
||||
objects[0].faces[0][1] = new FacePTN(2, 1, 0);
|
||||
objects[0].faces[0][2] = new FacePTN(0, 2, 0);
|
||||
objects[0].faces[1][0] = new FacePTN(2, 0, 1);
|
||||
objects[0].faces[1][1] = new FacePTN(7, 1, 1);
|
||||
objects[0].faces[1][2] = new FacePTN(3, 2, 1);
|
||||
objects[0].faces[2][0] = new FacePTN(6, 3, 2);
|
||||
objects[0].faces[2][1] = new FacePTN(5, 4, 2);
|
||||
objects[0].faces[2][2] = new FacePTN(7, 1, 2);
|
||||
objects[0].faces[3][0] = new FacePTN(1, 0, 3);
|
||||
objects[0].faces[3][1] = new FacePTN(7, 1, 3);
|
||||
objects[0].faces[3][2] = new FacePTN(5, 2, 3);
|
||||
objects[0].faces[4][0] = new FacePTN(0, 3, 4);
|
||||
objects[0].faces[4][1] = new FacePTN(3, 4, 4);
|
||||
objects[0].faces[4][2] = new FacePTN(1, 1, 4);
|
||||
objects[0].faces[5][0] = new FacePTN(4, 0, 5);
|
||||
objects[0].faces[5][1] = new FacePTN(1, 1, 5);
|
||||
objects[0].faces[5][2] = new FacePTN(5, 2, 5);
|
||||
objects[0].faces[6][0] = new FacePTN(4, 0, 0);
|
||||
objects[0].faces[6][1] = new FacePTN(6, 3, 0);
|
||||
objects[0].faces[6][2] = new FacePTN(2, 1, 0);
|
||||
objects[0].faces[7][0] = new FacePTN(2, 0, 1);
|
||||
objects[0].faces[7][1] = new FacePTN(6, 3, 1);
|
||||
objects[0].faces[7][2] = new FacePTN(7, 1, 1);
|
||||
objects[0].faces[8][0] = new FacePTN(6, 3, 2);
|
||||
objects[0].faces[8][1] = new FacePTN(4, 5, 2);
|
||||
objects[0].faces[8][2] = new FacePTN(5, 4, 2);
|
||||
objects[0].faces[9][0] = new FacePTN(1, 0, 3);
|
||||
objects[0].faces[9][1] = new FacePTN(3, 3, 3);
|
||||
objects[0].faces[9][2] = new FacePTN(7, 1, 3);
|
||||
objects[0].faces[10][0] = new FacePTN(0, 3, 4);
|
||||
objects[0].faces[10][1] = new FacePTN(2, 5, 4);
|
||||
objects[0].faces[10][2] = new FacePTN(3, 4, 4);
|
||||
objects[0].faces[11][0] = new FacePTN(4, 0, 5);
|
||||
objects[0].faces[11][1] = new FacePTN(0, 3, 5);
|
||||
objects[0].faces[11][2] = new FacePTN(1, 1, 5);
|
||||
}
|
||||
}
|
||||
|
@ -4,7 +4,7 @@ public class Vec2 {
|
||||
public float x;
|
||||
public float y;
|
||||
|
||||
Vec2(float x, float y) {
|
||||
public Vec2(float x, float y) {
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
}
|
||||
|
@ -5,7 +5,7 @@ public class Vec3 {
|
||||
public float y;
|
||||
public float z;
|
||||
|
||||
Vec3(float x, float y, float z) {
|
||||
public Vec3(float x, float y, float z) {
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
this.z = z;
|
||||
|
@ -1,15 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
extern uint32_t _binary_p_Multiply_class_start __asm("_binary_p_Multiply_class_start");
|
||||
extern uint32_t _binary_p_Multiply_class_end __asm("_binary_p_Multiply_class_end");
|
||||
extern uint32_t _binary_p_Multiply_class_size __asm("_binary_p_Multiply_class_size");
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
@ -1,15 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
extern uint32_t _binary_p_Native_class_start __asm("_binary_p_Native_class_start");
|
||||
extern uint32_t _binary_p_Native_class_end __asm("_binary_p_Native_class_end");
|
||||
extern uint32_t _binary_p_Native_class_size __asm("_binary_p_Native_class_size");
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
12
p/TestResource.java
Normal file
12
p/TestResource.java
Normal file
@ -0,0 +1,12 @@
|
||||
package p;
|
||||
|
||||
import java.misc.Resource;
|
||||
|
||||
class TestResource {
|
||||
public static void test() {
|
||||
Resource.getResource("foo");
|
||||
}
|
||||
public static void main() {
|
||||
test();
|
||||
}
|
||||
}
|
@ -64,11 +64,6 @@ public class Core {
|
||||
| CoreBits.fb_r_size__fb_y_size(y_size - 3)
|
||||
| CoreBits.fb_r_size__fb_x_size((x_size * 16) / 32 - 1);
|
||||
|
||||
int fb_r_ctrl =
|
||||
CoreBits.fb_r_ctrl__vclk_div__pclk_vclk_1
|
||||
| CoreBits.fb_r_ctrl__fb_depth__565_rgb_16bit
|
||||
| CoreBits.fb_r_ctrl__fb_enable;
|
||||
|
||||
int fb_w_ctrl = CoreBits.fb_w_ctrl__fb_dither
|
||||
| CoreBits.fb_w_ctrl__fb_packmode__565_rgb_16bit;
|
||||
|
||||
@ -78,10 +73,22 @@ public class Core {
|
||||
Memory.putU4(Holly.FB_X_CLIP, fb_x_clip);
|
||||
Memory.putU4(Holly.FB_Y_CLIP, fb_y_clip);
|
||||
Memory.putU4(Holly.FB_R_SIZE, fb_r_size);
|
||||
Memory.putU4(Holly.FB_R_CTRL, fb_r_ctrl);
|
||||
Memory.putU4(Holly.FB_W_CTRL, fb_w_ctrl);
|
||||
}
|
||||
|
||||
public static void fb_r_disable() {
|
||||
Memory.putU4(Holly.FB_R_CTRL, 0);
|
||||
}
|
||||
|
||||
public static void fb_r_enable() {
|
||||
int fb_r_ctrl =
|
||||
CoreBits.fb_r_ctrl__vclk_div__pclk_vclk_1
|
||||
| CoreBits.fb_r_ctrl__fb_depth__565_rgb_16bit
|
||||
| CoreBits.fb_r_ctrl__fb_enable;
|
||||
|
||||
Memory.putU4(Holly.FB_R_CTRL, fb_r_ctrl);
|
||||
}
|
||||
|
||||
public static void start_render(int region_array_start,
|
||||
int isp_tsp_parameters_start,
|
||||
int background_start,
|
||||
|
@ -54,18 +54,6 @@ public class ISPTSP {
|
||||
public static int tsp_instruction_word__mip_map_d_adjust(int n) {
|
||||
return (n & 15) << 8;
|
||||
}
|
||||
public static int tsp_instruction_word__palette_selector4(int n) {
|
||||
return (n & 63) << 21;
|
||||
}
|
||||
public static int tsp_instruction_word__palette_selector8(int n) {
|
||||
return (n & 3) << 25;
|
||||
}
|
||||
public static int tsp_instruction_word__stride_select(int n) {
|
||||
return (n >> 25) & 1;
|
||||
}
|
||||
public static int tsp_instruction_word__texture_address(int n) {
|
||||
return (n & 2097151) << 0;
|
||||
}
|
||||
public static final int tsp_instruction_word__flip_uv__none = 0 << 17;
|
||||
public static final int tsp_instruction_word__flip_uv__v = 1 << 17;
|
||||
public static final int tsp_instruction_word__flip_uv__u = 2 << 17;
|
||||
@ -98,15 +86,27 @@ public class ISPTSP {
|
||||
public static final int tsp_instruction_word__texture_v_size__256 = 5 << 0;
|
||||
public static final int tsp_instruction_word__texture_v_size__512 = 6 << 0;
|
||||
public static final int tsp_instruction_word__texture_v_size__1024 = 7 << 0;
|
||||
public static final int tsp_instruction_word__pixel_format__1555 = 0 << 27;
|
||||
public static final int tsp_instruction_word__pixel_format__565 = 1 << 27;
|
||||
public static final int tsp_instruction_word__pixel_format__4444 = 2 << 27;
|
||||
public static final int tsp_instruction_word__pixel_format__yuv422 = 3 << 27;
|
||||
public static final int tsp_instruction_word__pixel_format__bump_map = 4 << 27;
|
||||
public static final int tsp_instruction_word__pixel_format__4bpp_palette = 5 << 27;
|
||||
public static final int tsp_instruction_word__pixel_format__8bpp_palette = 6 << 27;
|
||||
public static final int tsp_instruction_word__scan_order__twiddled = 0 << 26;
|
||||
public static final int tsp_instruction_word__scan_order__non_twiddled = 1 << 26;
|
||||
public static final int texture_control_word__mip_mapped = 1 << 31;
|
||||
public static final int texture_control_word__vq_compressed = 1 << 30;
|
||||
public static int texture_control_word__palette_selector4(int n) {
|
||||
return (n & 63) << 21;
|
||||
}
|
||||
public static int texture_control_word__palette_selector8(int n) {
|
||||
return (n & 3) << 25;
|
||||
}
|
||||
public static int texture_control_word__stride_select(int n) {
|
||||
return (n >> 25) & 1;
|
||||
}
|
||||
public static int texture_control_word__texture_address(int n) {
|
||||
return (n & 2097151) << 0;
|
||||
}
|
||||
public static final int texture_control_word__pixel_format__1555 = 0 << 27;
|
||||
public static final int texture_control_word__pixel_format__565 = 1 << 27;
|
||||
public static final int texture_control_word__pixel_format__4444 = 2 << 27;
|
||||
public static final int texture_control_word__pixel_format__yuv422 = 3 << 27;
|
||||
public static final int texture_control_word__pixel_format__bump_map = 4 << 27;
|
||||
public static final int texture_control_word__pixel_format__4bpp_palette = 5 << 27;
|
||||
public static final int texture_control_word__pixel_format__8bpp_palette = 6 << 27;
|
||||
public static final int texture_control_word__scan_order__twiddled = 0 << 26;
|
||||
public static final int texture_control_word__scan_order__non_twiddled = 1 << 26;
|
||||
}
|
||||
|
@ -1,15 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern C {
|
||||
#endif
|
||||
|
||||
extern uint32_t _binary_sega_dreamcast_holly_RegionArray_OPBSize_class_start __asm("_binary_sega_dreamcast_holly_RegionArray_OPBSize_class_start");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_RegionArray_OPBSize_class_end __asm("_binary_sega_dreamcast_holly_RegionArray_OPBSize_class_end");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_RegionArray_OPBSize_class_size __asm("_binary_sega_dreamcast_holly_RegionArray_OPBSize_class_size");
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
@ -3,6 +3,8 @@ package sega.dreamcast.holly;
|
||||
import sega.dreamcast.holly.Holly;
|
||||
import sega.dreamcast.holly.CoreBits;
|
||||
import sega.dreamcast.holly.TABits;
|
||||
import sega.dreamcast.systembus.Systembus;
|
||||
import sega.dreamcast.systembus.SystembusBits;
|
||||
import java.misc.Memory;
|
||||
|
||||
public class TAFIFOPolygonConverter {
|
||||
@ -45,14 +47,21 @@ public class TAFIFOPolygonConverter {
|
||||
|
||||
public static void wait_opaque_list()
|
||||
{
|
||||
//while ((system.ISTNRM & istnrm::end_of_transferring_opaque_list) == 0) {
|
||||
//};
|
||||
//system.ISTNRM = istnrm::end_of_transferring_opaque_list;
|
||||
while (true) {
|
||||
int istnrm = Memory.getU4(0xa05f6900);
|
||||
if ((istnrm & (1 << 7)) != 0)
|
||||
int istnrm = Memory.getU4(Systembus.ISTNRM);
|
||||
if ((istnrm & SystembusBits.istnrm__end_of_transferring_opaque_list) != 0)
|
||||
break;
|
||||
}
|
||||
Memory.putU4(0xa05f6900, (1 << 7));
|
||||
Memory.putU4(Systembus.ISTNRM, SystembusBits.istnrm__end_of_transferring_opaque_list);
|
||||
}
|
||||
|
||||
public static void wait_translucent_list()
|
||||
{
|
||||
while (true) {
|
||||
int istnrm = Memory.getU4(Systembus.ISTNRM);
|
||||
if ((istnrm & SystembusBits.istnrm__end_of_transferring_translucent_list) != 0)
|
||||
break;
|
||||
}
|
||||
Memory.putU4(Systembus.ISTNRM, SystembusBits.istnrm__end_of_transferring_translucent_list);
|
||||
}
|
||||
}
|
||||
|
@ -1,15 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern C {
|
||||
#endif
|
||||
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAGlobalParameter_end_of_list_class_start __asm("_binary_sega_dreamcast_holly_TAGlobalParameter_end_of_list_class_start");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAGlobalParameter_end_of_list_class_end __asm("_binary_sega_dreamcast_holly_TAGlobalParameter_end_of_list_class_end");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAGlobalParameter_end_of_list_class_size __asm("_binary_sega_dreamcast_holly_TAGlobalParameter_end_of_list_class_size");
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
@ -1,15 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern C {
|
||||
#endif
|
||||
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAGlobalParameter_modifier_volume_class_start __asm("_binary_sega_dreamcast_holly_TAGlobalParameter_modifier_volume_class_start");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAGlobalParameter_modifier_volume_class_end __asm("_binary_sega_dreamcast_holly_TAGlobalParameter_modifier_volume_class_end");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAGlobalParameter_modifier_volume_class_size __asm("_binary_sega_dreamcast_holly_TAGlobalParameter_modifier_volume_class_size");
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
@ -1,15 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern C {
|
||||
#endif
|
||||
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAGlobalParameter_object_list_set_class_start __asm("_binary_sega_dreamcast_holly_TAGlobalParameter_object_list_set_class_start");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAGlobalParameter_object_list_set_class_end __asm("_binary_sega_dreamcast_holly_TAGlobalParameter_object_list_set_class_end");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAGlobalParameter_object_list_set_class_size __asm("_binary_sega_dreamcast_holly_TAGlobalParameter_object_list_set_class_size");
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
@ -1,15 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern C {
|
||||
#endif
|
||||
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAGlobalParameter_polygon_type_0_class_start __asm("_binary_sega_dreamcast_holly_TAGlobalParameter_polygon_type_0_class_start");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAGlobalParameter_polygon_type_0_class_end __asm("_binary_sega_dreamcast_holly_TAGlobalParameter_polygon_type_0_class_end");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAGlobalParameter_polygon_type_0_class_size __asm("_binary_sega_dreamcast_holly_TAGlobalParameter_polygon_type_0_class_size");
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
@ -1,15 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern C {
|
||||
#endif
|
||||
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAGlobalParameter_polygon_type_1_class_start __asm("_binary_sega_dreamcast_holly_TAGlobalParameter_polygon_type_1_class_start");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAGlobalParameter_polygon_type_1_class_end __asm("_binary_sega_dreamcast_holly_TAGlobalParameter_polygon_type_1_class_end");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAGlobalParameter_polygon_type_1_class_size __asm("_binary_sega_dreamcast_holly_TAGlobalParameter_polygon_type_1_class_size");
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
@ -1,15 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern C {
|
||||
#endif
|
||||
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAGlobalParameter_polygon_type_2_class_start __asm("_binary_sega_dreamcast_holly_TAGlobalParameter_polygon_type_2_class_start");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAGlobalParameter_polygon_type_2_class_end __asm("_binary_sega_dreamcast_holly_TAGlobalParameter_polygon_type_2_class_end");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAGlobalParameter_polygon_type_2_class_size __asm("_binary_sega_dreamcast_holly_TAGlobalParameter_polygon_type_2_class_size");
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
@ -1,15 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern C {
|
||||
#endif
|
||||
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAGlobalParameter_polygon_type_3_class_start __asm("_binary_sega_dreamcast_holly_TAGlobalParameter_polygon_type_3_class_start");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAGlobalParameter_polygon_type_3_class_end __asm("_binary_sega_dreamcast_holly_TAGlobalParameter_polygon_type_3_class_end");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAGlobalParameter_polygon_type_3_class_size __asm("_binary_sega_dreamcast_holly_TAGlobalParameter_polygon_type_3_class_size");
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
@ -1,15 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern C {
|
||||
#endif
|
||||
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAGlobalParameter_polygon_type_4_class_start __asm("_binary_sega_dreamcast_holly_TAGlobalParameter_polygon_type_4_class_start");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAGlobalParameter_polygon_type_4_class_end __asm("_binary_sega_dreamcast_holly_TAGlobalParameter_polygon_type_4_class_end");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAGlobalParameter_polygon_type_4_class_size __asm("_binary_sega_dreamcast_holly_TAGlobalParameter_polygon_type_4_class_size");
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
@ -1,15 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern C {
|
||||
#endif
|
||||
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAGlobalParameter_sprite_class_start __asm("_binary_sega_dreamcast_holly_TAGlobalParameter_sprite_class_start");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAGlobalParameter_sprite_class_end __asm("_binary_sega_dreamcast_holly_TAGlobalParameter_sprite_class_end");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAGlobalParameter_sprite_class_size __asm("_binary_sega_dreamcast_holly_TAGlobalParameter_sprite_class_size");
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
@ -1,15 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern C {
|
||||
#endif
|
||||
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAGlobalParameter_user_tile_clip_class_start __asm("_binary_sega_dreamcast_holly_TAGlobalParameter_user_tile_clip_class_start");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAGlobalParameter_user_tile_clip_class_end __asm("_binary_sega_dreamcast_holly_TAGlobalParameter_user_tile_clip_class_end");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAGlobalParameter_user_tile_clip_class_size __asm("_binary_sega_dreamcast_holly_TAGlobalParameter_user_tile_clip_class_size");
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
@ -1,15 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern C {
|
||||
#endif
|
||||
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_modifier_volume_class_start __asm("_binary_sega_dreamcast_holly_TAVertexParameter_modifier_volume_class_start");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_modifier_volume_class_end __asm("_binary_sega_dreamcast_holly_TAVertexParameter_modifier_volume_class_end");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_modifier_volume_class_size __asm("_binary_sega_dreamcast_holly_TAVertexParameter_modifier_volume_class_size");
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
@ -1,15 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern C {
|
||||
#endif
|
||||
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_0_class_start __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_0_class_start");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_0_class_end __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_0_class_end");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_0_class_size __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_0_class_size");
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
@ -1,15 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern C {
|
||||
#endif
|
||||
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_1_class_start __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_1_class_start");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_1_class_end __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_1_class_end");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_1_class_size __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_1_class_size");
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
@ -1,15 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern C {
|
||||
#endif
|
||||
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_10_class_start __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_10_class_start");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_10_class_end __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_10_class_end");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_10_class_size __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_10_class_size");
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
@ -1,15 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern C {
|
||||
#endif
|
||||
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_11_class_start __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_11_class_start");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_11_class_end __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_11_class_end");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_11_class_size __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_11_class_size");
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
@ -1,15 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern C {
|
||||
#endif
|
||||
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_12_class_start __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_12_class_start");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_12_class_end __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_12_class_end");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_12_class_size __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_12_class_size");
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
@ -1,15 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern C {
|
||||
#endif
|
||||
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_13_class_start __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_13_class_start");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_13_class_end __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_13_class_end");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_13_class_size __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_13_class_size");
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
@ -1,15 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern C {
|
||||
#endif
|
||||
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_14_class_start __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_14_class_start");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_14_class_end __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_14_class_end");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_14_class_size __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_14_class_size");
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
@ -1,15 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern C {
|
||||
#endif
|
||||
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_2_class_start __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_2_class_start");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_2_class_end __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_2_class_end");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_2_class_size __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_2_class_size");
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
@ -1,15 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern C {
|
||||
#endif
|
||||
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_3_class_start __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_3_class_start");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_3_class_end __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_3_class_end");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_3_class_size __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_3_class_size");
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
@ -1,15 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern C {
|
||||
#endif
|
||||
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_4_class_start __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_4_class_start");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_4_class_end __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_4_class_end");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_4_class_size __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_4_class_size");
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
@ -1,15 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern C {
|
||||
#endif
|
||||
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_5_class_start __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_5_class_start");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_5_class_end __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_5_class_end");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_5_class_size __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_5_class_size");
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
@ -1,15 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern C {
|
||||
#endif
|
||||
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_6_class_start __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_6_class_start");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_6_class_end __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_6_class_end");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_6_class_size __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_6_class_size");
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
@ -1,15 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern C {
|
||||
#endif
|
||||
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_7_class_start __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_7_class_start");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_7_class_end __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_7_class_end");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_7_class_size __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_7_class_size");
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
@ -1,15 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern C {
|
||||
#endif
|
||||
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_8_class_start __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_8_class_start");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_8_class_end __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_8_class_end");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_8_class_size __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_8_class_size");
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
@ -1,15 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern C {
|
||||
#endif
|
||||
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_9_class_start __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_9_class_start");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_9_class_end __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_9_class_end");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_9_class_size __asm("_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_9_class_size");
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
@ -1,15 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern C {
|
||||
#endif
|
||||
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_sprite_type_0_class_start __asm("_binary_sega_dreamcast_holly_TAVertexParameter_sprite_type_0_class_start");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_sprite_type_0_class_end __asm("_binary_sega_dreamcast_holly_TAVertexParameter_sprite_type_0_class_end");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_sprite_type_0_class_size __asm("_binary_sega_dreamcast_holly_TAVertexParameter_sprite_type_0_class_size");
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
@ -1,15 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern C {
|
||||
#endif
|
||||
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_sprite_type_1_class_start __asm("_binary_sega_dreamcast_holly_TAVertexParameter_sprite_type_1_class_start");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_sprite_type_1_class_end __asm("_binary_sega_dreamcast_holly_TAVertexParameter_sprite_type_1_class_end");
|
||||
extern uint32_t _binary_sega_dreamcast_holly_TAVertexParameter_sprite_type_1_class_size __asm("_binary_sega_dreamcast_holly_TAVertexParameter_sprite_type_1_class_size");
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
Loading…
x
Reference in New Issue
Block a user