File: msx2.cpp

package info (click to toggle)
ares 147%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 35,260 kB
  • sloc: cpp: 334,263; ansic: 98,696; sh: 131; makefile: 67
file content (31 lines) | stat: -rw-r--r-- 826 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
struct MSX2 : System {
  auto name() -> string override { return "MSX2"; }
  auto loadMultiple(std::vector<string> location) -> bool override;
  auto save(string location) -> bool override;
};

auto MSX2::loadMultiple(std::vector<string> location) -> bool {
  if(location.size() != 2) return false;

  auto bios = Pak::read(location[0]);
  if(bios.empty()) return false;

  auto sub = Pak::read(location[1]);
  if(sub.empty()) return false;

  this->location = locate();
  pak = std::make_shared<vfs::directory>();
  pak->append("bios.rom", bios);
  pak->append("sub.rom", sub);

  pak->append("time.rtc", 52);
  if(auto fp = pak->write("time.rtc")) {
    for(auto address : range(fp->size())) fp->write(0xff);
  }
  Pak::load("time.rtc", ".rtc");
  return true;
}

auto MSX2::save(string location) -> bool {
  return true;
}