mirror of
https://github.com/sanni/cartreader.git
synced 2024-12-28 14:01:52 +01:00
Fix flashing N64 repro and add progress bar
This commit is contained in:
parent
34e2ef2bae
commit
edc2b2fa15
@ -545,7 +545,9 @@ void setAddress_N64(unsigned long myAddress) {
|
|||||||
|
|
||||||
// Switch WR(PH5) RD(PH6) ale_L(PC0) ale_H(PC1) to high (since the pins are active low)
|
// Switch WR(PH5) RD(PH6) ale_L(PC0) ale_H(PC1) to high (since the pins are active low)
|
||||||
PORTH |= (1 << 5) | (1 << 6);
|
PORTH |= (1 << 5) | (1 << 6);
|
||||||
PORTC |= (1 << 0) | (1 << 1);
|
PORTC |= (1 << 1);
|
||||||
|
__asm__("nop\n\t"); // needed for repro
|
||||||
|
PORTC |= (1 << 0);
|
||||||
|
|
||||||
// Output high part to address pins
|
// Output high part to address pins
|
||||||
PORTF = myAdrHighOut & 0xFF;
|
PORTF = myAdrHighOut & 0xFF;
|
||||||
@ -3302,13 +3304,11 @@ void flashRepro_N64() {
|
|||||||
myFile.close();
|
myFile.close();
|
||||||
|
|
||||||
// Verify
|
// Verify
|
||||||
print_STR(verifying_STR, 0);
|
print_STR(verifying_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
writeErrors = verifyFlashrom_N64();
|
writeErrors = verifyFlashrom_N64();
|
||||||
if (writeErrors == 0) {
|
if (writeErrors != 0) {
|
||||||
println_Msg(FS(FSTRING_OK));
|
display_Clear();
|
||||||
display_Update();
|
|
||||||
} else {
|
|
||||||
print_Msg(writeErrors);
|
print_Msg(writeErrors);
|
||||||
print_Msg(F(" bytes "));
|
print_Msg(F(" bytes "));
|
||||||
print_Error(did_not_verify_STR);
|
print_Error(did_not_verify_STR);
|
||||||
@ -3753,6 +3753,11 @@ boolean blankcheckFlashrom_N64() {
|
|||||||
|
|
||||||
// Write Intel flashrom
|
// Write Intel flashrom
|
||||||
void writeIntel4400_N64() {
|
void writeIntel4400_N64() {
|
||||||
|
//Initialize progress bar
|
||||||
|
uint32_t processedProgressBar = 0;
|
||||||
|
uint32_t totalProgressBar = (uint32_t)(fileSize);
|
||||||
|
draw_progressbar(0, totalProgressBar);
|
||||||
|
|
||||||
for (unsigned long currSector = 0; currSector < fileSize; currSector += 131072) {
|
for (unsigned long currSector = 0; currSector < fileSize; currSector += 131072) {
|
||||||
// Blink led
|
// Blink led
|
||||||
blinkLED();
|
blinkLED();
|
||||||
@ -3800,6 +3805,8 @@ void writeIntel4400_N64() {
|
|||||||
statusReg = readWord_N64();
|
statusReg = readWord_N64();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
processedProgressBar += 512;
|
||||||
|
draw_progressbar(processedProgressBar, totalProgressBar);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3807,6 +3814,11 @@ void writeIntel4400_N64() {
|
|||||||
void writeMSP55LV100_N64(unsigned long sectorSize) {
|
void writeMSP55LV100_N64(unsigned long sectorSize) {
|
||||||
unsigned long flashBase = romBase;
|
unsigned long flashBase = romBase;
|
||||||
|
|
||||||
|
//Initialize progress bar
|
||||||
|
uint32_t processedProgressBar = 0;
|
||||||
|
uint32_t totalProgressBar = (uint32_t)(fileSize);
|
||||||
|
draw_progressbar(0, totalProgressBar);
|
||||||
|
|
||||||
for (unsigned long currSector = 0; currSector < fileSize; currSector += sectorSize) {
|
for (unsigned long currSector = 0; currSector < fileSize; currSector += sectorSize) {
|
||||||
// Blink led
|
// Blink led
|
||||||
blinkLED();
|
blinkLED();
|
||||||
@ -3856,6 +3868,8 @@ void writeMSP55LV100_N64(unsigned long sectorSize) {
|
|||||||
statusReg = readWord_N64();
|
statusReg = readWord_N64();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
processedProgressBar += 512;
|
||||||
|
draw_progressbar(processedProgressBar, totalProgressBar);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3864,6 +3878,11 @@ void writeMSP55LV100_N64(unsigned long sectorSize) {
|
|||||||
void writeFlashBuffer_N64(unsigned long sectorSize, byte bufferSize) {
|
void writeFlashBuffer_N64(unsigned long sectorSize, byte bufferSize) {
|
||||||
unsigned long flashBase = romBase;
|
unsigned long flashBase = romBase;
|
||||||
|
|
||||||
|
//Initialize progress bar
|
||||||
|
uint32_t processedProgressBar = 0;
|
||||||
|
uint32_t totalProgressBar = (uint32_t)(fileSize);
|
||||||
|
draw_progressbar(0, totalProgressBar);
|
||||||
|
|
||||||
for (unsigned long currSector = 0; currSector < fileSize; currSector += sectorSize) {
|
for (unsigned long currSector = 0; currSector < fileSize; currSector += sectorSize) {
|
||||||
// Blink led
|
// Blink led
|
||||||
blinkLED();
|
blinkLED();
|
||||||
@ -3918,6 +3937,8 @@ void writeFlashBuffer_N64(unsigned long sectorSize, byte bufferSize) {
|
|||||||
statusReg = readWord_N64();
|
statusReg = readWord_N64();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
processedProgressBar += 512;
|
||||||
|
draw_progressbar(processedProgressBar, totalProgressBar);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3926,6 +3947,11 @@ void writeFlashBuffer_N64(unsigned long sectorSize, byte bufferSize) {
|
|||||||
void writeFlashrom_N64(unsigned long sectorSize) {
|
void writeFlashrom_N64(unsigned long sectorSize) {
|
||||||
unsigned long flashBase = romBase;
|
unsigned long flashBase = romBase;
|
||||||
|
|
||||||
|
//Initialize progress bar
|
||||||
|
uint32_t processedProgressBar = 0;
|
||||||
|
uint32_t totalProgressBar = (uint32_t)(fileSize);
|
||||||
|
draw_progressbar(0, totalProgressBar);
|
||||||
|
|
||||||
for (unsigned long currSector = 0; currSector < fileSize; currSector += sectorSize) {
|
for (unsigned long currSector = 0; currSector < fileSize; currSector += sectorSize) {
|
||||||
// Blink led
|
// Blink led
|
||||||
blinkLED();
|
blinkLED();
|
||||||
@ -3956,6 +3982,8 @@ void writeFlashrom_N64(unsigned long sectorSize) {
|
|||||||
statusReg = readWord_N64();
|
statusReg = readWord_N64();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
processedProgressBar += 512;
|
||||||
|
draw_progressbar(processedProgressBar, totalProgressBar);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3965,6 +3993,11 @@ unsigned long verifyFlashrom_N64() {
|
|||||||
if (myFile.open(filePath, O_READ)) {
|
if (myFile.open(filePath, O_READ)) {
|
||||||
writeErrors = 0;
|
writeErrors = 0;
|
||||||
|
|
||||||
|
//Initialize progress bar
|
||||||
|
uint32_t processedProgressBar = 0;
|
||||||
|
uint32_t totalProgressBar = (uint32_t)(fileSize);
|
||||||
|
draw_progressbar(0, totalProgressBar);
|
||||||
|
|
||||||
for (unsigned long currSector = 0; currSector < fileSize; currSector += 131072) {
|
for (unsigned long currSector = 0; currSector < fileSize; currSector += 131072) {
|
||||||
// Blink led
|
// Blink led
|
||||||
blinkLED();
|
blinkLED();
|
||||||
@ -3988,6 +4021,8 @@ unsigned long verifyFlashrom_N64() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
processedProgressBar += 512;
|
||||||
|
draw_progressbar(processedProgressBar, totalProgressBar);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Close the file:
|
// Close the file:
|
||||||
|
Loading…
Reference in New Issue
Block a user