68 Commits

Author SHA1 Message Date
d2d085e29b 20kdm2: with two volumes 2025-04-26 09:52:44 -05:00
664813acb2 example/bsp: add katdm3 2025-04-26 01:05:45 -05:00
0d91fc9b2c female: add exclusion modifier volume 2025-04-01 07:34:56 -05:00
f70603f1ca holly: add software_ta 2025-02-12 14:27:41 -06:00
37ccafc9c8 core: add timeout bool 2025-02-11 14:13:03 -06:00
058d1d658c example: add elizabeth and speck 2025-02-06 08:25:17 -06:00
6c3aba1dc3 example/testscene: draw everything 2025-02-01 03:53:06 -06:00
4d5205a8a0 add testground 2025-01-31 10:03:59 -06:00
b156e2d24e wiffle_screen_space_store_queue2: add alpha blending 2025-01-28 08:59:30 -06:00
65d768bdaf screen space sobel 2025-01-25 03:48:57 -06:00
ddd7e1dcb6 core: add core_start_render3 2025-01-25 01:48:11 -06:00
c7c0ce277a add sprite_gouraud/texture_memory_alloc3 2025-01-24 22:47:28 -06:00
540dec3299 gdrom_jvm_boot: jump to _start 2025-01-01 12:02:14 -06:00
2e2290cc8c core_bits, tools 2024-12-31 13:27:46 -06:00
7aa1b3d7f5 add isp_tsp spreadsheet 2024-12-27 10:13:16 -06:00
366432e4af common.lds: fix vbr alignment 2024-12-05 20:50:02 -06:00
8027c591e8 ftdi_transfer: add command line parsing 2024-11-01 13:09:27 -05:00
ff7a03a75c serial_transfer: rewrite 2024-10-26 04:54:06 -05:00
71fb02e03d video_output: remove redundant header includes 2024-10-26 04:54:06 -05:00
7e535e8038 common: quote the include path 2024-10-17 22:49:39 -05:00
448da5f72a holly: add ISTERR checking
I'd like to improve this at some point.
2024-09-13 05:43:50 -05:00
03403c95aa example: add sheik 2024-09-13 03:55:02 -05:00
8cead9614f add pipelined rendering examples
This adds a new texture memory allocation header,
texture_memory_alloc2.hpp, with two of each memory area.

This also adds two new examples, "cube_textured" and "cube_vq" that
demonstrate using the new texture_memory_alloc2 to perform CORE
rendering, geometry transformation, and tile acceleration
concurrently.
2024-09-09 04:20:40 -05:00
dd5969dc1f example/: add vq and sierpinski 2024-05-25 20:42:59 -05:00
0510598233 generic_sparse_struct: constexpr constructors
ta_polygon_converter_transfer: const buf
2024-05-19 08:23:13 -05:00
bcaa9789cf texture_memory_alloc: rework texture memory allocation
The previous texture_memory_alloc.hpp was written based on an
incorrect understanding of the "32-bit" and "64-bit" texture memory
address mapping.

The primary motivation is to rearrange the texture memory address map
so that "textures" (64-bit access) do not overlap with 32-bit
accesses, such as REGION_BASE or PARAM_BASE.
2024-05-12 17:06:00 +08:00
0806ed9ac7 example: verify everything compiles successfully 2024-03-09 19:05:41 +08:00
f8dc9f1250 example: add video_output example
The intent of this example is to change video output modes in response
to swapping the cable type.
2024-03-09 17:15:36 +08:00
c0e10fe8f1 vga: delete
This is replaced with the (slightly cleaner) holly/video_output.
2024-03-08 20:46:55 +08:00
db323c85c5 dve: initial description of DVE bits
This also implements primitive cable-detection and video output.
2024-03-08 18:27:12 +08:00
eafd4e6f23 holly: add video output data 2024-03-08 16:17:59 +08:00
c95182081a gdrom: add gdrom_command_packet_format.hpp
This re-uses most of the code from the ta_parameter_format
generator--this was factored out to "generic_sparse_struct.py".
2024-02-26 15:31:40 +08:00
59708cc3cf examples: add software_ta 2024-02-23 23:47:43 +08:00
4e71e002bf examples: add dump_object_list 2024-02-23 18:14:24 +08:00
a71ac1c4b1 suzanne_profile: remove tearing
Though I did spend much time thinking about this, my idea was not correct.

