Skip to content
This repository was archived by the owner on Aug 8, 2023. It is now read-only.

UnnamedOrange/osu-memory

Repository files navigation

osu-memory

Yet another memory reader for osu! in C++.

This project is under consideration.

Motivation

To rediscover my childhood.

Use

#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();

License

Copyright (c) UnnamedOrange. Licensed under the MIT License.

See the LICENSE file in the repository root for full license text.

Special Thanks

  • 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 { /*...*/ };

Credits

About

Yet another memory reader for osu! in C++

Resources

License

Stars

Watchers

Forks

Packages

No packages published