Sega Saturn Architecture

A practical analysis by Rodrigo Copetti

Classic edition - Last updated: July 7, 2025

Languages available: 🇬🇧 - English, 🇧🇷 - Português (Brasil), 🇨🇳 - 简体字, 👋 - Add translation


About this edition

The ‘classic’ edition is an alternative version to the ‘modern’ counterpart. It doesn’t require Javascript, state-of-the-art CSS or convoluted HTML to work, which makes it ideal for readers who use accessibility tools or legacy internet browsers. On the other hand, paper/eBook users can now check the book editions.

This edition is identical content-wise. However, interactive widgets have been simplified to work with pure HTML, though these will offer an link to the original article in case the reader wants to try the ‘full version’.

As always, this article is available on Github to enable readers to report mistakes or propose changes. There’s also a supporting reading list available to help understand the series. The author also accepts donations and translations to help improve the quality of current articles and upcoming ones.


Table of Contents

  1. Supporting imagery
  2. A quick introduction
  3. CPU
    1. The ramifications
    2. Sega is not satisfied
    3. The final product
    4. The octopus architecture
    5. A divided choice of memory
    6. The third processor (and counting)
  4. Graphics
    1. Revised methodologies
    2. Sega’s offering
      1. VDP1
      2. VDP2
    3. Defining the problem
    4. As a powerful 2D console
      1. Sprites
      2. Backgrounds
      3. Result
    5. As a challenging 3D console
      1. 3D modelling
      2. Pixel processing
    6. The new designs
    7. An introduction to the visibility problem
    8. The transparency issue
  5. Audio
    1. The tech stack
    2. The opportunity
  6. Operating System
    1. Interactive shell
    2. No BIOS?
  7. Games
    1. The Compact Disc (CD)
    2. Development
    3. I/O
    4. Expansion methods
  8. Anti-Piracy & Homebrew
    1. Defeat
  9. That’s all folks
  10. Copyright and permissions
  11. Sources / Keep Reading
  12. Contributing
  13. Changelog

Supporting imagery

Model

Japanese
The Sega Saturn, released on 22/11/1994 in Japan
International
The Sega Saturn, released on 11/05/1995 in America and 08/07/1995 in Europe

Motherboard

Motherboard
Motherboard
Showing 'VA8' revision which includes all components in a single board.
Remaining RAM chips are fitted on the back
Motherboard
Motherboard with important parts labelled

Diagram

Diagram
Main architecture diagram

A quick introduction

Welcome to the 3D era! Well… sorta. Sega enjoyed quite a success with the Mega Drive so there was no reason to force developers to write 3D games right now.

Just in case developers wanted the extra dimension, Sega prepared some bits of the hardware to enable polygon drawing as well. Hopefully, the result didn’t get out of hand!


CPU

Just like its close competitors drowned in options during the RISC fever, Sega had to go through all the conundrums of choosing a new vendor that could deliver the next generation of games (including those with ‘3D’ capabilities). In the end, the company chose a fresh CPU whose creator was desperately seeking an adopter: the Hitachi SuperH, or ‘SH’.

While initially focused on embedded applications, Hitachi’s new creation debuted modern arts such as [1]:

Furthermore, the SuperH features a new instruction set called SuperH ISA which, apart from adopting a RISC design, all of its instructions are 16 bits wide. This comes as a surprise since this CPU operates 32-bit words, so you would expect instructions to have the same length. Yet, Hitachi managed to fit its ISA using half the size. Not only does this format reduce the size of programs, but since the CPU fetches instructions in 32-bit batches, two instructions can be retrieved in one cycle. Overall, this technique of compressing the instruction set helped tackle a common concern of RISC-based architectures called ‘code density’, where the latter required more instructions (therefore, more memory) to perform the same tasks as non-RISC systems.

The ramifications

Conversely, other drawbacks of RISC designs are still present in the SuperH, such as control hazards. Consequently, programs are required to include branch delay slots to avoid calculation errors. To remediate things, the SuperH features delayed branch instructions which are branch instructions pre-fitted with a delay slot [3].

