Skip to content

Instantly share code, notes, and snippets.

@akiyan
Created July 27, 2026 01:37
Show Gist options
  • Select an option

  • Save akiyan/a90d1e7d41ce89c532f29cafc356ccc2 to your computer and use it in GitHub Desktop.

Select an option

Save akiyan/a90d1e7d41ce89c532f29cafc356ccc2 to your computer and use it in GitHub Desktop.
MEGA-CD DISC FORMAT SPECIFICATIONS (SEGA, Ver 2.00 Feb 24 1992) — OCR transcription + Japanese translation. Source: SegaRetro scan.

MEGA-CD DISC FORMAT SPECIFICATIONS

(conforming to ISO9660)

SEGA ENTERPRISES, LTD.

CONFIDENTIAL — PROPERTY OF SEGA — # 66

Ver 2.00 Feb. 24-'92

About this document This is an OCR transcription of the scanned PDF Mega-CD Disc Format Specifications (26 scanned pages; 22 numbered document pages + a 4-page appended "SEGA-CD TECH BULLETIN"). The scan is stamped with a diagonal "REX SABIO" watermark and carries handwritten annotations by a previous owner; those annotations are preserved below and marked as such. The character Ø (slashed zero) is used throughout the original for the digit zero; it has been transcribed as a normal 0 in body text, but kept in the sense of the original where the original typography is meaningful.


CONTENTS

Section Page
1. OVERVIEW OF THE MEGA-CD DISC FORMAT 1
2. PHYSICAL FORMAT 2
  2-1 Partition and Configuration of Disc Areas 2
  2-2 Configuration of Tracks 2
3. LOGICAL FORMAT 5
  3-1 Sector Structure 5
  3-2 System Area 6
  3-3 Booting System 7
  3-4 File System 8
  3-5 User File Table 15
  3-6 Others 15
Appendix 1. Glossary 16
Appendix 2. System ID 18
Appendix 3. Disc ID 20
Appendix 4. Area for defining Japanese codes 22

1. OVERVIEW OF THE MEGA-CD DISC FORMAT

(document page 1)

MEGA-CDs can play the following 8 or 12cm CD discs:

  1. MEGA-CD game disc
  2. Audio CD disc (CD-DA)
  3. Karaoke CD disc (CD-G)
  4. SONY EB formatted CD disc (CD-ROM)
  5. Discs for personal computers conforming to the "YELLOW BOOK" specifications.

Discs (1) to (3) can be played with the resident programs on the MEGA-CD. To play discs (4) and (5), the special cartridge on the MEGA drive is needed.

MEGA-CD game disc features following:

  1. The physical format conforms to the specifications defined by Sony and Phillips described in the "RED BOOK" and "YELLOW BOOK".
  2. The logical format conforms to the MEGA-CD DISC FORMAT specifications (based on ISO9660).

Since the logical format complies with ISO9660, it is possible to create discs which can be used with other personal computers.

The MEGA-CD DISC FORMAT specifications (hereafter MDF) are used to create MEGA-CD game discs. This MDF features following:

  1. The system can be booted without invoking cartridges, using only the game disc.
  2. Conforming to the ISO specifications allows ease of use and facilitates third party involvement.

※ Conforming to ISO9660 (See Fig. 3-1)

The contents of logical sector numbers 0 to 15 are not normalized in the ISO9660 specifications. The system designer can use this area for programs to boot up the system or for information of protection. SDF can be used to define this area to allow the system to be booted from a MEGA-CD game disc. Logical sector numbers 16 and above are defined, conforming to ISO9660.

Transcription note: "SDF" appears in the scan; from context this is a typo for "MDF".


2. PHYSICAL FORMAT

(document page 2)

The physical format conforms to the CD specifications of Sony and Phillips which are described in the "RED BOOK" and "YELLOW BOOK." Items specifically defined by SEGA in the specifications together with important related items are described below. Other items can be found in the "RED BOOK" or "YELLOW BOOK."

2-1 Partition and Configuration of Disc Areas (See Fig. 2-1)

Beginning at disc center and moving outward, the disc is divided and configured in the sequence:

read-in area, program area, read-out area.

TOC information is written in the read-in area in accordance with the "YELLOW BOOK." TOC data is the absolute frame time when index 01 of TNOs starts. To avoid problems, the start time of the read-out area is limited to the range (10:00:00 to 60:04:00). The program area is divided and configured in the sequence:

CD-ROM area (inner), CD-DA area (outer).

The CD-ROM and CD-DA areas are further divided into inner and outer areas in order that a CD-ROM track of a CD installed in an audio CD player will not be suddenly replayed when CD-DA tracks are being replayed. Hence, the above sequence and track configuration of CD-ROM and CD-DA areas should not be not be changed.

Transcription note: the doubled "not be not be" is present in the original.

● Record area of the program area

The first frame of the program area is set at 00:00:00 (minute-second-frame), and the absolute time is measured from this point. The first two seconds of the program area are used for pause, and the first sector starts at 00:02:00. This sector is called sector #0. The last two seconds of the program area are used for pause, and the last sector is located at 60:01:74 (CD-S 20:01:74). The last frame of the program area is located at 60:03:74 (CD-S 20:03:74), two seconds after the last sector.

Therefore, the storage capacity of data is 60:00:00 (CD-S 20:00:00).

75 × 60 × 60   = 270,000 frame (sectors)   (CD-S 90,000)
270,000 × 2KB  = 540MB                     (CD-S 180MB)

2-2 Configuration of Tracks (See Fig. 2-1)

● Track number

The track number of the CD-ROM area is 01.

Track numbers on the CD-DA area can be assigned at any positions in intervals of four seconds or longer (excluding a pause at the beginning of tunes). Note that consecutive numbers should be used. (One track on the CD-DA area must be more than four seconds.)

The track number of the first tune is 02 followed by consecutive numbers up to 99.

(document page 3)

● Pause between tracks

A two second pause (muting) is required before and after the CD-ROM track, before CD-DA tracks and after the last CD-DA track in accordance with the "YELLOW BOOK." This is to suppress (during seeking) final sounds of the previous tune when it is played with an audio player.

● CD-DA track

At least one tune of data should be stored on the CD-DA area. When no CD-DA data is required, a warning message can be stored such as "This MEGA-CD GAME disc should be replayed with MEGA-CD." This informs the user who may have put the disk in an audio CD player. If one tune of data exists, such a message is not required. This is because the user may want to listen to the music.

■ Fig. 2-1 — <Allocation and Structure of Disc Area>

Outer portion of disc            Inner portion of disc            Outer portion of disc
┌──┬────────┬─────────┬──────────────────────┬──┬─────────┬────────┬──┐
│  │ CD-DA  │ CD-ROM  │          o           │  │ CD-ROM  │ CD-DA  │  │
│  │ AREA   │  AREA   │                      │  │  AREA   │  AREA  │  │
└──┴────────┴─────────┴──────────────────────┴──┴─────────┴────────┴──┘
   ↑    ↑        ↑           ↑ ↑                ↑↑    ↑        ↑    ↑
   └────┴────────┴───────────┤ └── No record    ││    │        │    │
                             └──── Read-in case ││    │        │    │
   ┌─────────────────────────────── Program area ┘    │        │    │
   ├─────────────────────────────── Read-out area ────┴────────┘    │
   └─────────────────────────────── No record ───────────────────────┘

The figure is a schematic band diagram; the ASCII rendering above preserves the layout of the original: a symmetric CD-DA / CD-ROM band arrangement with tick marks a) … m) below it, keyed to the list that follows.

<Allocation of each track>

Key Description
a) 00:00:00 (ATIME: absolute time)
b) A "pause" of 2 seconds
c) 00:02:00 (Logical Sector Number 0)
d) End of user sector
e) Post-gap (≥ 2 seconds)
f) Point of TNO changes
g) Pause (≥ 2 seconds)
h) Start position of the first piece of music on the disc
i) End position of the last piece of music on the disc (≤ 59:59:74)
j) A "pause" of 2~3 seconds
k) The start of read-out track (10:00:00 ≤ … ≤ 60:04:00)
l) Channel P remains zero for 2~3 seconds.
m) P switches between 0 and 1 in a 2 Hz ± 2% rhythm (duty cycle 50 ± 10%)
TNO: Track number

(document page 4)

<Example #1>

Inner portion of disc ←──────── Information area ────────→ Outer portion of disc
Read-in                          Program area                          Read-out
┌────────┬──┬──────────────────┬──┬──┬────────┬──┬──┬────────┐
│ 000000 │11│0000000000000000  │11│11│00000000│11│00│ 010101 │   Channel P
└────────┴──┴──────────────────┴──┴──┴────────┴──┴──┴────────┘   Channel Q

TNO            00       ←─────── 01 ───────→   ←─── 02 ───→   ←─ AA ─→
INDEX          --       0    1, 2 ..........   0  1, 2 .....       01
CD-ROM Mode   CD-DA     ←──── CD-ROM#1 ────→   ←── CD-DA#1 ─→   ← CD-DA →
                        ←─────── 01 ───────→      - - - - -      - - - -
               ↑ ↑ ↑              ↑ ↑ ↑ ↑ ↑        ↑ ↑ ↑ ↑ ↑
              a) b) c)           d) e) f) g) h)   i) j) k) l) m)

<Example #2>

Inner portion of disc ←──────── Information area ────────→ Outer portion of disc
Read-in                          Program area                          Read-out
┌────────┬──┬────────┬──┬──┬──────────┬──┬────┬──┬──┬────────┐
│ 000000 │11│ 000000 │11│11│ 00000000 │11│0000│11│00│ 010101 │   Channel P
└────────┴──┴────────┴──┴──┴──────────┴──┴────┴──┴──┴────────┘   Channel Q

TNO            00     ←─── 01 ───→  ←─── 02 ───→  ←─── 03 ───→  ←─ AA ─→
INDEX          --     0  1, 2 ....  0  1, 2 ....  0  1, 2 ....       01
CD-ROM Mode  CD-DA    ← CD-ROM#1 →  ← CD-DA#1  →  ← CD-DA#2  →  ← CD-DA →
                      ←──── 01 ──→
              ↑ ↑ ↑     ↑ ↑ ↑ ↑ ↑        ↑  ↑        ↑ ↑ ↑ ↑ ↑
             a) b) c)  d) e) f) g) h)   f) g)      i) j) k) l) m)

3. LOGICAL FORMAT

(document page 5)

This chapter defines the logical format in the CD-ROM area.

3-1 Sector Structure

● Sector (See Fig. 3-1)

CD-ROM data can be stored in all the sectors from the first sector 00:02:00 to the last sector 60:01:74.

One sector contains one frame or 2048 bytes, and the data area can hold up to 270,000 ($41EB0) sectors (CD-S 90,000). The serial sector numbers are assigned starting with 00:02:00, which means sector numbers #0 to #269,999 ($41EAF) (CD-S 89,999) are used. Sector numbers #0 to #15 are reserved for the system area while #16 to #269,999 are used for the data area.

The data area contains 539.968 Mbytes in total (CD-S 179.968). Sectors #270,000 or below are reserved for the system (CD-S 90,000).

