Commit Graph

115 Commits

Author SHA1 Message Date
fe31ec297c * direct color textures.
* texture wrap modes.
2017-03-06 18:25:20 +01:00
383093c5ff make NEG update flags correctly (oops).
also misc graphics notes added.
2017-03-06 18:13:57 +01:00
52d866fa17 remove unneeded files. will stop melonDS.depend from polluting commit diffs. 2017-03-04 20:46:58 +01:00
8c7b7e2327 temp. hack preventing evil out-of-bounds write 2017-03-04 15:34:07 +01:00
f8770dc8fe don't blend semitransparent sprites with everything 2017-03-04 14:51:48 +01:00
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
ff4c1c9cf6 support 16-bit writes to rotscale reference point registers 2017-03-04 02:37:39 +01:00
a7e7af4b47 fix behavior for rotscale BG reference points 2017-03-04 02:22:58 +01:00
5c3b7b5c30 confirm that 2D brightness-up effect does x=x+(63-x)*factor 2017-03-04 00:17:01 +01:00
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
e0fa57fbf2 * color special effects (fade, blending)
* sprite blending

not optimized, but works
2017-03-02 19:00:19 +01:00
464717602f * compressed textures (asfafdgasfgadf)
* fix bug where sprites too close to the right border shat themselves
2017-03-02 01:53:08 +01:00
dcc0227b56 textures.
well, it's a start.
2017-03-02 00:49:44 +01:00
f7c481b2a1 support for non-rotscaled bitmap sprites 2017-03-01 23:02:50 +01:00
247558a354 * display capture
* fix bug with bitmap BGs (wrong base offset)
2017-03-01 21:42:06 +01:00
5d9e9a5023 no master brightness when screen is disabled. 2017-03-01 20:25:19 +01:00
c4d9d27e6e master brightness 2017-03-01 20:23:41 +01:00
bc335e31cb * slightly better 3D polygons.
* fix sprite-related bugs. implement 256-color rotscaled sprites.
2017-02-28 12:44:54 +01:00
e5a4aa7c84 also keep track of texture attributes 2017-02-28 00:52:17 +01:00
f16d2aec61 calculate texture coordinates 2017-02-28 00:50:54 +01:00
fb9dddc360 dumb copypasta bug of the year. 2017-02-27 21:30:32 +01:00
8c2572e354 correct VRAM emulation.
there is room for optimizations esp. in the GPU drawing routines.
2017-02-27 21:26:11 +01:00
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
261689d3d1 'FIFO full' hack for SM64DS. 2017-02-17 19:34:41 +01:00
97d76addd9 fix a bunch of GXFIFO related bugs. 2017-02-17 18:59:11 +01:00
cca0a71d81 emulate DMA timings.
keeps games from overflowing the GXFIFO... when they aren't fucking dumb.
2017-02-17 05:33:37 +01:00
abd2cb444b improve 3D renderer precision. not perfect, but not bad at all. 2017-02-17 04:07:00 +01:00
676e5b32cc perspective-correct Gouraud 2017-02-15 17:49:14 +01:00
ef7fbf8b03 18-bit graphics pipeline
(final buffer is 32-bit)
2017-02-14 21:55:51 +01:00
c5b7ec2168 attempt at depth buffer 2017-02-14 03:29:02 +01:00
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
fb53fd5195 * fix overflows during fixed-point multiply
* small fix to SwapBuffers
2017-02-13 14:59:51 +01:00
361ddd7595 * fix GXFIFO decoding
* proper SwapBuffers implementation
* fix polygon clipping
* misc fixes
2017-02-13 02:07:54 +01:00
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
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
78f49d061a base for software renderer 2017-02-10 16:50:26 +01:00
c95f7578bb store vertices and polygons. strips not handled yet. 2017-02-10 15:24:46 +01:00
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
896bb1b781 ARM: Fix out of bounds array indexing in RestoreCPSR 2017-02-09 08:18:05 -05:00
2bd67aef64 calculate vertices.
it doesn't do much, but hey, it's a start.
2017-02-09 02:39:52 +01:00
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
796dc58f71 GXFIFO finished. hacktastic integration into the ARM9 loop. 2017-02-08 00:52:37 +01:00
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
2b7fac05c7 rework FIFO crap so it can also be used for the GXFIFO crapo. 2017-02-07 22:41:33 +01:00
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
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
3cf38e3e9d lil' hack. makes SM64DS go ingame. 2017-02-05 18:34:21 +01:00
1001df49ea support extended palette for 256-color sprites. 2017-02-05 18:23:03 +01:00
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
ff3b60bc93 ARM7 BIOS read protect.
(noting that Super Princess Peach reads from the BIOS. probably a bug)
2017-02-05 17:15:17 +01:00