Trying to use really old library with current Arduino software...

Specifically, I'm trying to use TVOut (found here: Google Code Archive - Long-term storage for Google Code Project Hosting. ), but a few problems are cropping up here and there, undefined bits like "font6x8" and "font8x8" and a few missing header files when trying to compile the Tetris program.

Any hardcore guys out there have anything to say on this?

I haven't messed with it but Nick Gammon (member here) posts, it's usually unusually complete:

I am definitely not a 'hardcore guy', but...

You might find some useful information here TVout: NTSC and PAL Composite Video Output. - Displays - Arduino Forum

Or, it appears that you are missing the fontAll library?? If you can't find it on the original code.google page, then the files here Video-Game-Shield/TVoutfonts at master · wayneandlayne/Video-Game-Shield · GitHub may work.

Really old? TVOut has only been out what - a couple of years, max?

The DemoNTSC from TVOutBeta1 compiled fine for me with 1.0.5; it sounds like you might not have installed all the libraries needed correctly.
You want to copy the TVOut and TVOutFont directories to your "libraries" directory separately, I think. Not copy TVOutBeta1 to the libraries directory...

I didn't see anything about "TVOutFont", so I'll go get that library and post back with results.

EDIT: So that didn't work. I have both the TVOut and TVOutFont folders in the "libraries" folder, and loaded a sample program to test TVOut again. Using "DemoNTTC" (too long to post here), I got the following errors:

In file included from DemoNTSC.pde:2:
F:\Documents and Settings\Administrator\My Documents\Arduino\libraries\TVoutfonts/fontALL.h:9: error: stray '\302' in program
F:\Documents and Settings\Administrator\My Documents\Arduino\libraries\TVoutfonts/fontALL.h:9: error: stray '\267' in program
F:\Documents and Settings\Administrator\My Documents\Arduino\libraries\TVoutfonts/fontALL.h:9: error: stray '\302' in program
F:\Documents and Settings\Administrator\My Documents\Arduino\libraries\TVoutfonts/fontALL.h:9: error: stray '\267' in program
F:\Documents and Settings\Administrator\My Documents\Arduino\libraries\TVoutfonts/fontALL.h:401: error: stray '\342' in program
F:\Documents and Settings\Administrator\My Documents\Arduino\libraries\TVoutfonts/fontALL.h:401: error: stray '\200' in program
F:\Documents and Settings\Administrator\My Documents\Arduino\libraries\TVoutfonts/fontALL.h:401: error: stray '\246' in program
F:\Documents and Settings\Administrator\My Documents\Arduino\libraries\TVoutfonts/fontALL.h:453: error: stray '#' in program
F:\Documents and Settings\Administrator\My Documents\Arduino\libraries\TVoutfonts/fontALL.h:453: error: stray '#' in program
F:\Documents and Settings\Administrator\My Documents\Arduino\libraries\TVoutfonts/fontALL.h:453: error: stray '#' in program
F:\Documents and Settings\Administrator\My Documents\Arduino\libraries\TVoutfonts/fontALL.h:453: error: stray '#' in program
F:\Documents and Settings\Administrator\My Documents\Arduino\libraries\TVoutfonts/fontALL.h:453: error: stray '#' in program
F:\Documents and Settings\Administrator\My Documents\Arduino\libraries\TVoutfonts/fontALL.h:453: error: stray '#' in program
F:\Documents and Settings\Administrator\My Documents\Arduino\libraries\TVoutfonts/fontALL.h:453: error: stray '#' in program
F:\Documents and Settings\Administrator\My Documents\Arduino\libraries\TVoutfonts/fontALL.h:4: error: expected unqualified-id before '<' token
F:\Documents and Settings\Administrator\My Documents\Arduino\libraries\TVoutfonts/fontALL.h:453: error: expected constructor, destructor, or type conversion before '.' token
F:\Documents and Settings\Administrator\My Documents\Arduino\libraries\TVoutfonts/fontALL.h:453: error: expected unqualified-id before '<' token
F:\Documents and Settings\Administrator\My Documents\Arduino\libraries\TVoutfonts/fontALL.h:453: error: expected constructor, destructor, or type conversion before '.' token
F:\Documents and Settings\Administrator\My Documents\Arduino\libraries\TVoutfonts/fontALL.h:453: error: expected unqualified-id before '<' token
F:\Documents and Settings\Administrator\My Documents\Arduino\libraries\TVoutfonts/fontALL.h:453: error: expected constructor, destructor, or type conversion before '.' token
F:\Documents and Settings\Administrator\My Documents\Arduino\libraries\TVoutfonts/fontALL.h:453: error: expected unqualified-id before '<' token
F:\Documents and Settings\Administrator\My Documents\Arduino\libraries\TVoutfonts/fontALL.h:453: error: expected constructor, destructor, or type conversion before '.' token
F:\Documents and Settings\Administrator\My Documents\Arduino\libraries\TVoutfonts/fontALL.h:453: error: expected unqualified-id before '<' token
F:\Documents and Settings\Administrator\My Documents\Arduino\libraries\TVoutfonts/fontALL.h:497: error: expected unqualified-id before numeric constant
DemoNTSC.pde: In function 'void setup()':
DemoNTSC:30: error: 'font6x8' was not declared in this scope
DemoNTSC:38: error: 'schematic' was not declared in this scope
DemoNTSC:47: error: 'font4x6' was not declared in this scope
DemoNTSC:51: error: 'font8x8' was not declared in this scope

