Changes

Jump to: navigation, search

Programming methods used in games

1,382 bytes added, 03:32, 6 May 2018
/* Firmware */
This section describes specific programming methods which are used in games and the games that use them.
 
=== Sampled Sound ===
 
Sampled music:
* Prehistorik 2
* Xyphoes Fantasy
 
The sampled speech is often stored as 4-bit values with 2 values packed into each byte. Each value is sent to one of the AY volume registers at a fixed rate.
 
Sampled speech:
* Chase HQ
* Bad Dudes vs Dragon Ninja
* Robocop
=== Rasters ===
However, page flipping eats up a lot of memory area (which is crucial especially for 64Kb machines). This explains why a lot of games can have small game-areas !
 
For example:
Pac-Man Emulator
=== Scrolling ===
Parallax or Multi Layer Scroll is an effect where there are 2 layers of tiles which scroll, one has priority over the other and often they move at different scroll rates.
The For example, the following games have parallax or multi layer scroll.:
* Wizard Willy
* Teenage Mutant Hero Turtles * Astro Marine Corps (AMC)* Turrican I and II* Shadow Dancer
==== Software Scrolling ====
More recent games (e.g. Prehistorik 2, Super Cauldron) use the rupture technique when doing vertical scroll to ensure the display is a constant number of scan lines in height, and so the refresh rate is always the same.
Older games adjust R5 and don't use rupture (e.g. LED Storm, Legend of Kage), the time for a frame therefore varies by up to 7 extra scan-lines. This means the VSYNC to the monitor also varies in position by up to 7 extra scan-lines, and thestability the stability of the image is then dependent on how the monitor handles the VSYNC.
If the game uses a status panel, there are 2 ways to handle this.
1. # Redraw the panel when the screen is scrolled to compensate for it.2. # Use rupture technique, the panel is in a different part of RAM and will not be affected by the scroll.
This following is an incomplete list of games using hardware scrolling. From this list it can be seen that hardware scrolling has been used from 1984 :
| Yes
|-
 
| [[Cessna Over Moscow]]
| 1987
| No
| Yes
| No
| No
| Yes
|-
 
 
| [[Cyborgs]]
| 1991
| Yes
| No
| No
| Yes
|-
| [[Edge Grinder]]
| 2011
| No
| Yes
| Yes
| No
| Yes
| No
| No
| Yes
|-
| [[Glen Hoddle Soccer]]
| No
| No
| NoYes
|-
| [[Gothic]]
| No
| Yes
| No Yes
| No
| Yes
| No
| No
| Yes
|-
| [[Mission Genocide]]
| Yes
| Yes
| Yes
|-
| [[Profanation]]
| 1987
| Yes
| Yes
| Yes
| Yes
| Yes
|-
|-
| [[Rastan]]
| 1987
| Yes
| Yes
| Yes
| No
| No
| Yes
|-
| [[The Return of the Jedi|Return of the Jedi (The)]]
| 1989
| Diagonal
| scroll!
| No
| No
| Yes
|-
| [[Rick Dangerous 2]]
| No
| No
| Yes
|-
 
| [[Star Sabre]]
| 2007
| No
| Yes
| No
| No
| Yes
|-
| [[The Return of the Jedi|Return of the Jedi (The)]]
| 1989
| Diagonal
| scroll!
| No
| No
| Yes
|-
| [[Thing on a Spring]]
| 1986
| No
| Yes
| Yes
| No
| Yes
|-
| No
| No
|-
| [[Star Sabre]]
| 2007
| No
| Yes
| No
| Yes
| Yes
|-
| [[Street Machine]]
| Yes
|-
| [[Top Level]]
|
| Yes
| No
| No
| No
|-
 
| [[Twin World]]
| 1990
| Yes
| No
| No
| No
| Yes
|-
 
| [[Ultima Ratio]]
| 1987
| No
| No
| No
| Yes
|-
| [[Unitrax]]
| 1987
| Yes
| Yes
| No
| No
| Yes
|-
| Diagonal
| scroll!
| No
| No
| Yes
|-
| [[Vikings (The)]]
| 1986
| Yes
| Yes
| No
| No
| No
| Yes
| Yes
|-
| [[Wonderboy]]
| 1987
| No
| Yes
| No
| No
| Yes
|-
It is worth noting that some monitors are more tolerant to longer or shorter frames so the result may appear correctly on them and not on others.
In addition some games may have been programmed and tested on only 1 CRTC type so may not work on others.
 
Wonderboy sets R4 every frame to the same value - reason unknown. But it doesn't use Rupture, because if this code is removed it works fine.
This is a an incomplete list of games that use this technique, but according to this list the earliest games used this technique was 1987:
| 1988
|
|-
| [[European 5-A-Side]]
| 1988
|
|-
| [[F1 Tornado Simulator]]
| 1991
| No
|-
| [[Grell and Falla|Grell and Falla]]
| 1989
| Yes
|-
| [[Para Academy]]
| 1990
| No
|-
| [[Prehistorik 2|Prehistorik 2]]
| 1992
| Yes
|-
| [[Q10 Tank Buster]]
| 1991
| Yes
|-
| [[Rastan]]
| 1987
| Yes
|-
| [[Rockford]]
| 1988
| Yes
|-
| [[Santa's Christmas Capers]]
| 1990
| Yes
|-
| [[Skate Ball|Skate Ball]]
| [[Twin World (Ubi Soft)|Twin World (Ubi Soft)]]
| 1990
| Yes
|-
| [[Ultima Ratio|Ultima Ratio]]
| 1987
| Yes
|-
|-
| [[Warhawk|Warhawk]]
| 1987
| Yes
|-
| [[Wonder Boy|Wonder Boy]]
| 1987
| Yes
This list is not exhaustive.
*[[Xevious]] [[Category:Programming]]
891
edits