aboutsummaryrefslogtreecommitdiff
path: root/src/core/system_titles.h
blob: a8b640f754983dd4e2ced12dcc5e1199a4137eb9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// Copyright 2023 Citra Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.

#pragma once

#include <optional>
#include <vector>
#include "common/common_types.h"

namespace Core {

constexpr u32 NUM_SYSTEM_TITLE_REGIONS = 7;

enum SystemTitleSet : u32 { Minimal = 1 << 0, Old3ds = 1 << 1, New3ds = 1 << 2 };

/// Returns a list of firmware title IDs for a specific set and region.
std::vector<u64> GetSystemTitleIds(SystemTitleSet set, u32 region);

/// Gets the home menu title ID for a specific region.
u64 GetHomeMenuTitleId(u32 region);

/// Gets the home menu NCCH path for a specific region.
std::string GetHomeMenuNcchPath(u32 region);

/// Returns the region of a system title, if it can be determined.
std::optional<u32> GetSystemTitleRegion(u64 title_id);

} // namespace Core