73 Commits

Author SHA1 Message Date
cb8fd7e345 systembus_bits: add istext 2025-06-25 15:03:27 -05:00
b51487d374 aica_common: correct sgc definition 2025-06-25 15:03:14 -05:00
1dbae5713f systembus: rename v_blank interrupts 2025-04-27 02:15:02 -05:00
63b4a9b108 gdrom.ods: add block column 2025-01-01 06:05:28 -06:00
1295eed1bb regs: update isp_tsp / systembus 2024-12-30 17:05:01 -06:00
a77580335c regs: add ta_parameter.ods 2024-12-28 06:36:42 -06:00
7aa1b3d7f5 add isp_tsp spreadsheet 2024-12-27 10:13:16 -06:00
daf92a5049 core_bits: remove leading underlines 2024-12-27 08:03:41 -06:00
d32bd87baa example: add UBC experiment 2024-11-12 20:37:40 -06: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
71fb02e03d video_output: remove redundant header includes 2024-10-26 04:54:06 -05:00
b133879f7e serial_transfer: fully asynchronous maple display write 2024-10-22 04:19:37 -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
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
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
0510598233 generic_sparse_struct: constexpr constructors
ta_polygon_converter_transfer: const buf
2024-05-19 08:23:13 -05: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
73a685face aica: use SCIPD to detect TIMA overflow
Real hardware does not support TIMA reads--SCIPD is the correct way to
achieve this.
2024-03-01 15:26:47 +08:00
3338b611c1 aica: initial working example
This plays 10 seconds of PCM audio via the AICA ARM CPU.
2024-02-29 16:51:25 +08:00
5b696f7c0d aica: initial register definitions 2024-02-28 21:37:26 +08:00
8feda3b29a regs: add aica common and aica rtc 2024-02-28 15:34:32 +08:00
ec4dbee01b regs: add aica_channel_data spreadsheet 2024-02-27 21:38:39 +08:00
10d17d3c98 example: add gdrom_iso9660
This combines my iso9660 parsing code, with all of the prior gdrom packet
interface / command code.

The example, on real Dreamcast hardware, displays the first 2048 bytes [1] of every
file in the root directory on the serial console.

[1] or the size of the file, whichever is smaller
2024-02-27 00:28:39 +08:00
c45cb293f0 gdrom/command_packet_format: improve initializer; add _data() method 2024-02-26 20:32:33 +08:00
41b707e75d gdrom: add gdrom_bits 2024-02-26 18:04:23 +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
d622ee04a7 regs/gen: factor out read_input to a new module, csv_input 2024-02-26 14:19:05 +08:00
c2e596a1c0 regs: add g1_if GDUNLOCK register 2024-02-25 13:32:40 +08:00
c851070604 gdrom: add gdrom register definitions 2024-02-24 17:04:39 +08:00
59708cc3cf examples: add software_ta 2024-02-23 23:47:43 +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
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
0b6c650ebd common.mk: add headless csv build rule 2024-01-01 00:58:10 +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
7f9469c9a7 regs/gen/ta_parameter_format: incomplete 2023-12-30 17:38:15 +08:00
4bb04a0362 example: add maple_analog
Also adds the incomplete modifier_volume example.

This also adds vec2 for UV coordinates, and obj_to_cpp has been
modified to parse vertex texture coordinates from obj files.
2023-12-30 10:53:39 +08:00
88b6fa9aae memorymap: add texture_memory64 2023-12-17 23:04:19 +08:00
2f7f0a6bdf example: add maple vibrator example 2023-12-17 12:57:06 +08:00