Data hazards are also present but not tackled by the programmer or compiler, the CPU will automatically stall the pipeline whenever necessary.

Sega is not satisfied

Nevertheless, all of that didn’t stop Sega from expressing dissatisfaction with the end product. This was mainly due to the small 16-bit multiplier, which was seen as a bottleneck when processing larger amounts of data (a new need for 3D games). Thus, Hitachi synthesised a second revision with an extended multiplier unit and other features from Sega’s checklist [4], leading to a new CPU called SH-2.

Image
The two SH-2 chips found in the Sega Saturn

Even so, Sega couldn’t stand still after hearing what choice of CPU its competitors went for. So, it asked Hitachi to step up the clock frequency of the SH-2 - an impossible task once the chip is already out for manufacturing. Luckily, Hitachi had another trick up their sleeve: multiprocessing. During the research phase of the SH, the team added minimal circuitry to allow the SH to work alongside other SHs within the same system simultaneously. Upon hearing that, Sega decided on a two-chip configuration for the Sega Saturn. And the rest is history.

The final product

Having explained the origins, let’s take a look at the shipped product.

This console has not one but two Hitachi SH-2 CPUs running at ~28.63 MHz each [5]. While both physically identical, they are placed in a master-slave state, where the first one may send commands to the second one. This can achieve some degree of parallelism, albeit both sharing the same external bus [6] (which is prone to congestion).

Hitachi packaged different variants of the SH-2 and sold them as part of a series called ‘SH7600’. All of them feature [7]:

The specific chip selected for this console, the ‘SH7604’, contains the following additions [8]:

It’s worth pointing out that having two CPUs doesn’t mean that games will work twice as fast! In practice, however, this requires very complex programming to efficiently manage CPUs that share the same bus. For instance, memory access should leverage the cache as much as possible.

The octopus architecture

Image
Overview of the multi-subsystem model.

The Sega Saturn houses a significant number of processors (eight!). So, to avoid making them fight for resources, engineers grouped the circuitry into four separate subsystems:

It’s worth noting that each subsystem is wired to a dedicated bus - except the Video and Audio ones, which share one.

A divided choice of memory

Image
Overview of the main memory architecture.

The CPU subsystem contains a total of 2 MB of RAM for general-purpose use, called Work RAM (WRAM). But it’s not that simple: this memory is split into two distinct blocks and, once again, each is accessed via different buses:

The third processor (and counting)

Surprisingly, it seems that the two SH-2 CPUs still weren’t enough for Sega. So, to accelerate vector processing (at the cost of more complexity), the CPU group also houses an additional coprocessor, the Saturn Control Unit or ‘SCU’.

Image
The Saturn Control Unit in my motherboard revision.

This is a separate chip comprised of two modules [9]:

To alleviate things, the SCU comes with 32 KB of SRAM for local use.


Graphics

Since the Saturn is the first ‘3D console’ reviewed for this series, let us first go over the fundamental design changes that made way to the new generation of 3D graphics.

Revised methodologies

Firstly, the GPU now relies on a frame buffer: graphics are no longer required to be rendered on the fly. Instead, the GPU reserves a portion of VRAM to draw a bitmap containing all the computed geometry requested by the CPU. A video encoder then picks up that region and outputs it through the video output signal. Be as it may, the Saturn does mix the two models… I will explain more later.

Consequently, having this reserved ‘working space’ allows the GPU to continue manipulating the bitmap even after finishing rendering the scene, enabling the CPU to offload additional exhaustive tasks (such as lighting and anti-aliasing) to the GPU. Here is where the concept of graphics pipeline starts to gain significance.

Secondly, more is VRAM required: Using a frame buffer increases memory requirements (which is no longer a major issue). The amount of RAM required for a frame buffer is proportional to the screen dimensions and the number of colours used (a.k.a. colour depth). As an example, 600 KB of VRAM can contain a frame buffer of 640x480 pixels at 32k colours (16 bits per pixel).

