pete-gordon / oricutron

Portable Oric-1/Atmos/Telestrat and Pravetz 8D emulator
http://www.petergordon.org.uk/oricutron/
GNU General Public License v2.0
69 stars 25 forks source link

Patch for reading from a tape in linux ! #96

Open zelurker opened 7 years ago

zelurker commented 7 years ago

Here is the scenario : I found a nice oric demo from dbug, see there : http://www.defence-force.org/computing/oric/dbug/volcanic_4/index.htm so I downloaded it, it's in tap format, so I created an oricdemo subfolder in the tapes folder, unzipped it there, and loaded it as explained in the doc (which mentions oricutron) : select the tap file using the gui, then type cload "" And I got a black screen !

So I investigated a bit because this demo is supposed to work with oricutron, and it appears that it's trying to load uppercase filenames when they are not uppercase in the zip file... linux problem probably. So I made a quick patch to find these files when they are not in upper case. You can enclose it between some #ifdef linux ... #endif if you prefer.

Anyway with this the demo works, and it's quite impressive for an oric ! :) Please don't ask me to create a fork just for this little patch ! diff.txt

I would have sent this by mail, but I couldn't find which mail to use fast enough, so I guess an issue with a patch inside will do ! :)

pete-gordon commented 7 years ago

Thanks for the patch. I'll take a look when I find some time.

assinie commented 7 years ago

I'm not sure it's a good idea...

The problem here is the inconsistency of the zip file: file names are case sensitive but the demo only looks for uppercase names.

You can simply rename the files or add symlinks or use a case-insensitive filesystem.

Why modify oricutron and not simply rename the files?

Linux problem probably

one can say "windows problem surely" :smiley:

pete-gordon commented 7 years ago

Well.. Amiga also has case insensitive filenames ;-)

assinie commented 7 years ago

You're right!... And Linux can use case-insensitive filesystem too

zelurker commented 7 years ago

nobody would want to use a case insensitive fs just for oricutron on linux, we already don't do it for wine, so... And the obvious reason for patching oricutron is to avoid to rename all the tape files you could find just to make them work with oricutron. That's what you could call a usability patch, you can do it manually by renaming the files but it's tedious.

Anyway the patch is too short to discuss it for very long, it took me only a few minutes to do it once I understood what went wrong. There might be another way to do that, I remember wine trying to speed up the code to find files in ntdll.c, but I don't remember which solution they used. Anyway the opendir solution is very fast if the directory is not huge, and it's easy to understand, so I think it's ok (wine problem was mainly for games like baldur's gate where you can have thousands of files in the override directory).

2017-04-21 14:59 GMT+02:00 assinie notifications@github.com:

You're right!... And Linux can use case-insensitive filesystem too

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/pete-gordon/oricutron/issues/96#issuecomment-296183818, or mute the thread https://github.com/notifications/unsubscribe-auth/ACu5D9Z3JwLg6CXZoV4Us3QTR9EnE11rks5ryKgtgaJpZM4NDhbQ .