Jump to content

Just released: MacFlim, the impracticable Vintage Video player for Compact Macs


Recommended Posts

On 4/3/2021 at 4:30 AM, fstark said:

I mean, first you are awesome!

 

:lisa2: lol I just installed the software, you wrote the thing!

 

On 4/3/2021 at 4:30 AM, fstark said:

Second, I have a Lisa 2 here, and running MacFlim it on it was one of my goals -- unfortunately, I need the internal floppy drive to boot the Mac environment, and I don't know how to connect both the FloppyEmu in HD20 mode and the floppy. I was looking into it yesterday, but you did beat me to it!

 

That profile hard drive emulator is *exactly* what I need. Who do I need to kill to get my hands on one?

 

Morpheus: "Unfortunately, no one can be sold a Cameo/Aphid --- you have to build it for yourself"

(for now, perhaps... in the meantime, check out some of the other emulators for Apple parallel port hard drives, like X/ProFile and IDEfile)

 

Anyway, the hardest part for me was getting the Flim onto the computer in the first place! I thought about seeing if there was a way to access the emulator's raw drive image with hfsutils, but because Apple parallel port hard drives use 532-byte blocks, I think those tools couldn't understand the data layout. So, the best I could do in short order was ZTerm over one of the serial ports, and I couldn't get that to go any faster than 9600 bps! (I'm guessing that the limiting factor is ZTerm's zmodem implementation not being a great fit for the 5MHz 68000 in the Lisa.) The "low res only" Matrix movie took three hours to transfer! I still wonder if there's a better way... how are people usually getting these enormous files onto their Macs in the first place?

 

I don't think I've ever heard of a Macintosh XL working with an HD20. I don't know that it's impossible, but I would be surprised if it works. A hard drive emulator is probably the most practical way to go, although fastest of all might be one of the old XL-only SCSI expansion cards that you might be able to find out there if you look. I don't really know how those work (I've never seen one) but those would be sending data over the expansion bus rather than the parallel port. Expansion cards can do DMA if they want, though I have no idea if the SCSI card worked that way.

 

SCSI or no, it's handy that MacWorks Plus will support drive sizes up to 2 GB, so you could watch some very long flims indeed if you wanted to...

Link to post
Share on other sites
  • Replies 67
  • Created
  • Last Reply

Top Posters In This Topic

Posted (edited)
21 hours ago, stepleton said:

The "low res only" Matrix movie took three hours to transfer! I still wonder if there's a better way... how are people usually getting these enormous files onto their Macs in the first place?

Wooow. The way I am moving the files is by mounting a SCSI2SD SD card on my linux system and mounting the first partition as a .dsk in minivmac. From there, transferring is trivial, using ImportF1.

 

I did had to fight when I reformatted my Lisa, due to the 532 bytes blocks and some disk not having the tags. I am a n00b as far as Lisa goes, it took me forever to re-install mine, and I am very worried that my internal Widget may fail on me.

 

check out some of the other emulators for Apple parallel port hard drives, like X/ProFile and IDEfile

 

IDEfile can't be bought either, so there is only the X/ProFile. Wasn't too convinced when I read about it (The CompactFlash stuff, and the complexity of what sizes are supported in what environment). Well, I am in no hurry, for now, and I find all this extremely confising.

 

