# osu-memory **Repository Path**: unnamedorange/osu-memory ## Basic Information - **Project Name**: osu-memory - **Description**: Yet another memory reader for osu! in C++ - **Primary Language**: C++ - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-02-28 - **Last Updated**: 2023-08-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # osu-memory Yet another memory reader for osu! in C++. This project is under consideration. ## Motivation To rediscover my childhood. ## Use ```cpp #include 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(); ``` ## License Copyright (c) UnnamedOrange. Licensed under the MIT License. See the [LICENSE](./LICENSE) file in the repository root for full license text. ## Special Thanks - [l3lackShark](https://github.com/l3lackShark) and his [gosumemory](https://github.com/l3lackShark/gosumemory) for the memory signatures below. - In `reader_base_rulesets.hpp`: ```cpp static constexpr find_base base_rulesets{ std::to_array({ 0x7D, 0x15, 0xA1, 000, 000, 000, 000, 0x85, 0xC0 }), "xxx????xx" }; ``` - In `reader_hit.hpp`: ```cpp static constexpr auto offsets = utils::trace(std::to_array({ -0xB, 0x4, 0x60, 0x38 })); static constexpr auto last_offsets = std::to_array({ 0x8E, 0x8A, 0x90, 0x88, 0x8C, 0x92 }); ``` - In `reader_mod.hpp`: ```cpp static constexpr auto offsets = utils::trace(std::to_array({ -0xB, 0x4, 0x60, 0x38, 0x1C })); static constexpr int32_t last_offset = 0x8; ``` And for the enumeration below. - In `reader_mod.hpp`: ```cpp enum class mod_t : uint32_t { /*...*/ }; ``` - [Piotrekol](https://github.com/Piotrekol/) and his [ProcessMemoryDataFinder](https://github.com/Piotrekol/ProcessMemoryDataFinder) for technical support. - [OsuSync](https://github.com/OsuSync) and their [OsuRTDataProvider](https://github.com/OsuSync/OsuRTDataProvider) for the memory signatures below. - In `reader_base_status.hpp`: ```cpp static constexpr find_base base_status{ std::to_array({ 0x75, 0x07, 0x8B, 0x45, 0x90, 0xC6, 0x40, 0x2A, 0x00, 0x83, 0x3D, 000, 000, 000, 000, 0x0F }), "xxxxxxxxxxx????x" }; ``` - In `reader_status.hpp`: ```cpp static constexpr auto offsets = utils::trace(std::to_array({ 0xB })); static constexpr auto last_offsets = std::to_array({ 0x0, 0x4 }); ``` And for the enumeration below. - In `reader_status.hpp`: ```cpp enum class status_t : uint32_t { /*...*/ }; ``` ## Credits