Menu

#129 How to change default machine for TRDOS

future
closed
nobody
None
5
2018-07-09
2018-06-04
Sarah
No

Hi, didn't know where to put this as it's only a question. Can you tell me the file and part of the code that says what machine is used by default when running TR-DOS .scl .trd etc. I am using Libretro Fuse but it's very outdated and doesn't autoboot .scl files. Currently it's using the Scorpion machine for these files and can't be changed in the settings. Can you tell me what I would have to change to get it to use Pentagon 512K when running .scl files ? This way I can just press Enter twice to boot in the GLUK screen.

Discussion

  • Fredrick Meunier

    Have a look at utils.c:utils_open_file() in the case LIBSPECTRUM_CLASS_DISK_TRDOS area.

     
  • Sarah

    Sarah - 2018-06-05

    I tried changing the last line of this part (in the file fuse/utils.c ) -

    case LIBSPECTRUM_CLASS_DISK_TRDOS:
    
        if( !( machine_current->capabilities &
           LIBSPECTRUM_MACHINE_CAPABILITY_TRDOS_DISK ) &&
            !periph_is_active( PERIPH_TYPE_BETA128 ) ) {
          error = machine_select( LIBSPECTRUM_MACHINE_PENT ); if( error ) break;
        }
    

    To this -

    error = machine_select( LIBSPECTRUM_MACHINE_PENT512 ); if( error ) break;

    But this didn't seem to work (the GLUCK screen should come up). Does this look right and is there anything else I had to change ? If not then this must be a poor Libretro port.

    (In my first post I meant to say it's currently using Pentagon 128K. Is 'PENT512' correct if I want to use Pentagon 512K or is it named something else ?)

     

    Last edit: Sarah 2018-06-05
  • Sergio Baldoví

    Sergio Baldoví - 2018-06-05

    Looks right, but the machine only changes when:

    • The current machine is not a USSR clone (pentagon 128, scorpion)
    • The current machine doesn't have Beta 128 interface enabled (e.g. 48K + Beta128).

    So if default machine is Scorpion when the program starts without any file, the code isn't effective unless you change default machine in settings or remove the 'if' clause.

     
  • Sarah

    Sarah - 2018-06-06

    So the current situation is this, i'm using a Raspberry Pi 3 and the Libretro Fuse emulator v1.1.1. It doesn't allow you to change Model in emulation because it say's it needs content loaded to change (and there's no file requester).

    So if the emulator isn't loaded and I select an .SCL or .TRD file and wan't lr-fuse to boot straight to the Pentagon 512K GLUCK menu what would I need to change that piece of code to ?

     
  • Sarah

    Sarah - 2018-06-06

    I know nothing about code ! I tried changing it to this -

     case LIBSPECTRUM_CLASS_DISK_TRDOS:
    
        machine_select( LIBSPECTRUM_MACHINE_PENT512 ); 
        break;
        beta_disk_insert( BETA_DRIVE_A, filename, autoload );
        break;
    

    The Gluck screen came up but when pressing Enter it said 'DOS Meditate!' so I guess it never inserted the .SCL file. If I remove the first break; then I don't even get the Gluck screen.

     
  • Sarah

    Sarah - 2018-06-06

    Sorry to keep bothering you, i'm not sure what timezone you're in so I don't know if you've even read my last post. This is the current Fuse 1.1.1 section of the utils.c file -

    case LIBSPECTRUM_CLASS_DISK_TRDOS:
    
        if( !( machine_current->capabilities &
           LIBSPECTRUM_MACHINE_CAPABILITY_TRDOS_DISK ) &&
            !periph_is_active( PERIPH_TYPE_BETA128 ) ) {
          error = machine_select( LIBSPECTRUM_MACHINE_PENT ); if( error ) break;
        }
    
        error = beta_disk_insert( BETA_DRIVE_A, filename, autoload );
        break;
    

    What do I have to change to force Pentagon 512K (with Gluck screen) when running a .SCL or .TRD file ? I am using the .SCL etc. to boot into Fuse (from RetroPie EmulationStation), I'm not changing model during emulation as it doesn't work in the Libretro version. You mentioned something about removing the 'if' clause.

    Maybe it just doesn't work in this old version. I just wanted to try and be more precise on what I wanted to achieve so you don't have to keep replying, sorry !

     
  • Sergio Baldoví

    Sergio Baldoví - 2018-06-06

    The Gluk service ROM is not loaded if a disk is inserted (not sure if that's the correct behaviour on a real machine). A reset is needed to load Gluck.

    So the hack that (hopefully) fill your needs is:

      case LIBSPECTRUM_CLASS_DISK_TRDOS:
    
        machine_select( LIBSPECTRUM_MACHINE_PENT512 );
        beta_disk_insert( BETA_DRIVE_A, filename, autoload );
        machine_reset( 1 );
        break;
    
     
    • Sarah

      Sarah - 2018-06-07

      This worked. Thankyou for your help, much appreciated.

       
  • Fredrick Meunier

    • status: open --> closed
     
  • Fredrick Meunier

    Thanks, looks like the question has been answered.

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.