10 Commits

Author SHA1 Message Date
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
bd33fbf2e4 example/font_bitmap: remove unintentional padding between characters
At 4bpp, each 8×8px character only requires (8 * 8 / 2) bytes of
texture ram.
2024-04-15 18:16:13 +08:00
c0e10fe8f1 vga: delete
This is replaced with the (slightly cleaner) holly/video_output.
2024-03-08 20:46:55 +08:00
511d99563d maple_bus_commands: zero-sized structs should be zero sized
From the GCC manual.

> GCC permits a C structure to have no members:

struct empty {
};

> The structure has size zero. In C++, empty structures are part of the
> language. G++ treats empty structures as if they had a single member of type
> char.

I was not aware of the different behavior in C++.

This fixes every maple example--most were broken for multiple reasons, including
this one.

This also enables SH4 caching. This includes linking code/data into the P1
area (previously this was not the case).

The maple examples (which indeed involve much use of DMA) require much work to
successfully work with the operand and copyback caches. The vibration example
currently is the most complete, though I should consider more on how I want to
structure maple response operand cache invalidation more generally.
2024-02-02 22:05:10 +08:00
b17e075138 add verite font
There are still texture sampling issues that I don't understand. Until
I properly understand this, using (bitmap) fonts that have
power-of-two dimensions seem to produce "acceptable but incorrect"
results.
2024-02-02 09:19:09 +08:00
1f6a29f379 example: update several examples 2024-01-03 23:32:37 +08:00
b484b5d4fe font_*: fully parameterize source/destination bit depth
After implementing this, I realized I don't like the appearance of the
monochrome font as much as the antialiased font.
2023-12-23 21:55:03 +08:00
3b7e1eaef8 example: implement font_outline
This still needs to be cleaned up, particularly to properly pass the
texture size around--there are a few unnecessary '128x256' magic
numbers scattered in the code.
2023-12-22 00:03:52 +08:00
a8cceee46e twiddle: fully parameterize texture twiddling function
I think the original version is more readable, but the newer version
is better overall because it doesn't require reading from dst, and is
able to directly write to a 32-bit dst.
2023-12-21 11:18:56 +08:00
7e03eee3ed font_bitmap: use 4bpp palette 2023-12-20 22:39:47 +08:00