Transcription note: "or below" appears in the scan; the intended sense is evidently "or above".

● Sector modes

The structure of each sector is mode 0, mode 1, or mode 2, which are defined in the "YELLOW BOOK." Mode 1 and mode 2 sectors cannot coexist in one track. Therefore, the CD-ROM track TNO=1 is in mode 1.

● Address

For mode 1 sectors, the first byte of sector #0 is made address 0 followed by consecutive addresses assigned in byte units.

Since 2048 bytes makes up one sector, the last address is 552,959,999 ($20F57FFF) (CD-S 184,319,999: $0AFC7FFF). For CD-DA frames of mode 2 sectors, the first address starts after these 2048 bytes.

■ Fig. 3-1 — <Structure of Sector>

absolute time
   00:02:00                 00:02:16                    60:01:74
   ┌───────────────────┬──────────────────────────────────┬──────────┐
LSN│ #0~#15            │ #16~#269999                      │          │
   │ SYSTEM AREA       │ DATA AREA                        │ RESERVED │
MDF│ Boot System       │ VD and Files (conforming to ISO9660) │       │
   └───────────────────┴──────────────────────────────────┴──────────┘
address
   0                   32768($8000)              552959999 ($20F57FFF)

LSN: Logical Sector Number
VD:  Volume Descriptor

3-2 System Area

(document page 6)

● System area (See Fig. 3-2)

The system area contains bootstrap information, initial programs, and file system programs. The booting sector is located on sector #0, and the system program sectors are on sectors #1 to #15.

