Skip to content

Commit 8382256

Browse files
committed
hardware overview
1 parent 1557af0 commit 8382256

File tree

10 files changed

+92
-8
lines changed

10 files changed

+92
-8
lines changed

book.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ title = "cubenotes"
1010
[preprocessor.pagetoc]
1111

1212
[output.html]
13-
additional-css = ["theme/pagetoc.css"]
13+
additional-css = ["theme/pagetoc.css", "theme/custom.css"]
1414
additional-js = ["theme/pagetoc.js"]
1515
smart-punctuation = true
1616
git-repository-url = "https://github.com/vxpm/psxnotes"

src/SUMMARY.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@
99
- [Subsystems](subsystems.md)
1010
- [Video Interface](video.md)
1111

12-
[References](references.md)
12+
[Resources](resources.md)

src/hardware.md

Lines changed: 60 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,62 @@
11
# Hardware
22

3-
TODO: talk about the gamecube's hardware (cpu, memory, flipper, etc)
3+
- CPU: IBM PowerPC Gekko
4+
- Runs at 486 Mhz
5+
- 32-bit
6+
- 64-bit Floating Point Unit
7+
- 32 KiB L1 Instruction Cache
8+
- 32 KiB L1 Data Cache[^dcache]
9+
- 256 KiB L2 Unified Cache
10+
- Single core
11+
- Pipelined (instructions are divided into multiple stages of execution, allowing multiple
12+
instructions to be at different stages at the same time)
13+
- Superscalar (contains multiple execution units which can work on independent instructions at
14+
the same time)
15+
- Contains a SIMD extension geared torwards 3D graphics called "Paired Singles"
16+
17+
[^dcache]: The data cache can be split into two 16 KiB sections and one of them can be mapped into
18+
memory to be used as a "scratchpad" (super fast RAM).
19+
20+
- GPU: ATI Flipper
21+
- Runs at 162 Mhz
22+
- While most of it is a GPU, it is actually a complex IC with multiple services embedded into it,
23+
such as a DSP, I/O controller and more
24+
25+
- Memory: 43 MiB total
26+
- RAM: 24 MiB (2 x 12 MiB) 1T-SRAM[^1tsram] running at 324 MHz
27+
- VRAM: 3 MiB 1T-SRAM[^1tsram] memory embedded within Flipper, 2 MiB for framebuffers and 1 MiB
28+
for textures
29+
- ARAM: 16 MiB DRAM connected to Flipper, used as Auxiliary RAM, usually for audio
30+
31+
[^1tsram]: A kind of pseudo-static RAM (PSRAM). Internally it's just DRAM, but it's made to behave
32+
like SRAM from an outside point of view.
33+
34+
- Audio: Macronix DSP
35+
- Integrated within Flipper
36+
37+
- DVD Reader:
38+
- Reads miniDVD sized Nintendo optical discs.
39+
- Discs are 1.46 GiB, read at constant angular velocity (in practice, this means data in the outer
40+
part of the disc is read faster than data in the inner part)
41+
42+
Here's an overview of the GameCube's motherboard, with the most important components labeled:
43+
44+
<img src="images/gc-motherboard.png" width="80%">
45+
<div class="caption">
46+
Image by Rodrigo Copetti,
47+
<a href="resources.html#gamecube-architecture---a-pratical-analysis">Gamecube Architecture - A Pratical Analysis</a>
48+
</div>
49+
50+
And here's a diagram of the architecture:
51+
52+
<img src="images/arch-diagram.png" width=100%>
53+
<div class="caption">
54+
Image by Rodrigo Copetti,
55+
<a href="resources.html#gamecube-architecture---a-pratical-analysis">Gamecube Architecture - A Pratical Analysis</a>
56+
</div>
57+
58+
A note on buses:
59+
- Northbridge: Connects the CPU to the Flipper. It is 64-bit and runs on the Flipper clock.
60+
- Southbridge: Connects both 12 MiB 1T-SRAM chips to the Flipper. It is 64-bit and runs at double
61+
the Flipper clock.
62+
- Eastbridge: Connects ARAM to the Flipper. It is 8-bit and runs at half the Flipper clock.

src/images/arch-diagram.png

50.2 KB
Loading

src/images/gamecube.png

614 KB
Loading

src/images/gc-motherboard.png

283 KB
Loading

src/introduction.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# <img src="images/gc.png" width="35em" style="vertical-align:middle;"> cubenotes
1+
# <img src="images/gc.png" width="35px" style="display: inline; vertical-align: middle;"> cubenotes
22

33
This book is a collection of notes about the Nintendo GameCube, geared towards emulator development.
44

@@ -10,4 +10,4 @@ This book is a collection of notes about the Nintendo GameCube, geared towards e
1010
> GameCube emulator. If my understanding is wrong, sorry!
1111
>
1212
> If you find something wrong or missing, please [open an issue](https://github.com/vxpm/cubenotes/issues/new)
13-
> or create a pull request.
13+
> or create a pull request. Help cubenotes become better!

src/overview.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
11
# Overview
22

3-
TODO: talk about the gamecube
3+
The Nintendo GameCube is a console released in 2001/2002 and is the successor to the Nintendo 64. It
4+
belongs to the sixth generation of consoles, together with others like Sony's Playstation 2 and
5+
Microsoft's Xbox.
6+
7+
<img src="images/gamecube.png" width="80%">
8+
9+
While the GameCube is frequentely overshadowed by it's big brother, the Nintendo Wii, it is a very
10+
charming console, powerful for it's time.
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
# References
1+
# Resources
22

33
This page is a collection of links that might be referenced through the book or that otherwise are
44
useful as additional material. No particular order.
55

6-
## Resources
6+
## Documentation
77

88
### YAGCD - Yet Another GameCube Documentation
99

theme/custom.css

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
p {
2+
text-align: justify;
3+
}
4+
5+
.caption {
6+
margin-top: 15px;
7+
text-align: center;
8+
font-size: 0.85em;
9+
}
10+
11+
img {
12+
display: block;
13+
margin: auto;
14+
}
15+
16+
hr {
17+
margin-top: 15px;
18+
}

0 commit comments

Comments
 (0)