mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-01-11 00:29:11 +01:00
1e5762b163
* The file already exsists, otherwise we wouldn't have gotten this far in the boot. * We have already checked if it's a Wii or GameCube elf, besides, it's too late to change our minds now anyway. * On Wii - Don't call EmulatedBS2, it can never succeed as it knows nothing about booting elfs. Just call the SetupWiiMemory directly if needed. * On GameCube - We still call EmulatedBS2_GC, but we stop it from running Apploader, which might boot something unexpected from the default iso or DVD root folder.
63 lines
1.6 KiB
C++
63 lines
1.6 KiB
C++
// Copyright 2013 Dolphin Emulator Project
|
|
// Licensed under GPLv2
|
|
// Refer to the license.txt file included.
|
|
|
|
#pragma once
|
|
|
|
#include <cstdlib>
|
|
#include <string>
|
|
|
|
#include "Core/CoreParameter.h"
|
|
|
|
#include "DiscIO/Volume.h"
|
|
using DiscIO::IVolume;
|
|
|
|
struct CountrySetting
|
|
{
|
|
const std::string area;
|
|
const std::string video;
|
|
const std::string game;
|
|
const std::string code;
|
|
};
|
|
|
|
class CBoot
|
|
{
|
|
public:
|
|
|
|
static bool BootUp();
|
|
static bool IsElfWii(const std::string& filename);
|
|
|
|
// Tries to find a map file for the current game by looking first in the
|
|
// local user directory, then in the shared user directory.
|
|
//
|
|
// If existing_map_file is not nullptr and a map file exists, it is set to the
|
|
// path to the existing map file.
|
|
//
|
|
// If writable_map_file is not nullptr, it is set to the path to where a map
|
|
// file should be saved.
|
|
//
|
|
// If title_id is not nullptr, it is set to the title id
|
|
//
|
|
// Returns true if a map file exists, false if none could be found.
|
|
static bool FindMapFile(std::string* existing_map_file,
|
|
std::string* writable_map_file,
|
|
std::string* title_id = nullptr);
|
|
|
|
private:
|
|
static void RunFunction(u32 _iAddr);
|
|
|
|
static void UpdateDebugger_MapLoaded();
|
|
|
|
static bool LoadMapFromFilename();
|
|
static bool Boot_ELF(const std::string& filename);
|
|
static bool Boot_WiiWAD(const std::string& filename);
|
|
|
|
static bool EmulatedBS2_GC(bool skipAppLoader = false);
|
|
static bool EmulatedBS2_Wii();
|
|
static bool EmulatedBS2(bool _bIsWii);
|
|
static bool Load_BS2(const std::string& _rBootROMFilename);
|
|
static void Load_FST(bool _bIsWii);
|
|
|
|
static bool SetupWiiMemory(IVolume::ECountry country);
|
|
};
|