Yet another memory reader for osu! in C++.
This project is under consideration.
To rediscover my childhood.
#include <osu_memory/osu_memory.h>
osu_memory::reader r;
r.get_hit_miss();
r.get_hit_50();
r.get_hit_100();
r.get_hit_200();
r.get_hit_300();
r.get_hit_perfect();
r.get_hit_geki();
r.get_hit_katsu();
r.get_mania_keys();
r.get_mod();
if (*(r.get_mod()) & mod_t::no_fail);
r.get_status();
r.get_previous_status();
if (*(r.get_status()) == status_t::menu);
r.get_is_autoplay();Copyright (c) UnnamedOrange. Licensed under the MIT License.
See the LICENSE file in the repository root for full license text.
-
l3lackShark and his gosumemory for the memory signatures below.
-
In
reader_base_rulesets.hpp:static constexpr find_base base_rulesets{ std::to_array<uint8_t>({ 0x7D, 0x15, 0xA1, 000, 000, 000, 000, 0x85, 0xC0 }), "xxx????xx" };
-
In
reader_hit.hpp:static constexpr auto offsets = utils::trace(std::to_array<int32_t>({ -0xB, 0x4, 0x60, 0x38 })); static constexpr auto last_offsets = std::to_array<int32_t>({ 0x8E, 0x8A, 0x90, 0x88, 0x8C, 0x92 });
-
In
reader_mod.hpp:static constexpr auto offsets = utils::trace(std::to_array<int32_t>({ -0xB, 0x4, 0x60, 0x38, 0x1C })); static constexpr int32_t last_offset = 0x8;
And for the enumeration below.
-
In
reader_mod.hpp:enum class mod_t : uint32_t { /*...*/ };
-
-
Piotrekol and his ProcessMemoryDataFinder for technical support.
-
OsuSync and their OsuRTDataProvider for the memory signatures below.
-
In
reader_base_status.hpp:static constexpr find_base base_status{ std::to_array<uint8_t>({ 0x75, 0x07, 0x8B, 0x45, 0x90, 0xC6, 0x40, 0x2A, 0x00, 0x83, 0x3D, 000, 000, 000, 000, 0x0F }), "xxxxxxxxxxx????x" };
-
In
reader_status.hpp:static constexpr auto offsets = utils::trace(std::to_array<int32_t>({ 0xB })); static constexpr auto last_offsets = std::to_array<int32_t>({ 0x0, 0x4 });
And for the enumeration below.
-
In
reader_status.hpp:enum class status_t : uint32_t { /*...*/ };
-