Jump to content
IGNORED

Movie Cart


rbairos

Recommended Posts

7 minutes ago, MarcoJ said:

Ah, I wondered about this prospect. I recall CDFJ being able to take advantage of fast swapped immediate loads from its data bank/selection logic. The part I was unsure about was if CDFJ could be able to source the dataset from SD card, rather than only its internal paged ram bank/ data bank.

Not that I know of. I was referring to the jump indexing.

 

SD access wouldn't be able to keep up with the speed required to feed the 6507, I think. The only way I can think of doing it is having a separate process to stream from the SD card to RAM, so that the data is always available "quickly". I'm guessing the MoveCart is doing this.

  • Like 1
Link to comment
Share on other sites

---

So MovieCart uses a 'separate' process in the form of a Dual Port RAM.
The RAM is 1K divided into 8 (128 byte) pages.

The onboard microcontroller (pic) updates pages that are not currently used.
The 6507 uses the odd-numbered pages while the pic updates the even-numbered ones and vice versa.

The pic monitors line A7 to determine when the 6507 is entering an odd or even page.

This allows the pic to update the next pages asynchronously and *not* have to monitor individual address requests along the way.

I didn't need a particularly powerful pic to do this, using this method.
Its clocked at 64MHZ, but (4-cycle instruction) is really a 16 MIPs processor.

---

In terms of SD card access, it foregoes higher level file formats, and just reads 512 byte blocks sequentially.
A field takes about 5 of these blocks, but I rounded that up to 8 blocks (4096) to make the math faster.
I include a small windows utility in the github that writes the movie data file into sequential blocks on the SD card.

Back on the pic, I use DMA to transfer the blocks into memory in the background while the pic is busy writing out pages to the dual-port ram.
I make sure to break up the SD Card routines to be polling instead of blocking, checking status every scan line.


In my tests, with my generic SD cards, it could comfortably read 5 blocks per field. I think the max was about 6 or 7.

----

In terms of getting switch and joystick data back from the console, I do this through monitoring the A10 line.
Since I never read the DATA lines.


The way this works is the 6507, at the end of each scan line, accesses an address with A10 set high or low.
So for example, if it wants to send back value 43,  the first 43 of the 192 scan lines will have A10 turned on.
In the pic, I count the number of A10 pulses to determine the value sent each field.
One field sends joystick data, another console switch data.

This results in much simpler hardware setup, getting all input information through a single address line.
Just make sure the values are less than 192 (which is fine, since Im sending 5-bit values for this)

 Another caveat is the 6507 must read the joystick + console switches in the correct page, otherwise the A7

 is triggered prematurely.

 The end result is a low power processor that just monitors A7 periodically with loose timing constraints,

 and uses an internal pulse counter on A10.
 A11 is put through an inverter to enable the dual port RAM.

 This also frees up A12 so the MovieCart also works on Flashback-2's which erroneously keep the A12 constant.

 

  • Like 5
Link to comment
Share on other sites

43 minutes ago, Thomas Jentzsch said:

Thanks for explaining. Please make sure that you create a pull-request of your changes for Stella. And if you can, please post a short demo video file for testing.

Sounds great.
I've just created the pull request, with links to demo files.

 

Link to comment
Share on other sites

1 minute ago, keithbk said:

Here's an idea... how about using "Movie Cart" for a "Find your Fate" style adventure? That would be really interesting! You watch a short video segment, choose a path, sends you to the next segment...

I worked on exactly this back in the mid '90s - we called 'em "MultiPath Movies".

Wasn't a success!  Interesting idea though.

  • Like 2
Link to comment
Share on other sites

1 hour ago, batari said:

Is the movie on the SD card as raw data without a filesystem?

Thats right. It just reads consecutive 512-byte blocks from the SD card, starting at a specific offset.
I think with a faster processor it might manage a file system, assuming it could read random blocks off the card quickly enough.

Link to comment
Share on other sites

5 minutes ago, rbairos said:

Thats right. It just reads consecutive 512-byte blocks from the SD card, starting at a specific offset.
I think with a faster processor it might manage a file system, assuming it could read random blocks off the card quickly enough.

My mechanical TV streams data of a SD card via filesystem (FAT) using an Arduino, and it does it with no drama.

Each frame is 32 x 48 @ 12.5 Hz, so I'm streaming 19,200 bytes/sec. A bit less than your requirements, but at least some info that streaming of SD in time-constrained video systems is possible, at least with mechanical TV :)

Link to comment
Share on other sites

2 hours ago, Andrew Davie said:

I worked on exactly this back in the mid '90s - we called 'em "MultiPath Movies".

Wasn't a success!  Interesting idea though.