Additionally, programmers are free to organise their VRAM usage: not every bit must be allocated for the frame buffer. So, why not also use it to cache textures, render other frame buffers concurrently, and add colour lookup tables to speed things up?

Finally, the CPU incorporates vector operations: a GPU with 3D capabilities would be incomplete without a CPU capable of feeding the required geometry. For this reason, next-generation CPUs feature some form of specialised instructions that accelerates vector calculations, these are known as Single Instruction Multiple Data (SIMD) extensions. Nonetheless, their design across the industry will be far from standardised.

In the case of the Saturn, vector operations are accelerated by the Saturn Control Unit, not the SH-2 CPUs.

Sega’s offering

This console includes two proprietary GPUs: the VDP1 and VDP2. Each serves a different purpose while operating concurrently. Some might argue that the new GPUs are an evolution of the classic VDP, while others may claim it’s a complete redesign… I think it’s a bit of both.

With that in mind, let’s take a look at the two chips.

VDP1

Image
Architecture of the VDP1.

The Video Display Processor 1 (VDP1) is a chip that draws sprites with geometric transformations [10]. The results are written to a frame buffer, which is subsequently streamed to the VDP2 for display.

This chip is programmed by issuing drawing commands. So, programmers are provided with 512 KB of dedicated RAM to store these commands, along with the necessary materials (textures/tiles, colour lookup tables, etc.) to process them.

Consequently, the VDP1 is designed to use quadrilaterals as primitives, meaning it can only compose models using only four-vertex polygons (sprites). The chip applies Forward Texture Mapping to connect texture points onto the quadrilateral, in that direction. It doesn’t come with any filtering or interpolation techniques, so the rendering is subject to aliasing.

The VDP1 also provides this selection of effects:

Two 256 KB frame buffer chips are available to concurrently draw new scenes of the game without breaking the current one being displayed. When the secondary buffer is finished being drawn, the VDP1 switches to broadcasting that one instead, and the cycle repeats. This technique is called page flipping.

VDP2

Image
Architecture of the VDP2.

The Video Display Processor 2 (VDP2) specialises in rendering large planes (up to 4096×4096 pixels) with transformations (rotation, scaling and translation) applied [11].

More importantly, the VDP2 renders on the fly (without a frame buffer), much like earlier tile-based engines. It supports up to 16.7 million colours (24-bit).

This chip is also responsible for displaying the VDP1’s output buffer, which can itself be transformed and mixed with the VDP2’s layers. The VDP2’s ‘frame’ consists of up to four 2D planes and one 3D plane, or just two 3D planes.

This chip relies on tile-maps to compose planes and applies perspective correction for 3D texture mapping. This is a more sophisticated approach that accounts for the depth value when computing rotations.

Effects available include:

This chip also houses 4 KB of Colour RAM (CRAM) which is used to translate the VDP1’s custom colour values (indexed colours) into 24-bit RGB colours.

Finally, even though the VDP2 is limited to two 3D planes, nothing prevents the CPU from using its VRAM as a software-based frame buffer to render additional 2D or 3D graphics.

If this section got your attention, I recommend checking out the sources at the end, the VDPs have a lot more interesting quirks that lie beyond the scope of this article.

Defining the problem

As you can see, the architecture of the graphics subsystem is quite complex, and its interpretation often varies depending on the needs:

As a powerful 2D console

The capabilities of the Saturn for drawing 2D scenes were vast compared to those of the Mega Drive or SNES, although they were not the console’s main selling point.

For a quick demonstration, I will use Mega Man X4 (1997) as example.

Sprites

Image
The VDP1’s Sprite plane.

In this case, the VDP1 is tasked with plotting traditional sprites without any 3D distortion applied.

The CPU sets up the VDP1 by writing to its registers and populating its VRAM with commands and tiles. The process can also be accelerated using the DMA controller.

Backgrounds

Image
2D plane 1.
Image
2D plane 2.
Image
2D plane 3.
VDP2’s Background planes.

The VDP2 is then instructed to draw background planes. These, together with the sprite layer, are automatically composited to form a fully coloured scene.

