summaryrefslogtreecommitdiff
path: root/lib/nes/sys/cartridge.hh
diff options
context:
space:
mode:
authorHannes Schulze <haschu0103@outlook.de>2025-02-04 19:59:47 +0100
committerHannes Schulze <haschu0103@outlook.de>2025-02-04 19:59:47 +0100
commit9c45e9c7df1efa5bc1c8e73b6eaef4726b828d3e (patch)
tree4be985efa8e697fd6ef5838eec69c32c40c5d4a5 /lib/nes/sys/cartridge.hh
parente791ac9a46095e0241181da89c35a7c702982c21 (diff)
add span type
Diffstat (limited to 'lib/nes/sys/cartridge.hh')
-rw-r--r--lib/nes/sys/cartridge.hh18
1 files changed, 7 insertions, 11 deletions
diff --git a/lib/nes/sys/cartridge.hh b/lib/nes/sys/cartridge.hh
index 1934b8d..5383b56 100644
--- a/lib/nes/sys/cartridge.hh
+++ b/lib/nes/sys/cartridge.hh
@@ -3,8 +3,7 @@
#include "nes/sys/types/status.hh"
#include "nes/sys/mapper.hh"
#include "nes/common/types.hh"
-#include <vector>
-#include <string_view>
+#include "nes/common/span.hh"
namespace nes::sys
{
@@ -42,7 +41,7 @@ namespace nes::sys
u8 value[header_length]{};
- explicit header(u8 const* v)
+ explicit header(span<u8 const, header_length> const v)
{
for (auto i = u32{ 0 }; i < header_length; ++i)
{
@@ -64,16 +63,13 @@ namespace nes::sys
public:
static constexpr auto max_file_size = u32{ max_prg_rom_size + max_chr_rom_size + 512 + header_length };
- explicit cartridge(u8 const* data, u32 length);
+ explicit cartridge(span<u8 const>);
auto get_status() const -> status { return status_; }
- auto get_prg_rom() const -> u8 const* { return prg_rom_; }
- auto get_prg_rom_length() const -> u32 { return prg_rom_size_; }
- auto get_chr_rom() const -> u8 const* { return chr_rom_; }
- auto get_chr_rom_length() const -> u32 { return chr_rom_size_; }
- auto get_ram() const -> u8 const* { return ram_; }
- auto get_ram_mut() -> u8* { return ram_; }
- auto get_ram_length() const -> u32 { return ram_size_; }
+ auto get_prg_rom() const -> span<u8 const> { return span{ prg_rom_, prg_rom_size_ }; }
+ auto get_chr_rom() const -> span<u8 const> { return span{ chr_rom_, chr_rom_size_ }; }
+ auto get_ram() const -> span<u8 const> { return span{ ram_, ram_size_ }; }
+ auto ref_ram() -> span<u8> { return span{ ram_, ram_size_ }; }
auto get_mapper() const -> mapper& { return *mapper_; }
auto get_name_table_arrangement() const -> name_table_arrangement { return name_table_arrangement_; }
};