I wonder how the Choose-Your-Own-Adventure games on Netflix did recently. My kids seemed to like the Minecraft and Carmen Sandiego ones. Also released:

 

Black Mirror: Bandersnatch . Was an interesting diversion with 5 possible endings.

Man vs Wild: several ?

Minecraft Story: several ?

 

Link to comment
Share on other sites

1 hour ago, Andrew Davie said:

My mechanical TV streams data of a SD card via filesystem (FAT) using an Arduino, and it does it with no drama.

Each frame is 32 x 48 @ 12.5 Hz, so I'm streaming 19,200 bytes/sec. A bit less than your requirements, but at least some info that streaming of SD in time-constrained video systems is possible, at least with mechanical TV :)

That's good info.
Im reading 5 blocks of 512 bytes each field. So 2.5K * 60 = 150 K second.
I think I recall it having trouble reading much more.

I remember having to lower the SPI speed to something like 4MHZ. 8MHZ was giving it trouble.
I bet different SD cards might have better performance though.

The one issue with regular file system is that I would have to keep going back to some pre-defined area to find out where the next blocks were, meaning more block reads.
Maybe doable.  Though it would really simplify things alot in that you could just dump the file onto the SD card, instead of needing a little utility to encode it in.
Maybe for version 2.0 :)




 

Link to comment
Share on other sites

2 hours ago, Andrew Davie said:

My mechanical TV streams data of a SD card via filesystem (FAT) using an Arduino, and it does it with no drama.

Each frame is 32 x 48 @ 12.5 Hz, so I'm streaming 19,200 bytes/sec. A bit less than your requirements, but at least some info that streaming of SD in time-constrained video systems is possible, at least with mechanical TV :)

I forgot -- two channels; one audio, one video.  So double that to 38,400 bytes/sec.

 

  • Like 1
Link to comment
Share on other sites

1 hour ago, Andrew Davie said:

pr0n cart coming right up

I was thinkin more like Bloodsport and Karate Kid. Or old ass WWF events or something.

 

Would be cool if there was a way we can upload our own videos we wanna watch on it.....and in the cases of some horny dweeb, yeah, they will try putting porn on it.

 

Its actually a good way to hide it, not many care about Atari these days lol

Link to comment
Share on other sites

6 minutes ago, sn8k said:

I was thinkin more like Bloodsport and Karate Kid. Or old ass WWF events or something.

 

Would be cool if there was a way we can upload our own videos we wanna watch on it.....and in the cases of some horny dweeb, yeah, they will try putting porn on it.

 

Its actually a good way to hide it, not many care about Atari these days lol

 

There is. Obviously you have not paid attention. Everything is on the github to make your own.

  • Like 1
Link to comment
Share on other sites

3 hours ago, Shawn said:

 

There is. Obviously you have not paid attention. Everything is on the github to make your own.

No I obviously read it but don't understand any of this fucking shit. I don'r understand ANY of the technical talk. I just play games. 

 

So if someone makes a Bloodsport cart. Im buying it. If not. Cool trick.

  • Like 1
Link to comment
Share on other sites

33 minutes ago, sn8k said:

I don'r understand ANY of the technical talk. I just play games.

don-cheadle-boogie-nights.jpg

The TK-421 upgrade, which we do right here in house, kicks it up another 3 or 4 quads.  But that's technical talk, it doesn't concern you!

  • Haha 2
Link to comment
Share on other sites

12 hours ago, Andrew Davie said:

I worked on exactly this back in the mid '90s - we called 'em "MultiPath Movies".

Wasn't a success!  Interesting idea though.

Yeah, Sega CD and early Saturn/PSX had a ton of these FMV games. Most of them not great but a few okay ones.

 

That said, I'd definitely give one a play through on the 2600 just for the shear "nifty-ness" and technical feat of it. Being an actual fun game would be a bonus. :)

Link to comment
Share on other sites

4 hours ago, slacker said:

Yeah, Sega CD and early Saturn/PSX had a ton of these FMV games. Most of them not great but a few okay ones.

 

That said, I'd definitely give one a play through on the 2600 just for the shear "nifty-ness" and technical feat of it. Being an actual fun game would be a bonus. :)

 

They're still being made. Erica for the PS4 is a notable example.

Link to comment
Share on other sites

19 hours ago, sn8k said:

No I obviously read it but don't understand any of this fucking shit. I don'r understand ANY of the technical talk. I just play games. 

 

So if someone makes a Bloodsport cart. Im buying it. If not. Cool trick.

I went into Best Buy and played totally dumb one time. I said, "I'm looking for a computer with a lot of gigglebytes and I want to make certain it can Google." The guy said, "Are you serious?"

  • Haha 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...