51 Commits

Author SHA1 Message Date
Gabriel Marcano
b34bde68c3 start.s now invalidates caches and cleans dcache
Added routine to invalidate all cachces, and to clean dcache. Using said
routine, both right before disabling the MPU for setup, and while the
MPU is disabled for setup to ensure that the cache state is well known
(i.e. all data that may have only been written to the cache definitely
is in RAM, and all of cache is invalid).
2016-06-22 23:57:36 -04:00
Gabriel Marcano
aff25d2834 Fixes issue with uncart freezing when starting up
-There seemed to have been a problem with caching and uncart, at least
under a9lh and with one system. Explicitly disabling the mpu before
setting it up and before calling subroutines related to setting it up
appears to have fixed the problem.
2016-06-20 23:25:09 -04:00
Gabriel Marcano
ce23df7d9b Forgot to remove typo, extra i2c.h include. 2016-06-08 20:00:31 -04:00
Gabriel Marcano
4c0559bc1a Explicitly setup heap, fixes brahma.
Since brahma has its stack (unless it is changed) in ARM9 memory, the
default logic for setting up the heap breaks, since it assumes the heap
is in lower memory than the stack. This commit uses a hook used by
newlib to setup the heap at any random location in memory. This commit
just allocates a 32MB heap, although it could certainly be larger.
2016-06-08 19:48:42 -04:00
Gabriel Marcano
a471b28cd5 Styling fixes, framebuffer fix
-Fixed a lot of styling problems related to indentation and spacing.
-Fixed a bug where the cakehax framebuffer structure was being
overwritten by the heap.
2016-06-07 23:15:14 -04:00
Gabriel Marcano
4f1fd1a32b Added support to compile for both brahma and a9lh 2016-06-07 09:31:22 -04:00
Gabriel Marcano
2c3870dbad Memory management cleaning, dump options
-newlib handles allocations, in the default case, by starting to
allocate memory right after the end of the program in memory, and will
continue to allocate memory as requested until it hits the stack. As a
result, it is safe to use memory allocation function to get memory for
usage. Changed some of the memory management in the application to use
memalign (memory needs to be aligned to at least 16 bits if sdmmc.c is
to work, preferably 32 bits).
-Added an option for the user to either dump the full ROM, or just the
partitions.
2016-06-07 02:49:50 -04:00
Gabriel Marcano
913bc867b7 No longer saves more than the ROM size, cleanup
Using some header information from rom_tool, it was possible to
implement something that will accurately determine the real ROM size.
With that information, uncart no longer dumps in 2GB chunks, but to the
actual size of ROM (all 8 partitions).

