1
0
mirror of https://github.com/fadden/6502bench.git synced 2024-11-12 06:06:12 +00:00

Updated some comments

This commit is contained in:
Andy McFadden 2020-04-12 14:59:29 -07:00
parent 356492d6da
commit 7cdc2d5b92
2 changed files with 18 additions and 4 deletions

View File

@ -911,9 +911,11 @@ namespace SourceGen {
dispWidth = dispHeight = 1; dispWidth = dispHeight = 1;
} }
} else { } else {
// Bitmap visualization. // Bitmap visualization -or- non-animated wireframe visualization.
// //
// Encode a GIF the same size as the original bitmap. // Encode a GIF the same size as the original bitmap. For a wireframe
// visualization this means the bitmap will be the same size as the
// generated thumbnail.
GifBitmapEncoder encoder = new GifBitmapEncoder(); GifBitmapEncoder encoder = new GifBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(vis.CachedImage)); encoder.Frames.Add(BitmapFrame.Create(vis.CachedImage));

View File

@ -21,6 +21,15 @@ using PluginCommon;
namespace RuntimeData.Atari { namespace RuntimeData.Atari {
/// <summary> /// <summary>
/// Visualizer for Atari Analog Vector Generator commands. /// Visualizer for Atari Analog Vector Generator commands.
///
/// References:
/// http://www.ionpool.net/arcade/atari_docs/avg.pdf
/// https://www.jmargolin.com/vgens/vgcmd.pdf
/// http://www.brouhaha.com/~eric/software/vecsim/
///
/// https://github.com/mamedev/mame/blob/master/src/mame/video/avgdvg.cpp is the
/// definitive description, but it's harder to parse than the above (it's emulating
/// the hardware at a lower level).
/// </summary> /// </summary>
public class VisAVG : MarshalByRefObject, IPlugin, IPlugin_Visualizer_v2 { public class VisAVG : MarshalByRefObject, IPlugin, IPlugin_Visualizer_v2 {
// IPlugin // IPlugin
@ -180,9 +189,12 @@ namespace RuntimeData.Atari {
} }
break; break;
case Opcode.STAT: // 0110-EHO IIIICCCC case Opcode.STAT: // 0110-EHO IIIICCCC
// Note this is different for e.g. Star Wars: 0110-RGB ZZZZZZZZ
ii = (code0 >> 4) & 0x0f; ii = (code0 >> 4) & 0x0f;
break; break;
case Opcode.SCAL: // 0111-BBB LLLLLLLL case Opcode.SCAL: // 0111-BBB LLLLLLLL
// Binary scaling adjusts vector drawing time, linear scaling does
// not. (Does this affect the intensity?)
int bs = (code0 >> 8) & 0x07; int bs = (code0 >> 8) & 0x07;
int ls = code0 & 0xff; int ls = code0 & 0xff;
scale = (16384 - (ls << 6)) >> bs; scale = (16384 - (ls << 6)) >> bs;
@ -192,7 +204,7 @@ namespace RuntimeData.Atari {
curVertex = centerVertex; curVertex = centerVertex;
break; break;
case Opcode.JSR: // 101-AAAA AAAAAAAA case Opcode.JSR: // 101-AAAA AAAAAAAA
vaddr = code0 & 0x0fff; vaddr = code0 & 0x0fff; // spec says 12 bits, VECSIM uses 13
if (stackPtr == stack.Length) { if (stackPtr == stack.Length) {
mAppRef.ReportError("Stack overflow at +" + offset.ToString("x6")); mAppRef.ReportError("Stack overflow at +" + offset.ToString("x6"));
return null; return null;
@ -210,7 +222,7 @@ namespace RuntimeData.Atari {
} }
break; break;
case Opcode.JMP: // 111-AAAA AAAAAAAA case Opcode.JMP: // 111-AAAA AAAAAAAA
vaddr = code0 & 0x0fff; vaddr = code0 & 0x0fff; // spec says 12 bits, VECSIM uses 13
if (!Branch(vaddr, baseAddr, ref offset)) { if (!Branch(vaddr, baseAddr, ref offset)) {
return null; return null;
} }