From f7c8ba294e12404b8c6bc58052a994b5ce6f4d3a Mon Sep 17 00:00:00 2001 From: Zack Buhman Date: Mon, 30 Dec 2024 17:06:00 -0600 Subject: [PATCH] new examples --- example/example.mk | 14 ++ example/g2_bus.cpp | 25 +++ example/memory_map.cpp | 20 +++ example/poppies_mosaic.cpp | 297 +++++++++++++++++++++++++++++++++ example/poppies_mosaic2.cpp | 284 +++++++++++++++++++++++++++++++ texture/poppies/poppies.data | Bin 0 -> 393216 bytes texture/poppies/poppies.data.h | 15 ++ texture/poppies/poppies.png | Bin 0 -> 28703 bytes 8 files changed, 655 insertions(+) create mode 100644 example/g2_bus.cpp create mode 100644 example/memory_map.cpp create mode 100644 example/poppies_mosaic.cpp create mode 100644 example/poppies_mosaic2.cpp create mode 100644 texture/poppies/poppies.data create mode 100644 texture/poppies/poppies.data.h create mode 100644 texture/poppies/poppies.png diff --git a/example/example.mk b/example/example.mk index 89d71d5..23928a9 100644 --- a/example/example.mk +++ b/example/example.mk @@ -679,3 +679,17 @@ VGA_TIMING_OBJ = \ example/vga_timing.elf: LDSCRIPT = $(LIB)/main.lds example/vga_timing.elf: $(START_OBJ) $(VGA_TIMING_OBJ) + +G2_BUS_OBJ = \ + example/g2_bus.o \ + sh7091/serial.o + +example/g2_bus.elf: LDSCRIPT = $(LIB)/main.lds +example/g2_bus.elf: $(START_OBJ) $(G2_BUS_OBJ) + +MEMORY_MAP_OBJ = \ + example/memory_map.o \ + sh7091/serial.o + +example/memory_map.elf: LDSCRIPT = $(LIB)/main.lds +example/memory_map.elf: $(START_OBJ) $(MEMORY_MAP_OBJ) diff --git a/example/g2_bus.cpp b/example/g2_bus.cpp new file mode 100644 index 0000000..f5984d4 --- /dev/null +++ b/example/g2_bus.cpp @@ -0,0 +1,25 @@ +#include "sh7091/serial.hpp" + +int main() +{ + serial::init(0); + + while (1) { + //*(uint32_t *)(0xa0620000) = 0xffffffff; + *(uint8_t *)(0xa0600480) = 0; + for (int i = 0; i < 30; i++) { + asm volatile ("nop"); + } + + *(uint8_t *)(0xa0600480) = 1; + for (int i = 0; i < 70; i++) { + asm volatile ("nop"); + } + + *(uint8_t *)(0xa0600480) = 0; + for (int i = 0; i < 120; i++) { + asm volatile ("nop"); + } + serial::character('.'); + } +} diff --git a/example/memory_map.cpp b/example/memory_map.cpp new file mode 100644 index 0000000..c6966c0 --- /dev/null +++ b/example/memory_map.cpp @@ -0,0 +1,20 @@ +#include + +#include "sh7091/serial.hpp" +#include "memorymap.hpp" + +void main() +{ + serial::init(0); + + serial::string("start\n"); + + for (int i = 0; i < 8388608 / 4; i++) { + texture_memory64[i] = (1 << 31) | i; + } + + serial::string("done\n"); + serial::string("done\n"); + serial::string("done\n"); + serial::string("done\n"); +} diff --git a/example/poppies_mosaic.cpp b/example/poppies_mosaic.cpp new file mode 100644 index 0000000..9a55208 --- /dev/null +++ b/example/poppies_mosaic.cpp @@ -0,0 +1,297 @@ +#include + +#include "holly/texture_memory_alloc2.hpp" +#include "holly/isp_tsp.hpp" +#include "holly/ta_fifo_polygon_converter.hpp" +#include "holly/ta_parameter.hpp" +#include "holly/ta_global_parameter.hpp" +#include "holly/ta_vertex_parameter.hpp" +#include "holly/ta_bits.hpp" +#include "holly/background.hpp" +#include "holly/region_array.hpp" +#include "holly/holly.hpp" +#include "holly/core.hpp" +#include "holly/core_bits.hpp" +#include "holly/video_output.hpp" + +#include "sh7091/store_queue.hpp" +#include "sh7091/serial.hpp" + +#include "texture/poppies/poppies.data.h" + +struct vertex { + float x; + float y; + float z; + float u; + float v; + uint32_t color; +}; + +const struct vertex strip_vertices[4] = { + // [ position ] [ uv ] + { -0.5f, 0.5f, 0.f, 0.f, 1.f}, + { -0.5f, -0.5f, 0.f, 0.f, 0.f}, + { 0.5f, 0.5f, 0.f, 1.f, 1.f}, + { 0.5f, -0.5f, 0.f, 1.f, 0.f}, +}; +constexpr uint32_t strip_length = (sizeof (strip_vertices)) / (sizeof (struct vertex)); + +void transform_start(uint32_t texture_address, const uint32_t texture_width, uint32_t texture_height) +{ + const uint32_t parameter_control_word = para_control::para_type::polygon_or_modifier_volume + | para_control::list_type::opaque + | obj_control::col_type::packed_color + | obj_control::texture; + + const uint32_t isp_tsp_instruction_word = isp_tsp_instruction_word::depth_compare_mode::greater + | isp_tsp_instruction_word::culling_mode::no_culling; + + const uint32_t tsp_instruction_word = tsp_instruction_word::src_alpha_instr::one + | tsp_instruction_word::dst_alpha_instr::zero + | tsp_instruction_word::fog_control::no_fog + | tsp_instruction_word::texture_u_size::from_int(texture_width) + | tsp_instruction_word::texture_v_size::from_int(texture_height); + + const uint32_t texture_control_word = texture_control_word::pixel_format::_565 + | texture_control_word::scan_order::non_twiddled + | texture_control_word::texture_address(texture_address / 8); + + *reinterpret_cast(store_queue) = + ta_global_parameter::polygon_type_0(parameter_control_word, + isp_tsp_instruction_word, + tsp_instruction_word, + texture_control_word, + 0, // data_size_for_sort_dma + 0 // next_address_for_sort_dma + ); + sq_transfer_32byte(ta_fifo_polygon_converter); +} + +void transform_quad_xy(float width, float height) +{ + for (uint32_t i = 0; i < strip_length; i++) { + float x = strip_vertices[i].x; + float y = strip_vertices[i].y; + float z = strip_vertices[i].z; + + x += 0.5; + y += 0.5; + x *= width; + y *= height; + + z = 1.f / (z + 10.f); + + float u = strip_vertices[i].u; + float v = strip_vertices[i].v; + + bool end_of_strip = i == strip_length - 1; + *reinterpret_cast(store_queue) = + ta_vertex_parameter::polygon_type_3(polygon_vertex_parameter_control_word(end_of_strip), + x, y, z, + u, v, + 0, // base_color + 0 // offset_color + ); + sq_transfer_32byte(ta_fifo_polygon_converter); + } +} + +void transform_quad_uv(float texture_width, float texture_height, + float width, float height) +{ + for (uint32_t i = 0; i < strip_length; i++) { + float x = strip_vertices[i].x; + float y = strip_vertices[i].y; + float z = strip_vertices[i].z; + + x += 0.5; + y += 0.5; + x *= texture_width; + y *= texture_height; + x += (640 - texture_width) / 2; + y += (480 - texture_height) / 2; + + z = 1.f / (z + 10.f); + + float u = strip_vertices[i].u; + float v = strip_vertices[i].v; + + u *= width / texture_width; + v *= height / texture_height; + + bool end_of_strip = i == strip_length - 1; + *reinterpret_cast(store_queue) = + ta_vertex_parameter::polygon_type_3(polygon_vertex_parameter_control_word(end_of_strip), + x, y, z, + u, v, + 0, // base_color + 0 // offset_color + ); + sq_transfer_32byte(ta_fifo_polygon_converter); + } +} + +void transfer_scene_xy(float width, float height) +{ + constexpr uint32_t texture_width = 512; + constexpr uint32_t texture_height = 256; + + const uint32_t texture_address = texture_memory_alloc::texture.start; + transform_start(texture_address, texture_width, texture_height); + + transform_quad_xy(width, height); + + *reinterpret_cast(store_queue) = + ta_global_parameter::end_of_list(para_control::para_type::end_of_list); + sq_transfer_32byte(ta_fifo_polygon_converter); +} + +void transfer_scene_uv(uint32_t texture_address, float width, float height) +{ + constexpr uint32_t texture_width = 512; + constexpr uint32_t texture_height = 256; + + transform_start(texture_address, texture_width, texture_height); + + transform_quad_uv(texture_width, texture_height, + width, height); + + *reinterpret_cast(store_queue) = + ta_global_parameter::end_of_list(para_control::para_type::end_of_list); + sq_transfer_32byte(ta_fifo_polygon_converter); +} + +void copy_poppies_texture() +{ + auto src = reinterpret_cast(&_binary_texture_poppies_poppies_data_start); + auto size = reinterpret_cast(&_binary_texture_poppies_poppies_data_size); + auto texture = reinterpret_cast(&texture_memory64[texture_memory_alloc::texture.start / 4]); + for (uint32_t px = 0; px < size / 3; px++) { + uint8_t r = src[px * 3 + 0]; + uint8_t g = src[px * 3 + 1]; + uint8_t b = src[px * 3 + 2]; + + uint16_t rgb565 = ((r / 8) << 11) | ((g / 4) << 5) | ((b / 8) << 0); + texture[px] = rgb565; + } +} + +int main() +{ + serial::init(0); + + constexpr uint32_t ta_alloc = ta_alloc_ctrl::pt_opb::no_list + | ta_alloc_ctrl::tm_opb::no_list + | ta_alloc_ctrl::t_opb::no_list + | ta_alloc_ctrl::om_opb::no_list + | ta_alloc_ctrl::o_opb::_32x4byte; + + constexpr int render_passes = 1; + constexpr struct opb_size opb_size[render_passes] = { + { + .opaque = 32 * 4, + .opaque_modifier = 0, + .translucent = 0, + .translucent_modifier = 0, + .punch_through = 0 + } + }; + + holly.SOFTRESET = softreset::pipeline_soft_reset + | softreset::ta_soft_reset; + holly.SOFTRESET = 0; + + core_init(); + + constexpr int framebuffer_width = 640; + constexpr int framebuffer_height = 480; + constexpr int framebuffer_tile_width = framebuffer_width / 32; + constexpr int framebuffer_tile_height = framebuffer_height / 32; + + region_array_multipass(framebuffer_tile_width, + framebuffer_tile_height, + opb_size, + render_passes, + texture_memory_alloc::region_array[0].start, + texture_memory_alloc::object_list[0].start); + + background_parameter2(texture_memory_alloc::background[0].start, + 0xff220033); + + /* + constexpr int rtt_width = 512; + constexpr int rtt_height = 256; + constexpr int rtt_tile_width = rtt_width / 32; + constexpr int rtt_tile_height = rtt_height / 32; + + region_array_multipass(rtt_tile_width, + rtt_tile_height, + opb_size, + render_passes, + texture_memory_alloc::region_array[1].start, + texture_memory_alloc::object_list[1].start); + + background_parameter2(texture_memory_alloc::background[1].start, + 0xff22ff33); + */ + + copy_poppies_texture(); + + video_output::set_mode_vga(); + + float theta = 0; + constexpr float half_degree = 0.01745329f / 2.f; + + int fb = 0; + while (true) { + float sin = (__builtin_sinf(theta) + 1.0) / 2.f * (15.f/16.f) + 1.f/16.f; + float width = 512.f; + float height = 256.f; + + /* + ta_polygon_converter_init2(texture_memory_alloc::isp_tsp_parameters[1].start, + texture_memory_alloc::isp_tsp_parameters[1].end, + texture_memory_alloc::object_list[1].start, + texture_memory_alloc::object_list[1].end, + opb_size[0].total(), + ta_alloc, + rtt_tile_width, + rtt_tile_height); + transfer_scene_xy(width, height); + ta_wait_opaque_list(); + const uint32_t texture_area = 0x100'0000; + const uint32_t rtt_address = texture_memory_alloc::texture.start + 0x80000; + core_start_render2(texture_memory_alloc::region_array[1].start, + texture_memory_alloc::isp_tsp_parameters[1].start, + texture_memory_alloc::background[0].start, + texture_area | rtt_address, + rtt_width); + core_wait_end_of_render_video(); + */ + + ta_polygon_converter_init2(texture_memory_alloc::isp_tsp_parameters[0].start, + texture_memory_alloc::isp_tsp_parameters[0].end, + texture_memory_alloc::object_list[0].start, + texture_memory_alloc::object_list[0].end, + opb_size[0].total(), + ta_alloc, + framebuffer_tile_width, + framebuffer_tile_height); + transfer_scene_xy(width, height); + ta_wait_opaque_list(); + core_start_render2(texture_memory_alloc::region_array[0].start, + texture_memory_alloc::isp_tsp_parameters[0].start, + texture_memory_alloc::background[0].start, + texture_memory_alloc::framebuffer[fb].start, + framebuffer_width); + core_wait_end_of_render_video(); + + while (!spg_status::vsync(holly.SPG_STATUS)); + holly.FB_R_SOF1 = texture_memory_alloc::framebuffer[fb].start; + while (spg_status::vsync(holly.SPG_STATUS)); + + theta += half_degree; + fb += 1; + } +} diff --git a/example/poppies_mosaic2.cpp b/example/poppies_mosaic2.cpp new file mode 100644 index 0000000..b97f778 --- /dev/null +++ b/example/poppies_mosaic2.cpp @@ -0,0 +1,284 @@ +#include + +#include "align.hpp" +#include "holly/video_output.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/ta_global_parameter.hpp" +#include "holly/ta_vertex_parameter.hpp" +#include "holly/ta_bits.hpp" +#include "holly/isp_tsp.hpp" +#include "holly/region_array.hpp" +#include "holly/background.hpp" +#include "memorymap.hpp" + +#include "sh7091/store_queue.hpp" + +#include "texture/poppies/poppies.data.h" + +struct vertex { + float x; + float y; + float z; + float u; + float v; + uint32_t color; +}; + +const struct vertex strip_vertices[4] = { + // [ position ] [ uv ] + { -0.5f, 0.5f, 0.f, 0.f, 1.f}, + { -0.5f, -0.5f, 0.f, 0.f, 0.f}, + { 0.5f, 0.5f, 0.f, 1.f, 1.f}, + { 0.5f, -0.5f, 0.f, 1.f, 0.f}, +}; +constexpr uint32_t strip_length = (sizeof (strip_vertices)) / (sizeof (struct vertex)); + +void transform_start(uint32_t texture_address, const uint32_t texture_width, uint32_t texture_height) +{ + const uint32_t parameter_control_word = para_control::para_type::polygon_or_modifier_volume + | para_control::list_type::opaque + | obj_control::col_type::packed_color + | obj_control::texture; + + const uint32_t isp_tsp_instruction_word = isp_tsp_instruction_word::depth_compare_mode::greater + | isp_tsp_instruction_word::culling_mode::no_culling; + + const uint32_t tsp_instruction_word = tsp_instruction_word::src_alpha_instr::one + | tsp_instruction_word::dst_alpha_instr::zero + | tsp_instruction_word::fog_control::no_fog + | tsp_instruction_word::texture_u_size::from_int(texture_width) + | tsp_instruction_word::texture_v_size::from_int(texture_height) + //| tsp_instruction_word::filter_mode::bilinear_filter + //| tsp_instruction_word::clamp_uv::uv; + ; + + const uint32_t texture_control_word = texture_control_word::pixel_format::_565 + | texture_control_word::scan_order::non_twiddled + | texture_control_word::texture_address(texture_address / 8); + + *reinterpret_cast(store_queue) = + ta_global_parameter::polygon_type_0(parameter_control_word, + isp_tsp_instruction_word, + tsp_instruction_word, + texture_control_word, + 0, // data_size_for_sort_dma + 0 // next_address_for_sort_dma + ); + sq_transfer_32byte(ta_fifo_polygon_converter); +} + +void transform_quad_xy(float width, float height) +{ + for (uint32_t i = 0; i < strip_length; i++) { + float x = strip_vertices[i].x; + float y = strip_vertices[i].y; + float z = strip_vertices[i].z; + + x += 0.5; + y += 0.5; + x *= width; + y *= height; + + z = 1.f / (z + 10.f); + + float u = strip_vertices[i].u; + float v = strip_vertices[i].v; + + bool end_of_strip = i == strip_length - 1; + *reinterpret_cast(store_queue) = + ta_vertex_parameter::polygon_type_3(polygon_vertex_parameter_control_word(end_of_strip), + x, y, z, + u, v, + 0, // base_color + 0 // offset_color + ); + sq_transfer_32byte(ta_fifo_polygon_converter); + } +} + +void transform_quad_uv(float texture_width, float texture_height, + float width, float height) +{ + for (uint32_t i = 0; i < strip_length; i++) { + float x = strip_vertices[i].x; + float y = strip_vertices[i].y; + float z = strip_vertices[i].z; + + x += 0.5; + y += 0.5; + x *= texture_width; + y *= texture_height; + x += (640 - texture_width) / 2; + y += (480 - texture_height) / 2; + + z = 1.f / (z + 10.f); + + float u = strip_vertices[i].u; + float v = strip_vertices[i].v; + + u *= width / texture_width; + v *= height / texture_height; + + bool end_of_strip = i == strip_length - 1; + *reinterpret_cast(store_queue) = + ta_vertex_parameter::polygon_type_3(polygon_vertex_parameter_control_word(end_of_strip), + x, y, z, + u, v, + 0, // base_color + 0 // offset_color + ); + sq_transfer_32byte(ta_fifo_polygon_converter); + } +} + +void transfer_scene_xy(float width, float height) +{ + constexpr uint32_t texture_width = 512; + constexpr uint32_t texture_height = 256; + + const uint32_t texture_address = texture_memory_alloc::texture.start; + transform_start(texture_address, texture_width, texture_height); + + transform_quad_xy(width, height); + + *reinterpret_cast(store_queue) = + ta_global_parameter::end_of_list(para_control::para_type::end_of_list); + sq_transfer_32byte(ta_fifo_polygon_converter); +} + +void transfer_scene_uv(uint32_t texture_address, float width, float height) +{ + constexpr uint32_t texture_width = 512; + constexpr uint32_t texture_height = 256; + + transform_start(texture_address, texture_width, texture_height); + + transform_quad_uv(texture_width, texture_height, + width, height); + + *reinterpret_cast(store_queue) = + ta_global_parameter::end_of_list(para_control::para_type::end_of_list); + sq_transfer_32byte(ta_fifo_polygon_converter); +} + +void copy_poppies_texture() +{ + auto src = reinterpret_cast(&_binary_texture_poppies_poppies_data_start); + auto size = reinterpret_cast(&_binary_texture_poppies_poppies_data_size); + auto texture = reinterpret_cast(&texture_memory64[texture_memory_alloc::texture.start / 4]); + for (uint32_t px = 0; px < size / 3; px++) { + uint8_t r = src[px * 3 + 0]; + uint8_t g = src[px * 3 + 1]; + uint8_t b = src[px * 3 + 2]; + + uint16_t rgb565 = ((r / 8) << 11) | ((g / 4) << 5) | ((b / 8) << 0); + texture[px] = rgb565; + } +} + +constexpr uint32_t ta_alloc = ta_alloc_ctrl::pt_opb::no_list + | ta_alloc_ctrl::tm_opb::no_list + | ta_alloc_ctrl::t_opb::no_list + | ta_alloc_ctrl::om_opb::no_list + | ta_alloc_ctrl::o_opb::_16x4byte; + +constexpr struct opb_size opb_size = { .opaque = 16 * 4 + , .opaque_modifier = 0 + , .translucent = 0 + , .translucent_modifier = 0 + , .punch_through = 0 + }; + +void render_xy(const uint32_t width, const uint32_t height) +{ + ta_polygon_converter_init(opb_size.total(), + ta_alloc, + 512 / 32, + 256 / 32); + + transfer_scene_xy(width, height); + + ta_wait_opaque_list(); +} + +void render_uv(const uint32_t texture_address, const uint32_t width, const uint32_t height) +{ + ta_polygon_converter_init(opb_size.total(), + ta_alloc, + 640 / 32, + 480 / 32); + + transfer_scene_uv(texture_address, width, height); + + ta_wait_opaque_list(); +} + +void main() +{ + video_output::set_mode_vga(); + copy_poppies_texture(); + + holly.SOFTRESET = softreset::pipeline_soft_reset + | softreset::ta_soft_reset; + holly.SOFTRESET = 0; + + core_init(); + + uint32_t frame_ix = 0; + + constexpr uint32_t texture_buffer_width = 512; + constexpr uint32_t texture_buffer_height = 256; + + float theta = 0; + //int step = 600; + constexpr float half_degree = 0.01745329f / 2.f; + + while (1) { + float sin = (__builtin_sinf(theta) + 1.0) / 2.f * (31.f/32.f) + 1.f/32.f; + //const int steps = 600; + //float triangle = 4.f / steps * __builtin_fabsf(((step - steps/4) % steps) - (steps / 2.f)) - 1.f; + //float sin = __builtin_fabsf(triangle) * 15.f/16.f + 1.f/16.f; + float width = 512.f * sin; + float height = 256.f * sin; + //step += 1; + + background_parameter(0xff2288aa); + region_array2(texture_buffer_width / 32, // width + texture_buffer_height / 32, // height + opb_size + ); + + constexpr uint32_t texture_buffer = texture_memory_alloc::texture.start + 512 * 256 * 2; + + render_xy(width, height); + core_start_render(0x100'0000 | texture_buffer, // 64-bit area + texture_buffer_width // frame_width + ); + core_wait_end_of_render_video(); + + background_parameter(0xff220000); + region_array2(640 / 32, // width + 480 / 32, // height + opb_size + ); + + render_uv(texture_buffer, width, height); + core_start_render(texture_memory_alloc::framebuffer[frame_ix].start, // 32-bit area + 640 // frame_width + ); + core_wait_end_of_render_video(); + + while (!spg_status::vsync(holly.SPG_STATUS)); + core_flip(frame_ix); + while (spg_status::vsync(holly.SPG_STATUS)); + + theta += half_degree; + frame_ix = (frame_ix + 1) & 1; + } +} diff --git a/texture/poppies/poppies.data b/texture/poppies/poppies.data new file mode 100644 index 0000000000000000000000000000000000000000..8fdeb468f87cd2eaf669c853371c0344c50cd893 GIT binary patch literal 393216 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 literal 0 HcmV?d00001 diff --git a/texture/poppies/poppies.data.h b/texture/poppies/poppies.data.h new file mode 100644 index 0000000..8e629e4 --- /dev/null +++ b/texture/poppies/poppies.data.h @@ -0,0 +1,15 @@ +#pragma once + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern uint32_t _binary_texture_poppies_poppies_data_start __asm("_binary_texture_poppies_poppies_data_start"); +extern uint32_t _binary_texture_poppies_poppies_data_end __asm("_binary_texture_poppies_poppies_data_end"); +extern uint32_t _binary_texture_poppies_poppies_data_size __asm("_binary_texture_poppies_poppies_data_size"); + +#ifdef __cplusplus +} +#endif diff --git a/texture/poppies/poppies.png b/texture/poppies/poppies.png new file mode 100644 index 0000000000000000000000000000000000000000..2a0c20553a745d726ce92aaeee53e96d84f04df1 GIT binary patch literal 28703 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 O0000