The commanding part is fundamentally similar to that of the VDP1: programmers have access to registers and VRAM to configure the chip accordingly.

Certain VDP2 functions can be exploited to create more realistic scenery, such as scaling effects to simulate a heat haze, as seen in the ‘2D plane 2’.

Result

Image
Mixed planes (Tada!).

Not much mystery here, the VDP2 handles the last step of passing the processed signal to the video encoder.

The VDP2 operates in sync with the CRT beam, meaning that its ongoing computations correspond to the pixels due to appear on the upcoming scan line.

As a challenging 3D console

Here’s where the Saturn both shone and struggled at the same time. While this console had eight processors to take advantage of, it ultimately came down to:

For this reason, game quality varied dramatically from title to title, with each studio coming up with unique approaches.

3D modelling

Image
3D models of characters without textures or background. Notice the primitives used to build the models.
Virtua Fighter Remix (1995).

So far, previous examples used individual regular quadrilaterals to form sprites and/or background layers. But what if we group multiple irregular primitives and arrange them to form a more complex figure? This is how 3D models come to fruition.

To put it in simple terms, classic 2D consoles like the Super Nintendo arrange their graphics (backgrounds and sprites) in quasi-rectangular areas. In some cases, such as with Mode 7, programmers can supply a rotation matrix to apply transformations to some of these areas. The Saturn, by contrast, allows developers to define four-point quadrilaterals with arbitrary angles between their edges - Sega calls them distorted sprites. Then, the VDPs’ texture-mapping capabilities paint the quadrilateral’s area with a texture, which is scaled to conform to the polygon’s shape.

In terms of operations required in a 3D game, the CPUs and SCU are tasked with formulating a 3D world and projecting it onto a 2D space. Then, both VDPs are commanded to render it, apply effects, and finally broadcast it to the television.

Pixel processing

Image
Rendered scene with 3D models and backgrounds.
Virtua Fighter Remix (1995).

Either VDP can draw the newly projected 3D space and stamp textures and effects. However, which chip is ‘in charge’ varies from game to game.

Some developers prioritised the VDP1 for rendering nearby polygons, leaving the VDP2 to handle distant scenery. Others devised clever workarounds that allowed the VDP2 to draw closer polygons (thereby offloading the volume of geometry passed to the VDP1). The core challenge lies in designing an efficient engine capable of displaying impressive graphics while maintaining an acceptable frame rate.

The new designs

These are some examples of characters that were redesigned specifically for this console. I initially built an interactive model viewer for the website edition, and later adapted the visualisations for the physical formats.

3D model 3D model 3D model Interactive model available in the modern edition
Sonic in Sonic R (1997).
185 quadrilaterals.
3D model 3D model 3D model Interactive model available in the modern edition
Tails in Sonic R (1997).
254 quadrilaterals.

While the Saturn is only able to draw quadrangles, the Wireframe view exhibits two triangles in place of a single quadrangle. This occurs because the modern format used to encode this model (glTF, an open standard for contemporary 3D modelling), allowing modern devices to still render it, doesn’t support quadrangles at the time of this writing. This behaviour is not apparent in the Surface view.

In a way, this highlights how modern graphics technology can struggle to faithfully emulate their ~30-year-old predecessors!

An introduction to the visibility problem

When 3D polygons are projected onto a 2D space, it is crucial to determine which polygons are visible from the camera’s perspective and which are hidden behind [12]. Otherwise, models are not drawn correctly, effects like transparency appear broken, and hardware resources are wasted.

This process is widely known as Visible Surface Determination or ‘VSD’, and it’s a fundamental challenge in the field of computer graphics. Numerous publications describe algorithms that tackle this issue at different stages of the graphics pipeline - some offering highly accurate results, while others sacrifice precision in favour of better performance.

Now, unlike academic or professional-grade equipment, consumer hardware is severely constrained, meaning the choice of algorithm is often restricted to only a few options… or none whatsoever.

