GithubHelp home page GithubHelp logo

guruthree / mac-se-video-converter Goto Github PK

View Code? Open in Web Editor NEW
77.0 6.0 5.0 3.53 MB

Convert video from a Mac Plus/SE/Classic to a VESA VGA signal using a Raspberry Pi Pico

CMake 2.05% C 97.95%
apple macintosh-plus macintosh-se vga raspberry-pi-pcio video-converter

mac-se-video-converter's People

Contributors

blayzeing avatar guruthree avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

mac-se-video-converter's Issues

Lisa to VGA

Hello!

I've been playing around for a bit with your code to interface with a Lisa and have run into some issues. Full disclosure - video timing is not my strong suit; I have some experience working with 240p analogue RGB as it pertains to arcade displays, but this is much faster than I'm used to dealing with (and even then, it's been years since I've worked with standard res RGB video).

The Lisa outputs a 720x364 image with the following properties (see attached image):

  • Pixel Clock: 20MHz (50ns)
  • HSYNC Pulse: 176 dots (8.8us) - no front or back porch is defined in hardware documentation
  • VSYNC Pulse: 7 lines (0.3137ms) - the hardware docs don't explicitly refer to them as "porches", but there is a 365th line that is not displayed that could be inferred as a front porch and a subsequent seven lines that follow the active vertical sync pulse before the new screen is to be displayed that could be considered a back porch

I've been working on trying to get this to display on an 800x600x60 display to no avail; the end goal would be to have this centered both vertically (not the hardest thing to do) and horizontally (much harder - still trying to think this one through). Presently, all I've managed to get on-screen is a flickering, smashed several rows at the top of the display. I've set the system clock to 160MHz (nice and even divisibility down to the 40MHz the VGA clock runs at and 20MHz the Lisa one runs at) and am dividing by eight for the Lisa's clock. I've also updated the MAX_LINES directive to the Lisa's 364, updated the LINEBUFFER_LEN_32 directive from 16 to 23 (to just go over the Lisa's 720 dots per line - 22.5 was the exact divisor), and updated the VGA timings in vga.h using the referenced timings in the Pico SDK, but I'm a bit stuck on how to proceed at the moment. Might you be able to offer some advice on where to start in next?

timing

Edit: Ah, I see something else that's going to need modifying. Your assembly in videoinput.pio - it appears you're skipping lines for the horizontal retrace period in the pixelskiploop loop; maybe it's just because it's late, but I'm a bit confused as to how the timing on this works. It looks like the H-retrace on a compact Mac is ~164 pixels, which appears to be the number of pixels this skips (nop[29]*31 = 155, that plus the nine additional pixels comes out to 164), but how does the timing of the pixel clock line up with the nop instruction time? That just seems like... really awesome coincidence?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.