@@ -49,10 +49,6 @@ Helpful information:
49
49
#include <nds/arm7/audio.h>
50
50
#include <nds/arm7/codec.h>
51
51
#include "common/tonccpy.h"
52
- #include "i2c.h"
53
- #include "fat.h"
54
- #include "dldi_patcher.h"
55
- #include "card.h"
56
52
#include "boot.h"
57
53
58
54
void arm7clearRAM ();
@@ -64,51 +60,6 @@ void arm7clearRAM();
64
60
#define TEMP_ARM9_START_ADDRESS (*(vu32*)0x02FFFFF4)
65
61
66
62
67
- const char * bootName = "BOOT.NDS" ;
68
-
69
- extern unsigned long _start ;
70
- extern unsigned long storedFileCluster ;
71
- extern unsigned long initDisc ;
72
- extern unsigned long wantToPatchDLDI ;
73
- extern unsigned long argStart ;
74
- extern unsigned long argSize ;
75
- extern unsigned long dsiSD ;
76
- extern unsigned long dsiMode ;
77
- extern unsigned long clearMasterBright ;
78
- extern unsigned long dsMode ;
79
- extern unsigned long loadFromRam ;
80
-
81
- //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
82
- // Firmware stuff
83
-
84
- #define FW_READ 0x03
85
-
86
- void boot_readFirmware (uint32 address , uint8 * buffer , uint32 size ) {
87
- uint32 index ;
88
-
89
- // Read command
90
- while (REG_SPICNT & SPI_BUSY );
91
- REG_SPICNT = SPI_ENABLE | SPI_CONTINUOUS | SPI_DEVICE_NVRAM ;
92
- REG_SPIDATA = FW_READ ;
93
- while (REG_SPICNT & SPI_BUSY );
94
-
95
- // Set the address
96
- REG_SPIDATA = (address >>16 ) & 0xFF ;
97
- while (REG_SPICNT & SPI_BUSY );
98
- REG_SPIDATA = (address >>8 ) & 0xFF ;
99
- while (REG_SPICNT & SPI_BUSY );
100
- REG_SPIDATA = (address ) & 0xFF ;
101
- while (REG_SPICNT & SPI_BUSY );
102
-
103
- for (index = 0 ; index < size ; index ++ ) {
104
- REG_SPIDATA = 0 ;
105
- while (REG_SPICNT & SPI_BUSY );
106
- buffer [index ] = REG_SPIDATA & 0xFF ;
107
- }
108
- REG_SPICNT = 0 ;
109
- }
110
-
111
-
112
63
static inline void copyLoop (u32 * dest , const u32 * src , u32 size ) {
113
64
size = (size + 3 ) & ~3 ;
114
65
do {
@@ -130,8 +81,6 @@ Modified by Chishm:
130
81
void resetMemory_ARM7 (void )
131
82
{
132
83
int i ;
133
- u8 settings1 , settings2 ;
134
- u32 settingsOffset = 0 ;
135
84
136
85
REG_IME = 0 ;
137
86
@@ -160,33 +109,14 @@ void resetMemory_ARM7 (void)
160
109
161
110
arm7clearRAM ();
162
111
// clear most of EWRAM - except after RAM end - 0xc000, which has the bootstub
163
- toncset ((void * )0x02004000 , 0 , dsiMode && ! dsMode ? 0xFF0000 : 0x3F0000 );
112
+ toncset ((void * )0x02004000 , 0 , 0x3F0000 );
164
113
* (u32 * )(0x2FFFD9C ) = 0 ; // Clear exception handler
165
114
166
115
REG_IE = 0 ;
167
116
REG_IF = ~0 ;
168
117
(* (vu32 * )(0x04000000 - 4 )) = 0 ; //IRQ_HANDLER ARM7 version
169
118
(* (vu32 * )(0x04000000 - 8 )) = ~0 ; //VBLANK_INTR_WAIT_FLAGS, ARM7 version
170
119
REG_POWERCNT = 1 ; //turn off power to stuff
171
-
172
- // Get settings location
173
- boot_readFirmware ((u32 )0x00020 , (u8 * )& settingsOffset , 0x2 );
174
- settingsOffset *= 8 ;
175
-
176
- // Reload DS Firmware settings
177
- boot_readFirmware (settingsOffset + 0x070 , & settings1 , 0x1 );
178
- boot_readFirmware (settingsOffset + 0x170 , & settings2 , 0x1 );
179
-
180
- if ((settings1 & 0x7F ) == ((settings2 + 1 ) & 0x7F )) {
181
- boot_readFirmware (settingsOffset + 0x000 , (u8 * )0x02FFFC80 , 0x70 );
182
- } else {
183
- boot_readFirmware (settingsOffset + 0x100 , (u8 * )0x02FFFC80 , 0x70 );
184
- }
185
-
186
- ((vu32 * )0x040044f0 )[2 ] = 0x202DDD1D ;
187
- ((vu32 * )0x040044f0 )[3 ] = 0xE1A00005 ;
188
- while ((* (vu32 * )0x04004400 ) & 0x2000000 );
189
-
190
120
}
191
121
192
122
@@ -239,10 +169,6 @@ void mpu_reset();
239
169
void mpu_reset_end ();
240
170
241
171
int main (void ) {
242
- #ifdef NO_DLDI
243
- dsiSD = true;
244
- dsiMode = true;
245
- #endif
246
172
// ARM9 clears its memory part 2
247
173
// copy ARM9 function to RAM, and make the ARM9 jump to it
248
174
copyLoop ((void * )TEMP_MEM , (void * )resetMemory2_ARM9 , resetMemory2_ARM9_size );
0 commit comments