Jump to content

rbairos

Members
  • Content Count

    152
  • Joined

  • Last visited

Community Reputation

79 Excellent

About rbairos

  • Rank
    Chopper Commander

Profile Information

  • Gender
    Male
  • Location
    Toronto, Canada

Recent Profile Visitors

2,287 profile views
  1. rbairos

    Movie Cart

    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
  2. rbairos

    Movie Cart

    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.
  3. This is my favourite video of the song, mainly for the 'penguins on LSD' comments.
  4. rbairos

    Movie Cart

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

    Movie Cart

    --- 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.
  6. rbairos

    Movie Cart

    I might have other constraints for entering/exiting consistently, but I'll give it a shot soon.
  7. rbairos

    Movie Cart

    I'll have to review, but it was close to full. I've attached it here, from my github. (original version, without your updates): important part: right_line and left_line. (badly named but each fills in 5 cells of the 10) left_line has a JMP statement normally back to right_line. Note also I have to be on cycle 71 for each HMOVE (for the 8 pixel shift) further constraining things. And made sure audio update was on same pixel clock *** Though I think this can be relaxed as the Atari just updates the audio on its own specific pixel clock anyways? Im remembering now I couldn't quite manage to add a spare store, keeping all these constraints, but that might open up with your kernel change. Even updating background every second line would open up possibilities. @JetSetIlly incidentally just finished successfully porting this to the Gopher2600 emulator core.asm
  8. rbairos

    Movie Cart

    I think before I get too exacted, I'll simulate this, without any TIA constraints to see what the best-case results would be.
  9. rbairos

    Movie Cart

    Could have used this a couple years ago! Still have to sit down and spend some time plugging it in to my controller loops. Takes me a bit of time to make sure its horizontally centered, and audio is being updated same pixel offset etc. This will be so awesome. I spent weeks and weeks trying to find reasonable kernels for this. Is your Vader screenshot from Stella? I started cleaning up support for it, but if you've got something better thats cool too. EDIT: In terms of stereo, I thought about that, but the 2600 never made that second audio port available, so Im okay with sticking to that. If there was enough cycles, next thing I would do is modify background color. Right now, things are best on a black background, but the dithering algorithms wrestle badly when for for example its two non-black colors. eg: yellow credits on a red background for dragons lair title screen. Being able to set the 'off' color each scan line would be crazy. Cheers, Rob
  10. rbairos

    Movie Cart

    I guess I slept through the final submission, but still no reply to my original inquiry yesterday. I can only imagine they're swamped and/or not interested in flirting with any copyright workarounds. Oh well, maybe next time.
  11. rbairos

    Movie Cart

    Well I sent them a message earlier today but no response. Flash Gordon is interesting, but having a look through the footage, I suspect it won't translate that well. There's some interesting stuff on public domain, if you search long enough, but I'm suspecting its too late to contribute at this point. Thanks for the suggestions though, Rob.
  12. rbairos

    Movie Cart

    Sorry I don't really know much about this community. Couldn't get a physical cart in Germany by tomorrow, so it would be a digital recording of the movie cart? Unfortunately, they seem pretty strict: Entries have to be free of third party rights unless you have a legal license to use the given content. This means no ripped music or vocal samples, no movie snippets, no closeups of trademarked logos, etc. Violations will result in immediate disqualification.
  13. I was looking for some footage around the Atari release date, and funnily enough, I found an Atari commercial captured in the middle of this CBS Evening News with Walter Cronkite from Monday Sept 12 1977. Thought was kinda funny. Time: 24:12
  14. rbairos

    Movie Cart

    Yup. In this case movies were about 1.5GB for 2 hours, including sound. Even then my frame format is about 40% unused/reserved. Could potentially hold closed captioning or second audio for example. (difficulty switches could be used). And/or duplicate the whole thing for PAL. One interesting note for the running timecode: 00:12:34 etc. I don't generate that on the fly. I just bake it right into the movie at the bottom of each frame and selectively choose when its displayed. Makes the cart microcontrollers job easier.
  15. rbairos

    Movie Cart

    It was the one @ZeroPage Homebrew showcased if that's what you mean:
×
×
  • Create New...