Jump to content
IGNORED

Movie Cart


rbairos

Recommended Posts

3 minutes ago, rbairos said:

Some areas are lit up:  1,1,0,0,  instead of 1,0,1,0  causing a noticeable flicker.
I might try another test with your shifted +4 arrangement next.

The effect will be the same. That's what I meant with the increased 15 Hz flicker.

Edited by Thomas Jentzsch
Link to comment
Share on other sites

Here are some re-encodings. I've been learning how best to tweak the various image parameters. There's a bit of a balance; increased dithering ("blend") reduces the vertical colour bands, but decreases resolution and legibility. These two have blend=0.85 and I think the resultant movies are a bit better than earlier renderings.

 

kong...

https://www.dropbox.com/s/8fkq9vwhr2ikv53/kongB0.85.mvc?dl=0

 

knock on wood...

https://www.dropbox.com/s/x5lp40ap8qfpeps/knockonwoodB0.85.mvc?dl=0

 

Nb: These dropbox files are likely to disappear sooner rather than later so if you want them, make local copies please.

 

 

 

Link to comment
Share on other sites

51 minutes ago, Thomas Jentzsch said:

The effect will be the same. That's what I meant with the increased 15 Hz flicker.

It's mitigated somewhat, but even if I order things properly, it becomes a 'swimming' texture.

Another thing that can be done is the background color.
Right now, its using the same color for all 10 cells per line.
Technically it could use two colors, one for each group of 5.
Though in practise, not sure how useful this will be, as the cells are alternating, not contiguous.

 

 

Link to comment
Share on other sites

Blade Runner is a very dark film, in more ways than one. I had my doubts that the visuals would translate well to MovieCart because of the mostly dark scenes in the movie. Surprisingly, though, with a bit of tweaking it has come up OK. Perhaps a bit over-saturated...

 

https://www.dropbox.com/s/7sbkbqgszmokj1r/bladerunner.mvc?dl=0

77755540_ScreenShot2021-09-15at5_21_35am.thumb.png.882ad0dad7370ffa95ed3ea21ade76dd.png

As to saturation, the Kong vs. Rex fight was under-saturated in the original, but I found that colour cues are very important in making the MovieCart visuals work, and in this latest pass at that particular sequence, I have slightly saturated the colours. It looks great...

 

https://www.dropbox.com/s/jq97ps5lkcd4v8w/kong2.mvc?dl=0

 

1013858389_ScreenShot2021-09-15at5_21_15am.thumb.png.212816a1efebcb1e231d57d742df6058.png

 

It's just a really amazing bit of encoding, given the very limited layout of the colours and resolution. I'd encourage everyone to have a look at TouchDesigner (used to encode these movies) - quite the interesting video/image processing workflow software.

 

 

 

  • Like 5
Link to comment
Share on other sites

  • 2 weeks later...

This is so much fun to play with. And it keeps getting better and better. It's astounding how good some of the encodings are. I'm just playing around the edges learning how various tweaks affect the output. Even though I know how it's all encoded, I'm still astounded at the results. So clever. Can't wait to see it as a released product. Video is screen-grabbed from stella playing the MovieCart file. My system can only manage about 35fps.

The MVC file playing on Stella looks much nicer.

 

 

 

 

 

ts.mvc.zip

  • Like 7
  • Thanks 1
Link to comment
Share on other sites

So let me ask this, because I haven't done anything with a final file...

 

Can a movie file be loaded to my regular Harmony cart and played from my Atari 2600? I would love to see it, just for the sake of playing around with it.

 

I know "Wizard of Speed and Time" (1988) has Jittlov's approval for sharing, as long as no one is making money from the film.

 

That feature-length film can be seen here: https://archive.org/details/WizardSpeedTime

 

Is the final file a BIN file? Just curious...

  • Like 1
Link to comment
Share on other sites

1 hour ago, keithbk said:

So let me ask this, because I haven't done anything with a final file...

 

Can a movie file be loaded to my regular Harmony cart and played from my Atari 2600? I would love to see it, just for the sake of playing around with it.

No, not at this stage. I do not think Harmony currently supports MVC files/format.

 

1 hour ago, keithbk said:

 

I know "Wizard of Speed and Time" (1988) has Jittlov's approval for sharing, as long as no one is making money from the film.

 

That feature-length film can be seen here: https://archive.org/details/WizardSpeedTime

TY I will have a look at it and maybe encode.

1 hour ago, keithbk said:

Is the final file a BIN file? Just curious...

It's effectively a data file with the encoded movie, that is stored on the cart's SD card. This file is effectively a bin that the emulators can load/play, too. Stella and Gopher emulators currently support the moviecart playback. To view on actual hardware you would need an actual MovieCart hardware board at this stage.  I'm hopeful that eventually the PlusCart can have firmware to support, too. But... that's way in the future.

 

 

 

 

Link to comment
Share on other sites

23 minutes ago, keithbk said:

Thanks for clarifying. I love what's happening with this project, and I hope one day we can see some cart technology that works :)

That already exists - it was demonstrated on the ZPH show, I'm pretty sure.  All the hardware and software is open sourced so there's always the opportunity to build one for yourself.

Link to comment
Share on other sites

3 hours ago, keithbk said:

Thanks for clarifying. I love what's happening with this project, and I hope one day we can see some cart technology that works :)