Image
Project Z-Treme [13], a 2019 Homebrew engine, ditched Z-sort in favour of a Binary Space Partitioning (BSP) approach, fixing many glitches.

The Sega Saturn’s approach is what I consider a semi-solved case. The VDP1 doesn’t implement any VSD functionality: you either feed the geometry in the correct order or you get a mess. However, Sega provided a graphics library known as ‘SGL’ that implements a solution called Z-sort or Painter’s algorithm [14]. This performs polygon sorting in software.

Essentially, SGL allocates a buffer to sort polygons by their distance from the camera (arranging them from furthest to nearest). Then, it issues the corresponding display commands to the VDP1 in that order.

One of the limitations of Z-sort in 3D environments is that its distance value (Z-order) is only approximated, meaning graphic glitches may still appear. For this, programmers may skip SGL in favour of implementing their own algorithms.

In later articles, you will see alternative approaches to visible surface determination. Some still rely on software, while others benefit from hardware acceleration.

The transparency issue

As part of its own set of colour math, the Sega Saturn is capable of rendering half-transparent graphics - that is, blending overlapping layers of colours to give the illusion we can see through them (a.k.a. translucency). However, there are significant caveats to this functionality [15]:

As a workaround, 2D games can activate the ‘mesh’ property on a texture. With meshed textures, the VDP1 sets the odd X/Y texture coordinates as ‘fully transparent’ (i.e. empty), allowing layers beneath to appear through. Curiously enough, when the console is connected to the television via the composite video signal (a standard at the time, aside from RF) the mesh pattern appears blurred. This accidental but effective consequence provided a way to simulate half-transparency [16].

Nevertheless, the opaque portions of a mesh would still occlude other sprites. Moreover, this didn’t resolve the issue for 3D games. In the end, some titles had no option but to ditch half-transparency altogether… yet some studios found ingenious fixes, take a look at these two cases.

Sega’s Daytona (1993).
Traveller’s Tales’ Sonic R (1997).
Example of games dealing with half-transparency in different ways.

In both examples, the game commands the VDP1 to draw foreground objects and background scenery. In turn, the VDP2 renders the landscape imagery far away, and overlays the HUD statistics in front of the 3D models. Consequently, the VDP1’s 3D models (rendered as distorted sprites) are unable to employ half-transparency, this prevents them from naturally blending with the VDP2’s layers.

Nevertheless, the two games exhibit different behaviour. During gameplay, the background of Daytona pops out of nowhere (as half-transparency is disabled). In contrast, Sonic R achieves not only half-transparency but also a fading effect. Traveller’s Tales devised a workaround by adjusting the ‘mix ratio’ registers of the VDP2 (used for defining the texture’s alpha) and manually switching the lighting levels as the character gets closer [17].


Audio

The audio capabilities of this console were part of a broader digital revolution taking place during the same period. In essence, the combination of new storage formats and affordable (yet sophisticated) sample synthesisers ultimately unlocked the composers’ ability to produce their music in-house, and then incorporate it directly into games in its original form.

The tech stack

Be as it may, beneath the surface of attractive functionality lies a complex arrangement. In the case of the Sega Saturn, its sound subsystem is composed of several parts [18]:

The opportunity

As previously mentioned, the new audio subsystem allowed studios to finally record and produce soundtracks in-house, then bundle them in the game without the need for rearrangement - unlike earlier systems that relied on constrained sequencers or sound hardware with strict synthesis methods).

This shift was made possible thanks to a combination of key factors:


Operating System

Upon powering on the console, the first component that starts up is the System Management & Peripheral Control (SMPC), a 4-bit microcontroller that takes care of initialising nearby chips, such as switching on the two SH-2s and setting them in a ‘master-slave’ configuration [20].

Image
The SMPC chip in my motherboard revision.

Afterwards, the reset vector of the master SH-2 is set to 0x00000000 [21], which points to a 512 KB ROM chip containing the Initial Program Loader (IPL).

Image
Japanese version.
Image
European and American versions.
Logo displayed after splash animation finishes.