(When the system programs occupy more than 30 Kbytes, system program sectors can be created in areas other than the system sector area. However, sectors that are both above #15 and below those used for VD cannot be used for this purpose.

Transcription note: the opening parenthesis is never closed in the original.

The booting sector contains following:

  • The system ID
  • Disk ID
  • Initial program code

One purpose of the system ID is to identify MEGA-CD game discs. One use of the disc ID is for controlling quality. The initial programs which contain the file system code and other data are always read at the beginning.

■ Fig. 3-2 — <The Structure of the System Area>

Address
$000000  ┌──────────────────────┬──────────────────────────────────────┐
         │ System ID            │                                      │
$000100  ├──────────────────────┤  sector #0            Boot sector    │
         │ DISC ID              │                                      │
$000200  ├──────────────────────┤                                      │
         │ Initial Program Code │                                      │
$000800  ├──────────────────────┼──────────────────────────────────────┤
         │ System Program       │  sector #1~15  System Program sector │
$008000  ├──────────────────────┼──────────────────────────────────────┤
         │ VD                   │                                      │
         │ Directory            │  DATA AREA                           │
         │ Path Table           │                                      │
         │ User File 0          │                                      │
         │ User File 1          │                                      │
         │      :               │                                      │
$20F57FFF└──────────────────────┴──────────────────────────────────────┘

Handwritten annotation in the scan: $001000 is written in the left margin next to the $000800 row (i.e. the System Program start address is corrected from $000800 to $001000). This matches the correction described in the appended SEGA-CD Tech Bulletin, below.


3-3 Booting System

(document page 7)

● Booting programs (See Fig. 3-3)

Booting programs are stored on the MEGA-CD. The system loads the booting sector, confirms a MEGA-CD disc is installed, and then loads the initial programs. The initial programs are usually stored in the region with byte addresses $200 to $600 in system sector #0. Hence, quick booting results since re-loading is not required.

● Initial programs

Initial programs are stored on disc, loaded into memory, and executed. The initial programs display the company's logo while they load the system programs. After the system programs are loaded, system control is taken over by the application software.

● System programs

System programs are required to use CD-ROM discs which contain file system information or other data. The file system is designed for specific discs so that application software access speed is maximized. Application software may contain start-up, main programs, etc.

■ Fig. 3-3 — <Figure of Boot System Image>

                             CONTROL
  ┌──────────────┐  ────────────────────────────────→ ┌────────────────┐
  │   [ROM]      │  LOAD                              │   [CD-ROM]     │
  │ BOOT PROGRAM │───────┐        ┌──────────────────→│  INIT PROGRAM  │
  └──────────────┘  JMP  │        │   ┌──────────────→│ SYSTEM PROGRAM │
         │               ↓        │   │               │  APPLICATION   │
         │        ┌──────────────┐│   │               └────────────────┘
         │        │   [RAM]      ││   │
         │        │ INIT PROGRAM │┘   │
         │        └──────────────┘    │
         │ JMP           │ LOAD       │
         │               ↓        CONTROL
         │        ┌────────────────┐  │
         └───────→│    [RAM]       │──┘
                  │ SYSTEM PROGRAM │
                  └────────────────┘
              CALL      │ LOAD
                        ↓
                  ┌────────────────┐
                  │    [RAM]       │
                  │  APPLICATION   │
                  └────────────────┘

3-4 File System

(document page 8)

The format conforms to the specifications defined in ISO9660.

Abbreviations

Abbr. Meaning
VD Volume Descriptor
LSN Logical Sector Number
BP Byte Pointer
RBP Relative Byte Pointer
TP Type
N Numerical value
NL Least Significant Byte First
NM Most Significant Byte First
NB Both-type orders
ND Any digit from ZERO to NINE
A A-characters (20-22/25-3F/41-5A/5F)
D D-characters (30-39/41-5A/5F)
DS D-characters, SEPARATOR1, SEPARATOR2 (2E/3B)
DE Directory Entry
00 Zero fill
A1 A1-characters ; A-characters + Kanji
D1 D1-characters ; D-characters + Kanji
D1S D1-characters, SEPARATOR1, SEPARATOR2 (2E/3B)

● Volume Descriptor

<Boot Record>

BP TP Field Name Notes
1 N Volume Descriptor Type ; VD = 0
2 – 6 Standard Identifier ; 'CD001'
7 N Volume Descriptor Version ; VD version = 1
8 – 39 A A Boot System Identi…
40 – 71 A A Boot Identifier
72 – 2048 Boot System Use ; not specified

Transcription note: "A Boot System Identi" is cut off in the original scan; read as "…Identifier".

Boot Record sample:

Size Examples Notes
1 0 ; Fixed
5 'CD001' ; Fixed
1 01 ; Fixed
32 'SEGA MEGA CD ' ; Fixed (' ' : $20)
32 'Boot identifier (Application) ' ; User supplied
1977 boot system code ; User supplied

<Volume Descriptor Set Terminator>

BP TP Field Name Notes
1 N Volume Descriptor Type ; VD = 255 (end)
2 – 6 Standard Identifier ; 'CD001'
7 N Volume Descriptor Version ; VD version = 1
8 – 2048 (Reserved for future standardization) ; (00) byte

(document page 9)

<Primary Volume Descriptor>

BP TP Field name Notes
1 – N Volume Descriptor Type ; VD = 1 (Normal)
2 – 6 Standard Identifier ; 'CD001'
7 N Volume Descriptor Version ; VD version = 1
8 00 Unused Field ; (00) byte
9 – 40 A System Identifier ;
41 – 72 D Volume Identifier ;
73 – 80 00 Unused Field ; (00) byte
81 – 88 NB Volume Space Size ;
89 – 120 00 Unused Field ; (00) byte
121 – 124 NB Volume Set Size ;
125 – 128 NB Volume Sequence Number ;
129 – 132 NB Logical Block Size ;
133 – 140 NB Path Table Size ;
141 – 144 NL Location of Occurrence of Type L Path Table ;
145 – 148 NL Location of Optional Occurrence of Type L Path Table ;
149 – 152 NM Location of Occurrence of Type M Path Table ;
153 – 156 NM Location of Optional Occurrence of Type M Path Table ;
157 – 190 DE Directory Record for Root Directory ;
191 – 318 D Volume Set Identifier ;
319 – 446 A Publisher Identifier ;
447 – 574 A Data Preparer Identifier ;
575 – 702 A Application Identifier ;
703 – 739 DS Copyright File Identifier ;
740 – 776 DS Abstract File Identifier ;
777 – 813 DS Bibliographic File Identifer ;
814 – 830 ND Volume Creation Date and Time ;
831 – 847 ND Volume Modification Date and Time ;
848 – 864 ND Volume Expiration Date and Time ;
865 – 881 ND Volume Effective Date and Time ;
882 N File Structure Version ;
883 00 (Reserved for future standardization) ; (00) byte
884 – 1395 Application Use ; not specified
1396 – 2048 (Reserved for future standardization) ; (00) byte

(document page 10)

<Primary Volume Descriptor Sample>

Size Examples Notes
1 01 ; Fixed
5 'CD001' ; Fixed
1 01 ; Fixed
1 00 ; Fixed
32 'SEGA MEGA CD ' ; Fixed (' ' : $20)
32 'Volume Identifier ' ; User supplied
8 0000000000000000 ; Fixed
8 1EB00004, 00041EB0 ; Auto Write ( ≤ 00041EB0 )
32 00, 00, 00, 00, ……………… 00 ; Fixed
4 0100, 0001 ; Fixed
4 0100, 0001 ; Fixed
4 0008, 0800 ; Fixed
8 XXXXXXXX, XXXXXXXX ; Auto write
4 XXXXXXXX ; Auto write
4 00000000 ; Fixed
4 XXXXXXXX ; Auto write
4 00000000 ; Fixed
34 ……… ; Auto write
128 'Volume Set Identifier …' ; User supplied
128 'Publisher Identifier …' ; User supplied
128 'Data Preparer Identifier …' ; User supplied
128 ' ' ; Fixed
37 'Copyright File Identifier …' ; User supplied
37 ' ' ; User supplied
37 ' ' ; User supplied
17 00000000 00000000 00000000 00000000 00 ; Fixed
17 00000000 00000000 00000000 00000000 00 ; Fixed
17 00000000 00000000 00000000 00000000 00 ; Fixed
17 00000000 00000000 00000000 00000000 00 ; Fixed
1 01 ; Fixed
1 00 ; Fixed
512 00,00,00,00, ……………… 00 ; Fixed
653 00,00,00,00, ……………… 00 ; Fixed

(document page 11)

<Supplementary Volume Descriptor>

BP TP Field Name Notes
1 N Volume Descriptor Type ; VD = 2 (supplement)
2 – 6 Standard Identifier ; 'CD001'
7 N Volume Descriptor Version ; VD version = 1
8 00 Volume Flags ;
9 – 40 A1 System Identifier ;
41 – 72 D1 Volume Identifier ;
73 – 80 00 Unused Field ; (00) byte
81 – 88 NB Volume Space Size ;
89 – 120 00 Escape Sequences ; 32 byte
121 – 124 NB Volume Set Size ;
125 – 128 NB Volume Sequence Number ;
129 – 132 NB Logical Block Size ;
133 – 140 NB Path Table Size ;
141 – 144 NL Location of Occurrence of Type L Path Table ;
145 – 148 NL Location of Optional Occurrence of Type L Path Table ;
149 – 152 NM Location of Occurrence of Type M Path Table ;
153 – 156 NM Location of Optional Occurrence of Type M Path Table ;
157 – 190 DE Directory Record for Root Directory ; 34 byte
191 – 318 D1 Volume Set Identifier ;
319 – 446 A1 Publisher Identifier ;
447 – 574 A1 Data Preparer Identifier ;
575 – 702 A1 Application Identifier ;
703 – 739 D1S Copyright File Identifier ;
740 – 776 D1S Abstract File Identifier ;
777 – 813 D1S Bibliographic File Identifer ;
814 – 830 ND Volume Creation Date and Time ;
831 – 847 ND Volume Modification Date and Time ;
848 – 864 ND Volume Expiration Date and Time ;
865 – 881 ND Volume Effective Date and Time ;
882 N File Structure Version ;
883 00 (Reserved for future standardization) ; (00) byte
884 – 1395 Application Use ; not specified
1396 – 2048 (Reserved for future standardization) ; (00) byte

(document page 12)

<Supplementary Volume Descriptor Example>

Size Examples Notes
1 02 ; Fixed
5 'CD001' ; Fixed
1 01 ; Fixed
1 00(JIS)   or   01(Shift JIS) ; User supplied
32 'SEGA MEGA CD ' ; Fixed (' ' : $20)
32 'Volume name ' ; User supplied
8 0000000000000000 ; Fixed
8 1EB00004, 00041EB0 ; Auto Write ( ≤ 00041EB0 )
32 00, 00, 00, 00, ……………… 00 ; User supplied
4 0100, 0001 ; Fixed
4 0100, 0001 ; Fixed
4 0008, 0800 ; Fixed
8 XXXXXXXX, XXXXXXXX ; Auto write
4 XXXXXXXX ; Auto write
4 00000000 ; Fixed
4 XXXXXXXX ; Auto write
4 00000000 ; Fixed
34 ……… ; Auto write
128 'Volume set identifier …' ; User supplied
128 'Publisher identifier …' ; User supplied
128 'Data preparer identifier …' ; User supplied
128 ' ' ; Fixed
37 'Copyright file identifier …'   or ' ' ; User supplied
37 'Abstract file identifier …'   or ' ' ; User supplied
37 'Bibliographic file identifier …'   or ' ' ; User supplied
17 'yyyymmddhhmmssss', XX   or 00000000 00000000 00000000 00000000 00 ; User supplied
17 'yyyymmddhhmmssss', XX   or 00000000 00000000 00000000 00000000 00 ; User supplied
17 00000000 00000000 00000000 00000000 00 ; Fixed
17 00000000 00000000 00000000 00000000 00 ; Fixed
1 01 ; Fixed
1 00 ; Fixed
512 00,00,00,00, ……………… 00 ; Reserved
653 00,00,00,00, ……………… 00 ; Fixed

(document page 13)

● Directory

Directories are used to manage a specially structured file system. The format defined by ISO9660 is used.

<Format of a Directory Record>

BP TP Field Name Notes
1 N Length of Directory Record (LEN_DR) ;
2 N Extended Attribute Record Length ; = 0
3 – 10 NB Location of Extent ;
11 – 18 NB Data Length ;
19 – 25 N Recording Date and Time ;
26 File Flags ;
27 N File Unit Size ; = 0
28 N Interleave Gap Size ; = 0
29 – 32 NB Volume Sequence Number ; = 1
33 N Length of File Identifier (LEN_FI) ; (MAX 12)
34 – (33+LEN_FI) D1S File Identifier ;
(34+LEN_FI) 00 Padding Field ; (00) byte
(LEN_DR − LEN_SU + 1) – LEN_DR System Use ; LEN_SU bytes = 0

NOTE: LEN_SU denotes length of System Use field.

<Recording Date and Time>

RBP TP Field Name Notes
1 N Number of years since 1900 ;
2 N Month 1 to 12 ;
3 N Day 1 to 31 ;
4 N Hour 0 to 23 ;
5 N Minute 0 to 59 ;
6 N Second 0 to 59 ;
7 N Offset from Greenwich Mean Time in number of 15 min intervals from −48(West) to +52(East) ; = 0

<File Flags>

Bit Meaning Notes
bit 0 Existence ;
bit 1 Directory ;
bit 2 Associated File ;
bit 3 Record ;
bit 4 Protection ;
bit 5 Reserved ;
bit 6 Reserved ;
bit 7 Multi-Extent ; = 0

(document page 14)

● Path table

The format defined by ISO9660 is used.

<Path Table Record>

BP TP Field Name Notes
1 N Length of Directory Identifier (LEN_DI) ;
2 N Extended Attribute Record Length ; = 0
3 – 6 N Location of Extent ;
7 – 8 N Parent Directory Number ;
9 – (8+LEN_DI) D1 Directory Identifier ;
(9+LEN_DI) 00 Padding Field ; (00) byte

3-5 User File Table

(document page 15)

User files reside on the user sector area. Each file is always consecutively configured. The lower 11-bits of the file's start address are always set to 0 (starting on a sector boundary). The file sizes are written in the directory in bytes. The blank space in the last sector of the file is filled with $FF. The $FF are read and stored in the buffer, but never passed to the application software.

3-6 Others

● Restrictions on the directory structure

The following restrictions apply to the directory structure to implement fast access and save memory. The restrictions are valid for the version 1.00 file system. Since the file system is fixed on disc, fast access is realized by storing the file path table on memory. This feature is quite different from other systems.

  1. The same restrictions as for MS-DOS apply for filenames.
  2. Usually subdirectories are not used. When they are used, the version of the file system should be upgraded.
  3. The number of files on disc is fixed in the file system. This allows the path table to be kept in a special file on RAM, thus eliminating a useless buffer.

● Multi-volume

This is not supported by version 1.00.

● Interleaf in the ISO specifications

This is not supported by version 1.00. This function must be implemented by application programs.

● Booting sector

The booting sector is #0 in the standard settings. Spare copies of the booting sector can be stored in #1 to #15. However, this must be done in such a way that the system program sectors are consecutive.

● Line speed

The line speed of MEGA-CD game discs is fixed at 1.25m/sec to improve the accuracy of track jump access and increase the seeking speed.


Appendix 1. Glossary

(document pages 16–17)

CD-DA Compact Disc Digital Audio. CD-DA area

CD-DA Area Digital Audio data is written on this CD-DA Area. Since the data is written conforming to "RED BOOK," the CD-DA Area can be played with a audio CD player.

CD-G (CD-Graphics) Karaoke CD disc

CD-ROM Area Data like programs, graphics, sound, etc. are written in this area. Since the data is written conforming to the logical format, the data can be load easily.

CD-S (CD Single) 8cm CD disc

DISC Physical disc. It is used to distinguish from the floppy disk. So-called CD media.

ISO9660 The international standard that is used for the logical format of CD-ROM.

MEGA-CD CD-ROM drive for MEGA-drive. MEGA-CD is used to supply game programs or the like via CD-ROM disc.

P CODE The data in P channel of the Subcode. P code conforms to "RED BOOK" and indicates the pause status.

Q CODE The data in Q channel of the Subcode. Q code conforms to "RED BOOK" and used for absolute time, relative time, song number, etc.

RED BOOK, YELLOW BOOK The specification about the physical format of CD-DA and CD-ROM.

MEGA-CD DISC FORMAT Logical format for MEGA-CD conforming to ISO9660.

TOC Table of contents

SUB-CODE Sub-code is the data written in a gap between the CD data. 1 sector has 96 bytes. Each bit corresponds to P-W channel.

SECTOR One sector is made up of one frame or 2048 bytes (2336 bytes for mode 2). This is the standard unit to read CD-ROM data.

ABSOLUTE TIME Absolute time applies the address on DISC. Data is written continuously in unit of minutes, seconds and frame. Program area is accessed according to the absolute time.

TRACK Track is the recording area for a song defined in the CD-DA. The length is changable. 1 to 99 (decimal system) track can be used to write. Track No. 0 is used to write the TOC information of read in area.

VOLUME Volume means all the data written in a DISC.

VOLUME SET Volume set means all the data written in DISCS if the series of data is written in more than one DISC.


Appendix 2. System ID

(document page 18)

System ID area serves to identify a SEGA disc and gives boot up information SEGA. (Also see Fig. A-2)

● Disc identifier

Disc identifier to identify MEGA-CD discs. This is used to distinguish the MEGA-CD disc from other CD-ROM discs and audio CD discs. The booting programs check the installed disc.

Identifier "SEGADISCSYSTEM" means a SEGA system disc, and Identifier "SEGADATADISC" means a data disc.

● SEGA system disc

This is MEGA-CD Disc Format formatted and contains the booting program. The file system can be used.

● Data disc

This is MEGA-CD Disc Format formatted and contains no booting program. The file system can be used.

● Volume name

Disc names in ASCII code.

● Volume version

The version number is indicated here in 4-digit BCD notation. $00 to $99 are used in the pre-released version (write-once disc) while $100 is used in the first released version.

● Volume type

The medium type is indicated. The CD-ROM is read-only. (Bit0=1, other bits are set to 0.)

● System name, version

Name and version for identifying the system programs.

● IP address / SP address

              │ bit31,30 │ 29 ←──────→ 11 │ 10 ←────────────→ 0 │
● IP address  │    0     │       0        │              $200   │
● SP address  │    0     │   Sector #2    │   Lower 11-bits: 0  │
Field Value
● IP load size Load size : (Usually $600)
● SP load size Load size : (Usually $7800)
● IP entry address Program start offset address
● SP entry address Program start offset address
● IP work RAM size Required work RAM size in bytes
● SP work RAM size Required work RAM size in bytes

Handwritten annotation in the scan: $7200 is written beside the SP load size line, correcting "Usually $7800". The appended Tech Bulletin (below) confirms $7800 is wrong and should be $7200.

※ IP : Initial program ※ SP : System program

(document page 19)

■ Fig. A-2 — <System ID>

              $04              $08              $0C
$000  ┌──────────────────────────────────────────────────────────┐
      │                    DISC attribute                        │
$010  ├──────────────────────────────────┬───┬────────┬──────────┤
      │           Volume name            │ 0 │ Volume │ Volume   │
$020  ├──────────────────────────────────┼───┤ System │ Type     │
      │           System name            │ 0 │ System │    0     │
$030  ├───────────┬──────────────┬───────┴───┤ VER.   │          │
      │ IP address│ size of IP   │ entry address of IP│ size of  │
      │           │ load         │                    │ IP work  │
$040  ├───────────┼──────────────┼────────────────────┤ RAM      │
      │ SP address│ size of SP   │ entry address of SP│ size of  │
      │           │ load         │                    │ SP work  │
$050  ├───────────┴──────────────┴────────────────────┤ RAM      │
      │            system reservation area            │ 176 BYTE │
$0FF  └───────────────────────────────────────────────┴──────────┘

The figure in the original is a byte-map table; the layout above reproduces the original's row boundaries ($000, $010, $020, $030, $040, $050, $0FF) and column boundaries ($04, $08, $0C). "176 BYTE" labels the size of the system reservation area.


Appendix 3. Disc ID

(document page 20)

DISC ID serves to manage the quality of discs as products and to test products. The contents are managed by SEGA. (Also see Fig. A-3).

● Hardware designation

Platform String
For the MEGA DRIVE 'SEGA MEGA DRIVE'
For the GENESIS 'SEGA GENESIS'

● Company name or Company code

Input '(C)' and four characters for company name or company code here.

Developer Format
Intercompany or outside developer (C) SEGA
Third party developer (C) T-XX (Company code)

● Input domestic-version of the game title

● Input overseas-version of the game title

● Code representing disc type, product code and version

GM (Game), AI (Educational) — Example: 'GM T-12345 -00'

Product codes are pre-designated for each game. Version numbers increase with every change that is made following the initial release of a game.

● The control information identifies the type(s) of I/O device(s) used to support game-play. The control information codes (ASCII) are as follows:

Device Code
Master System Joystick O
MEGA Drive (Genesis) Joystick J
Keyboard K
Serial I/O (RS232C) R
Printer P
Tablet T
Trackball B
Paddle controller V
Analog joystick A
Mouse M

● Modem info (See MEGA DRIVE (GENESIS) MANUAL)

'MO', 'Company code', 'xx,y', 'zz'

Field Meaning
xx Game No.
y Version No.
zz Modem info
zz Region Note
10 Only Japan With Mike
30 Only Overseas With Mike
50 Japan & Overseas With Mike

(document page 21)

● Regional compatibility is designated using the codes listed below:

Region Code
Japan J
USA U
Europe E

● SPACE

Prohibited to use.

● For any open addresses, fill in with the ASCII code-equivalent of "SPACE" (20H).

● See "GENESIS SOFTWARE DEVELOPMENT MANUAL" for detail of each item.

■ Fig. A-3 — <DISC ID>

100H ┌──────────────────────────────────────────────┬───────────────┐
     │              Hardware designation            │               │
110H ├──────────────────────────────────────────────┴───────────────┤
     │              Company code, Date                              │
120H ├──────────────────────────────────────────────────────────────┤
     │              Domestic game title                             │
150H ├──────────────────────────────────────────────────────────────┤
     │              Overseas game title                             │
180H ├──────────────────────────────────────┬───────────────────────┤
     │ Disc type, Product No., Version      │        Space          │
190H ├──────────────────────────────────────┴───────────────────────┤
     │ I/O info                                                     │
1A0H ├──────────────────────────────────────────────────────────────┤
     │ Space                                                        │
1B0H ├──────────────────────────────────────┬───────────────────────┤
     │ Space                                │     Modem info        │
1C0H ├──────────────────┬───────────────────┴───────────────────────┤
     │ Modem info       │              Space                        │
1D0H ├──────────────────┴───────────────────────────────────────────┤
     │ Space                                                        │
1F0H ├──────────────────────────────────────────────────────────────┤
     │ Regional compatibility                                       │
1FFH └──────────────────────────────────────────────────────────────┘

Appendix 4. Area for defining Japanese codes

(document page 22)

● Kanji

The shift codes in Figure A-4 are used for kanji character codes.

■ Fig. A-4 — <Definition of Japanese code area>

        (1st byte)                    (2nd byte)
       00   20 21   40      60   7E 80   A0     C0     E0    FF
  00  ┌────┬─┬──────────────────┬─┬────────────────────────────┐
      │      ↓ Kanji space = 2020                              │
  21  │    ┌─┐                                                 │
      │    └─┘                                                 │
      │      ┌────────────────┐                                │
  40  │      │ 2121           │                                │
      │      │                │                                │
  5E  │      │                │                                │
  5F  │      │   JIS code     │                                │
  60  │      │                │                                │
      │      │                │                                │
  7E  │      │           7E7E │                                │
  80  │      └────────────────┘                                │  80
      │  Space code                                            │  81
      │  = 8140 →  ┌──────────┐   ┌───────────────────────┐    │
      │            │ 8140     │   │ 8180                  │    │
  A0  │            │     9F7E │   │                  9FFC │    │  9F
      │            └──────────┘   └───────────────────────┘    │
  C0  │                                  ↑                     │
      │                            Shift JIS code              │
      │                                  ↓                     │
  E0  │            ┌──────────┐   ┌───────────────────────┐    │  E0
      │            │ E040     │   │ E080                  │    │
      │            │     FC7E │   │                  FCFC │    │  FC
  FF  └────────────┴──────────┴───┴───────────────────────┴────┘  FF
                   40      7E 80                          FC   FF
                          7E
                   → control code (without DEL)
Area Ranges
1 byte code area 20-7E, A0-E0
2 byte code area 2020, 2121-7E7E
8140-9F7E, 8180-9FFC
E040-FC7E, E080-FCFC


Appendix (appended to the scan): SEGA-CD TECH BULLETIN

(scan pages 25–26; not part of the numbered specification. Handwritten "Rex Sabio" appears at the top of the first page.)

SEGA-CD TECH BULLETIN

To: Sega-CD Developers
From: S. Bayless
Date: 6/16/92
CC: J. Huether, T. Reuterdahl
Subject: The U.S. BIOS

Although you haven't seen it yet, SOJ is currently revising the BIOS for the U.S. market. While most of the changes are cosmetic, there are a couple that aren't.

Security Code

The block of code that puts up the Sega logo, prints a copyright message and plays the little "Segaaa" sound bite has been changed significantly. This has two effects. First, you'll be getting an assembly language file with a bunch of DC.B's in it which you'll need to put at the beginning of your IP before the new ROM will accept it. Second, you'll need to change the values stored in the ID Block of your boot sector.

Boot Sector

Because the security code has gotten quite a bit bigger, you'll almost certainly have to change your System ID to handle an IP larger than $600 bytes. The "normal" System ID shown on pages 18 and 19 of the Mega-CD Disk Format Manual shows the IP and SP addresses like this:

        ;Disk Address,Load Size,Entry Offset,Work RAM
  DC.L  $00000200,$00000600,$00000000,$00000000    ;IP
  DC.L  $00000800,$00007800,$00000000,$00000000    ;SP

Note that IP starts at $200, which is just past the ID Blocks, and SP starts at $800 which is the beginning of Sector 1. (Remember, each sector is $800 bytes long.) Incidentally, the $7800 in the manual is wrong. It should be $7200, since it's intended equal the number of bytes remaining between the end of IP and the end of sector 15.

With the new security code, IP spills over into Sector 2 and the new System Area structure (see page 6 of the Mega-CD Disk Format Manual) looks like this:

$000000   System ID      Sector #0        Boot Sector
$000100   Disc ID
$000200   IP Code
────────────────────────────────────────────────────
$001000   SP Code        Sector #1~#15    SP Sector

$008000   VD                              Data Area
          Directory
          Path Table
          User File 0
          User File 1
                :

The original BIOS seems to have been hard wired for an IP that stayed within sector 0, so you have to kind of lie to it when IP gets bigger than that. According to SOJ, the value in the IP Start field should point to the beginning of the first byte in IP after the first $600 bytes. This would mean that you'd always use $800 (since anything smaller would fit in sector 0 and you wouldn't have to mess with any of this in the first place). It also implies that IP can't extend beyond the end of sector 1, but I haven't confirmed that yet.

