Commit graph

572 commits

Author SHA1 Message Date
Sean Maas
5836132bda Finally add non-extended affine backgrounds
I just needed a good test case :P
2020-03-20 21:27:14 -04:00
Sean Maas
1fe9771835 Apply master brightness after display capture
Fixes flickering in Pokemon Ranger Guardian Signs
2020-03-20 21:05:18 -04:00
Sean Maas
c9de7031d3 Redirect normal reads from the first 32KB of a ROM
Passes anti-piracy checks in games like Bowser's Inside Story and
Pokemon Ranger Guardian Signs
2020-03-20 18:58:26 -04:00
Sean Maas
b966213485 Add an option for threaded 3D rendering 2020-03-20 05:37:21 -04:00
Sean Maas
98a374eebb Fix 3D pixels being treated as object window pixels
Fixes blending in Bowser's Inside Story and probably others
2020-03-19 05:04:45 -04:00
Sean Maas
7f608ad092 Fix audio crackles when running slow
Obviously there are still stutters, but that can't be fixed
2020-03-19 01:04:43 -04:00
Sean Maas
628aaecab2 Switch to a timer for redrawing on desktop
Fixes the display freezing when using the drop-down menus on Windows
2020-03-19 00:51:54 -04:00
Sean Maas
aee9c8f397 Implement pulse waves 2020-03-18 03:12:10 -04:00
Sean Maas
20981c0554 Switch to synchronous audio output
Asynchronous was nice for when the emulator is running too slow,
but synchronous is far more accurate and will make implementing
sound capture much easier. Also, the frame limiter is now based on
audio, so that disgusting while statement for Windows can finally
be axed!
2020-03-18 00:47:24 -04:00
Sean Maas
7c57743014 Add the ability to pause, restart, and stop the core on desktop 2020-03-15 19:31:18 -04:00
Sean Maas
de81c63bb8 Strip Windows binaries for better file sizes 2020-02-29 16:34:28 -05:00
Sean Maas
3e7ac246b2 Read the ADPCM header correctly
Fixes #4.
2020-02-25 14:39:39 -05:00
Sean Maas
862ec52b54 Implement GPU-timed DMA transfers
Required some reworking of the DMA system.
2020-02-21 00:12:13 -05:00
Sean Maas
9db622980d Try to fix edge cases where clipped polygons don't fully render
The original cases are fixed, but now some new ones are showing up.
They're a lot less prominent though, and I can't find a test case
that I can reliably reproduce for debugging.
2020-02-09 01:12:43 -05:00
Sean Maas
8deab7d8ec Only interpolate values at polygon edges once per scanline
Gives a decent performance boost to the 3D renderer.
2020-02-07 20:06:19 -05:00
Sean Maas
5d47418ada Minor UI fixes 2020-02-06 21:52:55 -05:00
Sean Maas
e989e78fcc Implement 2D engine window functionality 2020-02-06 21:04:31 -05:00
Gran PC
576476d605
Initialize coreThread to nullptr (#3)
Fixes #2.
2020-02-06 17:36:18 -05:00
Sean Maas
daae6ca26d Turn down the volume a bit 2020-02-05 23:58:51 -05:00
Sean Maas
3611f8f822 Add save type selection for when no save file exists
Not ideal, but it's better than nothing. Eventually either a save
type database or automatic detection code will be added, and this
can be used as a manual override.
2020-02-05 03:26:59 -05:00
Sean Maas
f157863b7d Switch to 48000Hz to fix issues on some systems 2020-02-03 12:10:06 -05:00
Sean Maas
c8b6d81b22 Implement bitmap objects
Also fix inversion of the display capture source A selection
2020-01-31 01:37:29 -05:00
Sean Maas
bd154361ea Fix the display swap timing for dual-screen 3D 2020-01-30 23:43:51 -05:00
Sean Maas
04ede9f30a Blend semi-transparent objects 2020-01-30 17:07:14 -05:00
Sean Maas
2e4747d40f Switch to MinGW for better Windows optimization
Sorry Visual Studio, I won't miss you~
2020-01-28 19:09:56 -05:00
Sean Maas
5c4e608b68 Minor UI adjustments 2020-01-28 02:34:15 -05:00
Sean Maas
e17a50a3c1 Add control remapping to the desktop UI 2020-01-28 02:11:58 -05:00
Sean Maas
bd78c0bbe5 Fix the cancel button in the path settings
Also fix initial panel size on Windows
2020-01-26 14:57:38 -05:00
Sean Maas
3259e936e1 Split the desktop UI into multiple files and update the README 2020-01-26 04:33:00 -05:00
Sean Maas
fcb5154b2b Fix and bring back the timer optimization that broke audio 2020-01-24 21:00:30 -05:00
Sean Maas
afdc029114 Add the core settings to the desktop UI 2020-01-24 01:07:22 -05:00
Sean Maas
4ecfa197dd Update copyright year and fix builds
Oh yeah, it's 2020
Oh yeah, getline() is a POSIX thing
2020-01-23 19:41:02 -05:00
Sean Maas
5f9d6a2c28 Add a basic settings system and some core settings 2020-01-23 19:17:23 -05:00
Sean Maas
3da40d51f2 Support EEPROM 0.5KB saves
Also add the missing sizes for the other save types
2020-01-22 22:16:01 -05:00
Sean Maas
fa815be970 Add polygon culling 2020-01-21 14:07:50 -05:00
Sean Maas
772c80b65b Implement 2D blending 2020-01-20 02:32:00 -05:00
Sean Maas
e5cec423fa Fix Linux autobuild 2020-01-19 03:13:47 -05:00
Sean Maas
b9e9ca30a4 Set the sound bias on direct boot 2020-01-18 23:56:32 -05:00
Sean Maas
6458b9f538 Implement ADPCM audio decoding
Still sounds crusty tho :/
2020-01-16 22:17:13 -05:00
Sean Maas
e5b6fec9ec Add clear color and depth registers 2020-01-16 20:40:58 -05:00
Sean Maas
87a6670cbd Alpha blend the 3D layer with the 2D layers 2020-01-16 20:04:04 -05:00
Sean Maas
5866ad55aa Add SPU, PCM8 and PCM16 formats, and crusty audio output 2020-01-15 01:10:01 -05:00
Sean Maas
5321d183af Render translucent polygons last and add equal depth test 2020-01-12 23:53:42 -05:00
Sean Maas
2b0a360d26 Implement alpha blending 2020-01-12 01:01:22 -05:00
Sean Maas
01c24485ee Implement display capture 2020-01-11 20:07:51 -05:00
Sean Maas
58e6160b81 Add the rest of the texture blending modes 2020-01-10 02:30:40 -05:00
Sean Maas
895622970e Fix Windows being lame again 2020-01-09 15:43:01 -05:00
Sean Maas
ca97d57d5f Finish implementing lighting
The only reason this took so long is because I'm dumb and couldn't
figure out that when GBAtek said to multiply colors it also wanted
me to shift the result right to normalize it :/
2020-01-09 00:09:49 -05:00
Sean Maas
3fb6004d78 Add texture blending and partially implment lighting 2020-01-07 18:26:57 -05:00
Sean Maas
5671649ec5 Cleanup the geometry engine a bit and add missing registers
Also touched up a few other areas
2020-01-06 23:11:04 -05:00