65 Commits

Author SHA1 Message Date
3d304731b0 vdp2: improve spctl bit definitions 2024-03-24 21:55:33 +08:00
5146395169 vdp2: add color calculation bits 2024-03-24 14:41:43 +08:00
2cc1a27427 MIT license 2023-09-29 17:53:13 +00:00
582261eef5 scu: add DSP and DMA bits 2023-09-09 13:28:25 +00:00
3e162c8d14 vdp1: add COLOR_BANK macros for the COLR register
This also adds the directly related SPCTL macros for vdp2.
2023-08-04 00:51:58 +00:00
fcf31ce095 vdp2: fix macro typos
Add 32-bit unions for the map base offset registers.
2023-07-29 06:14:58 +00:00
06bc9b49bf vdp2: improve bit definitions
This fixes a typo in the MPCDN* bits.

Also adds window and background priority bits.
2023-07-26 01:48:13 +00:00
f6c9380ece common: add header dependencies 2023-07-23 22:30:47 +00:00
0c7c2e663a common.mk: add binary header rule 2023-07-23 17:58:30 +00:00
5f515a20d4 move most sys_ files to ip directory 2023-07-23 06:23:05 +00:00
1a72e2068e vdp2: improve vram cycle pattern definition 2023-07-21 22:29:56 -07:00
c0e46834c3 segasmp: partially deblob sys_init.o 2023-07-19 08:26:10 +00:00
6973e0413c common.mk: deblob all area files
These are trivial to deblob compared to the others.
2023-07-19 03:30:58 +00:00
80ee1a4706 scsp: add DSP and MIDI bits 2023-07-19 03:11:51 +00:00
569f058682 smpc.h: fix C compatibility 2023-07-14 17:39:23 -07:00
9fd4443c35 common.mk: separate cflags and opt 2023-07-10 15:39:32 -07:00
912c67e2e6 vdp1: improve point access
This adds a new union to the vdp1 command list.
2023-07-01 04:13:16 +00:00
9ef2884cbc scsp: add more macro parenthesis 2023-06-27 18:31:31 +00:00
e449090df0 m68k: improve build process
This includes several improvements to the link flags, link script,
common makefile, etc..

Previously bss initialization in m68k start was incorrect. m68k can
now call static initializers if necessary.
2023-06-27 18:31:06 +00:00
123653fda1 remove gratuituous c++ dependency 2023-06-26 22:29:39 +00:00
d41a42dca4 scsp: improve fm register definition 2023-06-26 01:48:45 +00:00
09c1fc9267 scsp: use 32-bit access for SA 2023-06-23 10:06:16 +00:00
a4b1ad6eb3 smpc.h: remove dependency on c++ features 2023-06-23 10:05:57 +00:00
2e4d2775b7 add start.cpp for C++ runtime
Previously static constructors were not being called.

This also improves a few bit definitions.
2023-06-08 22:51:59 +00:00
949116b285 add misc definitions / asserts 2023-06-02 15:52:22 -07:00
e40fade736 scsp: improve dma and ctrl definitions 2023-05-19 22:12:14 +00:00
89487ec023 scsp: improve dsp register definitions 2023-05-17 13:55:11 +00:00
ae4bfec20a m68k: add bss initialization 2023-05-17 12:59:55 +00:00
911896e909 m68k: link vectors/handlers by default 2023-05-17 10:37:36 +00:00
f4d4f351e7 m68k: add auto vectors 2023-05-17 10:24:08 +00:00
25828417c1 m68k: more sensible stack pointer value
This accidentally worked as long as the Sound CPU program did not do
meaningful stack manipulation. Indeed, none of the Sound CPU programs
I have written so far do anything with the stack.

Despite this "accidentally working" on real hardware, mednafen's m68k
emulation appears to "stall" the Sound CPU when the stack pointer
wraps around to a memory that does not exist.

This table was originally written when I was first learning about the
Saturn "sound block" memory map. I did not know exactly how large the
installed sound RAM was, as the manual mentions 8Mbit, 4Mbit, and
1Mbit as being possibilities. Now that I know the production Saturns
have 4Mbit installed, I am able to come up with a reasonable value for
the stack pointer.
2023-05-16 23:11:05 +00:00
50bb71b944 smpc: add "resettable command" oreg enum 2023-05-16 23:10:39 +00:00
922fc587bc m68k: library-ifiy
This makes the m68k make rules usable from other makefiles.

This also adds scsp start address macros.

The sound.c example-fragment is deleted, as a better version now exists
in saturn-examples.
2023-05-16 18:20:57 +00:00
e591797e23 scsp: improve attack/decay macros 2023-05-16 14:40:08 +00:00
0210ac9c23 scsp: improve bit definitions 2023-05-15 10:43:25 +00:00
d1b0e4568c smpc: remove PERIPHERAL_ID__IS_DIGITAL_PAD macro 2023-05-09 14:55:41 -07:00
e179ce3bf6 smpc: add [] operator
It appears much more convenient to access oreg in particular via an "index
variable". To avoid repeated boilerplate, add the accessor here as a c++
operator overload. This makes smpc.h c++-only. With defines guarding the
overload, it could be reduced to C again, though I decided I don't want to
bother with testing that.
2023-05-07 02:16:38 -07:00
dcdcd7749a smpc: add oreg/intback macros 2023-05-04 14:33:46 -07:00
d58f0a9e32 minor improvements 2023-03-12 01:52:51 +00:00
f49259ba72 remove incomplete examples
I've remade these in the saturn-examples repository.
2023-01-30 00:10:57 -08:00
1af56ebe64 scsp: improve eg bits 2023-01-29 14:21:19 -08:00
70e481b876 scsp: overhaul register definitions
I attempted to match the documentation as closely as possible, despite it not
defining a clear convention for register names.
2023-01-28 20:37:27 -08:00
4b203a2337 vdp1: improve command macros 2023-01-28 20:37:17 -08:00
103bdbc190 vdp1: add color mode and size bits 2023-01-28 17:08:52 -08:00
1cd24f8f30 vdp*: add/improve bit definitions 2023-01-28 14:59:01 -08:00
0eac09e58a add gc-sections
This also fixes filename ordering in the iso9660 structure when the source file
is in a subdirectory relative to where mkisofs is called.
2023-01-27 00:08:53 -08:00
0f99452759 fix permissions for segasmp/lib 2023-01-26 22:19:55 -08:00
a8b0ecfc86 update sound example
This is still an incomplete code fragment, but it does produce sound.
2023-01-25 23:59:05 -08:00
0a26d755c9 use cache-through addresses 2023-01-25 15:58:40 -08:00
102304e841 improve common.mk
This makes it possible to produce more than one iso/cue, lifting a bit more work
to the outside Makefile.
2023-01-24 23:24:56 -08:00