Commit Graph

63 Commits

Author SHA1 Message Date
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
StapleButter 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
StapleButter 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
StapleButter 829b044802 improve touchscreen precision 2017-02-04 00:12:08 +01:00
StapleButter 67f0c7b123 256-color sprites. code's weird tho. check it later. 2017-02-04 00:07:25 +01:00
StapleButter 4b3f635c9f fixes to tiled extended BGs. support for 256color/direct bitmap BGs. 2017-02-03 23:49:37 +01:00
StapleButter 410c18fac4 blarg 2017-02-03 21:11:23 +01:00
StapleButter 1f691f3795 * HBlank flag and IRQ.
* VBlank and HBlank DMA.
2017-02-03 18:47:40 +01:00
StapleButter 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
StapleButter 7e9972e037 an attempt at shitty extended "tile+rotscale" BGs 2017-02-02 01:18:03 +01:00
StapleButter 6486d0e10d BG extended palettes! 2017-02-02 00:09:40 +01:00
StapleButter 3451e41bd1 tile hflip/vflip for text BGs.
256-color mode for text BGs.
2017-02-01 23:43:02 +01:00
StapleButter c19056a564 implement screen swap.
silence some logging for 3D GPU writes.
2017-02-01 21:57:25 +01:00
StapleButter 282dcdece3 * make direct boot less shitty.
* add main RAM mirror at 0x02800000 for ARM7.
2017-02-01 21:35:00 +01:00
StapleButter 64f9822db6 fix ARM7 VRAM 2017-02-01 19:30:57 +01:00
StapleButter 03c1a9cbc8 more anti-crash.
don't unmap VRAM in cases of overlaps. fixes NSMB minigames, for now.
2017-02-01 17:05:12 +01:00
StapleButter 6d2092a106 blarg 2017-02-01 00:31:23 +01:00
StapleButter 1f5faf8291 TSC support, touchscreen input. not perfect but for now this will do. 2017-02-01 00:24:36 +01:00
StapleButter 548b8d99a6 sqrt crap 2017-01-31 21:53:45 +01:00
StapleButter 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
StapleButter 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
StapleButter c3e2f7ad9b * fix VRAM address calculation for GPU A
* add support for mode 5
2017-01-31 15:43:22 +01:00
StapleButter 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
StapleButter 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
StapleButter 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
StapleButter 6f3b0498db start refactoring shit: more accurate timing and way of counting cycles. 2017-01-30 18:36:11 +01:00
StapleButter 296212ac49 * support for cart secure area
* fix bug in THUMB LDMIA
2017-01-23 02:26:05 +01:00
StapleButter ac8936539e some attempt at cart support 2017-01-22 20:34:59 +01:00
StapleButter 62ed28d5c8 rotscaled 16color sprites. about fucking time I get this shit working. 2017-01-21 17:06:54 +01:00
StapleButter 14f1cec955 some beginning of sprite support: 16bit tiled sprites, not rotated or anything fancy
also give it a version number
2017-01-21 03:36:14 +01:00
StapleButter 711375c0be BG scroll. also fix silly bug. 2017-01-20 15:27:56 +01:00
StapleButter 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
StapleButter 3e5e8f60c4 * some basic BG display code
* basic, frozen-in-time RTC
* power management device
2017-01-20 01:18:30 +01:00
StapleButter 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
StapleButter d30e6956fa skeleton for 2D GPU 2017-01-18 04:03:19 +01:00
StapleButter bff3a92cc0 fix bug that could cause nested IRQs.
fix potential bug in MSR.
2017-01-18 03:11:07 +01:00
StapleButter 7f5ee5c00e ARM9 division hardware. POSTFLG register. 2017-01-18 02:20:45 +01:00
StapleButter 9808b73c6f DMA support! 2017-01-18 01:33:06 +01:00
StapleButter b10a0d64a2 fix bug with IPC FIFO IRQs 2017-01-17 05:29:38 +01:00
StapleButter 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
StapleButter 45bceecc19 IPC FIFO emulation. 2017-01-17 01:58:25 +01:00
StapleButter 8c2f785a0f uh oh! it's getting further
(also CodeBlocks is fucking dumb)
2017-01-16 04:47:37 +01:00
StapleButter af05333290 christ. CodeBlocks is retarded.
also, lots of crap. I lost track of it.
2016-12-23 21:22:22 +01:00
StapleButter 9bb3537ede some more crap emulated. 2016-12-06 17:32:51 +01:00
StapleButter c8a0058ebc implementation of VRAM and other misc crap 2016-12-05 23:17:03 +01:00
StapleButter 8c8c78cf83 misc fixes.
shit in place to start implementing GPU shit.
GPL headers added before it's too late. (TODO: put actual GPL license in the repo)
also added URL that doesn't exist yet but is reserved.
2016-12-05 18:02:29 +01:00
StapleButter 343797f47d * somewhat proper event scheduler
* support for timers
* fixes, additions, shit
2016-12-05 17:08:24 +01:00