Commit Graph

89 Commits

Author SHA1 Message Date
Lior Halphon bf9212bcff Increase the number of band-limited phases to reduce overtones in high-pitched sounds 2025-04-04 13:27:20 +03:00
Lior Halphon 474caaccd5 The relevant RA issue is long fixed by now 2025-03-30 22:12:04 +03:00
Lior Halphon 375fb4388c Swap the box filter with band-limited synthesis, fixed a regression that prevented filtering of square waves in some scenarios. Fixes #669 2024-11-16 01:03:14 +02:00
Lior Halphon d07b199668 Improve audio anti-aliasing, allow 2MHz output 2024-06-23 20:10:22 +03:00
Lior Halphon ad5ca0dcf0 Switch to 2MHz units in apu_cycles 2024-06-23 15:23:29 +03:00
Lior Halphon 322f3c7013 More accurate emulation of the previous quirk 2024-06-03 22:04:17 +03:00
Lior Halphon 8739da61c0 Avoid strict aliasing violations. Closes #593 2024-03-09 15:41:07 +02:00
Lior Halphon ecbdb9e95e Emulate several more pre-CGB-D channel 1 glitches 2023-11-25 21:24:46 +02:00
Lior Halphon e59bc436bd CGB-C NR10 conflict improvements 2023-09-25 23:35:26 +03:00
Lior Halphon d662407df0 Accurate emulation of NR10 write glitches 2023-09-03 15:54:37 +03:00
Lior Halphon 207851bc56 Merge branch 'master' of github.com:LIJI32/SameBoy 2023-06-21 21:47:45 +03:00
Noah Sweilem 9148b26bd8 Move `edge_triggered` variables into `gb->apu_output` 2023-06-20 10:25:25 -07:00
Noah Sweilem 7bdf8dbe47 Add initial edge trigger detection method
- GB_get_channel_edge_triggered()
2023-06-11 15:27:31 -07:00
Noah Sweilem 5c7b1f01a3 Add som APU query methods for libsameboy
- GB_get_channel_volume()
- GB_get_channel_amplitude()
- GB_get_channel_period()
- GB_get_apu_wave_table()
2023-06-10 14:23:15 -07:00
Lior Halphon fef175dcc6 Use #pragma once for include guards, use #import exclusively on Obj-C files 2023-06-09 14:44:57 +03:00
Lior Halphon 830f2ddc38 Break save state compatibility. Windows save states should now work with non-Windows save states again. 2023-02-04 02:13:01 +02:00
Lior Halphon d9bf739f52 Remove auto-generated comments 2023-01-12 23:19:24 +02:00
Lior Halphon aa8b7b0c03 Improved emulation of envelope locking, fixes #522 2023-01-10 01:19:07 +02:00
Lior Halphon 98e986b48b Oopsie 2022-09-18 13:30:36 +03:00
Lior Halphon 14c4548325 Allow muting audio channels (Missing: SDL) 2022-09-11 15:53:07 +03:00
Lior Halphon 6055092249 Add audio recording APIs 2022-05-21 02:06:10 +03:00
Lior Halphon ab109da683 Fix several square channel zombie stepping quirks 2022-03-12 00:49:43 +02:00
Lior Halphon 769aac93c0 Lazy APU, extra ~17% speed up 2021-12-29 00:48:44 +02:00
Lior Halphon c53d99dbc4 Abolished slow double use 2021-12-26 15:20:46 +02:00
Lior Halphon f866441481 Improved emulation of channel 3 wave RAM read glitch 2021-12-19 19:27:40 +02:00
Lior Halphon 02f55d12d3 Maybe one day GCC will stop being shit at handling __attribute__s 2021-11-07 14:13:52 +02:00
Lior Halphon 18e7a3f4fa Cleanup, better symbol handling, improves LTO 2021-11-07 13:39:18 +02:00
Lior Halphon fbf1bb7f98 Save state compatibility breaking cleanup 2021-11-07 12:56:46 +02:00
Lior Halphon 94776fcf8c Better (But imperfect) emulation of the wave RAM address bug glitch 2021-10-19 01:53:24 +03:00
Lior Halphon de16ab5d08 Why was this under APU 2021-10-17 20:05:49 +03:00
Lior Halphon 7ef198ec50 More accurate channel 3 restarts 2021-10-17 02:06:33 +03:00
Lior Halphon 4c05ebcea6 Redo the volume envelope with better timings, locking emulation and zombie mode edge cases. Fixes #344 2021-02-25 15:43:38 +02:00
Lior Halphon 393269ae1f Emulate volume envelope locking 2021-02-22 13:48:56 +02:00
Lior Halphon c0582fd994 More accurate emulation of NR10 writes 2021-01-09 00:31:16 +02:00
Lior Halphon b54a72d9b9 Fixing a bug where where zero-shift sweep wouldn't tick 2021-01-02 14:56:45 +02:00
Lior Halphon 5c854dbdca Interference emulation 2020-12-31 00:07:04 +02:00
Lior Halphon 4f408eae7c Whoops 2020-12-12 18:13:55 +02:00
Lior Halphon 7de6194e28 Redo channel 4's timing accurately, emulate NR43 write quirks 2020-12-12 16:02:25 +02:00
Lior Halphon 1baa0446a9 More sweep improvements 2020-12-01 22:37:13 +02:00
Lior Halphon 74cf452a48 Further accuracy improvements to sweep; passes Blargg's APU tests again, this time for real 2020-12-01 14:17:35 +02:00
Lior Halphon 0485124076 Redo channel 1 sweep based on DMG schematics; emulates two newly discovered behaviors and also fixes #309 2020-11-28 19:31:25 +02:00
Lior Halphon 3cba3e8e27 Emulate CGB-C PCM read glitch, fix a potential noise volume envelope bug 2020-05-10 00:37:52 +03:00
Jakub Kądziołka 67d5a53503
Spell "length" properly 2020-02-27 18:11:10 +01:00
Lior Halphon 103caa56e1 Allow displaying borders outside of SGB emulation, including borrowing SGB border. Allow not displaying SGB borders. (Todo: libretro support) 2020-02-08 13:28:46 +02:00
Lior Halphon b806ae4e82 Fix #228 2020-02-01 23:36:16 +02:00
Lior Halphon 143e1f88a8 There’s not reason it must be an integer 2019-11-03 22:02:33 +02:00
Lior Halphon dee29c118c Added GB_set_sample_rate_by_clocks API, split SGB_NO_SFC into PAL and NTSC; now they report the correct clock rate. 2019-10-08 15:10:24 +03:00
Lior Halphon e268efefef Redesign and reimplement the audio API, let the frontends handle more stuff. Probably affects #161 2019-06-15 23:22:27 +03:00
Lior Halphon 9d8adbb581 This is not correct, this bug only affects the PCM registers and not actual output. Currently not emulated at all. 2019-06-07 18:37:19 +03:00
Lior Halphon 85c43fa81f Fixed Channel 3’s first sample behavior, update analog characteristic to more realistic values. Fixes #177 2019-05-25 19:12:09 +03:00