Sega Graphics Library

From Sega Retro

The Sega Graphics Library (SGL) is a set of 3D game development tools developed by Sega AM2 to assist in Sega Saturn development. It was released to registered third-party Saturn developers around mid-1995.

History

Even before its release the Sega Saturn's complex architecture made it difficult for developers to fully utilise. Many early Saturn games, including first-party products such as Virtua Fighter and Daytona USA demonstrate significant performance issues when attempting to tax the hardware. Compared to the Saturn's closest rival, the PlayStation, more development time was required to achieve similar levels of performance, and while for much of its run Saturn sales out-stripped the PlayStation in Japan, worldwide the PlayStation was selling significantly more units and attracting the lion's share of Western console developers.

In its early days the Saturn was under-documented, and developers were forced to explore the hardware at a very low level, developing their own toolchains for game development while receiving limited support from Sega. While fully possible to develop a complex game, the process was not quick and generally involved programming in assembly language. The Saturn was not the first console requiring deep knowledge of the hardware to achieve results (this is common across all forms of computing), however its multi-processor architecture and higher consumer expectations meant this system was less appealing to developers than rival platforms.

In response to the troubles (and requests from Yu Suzuki

A database query error has occurred. Did you forget to run your application's database schema updater after upgrading?

Query: SELECT `cargo__issuenames`.`name` AS `issuename`,`cargo__issuenames`.`date` AS `date`,`cargo__issuenames`.`pdf` AS `pdf`,`cargo__magnames`.`name` AS `magname`,`cargo__magnames`.`country` AS `country` FROM `cargo__issuenames` LEFT OUTER JOIN `cargo__magnames` ON ((`cargo__issuenames`.`code`=`cargo__magnames`.`code`)) WHERE `cargo__issuenames`.`code`="nextgeneration" and `cargo__issuenames`.`num`="9" ORDER BY `cargo__issuenames`.`name`,`cargo__issuenames`.`date`,`cargo__issuenames`.`pdf`,`cargo__magnames`.`name`,`cargo__magnames`.`country` LIMIT 1 Function: CargoSQLQuery::run Error: 1021 Disk full (/tmp/#sql-temptable-15e6a-132080-8.MAI); waiting for someone to free some space... (errno: 28 "No space left on device") (localhost)

[1]), AM2's Tadahiro Kawamura led development on a set of libraries for programmers

A database query error has occurred. Did you forget to run your application's database schema updater after upgrading?

Query: SELECT `cargo__issuenames`.`name` AS `issuename`,`cargo__issuenames`.`date` AS `date`,`cargo__issuenames`.`pdf` AS `pdf`,`cargo__magnames`.`name` AS `magname`,`cargo__magnames`.`country` AS `country` FROM `cargo__issuenames` LEFT OUTER JOIN `cargo__magnames` ON ((`cargo__issuenames`.`code`=`cargo__magnames`.`code`)) WHERE `cargo__issuenames`.`code`="nextgeneration" and `cargo__issuenames`.`num`="9" ORDER BY `cargo__issuenames`.`name`,`cargo__issuenames`.`date`,`cargo__issuenames`.`pdf`,`cargo__magnames`.`name`,`cargo__magnames`.`country` LIMIT 1 Function: CargoSQLQuery::run Error: 1021 Disk full (/tmp/#sql-temptable-15e6a-132080-c.MAI); waiting for someone to free some space... (errno: 28 "No space left on device") (localhost)

[2], designed to quickly interface with the Saturn hardware. The SGL libraries were written in C and were designed to simplify common tasks, most notably the rendering of textured 3D polygons. Sega offered other libraries for other tasks (e.g. sound) but SGL that was widely seen as the most significant addition to Sega's development resources. Virtua Fighter 2 was the initial showpiece for SGL, with a texture-mapped Pai being demonstrated on the 24th March, 1995

A database query error has occurred. Did you forget to run your application's database schema updater after upgrading?

Query: SELECT `cargo__issuenames`.`name` AS `issuename`,`cargo__issuenames`.`date` AS `date`,`cargo__issuenames`.`pdf` AS `pdf`,`cargo__magnames`.`name` AS `magname`,`cargo__magnames`.`country` AS `country` FROM `cargo__issuenames` LEFT OUTER JOIN `cargo__magnames` ON ((`cargo__issuenames`.`code`=`cargo__magnames`.`code`)) WHERE `cargo__issuenames`.`code`="ssm" and `cargo__issuenames`.`num`="2" ORDER BY `cargo__issuenames`.`name`,`cargo__issuenames`.`date`,`cargo__issuenames`.`pdf`,`cargo__magnames`.`name`,`cargo__magnames`.`country` LIMIT 1 Function: CargoSQLQuery::run Error: 1021 Disk full (/tmp/#sql-temptable-15e6a-132080-10.MAI); waiting for someone to free some space... (errno: 28 "No space left on device") (localhost)

[3]. It went on to be used in the majority of AM2's products, which in turn spurred on the release of updates to the library in the months and years which followed. The SGL libraries were (incorrectly) referred to as an "operating system" in Japan

A database query error has occurred. Did you forget to run your application's database schema updater after upgrading?

Query: SELECT `cargo__issuenames`.`name` AS `issuename`,`cargo__issuenames`.`date` AS `date`,`cargo__issuenames`.`pdf` AS `pdf`,`cargo__magnames`.`name` AS `magname`,`cargo__magnames`.`country` AS `country` FROM `cargo__issuenames` LEFT OUTER JOIN `cargo__magnames` ON ((`cargo__issuenames`.`code`=`cargo__magnames`.`code`)) WHERE `cargo__issuenames`.`code`="nextgeneration" and `cargo__issuenames`.`num`="9" ORDER BY `cargo__issuenames`.`name`,`cargo__issuenames`.`date`,`cargo__issuenames`.`pdf`,`cargo__magnames`.`name`,`cargo__magnames`.`country` LIMIT 1 Function: CargoSQLQuery::run Error: 1021 Disk full (/tmp/#sql-temptable-15e6a-132080-14.MAI); waiting for someone to free some space... (errno: 28 "No space left on device") (localhost)

[4].

SGL development dried up when the Saturn was replaced with the Sega Dreamcast, which uses an entirely different achitecture and is largely incompatible with any of the Saturn libraries released prior. A design goal for the Dreamcast was to avoid issues with nonexistent programming libraries or confusing architecture, so similar issues were avoided in the Saturn's successor.

Despite its claimed benefits, not all developers chose to utilise SGL, either producing their own C libraries or working predominantly in assembly. The very nature of C means that performance is sacrificed for ease of development, and support in alternative development hardware such as PsyQ is not known.

Games utilising SGL

Name Version Release year
Radiant Silvergun GFS_SGL Version 2.14 1997-04-11 1998
Battle Garegga GFS_SGL Version 2.11 1996-03-21 1998
Dodonpachi GFS_SGL Version 2.12 1996-12-04 1997
Fighting Vipers 2.1 1996
NiGHTS into Dreams Unknown 1996
Virtua Cop Unknown 1995
Virtua Fighter 2 Unknown 1995

Official documents

Main article: Sega DTS Saturn official documentation.

Magazine articles

Main article: Sega Graphics Library/Magazine articles.

References

  1. ', "" (; ), page 56
  2. ', "" (; ), page 56
  3. ', "" (; ), page 46
  4. ', "" (; ), page 53