1#ifndef YAZE_APP_EDITOR_CODE_MEMORY_EDITOR_H
2#define YAZE_APP_EDITOR_CODE_MEMORY_EDITOR_H
5#include "absl/container/flat_hash_map.h"
10#include "imgui/imgui.h"
11#include "imgui_memory_editor.h"
23 void Update(
bool &show_memory_editor) {
26 static MemoryEditor mem_edit;
27 static MemoryEditor comp_edit;
28 static bool show_compare_rom =
false;
29 static Rom comparison_rom;
30 ImGui::Begin(
"Hex Editor", &show_memory_editor);
31 if (ImGui::Button(
"Compare Rom")) {
34 show_compare_rom =
true;
37 static uint64_t convert_address = 0;
38 gui::InputHex(
"SNES to PC", (
int *)&convert_address, 6, 200.f);
40 Text(
"%x",
SnesToPc(convert_address));
43 BEGIN_TABLE(
"Memory Comparison", 2, ImGuiTableFlags_Resizable);
48 Text(
"%s",
rom()->filename().data());
49 mem_edit.DrawContents((
void *)&(*
rom()),
rom()->size());
52 if (show_compare_rom) {
53 comp_edit.SetComparisonData((
void *)&(*
rom()));
55 ImGui::BeginChild(
"Comparison ROM");
56 Text(
"%s", comparison_rom.
filename().data());
57 comp_edit.DrawContents((
void *)&(comparison_rom), comparison_rom.
size());
The Rom class is used to load, save, and modify Rom data.
absl::Status LoadFromFile(const std::string &filename, bool z3_load=true)
static std::string ShowOpenFileDialog()
ShowOpenFileDialog opens a file dialog and returns the selected filepath. Uses global feature flag to...
#define BEGIN_TABLE(l, n, f)
#define PRINT_IF_ERROR(expression)
bool InputHex(const char *label, uint64_t *data)
Main namespace for the application.
uint32_t SnesToPc(uint32_t addr) noexcept
void Update(bool &show_memory_editor)
uint32_t current_address_
void DrawBookmarksPopup()
char search_pattern_[256]
MemoryEditorWithDiffChecker(Rom *rom=nullptr)
std::vector< Bookmark > bookmarks_
void DrawJumpToAddressPopup()