Page 8 of 10

Re: Experimental very fast tape loading

Posted: Tue May 08, 2018 1:52 pm
by Chema
Indeed it was there in the Spam folder...

Can't imagine why. Must be related to your email server.

In any case I got the zip file... I will test as soon as I have time to put my Oric setup to work!

Re: Experimental very fast tape loading

Posted: Wed May 09, 2018 6:56 pm
by Symoon
Thanks Chema.

Anyone willing to test, here's still the same HIRES picture.
Do HIRES first ! :wink:

One has the loader at standard speed, the other at F16 speed. I'm interested to know if both work for all!
Thanks :)
ship_novalight_1.1g.zip
(21.3 KiB) Downloaded 457 times

Re: Experimental very fast tape loading

Posted: Tue May 22, 2018 10:12 pm
by Symoon
I'm currently working at reducing the loader's loading time. It's about 1.1 second and this is a penalty for multipart programs, expecially if they're short.
I hope I can reduce it to something like 0.9 seconds (or better?), by structuring the code differently.

Re: Experimental very fast tape loading

Posted: Thu May 24, 2018 12:10 pm
by Symoon
Questions for you guys.

For the price of 0,002 seconds of additional loading time ( :lol: ), I think I can fix (in Novalight) the ugly HIRES Loading bug from ROM 1.0, that displays "Loading" in the middle of a HIRES screen being loaded.

The question is: should I keep this bug, being typical of the ROM 1.0 glamour, or do you prefer it to be fixed?
(take into consideration that HIRES loading screens remain displayed for only a few seconds now ;) )

Re: Experimental very fast tape loading

Posted: Thu May 24, 2018 1:25 pm
by Chema
Kill the bug!!!

:)

Hey, I just realized I completely forgot about checking the tap you sent me! Sorry, sorry, sorry... I'll do it ASAP.

Re: Experimental very fast tape loading

Posted: Thu May 24, 2018 3:05 pm
by Symoon
Chema wrote: Thu May 24, 2018 1:25 pmHey, I just realized I completely forgot about checking the tap you sent me! Sorry, sorry, sorry... I'll do it ASAP.
No problem ;) Hope it works for you. Tested it fine on 90% of my Oric-1 and Atmos (10 machines, 1 fail).

BTW, I realise the idea of killing the HIRES Loading bug is not so useful...
I explain: even if Novalight prevents the line from being altered and erased leaving a dark line, Novalight is loaded first by... A standard CLOAD""! So in case of a loading screen followed by the main program, the next CLOAD will of course call the ROM bug and alter the HIRES screen anyway.
To sum it up: useful to load a screen, but useless if it is immediately followed by another CLOAD. Will try it anyway!

Re: Experimental very fast tape loading

Posted: Mon May 28, 2018 6:30 am
by Symoon
Symoon wrote: Tue May 22, 2018 10:12 pm I'm currently working at reducing the loader's loading time. It's about 1.1 second and this is a penalty for multipart programs, expecially if they're short.
Ok, 1st tests: the loader is now only 0.63 second long... But is not working yet, aaaargh ;)
Had to cut it in several parts, it's actually a pre-loader that will load the rest of the loader at high speed.
Also had to invert the bytes encoding and invert again once loaded, this saves 10% of loading time (remember, Oric programs use more "0" bits, but with the standard ROM, "0" bits are longer than "1" in the tape signal).

So, bug chasing now, but I think this is the last improvment I'll be working on: the way it works begins to be way too messy for myself ;)

Re: Experimental very fast tape loading

Posted: Tue May 29, 2018 12:50 am
by Symoon
Symoon wrote: Mon May 28, 2018 6:30 am Ok, 1st tests: the loader is now only 0.63 second long... But is not working yet, aaaargh ;)
I could spend a long time testing... Actually it does work on real machines, but not in Euphoric anymore.

I think I changed the thresholds a few versions ago, and Euphoric doesn't seem to like them.
That's a pity and I don't know why, the values I use should be working according to what I measured a while ago :roll:
Will try to see if I can fix that without impact on real machines. Sigh!

PS: Oric-1 display bug in Hires is not fixed, I thought it would... Pictures are still altered once loaded, but found why.

Re: Experimental very fast tape loading

Posted: Tue May 29, 2018 4:20 am
by NekoNoNiaow
Symoon wrote: Tue May 29, 2018 12:50 am I could spend a long time testing... Actually it does work on real machines, but not in Euphoric anymore.

I think I changed the thresholds a few versions ago, and Euphoric doesn't seem to like them.
That's a pity and I don't know why, the values I use should be working according to what I measured a while ago :roll:
Why do you care? If the real machines accept it then it is Euphoric which needs to be bug fixed, not your code!

You should never adapt a program so that it runs on an emulator when it runs perfectly on the original hardware, otherwise you end up with a situation like the NES and SNES situation a few years ago where most of the recent software ran only on emulators and did not work at all on the real machines.

If Euphoric cannot be updated, then time to switch, but In My Not So Humble Opinion you should not compromise on that point, the absolute reference is the original hardware.

