PS2 FORTUNA Launcher by VTSTech (BOOT.ELF replacement)

Discussion in 'PS2 Homebrew' started by VTSTech, Dec 4, 2019.

  1. 275
    296
    97
    VTSTech

    VTSTech Member

    Joined:
    Apr 8, 2019
    Messages:
    275
    Likes Received:
    296
    Trophy Points:
    97
    Gender:
    Male
    Home Page:
    [​IMG]

    [​IMG]

    In case anyone missed it, There is a new exploit (PS2 Fortuna Project) by krat0s -> https://www.ps2-home.com/forum/viewtopic.php?f=107&t=8542

    This is designed to work with that package/folder/savefile

    Rename FORTUNA_Launcher.elf to BOOT.ELF and copy to your mc0:/FORTUNA/ folder

    Now on GitHub -> https://github.com/Veritas83/PS2_FORTUNA_Launcher

    BOOT-packed.ELF 28473 bytes
    FORTUNA_Launcher.elf 254887 bytes

    It can use the following paths (updated v0.3):

    Code:
    wLaunchElf
    
    mc0:/FORTUNA/WLE.ELF
    mass:/FORTUNA/WLE.ELF
    mc0:/APPS/WLE.ELF
    mass:/APPS/WLE.ELF
    
    OPL
    
    mc0:/FORTUNA/OPL.ELF
    mass:/FORTUNA/OPL.ELF
    mc0:/APPS/OPL.ELF
    mass:/APPS/OPL.ELF
    
    GSM
    
    mc0:/FORTUNA/GSM.ELF
    mass:/FORTUNA/GSM.ELF
    mc0:/APPS/GSM.ELF
    mass:/APPS/GSM.ELF
    
    ESR
    
    mc0:/FORTUNA/ESR.ELF
    mass:/FORTUNA/ESR.ELF
    mc0:/APPS/ESR.ELF
    mass:/APPS/ESR.ELF
    
    HDL
    
    mc0:/FORTUNA/HDL.ELF
    mass:/FORTUNA/HDL.ELF
    mc0:/APPS/HDL.ELF
    mass:/APPS/HDL.ELF
    
    RetroArch
    
    mc0:/FORTUNA/retroarchps2_2048.elf
    mc0:/FORTUNA/retroarchps2_fceumm.elf
    mc0:/FORTUNA/retroarchps2_mgba.elf
    mc0:/FORTUNA/retroarchps2_picodrive.elf
    mc0:/FORTUNA/retroarchps2_quicknes.elf
    mass:/FORTUNA/retroarchps2_2048.elf
    mass:/FORTUNA/retroarchps2_fceumm.elf
    mass:/FORTUNA/retroarchps2_mgba.elf
    mass:/FORTUNA/retroarchps2_picodrive.elf
    mass:/FORTUNA/retroarchps2_quicknes.elf
    mc0:/APPS/retroarchps2_2048.elf
    mc0:/APPS/retroarchps2_fceumm.elf
    mc0:/APPS/retroarchps2_mgba.elf
    mc0:/APPS/retroarchps2_picodrive.elf
    mc0:/APPS/retroarchps2_quicknes.elf
    mass:/APPS/retroarchps2_2048.elf
    mass:/APPS/retroarchps2_fceumm.elf
    mass:/APPS/retroarchps2_mgba.elf
    mass:/APPS/retroarchps2_picodrive.elf
    mass:/APPS/retroarchps2_quicknes.elf
    
    SNESStation
    
    mc0:/FORTUNA/snes_emu.elf
    mass:/FORTUNA/snes_emu.elf
    mc0:/APPS/snes_emu.elf
    mass:/APPS/snes_emu.elf
    
    PS2Ident
    
    mc0:/FORTUNA/PS2Ident.elf
    mass:/FORTUNA/PS2Ident.elf
    mc0:/APPS/PS2Ident.elf
    mass:/APPS/PS2Ident.elf
    
    Tested in PCSX2 and Real PS2.

    Credits:

    pad.c/h from wLaunchElf 8d4a0c2 by AKuHAK and SP193
    libcdvd_add.c/h & OSDInit.c/h from PS2Ident v0.835 by l_Oliveira and SP193
    PS2 FORTUNA Project by krat0s (not included, icon.icn & icon.sys)
    Compiled with current PS2SDK as of Nov 2019
    Packed with PS2-Packer v1.1.0 by Nicolas "Pixel" Noble

    Changelog:

    Code:
    v0.44
    Added support for HDLoader
    Added support for user specific CUSTOM1/2.ELF
    Removed a few 1s delays
    Code optimizations
    
    v0.43
    Changed button menu display
    Experimental FMCB Support mc0/mc1
    (Needs testing on non-FMCB compatible PS2)
    pad.c/h from wLaunchElf 8d4a0c2 by AKuHAK and SP193
    libcdvd_add.c/h & OSDInit.c/h from PS2Ident v0.835 by l_Oliveira and SP193
    
    v0.42
    Experimental FMCB support mc1
    Removed versions strings/release dates
    Code optmizations
    
    v0.41
    Correct release date of OPL
    Minor text display adjustments
    
    v0.4
    Minor code cleanup
    Removed few debug messages
    Added support for ESR
    Bump OPL to r1650
    
    v0.3
    Can now use different paths and devices!
    Can select mc0 or mass
    Can select FORTUNA or APPS
    No more sub folders
    Source Code released
    
    v0.2
    Added GSM
    Added PS2Ident
    Added many more RetroArch Cores
    Now Initializes DVD Drive and stops CD if it is present.
    
    v0.1
    First release
    pad.c and pad related functions from wLaunchElf.elf 8d4a0c2
    Function ResetIOP() from main.c MPLUS-LOADER3.ELF
    Function LoadElf() from main.c MPLUS-LOADER3.ELF 
     

    Attached Files:

    Last edited: Dec 13, 2019 at 4:57 PM
  2. 1,219
    660
    222
    TnA

    TnA Senior Member

    Joined:
    Jul 1, 2018
    Messages:
    1,219
    Likes Received:
    660
    Trophy Points:
    222
    Gender:
    Male
    Location:
    Germany --> Saxony
    Sub-folders are not standard and can cause issues AFAIK (blue 'defect data' per folder, etc.)!
     
  3. 275
    296
    97
    VTSTech

    VTSTech Member

    Joined:
    Apr 8, 2019
    Messages:
    275
    Likes Received:
    296
    Trophy Points:
    97
    Gender:
    Male
    Home Page:
    FORTUNA is *already* corrupted data... It hasn't caused issues with me in testing. Must have run it close to a hundred times.

    I have both a "Folder" MC in PCSX2 and a real genuine MC setup this way
     
  4. 1,219
    660
    222
    TnA

    TnA Senior Member

    Joined:
    Jul 1, 2018
    Messages:
    1,219
    Likes Received:
    660
    Trophy Points:
    222
    Gender:
    Male
    Location:
    Germany --> Saxony
    First off... No, not really... It is intended to be the way it is...
    I also never wrote "corrupted data", but what the OSDSYS will state/"say"...

    Second... No... I am talking about the blue blocks along other things which SUB-FOLDERS can cause...!

    They are clearly non-standard and AFAIK not properly supported by the official drivers.
     
  5. 275
    296
    97
    VTSTech

    VTSTech Member

    Joined:
    Apr 8, 2019
    Messages:
    275
    Likes Received:
    296
    Trophy Points:
    97
    Gender:
    Male
    Home Page:
    I mean the PS2 literally detects FORTUNA and displays it as corrupted data. Just because it is very specifically corrupted to our liking doesn't make it any less corrupted.
     
  6. 1,219
    660
    222
    TnA

    TnA Senior Member

    Joined:
    Jul 1, 2018
    Messages:
    1,219
    Likes Received:
    660
    Trophy Points:
    222
    Gender:
    Male
    Location:
    Germany --> Saxony
    Senseless...
    I AM NOT EVEN TALKING ABOUT THAT!

    Can anyone else tell him, what I am talking about?

    @jolek, @sp193, @Maximus32, @krHACKen, etc.?

    Does anyone have a picture of the blue defect data blocks?
    Can someone please tell him, why Sub-folders are not a good idea?!
     
  7. 22
    65
    37
    Maximus32

    Maximus32 Developer

    Joined:
    Sep 10, 2019
    Messages:
    22
    Likes Received:
    65
    Trophy Points:
    37
    Gender:
    Male
    @VTSTech can you tell a little more about what FORTUNA is and what your launcher is for?

    As I understand FORTUNA is a new exploit. Where can I find more information on this? Does it start BOOT.ELF only?

    Then your launcher is to select another ELF? Is it made for FORTUNA in some way, or is it also usable as a generic ELF loader? Would it also be possible to use uLaunchELF as BOOT.ELF?

    Verstuurd vanaf mijn SM-G930F met Tapatalk
     
  8. 275
    296
    97
    VTSTech

    VTSTech Member

    Joined:
    Apr 8, 2019
    Messages:
    275
    Likes Received:
    296
    Trophy Points:
    97
    Gender:
    Male
    Home Page:
    From what I can gather. It is some sort of icon related overflow with a hardcoded payload exec(mc0:/FORTUNA/BOOT.ELF)

    It does this with only a 50kb icn file.

    I made this ELF to basically extend the payload. I'll eventually add the rest of the retroarch cores and a few other things. ESR, GSM, etc

    Then it's just a single button press to launch any

    You can just have BOOT.ELF be uLaunchElf. I made this just to speed things up a bit and make things easy for those that don't understand.

    This ELF is hardcoded to use FORTUNA path, just like FORTUNA.

    Eventually it may evolve into a more general purpose loader with a config, but for now i keep it hardcoded for FORTUNA.
     
  9. 1,219
    660
    222
    TnA

    TnA Senior Member

    Joined:
    Jul 1, 2018
    Messages:
    1,219
    Likes Received:
    660
    Trophy Points:
    222
    Gender:
    Male
    Location:
    Germany --> Saxony
    Doesn't seem to be an overflow to me... Rather an unchecked exception, or opcode to exit the function but I think krat0s will upload a writeup, when he finds the time!
     
  10. 77
    214
    57
    krHACKen

    krHACKen Developer

    Joined:
    Nov 2, 2014
    Messages:
    77
    Likes Received:
    214
    Trophy Points:
    57
    SifLoadElf + ExecPS2 ? Hmmm...
    You need an ELF loader in your app, preferably loaded at 0x00090000. Lacks a proper IOP reset and EE memory clear too. Unsure what args are passed to ExecPS2 but it looks weird.
     
    TnA and Algol like this.
  11. 275
    296
    97
    VTSTech

    VTSTech Member

    Joined:
    Apr 8, 2019
    Messages:
    275
    Likes Received:
    296
    Trophy Points:
    97
    Gender:
    Male
    Home Page:
    I think if it was a traditional overflow the payload would just fire upon the icon being read/parsed. Because it doesn't fire until we hit back. It seems likely the function to (exec:rom0:OSDSYS) or possibly the osdmain.elf path is overwritten with the FORTUNA/BOOT.ELF
     
  12. 275
    296
    97
    VTSTech

    VTSTech Member

    Joined:
    Apr 8, 2019
    Messages:
    275
    Likes Received:
    296
    Trophy Points:
    97
    Gender:
    Male
    Home Page:
    I'm using LoadElf() from this homebrew http://lukasz.dk/2008/04/22/datel-memory-plus-64-mb/

    Code:
    void LoadElf(const char *elf, char* path)
    {
       char* args[1];
       t_ExecData exec;   
    
       SifLoadElf(elf, &exec);
    
       #ifdef DEBUG
         scr_printf("Trying to load ELF: %s\n", elf);
       #endif   
    
       if(exec.epc > 0)
       {   
         FlushCache(0);
         FlushCache(2);
    
         // Reset IOP, since not all ELF's do it and we've loaded additional IOP
         // modules which need to be unloaded
         ResetIOP();
    
         if(path != 0)
         {
           args[0] = path;
           ExecPS2((void*)exec.epc, (void*)exec.gp, 1, args);
         }
         else
         {
           ExecPS2((void*)exec.epc, (void*)exec.gp, 0, NULL);
         }
       }
    }
     
  13. 2,314
    2,247
    372
    Berion

    Berion Developer

    Joined:
    Feb 3, 2015
    Messages:
    2,314
    Likes Received:
    2,247
    Trophy Points:
    372
    Gender:
    Male
    Location:
    Poland
    Sorry to hijack Your thread. ;)

    fortuna_hbldr_preview.png
     
  14. 275
    296
    97
    VTSTech

    VTSTech Member

    Joined:
    Apr 8, 2019
    Messages:
    275
    Likes Received:
    296
    Trophy Points:
    97
    Gender:
    Male
    Home Page:
    Now I just need to figure out how to JPG :P

    /me studies libjpg.h

    I can see opening ... creating ... screenshot. Not much for display yet.
     
    Last edited: Dec 4, 2019
    TnA and Berion like this.
  15. 2,314
    2,247
    372
    Berion

    Berion Developer

    Joined:
    Feb 3, 2015
    Messages:
    2,314
    Likes Received:
    2,247
    Trophy Points:
    372
    Gender:
    Male
    Location:
    Poland
    JPG sucks, and jpglib on ps2 have strange limitations.;) Besides that, this PNG have total 260KiB. Icons can be 4bit bitmaps with transparent. If You want gfx, I'll cut them tomorrow.
     
    TnA likes this.
  16. 1,219
    660
    222
    TnA

    TnA Senior Member

    Joined:
    Jul 1, 2018
    Messages:
    1,219
    Likes Received:
    660
    Trophy Points:
    222
    Gender:
    Male
    Location:
    Germany --> Saxony
    It's great to have a new project, but in what sense will it be any different than wLE?
    Buttonlaunch, CNF, Backgroundsupport,...
     
  17. 1,507
    1,195
    347
    jolek

    jolek Senior Member

    Joined:
    Dec 29, 2017
    Messages:
    1,507
    Likes Received:
    1,195
    Trophy Points:
    347
    Gender:
    Male
    Corrupted data:
    [​IMG]

    Fortuna Exploit:
    [​IMG]

    E.g. SMS needs sub-folders for skins ("mc?:/SMS/Skins"),
    no corrupted data should be shown.

    The only problem is when you want to delete or copy this "config\save" through PS2 MC Browser.
    I mean, while coping it on another MC, it'll give you a warning that copy fails.

    While deleting, it'll only delete everything in e.g. mc?:/SMS
    leaving sub-folders ("mc?:/SMS/Skins") untouched.
    It'll also give a warning that delete fails.

    Although I'm not sure if additional folders for OPL (mc?:/FORTUNA/OPL) and etc. are needed.
    From what I remember even apps for FMCB are only in mc?:/APPS.
    mc0:/APPS/OPL.ELF
    mc0:/APPS/wLe.ELF

    So why not use only FORTUNA as TnA mention?
    mc?:/FORTUNA/OPL.ELF
    mc?:/FORTUNA/wLe.ELF
     
    Last edited: Dec 5, 2019
    TnA likes this.
  18. 22
    65
    37
    Maximus32

    Maximus32 Developer

    Joined:
    Sep 10, 2019
    Messages:
    22
    Likes Received:
    65
    Trophy Points:
    37
    Gender:
    Male
    wLE/uLE can be used to load .ELF files, but it takes too many button presses to do so. For instance I always load ps2link or kernelloader. This is also possible with wLE/uLE, but would slow down each and every boot. Having a single button press to load an ELF is very much welcome. Even better would be to have a config with a default ELF, so 0 button presses would be needed in most cases.

    Would it not be possible to separate the exploits from the launchers, in a way that they are compatible with eachother? When we're talking about "FMCB", we're actually talking about 4 different components, right?:
    1 - Exploit
    2 - Launcher (splash screen, loads config, boots ELF)
    3 - Configurator
    4 - Installer

    Ideally I would like ANY exploit to be able to use ANY launcher. What changes would be needed for the FORTUNA exploit to load the FMCB launcher?

    Even better, I would like the FMCB installer to install both exploits. Then when inserting the MC in an FMCB compatible PS2, it would load the launcher immediately (as it currently does). But when the MC is in one of the latest not-compatible PS2's, it will load the launcher after triggering the FORTUNA exploit.

    @sp193 or who-ever has do you know if this would be possible? Do we have the sources to make such changes? I would be interested in making these changes also.

    @VTSTech sorry for 'hijacking' your thread, I think having a second launcher is good idea. If your launcher turns out to be very good, it would be nice to also be able to use it in combination with the FMCB exploit ;-).

    Why not keep things compatible and in the same place they currently are? -> mc?:/APPS/
     
    akuhak, VTSTech, TnA and 1 other person like this.
  19. 7,627
    5,799
    872
    kozarovv

    kozarovv Super Moderator

    Joined:
    Nov 8, 2014
    Messages:
    7,627
    Likes Received:
    5,799
    Trophy Points:
    872
    Home Page:
    But this is exactly what you can set in uLE. One button shortcuts on main screen. If i recall correctly there is even autostart option when no button is pushed.

    Don't want to discourage @VTSTech from learning, but this is something you can already do in uLE. You just need to configure it for that.

    Edit:
    [​IMG]
     
    TnA, Algol and jolek like this.
  20. 22
    65
    37
    Maximus32

    Maximus32 Developer

    Joined:
    Sep 10, 2019
    Messages:
    22
    Likes Received:
    65
    Trophy Points:
    37
    Gender:
    Male
    I didn't know, thanks. Learning something new every day. Speaking of... I pressed your buttons to learn something new also ;-), they link to pspdevwiki.com, but the site seems to be down :-(.
     
    kozarovv likes this.

Share This Page