I have CX2388x drivers kinda working! That is I've got a stable picture, animating at 50fps on my workbench. I've tried it with a C64 and a Tom and Jerry CED (kinda like a cross between a DVD and an LP), and both look perfect. Only got a PAL source working so far but as that's the more difficult one to get working I'm chuffed.
Now the bad news....
You don't want to know how I'm getting the 50fps! I'll tell you anyway, though!
The CX2388x raises an interrupt when told to in its RISC program. I'm doing a busy main loop, and then rendering to the window whenever the interrupt flag is set. Of course this is rather slow and kind of destroys the point of interrupts. However... I can't get the Amiga to call the interrupt routine! This worked on the Bt8x8 card (too well, it crashed the system most of the time!). I'm doing the usual stuff...
PCIDevice->MapInterrupt(); (create the interrupt structure) IExec->AddIntServer()
but even though the CX2388x card is clearly raising the interrupt (I'm testing the interrupt flag and clearing it and getting the correct 50fps) my interrupt handler is never being called. Anyone got any ideas? The interrupt number is 26, the CX2388x uses interrupt pin A#. I think IRQ for A# in the UBoot screen is set to default (9 I think?) does that make a difference? All interrupts set to Level triggering in UBoot.
OK, that's part 1. It's annoying, perhaps not a showstopper as long as you don't want to do anything else while the TV is running. Here's part 2....
I can only get a small window! As soon as I use a reasonable sized window, say more than about 3/5 of the full resolution (768x576), the signal loses data - it looks like there's a bottleneck in the system somewhere and the FIFO buffers are full and overflowing. It's not consistent though, just some lines have pixels missing. Can the DMA of the A1 (XE in this case) really be so slow that the TV card is waiting to DMA to the Amiga RAM and overflowing? Because of the data loss occasionally the card loses its sync and the RISC program stops and needs to be restarted. No good really. It's the only thing I can think of, though, that could be causing it to happen. A small display (say 320x256) works perfectly with no data loss.
I wonder if I could just increase the FIFO buffers... hmm... might work... Just how slow is DMA on the A1? Bear in mind I'm trying to pump a 768x576x32 signal across the bus at 50fps. Still no overlay code remember.
Oh, yeah... does anyone here have a CX2388x-based card to test this? I'm using the latest WinTV PVR card (HVR-1300 or something) - the CX23882 is used in a lot of modern TV cards.
Yes, it is possible... and something else on my list to try... the reason I've not done so yet is because I had a similar problem on the Bt8x8 version and changing to 16 bit made little difference, from what I recall, and was hassle because of ARGB formats and endianness and stuff.
The fact that the TV card defaults to 32-bit also suggests a modern machine should be able to cope....
poweramiga wrote: is the pixelview bt878 going to work without crashing my A1 yet ? am looking forward to being able to use my tv card
I can't get the Bt8x8 working with interrupts without locking the machine solid. So at best - until I have overlay drivers - you'll have a very slow Amiga while it's running. I've not tested it but I may be able to use the same system as I'm using on the CX2388x version, i.e. a busy loop checking for the interrupt but not raising said interrupt in the interrupt chain. It might work, but will always be sloooow. It suffered often from the same bandwidth issues, too.
You could get a cheaper version without all the widgetry of course, at the moment I've only got as far as the CX23882 chip, partly as it's most important, and partly as it's the only chip on the card I have the datasheet for!
I wouldn't recommend going much out of pocket though as I don't know when or even if I'll ever get a fully working TV app - kinda busy most days, but hoping to get something released over xmas/new year!
Keep faith and the development going because if...No *when* you manage to make it work, suddenly you had reopened the multimedia way for the Amiga : PVR, video processing etc.
Keep faith and the development going because if...No *when* you manage to make it work, suddenly you had reopened the multimedia way for the Amiga : PVR, video processing etc.
Unfortunately it's not a matter of faith, it's a matter of possibility.
I can only work on chips for which I have the datasheets. While I do have the datasheet for the CX23882 chip, I don't have the necessary sheets for the other chips (this card has a hardware MPEG encoder and a hardware MPEG decoder).. If I can't get hold of the datasheets, then there's no way I can get it to work!
OTOH, if I do get hold of it we should be able to have the full hardware MPEG en/decoder PVR functionality!
Note that there have been some changes to the Exec API as a result of the new memory system. Perhaps some of your problems will "go away" once you have the next OS4 release installed and you've updated your driver.
If you don't want to wait, contact Hyperion and see if you can be added as a 3rd party developer to get early access.
Spirantho wrote: I've emailed Rogue about getting access to such things, but he's not replied. He is rather on the busy side, though!
I'm sorry about that, but as you said, I am rather busy. What's even worse is that for things like that the management needs to be involved, the lawyer needs to send an NDA, stuff like that... and that will take even longer.
I'll try to do something about it after Christmas. Things should be a bit more quiet then.
Seriously, if you do want to contact me write me a mail. You're more likely to get a reply then.