diff --git a/example/macaw.cpp b/example/macaw.cpp index 0661ecd..e0c7391 100644 --- a/example/macaw.cpp +++ b/example/macaw.cpp @@ -2,16 +2,19 @@ #include "align.hpp" -#include "holly/texture_memory_alloc.hpp" #include "holly/holly.hpp" -#include "holly/core.hpp" #include "holly/core_bits.hpp" -#include "holly/ta_fifo_polygon_converter.hpp" -#include "holly/ta_parameter.hpp" +#include "holly/isp_tsp.hpp" +#include "holly/ta_bits.hpp" + #include "holly/ta_global_parameter.hpp" #include "holly/ta_vertex_parameter.hpp" -#include "holly/ta_bits.hpp" -#include "holly/isp_tsp.hpp" + +#include "holly/ta_fifo_polygon_converter.hpp" +#include "holly/ta_parameter.hpp" +#include "holly/core.hpp" + +#include "holly/texture_memory_alloc.hpp" #include "holly/region_array.hpp" #include "holly/background.hpp" #include "holly/video_output.hpp" diff --git a/holly/isp_tsp.hpp b/holly/isp_tsp.hpp index 1a5b669..20712a6 100644 --- a/holly/isp_tsp.hpp +++ b/holly/isp_tsp.hpp @@ -17,7 +17,7 @@ namespace isp_tsp_instruction_word { namespace volume_instruction { constexpr uint32_t normal_polygon = 0 << 29; constexpr uint32_t inside_last_polygon = 1 << 29; - constexpr uint32_t outside_last_polygon = 1 << 29; + constexpr uint32_t outside_last_polygon = 2 << 29; } namespace culling_mode { diff --git a/regs/isp_tsp.csv b/regs/isp_tsp.csv new file mode 100644 index 0000000..0859693 --- /dev/null +++ b/regs/isp_tsp.csv @@ -0,0 +1,126 @@ +"register_name","enum_name","bits","bit_name","value","mask","description" +"isp_tsp_instruction_word","depth_compare_mode","31-29","never",0,, +"isp_tsp_instruction_word","depth_compare_mode","31-29","less",1,, +"isp_tsp_instruction_word","depth_compare_mode","31-29","equal",2,, +"isp_tsp_instruction_word","depth_compare_mode","31-29","less_or_equal",3,, +"isp_tsp_instruction_word","depth_compare_mode","31-29","greater",4,, +"isp_tsp_instruction_word","depth_compare_mode","31-29","greater_or_equal",5,, +"isp_tsp_instruction_word","depth_compare_mode","31-29","not_equal",6,, +"isp_tsp_instruction_word","depth_compare_mode","31-29","always",7,, +,,,,,, +"isp_tsp_instruction_word","volume_instruction","31-29","normal_polygon",0,, +"isp_tsp_instruction_word","volume_instruction","31-29","inside_last_polygon",1,, +"isp_tsp_instruction_word","volume_instruction","31-29","outside_last_polygon",2,, +,,,,,, +"isp_tsp_instruction_word","culling_mode","28-27","no_culling",0,, +"isp_tsp_instruction_word","culling_mode","28-27","cull_if_small",1,, +"isp_tsp_instruction_word","culling_mode","28-27","cull_if_negative",2,, +"isp_tsp_instruction_word","culling_mode","28-27","cull_if_positive",3,, +,,,,,, +"isp_tsp_instruction_word",,26,"z_write_disable",1,, +"isp_tsp_instruction_word",,25,"texture",1,, +"isp_tsp_instruction_word",,24,"offset",1,, +"isp_tsp_instruction_word",,23,"gouraud_shading",1,, +"isp_tsp_instruction_word",,22,"16bit_uv",1,, +"isp_tsp_instruction_word",,21,"cache_bypass",1,, +"isp_tsp_instruction_word",,20,"dcalc_ctrl",1,, +,,,,,, +"tsp_instruction_word","src_alpha_instr","31-29","zero",0,, +"tsp_instruction_word","src_alpha_instr","31-29","one",1,, +"tsp_instruction_word","src_alpha_instr","31-29","other_color",2,, +"tsp_instruction_word","src_alpha_instr","31-29","inverse_other_color",3,, +"tsp_instruction_word","src_alpha_instr","31-29","src_alpha",4,, +"tsp_instruction_word","src_alpha_instr","31-29","inverse_src_alpha",5,, +"tsp_instruction_word","src_alpha_instr","31-29","dst_alpha",6,, +"tsp_instruction_word","src_alpha_instr","31-29","inverse_dst_alpha",7,, +,,,,,, +"tsp_instruction_word","dst_alpha_instr","28-26","zero",0,, +"tsp_instruction_word","dst_alpha_instr","28-26","one",1,, +"tsp_instruction_word","dst_alpha_instr","28-26","other_color",2,, +"tsp_instruction_word","dst_alpha_instr","28-26","inverse_other_color",3,, +"tsp_instruction_word","dst_alpha_instr","28-26","src_alpha",4,, +"tsp_instruction_word","dst_alpha_instr","28-26","inverse_src_alpha",5,, +"tsp_instruction_word","dst_alpha_instr","28-26","dst_alpha",6,, +"tsp_instruction_word","dst_alpha_instr","28-26","inverse_dst_alpha",7,, +,,,,,, +"tsp_instruction_word","src_select",25,"primary_accumulation_buffer",0,, +"tsp_instruction_word","src_select",25,"secondary_accumulation_buffer",1,, +,,,,,, +"tsp_instruction_word","dst_select",24,"primary_accumulation_buffer",0,, +"tsp_instruction_word","dst_select",24,"secondary_accumulation_buffer",1,, +,,,,,, +"tsp_instruction_word","fog_control","23-22","look_up_table","0b00",, +"tsp_instruction_word","fog_control","23-22","per_vertex","0b01",, +"tsp_instruction_word","fog_control","23-22","no_fog","0b10",, +"tsp_instruction_word","fog_control","23-22","look_up_table_mode_2","0b11",, +,,,,,, +"tsp_instruction_word",,21,"color_clamp",1,, +,,,,,, +"tsp_instruction_word",,20,"use_alpha",1,, +,,,,,, +"tsp_instruction_word",,19,"ignore_texture_alpha",1,, +,,,,,, +"tsp_instruction_word","flip_uv","18-17","none",0,, +"tsp_instruction_word","flip_uv","18-17","v",1,, +"tsp_instruction_word","flip_uv","18-17","u",2,, +"tsp_instruction_word","flip_uv","18-17","uv",3,, +,,,,,, +"tsp_instruction_word","clamp_uv","16-15","none",0,, +"tsp_instruction_word","clamp_uv","16-15","v",1,, +"tsp_instruction_word","clamp_uv","16-15","u",2,, +"tsp_instruction_word","clamp_uv","16-15","uv",3,, +,,,,,, +"tsp_instruction_word","filter_mode","14-13","point_sampled","0b00",, +"tsp_instruction_word","filter_mode","14-13","bilinear_filter","0b01",, +"tsp_instruction_word","filter_mode","14-13","trilinear_pass_a","0b10",, +"tsp_instruction_word","filter_mode","14-13","trilinear_pass_b","0b11",, +,,,,,, +"tsp_instruction_word",,12,"super_sample_texture",1,, +,,,,,, +"tsp_instruction_word",,"11-8","mip_map_d_adjust",,"0b1111", +,,,,,, +"tsp_instruction_word","texture_shading_instruction","7-6","decal",0,, +"tsp_instruction_word","texture_shading_instruction","7-6","modulate",1,, +"tsp_instruction_word","texture_shading_instruction","7-6","decal_alpha",2,, +"tsp_instruction_word","texture_shading_instruction","7-6","modulate_alpha",3,, +,,,,,, +"tsp_instruction_word","texture_u_size","5-3",8,0,, +"tsp_instruction_word","texture_u_size","5-3",16,1,, +"tsp_instruction_word","texture_u_size","5-3",32,2,, +"tsp_instruction_word","texture_u_size","5-3",64,3,, +"tsp_instruction_word","texture_u_size","5-3",128,4,, +"tsp_instruction_word","texture_u_size","5-3",256,5,, +"tsp_instruction_word","texture_u_size","5-3",512,6,, +"tsp_instruction_word","texture_u_size","5-3",1024,7,, +,,,,,, +"tsp_instruction_word","texture_v_size","2-0",8,0,, +"tsp_instruction_word","texture_v_size","2-0",16,1,, +"tsp_instruction_word","texture_v_size","2-0",32,2,, +"tsp_instruction_word","texture_v_size","2-0",64,3,, +"tsp_instruction_word","texture_v_size","2-0",128,4,, +"tsp_instruction_word","texture_v_size","2-0",256,5,, +"tsp_instruction_word","texture_v_size","2-0",512,6,, +"tsp_instruction_word","texture_v_size","2-0",1024,7,, +,,,,,, +"texture_control_word",,31,"mip_mapped",1,, +,,,,,, +"texture_control_word",,30,"vq_compressed",1,, +,,,,,, +"tsp_instruction_word","pixel_format","29-27",1555,0,, +"tsp_instruction_word","pixel_format","29-27",565,1,, +"tsp_instruction_word","pixel_format","29-27",4444,2,, +"tsp_instruction_word","pixel_format","29-27","yuv422",3,, +"tsp_instruction_word","pixel_format","29-27","bump_map",4,, +"tsp_instruction_word","pixel_format","29-27","4bpp_palette",5,, +"tsp_instruction_word","pixel_format","29-27","8bpp_palette",6,, +,,,,,, +"tsp_instruction_word","scan_order",26,"twiddled",0,, +"tsp_instruction_word","scan_order",26,"non_twiddled",1,, +,,,,,, +"tsp_instruction_word",,"26-21","palette_selector4",,"0x3f", +,,,,,, +"tsp_instruction_word",,"26-25","palette_selector8",,"0x3", +,,,,,, +"tsp_instruction_word",,25,"stride_select",,, +,,,,,, +"tsp_instruction_word",,"20-0","texture_address",,"0x1fffff", diff --git a/regs/isp_tsp.ods b/regs/isp_tsp.ods new file mode 100644 index 0000000..ccf73e1 Binary files /dev/null and b/regs/isp_tsp.ods differ diff --git a/regs/ta_bits.csv b/regs/ta_bits.csv index 6019e5a..b171697 100644 --- a/regs/ta_bits.csv +++ b/regs/ta_bits.csv @@ -17,25 +17,25 @@ "TA_ALLOC_CTRL","opb_mode",20,"increasing_addresses",0,, "TA_ALLOC_CTRL","opb_mode",20,"decreasing_addresses",1,, "TA_ALLOC_CTRL","pt_opb","17-16","no_list",0,, -"TA_ALLOC_CTRL","pt_opb","17-16","_8x4byte",1,, -"TA_ALLOC_CTRL","pt_opb","17-16","_16x4byte",2,, -"TA_ALLOC_CTRL","pt_opb","17-16","_32x4byte",3,, +"TA_ALLOC_CTRL","pt_opb","17-16","8x4byte",1,, +"TA_ALLOC_CTRL","pt_opb","17-16","16x4byte",2,, +"TA_ALLOC_CTRL","pt_opb","17-16","32x4byte",3,, "TA_ALLOC_CTRL","tm_opb","13-12","no_list",0,, -"TA_ALLOC_CTRL","tm_opb","13-12","_8x4byte",1,, -"TA_ALLOC_CTRL","tm_opb","13-12","_16x4byte",2,, -"TA_ALLOC_CTRL","tm_opb","13-12","_32x4byte",3,, +"TA_ALLOC_CTRL","tm_opb","13-12","8x4byte",1,, +"TA_ALLOC_CTRL","tm_opb","13-12","16x4byte",2,, +"TA_ALLOC_CTRL","tm_opb","13-12","32x4byte",3,, "TA_ALLOC_CTRL","t_opb","9-8","no_list",0,, -"TA_ALLOC_CTRL","t_opb","9-8","_8x4byte",1,, -"TA_ALLOC_CTRL","t_opb","9-8","_16x4byte",2,, -"TA_ALLOC_CTRL","t_opb","9-8","_32x4byte",3,, +"TA_ALLOC_CTRL","t_opb","9-8","8x4byte",1,, +"TA_ALLOC_CTRL","t_opb","9-8","16x4byte",2,, +"TA_ALLOC_CTRL","t_opb","9-8","32x4byte",3,, "TA_ALLOC_CTRL","om_opb","5-4","no_list",0,, -"TA_ALLOC_CTRL","om_opb","5-4","_8x4byte",1,, -"TA_ALLOC_CTRL","om_opb","5-4","_16x4byte",2,, -"TA_ALLOC_CTRL","om_opb","5-4","_32x4byte",3,, +"TA_ALLOC_CTRL","om_opb","5-4","8x4byte",1,, +"TA_ALLOC_CTRL","om_opb","5-4","16x4byte",2,, +"TA_ALLOC_CTRL","om_opb","5-4","32x4byte",3,, "TA_ALLOC_CTRL","o_opb","1-0","no_list",0,, -"TA_ALLOC_CTRL","o_opb","1-0","_8x4byte",1,, -"TA_ALLOC_CTRL","o_opb","1-0","_16x4byte",2,, -"TA_ALLOC_CTRL","o_opb","1-0","_32x4byte",3,, +"TA_ALLOC_CTRL","o_opb","1-0","8x4byte",1,, +"TA_ALLOC_CTRL","o_opb","1-0","16x4byte",2,, +"TA_ALLOC_CTRL","o_opb","1-0","32x4byte",3,, ,,,,,, "TA_LIST_INIT",,31,"list_init",1,, ,,,,,, diff --git a/regs/ta_bits.ods b/regs/ta_bits.ods index a979772..11e91ba 100644 Binary files a/regs/ta_bits.ods and b/regs/ta_bits.ods differ