9 Commits

Author SHA1 Message Date
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
eafd4e6f23 holly: add video output data 2024-03-08 16:17:59 +08:00
0deedb9858 serial_transfer: increase serial line speed to 312500 bps
Interestingly, this did not cause a perceptible improvement in the
overall data transfer rate.
2024-03-04 16:44:03 +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
963aa75990 scene: rotating triangle
This now works on real dreamcast hardware.
2023-12-04 09:53:27 +08:00
bc0b94b437 dummy read from serial before starting serial transfer 2023-12-02 13:35:42 +08:00
ff2dcc7d71 draw 1 triangle 2023-11-30 10:02:49 +08:00
329ada55f1 add code loading and test program
This was used to troubleshoot video output and framebuffer
configuration registers.
2023-10-16 19:24:51 +00:00