Skip to content

Commit e66e72b

Browse files
committed
[feat] Add XEX loading logging
1 parent c7044bb commit e66e72b

File tree

3 files changed

+14
-3
lines changed

3 files changed

+14
-3
lines changed

src/systems/x65.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#include "./x65.h"
22
#include "../args.h"
3+
#include "../log.h"
34

45
#include "chips/clk.h"
56

@@ -407,6 +408,7 @@ void x65_joystick(x65_t* sys, uint8_t joy1_mask, uint8_t joy2_mask) {
407408
bool x65_quickload_xex(x65_t* sys, chips_range_t data) {
408409
CHIPS_ASSERT(sys && sys->valid && data.ptr);
409410
if (data.size < 2) {
411+
LOG_ERROR("File too small");
410412
return false;
411413
}
412414
const uint8_t* ptr = (uint8_t*)data.ptr;
@@ -418,19 +420,22 @@ bool x65_quickload_xex(x65_t* sys, chips_range_t data) {
418420

419421
// $FFFF is required in first block
420422
if (ptr[0] != 0xff || ptr[1] != 0xff) {
423+
LOG_ERROR("Missing $FFFF header");
421424
return false;
422425
}
423426

424427
while (ptr < ((uint8_t*)data.ptr + data.size)) {
425428
size_t data_left = (uint8_t*)data.ptr + data.size - ptr;
426429
if (data_left < 4) {
430+
LOG_ERROR("File truncated");
427431
return false;
428432
}
429433
if (ptr[0] == 0xff && ptr[1] == 0xff) {
430434
// skip header
431435
ptr += 2;
432436
data_left -= 2;
433437
if (data_left < 4) {
438+
LOG_ERROR("File truncated");
434439
return false;
435440
}
436441
}
@@ -439,13 +444,16 @@ bool x65_quickload_xex(x65_t* sys, chips_range_t data) {
439444
ptr += 2;
440445
const uint16_t end_addr = ptr[1] << 8 | ptr[0];
441446
ptr += 2;
447+
LOG_INFO("Loading block: %04X-%04X", start_addr, end_addr);
442448

443449
data_left = (uint8_t*)data.ptr + data.size - ptr;
444450
if (data_left < (end_addr - start_addr + 1) || start_addr > end_addr) {
451+
LOG_ERROR("Block truncated");
445452
return false;
446453
}
447454
if (start_addr == end_addr && start_addr == 0xFFFE) {
448455
load_bank = *ptr++;
456+
LOG_INFO("Loading to bank: %d", load_bank);
449457
}
450458
else {
451459
uint16_t addr = start_addr;
@@ -458,6 +466,7 @@ bool x65_quickload_xex(x65_t* sys, chips_range_t data) {
458466
}
459467

460468
if (reset_lo_loaded && reset_hi_loaded) {
469+
LOG_INFO("Reset vector set - running")
461470
x65_set_running(sys, true);
462471
}
463472

src/ui/ui_app_log.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ void ui_app_log_add(uint32_t log_level, uint32_t log_item, const char* log_id, c
140140
default: log_level_str = "info"; break;
141141
}
142142

143-
app_log.AddLog("[%s][%u] %s() %s\n", log_level_str, log_item, log_id, message);
143+
app_log.AddLog("[%s][%u] %s: %s\n", log_level_str, log_item, log_id, message);
144144
}
145145

146146
void ui_app_log_init(ui_app_log_t* win, const ui_app_log_desc_t* desc) {

src/x65.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -736,14 +736,16 @@ void log_func(uint32_t log_level, const char* log_id, const char* filename, uint
736736
short_filename += 4;
737737
}
738738

739-
uint32_t log_item = djb2(log_id);
739+
unsigned long log_id_hash = djb2(log_id);
740+
uint32_t log_item = (log_id_hash >> 32) ^ (log_id_hash & 0xFFFFFFFF);
740741

741742
va_list args;
742743
va_start(args, fmt);
743744
vsnprintf(message, sizeof(message), fmt, args);
745+
message[sizeof(message) - 1] = '\0';
744746
va_end(args);
745747

746-
slog_func("Emu", log_level, log_item, message, line_nr, short_filename, NULL);
748+
slog_func(log_id, log_level, log_item, message, line_nr, short_filename, NULL);
747749
ui_app_log_add(log_level, log_item, log_id, message);
748750
}
749751

0 commit comments

Comments
 (0)