starblad: MAME ROM Information. History:
Starblade (c) 1991 Namco.
A 3-D space shoot'em up featuring 2 separate missions; the first is to destroy the planet 'Red Eye' while the second is to wipe out the enemy fleet and their leader. The game's sit-down cabinet featured a seat that vibrated whenever the player was hit, either by incoming fire or by enemy objects such as ships, asteroids etc. The yoke joystick - which had a fire button situated at the top of the stick, underneath where the player's thumb sits - was very similar in appearance and feel to that used in Atari's 1983 wireframe classic, "Star Wars (Atari)".
- TECHNICAL -
Namco System 21 hardware
Game ID : ST
Main CPU : (2x) 68000 (@ 12.288 Mhz), M6809 (@ 3.072 Mhz), HD63705 (@ 2.048 Mhz), (2x) TMS32025 (@ 24 Mhz)
Sound Chips : C140 (@ 32 Khz), YM2151 (@ 3.57958 Mhz)
Players : 1
Control : stick
Buttons : 4
- TRIVIA -
Released in September 1991 in Japan.
Victor Entertainment released a limited-edition soundtrack album for this game (Starblade & Galaxian3 - Project Dragon : Namco Game Sound Express Vol.06 - VICL-15009) on 21/03/1992.
- SERIES -
1. Starblade (1991)
2. Star Blade - Operation Blue Planet (2001)
- STAFF -
Chief director : H. Nakatani
Assistant director : K. Kobayashi
Programmers : Norimasa Matsuura, Y. Saitoh, Y. Ohmori
Music and sound effects : Shinji Hosoe
Visual director : W. Yanagawa
Visual designers : N. Kumagai, M. Tejima, M. Kimura
Industrial designer : N. Yoshimatsu
Mechanical designers : S. Kanebako, H. Igarashi, T. Wakayama, J. Uchida
Electrical designers : M. Yamada, O. Morita, M. Ito
Producers : K. Sawano, M. Yamada
- PORTS -
* Consoles :
Sega Mega-CD (1994)
Panasonic 3DO [JP] (Dec. 16, 1994; "Starblade [Model FZ-SJ5351]")
Sony PlayStation (1995, "Starblade Alpha")
Sony PlayStation 2 (2005, as a bonus game in "Tekken 5")
- SOURCES -
Game's rom.
Machine's picture.
MAME Info:
0.62 [Phil Stroffolino]
0.55 [Phil Stroffolino]
NOTE:
- Starblade is available on the Playstation as Starblade Alpha, with the option to play in the original setting or an update with texture mapping on the polygons.
WIP:
- 0.133u1: hap properly added support for Namco System 2 multiple posirq anyway, this fixes Starblade large polygons displayed.
- 0.130u1: Changed description to 'Starblade (Japan)'.
- 0.120u1: Phil Stroffolino added gradient colors in Starblade and fixed crash in 2nd stage.
- 4th October 2007: Phil Stroffolino - One more mystery solved - background colors for Starblade's animated high score presentation are now correct - see the screenshot below. An updated MAME driver will be submitted soon.
- 0.119u1: Changed TMS32025 CPU6 clock speed to 96MHz. Added 2x c76.rom's to cpu5 and 6. Fixed rom names.
- 5th September 2007: Phil Stroffolino - I'm wrapping up what should be the last few bits of DSP Integration. A few open issues remain, but the final driver should be ready to publish by this weekend.
- 27th August 2007: Phil Stroffolino - Trojan for Namco System21 DSP BIOS is essentially complete, and ready to test on real hardware, but I ran into a wrinkle. The original intention was to extract the BIOS code, export it to shared RAM, then write it to EPROM, where it could be extracted using an off-the shelf EPROM reader. As it happens, the (Namco) EPROM handling currently implemented in MAME is not at all accurate to real hardware. It basically treats the address range for the EPROM as if it were normal RAM, and always reports "not busy" when EPROM state is queried. This is enough to satisfy the typical emulated game's use of EPROM for saved settings, etc. However, it would be very easy to write code that works in MAME, but fails completely on real hardware. When using real EPROM, busy states are important, you must take care to only write single bytes (not whole words), and you must take special care to "reinitialize" chunks of EPROM before storing replacement values there. Even more troublesome is that there physically isn't enough EPROM space on the System21 boardset to store the entire DSP BIOS. In any event, I will be further studying the ues of EPROM to improve emulation accuracy and better smoke-test the trojan. I will also be adding code to the trojan to display the BIOS contents onscreen in ascii using System21's sprite system as a backup plan. I don't want to waste anyone's time running trojans that are flawed, or my time rewriting experimental trojans.
- 24th August 2007: Phil Stroffolino - Something interesting about Starblade - the extra graphics aren't just decorative, as I'd thought. The big "static" objects that are now appearing can hide enemy starships and block your shots, explaining why the collision detection seemed kludgy when those large objects are invisible. The extra objects also often contain shootable "weak point" targets that can be blasted, explaining why shots into thin air sometimes caused a firey (sprite-based) explosion to appear. While the game is still at its heart a simple rails shooter, the extra graphics do make the game considerably more interesting. A small puzzle - occasionally, the DSPs draw quads "directly" to the screen, without using the 3D models encoded in the Point ROMs. This is usually done only for simple backdrop graphics, i.e. a series of quads to simulate a sky-box gradient. The color references for these quads, however, are a complete mystery. They don't appear to be pen references, as they are clearly wrong for all of the selectable color banks. I suspect a color-lookup table specific to "directly-drawn-quads" that is initialized on startup. In any event, all due (Sys21) focus is now on completing my trojan for the System21 DSP BIOS.
- 22nd August 2007: Phil Stroffolino - Starblade! As I'd suspected, the missing graphics had nothing to do with DSP emulation or use of a fake BIOS, but rather bugs in the 68k emulation - specifically subtleties with interrupt handling. I still have some tidying up before it's ready to submit. Moreover, I'd like to complete a proper trojan to extract the real BIOS code, which will allow a number of kludges and hacks to be removed from the driver.
- 21st August 2007: Phil Stroffolino - I finally found the missing graphics in MAME's emulation of Starblade. The master 68k sends object descriptions for all "dynamic" 3D objects directly to the DSPs for rendering - these are the graphics that are drawn correctly by MAME even now. Specifications for the remaining "static" 3D objects are written by the slave 68k cpu to a block of shareram that is normally used only for communication between the master and slave 68k. All the missing object descriptors are there, and it would be easy enough to hack the starblade driver to draw them, but it's not yet clear how they end up being transfered to the DSPs for rendering. Should be untangled soon.
- 20th August 2007: Phil Stroffolino - I've made decent progress with Namco System21 hardware, particularly with the older titles. Findings include: Winning Run is the original prototype hardware, with significant differences from newer hardware (Starblade, Cybersled). Winning Run uses a single DSP, and has (apparently) no internal BIOS. The master 68k uploads 100% of the DSP code at boot time. Winning Run doesn't use sprite hardware, but rather has an additional 68k processor whose sole function is to manage a 256 color bitmap layer. The most interesting discovery is use of Point RAM. A table of quad attributes is stored there, explicitly by the master 68k, that provide color and vertex indices relative to {x,y,z} coordinates in the Point ROMs. This same table is also used by the newer System21 games - games that were "mostly working" did so only because there similar information happens to be redundantly encoded in the Point ROMs themselves. winrun.zip is actually "Winning Run: Suzuka Grand Prix" Driver's Eyes runs on transitional hardware - it replaces the bitmap layer and GPU with the more modern sprite hardware, but still uses the older DSP configuration. The point ram control registers have been more fully documented. No progress yet with Stadblade's missing graphics, but I hope to untangle that soon.
- 0.118u2: Atari Ace fixed MACHINE_RESET in the Namco System 21 driver, this fixed MAME crashes when you reset
- 0.102: Aaron Giles fixed missing 3D graphics.
- 0.97u1: Phil Stroffolino updated the Namco System 21 driver. Starblade is working with emulated master/slave DSPs. Graphic updates are a bit choppy; I believe there are 4 slaves and one master on the real PCB, with work distributed across the slaves. Some background objects are still missing in Starblade - the giant "starships" in the background of the first stage, for example (sprites are present showing burning fires which are supposed to be superimposed on them). The "direct drawing" feature is used during the high score presentation; colors are likely wrong, and there are missing graphics there as well (hexagons).
- 0.86u3: Regression fixes and restored polygon drawing in Starblade [R. Belmont].
- 0.78u5: Phil Stroffolino hooked up the view transform, used in Starblade to tilt the screen when player is targeting the edges of the playfield.
- 0.62: Phil Stroffolino added Starblade (Namco 1991).
- 24th August 2002: Phil Stroffolino submitted the Namco System 21 and 22 drivers. Starblade and Solvalou are playable though missing some background graphics, the rest suffer from various problems.
- 23rd August 2002: Phil Stroffolino reported some progress with the Namco System 21 driver, which supports Starblade, Air Combat, Cyber Sled and Solvalou. All games have full sound support thanks to R. Belmont. Starblade is fully playable, but the other games are preliminary and suffer from various graphics glitches and lack of input ports.
- 0.55: Added Starblade (Testdriver). Known issues: Some corrupt point data.
LEVELS: 2
Other Emulators:
* Mjolnir
Recommended Games (Starfighter):
Starship 1
Star Fire
Star Fire 2
Star Hawk
Tailgunner
Tunnel Hunt
Warp Speed
Space Encounters
Space Seeker
Buck Rogers: Planet of Zoom
Gravitar
Rougien
Star Trek
Tac/Scan
Ambush
Blaster
Cube Quest
I, Robot
Star Wars
The Empire Strikes Back
Star Wars Arcade
Star Wars Trilogy
Star Wars Pod Racer
Tube Panic
High Voltage
Mirax
Splendor Blast
Vs. Star Luster
Shrike Avenger
Thunder Ceptor
Galaxy Force 2
Starblade
Galactic Storm
Space Lords
Solar Assault
Hyperdrive
Vapor TRX
Romset: 9144 kb / 25 files / 2.99 zip
MAME XML Output:
   | <game name="starblad" sourcefile="namcos21.c"> |
   |    | <description>Starblade (Japan)</description> |
   |    | <year>1991</year> |
   |    | <manufacturer>Namco</manufacturer> |
   |    | <rom name="st1-mp-u.bin" size="524288" crc="483a311c" sha1="dd9416b8d4b0f8b361630e312eac71c113064eae" region="maincpu" offset="0"/> |
   |    | <rom name="st1-mp-l.bin" size="524288" crc="0a4dd661" sha1="fc2b71a255a8613693c4d1c79ddd57a6d396165a" region="maincpu" offset="1"/> |
   |    | <rom name="st1-sp-u.bin" size="262144" crc="9f9a55db" sha1="72bf5d6908cc57cc490fa2292b4993d796b2974d" region="slave" offset="0"/> |
   |    | <rom name="st1-sp-l.bin" size="262144" crc="acbe39c7" sha1="ca48b7ea619b1caaf590eed33001826ce7ef36d8" region="slave" offset="1"/> |
   |    | <rom name="st1-snd0.bin" size="131072" crc="c0e934a3" sha1="678ed6705c6f494d7ecb801a4ef1b123b80979a5" region="audiocpu" offset="c000"/> |
   |    | <rom name="sys2mcpu.bin" size="8192" crc="a342a97e" sha1="2c420d34dba21e409bf78ddca710fc7de65a6642" region="mcu" offset="0"/> |
   |    | <rom name="sys2c65c.bin" size="32768" crc="a5b2a4ff" sha1="068bdfcc71a5e83706e8b23330691973c1c214dc" region="mcu" offset="8000"/> |
   |    | <rom name="c67.bin" size="8192" crc="6bd8988e" sha1="c9ec18d5f88d53976b94444eedc64d5568155958" region="dspmaster" offset="0"/> |
   |    | <rom name="c67.bin" size="8192" crc="6bd8988e" sha1="c9ec18d5f88d53976b94444eedc64d5568155958" region="dspslave" offset="0"/> |
   |    | <rom name="st1-obj0.bin" size="524288" crc="5d42c71e" sha1="f1aa2bb31bbbcdcac8e94334b1c78238cac1a0e7" region="gfx1" offset="0"/> |
   |    | <rom name="st1-obj1.bin" size="524288" crc="c98011ad" sha1="bc34c21428e0ef5887051c0eb0fdef5397823a82" region="gfx1" offset="80000"/> |
   |    | <rom name="st1-obj2.bin" size="524288" crc="6cf5b608" sha1="c8537fbe97677c4c8a365b1cf86c4645db7a7d6b" region="gfx1" offset="100000"/> |
   |    | <rom name="st1-obj3.bin" size="524288" crc="cdc195bb" sha1="91443917a6982c286b6f15381d441d061aefb138" region="gfx1" offset="180000"/> |
   |    | <rom name="st1-data-u.bin" size="131072" crc="2433e911" sha1="95f5f00d3bacda4996e055a443311fb9f9a5fe2f" region="user1" offset="0"/> |
   |    | <rom name="st1-data-l.bin" size="131072" crc="4a2cc252" sha1="d9da9992bac878f8a1f5e84cc3c6d457b4705e8f" region="user1" offset="1"/> |
   |    | <rom name="st1-pt0-h.bin" size="524288" crc="84eb355f" sha1="89a248b8be2e0afcee29ba4c4c9cca65d5fb246a" region="user2" offset="1"/> |
   |    | <rom name="st1-pt0-u.bin" size="524288" crc="1956cd0a" sha1="7d21b3a59f742694de472c545a1f30c3d92e3390" region="user2" offset="2"/> |
   |    | <rom name="st1-pt0-l.bin" size="524288" crc="ff577049" sha1="1e1595174094e88d5788753d05ce296c1f7eca75" region="user2" offset="3"/> |
   |    | <rom name="st1-pt1-h.bin" size="524288" crc="96b1bd7d" sha1="55da7896dda2aa4c35501a55c8605a065b02aa17" region="user2" offset="200001"/> |
   |    | <rom name="st1-pt1-u.bin" size="524288" crc="ecf21047" sha1="ddb13f5a2e7d192f0662fa420b49f89e1e991e66" region="user2" offset="200002"/> |
   |    | <rom name="st1-pt1-l.bin" size="524288" crc="01cb0407" sha1="4b58860bbc353de8b4b8e83d12b919d9386846e8" region="user2" offset="200003"/> |
   |    | <rom name="st1-voi0.bin" size="524288" crc="5b3d43a9" sha1="cdc04f19dc91dca9fa88ba0c2fca72aa195a3694" region="c140" offset="0"/> |
   |    | <rom name="st1-voi1.bin" size="524288" crc="413e6181" sha1="e827ec11f5755606affd2635718512aeac9354da" region="c140" offset="80000"/> |
   |    | <rom name="st1-voi2.bin" size="524288" crc="067d0720" sha1="a853b2d43027a46c5e707fc677afdaae00f450c7" region="c140" offset="100000"/> |
   |    | <rom name="st1-voi3.bin" size="524288" crc="8b5aa45f" sha1="e1214e639200758ad2045bde0368a2d500c1b84a" region="c140" offset="180000"/> |
   |    | <chip type="cpu" tag="maincpu" name="68000" clock="12288000"/> |
   |    | <chip type="cpu" tag="slave" name="68000" clock="12288000"/> |
   |    | <chip type="cpu" tag="audiocpu" name="M6809" clock="3072000"/> |
   |    | <chip type="cpu" tag="mcu" name="HD63705" clock="2048000"/> |
   |    | <chip type="cpu" tag="dspmaster" name="TMS32025" clock="24000000"/> |
   |    | <chip type="cpu" tag="dspslave" name="TMS32025" clock="96000000"/> |
   |    | <chip type="audio" tag="lspeaker" name="Speaker"/> |
   |    | <chip type="audio" tag="rspeaker" name="Speaker"/> |
   |    | <chip type="audio" tag="c140" name="C140" clock="21390"/> |
   |    | <chip type="audio" tag="ymsnd" name="YM2151" clock="3579580"/> |
   |    | <display tag="screen" type="raster" rotate="0" width="496" height="480" refresh="60.000000" /> |
   |    | <sound channels="2"/> |
   |    | <input players="1" buttons="4" coins="2" service="yes"> |
   |    |    | <control type="stick" minimum="96" maximum="159" sensitivity="20" keydelta="10"/> |
   |    | </input> |
   |    | <dipswitch name="Service Mode" tag="DSW" mask="1"> |
   |    |    | <dipvalue name="Off" value="1" default="yes"/> |
   |    |    | <dipvalue name="On" value="0"/> |
   |    | </dipswitch> |
   |    | <dipswitch name="DSW2" tag="DSW" mask="2"> |
   |    |    | <dipvalue name="Off" value="2" default="yes"/> |
   |    |    | <dipvalue name="On" value="0"/> |
   |    | </dipswitch> |
   |    | <dipswitch name="DSW3" tag="DSW" mask="4"> |
   |    |    | <dipvalue name="Off" value="4" default="yes"/> |
   |    |    | <dipvalue name="On" value="0"/> |
   |    | </dipswitch> |
   |    | <dipswitch name="DSW4" tag="DSW" mask="8"> |
   |    |    | <dipvalue name="Off" value="8" default="yes"/> |
   |    |    | <dipvalue name="On" value="0"/> |
   |    | </dipswitch> |
   |    | <dipswitch name="DSW5" tag="DSW" mask="16"> |
   |    |    | <dipvalue name="Off" value="16" default="yes"/> |
   |    |    | <dipvalue name="On" value="0"/> |
   |    | </dipswitch> |
   |    | <dipswitch name="DSW6" tag="DSW" mask="32"> |
   |    |    | <dipvalue name="Off" value="32" default="yes"/> |
   |    |    | <dipvalue name="On" value="0"/> |
   |    | </dipswitch> |
   |    | <dipswitch name="DSW7" tag="DSW" mask="64"> |
   |    |    | <dipvalue name="Off" value="64" default="yes"/> |
   |    |    | <dipvalue name="On" value="0"/> |
   |    | </dipswitch> |
   |    | <dipswitch name="DSW8" tag="DSW" mask="128"> |
   |    |    | <dipvalue name="Off" value="128" default="yes"/> |
   |    |    | <dipvalue name="On" value="0"/> |
   |    | </dipswitch> |
   |    | <driver status="imperfect" emulation="good" color="good" sound="good" graphic="imperfect" savestate="unsupported" palettesize="32768"/> |
|
|