From 46e29c705b5ab899ded489285287e8fd3c79af21 Mon Sep 17 00:00:00 2001 From: msiewert76 Date: Sun, 7 Aug 2011 14:53:26 +0000 Subject: [PATCH] - fix string parsing for two consecutive newline chars - fix missing string output under various conditions - add "extra" field to version in title string (alpha/beta/rc/...) - don't force reboot after working on a GBA game - some updates to instruction file - delete pnps file, which is not a part of the code (I hope this is all that was changed. Tried to fix one final bug, didn't work, tried to revert everything that did not work.) --- Changelog.txt | 3 +-- HACKING.txt | 3 +++ arm9/source/display.cpp | 4 ++-- arm9/source/gba.cpp | 7 +++++- arm9/source/globals.h | 1 + arm9/source/hardware.cpp | 47 ++++++++++++++++++++++++--------------- arm9/source/main.cpp | 14 ++++++++++++ arm9/source/strings.cpp | 3 +-- lang/sgm_german.ini | 2 +- lang/template.ini | 2 +- savegame_manager.odt | Bin 26385 -> 27655 bytes savegame_manager.pnproj | 2 +- savegame_manager.pnps | 1 - 13 files changed, 60 insertions(+), 29 deletions(-) delete mode 100644 savegame_manager.pnps diff --git a/Changelog.txt b/Changelog.txt index 7b72aa7..b4ee5eb 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -37,14 +37,13 @@ Version 0.2.4 (4-10-2011) - Program now makes use of lower screen for most messages, which allows longer, more detailled messages. - Adds a Readme file/Manual to the program. -Version 0.3 (6-??-2011) +Version 0.3.0 RC1 (8-??-2011) This is the first non-beta, feature complete release. - Adds the ability to translate most parts of the user interface. - Adds Slot 2 backup mode (you will need a Slot 2 flash card; anything that has a DLDI driver should be supported). - Enables FTP restore mode for saves bigger than the memory buffer (usually 2 MB). -- Fixes FTP mode so that multiple transactions are possible without restarting. - Various stability fixes. - Many behind-the scenes improvements aimed to simplify further hacking. - Instruction file is no longer beta. diff --git a/HACKING.txt b/HACKING.txt index 6df6090..113c86d 100644 --- a/HACKING.txt +++ b/HACKING.txt @@ -28,3 +28,6 @@ A small library for parsing ini files. Mostly untouched. - *.i - ini.cpp +Debug target: +I have finally added a debug build target, which prints some additional information on the screen. You should never need it, but one never knows. Since my skills at writing makefiles su... erm... could be better, you will need to run a "make clean" before running "make debug". If you want to add additional debug output without having to worry about removing it on a new release, just add an "#ifdef DEBUG ... #endif" block around your debug code. + diff --git a/arm9/source/display.cpp b/arm9/source/display.cpp index 0ecc2ef..3649fcc 100644 --- a/arm9/source/display.cpp +++ b/arm9/source/display.cpp @@ -57,7 +57,7 @@ void displayInit() void displayTitle() { - displayMessageF(STR_TITLE_MSG, VERSION_MAJOR, VERSION_MINOR, VERSION_MICRO); + displayMessageF(STR_TITLE_MSG, VERSION_MAJOR, VERSION_MINOR, VERSION_MICRO, VERSION_EXTRA); displayStateF(STR_STR, "Press (B) to continue"); while (!(keysCurrent() & KEY_B)); @@ -349,7 +349,7 @@ char *ParseLine(char *start, const char *end, int &length) while (start < end) { if (*start == '\n') { - length = 1; + length = 0; return start; } diff --git a/arm9/source/gba.cpp b/arm9/source/gba.cpp index 5ab761f..b5f2500 100644 --- a/arm9/source/gba.cpp +++ b/arm9/source/gba.cpp @@ -204,6 +204,12 @@ void gbaEepromRead8Bytes(u8 *out, u32 addr, bool short_addr = false) buf[15] = addr; buf[16] = 0; } + for (int i = 0; i < 17; i++) { + if (buf[i]) + buf[i] = 255; + else + buf[i] = 0; + } static u32 eeprom = 0x09ffff00; @@ -491,7 +497,6 @@ bool gbaWriteSave(u32 dst, u8 *src, u32 len, u8 type) // FIXME: currently, you can only write "all or nothing" nbanks = 2; for (int j = 0; j < nbanks; j++) { - displayStateF(STR_STR, "Switching Bank."); *(u8*)0x0a005555 = 0xaa; swiDelay(10); *(u8*)0x0a002aaa = 0x55; diff --git a/arm9/source/globals.h b/arm9/source/globals.h index c61a598..0472dd8 100644 --- a/arm9/source/globals.h +++ b/arm9/source/globals.h @@ -32,6 +32,7 @@ #define VERSION_MAJOR 0 #define VERSION_MINOR 3 #define VERSION_MICRO 0 +#define VERSION_EXTRA "rc1" extern u8 *data; extern u32 size_buf; diff --git a/arm9/source/hardware.cpp b/arm9/source/hardware.cpp index a2acf2c..ee1700c 100644 --- a/arm9/source/hardware.cpp +++ b/arm9/source/hardware.cpp @@ -509,6 +509,7 @@ void hwBackupSlot2() uint8 type = auxspi_save_type(slot_1_type); // just select a filename, no extra work required! + displayMessageF(STR_HW_SELECT_FILE_OW); char path[256]; char fname[256] = ""; fileSelect("/", path, fname, 0, true, false); @@ -568,7 +569,6 @@ void hwRestoreSlot2() fileSelect("/", path, fname, 0, false, false); char msg[256]; // This does not have to be translated. - // FIXME: make this more meaningful! sprintf(msg, "%s/%s", path, fname); FILE *file = fopen(msg, "rb"); @@ -616,7 +616,9 @@ void hwRestoreSlot2() } // ------------------------------------------------------------ -void hwLoginFTP(netbuf **buf) +static netbuf *buf = NULL; + +void hwLoginFTP() { int j; static int jmax = 10; @@ -629,7 +631,7 @@ void hwLoginFTP(netbuf **buf) displayMessage2F(STR_HW_FTP_SEEK_FTP); sprintf(txt, "%s:%i", ftp_ip, ftp_port); j = 0; - while (!FtpConnect(txt, buf)) { + while (!FtpConnect(txt, &buf)) { j++; if (j >= jmax) { displayWarning2F(STR_HW_FTP_ERR_FTP); @@ -639,7 +641,7 @@ void hwLoginFTP(netbuf **buf) } displayMessage2F(STR_HW_FTP_LOGIN); j = 0; - while (!FtpLogin(ftp_user, ftp_pass, *buf)) { + while (!FtpLogin(ftp_user, ftp_pass, buf)) { j++; if (j >= jmax) { displayWarning2F(STR_HW_FTP_ERR_LOGIN); @@ -652,7 +654,7 @@ void hwLoginFTP(netbuf **buf) void hwBackupFTP(bool dlp) { - netbuf *buf, *ndata; + netbuf *ndata; // Dump save and write it to FTP server // First: swap card @@ -669,7 +671,7 @@ void hwBackupFTP(bool dlp) // Second: connect to FTP server if (!ftp_active) - hwLoginFTP(&buf); + hwLoginFTP(); char fdir[256] = ""; char fname[256] =""; @@ -704,6 +706,7 @@ void hwBackupFTP(bool dlp) sprintf(fname, "%.12s.%i.sav", nds.gameTitle, cnt); } } + displayMessage2F(STR_HW_WRITE_FILE, fname); // Fourth: dump save displayStateF(STR_EMPTY); @@ -720,19 +723,19 @@ void hwBackupFTP(bool dlp) if (delta == 0) { displayMessage2F(STR_HW_FTP_READ_ONLY); } else { - displayMessage2F(STR_EMPTY); + displayMessage2F(STR_HW_WRITE_FILE, fname); } if (delta < length) { displayStateF(STR_HW_FTP_SLOW); } else { - displayStateF(STR_EMPTY); + displayMessage2F(STR_HW_WRITE_FILE, fname); } } } FtpCloseAccess(buf, ndata); - FtpQuit(buf); + //FtpQuit(buf); - Wifi_DisconnectAP(); + //Wifi_DisconnectAP(); if (dlp) { displayMessage2F(STR_HW_PLEASE_REBOOT); @@ -800,12 +803,12 @@ bool hwRestoreFTPPartial(u32 ofs, u32 size, u32 type, netbuf *ndata) void hwRestoreFTP(bool dlp) { - netbuf *buf, *ndata; + netbuf *ndata; // Dump save and write it to FTP server // First: connect to FTP server - if (ftp_active) - hwLoginFTP(&buf); + if (!ftp_active) + hwLoginFTP(); // Second: select a filename char fdir[256] = ""; @@ -838,9 +841,9 @@ void hwRestoreFTP(bool dlp) hwRestoreFTPPartial(i << len_block, len_block, type, ndata); } FtpClose(ndata); - FtpQuit(buf); + //FtpQuit(buf); - Wifi_DisconnectAP(); + //Wifi_DisconnectAP(); if (dlp) { displayMessage2F(STR_HW_PLEASE_REBOOT); @@ -856,7 +859,7 @@ void hwBackupGBA(u8 type) { if ((type == 0) || (type > 5)) return; - + if ((type == 1) || (type == 2)) { // This is not to be translated, it will be removed at some point. displayMessageF(STR_STR, "I can't read this save type\nyet. Please use Rudolphs tool\ninstead."); @@ -895,7 +898,7 @@ void hwBackupGBA(u8 type) fclose(file); displayStateF(STR_STR, "Done!"); - while(1); + //while(1); } void hwRestoreGBA() @@ -931,8 +934,11 @@ void hwRestoreGBA() displayMessage2F(STR_HW_WRITE_GAME); gbaWriteSave(0, data, size, type); + displayStateF(STR_STR, "Done!"); +/* displayMessage2F(STR_HW_PLEASE_REBOOT); while(1); + */ } void hwEraseGBA() @@ -940,8 +946,13 @@ void hwEraseGBA() u8 type = gbaGetSaveType(); if ((type == 0) || (type > 5)) return; - + + displayMessage2F(STR_HW_WARN_DELETE); + while (!(keysCurrent() & (KEY_UP | KEY_R | KEY_Y))) {}; gbaFormatSave(type); + displayMessage2F(STR_HW_DID_DELETE); + while (1); + } // ------------------------------------------------- diff --git a/arm9/source/main.cpp b/arm9/source/main.cpp index 94255a6..594cd7a 100644 --- a/arm9/source/main.cpp +++ b/arm9/source/main.cpp @@ -57,6 +57,9 @@ using std::max; char bootdir[256] = "/"; +#define REBOOT_WIFI + + // ============================================================================ void mode_dsi() { @@ -197,18 +200,21 @@ void mode_gba() if ((touchXY.py > 8*0) && (touchXY.py < 8*8)) { displayPrintUpper(); hwBackupGBA(gbatype); + displayPrintLower(); } // restore if ((touchXY.py > 8*8) && (touchXY.py < 8*16)) { displayPrintUpper(); hwRestoreGBA(); + displayPrintLower(); } // erase if ((touchXY.py > 8*16) && (touchXY.py < 8*24)) { displayPrintUpper(); hwEraseGBA(); + displayPrintLower(); } } } @@ -228,12 +234,20 @@ void mode_wifi() // backup if ((touchXY.py > 8*0) && (touchXY.py < 8*8)) { hwBackupFTP(); +#ifdef REBOOT_WIFI + displayMessage2F(STR_HW_PLEASE_REBOOT); + while(1); +#endif displayPrintLower(); } // restore if ((touchXY.py > 8*8) && (touchXY.py < 8*16)) { hwRestoreFTP(); +#ifdef REBOOT_WIFI + displayMessage2F(STR_HW_PLEASE_REBOOT); + while(1); +#endif displayPrintLower(); } diff --git a/arm9/source/strings.cpp b/arm9/source/strings.cpp index 0e7832f..540ce3c 100644 --- a/arm9/source/strings.cpp +++ b/arm9/source/strings.cpp @@ -62,7 +62,7 @@ bool stringsLoadFile(const char *fname) ADD_STRING(STR_STR, "%s"); // ADD_STRING(STR_MM_WIPE,"\n WIPES OUT ALL SAVE DATA\n ON YOUR GAME !"); - ADD_STRING(STR_TITLE_MSG,"DS savegame manager\nVersion 0.3.0\nBy Pokedoc"); + ADD_STRING(STR_TITLE_MSG,"DS savegame manager\nVersion %i.%i.%i%s\nBy Pokedoc"); ADD_STRING(STR_BOOT_NO_INI,"Unable to open ini file!\nPlease make sure that it is\n1. in this apps folder, or" "\n2. in the root folder\nIf 1. does not work, use 2."); ADD_STRING(STR_BOOT_MODE_UNSUPPORTED,"This mode is DISABLED.\nPlease restart the system."); @@ -113,7 +113,6 @@ bool stringsLoadFile(const char *fname) remove("/tmpfile"); // Convert manual newline commands added as plaintext in the translation file. - // FIXME: this does not seem to work reliably yet (or maybe it is the print function). for (int i = 0; i < STR_LAST; i++) { char *ptr = message_strings[i]; while ((ptr = strchr(ptr, '\\')) != NULL) { diff --git a/lang/sgm_german.ini b/lang/sgm_german.ini index 58a2f5a..766ae33 100644 --- a/lang/sgm_german.ini +++ b/lang/sgm_german.ini @@ -6,7 +6,7 @@ # The strings "0" and "1" should never be used; they are internal stuff for "empty" and "untranslated" strings. # 2-5: These are boot-time messages. -2=DS savegame manager\nVersion %i.%i.%i\nVon Pokedoc +2=DS savegame manager\nVersion %i.%i.%i %s\nVon Pokedoc # This is an error message appearing when the ini file can not be found. 3=Kann die ini-Datei nicht finden!\nBitte kopiere sie entweder\n1. in den selben Ordner wie die nds Datei, oder\n2. in das Hauptverzeichnis.\nWenn 1. nicht funktioniert, musst Du 2. verwenden # Thsis is an error message called when the system tries to enter a mode that is not supported yet (e.g. DSi mode) diff --git a/lang/template.ini b/lang/template.ini index 00881c6..4382ebe 100644 --- a/lang/template.ini +++ b/lang/template.ini @@ -9,7 +9,7 @@ # 2-5: These are boot-time messages. # You do not need to translate 2 and 3, they only appear *before* this file is read. Since the format is frozen, I leave these slots in. -#2=DS savegame manager\nVersion %i.%i.%i\nBy Pokedoc +#2=DS savegame manager\nVersion %i.%i.%i %s\nBy Pokedoc # This is an error message appearing when the ini file can not be found. #3=Unable to open ini file!\nPlease make sure that it is\n1. in this apps folder, or\n2. in the root folder\nIf 1. does not work, use 2. # Thsis is an error message called when the system tries to enter a mode that is not supported yet (e.g. DSi mode) diff --git a/savegame_manager.odt b/savegame_manager.odt index 005d3ac2700c9fccef7f7a01b8fc597a66be9217..33c99341b95235084f335a8dd9384ec22305efcc 100644 GIT binary patch delta 21911 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 delta 20779 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 diff --git a/savegame_manager.pnproj b/savegame_manager.pnproj index b8b7754..bf9ead6 100644 --- a/savegame_manager.pnproj +++ b/savegame_manager.pnproj @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/savegame_manager.pnps b/savegame_manager.pnps deleted file mode 100644 index 6edac41..0000000 --- a/savegame_manager.pnps +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file