add mosaic change assembly generation routine

This commit is contained in:
Justin Scofield
2022-08-07 00:28:34 -04:00
parent ef61d31c18
commit ebe586c7ae
2 changed files with 87 additions and 17 deletions

View File

@@ -11,6 +11,7 @@
#include "absl/status/status.h"
#include "absl/status/statusor.h"
#include "absl/strings/str_cat.h"
#include "absl/strings/string_view.h"
#include "app/core/constants.h"
#include "app/rom.h"
@@ -19,18 +20,19 @@ namespace yaze {
namespace app {
namespace snes_asm {
constexpr char kDefaultMosaicHook[] = "$02AADB";
const std::string kMosaicChangeOffset = "$02AADB";
constexpr int kSNESToPCOffset = 0x138000;
class Script {
public:
Script() { asar_init_with_dll_path("C:/Users/starw/Code/yaze/assets/asar.dll"); }
Script() { asar_init_with_dll_path("assets/libasar.dll"); }
absl::Status ApplyPatchToROM(ROM& rom);
absl::StatusOr<absl::string_view> GenerateMosaicChangeAssembly(
std::array<int, core::kNumOverworldMaps> mosaic_tiles);
absl::Status GenerateMosaicChangeAssembly(
ROM& rom, char mosaic_tiles[core::kNumOverworldMaps], int routine_offset);
private:
absl::Status ApplyPatchToROM(ROM& rom);
int64_t patch_size_;
std::string patch_filename_;
std::string patch_contents_;