Difference between revisions of "SMPS"
From Sega Retro
old>Tweaker m (+xm3smps mention) |
m (Use proper references to link to developers' tweets and the SMPS source code release.) |
||
(32 intermediate revisions by 12 users not shown) | |||
Line 1: | Line 1: | ||
− | + | '''Sample Music Playback System''' ('''SMPS''') is the common name of a family of audio playback engines (or "drivers") and storage formats used by various [[Sega]] consoles (including the [[Sega Mega Drive]], [[Sega Mega-CD]], [[Sega 32X]], [[Sega Master System]], [[Sega Game Gear]], and [[Sega Pico]]). "SMPS" is thought to be a colloquial term - there is no evidence to suggest this was the naming scheme of any official drivers, but is the most widely accepted name for the system. | |
− | |||
− | |||
− | + | Like other sound drivers, SMPS was designed as a means of processing audio information, allowing a console's CPU to communicate with sound chips on the board and create audible sound (i.e. "driving" the sound). It is usually associated with first-party Japanese Mega Drive games (where it was most predominantly used) - analogous to [[Sega of America]]'s use of the [[GEMS]] driver, and began appearing in games from the late 1980s until the aforementioned consoles bowed out of the market. | |
− | + | By sharing drivers between games, developers could create tools to quickly produce audio, and it allows for music and sound effects to be more easily ported between games. | |
− | + | ==Variants== | |
+ | ===Mega Drive and 32X=== | ||
+ | Mega Drive (and by extension, 32X) developers had a choice of which processor to run SMPS on; the 16-bit [[68000]], or the 8-bit [[Z80]]. The driver variants are known as '''SMPS 68000''' and '''SMPS Z80''' respectively. | ||
− | == | + | Some developers, such as [[Treasure]], chose to modify the driver, effectively making their own variants. Individual games such as ''[[Ristar]]'' also have their own modified drivers. |
− | + | ||
− | : | + | ====Source code==== |
+ | The source code to both SMPS-68000 and SMPS-Z80 was found and released by Hidden Palace in 2020<ref>https://hiddenpalace.org/News/Sega_of_Japan_Sound_Documents_and_Source_Code</ref>. The versions of the two drivers appear to be SMPS-68000 Type 1B and SMPS-Z80 Type 2 DAC. | ||
+ | |||
+ | {{Download | ||
+ | | title=SMPS-68000 source code | ||
+ | | file=SMPS-68000_source_code.zip | ||
+ | }} | ||
+ | {{Download | ||
+ | | title=SMPS-Z80 source code | ||
+ | | file=SMPS-Z80_source_code.zip | ||
+ | }} | ||
+ | |||
+ | ====Games which use SMPS 68000==== | ||
+ | =====Mega Drive===== | ||
+ | {{SoundDriverList|SMPS 68000|MD}} | ||
+ | |||
+ | =====32X===== | ||
+ | {{SoundDriverList|SMPS 68000|32X}} | ||
+ | |||
+ | ====Games which use SMPS Z80==== | ||
+ | =====Mega Drive===== | ||
+ | {{SoundDriverList|SMPS Z80|MD}} | ||
+ | |||
+ | =====32X===== | ||
+ | {{SoundDriverList|SMPS Z80|32X}} | ||
+ | |||
+ | ===Mega-CD=== | ||
+ | '''SMPS-PCM''' is variant of SMPS-68000 designed to work on the Mega-CD's second 68000 processor, giving it access to the system's [[RF5C164]] PCM chip. | ||
+ | |||
+ | ===Master System and Game Gear=== | ||
+ | SMPS drivers designed to work on the Z80 processors of the Master System and Game Gear were also produced. These tap into the two consoles' [[SN76489]] chip. | ||
+ | |||
+ | ===Pico=== | ||
+ | '''SMPS-Pico''' is a variant of SMPS-68000 that targets the Sega Pico. It plays audio using the [[SN76489]] and the Pico-specific [[UPD7759]] chip. | ||
+ | |||
+ | The source code to this particular SMPS variant was released on AssemblerGames some time around 2016. | ||
+ | |||
+ | {{Download | ||
+ | | title=Sega Pico Dev Tools | ||
+ | | file=SEGA_Pico_dev_tools.zip | ||
+ | }} | ||
+ | |||
+ | ==Naming== | ||
+ | The 'true' name of SMPS has been a subject of debate. Analysis of the source code reveals various possible names: | ||
+ | |||
+ | {| class="prettytable" style="width:auto;" | ||
+ | ! Name !! Usage | ||
+ | |- | ||
+ | | Sound | ||
+ | | Appears frequently in documentation (m5_edit.jxw, ver11.doc, etc.). In the source code, this is the name of the label that marks the driver's entry point (m5cnt13.src, mdcnt11.asm). | ||
+ | |- | ||
+ | | Sound-Sorce | ||
+ | | Appears in the header at the top of SMPS-Z80's source code files. Included with the source code is a [[wikipedia:sed|sed]] script that replaces the instances of this name with a parameter that is labelled 'game name'. This script was seemingly used on a handful of files, replacing 'Sound-Sorce' with 'MODEM_BOOT_ROM' and 'DICK_TRACY'. | ||
+ | |- | ||
+ | | Sound-Source | ||
+ | | Appears in the header at the top of SMPS-68000's and SMPS-Pico's source code files. It is also the name used by some developers who had used SMPS back in the 90s<ref>https://web.archive.org/web/20191006015702/https://twitter.com/Hikoshi_H/status/1180661206253596672</ref><ref>https://web.archive.org/web/20190920174036/https://twitter.com/Hikoshi_H/status/1169707879164608513</ref><ref>https://web.archive.org/web/20200719143541/https://twitter.com/Mazin__/status/105869176442331136</ref>. Included with the source code is a sed script that replaces the instances of this name with a parameter that is labelled 'game name'. | ||
+ | |- | ||
+ | | Sound-Sample | ||
+ | | Written on the SMPS-68000 and SMPS-Z80 source code's floppy disks. The SMPS-68000 source code has a Batch script (fmk.bat) that uses the aforementioned sed script to replace 'Sound-Source' with 'Sound-Sample'. | ||
+ | |- | ||
+ | | EASYSND | ||
+ | | The name of the zip file that holds another zip file which contains the SMPS-Pico source code. | ||
+ | |- | ||
+ | | PICOSND | ||
+ | | The name of the zip file which contains the SMPS-Pico source code. Also appears in various filenames and build scripts. | ||
+ | |- | ||
+ | | The PICO sound driver | ||
+ | | Used by SMPS-Pico's GENERIC.MAK and PICOSND.MAK files. | ||
+ | |} | ||
+ | |||
+ | ==Developers== | ||
+ | The names of several developers appear in SMPS' source code: | ||
+ | {| class="prettytable" style="width:auto;" | ||
+ | ! Name !! Role !! Source | ||
+ | |- | ||
+ | | [[Tokuhiko Uwabo]] || Maintainer of SMPS-Z80. || The header of each source code file. Also mentioned by his Japanese name in the 'm5_bord.jxw' document. | ||
+ | |- | ||
+ | | [[Hiroshi Kubota]] || Maintainer of SMPS-68000. || The header of each source code file. Also mentioned by his Japanese name in the 'readme.txt' document. | ||
+ | |- | ||
+ | | "M.Nagao" (presumably [[Masayuki Nagao]]) || Maintainer of SMPS-Pico. || The header of each source code file. | ||
+ | |- | ||
+ | | [[Ken Chao]] || 'Cleaned-up' the SMPS-Pico source code for use by U.S. and European developers. || The 'README.1ST' document. | ||
+ | |} | ||
+ | |||
+ | ==Technical details== | ||
+ | *[[SMPS/Headers|Headers]] | ||
+ | *[[SMPS/Voices and samples|Voices and samples]] | ||
+ | *[[SMPS/Song data|Song data]] | ||
+ | |||
+ | ==Tools== | ||
+ | *[[xm4smps]] | ||
+ | *[[xm3smps/oerg]] (official improved branch of [[xm3smps]]) | ||
== External links == | == External links == | ||
− | *[http://gdri.smspower.org/wiki/index.php/Mega_Drive/Genesis_Sound_Engine_List A list of the sound engines used on the | + | *[http://gdri.smspower.org/wiki/index.php/Mega_Drive/Genesis_Sound_Engine_List A list of the sound engines used on the Mega Drive] |
− | [[Category: | + | ==References== |
+ | <references /> | ||
+ | [[Category:Mega Drive sound drivers]] | ||
+ | [[Category:SMPS]] |
Revision as of 07:43, 30 March 2024
Sample Music Playback System (SMPS) is the common name of a family of audio playback engines (or "drivers") and storage formats used by various Sega consoles (including the Sega Mega Drive, Sega Mega-CD, Sega 32X, Sega Master System, Sega Game Gear, and Sega Pico). "SMPS" is thought to be a colloquial term - there is no evidence to suggest this was the naming scheme of any official drivers, but is the most widely accepted name for the system.
Like other sound drivers, SMPS was designed as a means of processing audio information, allowing a console's CPU to communicate with sound chips on the board and create audible sound (i.e. "driving" the sound). It is usually associated with first-party Japanese Mega Drive games (where it was most predominantly used) - analogous to Sega of America's use of the GEMS driver, and began appearing in games from the late 1980s until the aforementioned consoles bowed out of the market.
By sharing drivers between games, developers could create tools to quickly produce audio, and it allows for music and sound effects to be more easily ported between games.
Variants
Mega Drive and 32X
Mega Drive (and by extension, 32X) developers had a choice of which processor to run SMPS on; the 16-bit 68000, or the 8-bit Z80. The driver variants are known as SMPS 68000 and SMPS Z80 respectively.
Some developers, such as Treasure, chose to modify the driver, effectively making their own variants. Individual games such as Ristar also have their own modified drivers.
Source code
The source code to both SMPS-68000 and SMPS-Z80 was found and released by Hidden Palace in 2020[1]. The versions of the two drivers appear to be SMPS-68000 Type 1B and SMPS-Z80 Type 2 DAC.
Download SMPS-68000 source code
File: SMPS-68000_source_code.zip (231 kB) (info)
|
Download SMPS-Z80 source code
File: SMPS-Z80_source_code.zip (258 kB) (info)
|
Games which use SMPS 68000
Mega Drive
- Aa Harimanada (1993)
- Alien Soldier (1995)
- Ayrton Senna's Super Monaco GP II (1992)
- Battle Golfer Yui (1991)
- Bishoujo Senshi Sailor Moon (1994)
- Crayon Shin-chan: Arashi o Yobu Enji (1994)
- Doraemon: Yume Dorobou to 7 Nin no Gozans (1993)
- Dragon's Eye Plus: Shanghai III (1991)
- Dynamite Headdy (1994)
- Fatal Fury (1993)
- Fatal Fury 2 (1994)
- Golden Axe II (1991)
- Golden Axe III (1993)
- Gunstar Heroes (1993)
- Light Crusader (1995)
- Magical Taruruto-kun (1992)
- McDonald's Treasure Land Adventure (1993)
- Mega Games 2 (1993)
- Mega Games 3 (1993)
- Metal Fangs (1993)
- Michael Jackson's Moonwalker (1990)
- Mighty Morphin Power Rangers: The Movie (1995)
- Nekketsu Kouko Dodgeball Bu: Soccer Hen MD (1992)
- Ninja Burai Densetsu (1991)
- OutRunners (1994)
- Party Quiz Mega Q (1993)
- Phantasy Star IV: The End of the Millennium (1993)
- Pulseman (1994)
- Ristar (1995)
- Samurai Shodown (1994)
- Shadow Dancer: The Secret of Shinobi (1990)
- Shinobi III: Return of the Ninja Master (1993)
- Sonic the Hedgehog (1991)
- Sonic the Hedgehog 2 (1992)
- Streets of Rage (1991)
- Strider (1990)
- The Revenge of Shinobi (1989)
- Toki: Going Ape Spit (1992)
- World Cup Soccer (1989)
- Wrestle War (1991)
32X
- Cosmic Carnage (1995)
- Metal Head (1995)
- Stellar Assault (1995)
- Virtua Racing Deluxe (1994)
Games which use SMPS Z80
Mega Drive
- 16 Zhang Mahjong (1992)
- Advanced Daisenryaku: Deutsch Dengeki Sakusen (1991)
- Air Buster: Trouble Specialty Raid Unit (1991)
- Alex Kidd in the Enchanted Castle (1989)
- Alien Storm (1991)
- Altered Beast (1988)
- Arnold Palmer Tournament Golf (1989)
- Arrow Flash (1990)
- Art of Fighting (1994)
- Atomic Robo-Kid (1990)
- ATP Tour Championship Tennis (1995)
- Bahamut Senki (1991)
- Battletoads (1993)
- Bonanza Bros. (1991)
- Cadash (1992)
- Castle of Illusion Starring Mickey Mouse (1990)
- Chou Kyuukai Miracle Nine (1995)
- Columns (1990)
- Columns III: Revenge of Columns (1993)
- CyberBall (1990)
- Dahna Megami Tanjou (1991)
- Dangerous Seed (1990)
- Dick Tracy (1991)
- DJ Boy (1990)
- Dyna Brothers (1992)
- Dyna Brothers 2 (1993)
- Dynamite Duke (1990)
- ESWAT: City Under Siege (1990)
- F1 Circus MD (1991)
- Fatal Labyrinth (1990)
- Fighting Masters (1991)
- Flicky (1991)
- From TV Animation Slam Dunk: Kyougou Makkou Taiketsu! (1995)
- Gain Ground (1991)
- Game no Kanzume Otokuyou (1995)
- Generals of the Yang Family: Clan of Heroes (2017)
- Ghostbusters (1990)
- Gouketsuji Ichizoku (1994)
- Growl (1991)
- Hei Tao 2: Super Big 2 (1996)
- Honoo no Toukyuuji Dodge Danpei (1992)
- Huan Le Tao Qi Shu: Smart Mouse (1994)
- J.League Pro Striker 2 (1994)
- J.League Pro Striker Kanzenban (1993)
- Jiu Ji Ma Jiang II: Ye Yan Bian (1995)
- King of the Monsters (1993)
- King of the Monsters 2 (1994)
- Kujaku Ou 2: Geneijou (1989)
- Magical Hat no Buttobi Turbo! Daibouken (1990)
- Marvel Land (1991)
- Mazin Saga: Mutant Fighter (1993)
- Mega Anser (1990)
- Mega Man: The Wily Wars (1994)
- Mega Man: The Wily Wars (2021)
- Mercs (1991)
- Mighty Morphin Power Rangers (1994)
- Mystic Defender (1989)
- OutRun (1991)
- OutRun 2019 (1993)
- OutRunners (1994)
- Phantasy Star III: Generations of Doom (1990)
- Pro Striker Final Stage (1995)
- Pro Yakyuu Super League '91 (1991)
- Puzzle & Action: Ichidant-R (1995)
- Puzzle & Action: Tant-R (1994)
- QuackShot Starring Donald Duck (1991)
- Rambo III (1989)
- Rastan Saga II (1990)
- Rockman X3 (1996)
- Saint Sword (1991)
- Sangokushi Retsuden: Ransei no Eiyuutachi (1991)
- Shi San Zhang Ma Jiang: Zhong Guo Mei Nv Pian (1993)
- Shougi no Hoshi (1991)
- Shura no Mon (1992)
- Sonic & Knuckles (1994)
- Sonic 3D: Flickies' Island (1996)
- Sonic the Hedgehog 2 (1992)
- Sorcerian (1990)
- Space Harrier II (1988)
- Squirrel King (199x)
- Super Hang-On (1989)
- Super Mario World (1996)
- Super Monaco GP (1990)
- Super Real Basketball (1990)
- Surging Aura (1995)
- Syd of Valis (1992)
- Tecmo World Cup '92 (1992)
- Tetris (1989)
- The Hybrid Front (1994)
- The Lion King II (1997)
- Thunderbolt II (1995)
- Ultimate Qix (1991)
- Uzu Keobukseon (1992)
- Viewpoint (1994)
- Virtua Fighter 2 (1996)
- Virtua Fighter 2 vs. Tekken 2 (1997)
- Virtua Racing (1994)
- Wani Wani World (1992)
- Whip Rush (1990)
- Wimbledon Championship Tennis (1994)
- Wonder Boy III: Monster Lair (1990)
- World of Illusion Starring Mickey Mouse and Donald Duck (1992)
- Wu Kong Wai Zhuan (xxxx)
- Yi Men Ying Lie: Yang Jia Jiang (1993)
- Yuu Yuu Hakusho Gaiden (1994)
- Zoom! (1990)
- Gensou Senki Kokou no Ryuu: Crying Dragon (unreleased)
- Tecmo Cup Football Game (unreleased)
32X
- Chaotix (1995)
- Tempo (1995)
- Zaxxon's Motherbase 2000 (1995)
Mega-CD
SMPS-PCM is variant of SMPS-68000 designed to work on the Mega-CD's second 68000 processor, giving it access to the system's RF5C164 PCM chip.
Master System and Game Gear
SMPS drivers designed to work on the Z80 processors of the Master System and Game Gear were also produced. These tap into the two consoles' SN76489 chip.
Pico
SMPS-Pico is a variant of SMPS-68000 that targets the Sega Pico. It plays audio using the SN76489 and the Pico-specific UPD7759 chip.
The source code to this particular SMPS variant was released on AssemblerGames some time around 2016.
Download Sega Pico Dev Tools
File: SEGA_Pico_dev_tools.zip (625 kB) (info)
|
Naming
The 'true' name of SMPS has been a subject of debate. Analysis of the source code reveals various possible names:
Name | Usage |
---|---|
Sound | Appears frequently in documentation (m5_edit.jxw, ver11.doc, etc.). In the source code, this is the name of the label that marks the driver's entry point (m5cnt13.src, mdcnt11.asm). |
Sound-Sorce | Appears in the header at the top of SMPS-Z80's source code files. Included with the source code is a sed script that replaces the instances of this name with a parameter that is labelled 'game name'. This script was seemingly used on a handful of files, replacing 'Sound-Sorce' with 'MODEM_BOOT_ROM' and 'DICK_TRACY'. |
Sound-Source | Appears in the header at the top of SMPS-68000's and SMPS-Pico's source code files. It is also the name used by some developers who had used SMPS back in the 90s[2][3][4]. Included with the source code is a sed script that replaces the instances of this name with a parameter that is labelled 'game name'. |
Sound-Sample | Written on the SMPS-68000 and SMPS-Z80 source code's floppy disks. The SMPS-68000 source code has a Batch script (fmk.bat) that uses the aforementioned sed script to replace 'Sound-Source' with 'Sound-Sample'. |
EASYSND | The name of the zip file that holds another zip file which contains the SMPS-Pico source code. |
PICOSND | The name of the zip file which contains the SMPS-Pico source code. Also appears in various filenames and build scripts. |
The PICO sound driver | Used by SMPS-Pico's GENERIC.MAK and PICOSND.MAK files. |
Developers
The names of several developers appear in SMPS' source code:
Name | Role | Source |
---|---|---|
Tokuhiko Uwabo | Maintainer of SMPS-Z80. | The header of each source code file. Also mentioned by his Japanese name in the 'm5_bord.jxw' document. |
Hiroshi Kubota | Maintainer of SMPS-68000. | The header of each source code file. Also mentioned by his Japanese name in the 'readme.txt' document. |
"M.Nagao" (presumably Masayuki Nagao) | Maintainer of SMPS-Pico. | The header of each source code file. |
Ken Chao | 'Cleaned-up' the SMPS-Pico source code for use by U.S. and European developers. | The 'README.1ST' document. |
Technical details
Tools
- xm4smps
- xm3smps/oerg (official improved branch of xm3smps)
External links
References
- ↑ https://hiddenpalace.org/News/Sega_of_Japan_Sound_Documents_and_Source_Code
- ↑ https://web.archive.org/web/20191006015702/https://twitter.com/Hikoshi_H/status/1180661206253596672
- ↑ https://web.archive.org/web/20190920174036/https://twitter.com/Hikoshi_H/status/1169707879164608513
- ↑ https://web.archive.org/web/20200719143541/https://twitter.com/Mazin__/status/105869176442331136