Skip to content

Commit 8ead002

Browse files
committed
Initial commit
0 parents  commit 8ead002

25 files changed

+2013
-0
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
build/
2+
*.nes

APU.h

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
class APU {
2+
public:
3+
APU();
4+
~APU();
5+
6+
void PowerOn();
7+
void Reset();
8+
9+
void Step();
10+
11+
uint8_t Read(uint16_t address);
12+
void Write(uint16_t address, uint8_t value);
13+
14+
enum APUAddr : Addr {
15+
APUAddr_SQ1_VOL = 0x4000,
16+
APUAddr_SQ1_SWEEP = 0x4001,
17+
APUAddr_SQ1_LO = 0x4002,
18+
APUAddr_SQ1_HI = 0x4003,
19+
APUAddr_SQ2_VOL = 0x4004,
20+
APUAddr_SQ2_SWEEP = 0x4005,
21+
APUAddr_SQ2_LO = 0x4006,
22+
APUAddr_SQ2_HI = 0x4007,
23+
APUAddr_TRI_LINEAR = 0x4008,
24+
APUAddr_TRI_LO = 0x400A,
25+
APUAddr_TRI_HI = 0x400B,
26+
APUAddr_NOISE_VOL = 0x400C,
27+
APUAddr_NOISE_LO = 0x400E,
28+
APUAddr_NOISE_HI = 0x400F,
29+
APUAddr_DMC_FREQ = 0x4010,
30+
APUAddr_DMC_RAW = 0x4011,
31+
APUAddr_DMC_START = 0x4012,
32+
APUAddr_DMC_LEN = 0x4013,
33+
APUAddr_STATUS = 0x4015,
34+
APUAddr_FRAME = 0x4017
35+
};
36+
37+
};

CMakeLists.txt

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
cmake_minimum_required(VERSION 3.27)
2+
3+
project(nes2)
4+
5+
set(CMAKE_CXX_STANDARD 23)
6+
set(CMAKE_CXX_STANDARD_REQUIRED true)
7+
set(CMAKE_CXX_EXTENSIONS false)
8+
9+
include(FetchContent)
10+
11+
# Fetch and add spdlog
12+
FetchContent_Declare(
13+
assert
14+
GIT_REPOSITORY https://github.com/jeremy-rifkin/libassert.git
15+
GIT_TAG v1.2
16+
)
17+
FetchContent_MakeAvailable(assert)
18+
19+
FetchContent_Declare(
20+
spdlog
21+
GIT_REPOSITORY https://github.com/gabime/spdlog.git
22+
GIT_TAG v1.12.0
23+
)
24+
FetchContent_MakeAvailable(spdlog)
25+
26+
add_executable(nes2
27+
main.cpp
28+
iNES.cpp
29+
Cartridge.cpp
30+
MMC1.cpp
31+
MMU.cpp
32+
CPU.cpp
33+
SimpleMapper.cpp
34+
System.cpp
35+
)
36+
37+
target_precompile_headers(nes2
38+
PRIVATE
39+
pch.h
40+
)
41+
42+
target_link_libraries(nes2
43+
PRIVATE
44+
assert
45+
spdlog::spdlog
46+
)
47+
48+
add_executable(dump
49+
dump.cpp
50+
iNES.cpp
51+
)
52+
53+
target_link_libraries(dump
54+
PRIVATE
55+
assert
56+
spdlog::spdlog
57+
)

0 commit comments

Comments
 (0)