Creating PS2 Multi-Game Disc With PS1 Titles

Discussion in 'Sony Programming and Development' started by PixelButts, Apr 20, 2018.

  1. PixelButts

    PixelButts Site Soldier

    Joined:
    Aug 19, 2014
    Messages:
    2,665
    Likes Received:
    1,808
    So this will be a weird one.
    I'm looking for a way to make a compilation disc (for lac of better terminology, PS2 game with multiple games on it, like the demo discs) but specifically to put PS1 titles on it. The goal is (at least) get the PS2 to boot PS1 games though a PS2 Multi-game disc.

    @sp193 Would you know of any homebrew tools like this? This will ideally be used to test the PS4's emulator and see if it is as full-fledged as a PS2 itself (though it is confirmed not 100% support). The idea came from playing Mega Man X Collection which has PS1 titles running (although through emulation(?)).
    Any ideas?
     
  2. sp193

    sp193 Site Soldier

    Joined:
    Mar 28, 2012
    Messages:
    2,217
    Likes Received:
    1,052
    I doubt so, since it would have to be bootable as a PS2 disc first, before it is booted by PS1DRV.
    PS1DRV will parse SYSTEM.CNF on its own (regardless of what arguments are passed or not), so the disc must be a PS game disc on its own too...
    (While I think it might be plausible for SYSTEM.CNF to supply both BOOT and BOOT2 parameters, that might never have been done officially)

    There are a few things that are required for PS emulation, even if the emulator has functionality for PS-compatible mode:
    • The emulator must support PS-compatible mode.
    • The boot ROM must have the PS ROM (TBIN) and a matching PlayStation Driver program (PS1DRV).
    • Something must boot PS1DRV.
    Anything that doesn't run from the CD/DVD drive is likely emulated because the PS-compatible mode was meant to just emulate a classic PS and not replace its hardware with anything else.

    Given that the PS3's PS emulator was an emulator within an emulator, wouldn't it be likely that they reused the system?
     
    Last edited: Apr 24, 2018
  3. PixelButts

    PixelButts Site Soldier

    Joined:
    Aug 19, 2014
    Messages:
    2,665
    Likes Received:
    1,808
    So there's 2 different ways the PS3 did things for PS1
    1) PS1 classics which were more or less packaged like PSP games where the eboot.pbp contained the iso of whatever game (using either psp mode or the below methods)
    2) PS1 discs (or isos) ran via ps1_emu.self, ps1_netemu.self or ps1_newemu.self with ps1_rom.bin (bios)

    The PS2 side of the PS3 was a little different
    There's 2 variants, one uses the hardware and "just works", the other uses software emulation which only works with a very small handful of titles.
    The PS4 has some weirdness going on where it's software, has some configs to mess with how it works and contains an emulator (the eboot) and the bios (named PS20220WD20050620.crack for some reason) with a separate compiler self (ps2-emu-compiler.self). I would assume that this is a possibly more improved version of the PS3's software emulation and with an additional bios probably to make it work better. Support wise we know it's not perfect since all Insomniac titles dont work on it (as with the PS3 software support) so it's probably related to that bios. I assume that if this did somehow boot a PS1 title it might work but the issue is whether that's doable since what you're saying is that it's probably not. There's some tools that allow a homebrew solution to loading whatever PS2 iso they want into the PS4's pkg format (and therefore boot it) but using a PS1 title in its place tends to break these tools in what I'm guessing is the binary being so vastly different from what's expected. Point is I would try but that's not entirely doable.

    I guess the only thing I can think of is see if this emulator even supports PS1 formatted stuff? Would you be willing to take a look at it? I dont expect you to do anything but I know nothing about what im looking at outside of what each file is.
     
    DSwizzy145 and AKuHAK like this.
  4. stayhye

    stayhye Member

    Joined:
    Oct 18, 2013
    Messages:
    21
    Likes Received:
    1
    A working PS2 Multi game disc made up of ps1 isos would blow the PS4 homebrew scene away......
     
    DSwizzy145 likes this.
  5. sp193

    sp193 Site Soldier

    Joined:
    Mar 28, 2012
    Messages:
    2,217
    Likes Received:
    1,052
    I see. Thank you for the explanation.

    Technically speaking, the one with PS2 hardware did not have every part from a PS2 either - software emulation was used to emulate the IOP too.

    I think it may be an issue with the emulator itself, not the ROM image. It's not really a BIOS because I/O is done by modules that are selected from the ROM or from images provided by the game... so I don't think it can be said to provide basic I/O.

    For backward and forward compatibility, all CEX & DEX share the same set of basic modules. I doubt they would make changes, especially since they never even changed the IOP modules between any PS2 model (byte for byte, they are exactly the same). Bugs that were there since day 1, also stayed present in the final console revision.

    If they can dump/extract the ROM, then it is possible to just check to see if it even has any capability of booting PS titles. It should have PS1DRV and TBIN at least.
    The part that is likely missing, given that it was missing in the PS3's PS2 emulator ROM too, is code within OSDSYS that will act on PlayStation discs...

    But since you've brought up this topic, does this mean that Sony has not allowed PS classics from being downloaded and installed from the PSN?

    I believe that is only be doable if a custom PlayStation driver is made, given that PS1DRV will always boot the file indicated by cdrom0:\SYSTEM.CNF.
     
    pool7 likes this.
  6. stayhye

    stayhye Member

    Joined:
    Oct 18, 2013
    Messages:
    21
    Likes Received:
    1
  7. PixelButts

    PixelButts Site Soldier

    Joined:
    Aug 19, 2014
    Messages:
    2,665
    Likes Received:
    1,808
    Thanks for that long reply man I appreciate it. Again a majority of this is over my head butif I'm reading this right it's because a small bit of software explicitly there for PS1 emulation in the PS2 hardware/software is absent just to make sure it doesn't boot a PS1 disc in the PS2 mode?
    For PSN titles, PS1 PS2 and PSP (remaster and mini) you can download the following per platform
    Vita - PS1, PSP
    PS3 - PS1, PS2, PSP
    PS4 - PS2

    If they offer PSP games on the PS4 that's news to me but to my knowledge (I dont feel like checking) it's only PS2 titles and only a handful at that.
     
  8. stayhye

    stayhye Member

    Joined:
    Oct 18, 2013
    Messages:
    21
    Likes Received:
    1
    PS4 has no PS1 or PSP as of yet....officially of unofficially. :p
     
  9. PixelButts

    PixelButts Site Soldier

    Joined:
    Aug 19, 2014
    Messages:
    2,665
    Likes Received:
    1,808
    That's what I expected. I have 2 PS4s and I still didnt even know what it supports
     
  10. sp193

    sp193 Site Soldier

    Joined:
    Mar 28, 2012
    Messages:
    2,217
    Likes Received:
    1,052
    I got it, thanks.
    So this ROM appears to have TBIN and various PS1VER files (typical of ROM v2.20), but has no PS1DRV program nor does its OSDSYS program support one.

    It has no DECKARD, so I guess it may be possible to boot PS1DRV from a SCPH-50000 series, when a PS disc is inserted. I am not sure what you can do with the PS4 at this point, so I have no idea if you can do that.

    According to @wisi, PS1DRV's interface with TBIN changed during the transition to DECKARD (SCPH-75000 and later) and older PS1DRV modules wouldn't work on newer models. I presume the reverse is not possible either, so we have to figure out what is compatible.

    On the PS2, the hardware is put into PS mode by software. The EE will run the software emulator for the GPU, while the IOP becomes the PS CPU (which boots TBIN instead of IOPBOOT).
    The switch is done by OSDSYS booting PS1DRV. So here, there is the PS ROM (TBIN), but no PS1DRV and its OSDSYS does not support PlayStation discs. Hence it is not possible to directly boot into PS mode.

    That's... very strange! D:
     
    pool7 likes this.
  11. PixelButts

    PixelButts Site Soldier

    Joined:
    Aug 19, 2014
    Messages:
    2,665
    Likes Received:
    1,808
    You're tellin me. It's some weird stuff. It's not that the PS4 CANT run PS1/2/P games, but more that for the PS1 sony just dropped it i guess? PSP kinda the same deal but that's also opening the door to other problems since on the vita they were key to homebrew access.
    Each game is in a wrapper per se. PS3 and PSP are basically the same, the Vita is a little different as it has some extra stuff (format changed a little but not a huge amount)
    PS1 classics are in a PSP styled format where each variant is packaged explicitly for that platform
    PS2 classics have the same deal but with an additional config attached to tell how to run that game. These commands are mysterious and we can't really go anywhere with them other than "see what it does" http://www.psdevwiki.com/ps3/PS2_Emulation#Game_CONFIG
    PSP Minis and Remasters use basically the PSP format (duh) but the difference being how it handles the game visually. Remasters are cleaner and minis are more true to a PSP in my experience. This also comes with an additional issue where some run as a mini but not a remaster or remaster but not a mini. It's rather strange.

    So there isn't any real reason it CAN'T run something unless sony doesnt support it. I expect that should they add support it will likely do the same as the PS2 emulation they're doing now. Config (maybe the PS1 titles basically just work), Emulator, Bios, disc image and some extra stuff (manual, screens, images when loading etc).
    The reason I'm looking into this is because since there's no real issue with actually doing this it seems fair to try using what's currently here to go about doing it, but it seems that from what you're saying it's probably unlikely.

    PS4 can run PS3 games. Emulating the CELL and RSX isn't exactly easy with how the PS4 is doing things but it's not impossible.
     
  12. stayhye

    stayhye Member

    Joined:
    Oct 18, 2013
    Messages:
    21
    Likes Received:
    1
    What about a DVD based Popstarter?
     
  13. PixelButts

    PixelButts Site Soldier

    Joined:
    Aug 19, 2014
    Messages:
    2,665
    Likes Received:
    1,808
    I suppose that might work? What do you think?
     
  14. sp193

    sp193 Site Soldier

    Joined:
    Mar 28, 2012
    Messages:
    2,217
    Likes Received:
    1,052
    If you go with POPStarter, then you won't be proving anything because it is a PlayStation 2 program.

    What do you mean? I've never read up about it, but I always had this impression we cannot do this because we cannot even emulate the PS2 accurately with today's technology.
     
  15. PixelButts

    PixelButts Site Soldier

    Joined:
    Aug 19, 2014
    Messages:
    2,665
    Likes Received:
    1,808
    Would be worth a shot to see if it DOESN'T work?


    Okay so the CELL is a bitch and a half to work with, nothing surprising there. HOWEVER, you can emulate PS3 titles using linux on the PS4, albeit very poorly. It's confirmed working but the prebuilt version of linux most people have is not new enough to use OGL/Vulkan that RPCS3 requires. If you use the NULL driver you find all works as expected and successfully no less.
    So the PS is certainly able to handle PS3 title emulation, but it's by no means doing so normally. I assume the stress from emulating natively in OrbisOS (the PS4's main OS) would be too great and would impact performance heavily.

    Point is if you can get the OGL/Vulkan versions updated, use the new Linux kernel and get it running on a PS4, the hardware is totally able to run PS3 games, just poorly (this is basically due to the way linux must be run to begin with. USB 3.0 speed isn't ideal for this). The hardware power is there but the software is not. For example I got tetris running with null driver but failed on OGL/Vulkan because it was too old and updating anything breaks it. I would assume the same to be true for running a PS3 title under OrbisOS where the strain of converting code from the CELL and RSX formats to the PS4's Jaguar and APU wouldn't go over well even if optimized. And for what it's worth you're correct in that we couldn't emulate PS3 well if we cant even emulate PS2 well. I blame the finicky hardware forcing devs to make weird things happen to get a game running on the PS2.

    It's like how the Vita is probably strong enough to run a PS2 game. It could, but it's gonna suck.
    See: Jak Collection performance issues even though it's a port not emulated
     
    Last edited: Apr 24, 2018
    pool7 likes this.
  16. sp193

    sp193 Site Soldier

    Joined:
    Mar 28, 2012
    Messages:
    2,217
    Likes Received:
    1,052
    It is up to you, but you'll be losing sight of the original objective IMO. Unless your goal was to just play PS games on that console, regardless of how...

    Likely, Sony might be using a different package for PS game emulation that has the necessary software and mechanisms, as on the PS3.
    So what you're testing here would be whether the PS2 emulator itself has support for PS mode (regardless of the pieces of software in ROM that are missing/present).

    Just in case I remembered what I saw wrong, I went to hunt down a copy of ps1_rom.bin and confirmed that it is a PlayStation 2 ROM image, with PS1DRV and so on. So the PS emulator on the PS3, for at least the version that uses "ps1_rom.bin", may be an emulator within an emulator.

    Can they repack the ROM? If they can, what if they packed ps1_rom.bin as the ROM and then mounted a PS game as the ISO?

    Or if not, maybe they can try making a hybrid disc image, whereby PS1DRV exists on a disc that contains a PS game. The disc will have to be prepared as PS2 CD-ROM.
    SYSTEM.CNF would have to contain a BOOT2 line that points to PS1DRV:
    Code:
    BOOT = cdrom0:\<PS title boot path>
    BOOT2 = cdrom0:\SLUS_999.99;1          <- PS1DRV, but with the ID that fits the boot sectors for the disc.
    <other lines from PS title's SYSTEM.CNF>
    
    I think this will work, since the PS2 disc booting code within OSDSYS will locate BOOT2, while PS games use BOOT.
    The PS emulator for the PS2 doesn't care what kind of CD-ROM it is, as long as it is a CD-ROM.

    While I get your point, I don't think we can make such a comparison. A native game that doesn't run properly on the hardware, is just an indicator that it was poorly optimized for the target. It might be that the architectures were very different, and the development team did not bother to make it properly fit the PSVita. On the PS2, you've got 3 channels to the GIF and you can have microcode running on the two VUs. No other game console had such a setup, so you would have needed a specifically-designed renderer for the PS2 that would not work on anything else.
     
    Last edited: Apr 24, 2018
    pool7 likes this.
  17. PixelButts

    PixelButts Site Soldier

    Joined:
    Aug 19, 2014
    Messages:
    2,665
    Likes Received:
    1,808
    I think I'll give this a shot. The main issue I will be encountering is the tool I use and the disc image size. It tends to not like CD sized ISOs and favors DVD sized ones instead. Additionally the PS4 doesnt support CDs (or at least not by software choice) so I might need to take that into consideration.

    Let's say my PS1 title's SYSTEM.CNF is as follows (Biohazard 1 Sample). What exactly would need to be changed in this?
    I'm honestly a bit lost with all this as I never usually get my hands dirty messing with these kinds of things.
    Code:
    BOOT = cdrom:SLPS_002.22;1
    TCB = 4
    EVENT = 16
    STACK = 0X801FFF00
    
    I've also attached the main PS4 PS2 emu files if you feel like takin a look at em
     

    Attached Files:

    pool7 likes this.
  18. Breadstick

    Breadstick www.socom.ga

    Joined:
    Jul 25, 2017
    Messages:
    13
    Likes Received:
    3
    Check out my SOCOM II Multi-Patch Edition. It loads different versions of the game for use with X-Link Kai. It can be used to boot multiple games from a single disc. Although, it requires some editing to the game's boot file to correct directory changes.

    The cover photos of the games and splash screen are easily edited as well.

     
  19. sp193

    sp193 Site Soldier

    Joined:
    Mar 28, 2012
    Messages:
    2,217
    Likes Received:
    1,052
    You need to put PS1DRV from a SCPH-50000 as SLPM_999.99 if you do this:
    Code:
    BOOT = cdrom:SLPS_002.22;1
    BOOT2 = cdrom0:\SLPM_999.99;1
    TCB = 4
    EVENT = 16
    STACK = 0X801FFF00
    
    I don't know whether the PlayStation 2 ROM on the PS4 has a check on the PS2 logo within the first 12 sectors. Most PlayStation 2 ROMs do have such a thing.
    If there is, then the disc image has to be generated appropriately. The PlayStation 2 logo will not appear if the logo within the first 12 sectors is not valid for the title.

    Thanks. But I can't quite do anything about them lol, since I have no experience with the format. haha
     
    pool7 likes this.
  20. PixelButts

    PixelButts Site Soldier

    Joined:
    Aug 19, 2014
    Messages:
    2,665
    Likes Received:
    1,808
    Would you happen to have a copy of this on hand?

    I actually don't know but this might be the case as I did try some messy images and got nothing but a splash screen (no PS2 logo). I'll try a few things and see what it does when I get around to it.

    Well the .crack file is the PS2 bios if you wanna compare it to some other ones I guess. Nothing too crazy going on there.
     
sonicdude10
Draft saved Draft deleted
Insert every image as a...
  1.  0%

Share This Page