Jump to content

Photo

Bad Apple: Full Motion Video on the 2600


31 replies to this topic

#1 fb39ca4 OFFLINE  

fb39ca4

    Space Invader

  • 18 posts

Posted Thu Jun 26, 2014 12:19 AM

The Bad Apple video has been made to display on many retro systems, such as the Sega Megadrive, Gameboy Color, NES, Pokemon Mini, and IBM PC. I've also written a version for the TI-84+ SE calculator. I decided to try my hand at making one for the Atari 2600.

 

Features/specs:

  • 3:40 of monochrome video
  • 40x32 resolution at 20FPS
  • 512KiB 3F ROM
  • NTSC
  • Lossless compression - video data fits in under 390KiB as opposed to 685KiB uncompressed.
  • Kernel capable of displaying at 60FPS

screenshot.png

 

Unfortunately, there is no sound. The melody to the song has a very wide range, though, so I don't think it would sound good on the 2600's sound hardware anyways. The ROM is attached if you want to try it out. I've only tested it on emulators, so try it on real hardware at your own risk.

Attached Files


Edited by fb39ca4, Thu Jun 26, 2014 12:58 AM.


#2 Rybags OFFLINE  

Rybags

    Quadrunner

  • 15,720 posts
  • Location:Australia

Posted Thu Jun 26, 2014 12:53 AM

Cool... now we just need it for the computer line.



#3 John_L OFFLINE  

John_L

    Chopper Commander

  • 204 posts

Posted Thu Jun 26, 2014 9:59 AM

really neat, well done!



#4 fb39ca4 OFFLINE  

fb39ca4

    Space Invader

  • Topic Starter
  • 18 posts

Posted Thu Jun 26, 2014 6:37 PM

I finally figured out how to record a video. I used Z26, MSI Afterburner, and the Lagarith codec. Still need to figure out how to crop it properly and make sure the on screen display doesn't show up though. What is the generally accepted setup for recording 2600 emulator footage?

https://mediacru.sh/2Iz0XX05Es2Q

#5 John_L OFFLINE  

John_L

    Chopper Commander

  • 204 posts

Posted Thu Jun 26, 2014 6:46 PM

I use cam studio, it's free, easy to use, and can record a specific window if you want rather than the entire screen... should work well.



#6 nanochess ONLINE  

nanochess

    Processorus Polyglotus

  • 5,478 posts
  • Coding something good
  • Location:Mexico City

Posted Thu Jun 26, 2014 8:34 PM

You could use a tracker like the NES version for playing a simple rendition of the music, only 4 bytes more (tone and volume for each channel) at 60hz.



#7 raindog OFFLINE  

raindog

    Stargunner

  • 1,717 posts
  • Location:upstate NY, USA

Posted Fri Jun 27, 2014 6:45 AM

https://mediacru.sh/2Iz0XX05Es2Q


Off-topic, I realize, but thanks for turning me on to Mediacrush. Youtube has been getting very, very irritating over the last year or two and it's nice to see an open-source competitor that's not designed to promote a failed social network.

#8 fb39ca4 OFFLINE  

fb39ca4

    Space Invader

  • Topic Starter
  • 18 posts

Posted Fri Jun 27, 2014 8:36 AM

You could use a tracker like the NES version for playing a simple rendition of the music, only 4 bytes more (tone and volume for each channel) at 60hz.

The other issue apart from tuning is that the beats of the music do not line up with 60Hz. From the TI-84 version, I discovered 32nd notes play at 18Hz. Back then, I had interrupts, so it wasn't a problem. Here though, there still just might be a way, but then I still have to deal with the poor tuning.

Off-topic, I realize, but thanks for turning me on to Mediacrush. Youtube has been getting very, very irritating over the last year or two and it's nice to see an open-source competitor that's not designed to promote a failed social network.

Mediacrush is a nice service, but it serves a different purpose from YouTube. YouTube, apart from providing hosting, also lets people discover new videos with searching and reccomendations. Mediacrush is more like an image host, but for pictures, audio, and video. You have to link to the content on another site for it to be visible. I use Mediacrush for quickly sharing things with people, while I use YouTube for a final video.