The value in the IP Load Size field should be equal to the size of IP − $600. In my first attempt with this, I just padded IP out to the end of sector 1, so the length I used was $800, which translates to "load the whole sector".

Finally, you'll need to change the SP Start field to reflect the fact that it now begins in the next sector. The value here should be $1000, i.e. the beginning of sector 2. You may also want to change the SP Load Size field to reflect its smaller maximum size, assuming you pad the thing out like some people do.

So, the new "normal" System ID would contain entries that looked something like this:

        ;Disk Address,Load Size,Entry Offset,Work RAM
  DC.L  $00000800,$00000800,$00000000,$00000000    ;IP
  DC.L  $00001000,$00007000,$00000000,$00000000    ;SP

Source: Mega-CD_Disc_Format_Specifications.pdf (SegaRetro, revision 20190509114738), 26 pages, image-only scan. Transcribed by OCR + manual verification.

MEGA-CD ディスクフォーマット仕様書

(ISO9660 準拠)

株式会社セガ・エンタープライゼス

CONFIDENTIAL — PROPERTY OF SEGA — # 66

Ver 2.00 1992年2月24日

本ドキュメントについて スキャン PDF『Mega-CD Disc Format Specifications』(全26スキャンページ=本文22ページ+巻末に付属する 4ページの「SEGA-CD TECH BULLETIN」)を OCR で書き起こした英語版 MEGA-CD_Disc_Format_Specifications.md の日本語訳です。 スキャン原本には斜めに "REX SABIO" の透かしが入っており、旧所有者による手書きの書き込みがあります。 手書き注記はその旨を明示したうえで本文に残しています。 原文の誤記・脱字はそのまま訳出し、訳注として補足しています。 技術用語(Volume Descriptor、Path Table など)は原語のまま残し、訳語を併記しています。


目次

ページ
1. MEGA-CD ディスクフォーマットの概要 1
2. 物理フォーマット 2
  2-1 ディスク領域の分割と構成 2
  2-2 トラックの構成 2
3. 論理フォーマット 5
  3-1 セクタ構造 5
  3-2 システム領域 6
  3-3 ブートシステム 7
  3-4 ファイルシステム 8
  3-5 ユーザファイルテーブル 15
  3-6 その他 15
付録1. 用語集 16
付録2. システム ID 18
付録3. ディスク ID 20
付録4. 日本語コード定義領域 22

1. MEGA-CD ディスクフォーマットの概要

(本文1ページ)

MEGA-CD では、以下の 8cm または 12cm の CD ディスクを再生できます。

  1. MEGA-CD ゲームディスク
  2. オーディオ CD ディスク(CD-DA)
  3. カラオケ CD ディスク(CD-G)
  4. SONY EB フォーマットの CD ディスク(CD-ROM)
  5. 「YELLOW BOOK」仕様に準拠したパーソナルコンピュータ用ディスク

(1)〜(3) のディスクは、MEGA-CD 内蔵の常駐プログラムで再生できます。(4) および (5) のディスクを再生するには、MEGA DRIVE 用の専用カートリッジが必要です。

MEGA-CD ゲームディスクは、以下の特徴を持ちます。

  1. 物理フォーマットは、ソニーとフィリップスが「RED BOOK」および「YELLOW BOOK」で規定した仕様に準拠する。
  2. 論理フォーマットは、MEGA-CD ディスクフォーマット仕様(ISO9660 ベース)に準拠する。

論理フォーマットが ISO9660 に準拠しているため、他のパーソナルコンピュータでも使用できるディスクを作成することが可能です。

MEGA-CD ディスクフォーマット仕様(以下 MDF)は、MEGA-CD ゲームディスクの作成に用います。MDF は以下の特徴を持ちます。

  1. カートリッジを介さず、ゲームディスクのみでシステムをブートできる。
  2. ISO 仕様に準拠することで、使いやすさが向上し、サードパーティの参入が容易になる。

※ ISO9660 への準拠について(図 3-1 参照)