Btw, I do have a SCSI card for the Lisa, I'd say it is one of those ( http://vintagemicros.com/catalog/sunrem-lisa-scsi-card-p-179.html ) but populated. However, it seems to me that I requires MacWorks+ II, which comes with a hardware mod, and that is a firm no from me. Everything is unclear in the Lisa world. Booting in the Mac is cool, but it is the Lisa I'd love to be able to play more with (ideally writing some code for it -- but, hell, I installed the dev environment, let me say that it isn't friendly nor understandable...).

 

I'l go and post in the Lisa forums one of these days.

 

Edited by fstark
Link to post
Share on other sites
Posted (edited)

Ok. Worked on compression, as I need to attain a higher frame rate to have a chance to get sound (flims are slowed down today from 24 to 21fps, which won't be ok for sound), and I also need more space to store the sounds, and I need more CPU to actually play the sound. So, compression is the first step, the big unknown is the CPU cost of decompression which may eat all the savings...

 

So, not sure if this will work at the end, but that is the kind of image degradation we get with compression:

 

uncompressed:

i-100.gif.d66cccbdc7402d5dcd117226b32a5572.gif

 

average compression (expected savings ~30%):

i-70.gif.0943fb1083c4667a7caac1dd97ab0715.gif

 

maximal compression (expected savings ~45%):

i-50.gif.38b8f86b3769834d8b5f21181de16357.gif

 

 

 

 

Edited by fstark
had a bug with multiple images
Link to post
Share on other sites

Fred this is amazing. I installed it on my SE/30 earlier and the replay is so smooth, it's a perfect demonstration of what a 32 y/o classic Mac can do :) I also enjoyed the alert that popped-up when I tried to run MacFlim on my Quadra 700, asking if I was from the future :D 

 

I want to install a few sample clips on my 40mb SCSI drive, so that I can keep the retro setup. Is there a way to edit the flims? Have you built a tool for that? Or can I edit the binary file and update the header without corrupting the flim?

 

Thanks very much! Thanks also for sharing the code; it's a very clean implementation!

Edited by mattdud
Link to post
Share on other sites

@fstark

Permettez-moi de reformuler ma question précédente dans l'espoir d'obtenir votre aimable réponse ...

Let me rephrase the question in my earlier post with the hope of obtaining your kind reply...

 

Dans votre Github "Can you walk me in the process of creating my own flim?" section, pouvons-nous ignorer la plupart de ces commandes en utilisant plutôt FCPX pour générer un MP4 en niveaux de gris à une résolution de 512x342 avec 24fps? Et ensuite, pouvons-nous utiliser les commandes de la section "Extract all the grayscale images"?

 

In your Github “Can you walk me in the process of creating my own flim?” section, can we can skip most of those commands by instead using FCPX to generate a grayscale MP4 at 512x342 resolution with 24fps?  And then after that, can we use the commands in the “Extract all the grayscale images” section?

Link to post
Share on other sites

Regarding source code matters you were wondering about on the GitHub page...

 

Here's my take.  Vintage software development with an SCM encompassed a centralized version control system like CVS... translating this to the modern era, using a serial terminal connection to a Linux box with Git and synchronizing files via ZMODEM is a quite workable setup that I use.  Of course AppleTalk shares, ftp, and telnet work just as well, it doesn't really matter.

 

Understandably at this point in the project, you're mentioning the main challenge may just be the time it takes the progenitor to get familiar with vintage-style SCM workflows, but it would be great if you could get there sooner rather than later.

 

But, what was I going to say... yes, sound.  It's best to design in header fields for supporting a few different sound formats, like 8/16 bits per sample and 22.2/44.4kHz sampling rate.  I've been thinking about Mac mods that would support higher fidelity audio, on one hand.

Link to post
Share on other sites
  • 68kMLA Supporter
On 4/7/2021 at 1:34 PM, JDW said:

In your Github “Can you walk me in the process of creating my own flim?” section, can we can skip most of those commands by instead using FCPX to generate a grayscale MP4 at 512x342 resolution with 24fps?  And then after that, can we use the commands in the “Extract all the grayscale images” section?


You can definitely skip some steps. The one thing I’m not sure about is if the PGM files would be 8-bit. If you give it a try, then open up one of the output files in a text editor. It must start with these three lines of text (before lots of binary data):

P5
512 342
255

 

Also, if the input is 24 FPS, then change the “-r 30” on the command to match:

ffmpeg -v warning -stats -y -r 24 -i 512x342.mp4 -r 24 source-%06d.pgm

 

I wonder if fstark would consider a few checks:

char header[15];
size_t header_size = fread(header, 1, 15, f);
assert(header_size == 15);
assert(std::string(header, 15) == "P5\n512 342\n255\n");

 

Link to post
Share on other sites
  • 2 weeks later...

Sorry everybody, didn't saw any of the replies until now! Had a busy week and failed at checking here

 

Let me just say I spent my Saturday re-caping my SE/30 so I now get sound... Not hinting at anything :-)...

 

Link to post
Share on other sites
On 4/6/2021 at 9:49 PM, mattdud said:

Fred this is amazing. I installed it on my SE/30 earlier and the replay is so smooth, it's a perfect demonstration of what a 32 y/o classic Mac can do :) I also enjoyed the alert that popped-up when I tried to run MacFlim on my Quadra 700, asking if I was from the future :D 

 

I want to install a few sample clips on my 40mb SCSI drive, so that I can keep the retro setup. Is there a way to edit the flims? Have you built a tool for that? Or can I edit the binary file and update the header without corrupting the flim?

 

Thanks very much! Thanks also for sharing the code; it's a very clean implementation!

a) no you cannot edit the flims. However, you have the encoder if you want. This was a feature in my roadmap (turn the app as some sort of flim editor, as if it was actually used for such, but the roadmap took a completely different direction)

 

