Pre invalidating space
PL/SQL packages themselves are the API for the code in the package body, and the packages themselves are not dependent on each other.Package bodies however can be dependent on packages, so if a package is recompiled than it runs the risk of invalidating package bodies that reference it.The next 28 rows are rotated columns from the main display, ordered from right to left.The final two rows are used for the score display at the top of the screen.This leaves us using SAM's native 50Hz frequency, which reduces the running speed by around 17%.The arcade ROM code will be running natively on SAM's CPU, but I plan on doing as much of the remaining work using knowledge of the hardware only. It also means other games written for the same hardware should run with relatively few changes.
Rather than using a traditional bitmapped display, the arcade display is composed of a background layer of character tiles overlayed by 6 floating sprites.
Like the character graphics, the sprites are stored as 2-bit images, with black being taken as transparent so you can see through to the character layer.
Like the rest of the video details, the palette situation is not straight-forward either!
Using 32-byte strips of memory makes dealing with the display much easier, and should also help with our own emulation.
Displayed above the character layer are eight sprites, each 16x16 pixels in size.