Difference between revisions of "Renegade"

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search
(Technical)
(Technical)
Line 13: Line 13:
 
It is believed this is done so that drawing a sprite facing left, and drawing a sprite facing right will take the same cpu time and so that the frame rate will remain more constant.
 
It is believed this is done so that drawing a sprite facing left, and drawing a sprite facing right will take the same cpu time and so that the frame rate will remain more constant.
  
* Supports 128K RAM. All levels are loaded at once. One 16KB bank per level.
+
* Supports 128K RAM. All levels are loaded at once. Each level takes &1000 bytes. There are 4 stored in 1 16KB page.
 
* 2048 bytes for tile graphics. These are defined per-level. These are copied from &31e0 in 4 parts. There are 128 possible tiles. Runtime ranges: &e600-&e800, &ee00-&f000, &f600-&f800, &fe00-&ffff.
 
* 2048 bytes for tile graphics. These are defined per-level. These are copied from &31e0 in 4 parts. There are 128 possible tiles. Runtime ranges: &e600-&e800, &ee00-&f000, &f600-&f800, &fe00-&ffff.
 
* Tiles 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.
 
* Tiles 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.
Line 20: Line 20:
 
* Sprites for all levels are loaded at once and use ~13KB. They are located at &4a80-&7fff in main ram.
 
* Sprites for all levels are loaded at once and use ~13KB. They are located at &4a80-&7fff in main ram.
 
* 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.
 
* 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.
 +
 +
* Level 1,2,3 are 80 tiles wide. Level 4 is 112 tiles wide.
  
 
== Video ==
 
== Video ==

Revision as of 14:00, 16 February 2019

Renegade is a 1987 game programmed by the same programmer as Gryzor.

Technical

  • Sprites are stored upside down in memory.
  • Sprites are stored as mode 0 with pen 0 as transparent.
  • Sprites are flipped by code in realtime (e.g. the facing right sprite is a flip of the facing left sprite).
  • Sprites are stored in multiple parts and are composed during drawing. Each part has an x,y offset, width and height based on the sprite's coordinates. Therefore heads, bodies and legs are separate. This allows re-use for all characters and enemies.
  • Sprites are stored as follows:

1 byte normal (to write to mode 0 screen), followed by 1 byte with pixels swapped, then this repeats.

It is believed this is done so that drawing a sprite facing left, and drawing a sprite facing right will take the same cpu time and so that the frame rate will remain more constant.

  • Supports 128K RAM. All levels are loaded at once. Each level takes &1000 bytes. There are 4 stored in 1 16KB page.
  • 2048 bytes for tile graphics. These are defined per-level. These are copied from &31e0 in 4 parts. There are 128 possible tiles. Runtime ranges: &e600-&e800, &ee00-&f000, &f600-&f800, &fe00-&ffff.
  • Tiles 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.
  • "Macro tile map" uses 64 bytes. Each byte is 4 tiles wide and 9 tiles tall. Macro tile map's runtime location is at &BF90. Data at 9600 defines actual tiles to use.
  • Sprites for all levels are loaded at once and use ~13KB. They are located at &4a80-&7fff in main ram.
  • 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.
  • Level 1,2,3 are 80 tiles wide. Level 4 is 112 tiles wide.

Video

{{#ev:youtube|Fc8GDlw2nys|450}}

Links