Table of Contents
Some short notes of how I envision the audio/video of NeoCore to be.
This means that the following might, and most likely will, change at anytime.
Video
Resolution
To find an optimal base resolution is a struggle. There is alot of parameters to consider.
After some thinking I opted for the 640 x 480 in 4:3 as a reasonable compromise, and 640 x 360 in 16:9. This would be supperior for the era, but not crazy so. It is also compatible with the Commander X16 in 4:3.
Bitplanes, modes and colors
There should be a way to use either pure text, tiles, photos or bitmaps. Text in 2 colors, and tiles should have 1, 2, 4 or 8 bitplanes, for 2, 4, 16 or 256 colors. The same goes for full bitmap.
The Commodore machines redefined the normal character set for custom graphics. That is a bit to restricted.
There should also be a possibility to use multiple and overlaid modes with different scrolling in X and Y direction. At least 4 seams a good number. These different overlayed viewports should also have the ability to blend together with a alpha channel.
All modes should have definable start in X/Y and Width/Height. This lowers memory requirements for stationary information such as score, lives etc in games.
On top of this we also have 64-256 sprites with different Z-priority.
Tiles
They should have a standard size of 8 x 8, 16 x 16, 24 x 24 and 32 x 32.
Text
We also want to have a separate text mode with changeable fonts.
- The text should have different text colors and background colors.
- There should be an option for reverse, underline and flashing.
- There should be support for umlauts and descenders. So a 12 x 16 cell, 8 x 12 or similar would be good.
- Both fixed and proportional fonts should be possible.
Photos
The FPGA also renders photos encoded in JPG. This can be for photos, background or cut-away scenes. With sub 40ms rendering also video should be doable.
Bitmap
Bitmaps is also drawn in 1, 2, 4 or 8 bitplanes. There should be functions for drawing standard geometrical shapes in hardware, as well as copying/moving blocks of graphics with boolean operands.
Sprites
Sprites should have a standard size of 8 x 8, 16 x 16, 24 x 24 and 32 x 32. Colors are 2, 16 and 256.
Palette
There should be multiple palettes and they are all 4-bits per color, 12 bits, or 4096 colors.
Audio
Audio should come from 8 programmable sound generators, with individual volume and panning or both left and right output. Waveforms are sinus, square, sawtooth, triangle and noise or a combination. Frequency and pulse width can be set. The volume uses a standard ADSR (Attack, Decay, Sustain, and Release) mode, with an overall volume control.
There will also be 4 channels of wave table 8-bit PCM sound. Again with individual volume and panning or routed to both outputs.
Options to consider is built-in general MIDI with/without a hardware sequencer.
There will be no extra on-board soundchips. Mostly due to that candidates are hard and/or expensive to source. However, all the expansion pods have Audio input.
