+rbairos Posted March 31, 2021 Share Posted March 31, 2021 Hi everyone. Thanks for checking out my MovieCart last night. It was the result of a very long series of experimentations and trial and error, in assembly, color processing, microcontroller interfacting and packaging. Shout out to @zackattack for being my technical sounding board from the beginning, and @zeropagehomebrew for debuting it last night! Thought I'd start a new thread to discuss technical issues etc. The final format I chose was a solid block of 10x192 cells, drawn as two alternating checkerboards of 5x192. I had tried/emulalted/rendered several variations of this, including: 12x192 with two random colored columns. 40x40 playfield with full color. 12x192 with alternating r/g/b lines (chronovision) Several variations of alternating columns, alternating diagonal columns, etc. Greyscale floyd steinberg dithering with background color swaps The final full alternating checkerboard is thanks to @DirtyHairy and @SpiceWare for explaining the 8 bit back shift in detail. A developed a testbed in TouchDesigner with glsl and custom plugins to test out all these variations over months. I still have several of those test clips if anyone's interested. In terms of hardware I aimed for through-hole, 5v, simple construction. It uses a 16mips pic (64hz 4-cycle) driving 1K of an 8k dual port ram. Data is completely uncompressed and read using low level SPI interface to an sd card. The mc doesn't have to react to each instruction, but knows which of two possible 128-byte sections of the ram the 6507 is currently accessing, through very careful planning of the kernel. In this way I ended up only needed 3 address lines: A7 -> which one of two possible chunks is the 6507 on A10 -> controller + console messages A11 -> used to enable the ram output onto the bus. Note I did not need A12, so these carts actually work on modified Flashback 2's as well, which don't drive A12 properly. In terms of controller + console data: The mc does not probe any registers, instead the kernel decides to communicate it back, one bit per scanline by selecting addressing A10 line, which the RAM address lines don't use. I have everything up on my github (pcb layouts, assembler, real-time conversion utilities, etc etc) So its available for dissection, improvement etc: https://github.com/lodefmode Going to work with @Zackattack in terms of an uno part, and will likely submit a cleaned-up support for Stella emulation, which was invaluable for this project. Anyways feel free to post any technical comments, questions here. Cheers! Rob "lodef mode" 23 3 Quote Link to comment Share on other sites More sharing options...
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.