Changes

Renegade

967 bytes added, 08:52, 18 February 2019
'''''Renegade''''' is a 1987 game programmed published by Imagine. It was written by [[John Brandwood]] with graphics by [[Mark K Jones]].It is one of the same programmer as best CPC games. John also wrote [[Gryzor]] which is another top CPC game
== Pictures ==
|[[Image:RenegadeLevel3.png|left|thumb|200px|Renegade Level 3]]
|[[Image:RenegadeLevel4.png|left|thumb|200px|Renegade Level 4]]
|[[Image:Renegade_walk_anim.png|left|thumb|200px|Renegade Main Character Walk Animation frames]]
|[[Image:Renegade_walk_anim_areas.png|left|thumb|200px|Renegade Main Character Walk Animation frames coloured by sprite part draw order]]
|[[Image:Renegade_punch_anim.png|left|thumb|200px|Renegade Main Character Punch Animation frames]]
|[[Image:Renegade_punch_anim_areas.png|left|thumb|200px|Renegade Main Character Punch Animation frames coloured by sprite part draw order]]
<br style="clear:both;"/>
|}
* The game doesn't use hardware scrolling and uses a reduced screen and heavily uses the invisible areas of both screens to store code and data.
=== Characters and Enemies ===
* Characters and Enemies are stored as multiple sprite parts and are composed during drawing. Each part has a width, height, and signed x and y offset relative to the character's base x,y position . The base x,y position's origin is at the bottom of the feet on screen frame and a width and heightin the middle on the x axis. There is no clear separation between heads, bodies and legs. Some character frames are made of 4 or more parts. This can be seen in the walk and punch animation frames.
* Characters and Enemies are sorted by their base y position each frame. They are then so that the draw correctly when walking in increasing y coordinate orderfront of each other and to give a 3d look.
=== Sprites ===
* Sprite pixels are stored upside down in memory. Therefore left to right, bottom to top.
* Sprite pixels are stored as mode 0 with pen 0 as transparent.
* Sprite pixels are stored facing right only and flipped by code in realtime (e.g. the facing left sprite is a mirror of the facing right sprite.).
It is believed this storage is done so that drawing a sprite facing left, and drawing a sprite facing right will take the same cpu time and this means a more stable frame rate regardless of the direction each sprite is facing.
* There is a list of sprites per level. The start address of this is stored at &e00 from the start of the level data. This takes the form of width, height and pixel data location. With 128KB there is 1 extra ram page per level for level specific sprites. Sprites common to each level are stored in main RAM. There are around 223 sprites (including common sprites). During the game the level page is mapped into RAM at &4000.
=== Levels ===
* Each level has it's own music.
 
* Each level takes &1000 bytes. There are 4 stored in 1 16KB page. The data is copied to &3000->&3fff before then being copied to other locations in RAM.
* Each level's data is prefixed with "JCB Overlay xxxx" where x is the level number. e.g. "JCB Overlay 0000".
* 2048 bytes for tile graphics. These are defined per-level. These are stored at +&1e0 from the level data. They are copied from &31e0 in 4 parts. There are 128 possible tiles. Runtime ranges: &e600-&e800, &ee00-&f000, &f600-&f800, &fe00-&ffff.
* Tile graphics are 4 pixels wide and 8 pixels tall. Each tile's graphics uses 16 bytes. Tiles are stored uncompressed, left-right and top to bottom.
 
=== Sprites ===
* Sprites for all levels are loaded at once and use ~13KB. They are located at &4a80-&7fff in main ram.
== Video ==
2,571
edits