Warnings were cleaned up as much as possible for now (2 remain). i2c
support was added in order to be able to shut down uncart when it is
over (it isn't clear that the ASM in start.s is right for returning
control to brahma, if that's even possible). More warnings were enabled
in the Makefile, and lto was enabled.

Currently, the Makefile and the draw.h are configured for a9lh support.
2016-06-07 02:32:45 -04:00
bunnei
13a9ad8ec5 Merge pull request #14 from d0k3/master
Allow rebooting on Brahma 2
2016-06-06 20:27:38 -04:00
d0k3
bf944f682b Allow rebooting on Brahma 2 2016-06-07 01:21:34 +02:00
Normmatt
9d35b8b6ee opps forgot to reset read_count. 2015-06-15 09:58:55 +12:00
Normmatt
0d2e59c909 Add support for dumping Development Carts.
Fix whitespace.
2015-06-15 09:49:08 +12:00
archshift
fbd56fd723 Add sdmmc.c (by Normmatt) with 3DS-specific SDMMC code 2015-06-08 03:09:41 -07:00
Lioncash
70679335b2 main: Use constants for AND filtering input 2015-06-01 00:41:31 -04:00
Yuri Kunde Schlesner
179b593886 Remove outdated prompt 2015-05-29 14:46:45 -03:00
Yuri Kunde Schlesner
cd38556f97 Fill unused header area with 0xFF instead of garbage. 2015-05-29 14:46:22 -03:00
Yuri Kunde Schlesner
ea3b963f23 Add support for split-dumping large carts
Closes #1
2015-05-28 16:51:39 -03:00
Yuri Kunde Schlesner
43554a68d3 Add a hacky workaround for problematic carts
This adds a few strategically placed dummy commands which skip the bad
responses, allowing the cart to be dumped.
2015-05-25 17:46:00 -03:00
Yuri Kunde Schlesner
ff6e6862ff Nicer dumping and buffering loop. 2015-05-25 04:52:32 -03:00
Yuri Kunde Schlesner
6fdf216e25 Increase a few ioDelays during cart initialization
This helps with carts that return FFFFFFFF as the cart id.
2015-05-25 00:02:05 -03:00
Yuri Kunde Schlesner
ce21c68e8c Various cleanups and UI improvements (hopefully...) 2015-05-24 23:29:37 -03:00
Yuri Kunde Schlesner
843095109f Add (optional) verbose logging of cart traffic, for debugging 2015-05-24 22:56:43 -03:00
Yuri Kunde Schlesner
f95a7585fc Fix variable type. 2015-05-24 22:52:26 -03:00
Yuri Kunde Schlesner
8641c98b13 Fix variable type 2015-05-24 21:39:35 -03:00
Yuri Kunde Schlesner
890c605423 Make console more readable when the output overflows the screen 2015-05-15 19:29:31 -03:00
Yuri Kunde Schlesner
7e785433d6 Do uncached reads inside ioDelay to improve delay reliability 2015-05-15 19:26:14 -03:00
Yuri Kunde Schlesner
ce0eec34e7 Make WaitInput wait for a press, not a release. 2015-05-15 19:22:53 -03:00
Lioncash
d3768d4fe8 Get rid of missing prototype warnings 2015-05-14 21:30:39 -04:00
Lioncash
24014cd41f protocol: Make translation-unit only variables static 2015-05-14 21:14:25 -04:00
Yuri Kunde Schlesner
4c0b428cde Remove pointless casts and fix variable types. 2015-05-14 04:27:30 -03:00
Yuri Kunde Schlesner
76997590c7 Fix key input function continuing on button releases 2015-05-14 04:25:25 -03:00
Yuri Kunde Schlesner
121c93ba11 Correct typos in cache initialization code 2015-05-14 04:23:24 -03:00
archshift
a7912ecfe6 Remove unused framebuffer.h 2015-05-13 22:32:42 -07:00
archshift
c63b25fb58 Remove unused (and superseded) letters.h 2015-05-13 22:11:49 -07:00
archshift
b93dd813f5 Fix reference to a pointer being written to file instead of a pointer. 2015-05-13 22:02:24 -07:00
archshift
c06625f422 Enable MCU, caches for massive speedups in game dump time. 2015-05-13 21:09:17 -07:00
Normmatt
99660d22f8 Added licences to some files. 2015-05-12 11:15:16 +12:00
Lioncash
30bb85a4ef Get rid of basic warnings found with -Wextra
- Signed/unsigned compares
- static not being before const
2015-05-11 10:33:38 -04:00
Lioncash
9f711deb48 main: Get rid of unused variables. 2015-05-11 10:21:59 -04:00
Lioncash
a6db883d49 common: Cache string length in strupper/strlower
Avoids calling strlen every loop iteration.
2015-05-11 03:14:59 -04:00
archshift
1059f73fb8 protocol_ntr.c: Change if block chain to a switch block 2015-05-11 00:14:08 -07:00
Lioncash
1f4c4911fc Common: Use typedefs instead of defines 2015-05-11 03:08:32 -04:00
archshift
192dd2584b Split up misc.h into respective protocol, etc files 2015-05-10 13:09:49 -07:00
archshift
3b8608fee2 Split out NTR and CTR commands into their own files 2015-05-10 12:51:46 -07:00
archshift
4ca99178d3 Code style cleanups, removing dead code 2015-05-10 01:22:47 -07:00
archshift
ed9f2e85f8 Ensure newlines are at the end of all files 2015-05-10 01:00:50 -07:00
archshift
bd925bae17 Split up gamecart.c/h into multiple protocol files 2015-05-10 00:53:09 -07:00
archshift
de5f58b7a0 Move gamecart files to their own folder
Preparation for splitting them up into multiple files
2015-05-10 00:31:52 -07:00
archshift
bc5aa24d4f Move includes into source/ directory, some small cleanups 2015-05-10 00:14:42 -07:00
archshift
2c131f4c63 Rename Cart.cpp/h to gamecart.c/h, actually use its header file 2015-05-09 23:42:30 -07:00