b) technically, you could create a smaller flim by piecing the parts together (removing the unwanted streams would cut the file in half already)

 

c) alternatively, you can wait a few more days, I had to implement compression for a new feature... It will at first be a separate "tech demo app", but I suspect it will fit your needs much better than this one, as it is a better demo of the SE/30 awesomeness...

Link to post
Share on other sites
On 4/7/2021 at 6:34 AM, JDW said:

@fstark

Permettez-moi de reformuler ma question précédente dans l'espoir d'obtenir votre aimable réponse ...

Let me rephrase the question in my earlier post with the hope of obtaining your kind reply...

 

Dans votre Github "Can you walk me in the process of creating my own flim?" section, pouvons-nous ignorer la plupart de ces commandes en utilisant plutôt FCPX pour générer un MP4 en niveaux de gris à une résolution de 512x342 avec 24fps? Et ensuite, pouvons-nous utiliser les commandes de la section "Extract all the grayscale images"?

 

In your Github “Can you walk me in the process of creating my own flim?” section, can we can skip most of those commands by instead using FCPX to generate a grayscale MP4 at 512x342 resolution with 24fps?  And then after that, can we use the commands in the “Extract all the grayscale images” section?

 

I am sorry, I was *absolutely certain* that I answered you immediately. I remember even typing the answer!

 

I did update the github instructions right after your original question with a shorter way to do stuff.

 

And yes, absolutely, there is zero magic, just do as you want, but generate *8 bits gray* PGM, as the code is well, extremely primitive!

 

Donc, oui, pas de lezard, j'ai mis les instructions version completes pour ceux qui, comme moi, ne sont pas des pros de la conversion video. Et desole, je n'ai pas d'accents sur mon qwerty/linux de dev.

 

Link to post
Share on other sites
On 4/9/2021 at 10:36 AM, quorten said:

Vintage software development with an SCM encompassed a centralized version control system like CVS... translating this to the modern era, using a serial terminal connection to a Linux box with Git and synchronizing files via ZMODEM is a quite workable setup that I use.  Of course AppleTalk shares, ftp, and telnet work just as well, it doesn't really matter.

 

 

Well, I actually used a lot of CVS, back in the day. And even RCS before.

 

However, I really find this vintage source control problem difficult. I don't want to make my life harder by setting up CVS in the Mac. At one point, I did use hmount + hcopy, so I could edit the files in vscode in linux, and auto-sync with the versions in the emulator for testing. I think with some smart scripting, I could use some sort of git workflow.

 

