Commit Graph

47 Commits

Author SHA1 Message Date
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
8c2f785a0f uh oh! it's getting further
(also CodeBlocks is fucking dumb)
2017-01-16 04:47:37 +01:00
af05333290 christ. CodeBlocks is retarded.
also, lots of crap. I lost track of it.
2016-12-23 21:22:22 +01:00
9bb3537ede some more crap emulated. 2016-12-06 17:32:51 +01:00
c8a0058ebc implementation of VRAM and other misc crap 2016-12-05 23:17:03 +01:00
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
343797f47d * somewhat proper event scheduler
* support for timers
* fixes, additions, shit
2016-12-05 17:08:24 +01:00
a14c01208a fix some shit. add support for SPI and firmware. 2016-12-04 03:20:50 +01:00
d7c1d77ba2 more instructions. shared WRAM. 2016-12-03 18:29:19 +01:00
1e4086e1b6 moar instructions and shit implemented 2016-12-03 17:58:24 +01:00
f2858e1c47 less amnesia! ITCM, DTCM, corresponding CP15 support 2016-12-03 16:13:04 +01:00
948cdeab59 amnesia is over 2016-12-03 13:42:27 +01:00
23d584ca4c implement LDR/STR/LDRB/STRB.
more macro soup.
2016-12-03 01:31:33 +01:00
f74fb2dd27 well, adding shit. laying out the base for the interpreter. really dirty code. 2016-11-24 18:31:49 +01:00
3505ec993b hey look, more crap
no MrRean this doesn't run NSMB yet
2016-11-03 01:38:58 +01:00
5b7ae6dab3 add more crap 2016-05-16 17:48:40 +02:00