110 Commits

Author SHA1 Message Date
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
f2b53ee62a m68k: more reasonable stack pointer value
The sound_cpu example works consistently on all emulators and real
hardware now.
2023-05-16 22:55:26 +00:00
8246b94aee add m68k example 2023-05-16 18:37:00 +00:00
29e049ab69 scsp: add "slot" example
This demonstrates the most basic possible SCSP usage.

Strangely this does not work in Kronos, only in mednafen and on real
hardware. I'd like to find a hack, if possible, that fixes Kronos
playback.
2023-05-14 22:50:34 +00:00
9db0c570d9 smpc_intback: improve/fix data_size handling
keyboard works (as intended) if it is plugged in to controller port 2.
2023-05-11 07:59:36 -07:00
e15f0a9eaf wordle: minimally working game
A few "minor" features are missing, including showing the correct word if you
get it wrong.
2023-05-10 10:15:48 -07:00
cfad16c514 wordle: basic drawing
This draws the screen and "keyboard".

I am not certain if I like the keyboard concept. Letter groupings would be more
useful.
2023-05-10 05:48:49 -07:00
8e243a435e wordle: initial
Almost nothing is implemented.
2023-05-09 14:54:47 -07:00
30092b9b15 input_keyboard: factor out font handling functions
I might later question this decision.

I liked how each "hardware" example was roughly one self-contained file. In the
"input_keyboard" case, this is no longer true.
2023-05-09 10:51:38 -07:00
65e48d7c6f smpc: new input_keyboard example
This improves ttf-convert slightly:

- variable size glyphs
- initialize metrics for glyphs with zero-size bitmaps (e.g "space")
- move the font/serialization structures to a common header

The keyboard example includes keyboard layout data for the HSS-0129 (Japanese)
Sega Saturn keyboard.
2023-05-09 04:04:09 -07:00
67dc9e030f kana: add argv-provided start/end char codes 2023-05-08 08:57:51 -07:00
6625c886b5 tools: add ttf-convert
This is a custom binary format for pre-rendering outline fonts as a collection
of bitmaps.
2023-05-08 08:15:56 -07:00
b092850c07 smpc/input_intback: handle controller disconnection
This still only parses digital pad correctly.
2023-05-08 06:51:18 -07:00
f40510d0b1 smpc/input_intback: use new ireg/oreg [] operator 2023-05-07 02:15:49 -07:00
8a97b38124 smpc/input_intback.cpp: created 2023-05-04 14:37:09 -07:00
5b96488029 vdp1/normal_sprite_animated: improve comment wording 2023-05-04 14:31:45 -07:00
5c1418c27e raytracing: switch pixel format from 24 bpp to 15 bpp
The Sega Saturn does not have enough video RAM to store an entire 24-bit
framebuffer. Attempting this causes the "bottom" half of the scene to be
clipped, as video RAM addresses that do not exist are written to.
2023-04-28 05:33:30 -07:00
f5959ab4bf vdp1/normal_sprite_animated: improve for real hardware 2023-03-12 01:50:57 +00:00
40238e2621 vdp1: add kana example 2023-03-12 01:49:09 +00:00
04948a8be7 vdp1: add color bank example 2023-02-08 04:16:15 -08:00
b5f675ee25 vdp1: add normal_sprite_animated example 2023-01-28 18:22:48 -08:00
4af5a3ba92 vdp1: add normal_sprite example 2023-01-28 17:09:25 -08:00
a5f5aed460 further simplify polygon example 2023-01-28 14:58:40 -08:00
60a7776b22 vdp1: polygon example 2023-01-28 14:11:43 -08:00
a7ffb5beed nbg0: fix comments 2023-01-27 12:10:05 -08:00
ec1dd061eb makefile: finish nbg0 rename 2023-01-27 12:03:03 -08:00