So here's DemoNTSC:

#include <TVout.h>
#include <fontALL.h>
#include "schematic.h"
#include "TVOlogo.h"

TVout TV;

int zOff = 150;
int xOff = 0;
int yOff = 0;
int cSize = 50;
int view_plane = 64;
float angle = PI/60;

float cube3d[8][3] = {
  {xOff - cSize,yOff + cSize,zOff - cSize},
  {xOff + cSize,yOff + cSize,zOff - cSize},
  {xOff - cSize,yOff - cSize,zOff - cSize},
  {xOff + cSize,yOff - cSize,zOff - cSize},
  {xOff - cSize,yOff + cSize,zOff + cSize},
  {xOff + cSize,yOff + cSize,zOff + cSize},
  {xOff - cSize,yOff - cSize,zOff + cSize},
  {xOff + cSize,yOff - cSize,zOff + cSize}
};
unsigned char cube2d[8][2];


void setup() {
  TV.begin(NTSC,120,96);
  TV.select_font(font6x8);
  intro();
  TV.println("I am the TVout\nlibrary running on a freeduino\n");
  TV.delay(2500);
  TV.println("I generate a PAL\nor NTSC composite  video using\ninterrupts\n");
  TV.delay(2500);
  TV.println("My schematic:");
  TV.delay(1500);
  TV.bitmap(0,0,schematic);
  TV.delay(10000);
  TV.clear_screen();
  TV.println("Lets see what\nwhat I can do");
  TV.delay(2000);
  
  //fonts
  TV.clear_screen();
  TV.println(0,0,"Multiple fonts:");
  TV.select_font(font4x6);
  TV.println("4x6 font FONT");
  TV.select_font(font6x8);
  TV.println("6x8 font FONT");
  TV.select_font(font8x8);
  TV.println("8x8 font FONT");
  TV.select_font(font6x8);
  TV.delay(2000);
  
  TV.clear_screen();
  TV.print(9,44,"Draw Basic Shapes");
  TV.delay(2000);
  
  //circles
  TV.clear_screen();
  TV.draw_circle(TV.hres()/2,TV.vres()/2,TV.vres()/3,WHITE);
  TV.delay(500);
  TV.draw_circle(TV.hres()/2,TV.vres()/2,TV.vres()/2,WHITE,INVERT);
  TV.delay(2000);
  
  //rectangles and lines
  TV.clear_screen();
  TV.draw_rect(20,20,80,56,WHITE);
  TV.delay(500);
  TV.draw_rect(10,10,100,76,WHITE,INVERT);
  TV.delay(500);
  TV.draw_line(60,20,60,76,INVERT);
  TV.draw_line(20,48,100,48,INVERT);
  TV.delay(500);
  TV.draw_line(10,10,110,86,INVERT);
  TV.draw_line(10,86,110,10,INVERT);
  TV.delay(2000);
  
  //random cube forever.
  TV.clear_screen();
  TV.print(16,40,"Random Cube");
  TV.print(28,48,"Rotation");
  TV.delay(2000);
  
  randomSeed(analogRead(0));
}

