diff --git a/arm9/source/game/ticketdb.c b/arm9/source/game/ticketdb.c index 776e18d..e8cb897 100644 --- a/arm9/source/game/ticketdb.c +++ b/arm9/source/game/ticketdb.c @@ -76,7 +76,7 @@ u32 FindTicket(Ticket* ticket, u8* title_id, bool force_legit, bool emunand) { // parse the decoded data for a ticket bool found = false; - for (u32 i = 0; !found && (i < TICKDB_AREA_SIZE + 0x400); i += 0x200) { + for (u32 i = 0; !found && (i <= TICKDB_AREA_SIZE - 0x400); i += 0x200) { Ticket* tick = TicketFromTickDbChunk(data + i, title_id, force_legit); if (!tick) continue; memcpy(ticket, tick, sizeof(Ticket)); diff --git a/arm9/source/utils/gameutil.c b/arm9/source/utils/gameutil.c index d4897e3..f2d78ae 100644 --- a/arm9/source/utils/gameutil.c +++ b/arm9/source/utils/gameutil.c @@ -2240,7 +2240,7 @@ u32 BuildTitleKeyInfo(const char* path, bool dec, bool dump) { } // parse the decoded data for valid tickets - for (u32 i = 0; i < TICKDB_AREA_SIZE + 0x400; i += 0x200) { + for (u32 i = 0; i <= TICKDB_AREA_SIZE - 0x400; i += 0x200) { Ticket* ticket = TicketFromTickDbChunk(data + i, NULL, true); if (!ticket || (ticket->commonkey_idx >= 2) || !getbe64(ticket->ticket_id)) continue; if (TIKDB_SIZE(tik_info) + 32 > STD_BUFFER_SIZE) break; // no error message diff --git a/arm9/source/virtual/vtickdb.c b/arm9/source/virtual/vtickdb.c index 514c0ff..c9e04ed 100644 --- a/arm9/source/virtual/vtickdb.c +++ b/arm9/source/virtual/vtickdb.c @@ -85,7 +85,7 @@ void ScanTickDb(bool raw_mode, bool replace) { ShowString("Loading DIFF data..."); if (ReadDisaDiffIvfcLvl4(NULL, &diff_info, TICKDB_AREA_OFFSET, TICKDB_AREA_SIZE, data) == TICKDB_AREA_SIZE) { // parse the decoded data for valid tickets - for (u32 i = 0; i < TICKDB_AREA_SIZE + 0x400; i += 0x200) { + for (u32 i = 0; i <= TICKDB_AREA_SIZE - 0x400; i += 0x200) { if (!(i % 0x10000) && !ShowProgress(i, TICKDB_AREA_SIZE, "Scanning for tickets")) break; Ticket* ticket = TicketFromTickDbChunk(data + i, NULL, true); if (!ticket) continue; @@ -99,7 +99,7 @@ void ScanTickDb(bool raw_mode, bool replace) { ShowString("Loading raw data (%lu)...", p); if (ReadImageBytes(data, offset_area, TICKDB_AREA_SIZE) != 0) continue; - for (u32 i = 0; i < TICKDB_AREA_SIZE + 0x400; i += 0x200) { + for (u32 i = 0; i <= TICKDB_AREA_SIZE - 0x400; i += 0x200) { if (!(i % 0x10000) && !ShowProgress(i, TICKDB_AREA_SIZE, "Scanning for tickets")) break; Ticket* ticket = TicketFromTickDbChunk(data + i, NULL, true); if (!ticket) continue;