The "tearing" and "previous frame is being shown while it is being drawn" is
simply because that's exactly what the logic in holly/core.cpp did.

This is no longer the case--by the time the newly-created core_flip function is
called, the core render is complete, and we should switch the FB_R_SOF1 to the
current framebuffer, not the one that is going to be written on next frame.

This also modifies alt.lds so that (non-startup) code now runs in the P1 area,
with operand/instruction/copyback caches enabled. This caused a 10x speed
increase in my testing.
2024-02-02 13:11:32 +08:00
f400fe6412 example: suzanne_profile: incomplete
This has turned in to an experiment related to texture sampling behavior on the
Dreamcast.
2024-02-02 08:18:18 +08:00
1f6a29f379 example: update several examples 2024-01-03 23:32:37 +08:00
dcb9f36120 sh7091_bits.ods: partial
Notably missing is:

- BSC (PDTRA / PCTRA)

This also updates a handful of files to use the new sh7091_bits.hpp.
2024-01-01 23:43:06 +08:00
e8aea009c6 example: add heart
I originally planned to make this a render-to-texture demo, but this
is fairly interesting by itself.
2023-12-31 20:19:41 +08:00
549254615e example: modifier_volume_with_two_volumes 2023-12-30 21:50:54 +08:00
de76c0bed2 ta_parameter_format: generate TA parameter formats from csv
This replaces all handwritten TA parameter format structures with
automatically generated structures.

All valid TA parameter formats are now declared.
2023-12-30 18:55:09 +08:00
5db6272ceb example: add modifier volume
This creates a modifier volume with a cube that intersects a plane.
2023-12-30 15:11:22 +08:00
2a721d8c01 core: enable span/offset sort 2023-12-25 23:41:11 +08:00
6f010c20f5 core: remove flycast hack
I think this was only relevant when END_OF_RENDER_VIDEO was in use;
this doesn't seem to affect flycast's END_OF_RENDER_TSP
generation. The former is definitely a flycast bug.
2023-12-25 22:17:07 +08:00
54f09bad01 ta_fifo_polygon_converter: properly calculate ta_next_opb_offset
The main issue with the previous code:

  constexpr uint32_t tiles = (640 / 32) * (320 / 32);

Should have been:

  constexpr uint32_t tiles = (640 / 32) * (480 / 32);

The consequence of this is some OPBs were being overwritten by
TA_NEXT_OPB, causing corruption (missing triangles, incomplete
drawings) in some tiles.
2023-12-25 21:59:26 +08:00
03aa9b27f0 core: set correct pointer_burst_size
0x15 is 21, which is larger than the OPB size (16).

The 0x15 value directly causes CORE to hang given a sufficiently
"large" object list (more than ~2 triangles per tile).

After changing pointer burst size to the intended value, 15, CORE no
longer hangs while drawing "large" object lists.
2023-12-25 00:54:54 +08:00
befedb9d38 example: add lighted cube
This also copy-pastes all of the math headers I originally wrote in
saturn-examples.
2023-12-24 16:24:27 +08:00
3373ea4c0c font_outline_punch_through: implement punch through
This enables alpha blending for both font_outline and
font_outline_punch_through.

I have also experimented more with 16-gray vs 256-gray--I have not
decided which between monochrome, 16-gray, or 256-gray I like the
most.

Perhaps a better test might be to test hanzi.
2023-12-24 01:12:08 +08:00
8f0afc2868 font_outline: remove all 1024/256/128 magic numbers
This fully threads both the real minimum size of the texture and the
dimensions of the texture through to the TA parameters.

This also removes spurious zero-area drawing commands (space
characters).
2023-12-22 23:54:39 +08:00
e2a6406a05 example: add macaw_cube_render_to_texture 2023-12-18 02:10:52 +08:00