Re: Experimental very fast tape loading

Posted: Tue May 29, 2018 6:38 am
by Symoon
NekoNoNiaow wrote: Tue May 29, 2018 4:20 am
Symoon wrote: Tue May 29, 2018 12:50 am I could spend a long time testing... Actually it does work on real machines, but not in Euphoric anymore.

I think I changed the thresholds a few versions ago, and Euphoric doesn't seem to like them.
That's a pity and I don't know why, the values I use should be working according to what I measured a while ago :roll:
Why do you care? If the real machines accept it then it is Euphoric which needs to be bug fixed, not your code!
Of course, the main target is real machine indeed! But Euphoric was the only tool for me to test and see in detail what happens :mrgreen:
(no other emulator that I know of accept such special WAV files + have a monitor)

So even if the thresholds are a bit different, if I can keep it working on Euphoric without affecting real hardware, I will. But if not, real hadware has the priority ;)

Re: Experimental very fast tape loading

Posted: Tue May 29, 2018 10:20 am
by iss
Symoon wrote: Tue May 29, 2018 6:38 am (no other emulator that I know of accept such special WAV files + have a monitor)
Oricutron accepts WAV's, has monitor+debugger and works with your latest ship_novalight_1.1g.zip. :)
What is interesting voilier_F16_1.1g.wav works fine, but with voilier_std_1.1g.wav loading works by me only if I didn't switched to HIRES before CLOAD"".
I.e.:
Start Oricutron, type: HIRES:CLOAD"", press F1, Insert tape - voilier_std_1.1g.wav -> nothing happens (I think the loader is loaded OK, but then it loops at BCS forever.
but:
Start Oricutron, type: POKE#BFDF,30:CLOAD"", press F1, Insert tape - voilier_std_1.1g.wav -> voila! :)

Re: Experimental very fast tape loading

Posted: Tue May 29, 2018 11:52 am
by Symoon
iss wrote: Tue May 29, 2018 10:20 am
Oricutron accepts WAV's, has monitor+debugger and works with your latest ship_novalight_1.1g.zip. :)
What is interesting voilier_F16_1.1g.wav works fine, but with voilier_std_1.1g.wav loading works by me only if I didn't switched to HIRES before CLOAD"".
I.e.:
Start Oricutron, type: HIRES:CLOAD"", press F1, Insert tape - voilier_std_1.1g.wav -> nothing happens (I think the loader is loaded OK, but then it loops at BCS forever.
but:
Start Oricutron, type: POKE#BFDF,30:CLOAD"", press F1, Insert tape - voilier_std_1.1g.wav -> voila! :)
Ooooh that's good news indeed! Thanks!
I thought I read Oricutron was working with ORT files and didn't handle de WAV files fully yet - but maybe that was just for saving data... Or very old news! I need to give it a try.

What happens with the standard speed loader is quite strange. It is quite possible that I made a mistake somewhere (some init missing when in Hires mode?); unless you think it could be something with the emulator?

Re: Experimental very fast tape loading

Posted: Tue May 29, 2018 1:04 pm
by Chema
Symoon wrote: Tue May 29, 2018 11:52 am What happens with the standard speed loader is quite strange. It is quite possible that I made a mistake somewhere (some init missing when in Hires mode?); unless you think it could be something with the emulator?
If I had to bet, I'd say that it is an uninitialized variable, probably in zero page. That or the typical lda 00 instead of lda #00, which works if zero page address 00 contains 00, but doesn't if it contains any other value. The HIRES ROM routine uses zero page pointers and vars for sure.

But I usually don't win bets anyway :)

Re: Experimental very fast tape loading

Posted: Tue May 29, 2018 1:05 pm
by Symoon
Chema wrote: Tue May 29, 2018 1:04 pm
Symoon wrote: Tue May 29, 2018 11:52 am What happens with the standard speed loader is quite strange. It is quite possible that I made a mistake somewhere (some init missing when in Hires mode?); unless you think it could be something with the emulator?
If I had to bet, I'd say that it is an uninitialized variable, probably in zero page. That or the typical lda 00 instead of lda #00, which works if zero page address 00 contains 00, but doesn't if it contains any other value. The HIRES ROM routine uses zero page pointers and vars for sure.
I'll have to check that. What puzzles me is that it's the exact same table (in the C code) that is sent, either un F16 or standard format.

Re: Experimental very fast tape loading

Posted: Tue May 29, 2018 2:05 pm
by iss
Quick news if I type HIRES:POKE#21F,0:CLOAD"" then voilier_std_1.1g.wav works! Of course the hires screen has 'Searching...' just like ROM v.1.0 error :). I'll check what exactly the routine 'PrintSearching' at $E57D do...
BTW, both loaders (f16 and std) are exactly the same, right?

EDIT: The only significant difference I found in routine at $E57D is: when executed from TEXT it uses 746 cycles, but from HIRES - only 86 ... and probably this leads to kind of de-synchronization. I'm not sure this can be an emulator issue too, but definitely if printing on status line is executed then loading works - which is not bad at all. :)