void loop() {
  int rsteps = random(10,60);
  switch(random(6)) {
    case 0:
      for (int i = 0; i < rsteps; i++) {
        zrotate(angle);
        printcube();
      }
      break;
    case 1:
      for (int i = 0; i < rsteps; i++) {
        zrotate(2*PI - angle);
        printcube();
      }
      break;
    case 2:
      for (int i = 0; i < rsteps; i++) {
        xrotate(angle);
        printcube();
      }
      break;
    case 3:
      for (int i = 0; i < rsteps; i++) {
        xrotate(2*PI - angle);
        printcube();
      }
      break;
    case 4:
      for (int i = 0; i < rsteps; i++) {
        yrotate(angle);
        printcube();
      }
      break;
    case 5:
      for (int i = 0; i < rsteps; i++) {
        yrotate(2*PI - angle);
        printcube();
      }
      break;
  }
}

void intro() {
unsigned char w,l,wb;
  int index;
  w = pgm_read_byte(TVOlogo);
  l = pgm_read_byte(TVOlogo+1);
  if (w&7)
    wb = w/8 + 1;
  else
    wb = w/8;
  index = wb*(l-1) + 2;
  for ( unsigned char i = 1; i < l; i++ ) {
    TV.bitmap((TV.hres() - w)/2,0,TVOlogo,index,w,i);
    index-= wb;
    TV.delay(50);
  }
  for (unsigned char i = 0; i < (TV.vres() - l)/2; i++) {
    TV.bitmap((TV.hres() - w)/2,i,TVOlogo);
    TV.delay(50);
  }
  TV.delay(3000);
  TV.clear_screen();
}

void printcube() {
  //calculate 2d points
  for(byte i = 0; i < 8; i++) {
    cube2d[i][0] = (unsigned char)((cube3d[i][0] * view_plane / cube3d[i][2]) + (TV.hres()/2));
    cube2d[i][1] = (unsigned char)((cube3d[i][1] * view_plane / cube3d[i][2]) + (TV.vres()/2));
  }
  TV.delay_frame(1);
  TV.clear_screen();
  draw_cube();
}

void zrotate(float q) {
  float tx,ty,temp;
  for(byte i = 0; i < 8; i++) {
    tx = cube3d[i][0] - xOff;
    ty = cube3d[i][1] - yOff;
    temp = tx * cos(q) - ty * sin(q);
    ty = tx * sin(q) + ty * cos(q);
    tx = temp;
    cube3d[i][0] = tx + xOff;
    cube3d[i][1] = ty + yOff;
  }
}

void yrotate(float q) {
  float tx,tz,temp;
  for(byte i = 0; i < 8; i++) {
    tx = cube3d[i][0] - xOff;
    tz = cube3d[i][2] - zOff;
    temp = tz * cos(q) - tx * sin(q);
    tx = tz * sin(q) + tx * cos(q);
    tz = temp;
    cube3d[i][0] = tx + xOff;
    cube3d[i][2] = tz + zOff;
  }
}

void xrotate(float q) {
  float ty,tz,temp;
  for(byte i = 0; i < 8; i++) {
    ty = cube3d[i][1] - yOff;
    tz = cube3d[i][2] - zOff;
    temp = ty * cos(q) - tz * sin(q);
    tz = ty * sin(q) + tz * cos(q);
    ty = temp;
    cube3d[i][1] = ty + yOff;
    cube3d[i][2] = tz + zOff;
  }
}

void draw_cube() {
  TV.draw_line(cube2d[0][0],cube2d[0][1],cube2d[1][0],cube2d[1][1],WHITE);
  TV.draw_line(cube2d[0][0],cube2d[0][1],cube2d[2][0],cube2d[2][1],WHITE);
  TV.draw_line(cube2d[0][0],cube2d[0][1],cube2d[4][0],cube2d[4][1],WHITE);
  TV.draw_line(cube2d[1][0],cube2d[1][1],cube2d[5][0],cube2d[5][1],WHITE);
  TV.draw_line(cube2d[1][0],cube2d[1][1],cube2d[3][0],cube2d[3][1],WHITE);
  TV.draw_line(cube2d[2][0],cube2d[2][1],cube2d[6][0],cube2d[6][1],WHITE);
  TV.draw_line(cube2d[2][0],cube2d[2][1],cube2d[3][0],cube2d[3][1],WHITE);
  TV.draw_line(cube2d[4][0],cube2d[4][1],cube2d[6][0],cube2d[6][1],WHITE);
  TV.draw_line(cube2d[4][0],cube2d[4][1],cube2d[5][0],cube2d[5][1],WHITE);
  TV.draw_line(cube2d[7][0],cube2d[7][1],cube2d[6][0],cube2d[6][1],WHITE);
  TV.draw_line(cube2d[7][0],cube2d[7][1],cube2d[3][0],cube2d[3][1],WHITE);
  TV.draw_line(cube2d[7][0],cube2d[7][1],cube2d[5][0],cube2d[5][1],WHITE);
}

