28 switch (stream_type) {
39 return absl::InvalidArgumentError(
"Unknown dungeon stream type");
43 "Dungeon pointer table"));
50 return absl::InvalidArgumentError(
51 "long24 dungeon layout must not define pointer_bank");
58 return absl::InvalidArgumentError(
59 "bank16 dungeon layout requires pointer_bank");
66 return absl::InvalidArgumentError(
67 "Unknown dungeon pointer encoding in manifest");
73 ValidateMappedLoRomAddress(range.start,
"Dungeon data range start"));
75 ValidateMappedLoRomAddress(range.end,
"Dungeon data range end"));
76 const uint32_t begin =
SnesToPc(range.start);
77 const uint32_t end =
SnesToPc(range.end);
79 return absl::InvalidArgumentError(
80 "Dungeon data range must be non-empty in PC space");
82 allocator_layout.
data_ranges.push_back({begin, end});
89 range.start,
"Dungeon allocation range start"));
91 ValidateMappedLoRomAddress(range.end,
"Dungeon allocation range end"));
92 const uint32_t begin =
SnesToPc(range.start);
93 const uint32_t end =
SnesToPc(range.end);
95 return absl::InvalidArgumentError(
96 "Dungeon allocation range must be non-empty in PC space");
104 return absl::InvalidArgumentError(
105 "Sprite allocation range extends beyond the legacy sprite data "
111 return allocator_layout;