85 Commits

Author SHA1 Message Date
8f9fb2c7d7 midi/dump: add meta dumping 2024-09-15 19:54:58 -05:00
e911a20775 midi: improve dump example 2024-09-15 19:45:26 -05:00
b80cac2743 vdp1/cube2: add perspective division 2024-09-12 10:49:54 -05:00
3bb4740030 cartridge: initial
The Makefile duplication was done out of laziness; the main Makefile
should be rewritten in a similar fashion to this one to allow
per-target selection of linker script.
2024-03-28 15:41:09 +08:00
bdaa199ecb vdp2: add color_calculation_ratio 2024-03-24 22:16:41 +08:00
50173b96e3 raytracing: remove all uses of fp_raw_tag{} 2024-02-02 08:58:53 +08:00
fb041b392c smpc: update macro usage of input_ examples 2024-02-02 08:58:53 +08:00
a1707c72a8 normal_sprite_animated: update macro usage 2024-02-02 08:58:53 +08:00
863701941e scsp: add sound_cpu__midi_debug example
I don't think this is particularly useful (yet).
2024-02-02 08:58:53 +08:00
72bdd34675 vdp1: add cube2 example 2024-02-02 08:58:53 +08:00
2eef2be39e raytracing: update example 2024-02-02 08:58:53 +08:00
fb0b237e0c ttf-bitmap: allow arbitrary width/height glyphs 2024-02-02 08:49:35 +08:00
5f290a3e93 MIT license 2023-09-29 17:50:06 +00:00
511bfd1d0c remove duplicate start functions
This is now provided by default in saturn/common.mk.

Also updates moved header names, changed bit macro names, and changes
to the common.mk build process.
2023-07-30 18:03:19 +00:00
7ec3ec5480 vdp2: remove start function 2023-07-23 18:01:10 +00:00
0c08f48750 vdp2/nbg0: add v_blank_in 2023-07-23 06:21:18 +00:00
bc7e9f8a3d vec3: add cross product 2023-07-23 06:21:18 +00:00
60f3a9d344 math/fp: negation operator declaration 2023-07-23 06:21:18 +00:00
d11490fdc3 res: add kirby data 2023-07-22 23:12:25 -07:00
5251d0cf8a asm: new example 2023-07-22 23:11:59 -07:00
646a7af953 vdp2/nbg0_16color: new example 2023-07-22 23:11:27 -07:00
db3729992e math/fp: add shift operators 2023-07-22 23:10:50 -07:00
c17ccd3f64 Makefile: remove LIBGCC
This is provided by saturn/common.mk
2023-07-10 15:34:44 -07:00
acf521e8ac cube: add example 2023-07-01 04:09:54 +00:00
86d12c37ed midi: add generator
This adds both a midi generator and a midi type 1 simulator.

While I would have preferred to use an existing tool for this, I found
that timidity++ does not emit pitch wheel events correctly, and I
don't know of another widely-distributed tool that does midi-to-midi
format conversion.

The c++ and python versions were co-developed. I wrote one to test the
other. There is more cleanup to do, but `roundtrip.cpp` produces a
valid type 0 midi file given a type 1 or type 0 midi file as input.
2023-07-01 00:15:53 +00:00
0c34b0634a midi: slow down TIMA interval
This also fixes the ordering of slot reference and slot_ix
deinitialization when turning off notes.
2023-06-27 21:28:20 +00:00
9b57987717 midi: add basic polyphony
Timing is still broken/inconsistent between emulators and I don't yet
understand why.
2023-06-27 18:32:55 +00:00
778138971f midi: play c major scale
TIMA occurs at half the speed predicted in the SCSP manual in
mednafen, but at the correct speed in Kronos. I don't know which is
correct.
2023-06-27 10:15:14 +00:00
c26bdd2630 scsp: incomplete midi example 2023-06-26 01:47:37 +00:00
f7a178384c scsp: add fm example 2023-06-24 02:59:31 +00:00
5ee43d8a29 use new smpc ireg/oreg struct declaration
Previously operator[] overloads were used for ireg/oreg indexes.
2023-06-23 10:07:19 +00:00
d4b5ecd3c8 vdp1/rgb: remove c++ features 2023-06-21 23:44:59 +00:00
d02d60ea26 vdp1: add rgb example 2023-06-21 23:39:49 +00:00
0d69d9ea57 editor: add nec/nec_bold fonts
This also adds a new "viewport" bit-field, which will be initially be
used for incremental search data.

Several redundant range checks were removed.
2023-06-11 15:08:17 +00:00
8dd460f48f editor: add 'line_kill'
This also adds nullptr checking to decref--it seemed the functions
needing nullptr checks immediately prior to the decref call was
beginning to exceed the functions that had "implied" nullptr checking
as a part of their natural flow-control.
2023-06-11 04:26:49 +00:00
feb57872e8 editor: add delete_word_forward/backward
This also fixes a small ordering bug in selection_delete.
2023-06-11 03:58:17 +00:00
46c274d490 editor: add cursor_scan_word_forward/backward
'backward' feels very mildly hacky, but not in a terrible way.
2023-06-11 03:19:15 +00:00
5944e3a360 editor: add 'delete_forward' and 'delete' key-binding
This also renames 'backspace' to 'delete_backward' for consistency.
2023-06-11 01:27:42 +00:00
3803e501eb editor: standardize struct cursor vs editor::cursor 2023-06-11 01:02:53 +00:00
9e94718087 editor: set normal mode in copy
Previously there was no visual confirmation of a copy occuring.
2023-06-10 23:10:02 +00:00
a11dadcde8 editor: finish implementing shadow_paste
This adds a new overwrite_line is very useful for dealing with
cow-related boilerplate.

There is some refactoring possible (and perhaps accidental correctness
improvement) if more functions used 'overwrite_line'.
2023-06-10 23:01:13 +00:00
6a5ebab01f editor: add shadow-lines and region-deletes
This implements the "copy" portion of copy-and-paste and the "delete"
portion of cut-and-paste.

'backspace' was also partially refactored to share code with the new
'selection_delete'.

I am excited in how expressiveness/readability improved in 'backspace'
after selection_delete was implemented.
2023-06-10 02:57:54 +00:00
d313bdd855 editor: fix off-by-one error
This fixes multiple comparisons between the buffer length and the
cursor row.

Also refactor the key-binding logic for better flexibility.
2023-06-09 00:59:19 +00:00
c86fcbd6af editor: add example
This adds a simple text editor with basic visual line-editing
capabilities.
2023-06-08 22:50:07 +00:00
3b82199d08 sound_cpu__interrupt: add slot visuals
This shows the value of some of the most relevant SCSP slot fields.
2023-05-19 23:08:19 +00:00
3358d95704 scsp: zeroize dsp
The Saturn BIOS does not (un)initialize the DSP. Without zeroizing the DSP
program, the SCSP DSP appears to have a program that continuously writes to
0x30000 through 0x3ffff in sound RAM, which has the effect of destroying any
samples stored there.
2023-05-19 14:52:15 -07:00
b9e6296058 m68k: rationalize frame math
On real hardware and mednafen, there is still a playback "gap". I
don't yet understand why.
2023-05-17 13:01:34 +00:00
1bd38b78f5 m68k: vectors/handlers are linked by default 2023-05-17 10:38:00 +00:00
f21e1d5c78 m68k: add new "interrupt" example
I don't completely understand how the scsp timers work; "8192" is a
magic number I came up with by experimentation.
2023-05-17 10:33:40 +00:00
ab91778312 tools: add make recursion rule 2023-05-16 23:01:20 +00:00