It sorta looks like you might have "installed" these libraries by saving the web-formatted source instead of getting the raw source.
Try deleting all of the tvout libraries that you have currently installed, and then re-installing based on:

Go to the google code download page and download the TVoutBeta1.zip file:
http://code.google.com/p/arduino-tvout/downloads/detail?name=TVoutBeta1.zip&can=2&q=
Open that and copy the three sub-directories (pollserial, TVout, and TVoutfonts) to your Documents/Arduino/libraries directory.
Start the Arduino, and you should see File/Examples/TVout/DemoNTSC, and it should compile OK (some warnings, but successfully producing an ~18k sketch...)

westfw:
It sorta looks like you might have "installed" these libraries by saving the web-formatted source instead of getting the raw source.

I actually just downloaded the .zip, as the "(1)" appended to the end of the file name tells me.

westfw:
Try deleting all of the tvout libraries that you have currently installed, and then re-installing based on:

Based on what?

westfw:
(pollserial, TVout, and TVoutfonts)

I didn't see any of these subdirectories, but TECH GEEK (as seen here: TVout: NTSC and PAL Composite Video Output. - Displays - Arduino Forum ) didn't seem to have any trouble finding them.

Exactly which file did you download?

The one you recommended, this one:
http://code.google.com/p/arduino-tvout/downloads/detail?name=TVoutBeta1.zip&can=2&q=

But you didn't see the (pollserial, TVout, and TVoutfonts) subdirectories? Weird...

Please tell me if you see those libraries.

Trying to show GUI interactions in a text forum sucks...
Here we go...

Screen Shot 2014-01-20 at 12.31.09 AM.jpg

GoForSmoke:
I haven't messed with it but Nick Gammon (member here) posts, it's usually unusually complete:
Gammon Forum : Electronics : Microprocessors : Arduino Uno output to VGA monitor

Meaning that all the parts and full explanations with source are there and in a download link to a single zip there.

Download

The VGA Output sketch above, plus the font file, and the timers helper file, are all in the .zip file here:

http://gammon.com.au/Arduino/VGA_output.zip

Nick doesn't half-step.

Hey, wait a minute. I don't think we're talking about the same libraries anymore. I'm talking about the TVOut library, found here:
https://code.google.com/p/arduino-tvout/
I'm having problems because the main library download does not include its dependencies. Here is the file I've downloaded twice:
https://code.google.com/p/arduino-tvout/downloads/detail?name=TVoutBeta1.zip&can=2&q=
...and all I see in it is TVOut, which in turn is a complete single library.

This is what I get in the ZIP file you linked to ?

TVOUT.JPG

Magicj:
This is what I get in the ZIP file you linked to ?

WTF? Using Peazip, all I'm seeing is TVOut!

So apparently Peazip failed me (neither of the other two libraries were being detected!). Just installed the libraries, so I'll edit this post once I test out the demo program again.

EDIT: Good news is, everything compiles correctly. Bad news is, I can't get it to send anything to my test LCD screen (which has performed perfectly with both the output of a Wii and the output of a Commodore 64, eye strain aside). My wiring matches that of the ideal Uno setup (and NOT using a 75k ohm resistor between the video and ground pins on the RCA plug) on the original library page ( Arduino Playground - TVout ), but the screen is totally black, as if receiving no input. I'll get a battery or power supply wired up for my Uno R3 and then I'll test its output on my TV.

EDIT 2: Badass, it works perfectly on my TV! Too bad my power supply failed and I had to improvise.