In my "fuzzy" ideal world, the files would be commited "nicely" in github, and the Makefile would handle details like creating the .dsk file and updating it. However, it would then mandate the use of a Linux dev machine, which would probably not be suitable for everyone either (or maybe some docker-based solution?). The main thing stopping me to do that is the project and resource file. If I end up with binary files in github for some part of the source, then, well, why not having a .dsk binary file with everything, in particular as I already have one for the dev tools (I want to put the workable vintage dev env in the github, I don't want any sort of trouble for anyone that would want to hack on the project)? [ie: if one have to get a .dsk with the system and tools + the source code + a binary resource file + the binary project file, it is going to be a mess]

 

Knowing that the total number of people interested in hacking the source code in the world can probably be counted with the fingers of one hand and all already have their prefered workflow, it doesn't seem an urgent issue for me to spend time on :-)

 

 

Link to post
Share on other sites
On 4/9/2021 at 12:40 PM, sfiera said:


You can definitely skip some steps. The one thing I’m not sure about is if the PGM files would be 8-bit.

 

Yes, the code is hardcoded for 512x342x255.

 

On 4/9/2021 at 12:40 PM, sfiera said:

I wonder if fstark would consider a few checks:


char header[15];
size_t header_size = fread(header, 1, 15, f);
assert(header_size == 15);
assert(std::string(header, 15) == "P5\n512 342\n255\n");

 

 

Sure. I did not want to release the code, as it is pretty crappy. Wouldn't pass my code review, for sure. But, well, you guys wanted it :-)

 

If you have a merge request, I'll take it, no problem. If you don't, you may have to wait a bit.

 

Note that this whole thing is going to soon be quite obsolete. 

 

Note: do not hesitate to create github issues, for things from feature requests, encoding movies ideas, or bug fixes.

 

Link to post
Share on other sites
Posted (edited)

The good news is that the "tech demo" works pretty well, modulus a few needed optimisations.

 

The bad news is that I cannot upload good demos to youtube due to the !@#$&* copyright filter that make sure you can't exercise your fair-use rights (which I don't have anyway, being non-American :-)).

 

I'll make another video when the demo is complete, with short extracts and downloadable content for you guys/gals to try...

Edited by fstark
Link to post
Share on other sites
On 4/19/2021 at 6:16 PM, ironborn65 said:

Hi, thanks so much and congratulation for this achievements and thanks.

I saw you have "Next" in your t-shirt :), any plan to port MacFlim to a Next?

 

The short answer would be no port of MacFlim to NeXT.

You know, I am found of computers with uncommon display capabilities and low bit depth that I used when I was younger. And it just happens that, if you could look on the right on that MacFlim video, you would see an original NeXT Computer sitting there... And, well, I did code on NeXT in ObjC for something like 10 years, so... Why no MacFlim on NeXT?

Well, I was a NeXT user for years, and seriously, we were not keen on ported software, we wanted *original* stuff!

So, no MacFlim for NeXT, no.

However, it just happens that, by some sort of strange coincidence, I actually own the NeXTFLiX.org domain name... :-)

(But this is probably a couple of years in the future, I have a couple of lower-end systems I'd like to do before)

Link to post
Share on other sites
  • 68kMLA Supporter

I made my first MacFlim the other day. Very straightforward with the instructions on GitHub. I thought my daughter would be so excited to see herself in a flim from a family vacation  on my SE/30 but I guess only her geek dad cares. Either way super cool and thank you!!!

Link to post
Share on other sites
Posted (edited)
On 4/20/2021 at 4:26 AM, superjer2000 said:

I made my first MacFlim the other day. Very straightforward with the instructions on GitHub. I thought my daughter would be so excited to see herself in a flim from a family vacation  on my SE/30 but I guess only her geek dad cares. Either way super cool and thank you!!!

 

Good feedback, thx!

 

You'll get the version with sound pretty soon, maybe that will impress her more. Stay tuned!

 

Edited by fstark
typo
Link to post
Share on other sites
On 4/19/2021 at 9:26 PM, superjer2000 said:

I thought my daughter would be so excited to see herself in a flim from a family vacation  on my SE/30 but I guess only her geek dad cares.

 

Ha ha, probably the same experience Bill Atkinson had back in the day trying to explain "digitized photographs" on an Apple II to his wife.  Why would you take a perfectly good video and ruin it like that?

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...