3 hours ago, Andrew Davie said:

That already exists - it was demonstrated on the ZPH show, I'm pretty sure.  All the hardware and software is open sourced so there's always the opportunity to build one for yourself.

 

Here you go! Here's the premiere of the Movie Cart using real hardware on ZPH (skip to 37m45s). It was nowhere near as optimized as what's been going on recently in the thread but I run through a number of movies playing off of a cartridge in an Atari 2600.

 

- James

 

 

 

 

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

Hey Everyone,
With lots of crucial insights and ideas from @Andrew Davie we were able to speed up the encoding process.

Original encodings (with dynamic background switches) took around 1480 msec per frame. (30 frames per second).
A ten minute video would run overnight.

Now using k-d trees, hue categories, large lookup tables, and general optimizations, we got it down to 14.5 msec per field (100x faster).

On my desktop PC, this now encodes in real-time. (60 fields per second).

I'll be talking about this project (along with some other TouchDesigner related artworks I've worked on) near the end of this month in a live session if anyone's interested.

But it's currently available to encode now as well.

Cheers
Rob
 

  • Like 12
Link to comment
Share on other sites

43 minutes ago, rbairos said:

On my desktop PC, this now encodes in real-time. (60 fields per second).

Real time, that's awesome!! ?  Does this mean that you'll be releasing a plugin for OBS soon so I can stream myself playing Atari 2600 games to an Atari 2600 via the wifi on the PlusCart?  Or alternatively I could stream myself streaming myself streaming myself... like pointing a video camera at the TV... hahah

 

- James

  • Like 3
  • Haha 3
Link to comment
Share on other sites

3 hours ago, rbairos said:

Original encodings (with dynamic background switches) took around 1480 msec per frame. (30 frames per second).

That doesn't seem right. 1480ms per frame is not 30 frames per second!

It's more like 2/3rds of a frame per second, by my calculations anyway.

Link to comment
Share on other sites

49 minutes ago, Andrew Davie said:

That doesn't seem right. 1480ms per frame is not 30 frames per second!

It's more like 2/3rds of a frame per second, by my calculations anyway.

1480 msec to process each frame, and the video is encoded at thirty frames per second. (Each frame broken into two fields)

Link to comment
Share on other sites

On 4/1/2021 at 1:40 PM, Andrew Davie said:

You're never going to run out of space.  The sound would be simply a digitial data stream written to AUDV0 and/or AUDV1 I am guessing.

Pretty much both sound and video streamed directly from the SD into RAM on the cart, and then a kernel on the 6507 accessing.

@rbairos

Just curious. Would this mean that there could be a possibility for 2600 games to implement the audio streaming in conjunction with regular games.

Link to comment
Share on other sites

5 hours ago, KevKelley said:

Just curious. Would this mean that there could be a possibility for 2600 games to implement the audio streaming in conjunction with regular games.

Not that I can see.
You'd have to rewrite the games to continually be writing to AUDV0/AUDV1 regardless of how it got the audio stream.

Link to comment
Share on other sites

6 hours ago, KevKelley said:

Just curious. Would this mean that there could be a possibility for 2600 games to implement the audio streaming in conjunction with regular games.

 

Sounds like what I did in Draconian.

  • Channel 0 is used for both speech and sound effects. AUDC0 and AUDF0 are updated once per frame, while AUDV0 is updated once per scanline from a data stream.
  • Channel 1 is used only for sound effects. AUDC1, AUDF1, and AUDV1 are updated once per frame.

The data stream for AUDV0 will either be pointed at the data for the speech sample, or at the byte of RAM containing the volume for the sound effect.

 

Data stream has a sample rate which controls how fast the data stream advances while playing back the sample.  For the 5 samples in Draconian the rates are:

SampleRates = [* & $fff] + $7000
    .word 110000 / 256  ; blastoff
    .word  94000 / 256  ; alert
    .word  95000 / 256  ; battlestations
    .word  98000 / 256  ; spy ship
    .word  92000 / 256  ; condition red     

 

The / 256 is to make the value fit in 16 bits. The C code does a * 256 when the rate is set.

 

The sample rate is set to 0 if a sound effect is active on channel 0. This causes the data stream to never advance - so it returns the sound effect's volume for every scanline.

 

 

 

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

3 hours ago, keithbk said:

Show us more video... please?

 

I want to see how things have advanced!

So @Andrew Davie and I have been batting around a tonne of different ideas.
I think the biggest gain so far is a more exhaustive test of each foreground cell color (instead of just averaging nearby ones).
Its back to 10x slower, (without any optimizations so far), but I think it looks much better.
Namely, less black speckly dots:

Column 1:  original image
Column 2:  current encoding
Column 3:  proposed encoding


 

test_foregound.jpg

Edited by rbairos
  • Like 6
Link to comment
Share on other sites

1 hour ago, rbairos said:

So @Andrew Davie and I have been batting around a tonne of different ideas.
I think the biggest gain so far is a more exhaustive test of each foreground cell color (instead of just averaging nearby ones).

 

Wow, a noticeable increase in detail. Looks way less "over-sharpened" and gives the picture a smoother, softer look. You can really see it in Marty's left eye in the middle framegrab, it has way more definition and number of colours rather than just a harsh "black and white". This has come a LONG way since the first incarnation, amazing!

 

- James

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...