01/20/2019 at 16:54 •
Recently I made a lot of activities around RISC-V open architecture and even created my own RV32I implementation that passed majority of compliance tests (except 1 about unaligned jumps) - see nedoPC-5 project . So then I've got an idea - what if I put Xorya framebuffer (with control logic) to the same FPGA with RISC-V core? Then I'll be able to load Xorya programs from external storage (as SD-card for example), add serial, ethernet etc. Porting XORLib to this new system should be relatively easy task because it's written in C (only some Microchip specific things as SPI+DMA handling should be re-written). What do you think? Please leave a comment below...
11/09/2018 at 06:10 •
In October 2016 I tested (but didn't share here) a simple circuit that used not only SPI data output as orignial Xorya, but also SPI sync, and consisted of one 74F00 and two 74F74s that (with help of NTSC color generator chip AD725) may allow us to get "true" CGA 4-color 320x200 mode with the same PIC32 and slightly extended XORLib (so it might be the next generation PIC32 video console Xorya-II capable of running some classic CGA games from PC):
Problem is I didn't capture actual schematics at that time and now I don't remember how exactly it worked...
01/25/2017 at 05:49 •
Just a few screenshots as an example of what Xorya can do on NTSC TV with 15 colors (original images were taken from Internet under "fair use"):
( source of the city image is https://www.deviantart.com/howling/art/BoxedTown-2-9534561 )
and some images taken from old PC games:
11/12/2016 at 01:35 •
This is a prototype of the actual Xorya game console as it will look (codenamed "Xorya-I"):
As you can see it is "Direct-to-TV" kind of gamepad with 2 buttons on the right (green and red) and analog joystick on the left (currently it's 2-axis joystick from Parallax that costs more than $5). With composite video cable you can see cables for stereo sound (generated by 2 PWM). Later I'll add 2xAAA case on the back and power switch (it's not needed yet while I use PICKit3 to play with it).
Interesting thing is the fact that PIC32 chip is actually a cartridge with the game ;) In order to simplify process of inserting and removing of such game I put there a ZIF-socket (cost about $10). So the big idea is to present Xorya as an open source indie game platform with dedicated online store that will sell actual physical retro looking games for it (in form of preprogrammed PIC32 chips) both open source and proprietary with prices $5 and up.
Calculating everything (including future PCB of that size) I got possible retail price for the product (if I finally make it) - $29.95 (1 console plus 1 chip with "free" game). Thoughts?...
11/08/2016 at 17:00 •
For people who didn't notice my little demo on Hackaday Superconference during last weekend - this is 5-minute video:
Source code of the demo: https://gitlab.com/shaos/xorlib/blob/master/examples/demo2016.c
This is a collection of some XORLib examples that I created since April 2015 plus couple new pieces of code combined into a single C-file (also 2 additional data files are required and of course XORLib - everything is there on GitLab). Enjoy ;)
UPDATE: Prebuilt binary in HEX form is available on GitLab:
10/13/2016 at 02:42 •
I forgot to mention that some time ago I received a few PCBs of Xorya prototype with composite connectors as a gift from @arnaud.durand
Thank you, Arnaud! :)
P.S. I can give away few pre-built Xoryas with hotglued batteries and pre-installed "fast" Mandelbrot Set demo on Superconference in Pasadena, if anybody is interested :)
03/08/2016 at 23:15 •
Hi All, I'm still here :)
Recently I'm successfully tried to connect Xorya prototype to cheapest available color NTSC TV (from ebay) and it was working pretty well:
Last year I put this project into pause mode mostly because I stuck a little because I was not able to decide where to develop this project further - I have 3 choices:
- put it into NES gamepad and program support for NES and SNES serial gamepad protocols;
- design board around DIP version of PIC32 in form of gamepad with buttons - 4 buttons on the left for direction moves and 4 buttons on the right for actions;
- design board around DIP version of PIC32 in form of gamepad with analog joystick on the left and action buttons on the right...
05/15/2015 at 23:36 •
Experiment with color combination with chess board mixing:
This is simulation in DOSBox on PC:
PIC32 on NTSC TV - palette 0:
PIC32 on NTSC TV - palette 1:
PIC32 on NTSC TV - palette 2:
PIC32 on NTSC TV - palette 3:
05/15/2015 at 03:18 •
For now I have 3 problems:
1) When I switched from 32-bit DMA-to-SPI to 8-bit (to have video memory ordered similar to CGA) I got gap after 1st byte if transfer is happened on every 2nd peripheral clock (or 14 MHz), so before (with 32-bit transfers) I had bytes displayed in this order:
After switch to 8-bit DMA-to-SPI I expected to get this:
But instead I got this (with a gap between byte 0 and byte 1):
I fixed this by shifting visible part 1-byte to the right (anyway I already had this invisible left part of the screen for "color burst" and rest of the "back porch") - any ideas how to setup DMA and SPI on PIC32 chip to eliminate this gap?...
2) Colors are stable on LCD and LED TVs (I tested it on SONY, LG and Sumsung), but it doesn't work properly on CRT TV (I tested "Last CRT TV" SONY produced in 2005) - instead of solid colors I got red and green spots over black and white pixels - may be crystal is not precise enough to work with CRT and I need to put adjustable capacitor somewhere sequentially?...
UPDATE: After switching to more precise crystal (14.31818 MHz) I got color on SONY TV as well...
3) Single color pixel (pattern that consists of 4 black-and-white pixels) not always may produce color (or at least expected color) and 2 different color pixels sitting together may eliminate each other completely, so it is a little tricky to convert arbitrary RGB image to these 15 colors with dithering, so may be I need to write a special software that can do such conversion considering a number of rules of composite colors combinations or may be somebody may advice me to get some existing one?...
05/13/2015 at 06:02 •
Faster version with 32-bit fixed point math (at some point it's INCREDIBLY fast) on the same PIC32 running on 57 MHz CPU freq, but obviously less precise - error level doesn't allow to travel deep into the Set and it goes off the track too soon:
The same source code: https://gitlab.com/shaos/xorlib/blob/master/examples/mandelbr.c
But with FIXED32 macro instead of FIXED64 and "fake wide-screen" ratio 16:9 (with the same resolution 160x200)...