This may seem a strange game to feature as part of the sprite tricks series, but coder Mark Mason (RIP) of Twilight enhanced the Amiga version of the game by using 3 sixteen colour sprites for the ropes. The use of sprites enabled the ropes to wobble after the wrestlers ran off them for a minimum CPU performance hit.
WWF Wrestlemania was released at the end of 1991, and although most Amiga users had upgraded to 1Mb of memory by that stage, the game itself was written to work on basic 512k models.
Because of this memory constraint, every byte of chip memory was precious, and the best way to save memory was to store the wrestling ring as a tilemap of 16x16 pixel tiles. I have extracted the tiles using my ripping software Maptapper and you can see that there are 220 of them in total:
Only one copy of each tile is stored in memory, and this means there is more RAM available for the rest of the game. The wrestlers themselves take up the majority of available memory due to the large characters and number of moves available.
The playing area itself consists of 45 tiles across by 24 down. Because of the small number of unique tiles, a byte tilemap has been used. This method requires only 1080 bytes to store the entire background.
Notice that the ropes are missing, as well as the turnbuckles and lower ring posts.
Directly after the tiles are the sprites used for the ropes. The Amiga is limited to 8 sprites, and this is halved to 4 if you use sixteen colour sprites (with the first colour being transparent). If the screen uses smooth scrolling, you lose another one them, which leaves 3 x 16 = 48 pixels for the total width. Here you can see each set of 3 sprites together forming the animation for the ropes:
Sprites on the Amiga are unlimited in height, and these are some of the biggest you'll see, weighing in at a hefty 175 pixels tall each!
Because of the 3 sprite limitation, it is not possible to have both sets of ropes on the screen at the same time. The programmer deliberately made the ring slightly larger than the screen, eliminating the problem. All the game has to do is decide which set of ropes to display and setup the relevant sprite pointers.
The game itself uses 16 colours (4 bitplanes), but sprites on the Amiga are displayed using colours 16-31, so the game has to duplicate the 16 colour palette.
The game uses the darker blue shade (at the top of the sprites) as it's transparent colour. Wherever that colour exists in the sprite, the tile behind it will be displayed.
Sprites are positioned with the lowest priority and appear behind everything else. Any wrestler on the screen will overlap the graphics and maintain the perspective. But this leads onto the main problem with this approach. If the sprites are always behind everything else, how do the wrestlers get out of the ring between the ropes without obscuring them? There are 2 ways to do it:
- Have an animation frame of the wrestler stepping between the ropes with the rope itself drawn on it.
- Have an animation frame where the pixels that include the rope are removed.
The game opted for the first method, and if you examine memory, you can locate the relevant animation frame that includes the Hulkster stepping between the ropes.
The image in the top left is drawn on top of the rope sprites. As you can see, parts of the ropes are drawn in the image, and if you look closely at the red arrow, you can see that the graphics do not line up perfectly if you enter/exit the ring at a high point.
This is because the image of Hogan is partially transparent, and so the rope sprites appear behind it, looking slightly messy.
During the game, you would be hard-pressed to notice this (but you will probably see it everytime now that I've mentioned it!)
The only other thing to mention is that the turnbuckles and ringposts sometimes obscure the players, so those objects would be sorted based on their Y co-ordinate along with the wrestlers and drawn from top to bottom.
Popular Sprite Tricks
2 sprites are displayed then repositioned horizontally right across the screen to create the colourful static background. The remaining sprites are used for the main character, the status bar and player bullets.
The 16-colour background layer was created by using all 8 hardware sprites and repositioning them across the screen. The same 64 pixel wide graphics are repeated across the entire play area.
One of the first jaw-droppingly beautiful Amiga games that still looks great today. Sprites were heavily re-used on the screen, along with priority changes to make them appear between the playfields.
The amazing tunnel sequence was created with a 6 frame animation sequence made with only 4 colours and mirrored vertically. The asteroid layer sits on top of this, with a status panel and player ship made of sprites sitting on top.