Edited by fb39ca4, Fri Jun 27, 2014 8:44 AM.


#9 fb39ca4 OFFLINE  

fb39ca4

    Space Invader

  • Topic Starter
  • 18 posts

Posted Mon Jun 30, 2014 11:22 PM

I've got a 30FPS version somewhat working now. It is supposed to use a 512K ROM/256K RAM 3E cartridge. It decompresses data into the RAM beforehand, allowing for more efficient compression that would not work on-the-fly. Problem is, Stella seems to be only supporting 32K of cartridge RAM. If you try and run the ROM, it looks like mostly garbage, because data going into the RAM gets overwritten by data that was supposed to go into a later bank. I've got the original version, if anyone does know of an emulator that supports 256K RAM, and I have a shortened version that only needs to decompress to 32K so you can see it work. Make sure to set it manually to a 3E cartridge - Stella does not seem to autodetect it.

Attached Files



#10 LS_Dracon OFFLINE  

LS_Dracon

    Dragonstomper

  • 761 posts

Posted Tue Jul 1, 2014 8:09 AM

How about a 12 fps version with twice vertical resolution?



#11 fb39ca4 OFFLINE  

fb39ca4

    Space Invader

  • Topic Starter
  • 18 posts

Posted Tue Jul 1, 2014 3:51 PM

Did you mean to say 15FPS? That would be ideal when the source material is 30FPS. That would be doable. I'm currently doing 6 scanlines per row of pixels, with each scanline loading part of the data for the next row of pixels, but I have just enough time to do it in three scanlines if I wanted to. I prefer higher framerates, however.



#12 LS_Dracon OFFLINE  

LS_Dracon

    Dragonstomper

  • 761 posts

Posted Tue Jul 1, 2014 6:30 PM

12 Actually, movie half frame rate (24 fps). But 15 fps works too.

 

I think the opposite, image would look better with more resolution than framerate, you have more detail and time to look at.

 

Good demo BTW.



#13 fb39ca4 OFFLINE  

fb39ca4

    Space Invader

  • Topic Starter
  • 18 posts

Posted Tue Jul 1, 2014 8:31 PM

No, the original video is 30FPS. And I actually just realized adding more vertical resolution might be an issue because I am currently using 3 bytes of RAM per row of vertical resolution that stores the bank and address of where the data for each row is located. 32 rows x 3 = 96 bytes, which gives me just enough space for everything else. In the ROM, it is packed into 2 bytes per row and everything for the frame about to be rendered is unpacked in the VBLANK. I could read the two bytes from ROM and then unpack it on the fly, but I don't think I have time for that in a three scanline kernel.

 

Meanwhile, I'm making progress on a 40x32@30FPS version that should run with only 32K cartridge RAM. It'll all be dependent on how good the compression turns out.



#14 fb39ca4 OFFLINE  

fb39ca4

    Space Invader

  • Topic Starter
  • 18 posts

Posted Mon Jul 7, 2014 9:07 PM

I finished the 30FPS version this weekend. It also only 414K of ROM, meaning there is going to be plenty of space left over for the music I'm working on. This version decompresses data in the background to the 32K cartridge RAM, so make sure you run it as a 3E ROM. The screen changes between red and green to illustrate when the decompressor is running and not running, respectively, but I'll of course remove that in the final release. Right now, however, the ROM only works in Stella, and not Z26, which has me worried. Can someone with a real 2600 and flashcart try this and report back if it works? I have neither, so the testing would be much appreciated.

 

On another note (pardon the pun), does Stella only check the state of the TIA sound registers once per frame? Because I am trying to update the registers at 36Hz, and the timing of the notes sounds very off. At 30Hz, everything sounds fine, but then the music plays too slow for the video.

Attached Files


Edited by fb39ca4, Mon Jul 7, 2014 9:08 PM.


#15 LS_Dracon OFFLINE  

