Lior Halphon
|
c0582fd994
|
More accurate emulation of NR10 writes
|
2021-01-09 00:31:16 +02:00 |
|
Lior Halphon
|
f9b13c66b1
|
Emulation of a newly discovered revision specific APU quirk
|
2021-01-03 13:49:36 +02:00 |
|
Lior Halphon
|
ecace40fb0
|
Minor APU bug fix
|
2021-01-02 18:27:21 +02:00 |
|
Lior Halphon
|
a9c337264e
|
Fix the last remaining APU test
|
2021-01-02 16:23:34 +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
|
555835549a
|
More accurate pausing behavior, including revision differences
|
2020-12-12 20:35:18 +02:00 |
|
Lior Halphon
|
dffc12331b
|
Emulate the delayed NR44 write on the DMG
|
2020-12-12 18:11:35 +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
|
13bc8679f9
|
Correct preservation of NRx1's state on pre-CGB models
|
2020-12-01 14:18:19 +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
|
cd2310f0a7
|
Wave RAM reads 0xFF while active on AGBs
|
2020-11-20 19:39:54 +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 |
|
Lior Halphon
|
6448a692e2
|
Add smart rumble to games without a rumblepak
|
2020-04-29 16:06:11 +03:00 |
|
Lior Halphon
|
0cf168f32b
|
Fixing inconsistent style
|
2020-04-24 20:37:57 +03:00 |
|
Lior Halphon
|
a6567d9ee1
|
Update old coding style
|
2020-04-09 14:32:52 +03:00 |
|
Jakub Kądziołka
|
67d5a53503
|
Spell "length" properly
|
2020-02-27 18:11:10 +01: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
|
ca370eee7e
|
A bit more accurate AGB audio rendering
|
2019-10-01 18:50:59 +03:00 |
|
Lior Halphon
|
ac418b9de1
|
Pass channel_1_freq_change_timing
|
2019-09-30 00:09:25 +03:00 |
|
Lior Halphon
|
4541efe86a
|
Fixed a bug that prevented writing to the wave RAM, as well as a bug where the wave RAM was treated as zeros despite not being zero’d out
|
2019-06-29 14:03:42 +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
|
64879f5b02
|
Accurate emulation of (most aspects of) stop mode
|
2019-06-07 13:53:50 +03:00 |
|
Lior Halphon
|
4c34e0a6e0
|
Turns out the AGB inverts Channel 3’s output
|
2019-06-01 18:22:58 +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 |
|
Lior Halphon
|
280467ad38
|
Merge branch 'master' into master
|
2019-05-17 20:31:52 +03:00 |
|
Lior Halphon
|
91eeb4d9d5
|
Emulate AGB audio mixing
|
2019-05-17 00:08:34 +03:00 |
|
ISSOtm
|
40f83c8f25
|
Add APU-related debugger commands
This change includes making one of the APU functions public
|
2019-05-15 12:45:51 +02:00 |
|
Lior Halphon
|
ddc4e7484b
|
Fix and restore optimization
|
2019-05-10 22:29:30 +03:00 |
|
Lior Halphon
|
06670fc970
|
Fix #172. Allow unroll optimizations when compiling with GCC.
|
2019-05-10 21:51:11 +03:00 |
|
orbea
|
2bded45397
|
Disable pragmas for gcc.
|
2019-05-09 10:55:31 -07:00 |
|
Lior Halphon
|
dde06e7cae
|
Work around a crashing race condition, proper fix needed
|
2019-01-28 20:56:37 +02:00 |
|
Lior Halphon
|
7b36ee10a4
|
Merge branch 'master' into sgb
|
2019-01-05 19:00:22 +02:00 |
|
Lior Halphon
|
4051f190a5
|
Cache cycles_per_sample to avoid FP arithmetic
|
2019-01-01 00:42:40 +02:00 |
|
Lior Halphon
|
9d947c7ce6
|
Unroll some APU loops
|
2018-12-31 23:09:56 +02:00 |
|
Lior Halphon
|
2d6d1e6325
|
SGB boot animation
|
2018-11-24 13:21:00 +02:00 |
|
Lior Halphon
|
a39b314378
|
Fixed silly APU regression (Noise volume envelope ran too fast) Fixes #121
|
2018-11-03 14:37:19 +02:00 |
|
Lior Halphon
|
64922fff4b
|
Fixed a bug where channels 1 and 2 would start playing earlier than they should have if NRx4 was written to twice. Fixes #86.
|
2018-10-29 00:44:43 +02:00 |
|
Lior Halphon
|
3035f43428
|
Emulation of DAC charging, Fixes #46, #85, #88 and #89
|
2018-10-19 23:53:01 +03:00 |
|
Lior Halphon
|
4276549acd
|
Research notes TODOs
|
2018-10-19 01:02:27 +03:00 |
|
Lior Halphon
|
324201f336
|
Correct emulation of switching the DACs on and off. Fixes #100 and #87
|
2018-10-17 20:35:29 +03:00 |
|
Lior Halphon
|
ec0a879a93
|
Correct emulation of enabling and disabling the volume envelope. Correct emulation of a glitch where the volume envelope ticks when it usually wouldn’t.
|
2018-09-10 16:59:59 +03:00 |
|
Lior Halphon
|
3151821e6d
|
Fixed minor APU regression (Channels 1 and 2 were given no delay under certain circumstances)
|
2018-09-09 12:50:55 +03:00 |
|
Lior Halphon
|
b1cc55b786
|
Turns out Left/Right audio channels were flipped
|
2018-07-19 20:38:11 +03:00 |
|
Lior Halphon
|
c66b6fbafc
|
Fixed an edge case with DAC discharge emulation
|
2018-07-16 23:08:25 +03:00 |
|
Lior Halphon
|
2e9e3424ec
|
Document some revision differences
|
2018-07-14 21:52:54 +03:00 |
|
Lior Halphon
|
0145b790a3
|
Merge branch 'v0.11.x'
|
2018-07-11 20:08:33 +03:00 |
|
Lior Halphon
|
5f58323c01
|
Attempt to improve audio quality on frontend with big audio buffers
|
2018-07-10 21:33:03 +03:00 |
|
Lior Halphon
|
dc5cb71c22
|
Emulate CGB-C’s quirky LFSR function
|
2018-07-04 21:55:12 +03:00 |
|
Lior Halphon
|
45c73e0175
|
Replaced the is_cgb bool with a more future compatible model enum. Removed the GB_init_cgb API and replaced it with an extended GB_init and GB_switch_model_and_reset APIs that now receive a model parameter. Increased the struct version.
|
2018-06-16 13:59:33 +03:00 |
|
Lior Halphon
|
38c0cb3323
|
Typo
|
2018-06-09 15:12:42 +03:00 |
|
Lior Halphon
|
f64da1864f
|
APU glitch: When turning the APU on while DIV's bit 4 (or 5 in double speed mode), the first DIV/APU event is skipped.
|
2018-06-09 15:11:20 +03:00 |
|
Lior Halphon
|
562b43a7c5
|
Notes about the DMG wave-ram glitch
|
2018-05-15 23:02:07 +03:00 |
|
Kyle Swanson
|
7bfe5de9c7
|
chmod -x
|
2018-03-28 21:37:34 -07:00 |
|
Lior Halphon
|
0912a30bb9
|
Fixed a regression in dmg_sound-2
|
2018-03-27 21:04:55 +03:00 |
|
Lior Halphon
|
c48097a484
|
Convert div counter to the SM mechanism
|
2018-02-23 13:16:05 +02:00 |
|
Lior Halphon
|
9802ca41dd
|
Components not affected by CGB’s double speed mode now operate in 8MHz mode to theoretically make advance_cycles(gb, 1) safe.
|
2018-02-20 21:17:12 +02:00 |
|
Lior Halphon
|
f79af39ea2
|
More accurate emulation of the APU’s analog characteristics
|
2018-02-16 18:01:50 +02:00 |
|
Lior Halphon
|
fc35111ae7
|
Corrected the emulated DAC’s range
|
2018-02-16 01:26:37 +02:00 |
|
Lior Halphon
|
0c231db9e7
|
This is probably not correct (and makes no sense from an hardware design perspective), but this correctly emulates my analog test cases and fixes the pops introduced by the last commit.
|
2018-02-13 23:13:15 +02:00 |
|
Lior Halphon
|
bfb37884e1
|
Inactive channels are not equivalent to channels with 0 volume.
|
2018-02-11 22:50:15 +02:00 |
|
Lior Halphon
|
afcc66fb3c
|
Added CPU under/over-clocking support in Core, add under-clocking hotkey in the Cocoa port, allow modifier keys to be configured as input keys in Cocoa.
|
2018-02-10 23:30:30 +02:00 |
|
Lior Halphon
|
09dd47c6de
|
Fixed unintentional delay in NR50 and NR51’s effects
|
2018-01-19 19:56:39 +02:00 |
|
Lior Halphon
|
37906bcd1f
|
Fixed sound pops in Super Mario Land 2.
|
2018-01-19 00:47:46 +02:00 |
|
Lior Halphon
|
0a76881eb6
|
Correctly emulating NRx4 effects on the sound envelop of the previously playing sound. Closes #19
|
2018-01-06 12:37:45 +02:00 |
|
Lior Halphon
|
a20e8a8220
|
Fixed bug in NR42 write that also caused memory corruption
|
2018-01-06 12:17:06 +02:00 |
|
Lior Halphon
|
a1af4c59ca
|
Fixed NR51 volume levels (They’re 1-8, not 0-7)
|
2018-01-06 11:58:49 +02:00 |
|
Lior Halphon
|
61f9dbd95d
|
Use SDL’s key mapping when available
|
2017-12-28 20:22:54 +02:00 |
|
Lior Halphon
|
c1f27d7b27
|
Spacing
|
2017-10-02 22:59:03 +03:00 |
|
Lior Halphon
|
d9b0576351
|
Emulation of NRX2-write glitches. Fixes Prehistorik Man audio.
|
2017-10-02 22:56:24 +03:00 |
|
Lior Halphon
|
67f1566b5e
|
Minor refinement to sweep
|
2017-09-23 00:23:02 +03:00 |
|
Lior Halphon
|
e0a6edac35
|
Setting sweep period to 0 cancels pending calculate event
|
2017-09-22 14:53:24 +03:00 |
|
Lior Halphon
|
2ffce49e16
|
Minor bugfixes related to sweeping
|
2017-09-22 14:39:39 +03:00 |
|
Lior Halphon
|
75db33559a
|
Current sample index (Channel 1 and 2) is only reset after turning the APU off
|
2017-09-22 02:25:06 +03:00 |
|
Lior Halphon
|
8f4cd5c412
|
Corrected behavior for channel 1 and 2 restart
|
2017-09-22 02:04:29 +03:00 |
|
Lior Halphon
|
882b141478
|
Fixed dmg_sound-1
|
2017-09-21 18:32:21 +03:00 |
|
Lior Halphon
|
2ca550273a
|
Fixed dmg_sound-5
|
2017-09-21 18:18:10 +03:00 |
|
Lior Halphon
|
d3c15ef6ca
|
Fixing APU bugs, one at a time: Blargg’s dmg_sound 8.2
|
2017-09-21 14:52:09 +03:00 |
|
Lior Halphon
|
62878fdc7a
|
More accurate div-event handling
|
2017-08-15 22:27:15 +03:00 |
|
Lior Halphon
|
8d011ca4b9
|
Accuracy improvements (Sweep)
|
2017-08-15 22:05:20 +03:00 |
|
Lior Halphon
|
d04aaddcbd
|
Added highpass filter
|
2017-08-15 21:59:11 +03:00 |
|
Lior Halphon
|
ca59aca4a6
|
Fixed a bug where writing to NR52 affected channels 1 and 2’s duty pattern in DMG mode. Fixed NR43 being written to NR44 as well.
|
2017-08-13 20:26:35 +03:00 |
|
Lior Halphon
|
36943866e2
|
Better click prevention
|
2017-08-12 23:35:18 +03:00 |
|
Lior Halphon
|
dba7370d6d
|
Turns out APU signal is inverted. This fixes Perfect Dark’s audio.
|
2017-08-12 20:47:55 +03:00 |
|
Lior Halphon
|
688991f57f
|
The volume envelopes and length controls are handled in different phases of the div-divider
|
2017-08-12 20:17:20 +03:00 |
|
Lior Halphon
|
4b8be255ce
|
Fixed some channel 4 delays, documented a not currently emulated timing quirk.
|
2017-08-12 19:50:39 +03:00 |
|
Lior Halphon
|
066efab985
|
In DMG mode, the length registers are not affected by turning the APU on and off. Why? Why not!
|
2017-08-11 22:23:03 +03:00 |
|
Lior Halphon
|
0e22ad8eb1
|
Noise channel support
|
2017-08-11 17:57:08 +03:00 |
|
Lior Halphon
|
1a8bcd314d
|
Accuracy improvements to sweeping (Still not complete though, more research needed)
|
2017-08-10 19:42:23 +03:00 |
|
Lior Halphon
|
ab5611119a
|
Accuracy improvements, especially to the length control
|
2017-08-02 21:14:23 +03:00 |
|
Lior Halphon
|
d65c2247e5
|
Added channel 1 and 2, fixed accuracy issues with channel 3
|
2017-07-27 23:11:33 +03:00 |
|
Lior Halphon
|
2936f7fa57
|
Fixed channel 3 counter behavior, verified with new tests. The DIV register ticks the APU at 512Hz.
|
2017-07-22 19:51:11 +03:00 |
|
Lior Halphon
|
a19ee1e5e0
|
2MHz audio downscaling support. Implemented NR50 and NR51.
|
2017-07-21 23:17:48 +03:00 |
|
Lior Halphon
|
baccf336d7
|
Complete rewrite of the APU. Channel 3 is complete and passes all the relevant tests from blargg’s suite, as well as PCM34-based tests. Actual sound output is basic and limited, though.
|
2017-07-21 19:06:55 +03:00 |
|
Lior Halphon
|
c59272d46d
|
Misc minor fixes, fixes several Mooneye-GB tests
|
2017-06-21 20:39:23 +03:00 |
|