Avenue Fighter II, paper trails
Dec 22, 2021
Avenue Fighter II, paper trails
The late 90s noticed the emergence of Capcom on the earth of arcades. The Osaka based mostly firm appeared to provide one hit after one other with Ghouls’n Ghosts in 1988, Last Struggle in 1989 and Avenue Fighter II in 1991 amongst a myriad of different glorious video games.
Throughout this period, a video-game fanatic couldn’t go to an arcade with out seeing a number of Capcom cupboards, proof of their reputation with each gamers and operators.
Over the previous six months, I’ve spent my spare time learning Capcom success tales and specifically the genesis of Avenue Fighter II. If discovering the engineering behind the CPS-1 was fascinating, I discovered the facet story of how builders tracked ROM funds utilizing paper and scissors equally attention-grabbing.
CP-System 101
Launched in 1988, the CPS-1 (a.ok.a CP-System on the time) was Capcom unified arcade platform. Amongst its many inventions was a strong graphic rendering pipeline.
If it nonetheless embraced the idea of layers, the CPS-1 deserted the constraint of rectangular sprites. The OBJ layer is constructed by way of 16×16 models referred to as “tile”. In Avenue Fighter II, tiles are mixed to make character poses. This strategy gave appreciable freedom to the artists who proceeded with designing “objects” of arbitrary dimensions and shapes.
Ryu’s victory pose (29 tiles) | Sagat’s Tiger Uppercut pose (30 tiles) | Honda’s Leap pose (45 tiles) | Chun-li being superior pose (25 tiles) |
In addition to a number of fundamental operations resembling horizontal and vertical flipping, the CPS-1 can not alter tiles. It has no rotating or scaling capabilities. What made the machine stand out was the sheer quantity of tiles it may manipulate per body, reported to be within the neighborhood of 256.
It was an actual tour-de-force on the time to make a lot of the display screen transfer. The “wow” issue immensely contributed to the success of the video games. In a sport like “The Punisher”, the kingpin ultimate boss is made from poses reaching as much as 80 tiles.
“The Punisher” display screen will be nearly coated with sprites (Supply: rq87.flyingomelette.com).
ROM Finances
If the CPS-1 capabilities have been a blessing for artists, it was an issue for challenge managers. In an period the place ROM chips have been very costly, a sport was allotted a ROM funds at its starting which it couldn’t exceed.
Earlier than the CPS-1, remaining throughout the funds was a easy matter of a division. The variety of #sprites allowed to the artwork group was ROM measurement / rectangular sprite measurement. However the free type issue launched a monitoring downside.
The sheet system
The answer got here beneath the type of paper sheets and scissors.
To be able to make the very best use of the capability we had, we wrote the ROM’s capability on a board, and minimize and paste the pixel characters on the board.
If there was area left on the board, then there was open capability within the ROM. So, from there we began filling within the areas, like a puzzle.
One factor that occurred that’s kinda attention-grabbing, we saved making the ending for final, and by the point we acquired there we have been all out of capability. We have been questioning what to do, after we discovered a board that had gone lacking beneath a desk.
We referred to as it the ”Mirac-ulous Reminiscence.”
– Akira Nishitani, SF2 growth interview
A clean sheet
For the reason that CPS-1 makes use of 16 listed colours (4-bit per pixel), a sheet of 16×16 tiles represents 16x16x16x16 / 2 = 32 KiB. For a sport resembling Avenue Fighter II: World Warrior, the group allotted 4.6 MiB out of its 6 MiB ROM funds to sprites and due to this fact printed 144 paper sheets.
Sheets archeology
This method is a golden alternative for a software program archaeologist. Amongst different issues one can see which options have been added later (these could be applied utilizing left-over area and due to this fact much less elegantly minimize out).
Sadly, I used to be solely capable of come throughout two of them. I discovered a Dhalsim within the article “Last Struggle Developer’s Interview”[1] and a Ryu within the ebook “How To Make Capcom Combating Characters”[2].
Sheet 0x3300 |
Sheet 0x4500 |
Discover the tile addressing system within the higher left of every sheet (Dhalsim 0x3300
and Ryu 0x4500
). The primary two hex characters give a price [0-255] which is the sheet ID whereas the 2 remaining are the tile ID inside that sheet.
Additionally discover how the sheet tiles are rectangular as a substitute of sq.. The CP-System makes use of a decision of 384×224 which facet ratio differs from the 4:3 facet ratio of a CRT. Had designers drew in squares, the outcome would have been compressed on display screen. By drawing in rectangles, they primarily reverse-stretched the visible property so tiles could be displayed as they have been drawn. This non-square pixel system was a nightmare for the artwork group.
After I was engaged on Forgotten Worlds, I seen the issue of facet ratio. “The pixels should not sq.!” I informed my boss.
“Unimaginable, I ordered them to be sq.!” he replied and referred to as {hardware} on the spot.
“The pixels are sq.!” he replied.
Later I protested once more to which my boss replied it was a calculation error.
– Akira Yasuda, SF2 producer[3])
It was disappointing to see that solely two sheets had come out however it was potential to reconstruct them utilizing the imprint left within the ROM. Because of mame and sf2platinium offering the GFX-ROM format, a software[4] was written to automate the method. With all of the sheets reconstructed, it was evaluation and speculation time.
Exploring the sheets
The CPS-1 works with 4 layers. The OBJ layer of Avenue Fighter II is made from 144 sheets totaling 4.6MiB. The remaining 1.4MiB is used for the background and frontground layers referred to as SCROL1 (16 sheets), SCROL2 (8 sheets), and SCROL3 (23 sheets).
Probably the most byte-heavy characters are Zangief (19), adopted by Honda (15), Dhalsim (14, he’s slim however stretches rather a lot!), Blanka (15), Ryu (13.5), Guile (11), Chun-li (10), Dictator (9, his cape takes a complete sheet!), Sagat (6), Boxer (6), Claw (6), and Ken (3).
The primary sheet options, with out shock, the principle protagonist Ryu.
Discover how Ryu’s prime hair for 0x69
/0x6A
was positioned at 0x6F
/0x9F
with a view to not disturb the structure. Why the hair of the highest left pose is offsetted is unknown. Might it’s that GFX ROM handle 0x0000
couldn’t be used? Analyzing different video games additionally confirmed that tile 0x0000
was by no means used.
Ken is a patch
|
||||||||||||||||
Ryu palette |
||||||||||||||||
|
||||||||||||||||
Ken palette |
Wanting on the pie chart, we will see that Ken character is consuming an impossibly small quantity of three sheets.
That’s as a result of Ken is a patch on prime of Ryu tiles. Ryu palette is specifically designed to be pores and skin tone appropriate with Ken. Solely the garments and face colours differ.
The patching is apparent on sheet 0x0100
the place Ryu’s profitable pose 0x76
is subsequent to Ken 2×2 patch at 0x70
.
Ken’s victory pose begins with Ryu’s pose. The palette is modified and solely differing tiles are used. Discover how Ryu’s tooth white colour comes from his garments. For Ken, artists needed to reuse a few of the pores and skin colour as a result of Ken’s kimono is crimson.
Looking crumbles
In sheet 0x4700
(“Ken is patch” part), we will see a 2×2 portrait at 0xC0
that isn’t a fighter. That is the truth is the image of the event group. They’re featured within the credit score on the finish of the sport. Discover the way it options neither correct footage nor give actual names. Possible carried out so to keep away from expertise poaching.
Enjoyable truth: “NIN” is the alias of Akira Nishitani who was a producer at Capcom. It was used for all excessive scores in all video games he labored on together with Forgotten Worlds, Last Struggle, and Avenue Fighter 2.
No small saving
Builders appear to have been so brief on ROM that they even used partial pose symmetry. In 0x4E00
, Sagat’s left leg is lacking at 0xBA
. To attract it, the CPS-1 is instructed to make use of the fitting leg tiles and flip them horizontally.
Dhalsim (0x3300) sheet variations
Dhalsim reconstructed sheet is a close to excellent match. Though we will see that the pose outlined in crimson didn’t make the minimize. It was sacrificed to Chun-li’s “Hundred Rending Legs” which might point out it was a later addition. At 0x4C
we will see crumble area was allotted to Blanka.
Ryu (0x4500) sheet variations
Comparable variations will be seen in Ryu’s sheet. Two poses (at 0xC2
and 0xCC
) have been deleted earlier than transport to accommodate Chun-li’s “Spinning Hen Kick” (a transfer additionally added on the finish of growth?) and the group credit score portraits.
For the way lengthy was the sheet system used?
With highly effective workstations such because the X68000 round on the time, I all the time questioned for a way lengthy the sheet system was used earlier than a software was written to compile the GFX property. With the power to take a look at different sport sheets, it was potential to make a tough estimate.
The primary vacation spot was to go to all video games made by the identical group beginning with titles launched previous to SF2, Forgotten World and Last Struggle. Though I didn’t take the time to find the palettes and used a default greyscale, it was nonetheless potential to see shapes distinctively.
Forgotten World sheet (1988) | Last Struggle sheet (1989) |
With out shock, the identical construction was discovered. Later video games resembling Avenue Fighter 2: Champion Version and Avenue Fighter 2: Hyper Combating have been additionally checked. The GFX acquired minimal enhancements[5] and the sheet construction stays unchanged.
Avenue Fighter 2: Champion Version (1992) | Avenue Fighter 2: Hyper Combating sheet (1992) |
Different Capcom groups
Capcom had a number of titles produced in parallel by completely different groups. Checking different groups’ work liable for Ghouls ‘n Ghosts and Strider confirmed as soon as once more the identical course of albeit much less crammed.
Ghouls ‘n Ghosts sheet (1988) | Strider sheet (1989) |
Non-Capcom video games
Some CPS-1 video games weren’t produced by Capcom. This was the case for Pang-3 by Mitchell Company. As soon as once more, no adjustments.
CPS-2 and Tremendous Avenue Fighter 2
It looks as if the sheet system was in impact for many if not all CPS-1 video games. CPS-2 video games was a bit tougher since Capcom added many safety mecanisms. Whereas the 68000 directions and Z-80 directions have been encrypted, the GFX ROMs are merely shuffled and simply viewable.
Within the first CPS-2 title, Tremendous Avenue Fighter 2 (1993), 4 new characters have been added to the present twelve roster. The present character sheets are unchanged.
Tremendous Avenue Fighter 2 Ryu sheet (1993) | Tremendous Avenue Fighter 2 Cammy sheet (1993) |
But when we have a look at Cammy sheets (0x9000
) the structure was clearly not made by hand. It appears an allocation system continuing prime to backside and left to proper was used as a substitute. It looks as if Capcom began utilizing instruments to construct new GFX ROMs for SSF2 circa 1992. Whether or not x68000 workstations have been used stays unknown.
Avenue Fighter Alpha
Shifting ahead with CPS-2 titles, Avenue Fighter Alpha (1995) and Avenue Fighter Alpha 3 (1998) each present the identical sort of construction indicative of a software. All sheets appear to be mashed potatoes with none wasted tile area. It’s seemingly that not one of the CPS-2 titles used the sheet system.
Avenue Fighter Alpha sheet (1995) | Avenue Fighter Alpha 3 sheet (1998) |
Name for interview
I’ve made a number of makes an attempt to speak with builders who labored on CPS-1/CPS-2 techniques. All of them have failed to this point. I want to doc and protect how these machines have been programmed. I’m particularly considering realizing how the X68000 was used. You probably have first hand expertise or if you may get somebody in contact with me, please e-mail me 🙂 !
References