Commit Graph

65 Commits

Author SHA1 Message Date
10ca9b6f7f 64-bit build. make library paths not absolute. 2017-03-16 19:47:31 +01:00
d95d22837b proper clear-plane support, including bitmap mode 2017-03-07 01:13:00 +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
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
247558a354 * display capture
* fix bug with bitmap BGs (wrong base offset)
2017-03-01 21:42:06 +01:00
c4d9d27e6e master brightness 2017-03-01 20:23:41 +01:00
f16d2aec61 calculate texture coordinates 2017-02-28 00:50:54 +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
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
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
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
3cf38e3e9d lil' hack. makes SM64DS go ingame. 2017-02-05 18:34:21 +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
5ccf56d21d * fix 'STMxx with base register included in register list' when base register is banked.
* fix cart DMA for ARM9.
2017-02-05 16:50:20 +01:00
67f0c7b123 256-color sprites. code's weird tho. check it later. 2017-02-04 00:07:25 +01:00
4b3f635c9f fixes to tiled extended BGs. support for 256color/direct bitmap BGs. 2017-02-03 23:49:37 +01:00
1f691f3795 * HBlank flag and IRQ.
* VBlank and HBlank DMA.
2017-02-03 18:47:40 +01:00
f4335b9292 better save support. not hardcoded filename, support for non-tiny EEPROM and Flash, attempt at autodetecting the right memory type. 2017-02-03 16:57:31 +01:00
3451e41bd1 tile hflip/vflip for text BGs.
256-color mode for text BGs.
2017-02-01 23:43:02 +01:00
c19056a564 implement screen swap.
silence some logging for 3D GPU writes.
2017-02-01 21:57:25 +01:00
282dcdece3 * make direct boot less shitty.
* add main RAM mirror at 0x02800000 for ARM7.
2017-02-01 21:35:00 +01:00
64f9822db6 fix ARM7 VRAM 2017-02-01 19:30:57 +01:00
1f5faf8291 TSC support, touchscreen input. not perfect but for now this will do. 2017-02-01 00:24:36 +01:00
548b8d99a6 sqrt crap 2017-01-31 21:53:45 +01:00
9541d17c7c * implement the last missing instructions. QADD is not good according to ARMWrestler, but it doesn't make sense. TODO: investigate.
* buttons A and B
* silence 'unknown IO write' for 3D GPU ports
2017-01-31 18:41:31 +01:00
516bc30ee3 * very shitty implementation of save RAM. requires an existing save file for now.
* refine some SPI code, too. mostly removing a useless function.
* support 16bit accesses to DMAxCNT registers.
2017-01-31 17:34:17 +01:00
c3e2f7ad9b * fix VRAM address calculation for GPU A
* add support for mode 5
2017-01-31 15:43:22 +01:00
12ebf83665 keep the GPU from crashing if there's no VRAM mapped, I guess.
noting that the way it's accessing VRAM is grossly inaccurate.
2017-01-31 04:06:05 +01:00
594286ee5d * scheduler revamp, simpler design
* fix dumb bug of the year: ARM LDR opcodes would accidentally read twice, which fucked with things like the IPC FIFO.
2017-01-31 03:54:51 +01:00
348bbd8cb8 move TCM shit to CP15.cpp. closer to the real thing (for example now DMA can't access TCM, etc).
the code is shit. I would use templates if only it fucking worked without requiring the function body to be included in a .h.
2017-01-30 19:11:29 +01:00
6f3b0498db start refactoring shit: more accurate timing and way of counting cycles. 2017-01-30 18:36:11 +01:00
296212ac49 * support for cart secure area
* fix bug in THUMB LDMIA
2017-01-23 02:26:05 +01:00
ac8936539e some attempt at cart support 2017-01-22 20:34:59 +01:00
711375c0be BG scroll. also fix silly bug. 2017-01-20 15:27:56 +01:00
7dba0121cb fix bug with ALU operations and shift operands, where the shift operation could obliterate the carry flag
also, misc shit
2017-01-20 15:13:44 +01:00
3e5e8f60c4 * some basic BG display code
* basic, frozen-in-time RTC
* power management device
2017-01-20 01:18:30 +01:00
d7c1d2a2cd * start GPU shit: draw BG0 16-color.
* fix a few DMA bugs.
* fix a bug where some code could still run right after a halt instruction.
* fix VRAM mapping, too. I'm an idiot.
2017-01-18 17:57:12 +01:00
d30e6956fa skeleton for 2D GPU 2017-01-18 04:03:19 +01:00
7f5ee5c00e ARM9 division hardware. POSTFLG register. 2017-01-18 02:20:45 +01:00
9808b73c6f DMA support! 2017-01-18 01:33:06 +01:00
b10a0d64a2 fix bug with IPC FIFO IRQs 2017-01-17 05:29:38 +01:00
8ea2aaad5a separate IO read/write handlers from the rest before it's too late.
remove some useless cruft.
2017-01-17 02:29:25 +01:00
45bceecc19 IPC FIFO emulation. 2017-01-17 01:58:25 +01:00