論理セクタ番号 0〜15 の内容は、ISO9660 仕様では標準化(規定)されていません。システム設計者はこの領域を、システムをブートさせるためのプログラムやプロテクト情報のために使用できます。MEGA-CD ではこの領域を定義することで、MEGA-CD ゲームディスクからのブートを可能にしています。論理セクタ番号 16 以降は ISO9660 に準拠して定義されます。

訳注: 原文では "SDF" と記載されていますが、文脈から "MDF" の誤記です。


2. 物理フォーマット

(本文2ページ)

物理フォーマットは、「RED BOOK」および「YELLOW BOOK」に記載されたソニー/フィリップスの CD 仕様に準拠します。本仕様書ではセガが独自に規定した項目と、関連する重要項目のみを以下に記述します。それ以外の項目については「RED BOOK」または「YELLOW BOOK」を参照してください。

2-1 ディスク領域の分割と構成(図 2-1 参照)

ディスクは中心から外周に向かって、以下の順に分割・構成されます。

リードイン領域 → プログラム領域 → リードアウト領域

TOC 情報は「YELLOW BOOK」に従ってリードイン領域に書き込まれます。TOC データは、各 TNO(トラック番号)のインデックス 01 が開始する絶対フレーム時間です。トラブルを避けるため、リードアウト領域の開始時間は 10:00:00〜60:04:00 の範囲に制限されます。プログラム領域は、以下の順に分割・構成されます。

CD-ROM 領域(内周側) → CD-DA 領域(外周側)

CD-ROM 領域と CD-DA 領域はさらに内周/外周に分けられます。これは、オーディオ CD プレーヤーに入れた CD の CD-DA トラックを再生している最中に、CD-ROM トラックが突然再生されてしまうことを防ぐためです。したがって、上記の順序および CD-ROM 領域・CD-DA 領域のトラック構成を変更してはなりません。

訳注: 原文は "should not be not be changed" と否定が重複しています。

● プログラム領域の記録領域

プログラム領域の先頭フレームは 00:00:00(分-秒-フレーム)に設定され、絶対時間はこの点から計測されます。プログラム領域の最初の 2 秒はポーズ(無音)に使われ、最初のセクタは 00:02:00 から始まります。このセクタをセクタ #0 と呼びます。プログラム領域の最後の 2 秒もポーズに使われ、最終セクタは 60:01:74(CD-S では 20:01:74)に位置します。プログラム領域の最終フレームは、最終セクタの 2 秒後にあたる 60:03:74(CD-S では 20:03:74)に位置します。

したがって、データの記録容量は 60:00:00(CD-S では 20:00:00)となります。

75 × 60 × 60   = 270,000 フレーム(セクタ)   (CD-S: 90,000)
270,000 × 2KB  = 540MB                        (CD-S: 180MB)

2-2 トラックの構成(図 2-1 参照)

● トラック番号

CD-ROM 領域のトラック番号は 01 です。

CD-DA 領域のトラック番号は、4 秒以上の間隔であれば任意の位置に割り当てられます(曲頭のポーズは除く)。ただし連番でなければなりません。(CD-DA 領域の 1 トラックは 4 秒を超える必要があります。)

最初の曲のトラック番号は 02 で、以降 99 まで連番となります。

(本文3ページ)

● トラック間のポーズ

「YELLOW BOOK」に従い、CD-ROM トラックの前後、CD-DA トラックの前、および最終 CD-DA トラックの後に、2 秒間のポーズ(ミューティング)が必要です。これは、オーディオプレーヤーで再生した際に、(シーク中に)前の曲の末尾の音が漏れるのを抑えるためです。

● CD-DA トラック

CD-DA 領域には、少なくとも 1 曲分のデータを記録すべきです。CD-DA データが不要な場合は、「この MEGA-CD ゲームディスクは MEGA-CD で再生してください」といった警告メッセージを記録できます。これはオーディオ CD プレーヤーにディスクを入れてしまったユーザーへの案内になります。1 曲分のデータがある場合、このようなメッセージは不要です。ユーザーが音楽を聴きたい場合があるためです。

■ 図 2-1 — 〈ディスク領域の割り当てと構造〉

ディスク外周側                  ディスク内周側                  ディスク外周側
┌──┬────────┬─────────┬──────────────────────┬──┬─────────┬────────┬──┐
│  │ CD-DA  │ CD-ROM  │          o           │  │ CD-ROM  │ CD-DA  │  │
│  │ 領域   │  領域   │                      │  │  領域   │  領域  │  │
└──┴────────┴─────────┴──────────────────────┴──┴─────────┴────────┴──┘
   ↑    ↑        ↑           ↑ ↑                ↑↑    ↑        ↑    ↑
   └────┴────────┴───────────┤ └── 未記録        ││    │        │    │
                             └──── リードイン    ││    │        │    │
   ┌─────────────────────────────── プログラム領域 ┘    │        │    │
   ├─────────────────────────────── リードアウト領域 ───┴────────┘    │
   └─────────────────────────────── 未記録 ──────────────────────────┘

原図は帯状の模式図です。上記の ASCII 図は、CD-DA/CD-ROM が左右対称に配置される原図の レイアウトと、下部の a)〜m) の指示線を再現したものです。

〈各トラックの割り当て〉

記号 内容
a) 00:00:00(ATIME: 絶対時間)
b) 2 秒の「ポーズ」
c) 00:02:00(論理セクタ番号 0)
d) ユーザセクタの終端
e) ポストギャップ(2 秒以上)
f) TNO が変わる位置
g) ポーズ(2 秒以上)
h) ディスク上の最初の曲の開始位置
i) ディスク上の最後の曲の終了位置(59:59:74 以下)
j) 2〜3 秒の「ポーズ」
k) リードアウトトラックの開始(10:00:00 ≦ … ≦ 60:04:00)
l) チャンネル P が 2〜3 秒間ゼロのまま
m) P が 2 Hz ± 2% のリズムで 0 と 1 を切り替える(デューティ比 50 ± 10%)
TNO: トラック番号

(本文4ページ)

〈例 #1〉

ディスク内周側 ←────────── 情報領域 ──────────→ ディスク外周側
リードイン                  プログラム領域                  リードアウト
┌────────┬──┬──────────────────┬──┬──┬────────┬──┬──┬────────┐
│ 000000 │11│0000000000000000  │11│11│00000000│11│00│ 010101 │  チャンネル P
└────────┴──┴──────────────────┴──┴──┴────────┴──┴──┴────────┘  チャンネル Q

TNO            00       ←─────── 01 ───────→   ←─── 02 ───→   ←─ AA ─→
INDEX          --       0    1, 2 ..........   0  1, 2 .....       01
CD-ROM モード CD-DA     ←──── CD-ROM#1 ────→   ←── CD-DA#1 ─→   ← CD-DA →
                        ←─────── 01 ───────→      - - - - -      - - - -
               ↑ ↑ ↑              ↑ ↑ ↑ ↑ ↑        ↑ ↑ ↑ ↑ ↑
              a) b) c)           d) e) f) g) h)   i) j) k) l) m)

〈例 #2〉

ディスク内周側 ←────────── 情報領域 ──────────→ ディスク外周側
リードイン                  プログラム領域                  リードアウト
┌────────┬──┬────────┬──┬──┬──────────┬──┬────┬──┬──┬────────┐
│ 000000 │11│ 000000 │11│11│ 00000000 │11│0000│11│00│ 010101 │  チャンネル P
└────────┴──┴────────┴──┴──┴──────────┴──┴────┴──┴──┴────────┘  チャンネル Q

TNO            00     ←─── 01 ───→  ←─── 02 ───→  ←─── 03 ───→  ←─ AA ─→
INDEX          --     0  1, 2 ....  0  1, 2 ....  0  1, 2 ....       01
CD-ROM モード CD-DA   ← CD-ROM#1 →  ← CD-DA#1  →  ← CD-DA#2  →  ← CD-DA →
                      ←──── 01 ──→
              ↑ ↑ ↑     ↑ ↑ ↑ ↑ ↑        ↑  ↑        ↑ ↑ ↑ ↑ ↑
             a) b) c)  d) e) f) g) h)   f) g)      i) j) k) l) m)

3. 論理フォーマット

(本文5ページ)

本章では、CD-ROM 領域における論理フォーマットを定義します。

3-1 セクタ構造

● セクタ(図 3-1 参照)

CD-ROM データは、先頭セクタ 00:02:00 から最終セクタ 60:01:74 までのすべてのセクタに記録できます。

1 セクタは 1 フレーム、すなわち 2048 バイトで構成され、データ領域は最大 270,000($41EB0)セクタ(CD-S では 90,000)を保持できます。通し番号のセクタ番号は 00:02:00 から割り当てられるため、使用されるセクタ番号は #0〜#269,999($41EAF)(CD-S では 89,999)となります。セクタ番号 #0〜#15 はシステム領域として予約され、#16〜#269,999 がデータ領域として使用されます。

データ領域は合計 539.968 Mバイト(CD-S では 179.968)です。セクタ #270,000 以下はシステム用に予約されます(CD-S では 90,000)。

