279 Commits

Author SHA1 Message Date
12bf231293 example/maple_*: update examples 2024-10-17 22:45:22 -05:00
9043842796 example: add aica_gdrom_dft 2024-09-23 22:57:30 -05:00
c2e41d28d4 example/aica_gdrom: poll system.ISTEXT 2024-09-23 10:09:46 -05:00
eb38cd5b9d decode_pvrt: enable PVRT header decode 2024-09-22 19:08:15 -05:00
43312f2e4d remove finline-stringops 2024-09-22 19:08:09 -05:00
9f90e5e3f6 example: add sheik_vq 2024-09-13 13:33:31 -05:00
1f3fb88908 notes: add serial cable notes 2024-09-13 08:06:29 -05:00
31d684df10 k_means: add getrlimit/setrlimit 2024-09-13 08:05:02 -05:00
c23760c93f add model_generator symlink 2024-09-13 06:09:22 -05:00
448da5f72a holly: add ISTERR checking
I'd like to improve this at some point.
2024-09-13 05:43:50 -05:00
04785a23a3 sheik: enable translucency 2024-09-13 05:41:21 -05:00
1c75f3bc9f texture/panda: add ppm sources 2024-09-13 05:40:33 -05:00
5caa763578 gen: add k_means 2024-09-13 05:39:54 -05:00
32b8f85a4f example: add cube_vq_rectangular 2024-09-13 05:35:43 -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
4aa665b13a text_editor: remove debug serial 2024-09-05 23:15:26 -05:00
cf57f42c11 unrot macaw_cube_render_to_texture 2024-07-31 13:24:10 -05:00
bf9a862a43 chess: pawn promotion
For a lack of a better idea, bind board and piece rotation to X/Y

chess::do_move no longer advances the turn--prior to this change,
castle moves incorrectly double-negated turn.
2024-06-05 00:36:06 -05:00
ebb1955500 chess: cursor axis inversion, initial "animator" concept 2024-06-02 10:13:47 -05:00
5e80d9ecfc chess: add annotations, multiple pointers, translucency 2024-06-01 19:24:43 -05:00
a2952b117a chess: initial 2024-05-31 23:09:55 -05:00
90fe17ac5c example: add tetrahedron 2024-05-31 21:41:00 -05:00
dd5969dc1f example/: add vq and sierpinski 2024-05-25 20:42:59 -05:00
40b7c9d800 example: add maple_mouse
This also updates maple_analog.
2024-05-24 18:18:29 -05:00
ea51bca518 example/maple_storage: initial example 2024-05-23 11:47:19 -05:00
be8f06e486 example: add maple_storage example 2024-05-21 19:09:48 -05:00
643ad0e9fb text_editor/keyboard: use new maple interface 2024-05-21 15:36:04 -05:00
9801557535 maple: slightly refactor maple command initialization
This adopts a "writer" concept, vaguely inspired by the ta parameter
writer. This might turn out to be not a great idea if the
response/offsets for heterogenous commands are too inconvenient to
keep track of.

This breaks every example that uses maple--only
example/maple_controller is updated to use the new interface.
2024-05-21 15:05:25 -05:00
b5ac43c109 text_editor: refactor render/transform 2024-05-20 11:26:19 -05:00
11b858533e gap_buffer: the cursor can jump vertically to adjacent lines 2024-05-20 04:46:40 -05:00
ad5b98b5ea maple: add maple_bus_ft6_key_scan_codes 2024-05-19 21:55:36 -05:00
d73b41a6ab regs: add missing ods files 2024-05-19 15:08:38 -05:00
dd55208f39 maple: add maple_bus_ft6 2024-05-19 15:08:22 -05:00
d2ee2c9fe5 maple: regenerate ft0/ft8 2024-05-19 14:59:33 -05:00
5c192ffd2e text_editor: initial gap buffer implementation 2024-05-19 14:20:27 -05:00
a0d516803b example: remove frame_ix double semicolon 2024-05-19 08:42:07 -05:00
39e97a3f1b font_outline*: fix examples
Fix frame_ix increment.

Remove unncessary differences between the two examples.
2024-05-19 08:40:44 -05:00
0510598233 generic_sparse_struct: constexpr constructors
ta_polygon_converter_transfer: const buf
2024-05-19 08:23:13 -05:00
b874ec56b5 common: remove subalign from data/rodata
SUBALIGN in the linker script overrides __attribute__((aligned(...)))
2024-05-19 08:22:05 -05:00
a4ae84124a example: add texture_filtering and texture_filtering_maple 2024-05-12 17:39:52 +08: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
c8e84be5d2 common.lds: define vbr alignment
This also creates an example of a VBR+0x100 function in interrupt.cpp
2024-04-15 18:22:28 +08:00
c1e3e9d074 start.s: rename p1ram_end_ptr to stack_end_ptr 2024-04-15 18:20:25 +08:00
5e54666822 runtime_init: call cache::init before copying
It is unclear why this reordering is useful--it should be the case
that the previous content of the cache is invalidated on write
regardless of when cache::init is called.
2024-04-15 18:17:32 +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
1a7a8c4484 serial_transfer: add 'rate' command
This makes it possible to change the serial baud rate without
uploading a new serial transfer program. I'm not sure how useful this
will be, but it is simple enough to add.

The client program is also substantially improved. Sincerely I do not
understand how/why this works. Experimentally, I found that feeding
the ft232h data in chunks of up to roughly 384 bytes works reliably,
both for reads and writes. Larger chunk sizes are (as expected)
faster, but the tranfers do not appear to be consistently correct in
this case.

I have no logical explanation for this. The size of the ft232h FIFO is
1K each for the transmit and receive buffer respectively.

This also enables RTS/CTS hardware flow control. Surprisingly, this
doesn't appear to affect reliability significantly.
2024-03-15 18:33:15 +08:00
328e9e18bd client: chunked writes
This client-side code alone improves the typical transfer speed of a
51572-byte file from 91.85 seconds to 25.89 seconds.

This appears to be heavily bottlenecked by the python side of the
transfer--increasing the serial line speed has nearly zero affect on
the total transfer time.
2024-03-13 21:29:12 +08:00
d912278afd serial_transfer: self-relocate to the end of system memory
The serial_transfer loader, as long as the target program voluntarily
terminates itself at some point, is able to load multiple programs
consecutively without requiring a physical power cycle to reload the
transfer program from CD.

The current example.mk juggles between two different "memory layouts",
one for "burn to a physical CD" and another for "load via serial
cable". Because the serial_transfer program now relocates itself to
the end of system memory, this means the 0x8c010000 area is now usable
by programs that are loaded by serial_transfer.
2024-03-13 20:56:37 +08:00
0806ed9ac7 example: verify everything compiles successfully 2024-03-09 19:05:41 +08:00