126 Commits

Author SHA1 Message Date
e36735f6c2 improve for out-of-tree usage 2024-12-03 10:43:08 -06:00
671fe92b12 tools/ttf_outline: twiddle at compile-time 2024-12-01 10:30:01 -06:00
81e76ee428 example: fix video_output example 2024-11-20 01:24:39 -06:00
9933d945bf add debug_protocol.hpp 2024-11-16 14:18:16 -06:00
d32bd87baa example: add UBC experiment 2024-11-12 20:37:40 -06:00
1d25d54bb1 ftdi_transfer: move maple code to separate ftdi_maple source file 2024-11-12 20:37:02 -06:00
cfe9c07dfe ftdi_transfer: implement maple storage dumps 2024-11-11 19:32:17 -06:00
c713a084d8 serial_transfer: implement "maple_raw" command 2024-11-10 20:18:23 -06:00
17c1418574 example: fixed all examples 2024-10-27 11:01:54 -05:00
f2320d70bf example: restore maple_vibrator 2024-10-27 08:16:56 -05:00
d55fa64714 example: restore more examples 2024-10-27 07:23:08 -05:00
fc536bd93a example: restore several examples
The dump_* examples were removed because the serial_transfer example now handles
that use-case more generically.
2024-10-27 01:17:59 -05:00
45c6bcf211 serial_transfer: add read command 2024-10-26 08:03:50 -05:00
ff7a03a75c serial_transfer: rewrite 2024-10-26 04:54:06 -05:00
3bf80b521a restore macaw example 2024-10-23 08:07:22 -05:00
b133879f7e serial_transfer: fully asynchronous maple display write 2024-10-22 04:19:37 -05:00
1ecd87495f example: add maple_font 2024-10-18 23:30:42 -05:00
e1e63795c9 example: unrot wiffle_attenuation 2024-10-17 22:46:11 -05:00
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
9f90e5e3f6 example: add sheik_vq 2024-09-13 13:33:31 -05:00
04785a23a3 sheik: enable translucency 2024-09-13 05:41:21 -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
cf57f42c11 unrot macaw_cube_render_to_texture 2024-07-31 13:24:10 -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
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
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
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
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
57a8862ac3 modifier_volume: fix example 2024-03-09 18:42:44 +08:00
3a92dd070c macaw_multipass: fix example
The prior issue with this example was almost certainly related to OPB
overflow, due to an incorrect tile area calculation.
2024-03-09 18:39:46 +08:00
ae7f35191d example/sprite: update 2024-03-09 18:16:44 +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
2a121625c8 suzanne_profile: correct periperipheral comment 2024-03-09 09:19:48 +08:00