訳注: 原文は "Sectors #270,000 or below"(#270,000 以下)となっていますが、文意からは 「#270,000 以降」を意図したものと思われます。

● セクタモード

各セクタの構造は、「YELLOW BOOK」で定義されるモード 0、モード 1、モード 2 のいずれかです。モード 1 とモード 2 のセクタは 1 つのトラック内に混在できません。したがって、CD-ROM トラック(TNO=1)はモード 1 となります。

● アドレス

モード 1 セクタでは、セクタ #0 の先頭バイトをアドレス 0 とし、以降バイト単位で連続したアドレスが割り当てられます。

1 セクタが 2048 バイトであるため、最終アドレスは 552,959,999($20F57FFF)(CD-S では 184,319,999: $0AFC7FFF)となります。モード 2 セクタの CD-DA フレームについては、この 2048 バイトの後から先頭アドレスが始まります。

■ 図 3-1 — 〈セクタの構造〉

絶対時間
   00:02:00                 00:02:16                    60:01:74
   ┌───────────────────┬──────────────────────────────────┬──────────┐
LSN│ #0~#15            │ #16~#269999                      │          │
   │ システム領域       │ データ領域                        │ 予約     │
MDF│ ブートシステム     │ VD とファイル群(ISO9660 準拠)    │          │
   └───────────────────┴──────────────────────────────────┴──────────┘
アドレス
   0                   32768($8000)              552959999 ($20F57FFF)

LSN: 論理セクタ番号(Logical Sector Number)
VD:  ボリューム記述子(Volume Descriptor)

3-2 システム領域

(本文6ページ)

● システム領域(図 3-2 参照)

システム領域には、ブートストラップ情報、初期プログラム(IP)、およびファイルシステムプログラムが格納されます。ブートセクタはセクタ #0 に置かれ、システムプログラムセクタはセクタ #1〜#15 に置かれます。

(システムプログラムが 30 Kバイトを超える場合、システムセクタ領域以外の領域にシステムプログラムセクタを作成できます。ただし、#15 より後ろかつ VD が使用するセクタより前にあるセクタは、この用途には使用できません。

訳注: 原文でも開き括弧が閉じられないままになっています。

ブートセクタには以下が含まれます。

  • システム ID
  • ディスク ID
  • 初期プログラムコード

システム ID の用途の 1 つは、MEGA-CD ゲームディスクを識別することです。ディスク ID の用途の 1 つは品質管理です。ファイルシステムコードやその他のデータを含む初期プログラムは、常に最初に読み込まれます。

■ 図 3-2 — 〈システム領域の構造〉

アドレス
$000000  ┌──────────────────────┬──────────────────────────────────────┐
         │ システム ID           │                                      │
$000100  ├──────────────────────┤  セクタ #0          ブートセクタ       │
         │ ディスク ID           │                                      │
$000200  ├──────────────────────┤                                      │
         │ 初期プログラムコード   │                                      │
$000800  ├──────────────────────┼──────────────────────────────────────┤
         │ システムプログラム     │ セクタ #1~15  システムプログラムセクタ │
$008000  ├──────────────────────┼──────────────────────────────────────┤
         │ VD                   │                                      │
         │ ディレクトリ           │  データ領域                           │
         │ パステーブル           │                                      │
         │ ユーザファイル 0       │                                      │
         │ ユーザファイル 1       │                                      │
         │      :               │                                      │
$20F57FFF└──────────────────────┴──────────────────────────────────────┘

スキャン原本の手書き注記: $000800 の行の左余白に $001000 と書き込まれています (=システムプログラムの開始アドレスを $000800 から $001000 へ訂正)。 これは巻末の SEGA-CD Tech Bulletin に記載された訂正内容と一致します。


3-3 ブートシステム

(本文7ページ)

● ブートプログラム(図 3-3 参照)

ブートプログラムは MEGA-CD に格納されています。システムはブートセクタを読み込み、MEGA-CD ディスクが挿入されていることを確認したうえで、初期プログラムを読み込みます。初期プログラムは通常、システムセクタ #0 のバイトアドレス $200$600 の領域に格納されます。再読み込みが不要になるため、高速なブートが実現されます。

● 初期プログラム(IP)

初期プログラムはディスク上に格納され、メモリに読み込まれて実行されます。初期プログラムは、システムプログラムを読み込む間、会社のロゴを表示します。システムプログラムの読み込み後、システムの制御はアプリケーションソフトウェアに引き継がれます。

● システムプログラム(SP)

ファイルシステム情報やその他のデータを含む CD-ROM ディスクを使用するには、システムプログラムが必要です。ファイルシステムはディスクごとに設計され、アプリケーションソフトウェアのアクセス速度が最大化されるようになっています。アプリケーションソフトウェアには、スタートアップや本編プログラムなどが含まれます。

■ 図 3-3 — 〈ブートシステムのイメージ図〉

                             制御(CONTROL)
  ┌──────────────┐  ────────────────────────────────→ ┌────────────────┐
  │   [ROM]      │  LOAD                              │   [CD-ROM]     │
  │ ブートプログラム│───────┐        ┌──────────────────→│  初期プログラム  │
  └──────────────┘  JMP  │        │   ┌──────────────→│ システムプログラム│
         │               ↓        │   │               │  アプリケーション │
         │        ┌──────────────┐│   │               └────────────────┘
         │        │   [RAM]      ││   │
         │        │ 初期プログラム │┘   │
         │        └──────────────┘    │
         │ JMP           │ LOAD       │
         │               ↓          制御
         │        ┌────────────────┐  │
         └───────→│    [RAM]       │──┘
                  │ システムプログラム│
                  └────────────────┘
              CALL      │ LOAD
                        ↓
                  ┌────────────────┐
                  │    [RAM]       │
                  │ アプリケーション │
                  └────────────────┘

3-4 ファイルシステム

(本文8ページ)

フォーマットは ISO9660 で定義された仕様に準拠します。

略号

略号 意味
VD Volume Descriptor(ボリューム記述子)
LSN Logical Sector Number(論理セクタ番号)
BP Byte Pointer(バイトポインタ)
RBP Relative Byte Pointer(相対バイトポインタ)
TP Type(型)
N 数値
NL リトルエンディアン(下位バイト先行)
NM ビッグエンディアン(上位バイト先行)
NB 両方の順序を併記
ND 0〜9 の任意の数字
A A 文字(20-22/25-3F/41-5A/5F)
D D 文字(30-39/41-5A/5F)
DS D 文字、SEPARATOR1、SEPARATOR2(2E/3B)
DE Directory Entry(ディレクトリエントリ)
00 ゼロ埋め
A1 A1 文字 ; A 文字 + 漢字
D1 D1 文字 ; D 文字 + 漢字
D1S D1 文字、SEPARATOR1、SEPARATOR2(2E/3B)

● Volume Descriptor(ボリューム記述子)

〈Boot Record(ブートレコード)〉

BP TP フィールド名 備考
1 N Volume Descriptor Type ; VD = 0
2 – 6 Standard Identifier ; 'CD001'
7 N Volume Descriptor Version ; VD version = 1
8 – 39 A A Boot System Identi…(Identifier)
40 – 71 A A Boot Identifier
72 – 2048 Boot System Use ; 未規定

訳注: 原本スキャンでは "A Boot System Identi" で文字が切れています。"…Identifier" と読みます。

Boot Record の記入例:

サイズ 備考
1 0 ; 固定
5 'CD001' ; 固定
1 01 ; 固定
32 'SEGA MEGA CD ' ; 固定(' '$20
32 'Boot identifier (Application) ' ; ユーザ指定
1977 ブートシステムコード ; ユーザ指定

〈Volume Descriptor Set Terminator(ボリューム記述子集合終端子)〉

BP TP フィールド名 備考
1 N Volume Descriptor Type ; VD = 255(終端)
2 – 6 Standard Identifier ; 'CD001'
7 N Volume Descriptor Version ; VD version = 1
8 – 2048 (将来の標準化のために予約) ; (00) バイト

(本文9ページ)

〈Primary Volume Descriptor(基本ボリューム記述子)〉

BP TP フィールド名 備考
1 – N Volume Descriptor Type ; VD = 1(通常)
2 – 6 Standard Identifier ; 'CD001'
7 N Volume Descriptor Version ; VD version = 1
8 00 Unused Field(未使用) ; (00) バイト
9 – 40 A System Identifier ;
41 – 72 D Volume Identifier ;
73 – 80 00 Unused Field(未使用) ; (00) バイト
81 – 88 NB Volume Space Size ;
89 – 120 00 Unused Field(未使用) ; (00) バイト
121 – 124 NB Volume Set Size ;
125 – 128 NB Volume Sequence Number ;
129 – 132 NB Logical Block Size ;
133 – 140 NB Path Table Size ;
141 – 144 NL Location of Occurrence of Type L Path Table ;
145 – 148 NL Location of Optional Occurrence of Type L Path Table ;
149 – 152 NM Location of Occurrence of Type M Path Table ;
153 – 156 NM Location of Optional Occurrence of Type M Path Table ;
157 – 190 DE Directory Record for Root Directory ;
191 – 318 D Volume Set Identifier ;
319 – 446 A Publisher Identifier ;
447 – 574 A Data Preparer Identifier ;
575 – 702 A Application Identifier ;
703 – 739 DS Copyright File Identifier ;
740 – 776 DS Abstract File Identifier ;
777 – 813 DS Bibliographic File Identifer ;
814 – 830 ND Volume Creation Date and Time ;
831 – 847 ND Volume Modification Date and Time ;
848 – 864 ND Volume Expiration Date and Time ;
865 – 881 ND Volume Effective Date and Time ;
882 N File Structure Version ;
883 00 (将来の標準化のために予約) ; (00) バイト
884 – 1395 Application Use ; 未規定
1396 – 2048 (将来の標準化のために予約) ; (00) バイト

(本文10ページ)

〈Primary Volume Descriptor の記入例〉

サイズ 備考
1 01 ; 固定
5 'CD001' ; 固定
1 01 ; 固定
1 00 ; 固定
32 'SEGA MEGA CD ' ; 固定(' '$20
32 'Volume Identifier ' ; ユーザ指定
8 0000000000000000 ; 固定
8 1EB00004, 00041EB0 ; 自動書き込み(00041EB0 以下)
32 00, 00, 00, 00, ……………… 00 ; 固定
4 0100, 0001 ; 固定
4 0100, 0001 ; 固定
4 0008, 0800 ; 固定
8 XXXXXXXX, XXXXXXXX ; 自動書き込み
4 XXXXXXXX ; 自動書き込み
4 00000000 ; 固定
4 XXXXXXXX ; 自動書き込み
4 00000000 ; 固定
34 ……… ; 自動書き込み
128 'Volume Set Identifier …' ; ユーザ指定
128 'Publisher Identifier …' ; ユーザ指定
128 'Data Preparer Identifier …' ; ユーザ指定
128 ' ' ; 固定
37 'Copyright File Identifier …' ; ユーザ指定
37 ' ' ; ユーザ指定
37 ' ' ; ユーザ指定
17 00000000 00000000 00000000 00000000 00 ; 固定
17 00000000 00000000 00000000 00000000 00 ; 固定
17 00000000 00000000 00000000 00000000 00 ; 固定
17 00000000 00000000 00000000 00000000 00 ; 固定
1 01 ; 固定
1 00 ; 固定
512 00,00,00,00, ……………… 00 ; 固定
653 00,00,00,00, ……………… 00 ; 固定

(本文11ページ)

〈Supplementary Volume Descriptor(補助ボリューム記述子)〉

BP TP フィールド名 備考
1 N Volume Descriptor Type ; VD = 2(補助)
2 – 6 Standard Identifier ; 'CD001'
7 N Volume Descriptor Version ; VD version = 1
8 00 Volume Flags ;
9 – 40 A1 System Identifier ;
41 – 72 D1 Volume Identifier ;
73 – 80 00 Unused Field(未使用) ; (00) バイト
81 – 88 NB Volume Space Size ;
89 – 120 00 Escape Sequences ; 32 バイト
121 – 124 NB Volume Set Size ;
125 – 128 NB Volume Sequence Number ;
129 – 132 NB Logical Block Size ;
133 – 140 NB Path Table Size ;
141 – 144 NL Location of Occurrence of Type L Path Table ;
145 – 148 NL Location of Optional Occurrence of Type L Path Table ;
149 – 152 NM Location of Occurrence of Type M Path Table ;
153 – 156 NM Location of Optional Occurrence of Type M Path Table ;
157 – 190 DE Directory Record for Root Directory ; 34 バイト
191 – 318 D1 Volume Set Identifier ;
319 – 446 A1 Publisher Identifier ;
447 – 574 A1 Data Preparer Identifier ;
575 – 702 A1 Application Identifier ;
703 – 739 D1S Copyright File Identifier ;
740 – 776 D1S Abstract File Identifier ;
777 – 813 D1S Bibliographic File Identifer ;
814 – 830 ND Volume Creation Date and Time ;
831 – 847 ND Volume Modification Date and Time ;
848 – 864 ND Volume Expiration Date and Time ;
865 – 881 ND Volume Effective Date and Time ;
882 N File Structure Version ;
883 00 (将来の標準化のために予約) ; (00) バイト
884 – 1395 Application Use ; 未規定
1396 – 2048 (将来の標準化のために予約) ; (00) バイト

(本文12ページ)

〈Supplementary Volume Descriptor の記入例〉

サイズ 備考
1 02 ; 固定
5 'CD001' ; 固定
1 01 ; 固定
1 00(JIS)   または   01(Shift JIS) ; ユーザ指定
32 'SEGA MEGA CD ' ; 固定(' '$20
32 'Volume name ' ; ユーザ指定
8 0000000000000000 ; 固定
8 1EB00004, 00041EB0 ; 自動書き込み(00041EB0 以下)
32 00, 00, 00, 00, ……………… 00 ; ユーザ指定
4 0100, 0001 ; 固定
4 0100, 0001 ; 固定
4 0008, 0800 ; 固定
8 XXXXXXXX, XXXXXXXX ; 自動書き込み
4 XXXXXXXX ; 自動書き込み
4 00000000 ; 固定
4 XXXXXXXX ; 自動書き込み
4 00000000 ; 固定
34 ……… ; 自動書き込み
128 'Volume set identifier …' ; ユーザ指定
128 'Publisher identifier …' ; ユーザ指定
128 'Data preparer identifier …' ; ユーザ指定
128 ' ' ; 固定
37 'Copyright file identifier …'   または ' ' ; ユーザ指定
37 'Abstract file identifier …'   または ' ' ; ユーザ指定
37 'Bibliographic file identifier …'   または ' ' ; ユーザ指定
17 'yyyymmddhhmmssss', XX   または 00000000 00000000 00000000 00000000 00 ; ユーザ指定
17 'yyyymmddhhmmssss', XX   または 00000000 00000000 00000000 00000000 00 ; ユーザ指定
17 00000000 00000000 00000000 00000000 00 ; 固定
17 00000000 00000000 00000000 00000000 00 ; 固定
1 01 ; 固定
1 00 ; 固定
512 00,00,00,00, ……………… 00 ; 予約
653 00,00,00,00, ……………… 00 ; 固定

(本文13ページ)

● ディレクトリ

ディレクトリは、特別に構造化されたファイルシステムを管理するために使用します。ISO9660 で定義されたフォーマットを使用します。

〈Directory Record(ディレクトリレコード)のフォーマット〉

BP TP フィールド名 備考
1 N Length of Directory Record(LEN_DR) ;
2 N Extended Attribute Record Length ; = 0
3 – 10 NB Location of Extent ;
11 – 18 NB Data Length ;
19 – 25 N Recording Date and Time ;
26 File Flags ;
27 N File Unit Size ; = 0
28 N Interleave Gap Size ; = 0
29 – 32 NB Volume Sequence Number ; = 1
33 N Length of File Identifier(LEN_FI) ;(最大 12)
34 –(33+LEN_FI) D1S File Identifier ;
(34+LEN_FI) 00 Padding Field ; (00) バイト
(LEN_DR − LEN_SU + 1)– LEN_DR System Use ; LEN_SU バイト = 0

注: LEN_SU は System Use フィールドの長さを表します。

〈Recording Date and Time(記録日時)〉

RBP TP フィールド名 備考
1 N 1900 年からの経過年数 ;
2 N 月 1〜12 ;
3 N 日 1〜31 ;
4 N 時 0〜23 ;
5 N 分 0〜59 ;
6 N 秒 0〜59 ;
7 N グリニッジ標準時からのオフセット(15 分単位、−48(西)〜+52(東)) ; = 0

〈File Flags(ファイルフラグ)〉

ビット 意味 備考
bit 0 存在(Existence) ;
bit 1 ディレクトリ(Directory) ;
bit 2 関連ファイル(Associated File) ;
bit 3 レコード(Record) ;
bit 4 プロテクト(Protection) ;
bit 5 予約 ;
bit 6 予約 ;
bit 7 マルチエクステント(Multi-Extent) ; = 0

(本文14ページ)

● パステーブル

ISO9660 で定義されたフォーマットを使用します。

〈Path Table Record(パステーブルレコード)〉

BP TP フィールド名 備考
1 N Length of Directory Identifier(LEN_DI) ;
2 N Extended Attribute Record Length ; = 0
3 – 6 N Location of Extent ;
7 – 8 N Parent Directory Number ;
9 –(8+LEN_DI) D1 Directory Identifier ;
(9+LEN_DI) 00 Padding Field ; (00) バイト

3-5 ユーザファイルテーブル

(本文15ページ)

ユーザファイルはユーザセクタ領域に置かれます。各ファイルは常に連続して配置されます。ファイルの先頭アドレスの下位 11 ビットは常に 0 に設定されます(セクタ境界から開始)。ファイルサイズはディレクトリにバイト単位で記録されます。ファイルの最終セクタの空き領域は $FF で埋められます。$FF は読み込まれてバッファに格納されますが、アプリケーションソフトウェアに渡されることはありません。

3-6 その他

● ディレクトリ構造に関する制限

高速アクセスの実現とメモリ節約のため、ディレクトリ構造には以下の制限があります。この制限はバージョン 1.00 のファイルシステムに適用されます。ファイルシステムはディスク上で固定されているため、ファイルパステーブルをメモリ上に保持することで高速アクセスを実現しています。この方式は他のシステムとは大きく異なります。

  1. ファイル名には MS-DOS と同じ制限が適用される。
  2. 通常、サブディレクトリは使用しない。使用する場合は、ファイルシステムのバージョンを上げる必要がある。
  3. ディスク上のファイル数はファイルシステムで固定されている。これによりパステーブルを RAM 上の専用ファイルに保持でき、無駄なバッファを排除できる。

● マルチボリューム

バージョン 1.00 ではサポートされません。

● ISO 仕様におけるインタリーブ

バージョン 1.00 ではサポートされません。この機能はアプリケーションプログラム側で実装する必要があります。

● ブートセクタ

標準設定ではブートセクタは #0 です。ブートセクタの予備コピーを #1〜#15 に格納することもできます。ただし、その場合もシステムプログラムセクタが連続するように配置しなければなりません。

● 線速度

MEGA-CD ゲームディスクの線速度は 1.25 m/秒に固定されています。これはトラックジャンプアクセスの精度を高め、シーク速度を向上させるためです。


付録1. 用語集

(本文16〜17ページ)

CD-DA Compact Disc Digital Audio。CD-DA 領域。

CD-DA 領域 デジタルオーディオデータがこの CD-DA 領域に書き込まれます。データは「RED BOOK」に準拠して書き込まれるため、CD-DA 領域はオーディオ CD プレーヤーで再生できます。

CD-G(CD-Graphics) カラオケ CD ディスク。

CD-ROM 領域 プログラム、グラフィック、サウンドなどのデータがこの領域に書き込まれます。データは論理フォーマットに準拠して書き込まれるため、容易にロードできます。

CD-S(CD Single) 8cm CD ディスク。

DISC(ディスク) 物理ディスク。フロッピーディスクと区別するために使用します。いわゆる CD メディアのこと。

ISO9660 CD-ROM の論理フォーマットに用いられる国際標準規格。

MEGA-CD MEGA DRIVE 用の CD-ROM ドライブ。CD-ROM ディスクを介してゲームプログラム等を供給するために使用されます。

P コード サブコードの P チャンネルのデータ。P コードは「RED BOOK」に準拠し、ポーズ状態を示します。

Q コード サブコードの Q チャンネルのデータ。Q コードは「RED BOOK」に準拠し、絶対時間、相対時間、曲番号などに使用されます。

RED BOOK、YELLOW BOOK CD-DA および CD-ROM の物理フォーマットに関する仕様書。

MEGA-CD DISC FORMAT ISO9660 に準拠した MEGA-CD 用の論理フォーマット。

TOC Table of contents(目次情報)。

サブコード(SUB-CODE) サブコードは、CD データの間のギャップに書き込まれるデータです。1 セクタあたり 96 バイト。各ビットが P〜W チャンネルに対応します。

セクタ(SECTOR) 1 セクタは 1 フレーム、すなわち 2048 バイト(モード 2 では 2336 バイト)で構成されます。CD-ROM データを読み出す際の標準単位です。

絶対時間(ABSOLUTE TIME) 絶対時間は DISC 上のアドレスに相当します。データは分・秒・フレームの単位で連続的に書き込まれます。プログラム領域は絶対時間に従ってアクセスされます。

トラック(TRACK) トラックは CD-DA で定義される 1 曲分の記録領域です。長さは可変です。書き込みには 1〜99(10 進)のトラックを使用できます。トラック番号 0 は、リードイン領域の TOC 情報の書き込みに使用されます。

ボリューム(VOLUME) ボリュームとは、1 枚の DISC に書き込まれた全データを指します。

ボリュームセット(VOLUME SET) ボリュームセットとは、一連のデータが複数の DISC にまたがって書き込まれている場合の、それら DISCS に書き込まれた全データを指します。


付録2. システム ID

(本文18ページ)

システム ID 領域は、セガのディスクであることを識別し、セガのブートアップ情報を与える役割を持ちます。(図 A-2 も参照)

● ディスク識別子

MEGA-CD ディスクを識別するためのディスク識別子です。MEGA-CD ディスクを、他の CD-ROM ディスクやオーディオ CD ディスクと区別するために使用します。ブートプログラムは挿入されたディスクをチェックします。

識別子 "SEGADISCSYSTEM" はセガシステムディスクを意味し、 識別子 "SEGADATADISC" はデータディスクを意味します。

● セガシステムディスク

MEGA-CD ディスクフォーマットでフォーマットされ、ブートプログラムを含むディスクです。ファイルシステムを使用できます。

● データディスク

MEGA-CD ディスクフォーマットでフォーマットされ、ブートプログラムを含まないディスクです。ファイルシステムを使用できます。

● ボリューム名

ASCII コードによるディスク名。

● ボリュームバージョン

バージョン番号を 4 桁の BCD 表記で示します。$00$99 は発売前バージョン(ライトワンスディスク)で使用し、$100 を最初の製品版で使用します。

● ボリュームタイプ

メディアの種別を示します。CD-ROM は読み出し専用です。(Bit0=1、他のビットは 0。)

● システム名、バージョン

システムプログラムを識別するための名称とバージョン。

● IP アドレス/SP アドレス

              │ bit31,30 │ 29 ←──────→ 11 │ 10 ←────────────→ 0 │
● IP アドレス  │    0     │       0        │              $200   │
● SP アドレス  │    0     │   セクタ #2     │   下位 11 ビット: 0  │
項目 内容
● IP ロードサイズ ロードサイズ(通常 $600
● SP ロードサイズ ロードサイズ(通常 $7800
● IP エントリアドレス プログラム開始オフセットアドレス
● SP エントリアドレス プログラム開始オフセットアドレス
● IP ワーク RAM サイズ 必要なワーク RAM サイズ(バイト)
● SP ワーク RAM サイズ 必要なワーク RAM サイズ(バイト)

スキャン原本の手書き注記: SP ロードサイズの行の横に $7200 と書き込まれており、 「通常 $7800」を訂正しています。巻末の Tech Bulletin でも $7800 は誤りで $7200 が正しいと述べられています。

※ IP : Initial program(初期プログラム) ※ SP : System program(システムプログラム)

(本文19ページ)

■ 図 A-2 — 〈システム ID〉

              $04              $08              $0C
$000  ┌──────────────────────────────────────────────────────────┐
      │                    DISC 属性                              │
$010  ├──────────────────────────────────┬───┬────────┬──────────┤
      │           ボリューム名             │ 0 │ ボリューム│ ボリューム│
$020  ├──────────────────────────────────┼───┤ システム │ タイプ   │
      │           システム名               │ 0 │ システム │    0     │
$030  ├───────────┬──────────────┬───────┴───┤ VER.    │          │
      │ IP アドレス │ IP ロード     │ IP エントリアドレス │ IP ワーク │
      │            │ サイズ        │                    │ RAM サイズ│
$040  ├───────────┼──────────────┼────────────────────┤          │
      │ SP アドレス │ SP ロード     │ SP エントリアドレス │ SP ワーク │
      │            │ サイズ        │                    │ RAM サイズ│
$050  ├───────────┴──────────────┴────────────────────┤          │
      │            システム予約領域                      │ 176 BYTE │
$0FF  └───────────────────────────────────────────────┴──────────┘

原図はバイトマップ形式の表です。上記の図は、原図の行境界($000, $010, $020, $030, $040, $050, $0FF)と列境界($04, $08, $0C)を再現したものです。「176 BYTE」はシステム予約領域の サイズを示しています。


付録3. ディスク ID

(本文20ページ)

ディスク ID は、製品としてのディスクの品質管理と製品テストのために使用します。内容はセガが管理します。(図 A-3 も参照)

● ハードウェア表記

機種 文字列
MEGA DRIVE 用 'SEGA MEGA DRIVE'
GENESIS 用 'SEGA GENESIS'

● 会社名または会社コード

'(C)' と、会社名または会社コードの 4 文字を入力します。

開発元 書式
社内または社外の開発者 (C) SEGA
サードパーティ開発者 (C) T-XX(会社コード)

● 国内版ゲームタイトルの入力

● 海外版ゲームタイトルの入力

● ディスク種別、製品コード、バージョンを表すコード

GM(ゲーム)、AI(教育用) — 例: 'GM T-12345 -00'

製品コードは各ゲームにあらかじめ指定されます。バージョン番号は、ゲームの初回リリース後に変更が加えられるたびに増加します。

● コントロール情報は、ゲームプレイに使用する I/O デバイスの種類を示します。コントロール情報コード(ASCII)は以下のとおりです。

デバイス コード
マスターシステム用ジョイスティック O
MEGA DRIVE(Genesis)用ジョイスティック J
キーボード K
シリアル I/O(RS232C) R
プリンタ P
タブレット T
トラックボール B
パドルコントローラ V
アナログジョイスティック A
マウス M

● モデム情報(MEGA DRIVE(GENESIS)マニュアル参照)

'MO', '会社コード', 'xx,y', 'zz'

フィールド 意味
xx ゲーム番号
y バージョン番号
zz モデム情報
zz 対応地域 備考
10 日本のみ マイク付き(With Mike)
30 海外のみ マイク付き(With Mike)
50 日本&海外 マイク付き(With Mike)

(本文21ページ)

● 対応地域は以下のコードで指定します。

地域 コード
日本 J
アメリカ U
ヨーロッパ E

● SPACE

使用禁止。

● 空きアドレスには、"SPACE" に相当する ASCII コード(20H)を埋めてください。

● 各項目の詳細は「GENESIS SOFTWARE DEVELOPMENT MANUAL」を参照してください。

■ 図 A-3 — 〈ディスク ID〉

100H ┌──────────────────────────────────────────────┬───────────────┐
     │              ハードウェア表記                  │               │
110H ├──────────────────────────────────────────────┴───────────────┤
     │              会社コード、日付                                  │
120H ├──────────────────────────────────────────────────────────────┤
     │              国内版ゲームタイトル                              │
150H ├──────────────────────────────────────────────────────────────┤
     │              海外版ゲームタイトル                              │
180H ├──────────────────────────────────────┬───────────────────────┤
     │ ディスク種別、製品番号、バージョン       │        Space          │
190H ├──────────────────────────────────────┴───────────────────────┤
     │ I/O 情報                                                      │
1A0H ├──────────────────────────────────────────────────────────────┤
     │ Space                                                        │
1B0H ├──────────────────────────────────────┬───────────────────────┤
     │ Space                                │     モデム情報          │
1C0H ├──────────────────┬───────────────────┴───────────────────────┤
     │ モデム情報        │              Space                        │
1D0H ├──────────────────┴───────────────────────────────────────────┤
     │ Space                                                        │
1F0H ├──────────────────────────────────────────────────────────────┤
     │ 対応地域                                                      │
1FFH └──────────────────────────────────────────────────────────────┘

付録4. 日本語コード定義領域

(本文22ページ)

● 漢字

漢字文字コードには、図 A-4 のシフトコードを使用します。

■ 図 A-4 — 〈日本語コード領域の定義〉

        (第1バイト)                    (第2バイト)
       00   20 21   40      60   7E 80   A0     C0     E0    FF
  00  ┌────┬─┬──────────────────┬─┬────────────────────────────┐
      │      ↓ 漢字スペース = 2020                             │
  21  │    ┌─┐                                                 │
      │    └─┘                                                 │
      │      ┌────────────────┐                                │
  40  │      │ 2121           │                                │
      │      │                │                                │
  5E  │      │                │                                │
  5F  │      │   JIS コード    │                                │
  60  │      │                │                                │
      │      │                │                                │
  7E  │      │           7E7E │                                │
  80  │      └────────────────┘                                │  80
      │  スペースコード                                          │  81
      │  = 8140 →  ┌──────────┐   ┌───────────────────────┐    │
      │            │ 8140     │   │ 8180                  │    │
  A0  │            │     9F7E │   │                  9FFC │    │  9F
      │            └──────────┘   └───────────────────────┘    │
  C0  │                                  ↑                     │
      │                          Shift JIS コード                │
      │                                  ↓                     │
  E0  │            ┌──────────┐   ┌───────────────────────┐    │  E0
      │            │ E040     │   │ E080                  │    │
      │            │     FC7E │   │                  FCFC │    │  FC
  FF  └────────────┴──────────┴───┴───────────────────────┴────┘  FF
                   40      7E 80                          FC   FF
                          7E
                   → 制御コード(DEL を除く)
領域 範囲
1 バイトコード領域 20-7EA0-E0
2 バイトコード領域 20202121-7E7E
8140-9F7E8180-9FFC
E040-FC7EE080-FCFC


付属資料(スキャンに綴じ込まれていたもの): SEGA-CD テックブルテン

(スキャン25〜26ページ。番号付き仕様書本文の一部ではありません。1 ページ目上部に "Rex Sabio" の手書き署名があります。)

SEGA-CD TECH BULLETIN

宛先: Sega-CD 開発者各位
差出人: S. Bayless
日付: 1992年6月16日
CC: J. Huether、T. Reuterdahl
件名: 米国版 BIOS について

まだご覧になっていないと思いますが、SOJ(セガ・オブ・ジャパン)は現在、米国市場向けに BIOS を改訂中です。変更の大部分は表面的なものですが、そうでないものもいくつかあります。

セキュリティコード

セガのロゴを表示し、著作権表示を出力し、あの短い「セガーッ」というサウンドを鳴らすコードブロックが、大幅に変更されました。これには 2 つの影響があります。1 つ目は、DC.B が大量に並んだアセンブリ言語ファイルが配布されるので、新しい ROM に受け付けてもらうには、それを IP の先頭に置く必要があるということです。2 つ目は、ブートセクタの ID ブロックに格納する値を変更する必要があるということです。

ブートセクタ

セキュリティコードがかなり大きくなったため、$600 バイトを超える IP を扱えるようにシステム ID を変更する必要がほぼ確実に生じます。Mega-CD ディスクフォーマットマニュアルの 18〜19 ページに示された「通常の」システム ID では、IP と SP のアドレスは次のようになっています。

        ;ディスクアドレス, ロードサイズ, エントリオフセット, ワーク RAM
  DC.L  $00000200,$00000600,$00000000,$00000000    ;IP
  DC.L  $00000800,$00007800,$00000000,$00000000    ;SP

IP は ID ブロックの直後である $200 から始まり、SP はセクタ 1 の先頭である $800 から始まっている点に注目してください。(1 セクタは $800 バイトであることを思い出してください。)ちなみに、マニュアルの $7800 は誤りです。IP の終端からセクタ 15 の終端までの残りバイト数と等しくなるよう意図されているので、正しくは $7200 です。

新しいセキュリティコードでは IP がセクタ 2 まではみ出すため、新しいシステム領域の構造(Mega-CD ディスクフォーマットマニュアル 6 ページ参照)は次のようになります。

$000000   システム ID       セクタ #0         ブートセクタ
$000100   ディスク ID
$000200   IP コード
────────────────────────────────────────────────────
$001000   SP コード         セクタ #1~#15     SP セクタ

$008000   VD                                データ領域
          ディレクトリ
          パステーブル
          ユーザファイル 0
          ユーザファイル 1
                :

元の BIOS は、IP がセクタ 0 内に収まることを前提にハードワイヤードされているようなので、IP がそれより大きくなる場合は BIOS を「だます」ような形にする必要があります。SOJ によれば、IP Start フィールドの値は、IP の先頭 $600 バイトの 後ろ にある最初のバイトを指すべきとのことです。つまり常に $800 を使うことになります(それより小さければセクタ 0 に収まるので、そもそもこの作業自体が不要になるため)。また、これは IP がセクタ 1 の終端を超えられないことも示唆しますが、この点はまだ確認できていません。

IP Load Size フィールドの値は、IP のサイズ − $600 と等しくすべきです。私が最初に試したときは、IP をセクタ 1 の終端までパディングしたので、使用した長さは $800、すなわち「セクタ全体をロードする」という意味になりました。

最後に、SP が次のセクタから始まるようになったことを反映して、SP Start フィールドを変更する必要があります。この値はセクタ 2 の先頭、すなわち $1000 とすべきです。また、(そうしている人もいるように)パディングする場合は、最大サイズが小さくなったことを反映して SP Load Size フィールドも変更するとよいでしょう。

したがって、新しい「通常の」システム ID のエントリは次のようになります。

        ;ディスクアドレス, ロードサイズ, エントリオフセット, ワーク RAM
  DC.L  $00000800,$00000800,$00000000,$00000000    ;IP
  DC.L  $00001000,$00007000,$00000000,$00000000    ;SP

出典: Mega-CD_Disc_Format_Specifications.pdf(SegaRetro、リビジョン 20190509114738)、全26ページ、画像のみのスキャン。OCR と目視確認により書き起こし・翻訳。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment