Menu

#331 Problem with SCL files

v1.2
closed-fixed
beta128 (1)
5
2016-04-28
2016-04-09
No

"windale" reported this problem on spectacol bug tracker: https://github.com/bog-dan-ro/spectacol/issues/25
test files attached to https://github.com/bog-dan-ro/spectacol/issues/23 (https://github.com/bog-dan-ro/spectacol/files/210174/SCL.TRD.test.zip)

I tried booting SCL files but it sent me to the TRDOS prompt. I manually LISTed the contents and loaded the bootable file (LOAD"filename") but it just said DISK ERROR.

SCL files and possibly other Russian clones dont work properly.

When you finally get them working can you make them autoboot (like Unreal Speccy Portable does). Thanks.

Related

Feature Requests: #90
Patches: #338

Discussion

1 2 > >> (Page 1 of 2)
  • Sergio Baldoví

    Sergio Baldoví - 2016-04-09

    Thanks, BogDan.

    I tried booting SCL files but it sent me to the TRDOS prompt. I manually LISTed the contents and loaded the bootable file (LOAD"filename") but it just said DISK ERROR.

    Broken in [r5232]. It seems that new disk_ready() calls don't work for Beta 128. Gergely, looks good to you?

    When you finally get them working can you make them autoboot (like Unreal Speccy Portable does)

    I think the user is willing to auto-boot disks games without a boot.B file.

     

    Related

    Commit: [r5232]


    Last edit: Sergio Baldoví 2016-04-10
  • Sergio Baldoví

    Sergio Baldoví - 2016-04-10

    I've made some minor changes.

    I think the user is willing to auto-boot games without a boot.B file.

    Unreal Speccy Portable checks for a boot.B file in firsts sectors. If not found, send two keystrokes (Enter). That only makes sense on Pentagon machines with the reset service rom (gluck), the first Enter show a list of files and the latter selects the first file.

     
  • Sergio Baldoví

    Sergio Baldoví - 2016-04-17
    • labels: --> beta128
    • status: open --> pending-fixed
    • assigned_to: Sergio Baldoví
    • Group: future --> v1.2
     
  • Sergio Baldoví

    Sergio Baldoví - 2016-04-17

    Thanks, bug fixed in [r5382] and have opened feature request [features:#90].

    The error is not present in 1.1.1 release.

     

    Related

    Commit: [r5382]

  • BogDan Vatra

    BogDan Vatra - 2016-04-19

    I just test it and it doesn't seem to work :(
    I used robocop from https://github.com/bog-dan-ro/spectacol/files/210174/SCL.TRD.test.zip but I still get disk error. If I reset the emulator manually everything works ok.

    How I test it:
    * set fuse machine to spectrum 48k or 128k
    * restart FUSE
    * open SCL FILE
    * fuse will select Pentagon 128 and will open the SCL file
    * type LIST ""
    * I get disk error

     

    Last edit: BogDan Vatra 2016-04-19
  • Sergio Baldoví

    Sergio Baldoví - 2016-04-19

    That's odd. It works for me with GTK+ and SDL UIs with the same steps. Are you using Spectacol?

    If I reset the emulator manually everything works ok.

    I guess that you are resetting the emulated machine rather than the program itself.

    • restart FUSE

    Is this really needed?

    • fuse will select Pentagon 128 and will open the SCL file

    Here Fuse resets the machine and enables the Beta interface.

    • I get disk error

    Umm... I see a list of files.

    In the past, we have seen configuration files with conflicting interfaces (e.g., kempston joystick [1]). You can check this by renaming the configuration file.

    [1] https://sourceforge.net/p/fuse-emulator/discussion/314872/thread/dd028283/

     
    • BogDan Vatra

      BogDan Vatra - 2016-04-20

      In the past, we have seen configuration files with conflicting interfaces (e.g., kempston joystick [1]).

      Ah, that's the reason! I enabled Kempston Joystick by default ...
      Is it possible to turn it off automatically when selecting these kind of machines? And on again on machines when is know that it will work?

      That's odd. It works for me with GTK+ and SDL UIs with the same steps. Are you using Spectacol?

      Yes I'm using Spectacol but with your patch applyed[1]

      I guess that you are resetting the emulated machine rather than the program itself.
      Yep, it's the emulated machine.

      restart FUSE

      Is this really needed?

      It seems it is, if I'll choose a pentagon machine before I'm opening the file everything works fine.

      [1] https://github.com/bog-dan-ro/spectacol/commit/ff273d0813b6c3aa61d82ce0d87d7afbdf39f239

       

      Last edit: BogDan Vatra 2016-04-20
  • BogDan Vatra

    BogDan Vatra - 2016-04-20

    My bad :), sorry for the noise !
    Your fix is ok.

     

    Last edit: BogDan Vatra 2016-04-20
  • Sergio Baldoví

    Sergio Baldoví - 2016-04-21

    No worries, feedback are welcome.

    Ah, that's the reason! I enabled Kempston Joystick by default ...
    Is it possible to turn it off automatically when selecting these kind of machines? And on again on machines when is know that it will work?

    I'm not saying Beta 128 and Kempston Joystick are incompatible, they just conflict on port 0x1f. Fuse tries to handle that in pentagon_select_1f_read(). If it is not working, that would worth an investigation.

    Unfortunately I can't reproduce the error in r5382 (with Kempston Joystick enabled). I suspect that was a bug fixed between [r5279] and [r5382].

    Was Spectacol in sync with latest developments? If you are still interested, don't give up.

     

    Related

    Commit: [r5279]
    Commit: [r5382]

  • BogDan Vatra

    BogDan Vatra - 2016-04-22

    It was my bad .... I merged upstream FUSE but I forgot to compile FUSE library, therefore Spectacol still used the old code :D.
    It works pefectly, thanks a lot for the quick fix!
    Now we just wait pacientely for the autoboot feature ;-).

    BTW isn't easier to choose pentagon 512 or 1024 instead of pentagon 128 and notify the UI which will strike two enter keys every 1second?

     
    • Fredrick Meunier

      BTW isn't easier to choose pentagon 512 or 1024 instead of pentagon 128 and notify the UI which will strike two enter keys every 1second?

      We can select Pentagon 512 or 1024 instead, and having some keyboard events to do the enter keys should also be possible as well. Do you think that is more important than defaulting to the Scorpion model that windale thinks is more compatible with the programs they have tested?

      Does anyone else have any opinions one way or another?

       
  • windale

    windale - 2016-04-22

    Is there a reason why you choose Pentagon autoboot over Scorpion ? I've tested a lot of SCL files on the PC emulator 'Spectaculator' and Scorpion seemed to have better compatibility. Are there timing differences between the two compared to an original Spectrum ?

     
    • Fredrick Meunier

      Without going back and checking, I just think that SCL support either predates Pentagon support or we just didn't think there was any significant difference between the two in Russian software support to consider.

      They do have different timing from each other and all the Sinclair/Amstrad models.

      We could either default TR-DOS images to start Scorpion or switch to Pentagon 512/1024 and try to auto-boot images without a boot.b - what is your preference?

       
  • windale

    windale - 2016-04-23

    I think I would prefer auto-booting in Scorpion ZS mode. Some cracked SCL games have a 'Pentagon timing fix' (because of the turbo mode ?) but never for Scorpion. Would that mean that Scorpion timing is closer to the original ? On PC Spectaculator I did find some SCL games that only seemed to work on Scorpion. So yes, if you could make SCL files autoboot in Scorpion.

    And maybe for now you could default the speed to 3.5 Mhz just in case. (Or add a CPU speed slider in future).

     

    Last edit: windale 2016-04-23
    • Fredrick Meunier

      Note that the method being discussed to actually auto-start the SCL image will only work on Pentagon machines as the Scorpion machines don't have the gluck ROM that is being used by USP to start the image. If Scorpion is used the user will still need to manually start any images that do not already have a boot.b file (unless there is something I've missed).

       
  • Fredrick Meunier

    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -1,9 +1,8 @@
     "windale" reported this problem on spectacol bug tracker: https://github.com/bog-dan-ro/spectacol/issues/25
     test files attached to https://github.com/bog-dan-ro/spectacol/issues/23 (https://github.com/bog-dan-ro/spectacol/files/210174/SCL.TRD.test.zip)
    -[quote]
    -I tried booting SCL files but it sent me to the TRDOS prompt. I manually LISTed the contents and loaded the bootable file (LOAD"filename") but it just said DISK ERROR.
    
    -SCL files and possibly other Russian clones dont work properly.
    +> I tried booting SCL files but it sent me to the TRDOS prompt. I manually LISTed the contents and loaded the bootable file (LOAD"filename") but it just said DISK ERROR.
    
    -When you finally get them working can you make them autoboot (like Unreal Speccy Portable does). Thanks.
    -[/quote]
    +> SCL files and possibly other Russian clones dont work properly.
    +
    +> When you finally get them working can you make them autoboot (like Unreal Speccy Portable does). Thanks.
    
     
  • windale

    windale - 2016-04-23

    In the PC version of Spectaculator, there is an option in the Beta 128 section (on by default) to 'Automatically load and run first BASIC program in .SCL files'. Wouldn't this be better (because it applies to Scorpion and Pentagon) instead of the 'Press enter twice' workaround ?

     
  • Sergio Baldoví

    Sergio Baldoví - 2016-04-23

    The choice to boot into Pentagon 128 was taken in 2003 as that was the only supported machine. Note that File->Open don't change the machine if a russian model is in use, allowing to open disks in your favourite model.

    The "press Enter twice" method is a trick that will only work on Pentagon 512/1024 if the disk don't have a boot.b file. In theory, this should be the quickest (not better) method to implement.

    The "load first basic program" method looks like a trick to use a loading routine from the ROM. It's easy to extract the filename from a SCL file, no idea about the hook.

    The "inject boot.b file" method would modify the disk content, but I think that should not be a problem to users. No idea about how to build the content of the boot.b.

    I think there should be an option to enable/disable this autoboot feature as it is not present on real hardware.

     
  • windale

    windale - 2016-04-23

    I say go ahead with the "press enter twice" Pentagon method. It's probably the easiest for you guys to implement and it can always be improved apon in the future.

    There is a utility on World of Spectrum called SCL2TRD by Evgeny Barsky (a bit like your own) but unfortunately it's old and doesn't work on my version of Windows but it supposedly Converts .SCL and .$b (hobeta) images to cut-off .TRD images and creates a boot loader. Could you improve your own SCL2TRD program to cut-off/trim the files and add a boot loader (and have a batch convert mode) ?. We could then just convert them to TRD. Just as an alternate option.

     

    Last edit: windale 2016-04-23
    • Sergio Baldoví

      Sergio Baldoví - 2016-04-24

      I think I would prefer auto-booting in Scorpion ZS mode. Some cracked SCL games have a 'Pentagon timing fix' (because of the turbo mode ?) but never for Scorpion.

      Do you remember any case that could be examined?

      There is a utility on World of Spectrum called SCL2TRD by Evgeny Barsky (a bit like your own) but unfortunately it's old and doesn't work on my version of Windows but it supposedly Converts .SCL and .$b (hobeta) images to cut-off .TRD images and creates a boot loader.

      Thanks for pointing to that utility. You can use old utilities on Windows with DOSBox (I've run it on Linux with dosemu).

      SCL2TRD insert a loader of 32 bytes into the boot.b file:

      1 RANDOMIZE USR 15619: REM : RUN "program "
      

      there are knowledge on WOS about this topic ( [1] and [2] ). This loader fits well for the "load first basic program" method and would run on all machines.

      Could you improve your own SCL2TRD program to cut-off/trim the files and add a boot loader (and have a batch convert mode) ?. We could then just convert them to TRD. Just as an alternate option.

      IMHO the mutilation of TRD files don't match the spirit of Fuse and can be done by other utilities. The batch conversion could be achieved by script files, like the utility you have pointed does.

      [1] http://www.worldofspectrum.org/forums/discussion/32481/tr-dos-loading
      [2] http://www.worldofspectrum.org/forums/discussion/comment/679642/#Comment_679642

       
  • Fredrick Meunier

    Possibly, and that would be a place to start experimenting.

    Unreal Speccy also seems to have an approach where they append a supplied BOOT.$B file to any loaded TR-DOS image (if there is enough space on the disk). As the same file is appended to all disks, it presumably searches for a suitable file and runs it rather than being different for each disk.

     
  • windale

    windale - 2016-04-25

    In the attached game in Pentagon mode the sprites flicker unless you choose the Pentagon fix. It doesn't happen on Scorpion. There are some that dont even work on Pentagon but this is the only one I can remember at the moment that has an issue.

    This is a reply to Sergio's post above.

     

    Last edit: windale 2016-04-25
  • windale

    windale - 2016-04-27

    Agent-X II on Pentagon it seems to have a horrible screen update like it's missing frames, look at the Controls selection screen. This doesn't happen on Scorpion.

     
  • windale

    windale - 2016-04-27

    Jet Set Willy seems to play a bit faster on Pentagon, it's small but i'm sure it's there in the speed of the music and the time it takes to get from one side of the screen to the other. This doesn't happen on Scorpion. I imagine Pentagon play all games slightly faster which is an inaccurate experience. I think AUTO-BOOT should definitely be in Scorpion.

     
  • Sergio Baldoví

    Sergio Baldoví - 2016-04-28
    • status: pending-fixed --> closed-fixed
     
1 2 > >> (Page 1 of 2)

Log in to post a comment.