The IPL performs the following functions as part of the boot sequence [22]:

  1. Finish initialising the hardware.
  2. If a cartridge is inserted and contains executable code, continue booting from there.
  3. If a ‘Video CD’ card is inserted, boot it.
  4. If a disc is inserted, verify that it’s genuine.
    • While at it, the system displays the splash screen animation.
  5. If the disc is genuine, boot the game.
  6. If the disc is not genuine or there’s no disc inserted, launch the interactive shell.

Interactive shell

Alternatively to playing games, the Saturn included a built-in music player called ‘Multiplayer’, from which users could also access a save data manager.

Image
Interactive shell called ‘Multiplayer’ or ‘Audio CD Control Panel’.
Image
Memory Manager. Moves saves between the cartridge and internal memory.

If a Video CD card was inserted, Multiplayer could also reproduce MPEG video decoded from the card itself.

No BIOS?

Unlike the PlayStation, whose ROM chip bundles a BIOS that exposes APIs for programmers to use, the Saturn’s ROM is often referred to as ‘IPL’ instead - presumably since its main job is to initialise the system, bootstrap the game, and run the shell.

However, the IPL ROM also stores some routines (called services) to manipulate the hardware, such as managing save data and power control. It even implements a semaphore mechanism for synchronising operations across multiple processors simultaneously. Hence, that part of the ROM is called System program.


Games

Official Sega Saturn games are loaded from the 2x CD-ROM drive. Its medium, a tailored variant of the Compact Disc (CD), has a capacity of 650 MB [23] and adheres to the ISO 9660 standard for storing data [24]. Additionally, many games include audio tracks next to the data tracks to stream uncompressed audio during gameplay.

The Compact Disc (CD)

The CD is an optical medium on which information is stored by engraving pits and lands into its polycarbonate surface [25]. An infrared beam is then directed from the drive, and the reflection produced on the CD’s surface is used to retrieve the information.

The process of converting digital information (ones and zeroes) into pits and lands and vice versa is by no means simple, especially since CDs must be robust enough to sustain day-to-day damage and intensive use, and reliable enough to store any kind of information without fear of data loss. Hence, as part of its specification, data is encoded using the Non-Return-to-Zero inverted (NRZi) scheme. This means the bitstream consists of zeroes until a land-to-pit or pit-to-land transition occurs, at which point a 1 will be appended instead.

This design works well until the reader encounters a sequence of ones (continuous pit and land changes) or long sequences of zeroes (constant pits or lands), at which the sensor will struggle to detect or keep synchronised, respectively. To address this, an additional model called Eight-to-Fourteen (ETF) modulation is applied. This inserts a handful of zeroes between the encodings, helping the sensor during the reading process.

Beyond this, further mechanisms for error detection may be added, although these are outside the scope of this article. If you’d like to explore more, check out an insightful slide presentation authored by RWTH Aachen University [26].

Development

At first, Sega did not provide comprehensive software libraries or development tools (in fact, the initial documentation was inaccurate), so the only way to achieve good performance was through harsh assembly.

Eventually, Sega released complete SDKs, hardware kits and additional libraries to ease I/O and graphics operations. Overall, games were written using a combination of C and various assembly languages targeting individual components.

I/O

Peripheral management and Real-Time Clock (RTC) are also provided by the aforementioned System Management & Peripheral Control (SMPC), which is controlled via commands sent by the SH-2s.

Expansion methods

This console bundles a considerable number of external connectors and interfaces, most of which only saw a handful of uses:


Anti-Piracy & Homebrew

In response to the easiness of cloning a CD, Sega implemented a copy protection system - along with region locking - to control the distribution of its games.

For the copy protection itself, Sega deliberately deviated from the standard CD format, making it impossible for regular CD burners to produce a perfect copy of a Saturn game. Then, as part of its verification process, the Saturn’s disc reader looks for these non-standard features.

