File: core.hpp

package info (click to toggle)
higan 106-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, buster
  • size: 9,640 kB
  • sloc: cpp: 108,736; ansic: 809; makefile: 22; sh: 7
file content (130 lines) | stat: -rw-r--r-- 4,976 bytes parent folder | download
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
struct Icarus {
  virtual auto create(const string& pathname) -> bool {
    return directory::create(pathname);
  }

  virtual auto exists(const string& filename) -> bool {
    return file::exists(filename);
  }

  virtual auto copy(const string& target, const string& source) -> bool {
    return file::copy(target, source);
  }

  virtual auto write(const string& filename, const uint8_t* data, uint size) -> bool {
    return file::write(filename, data, size);
  }

  auto write(const string& filename, const vector<uint8_t>& buffer) -> bool {
    return write(filename, buffer.data(), buffer.size());
  }

  auto write(const string& filename, const string& text) -> bool {
    return write(filename, (const uint8_t*)text.data(), text.size());
  }

  //core.cpp
  Icarus();

  auto error() const -> string;
  auto missing() const -> string_vector;
  auto success(string location) -> string;
  auto failure(string message) -> string;

  auto manifest(string location) -> string;
  auto import(string location) -> string;

  auto concatenate(vector<uint8_t>& output, string location) -> void;

  //famicom.cpp
  auto famicomManifest(string location) -> string;
  auto famicomManifest(vector<uint8_t>& buffer, string location, uint* prgrom = nullptr, uint* chrrom = nullptr) -> string;
  auto famicomImport(vector<uint8_t>& buffer, string location) -> string;

  //super-famicom.cpp
  auto superFamicomManifest(string location) -> string;
  auto superFamicomManifest(vector<uint8_t>& buffer, string location) -> string;
  auto superFamicomManifestScan(vector<Markup::Node>& roms, Markup::Node node) -> void;
  auto superFamicomImport(vector<uint8_t>& buffer, string location) -> string;

  //master-system.cpp
  auto masterSystemManifest(string location) -> string;
  auto masterSystemManifest(vector<uint8_t>& buffer, string location) -> string;
  auto masterSystemImport(vector<uint8_t>& buffer, string location) -> string;

  //mega-drive.cpp
  auto megaDriveManifest(string location) -> string;
  auto megaDriveManifest(vector<uint8_t>& buffer, string location) -> string;
  auto megaDriveImport(vector<uint8_t>& buffer, string location) -> string;

  //pc-engine.cpp
  auto pcEngineManifest(string location) -> string;
  auto pcEngineManifest(vector<uint8_t>& buffer, string location) -> string;
  auto pcEngineImport(vector<uint8_t>& buffer, string location) -> string;

  //supergrafx.cpp
  auto superGrafxManifest(string location) -> string;
  auto superGrafxManifest(vector<uint8_t>& buffer, string location) -> string;
  auto superGrafxImport(vector<uint8_t>& buffer, string location) -> string;

  //game-boy.cpp
  auto gameBoyManifest(string location) -> string;
  auto gameBoyManifest(vector<uint8_t>& buffer, string location) -> string;
  auto gameBoyImport(vector<uint8_t>& buffer, string location) -> string;

  //game-boy-color.cpp
  auto gameBoyColorManifest(string location) -> string;
  auto gameBoyColorManifest(vector<uint8_t>& buffer, string location) -> string;
  auto gameBoyColorImport(vector<uint8_t>& buffer, string location) -> string;

  //game-boy-advance.cpp
  auto gameBoyAdvanceManifest(string location) -> string;
  auto gameBoyAdvanceManifest(vector<uint8_t>& buffer, string location) -> string;
  auto gameBoyAdvanceImport(vector<uint8_t>& buffer, string location) -> string;

  //game-gear.cpp
  auto gameGearManifest(string location) -> string;
  auto gameGearManifest(vector<uint8_t>& buffer, string location) -> string;
  auto gameGearImport(vector<uint8_t>& buffer, string location) -> string;

  //wonderswan.cpp
  auto wonderSwanManifest(string location) -> string;
  auto wonderSwanManifest(vector<uint8_t>& buffer, string location) -> string;
  auto wonderSwanImport(vector<uint8_t>& buffer, string location) -> string;

  //wonderswan-color.cpp
  auto wonderSwanColorManifest(string location) -> string;
  auto wonderSwanColorManifest(vector<uint8_t>& buffer, string location) -> string;
  auto wonderSwanColorImport(vector<uint8_t>& buffer, string location) -> string;

  //bs-memory.cpp
  auto bsMemoryManifest(string location) -> string;
  auto bsMemoryManifest(vector<uint8_t>& buffer, string location) -> string;
  auto bsMemoryImport(vector<uint8_t>& buffer, string location) -> string;

  //sufami-turbo.cpp
  auto sufamiTurboManifest(string location) -> string;
  auto sufamiTurboManifest(vector<uint8_t>& buffer, string location) -> string;
  auto sufamiTurboImport(vector<uint8_t>& buffer, string location) -> string;

private:
  string errorMessage;
  string_vector missingFiles;

  struct {
    Markup::Node famicom;
    Markup::Node superFamicom;
    Markup::Node masterSystem;
    Markup::Node megaDrive;
    Markup::Node pcEngine;
    Markup::Node superGrafx;
    Markup::Node gameBoy;
    Markup::Node gameBoyColor;
    Markup::Node gameBoyAdvance;
    Markup::Node gameGear;
    Markup::Node wonderSwan;
    Markup::Node wonderSwanColor;
    Markup::Node bsMemory;
    Markup::Node sufamiTurbo;
  } database;
};