LS_Dracon

    Dragonstomper

  • 761 posts

Posted Thu Jul 10, 2014 6:54 AM

No, Stella change sound as will just like graphics. You can see some techniques in games like Stella's Stoking menu, where one sound channel register is changed every scanline, to create, by software, multi channel music (with quality) like in pitfall 2 (this last uses a special chip for this).

 

 

Naturally, this takes a lot of processor time. Give a search here and you will find many information about it.



#16 SvOlli OFFLINE  

SvOlli

    Chopper Commander

  • 208 posts
  • Location:Hannover, Germany

Posted Sun Nov 16, 2014 4:22 AM

It would be interesting if this demo can be changed in a way to run on the Harmony Encore, so we can enjoy it on real hardware...



#17 Kosmic Stardust OFFLINE  

Kosmic Stardust

    Princess Rescuer

  • 17,468 posts
  • Location:Milky Way Galaxy

Posted Sun Nov 16, 2014 4:54 AM

Does the Encore support 512Kbytes of ROM and however much RAM this video demo eats? :P

 

Also, everything but the file in the original post are completely scrambled in Stella 4.x :P


Edited by stardust4ever, Sun Nov 16, 2014 4:58 AM.


#18 batari OFFLINE  

batari

    )66]U('=I;B$*

  • 6,666 posts
  • begin 644 contest

Posted Sat Nov 22, 2014 11:58 PM

Does the Encore support 512Kbytes of ROM and however much RAM this video demo eats? :P
 
Also, everything but the file in the original post are completely scrambled in Stella 4.x :P

it has a total 32k flash and 520k RAM so yes, in theory this scheme could be supported. Just barely ;)

#19 fb39ca4 OFFLINE  

fb39ca4

    Space Invader

  • Topic Starter
  • 18 posts

Posted Sun Nov 23, 2014 10:55 PM

I finally found the time to work on this again, and I finished up the music. Here's the video:

 

 

And here is the ROM. Remember to launch it in Stella using 3E bankswitching.

Attached Files



#20 Tjoppen OFFLINE  

Tjoppen

    Chopper Commander

  • 215 posts

Posted Wed Nov 26, 2014 12:07 PM

Not too shabby :)

Now do it with a 96 pixel kernel and a custom 5-bit synth!



#21 JAC! OFFLINE  

JAC!

    Stargunner

  • 1,703 posts
  • Always looking for GFX and MSX for my demos
  • Location:Lebach, Germany

Posted Wed Nov 26, 2014 4:01 PM

I like the 1.0 version. Nice touch on the music and really good for VCS actually.



#22 Godzilla OFFLINE  

Godzilla

    Quadrunner

  • 6,794 posts
  • Location:Jacksonville, Fl

Posted Wed Jan 21, 2015 1:28 AM

dang this is awesome!



#23 Zeptari1 OFFLINE  

Zeptari1

    Stargunner

  • 1,369 posts
  • Location:Massachusetts

Posted Tue Apr 7, 2015 7:31 PM

Can this be scaled down to run on the Harmony cart?
Is there a list of intro type demos that run on the original
Harmony cart?

#24 Kosmic Stardust OFFLINE  

Kosmic Stardust

    Princess Rescuer

  • 17,468 posts
  • Location:Milky Way Galaxy

Posted Tue Apr 7, 2015 8:18 PM

Can this be scaled down to run on the Harmony cart?
Is there a list of intro type demos that run on the original
Harmony cart?

It can supposedly run on the Harmony Encore, if the powers that be choose to support it.



#25 ZylonBane OFFLINE  

ZylonBane

    River Patroller

  • 3,952 posts
  • Location:KC, KS, USA

Posted Wed Apr 8, 2015 7:26 PM

Awesome, I'd never even heard of the original video before. Have now watched it an unhealthy number of times.

 

If this frame engine really is capable of running at 60 FPS, I wonder how it would look to use temporal dithering (30Hz flicker) to simulate an intermediate grey color. Granted, doubling the frame rate would blow up the ROM size even more.






0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users