To be more specific, Saturn discs were manufactured with an unusual data pattern pressed into the outer edge [28], creating a visible ring engraved with trademark labels. This ring sits outside the standard data area of a CD (known as the ‘Program Area’) and beyond the Lead-out section, which signals the end of readable data. As a result, conventional drives couldn’t access or replicate that part of the disc.

Inside the Saturn’s disc drive is a dedicated SH-1 processor that verifies the presence of the ring independently from the main CPUs. It uses obscure communication protocols to talk with the rest of the system. This check, however, is only performed once.

Defeat

To begin with, the classic method used for disabling the copy protection consisted in installing a mod chip, which could deceive the CD reader when any type of disc was inserted. Another technique, known as the ‘swap trick’, consisted in hot-swapping a genuine disc with a burned one immediately after the protection checks had passed… with the risk of damaging the drive.

Image
My Saturn with the Fenrir chip installed. This is an Optical Drive Emulator (ODE) that replaces the original CD drive to execute games from an SD card instead. This is one of the many modern methods used for executing Homebrew.

After the turn of the century, more sophisticated methods for running unauthorised code were discovered, for instance:


That’s all folks

Image
A Japanese Saturn I acquired to get more material for this article. While the games look fine, it was thanks to the Saturn’s enormous Homebrew library that I was able to understand the real capabilities of this console.

Contributing

This article is part of the Architecture of Consoles series. If you found it interesting then please consider donating. Your contribution will be used to fund the purchase of tools and resources that will help me to improve the quality of existing articles and upcoming ones.

Donate with PayPal
Become a Patreon

You can also buy the book editions in English. I treat profits as donations.

Book edition

A list of desirable tools and latest acquisitions for this article are tracked in here:

Acquired tools used

Alternatively, you can help out by suggesting changes and/or adding translations.


Copyright and permissions

This work is licensed under a Creative Commons Attribution 4.0 International License. You may use it for your work at no cost, even for commercial purposes. But you have to respect the license and reference the article properly. Please take a look at the following guidelines and permissions:

Article information and referencing

For any referencing style, you can use the following information:

For instance, to use with BibTeX:

@misc{copetti-saturn,
    url = {https://classic.copetti.org/writings/consoles/sega-saturn/},
    title = {Sega Saturn Architecture - A Practical Analysis},
    author = {Rodrigo Copetti},
    year = {2019}
}

or a IEEE style citation:

[1]R. Copetti, "Sega Saturn Architecture - A Practical Analysis", Copetti.org, 2019. [Online]. Available: https://classic.copetti.org/writings/consoles/sega-saturn/. [Accessed: day- month- year].

Special use in multimedia (Youtube, Twitch, etc)

I only ask that you at least state the author’s name, the title of the article and the URL of the article, using any style of choice.

You don’t have to include all the information in the same place if it’s not feasible. For instance, if you use the article’s imagery in a Youtube video, you may state either the author’s name or URL of the article at the bottom of the image, and then include the complete reference in the video description. In other words, for any resource used from this website, let your viewers know where it originates from.

This is a very nice example because the channel shows this website directly and their viewers know where to find it. In fact, I was so impressed with their content and commentary that I gave them an interview 🙂.

Appreciated additions

If this article has significantly contributed to your work, I would appreciate it if you could dedicate an acknowledgement section, just like I do with the people and communities that helped me.

This is of course optional and beyond the requirements of the CC license, but I think it’s a nice detail that makes us, the random authors on the net, feel part of something bigger.

Third-party publishing

If you are interested in publishing this article on a third-party website, please get in touch.

If you have translated an article and wish to publish it on a third-party website, I tend to be open about it, but please contact me first.


Sources / Keep Reading

Anti-Piracy

Audio

CPU

Games

Graphics

Operating System

Photography


Changelog

It’s always nice to keep a record of changes. For a complete report, you can check the commit log. Alternatively, here’s a simplified list:

2025-07-07

2024-01-30

2022-01-26

2022-01-26

2021-05-04

2020-04-10

2020-04-08

2020-04-07

2020-02-18

2019-10-30

2019-09-17

2019-09-17

2019-08-27

2019-08-09

2019-08-03