Refactor logging to use logf function and update log file name
This commit is contained in:
@@ -196,7 +196,7 @@ class NotifyValue {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static bool log_to_console = false;
|
static bool log_to_console = false;
|
||||||
static std::string log_file_out = "log.txt";
|
constexpr std::string kLogFileOut = "yaze_log.txt";
|
||||||
|
|
||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
static void logf(const absl::FormatSpec<Args...> &format, const Args &...args) {
|
static void logf(const absl::FormatSpec<Args...> &format, const Args &...args) {
|
||||||
@@ -204,38 +204,10 @@ static void logf(const absl::FormatSpec<Args...> &format, const Args &...args) {
|
|||||||
if (log_to_console) {
|
if (log_to_console) {
|
||||||
std::cout << message << std::endl;
|
std::cout << message << std::endl;
|
||||||
}
|
}
|
||||||
static std::ofstream fout(log_file_out, std::ios::out | std::ios::app);
|
static std::ofstream fout(kLogFileOut, std::ios::out | std::ios::app);
|
||||||
fout << message << std::endl;
|
fout << message << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct StructuredLog {
|
|
||||||
std::string raw_message;
|
|
||||||
std::string category;
|
|
||||||
};
|
|
||||||
|
|
||||||
static absl::flat_hash_map<std::string, std::vector<std::string>>
|
|
||||||
log_categories;
|
|
||||||
|
|
||||||
template <typename... Args>
|
|
||||||
static void logm(const std::string &category,
|
|
||||||
const absl::FormatSpec<Args...> &format, const Args &...args) {
|
|
||||||
std::string message = absl::StrFormat(format, args...);
|
|
||||||
std::cout << category << ": " << message << std::endl;
|
|
||||||
if (log_categories.contains(category)) {
|
|
||||||
log_categories[category].push_back(message);
|
|
||||||
} else {
|
|
||||||
log_categories[category] = {message};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class Logger {
|
|
||||||
public:
|
|
||||||
static void log(std::string message) {
|
|
||||||
static std::ofstream fout(log_file_out, std::ios::out | std::ios::app);
|
|
||||||
fout << message << std::endl;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
constexpr uint32_t kFastRomRegion = 0x808000;
|
constexpr uint32_t kFastRomRegion = 0x808000;
|
||||||
|
|
||||||
inline uint32_t SnesToPc(uint32_t addr) noexcept {
|
inline uint32_t SnesToPc(uint32_t addr) noexcept {
|
||||||
|
|||||||
@@ -328,9 +328,7 @@ class Rom : public core::ExperimentFlags {
|
|||||||
value, addr));
|
value, addr));
|
||||||
}
|
}
|
||||||
rom_data_[addr] = value;
|
rom_data_[addr] = value;
|
||||||
std::string log_str = absl::StrFormat("WriteByte: %#06X: %s", addr,
|
core::logf("WriteByte: %#06X: %s", addr, core::HexByte(value).data());
|
||||||
core::HexByte(value).data());
|
|
||||||
core::Logger::log(log_str);
|
|
||||||
return absl::OkStatus();
|
return absl::OkStatus();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -343,8 +341,7 @@ class Rom : public core::ExperimentFlags {
|
|||||||
}
|
}
|
||||||
rom_data_[addr] = (uint8_t)(value & 0xFF);
|
rom_data_[addr] = (uint8_t)(value & 0xFF);
|
||||||
rom_data_[addr + 1] = (uint8_t)((value >> 8) & 0xFF);
|
rom_data_[addr + 1] = (uint8_t)((value >> 8) & 0xFF);
|
||||||
core::Logger::log(absl::StrFormat("WriteWord: %#06X: %s", addr,
|
core::logf("WriteWord: %#06X: %s", addr, core::HexWord(value).data());
|
||||||
core::HexWord(value)));
|
|
||||||
return absl::OkStatus();
|
return absl::OkStatus();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -357,8 +354,7 @@ class Rom : public core::ExperimentFlags {
|
|||||||
}
|
}
|
||||||
rom_data_[addr] = (uint8_t)(value & 0xFF);
|
rom_data_[addr] = (uint8_t)(value & 0xFF);
|
||||||
rom_data_[addr + 1] = (uint8_t)((value >> 8) & 0xFF);
|
rom_data_[addr + 1] = (uint8_t)((value >> 8) & 0xFF);
|
||||||
core::Logger::log(absl::StrFormat("WriteShort: %#06X: %s", addr,
|
core::logf("WriteShort: %#06X: %s", addr, core::HexWord(value).data());
|
||||||
core::HexWord(value)));
|
|
||||||
return absl::OkStatus();
|
return absl::OkStatus();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -372,8 +368,7 @@ class Rom : public core::ExperimentFlags {
|
|||||||
rom_data_[addr] = (uint8_t)(value & 0xFF);
|
rom_data_[addr] = (uint8_t)(value & 0xFF);
|
||||||
rom_data_[addr + 1] = (uint8_t)((value >> 8) & 0xFF);
|
rom_data_[addr + 1] = (uint8_t)((value >> 8) & 0xFF);
|
||||||
rom_data_[addr + 2] = (uint8_t)((value >> 16) & 0xFF);
|
rom_data_[addr + 2] = (uint8_t)((value >> 16) & 0xFF);
|
||||||
core::Logger::log(absl::StrFormat("WriteLong: %#06X: %s", addr,
|
core::logf("WriteLong: %#06X: %s", addr, core::HexLong(value).data());
|
||||||
core::HexLong(value)));
|
|
||||||
return absl::OkStatus();
|
return absl::OkStatus();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -387,8 +382,7 @@ class Rom : public core::ExperimentFlags {
|
|||||||
for (int i = 0; i < static_cast<int>(data.size()); i++) {
|
for (int i = 0; i < static_cast<int>(data.size()); i++) {
|
||||||
rom_data_[addr + i] = data[i];
|
rom_data_[addr + i] = data[i];
|
||||||
}
|
}
|
||||||
core::Logger::log(absl::StrFormat("WriteVector: %#06X: %s", addr,
|
core::logf("WriteVector: %#06X: %s", addr, core::HexByte(data[0]).data());
|
||||||
core::HexByte(data[0])));
|
|
||||||
return absl::OkStatus();
|
return absl::OkStatus();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -397,8 +391,7 @@ class Rom : public core::ExperimentFlags {
|
|||||||
((color.snes() & 0x1F) << 10) | (color.snes() & 0x7C00);
|
((color.snes() & 0x1F) << 10) | (color.snes() & 0x7C00);
|
||||||
|
|
||||||
// Write the 16-bit color value to the ROM at the specified address
|
// Write the 16-bit color value to the ROM at the specified address
|
||||||
core::Logger::log(absl::StrFormat("WriteColor: %#06X: %s", address,
|
core::logf("WriteColor: %#06X: %s", address, core::HexWord(bgr).data());
|
||||||
core::HexWord(bgr)));
|
|
||||||
return WriteShort(address, bgr);
|
return WriteShort(address, bgr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -520,7 +520,7 @@ absl::Status Overworld::Save(Rom &rom) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
absl::Status Overworld::SaveOverworldMaps() {
|
absl::Status Overworld::SaveOverworldMaps() {
|
||||||
core::Logger::log("Saving Overworld Maps");
|
core::logf("Saving Overworld Maps");
|
||||||
|
|
||||||
// Initialize map pointers
|
// Initialize map pointers
|
||||||
std::fill(map_pointers1_id.begin(), map_pointers1_id.end(), -1);
|
std::fill(map_pointers1_id.begin(), map_pointers1_id.end(), -1);
|
||||||
@@ -571,8 +571,8 @@ absl::Status Overworld::SaveOverworldMaps() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ((pos + size_a) >= 0x6411F && (pos + size_a) <= 0x70000) {
|
if ((pos + size_a) >= 0x6411F && (pos + size_a) <= 0x70000) {
|
||||||
core::Logger::log("Pos set to overflow region for map " +
|
core::logf("Pos set to overflow region for map %s at %s",
|
||||||
std::to_string(i) + " at " + core::HexLong(pos));
|
std::to_string(i), core::HexLong(pos));
|
||||||
pos = OverworldMapDataOverflow; // 0x0F8780;
|
pos = OverworldMapDataOverflow; // 0x0F8780;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -608,8 +608,8 @@ absl::Status Overworld::SaveOverworldMaps() {
|
|||||||
std::copy(a.begin(), a.end(), map_data_p1[i].begin());
|
std::copy(a.begin(), a.end(), map_data_p1[i].begin());
|
||||||
int snes_pos = core::PcToSnes(pos);
|
int snes_pos = core::PcToSnes(pos);
|
||||||
map_pointers1[i] = snes_pos;
|
map_pointers1[i] = snes_pos;
|
||||||
core::Logger::log("Saving map pointers1 and compressed data for map " +
|
core::logf("Saving map pointers1 and compressed data for map %s at %s",
|
||||||
core::HexByte(i) + " at " + core::HexLong(snes_pos));
|
core::HexByte(i), core::HexLong(snes_pos));
|
||||||
RETURN_IF_ERROR(rom()->WriteLong(
|
RETURN_IF_ERROR(rom()->WriteLong(
|
||||||
rom()->version_constants().kCompressedAllMap32PointersLow + (3 * i),
|
rom()->version_constants().kCompressedAllMap32PointersLow + (3 * i),
|
||||||
snes_pos));
|
snes_pos));
|
||||||
@@ -618,8 +618,8 @@ absl::Status Overworld::SaveOverworldMaps() {
|
|||||||
} else {
|
} else {
|
||||||
// Save pointer for map1
|
// Save pointer for map1
|
||||||
int snes_pos = map_pointers1[map_pointers1_id[i]];
|
int snes_pos = map_pointers1[map_pointers1_id[i]];
|
||||||
core::Logger::log("Saving map pointers1 for map " + core::HexByte(i) +
|
core::logf("Saving map pointers1 for map %s at %s", core::HexByte(i),
|
||||||
" at " + core::HexLong(snes_pos));
|
core::HexLong(snes_pos));
|
||||||
RETURN_IF_ERROR(rom()->WriteLong(
|
RETURN_IF_ERROR(rom()->WriteLong(
|
||||||
rom()->version_constants().kCompressedAllMap32PointersLow + (3 * i),
|
rom()->version_constants().kCompressedAllMap32PointersLow + (3 * i),
|
||||||
snes_pos));
|
snes_pos));
|
||||||
@@ -630,8 +630,8 @@ absl::Status Overworld::SaveOverworldMaps() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ((pos + b.size()) >= 0x6411F && (pos + b.size()) <= 0x70000) {
|
if ((pos + b.size()) >= 0x6411F && (pos + b.size()) <= 0x70000) {
|
||||||
core::Logger::log("Pos set to overflow region for map " +
|
core::logf("Pos set to overflow region for map %s at %s",
|
||||||
core::HexByte(i) + " at " + core::HexLong(pos));
|
core::HexByte(i), core::HexLong(pos));
|
||||||
pos = OverworldMapDataOverflow;
|
pos = OverworldMapDataOverflow;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -640,8 +640,8 @@ absl::Status Overworld::SaveOverworldMaps() {
|
|||||||
std::copy(b.begin(), b.end(), map_data_p2[i].begin());
|
std::copy(b.begin(), b.end(), map_data_p2[i].begin());
|
||||||
int snes_pos = core::PcToSnes(pos);
|
int snes_pos = core::PcToSnes(pos);
|
||||||
map_pointers2[i] = snes_pos;
|
map_pointers2[i] = snes_pos;
|
||||||
core::Logger::log("Saving map pointers2 and compressed data for map " +
|
core::logf("Saving map pointers2 and compressed data for map %s at %s",
|
||||||
core::HexByte(i) + " at " + core::HexLong(snes_pos));
|
core::HexByte(i), core::HexLong(snes_pos));
|
||||||
RETURN_IF_ERROR(rom()->WriteLong(
|
RETURN_IF_ERROR(rom()->WriteLong(
|
||||||
rom()->version_constants().kCompressedAllMap32PointersHigh + (3 * i),
|
rom()->version_constants().kCompressedAllMap32PointersHigh + (3 * i),
|
||||||
snes_pos));
|
snes_pos));
|
||||||
@@ -650,8 +650,8 @@ absl::Status Overworld::SaveOverworldMaps() {
|
|||||||
} else {
|
} else {
|
||||||
// Save pointer for map2
|
// Save pointer for map2
|
||||||
int snes_pos = map_pointers2[map_pointers2_id[i]];
|
int snes_pos = map_pointers2[map_pointers2_id[i]];
|
||||||
core::Logger::log("Saving map pointers2 for map " + core::HexByte(i) +
|
core::logf("Saving map pointers2 for map %s at %s", core::HexByte(i),
|
||||||
" at " + core::HexLong(snes_pos));
|
core::HexLong(snes_pos));
|
||||||
RETURN_IF_ERROR(rom()->WriteLong(
|
RETURN_IF_ERROR(rom()->WriteLong(
|
||||||
rom()->version_constants().kCompressedAllMap32PointersHigh + (3 * i),
|
rom()->version_constants().kCompressedAllMap32PointersHigh + (3 * i),
|
||||||
snes_pos));
|
snes_pos));
|
||||||
@@ -660,7 +660,7 @@ absl::Status Overworld::SaveOverworldMaps() {
|
|||||||
|
|
||||||
// Check if too many maps data
|
// Check if too many maps data
|
||||||
if (pos > 0x137FFF) {
|
if (pos > 0x137FFF) {
|
||||||
std::cerr << "Too many maps data " << std::hex << pos << std::endl;
|
core::logf("Too many maps data %s", core::HexLong(pos));
|
||||||
return absl::AbortedError("Too many maps data " + std::to_string(pos));
|
return absl::AbortedError("Too many maps data " + std::to_string(pos));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -671,7 +671,7 @@ absl::Status Overworld::SaveOverworldMaps() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
absl::Status Overworld::SaveLargeMaps() {
|
absl::Status Overworld::SaveLargeMaps() {
|
||||||
core::Logger::log("Saving Large Maps");
|
core::logf("Saving Large Maps");
|
||||||
std::vector<uint8_t> checked_map;
|
std::vector<uint8_t> checked_map;
|
||||||
|
|
||||||
for (int i = 0; i < 0x40; i++) {
|
for (int i = 0; i < 0x40; i++) {
|
||||||
@@ -1141,7 +1141,7 @@ absl::Status Overworld::SaveMap32Expanded() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
absl::Status Overworld::SaveMap32Tiles() {
|
absl::Status Overworld::SaveMap32Tiles() {
|
||||||
core::Logger::log("Saving Map32 Tiles");
|
core::logf("Saving Map32 Tiles");
|
||||||
constexpr int kMaxUniqueTiles = 0x4540;
|
constexpr int kMaxUniqueTiles = 0x4540;
|
||||||
constexpr int kTilesPer32x32Tile = 6;
|
constexpr int kTilesPer32x32Tile = 6;
|
||||||
|
|
||||||
@@ -1348,7 +1348,7 @@ absl::Status Overworld::SaveMap16Expanded() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
absl::Status Overworld::SaveMap16Tiles() {
|
absl::Status Overworld::SaveMap16Tiles() {
|
||||||
core::Logger::log("Saving Map16 Tiles");
|
core::logf("Saving Map16 Tiles");
|
||||||
int tpos = kMap16Tiles;
|
int tpos = kMap16Tiles;
|
||||||
// 3760
|
// 3760
|
||||||
for (int i = 0; i < NumberOfMap16; i += 1) {
|
for (int i = 0; i < NumberOfMap16; i += 1) {
|
||||||
@@ -1369,7 +1369,7 @@ absl::Status Overworld::SaveMap16Tiles() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
absl::Status Overworld::SaveEntrances() {
|
absl::Status Overworld::SaveEntrances() {
|
||||||
core::Logger::log("Saving Entrances");
|
core::logf("Saving Entrances");
|
||||||
for (int i = 0; i < 129; i++) {
|
for (int i = 0; i < 129; i++) {
|
||||||
RETURN_IF_ERROR(
|
RETURN_IF_ERROR(
|
||||||
rom()->WriteShort(OWEntranceMap + (i * 2), all_entrances_[i].map_id_))
|
rom()->WriteShort(OWEntranceMap + (i * 2), all_entrances_[i].map_id_))
|
||||||
@@ -1392,7 +1392,7 @@ absl::Status Overworld::SaveEntrances() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
absl::Status Overworld::SaveExits() {
|
absl::Status Overworld::SaveExits() {
|
||||||
core::Logger::log("Saving Exits");
|
core::logf("Saving Exits");
|
||||||
for (int i = 0; i < 0x4F; i++) {
|
for (int i = 0; i < 0x4F; i++) {
|
||||||
RETURN_IF_ERROR(
|
RETURN_IF_ERROR(
|
||||||
rom()->WriteShort(OWExitRoomId + (i * 2), all_exits_[i].room_id_));
|
rom()->WriteShort(OWExitRoomId + (i * 2), all_exits_[i].room_id_));
|
||||||
@@ -1537,7 +1537,7 @@ absl::Status Overworld::SaveItems() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
absl::Status Overworld::SaveMapProperties() {
|
absl::Status Overworld::SaveMapProperties() {
|
||||||
core::Logger::log("Saving Map Properties");
|
core::logf("Saving Map Properties");
|
||||||
for (int i = 0; i < 64; i++) {
|
for (int i = 0; i < 64; i++) {
|
||||||
RETURN_IF_ERROR(rom()->WriteByte(kAreaGfxIdPtr + i,
|
RETURN_IF_ERROR(rom()->WriteByte(kAreaGfxIdPtr + i,
|
||||||
overworld_maps_[i].area_graphics()));
|
overworld_maps_[i].area_graphics()));
|
||||||
|
|||||||
Reference in New Issue
Block a user