Commit Graph

1666 Commits

Author SHA1 Message Date
StapleButter a9cc55ca6d less derpy texture mapping 2017-03-06 18:43:58 +01:00
StapleButter fe31ec297c * direct color textures.
* texture wrap modes.
2017-03-06 18:25:20 +01:00
StapleButter 383093c5ff make NEG update flags correctly (oops).
also misc graphics notes added.
2017-03-06 18:13:57 +01:00
StapleButter 52d866fa17 remove unneeded files. will stop melonDS.depend from polluting commit diffs. 2017-03-04 20:46:58 +01:00
StapleButter 8c7b7e2327 temp. hack preventing evil out-of-bounds write 2017-03-04 15:34:07 +01:00
StapleButter f8770dc8fe don't blend semitransparent sprites with everything 2017-03-04 14:51:48 +01:00
StapleButter b6e12e0c18 * fix a few bugs related to 2D GPU registers (so there are atleast some of the graphics tests that pass)
* less shitty texture mapping (and perspective-correct interpolation in general). extra bonus is that it also takes less divisions.
2017-03-04 14:47:20 +01:00
StapleButter ff4c1c9cf6 support 16-bit writes to rotscale reference point registers 2017-03-04 02:37:39 +01:00
StapleButter a7e7af4b47 fix behavior for rotscale BG reference points 2017-03-04 02:22:58 +01:00
StapleButter 5c3b7b5c30 confirm that 2D brightness-up effect does x=x+(63-x)*factor 2017-03-04 00:17:01 +01:00
StapleButter 2a33a5c480 * fixes to GXFIFO IRQ. refine IRQ support a bit.
* fix potential bug when multiple DMAs are running.
2017-03-03 00:48:26 +01:00
StapleButter e0fa57fbf2 * color special effects (fade, blending)
* sprite blending

not optimized, but works
2017-03-02 19:00:19 +01:00
StapleButter 464717602f * compressed textures (asfafdgasfgadf)
* fix bug where sprites too close to the right border shat themselves
2017-03-02 01:53:08 +01:00
StapleButter dcc0227b56 textures.
well, it's a start.
2017-03-02 00:49:44 +01:00
StapleButter f7c481b2a1 support for non-rotscaled bitmap sprites 2017-03-01 23:02:50 +01:00
StapleButter 247558a354 * display capture
* fix bug with bitmap BGs (wrong base offset)
2017-03-01 21:42:06 +01:00
StapleButter 5d9e9a5023 no master brightness when screen is disabled. 2017-03-01 20:25:19 +01:00
StapleButter c4d9d27e6e master brightness 2017-03-01 20:23:41 +01:00
StapleButter bc335e31cb * slightly better 3D polygons.
* fix sprite-related bugs. implement 256-color rotscaled sprites.
2017-02-28 12:44:54 +01:00
StapleButter e5a4aa7c84 also keep track of texture attributes 2017-02-28 00:52:17 +01:00
StapleButter f16d2aec61 calculate texture coordinates 2017-02-28 00:50:54 +01:00
StapleButter fb9dddc360 dumb copypasta bug of the year. 2017-02-27 21:30:32 +01:00
StapleButter 8c2572e354 correct VRAM emulation.
there is room for optimizations esp. in the GPU drawing routines.
2017-02-27 21:26:11 +01:00
StapleButter dadf1eb5a5 fixes to 3D rendering. polygons are almost pixel-perfect. clipping still doesn't get colors quite right. 2017-02-20 18:46:44 +01:00
StapleButter 261689d3d1 'FIFO full' hack for SM64DS. 2017-02-17 19:34:41 +01:00
StapleButter 97d76addd9 fix a bunch of GXFIFO related bugs. 2017-02-17 18:59:11 +01:00
StapleButter cca0a71d81 emulate DMA timings.
keeps games from overflowing the GXFIFO... when they aren't fucking dumb.
2017-02-17 05:33:37 +01:00
StapleButter abd2cb444b improve 3D renderer precision. not perfect, but not bad at all. 2017-02-17 04:07:00 +01:00
StapleButter 676e5b32cc perspective-correct Gouraud 2017-02-15 17:49:14 +01:00
StapleButter ef7fbf8b03 18-bit graphics pipeline
(final buffer is 32-bit)
2017-02-14 21:55:51 +01:00
StapleButter c5b7ec2168 attempt at depth buffer 2017-02-14 03:29:02 +01:00
StapleButter 68fb77b204 * backface/frontface culling (and rendering of backfacing polygons)
* fix clipping/viewport transform precision errors
* triangle/quad strips
2017-02-14 02:43:35 +01:00
StapleButter fb53fd5195 * fix overflows during fixed-point multiply
* small fix to SwapBuffers
2017-02-13 14:59:51 +01:00
StapleButter 361ddd7595 * fix GXFIFO decoding
* proper SwapBuffers implementation
* fix polygon clipping
* misc fixes
2017-02-13 02:07:54 +01:00
StapleButter 15c8d59e2b vertex colors, with Gouraud shading and all
has yet to be checked for whether it's accurate, optimized, etc...
2017-02-11 04:10:59 +01:00
StapleButter 050ba5dfbe some debuts of 3D drawing.
it can draw non-strip polygons, filled with a fixed color. oh and it doesn't work if they're facing back.
2017-02-11 03:54:08 +01:00
StapleButter 78f49d061a base for software renderer 2017-02-10 16:50:26 +01:00
StapleButter c95f7578bb store vertices and polygons. strips not handled yet. 2017-02-10 15:24:46 +01:00
StapleButter 3ad95fbc65 Merge pull request #4 from lioncash/off-by-one
ARM: Fix out of bounds array indexing in RestoreCPSR
2017-02-10 14:27:26 +01:00
Lioncash 896bb1b781 ARM: Fix out of bounds array indexing in RestoreCPSR 2017-02-09 08:18:05 -05:00
StapleButter 2bd67aef64 calculate vertices.
it doesn't do much, but hey, it's a start.
2017-02-09 02:39:52 +01:00
StapleButter 49fd4ccb45 * GXFIFO DMA (note: Mario Slam Basketball keeps overflowing the FIFO for whatever reason, probably lack of proper DMA timings)
* start implementing matrix shit
2017-02-08 21:30:10 +01:00
StapleButter 796dc58f71 GXFIFO finished. hacktastic integration into the ARM9 loop. 2017-02-08 00:52:37 +01:00
StapleButter 971e7b7e89 well, GX FIFO base. noting that for now, it doesn't do much beyond getting full real quick.
also make ROM loading fail gracefully if it shits itself, instead of entering an endless loop.
2017-02-07 23:31:21 +01:00
StapleButter 2b7fac05c7 rework FIFO crap so it can also be used for the GXFIFO crapo. 2017-02-07 22:41:33 +01:00
StapleButter 0562410de2 * lay base for 3D engine
* add failure reporting to Init functions, and DeInit functions
* GPU-related notes
* readme update
2017-02-07 22:23:46 +01:00
StapleButter 86cdf28323 change how redrawing is done. fixes memory leak and other fun shit.
calling GetDC() over and over again isn't a good idea.
2017-02-06 00:07:22 +01:00
StapleButter 3cf38e3e9d lil' hack. makes SM64DS go ingame. 2017-02-05 18:34:21 +01:00
StapleButter 1001df49ea support extended palette for 256-color sprites. 2017-02-05 18:23:03 +01:00
StapleButter e88cf1b43d apparently when you set an out-of-bounds address for EEPROM, it should wrap around
TODO: check if it also happens with Flash

also fix shit that could have later turned into memory leaks
2017-02-05 17:45:17 +01:00