• Please review our updated Terms and Rules here

A TRS-80 Video Player

gp2000

Experienced Member
Joined
Jun 8, 2010
Messages
468
Location
Vancouver, BC, Canada
trsvid plays videos from an enhanced FreHD hard drive emulator on TRS-80 Model I, 3 and 4 computers. You'll need 48K for Model I and 3, 64K for Model 4. Other than that it does it all with the built-in graphics and audio. Running it on your own TRS-80 will be a bit of a trial, but you can easily watch the demo videos, try it on the emulator or play around with the UI on a stock FreHD.

Read all about it here: http://48k.ca/trsvid.html

A little demonstration:


I'm more than happy to help anyone who would like to get this going on their own machine. And who knows, maybe my FreHD firmware changes will become standard equipment.
 
Very nice!

You might want to try ordered dithering; it produces less visual noise across time. Error-diffusion dithering (I see you're using Sierra) was meant for the spatial domain only, not temporal.
 
Last edited:
You might want to try ordered dithering; it produces less visual noise across time. Error-diffusion dithering (I see you're using Sierra) was meant for the spatial domain only, not temporal.

I'd thought about it but I'm not a big fan of the noticeable pattern you can see with ordered dithers. And I find it even less appealing when dealing with the quarter-sections the TRS-80 calls pixels. Still, I should give it a try just to see. One local problem is that getting any sort of half-decent output stalled me for months so I was happy to just move on once that was in place.

I made my own temporal variant of Sierra. 50% of the error goes straight to the next frame and the rest is pushed in the normal Sierra-lite pattern. And I flip between top-down and bottom-up processing every frame which kills a disturbing downward-drift artifact that comes from always doing top-down. Can't help but feel there's some more direct algorithm that somehow pushes the error to neighboring pixels simultaneously. Well, suffice to say I'm sure there's lots of room to improve the converter.
 
I'd thought about it but I'm not a big fan of the noticeable pattern you can see with ordered dithers.

A time-stable dither keeps high frequency noise at a minimum. You may find the resulting video easier to see, which would cancel out the fixed patterns. Also, you can use a larger matrix like 8x8 to minimize "seeing the pattern".

I made my own temporal variant of Sierra. 50% of the error goes straight to the next frame and the rest is pushed in the normal Sierra-lite pattern. And I flip between top-down and bottom-up processing every frame which kills a disturbing downward-drift artifact that comes from always doing top-down.

By flipping every frame, I think you're removing the benefit of pushing the error forward. The error from a top-down only propagates correctly if the next frame is also top-down.

Another idea: Only use a temporal dither. If your video updates are sycned to the refresh rate of the monitor, this will effectively give you black, white, and 50% gray pixels. A different set of tradeoffs.
 
The best part of your player is the extensive write-up and full source code -- thanks for that :)

I'm glad it is of interest. I'm trying to make "source code included" the default. Especially with this project where the FreHD team's sharing of their firmware and utility source code was vital. Big thanks to them!
 
@gp2000

Thank you for all the good work you have done. I like trsvid and have been playing with the software.
The sound and video quality is surprisingly good on my Model 1 with updated FreHD and Quinnterface.
There is one file, ftny/tv1, which always makes my computer crashing, I don't know why. Any suggestion ?

The gif viewer is a nice item and add some extra options to the Tandy.

Of course I start playing with your TRS80gp, at first I looked to the options and I was surprised by the (preliminary) Model II support, besides the
support for M1, M3, M4 and M4p.
The startup screen is very promising, but it was not possible to load an operating system.
Is this already possible and what file extension do you use for these files and how can I run one of these.
I'm curious about your next steps in this development.

He guys thank for all the work :)
 
Using your conversion tools, I put together a nodeJS web service that takes YouTube URLs and returns the video in requested format (tv1, tv3, tv6). I just need to add some decent error handling and put it out on the cloud. The harder part will be adding a YouTube browser that runs on the TRS-80 (using YouTube's API), and consuming the conversion web service, and downloading the multi-megabyte file to FreHD / MISE.

I noticed with my MISE when I use ftp to transfer these large video files, from my laptop to my Model 1 through my home router I only get about 14KB/s throughput. I thought it would be faster than that ...

Can TRSVID be modified to play videos from MISE virtual hard drives? Currently I don't have a FreHD, but am thinking of getting one just so I can use TRSVID on my actual Model I.

I don't know what it would take to run the conversion against a live video feed (e.g. web cam), but I'd love to work on a project like that. Skype for Model I!
 
Thank you for all the good work you have done. I like trsvid and have been playing with the software.
The sound and video quality is surprisingly good on my Model 1 with updated FreHD and Quinnterface.
There is one file, ftny/tv1, which always makes my computer crashing, I don't know why. Any suggestion ?

Thanks; I'm glad you're getting some use out of it. I'm impressed - you're the first person I've heard to actually run the software on a real TRS-80 with a modified FreHD. The most likely explanation for a crash would be the file not occupying a contiguous run of blocks on the SD card. "contig -a" should say it is not fragmented. In that case it would play for a while but crash at some point. It should at least be selectable in TRSVID as you browse files. Other than that, the video player is very fragile -- there's no checks for bad data so something wrong with the file is likely to cause a crash. You can try running ftny.tv1 under the emulator to verify that the data is intact.

Could also try making a 2nd copy of the file to help rule out SD card issues. I imagine block streaming is a little-used feature of SD cards so it doing something I don't expect or plain incorrect is a possibility. That's all I can think of off the top of my head. If you could let me know when it crashes that might provide a clue.

The gif viewer is a nice item and add some extra options to the Tandy.

I'd like to add TRSVID's image preview mode with its flickering grayscale-ish graphics as another option to the GIF viewer, but I only know how to do that using multiple passes which won't fit into the program. Some day. I'd rather finish my PNG viewer with is about 80% done -- it works but needs dynamic memory and code allocation in order to fit on a Model I or III -- the 32 KB decompression window is doesn't leave much memory to work with on a 48K machine with TRSDOS running.

Of course I start playing with your TRS80gp, at first I looked to the options and I was surprised by the (preliminary) Model II support, besides the support for M1, M3, M4 and M4p. The startup screen is very promising, but it was not possible to load an operating system.

Nothing more than video display on that, I'm afraid. I might get back to getting it working some day but even just plumbing the depths of perfect Model I/III/4 emulation is enough to keep me busy for quite some time. I also figure that without a real Model II I won't be able to perfect the timings as I can with the others so there's not much I can add that MESS isn't doing already. But one never knows. I find projects much more compelling if I know someone wants to see it done. And disassembling z80ctl for TRS-Xenix is giving me the urge to have a Model II emulator handy.
 
Back
Top