[PS2] POPS stuff & POPStarter

Discussion in 'Sony Programming and Development' started by krHACKen, Apr 9, 2013.

  1. ElPatas

    ElPatas Spirited Member

    Joined:
    Feb 7, 2013
    Messages:
    192
    Likes Received:
    73
    I not asked to him, but i suppose that he used the only way possible, what is using the saved game from
    the previous disc loading it with the next disc.

    No, the permanent freezes in the doors exist, a lot of users reported them, but the freezes
    depends on the choices you get when the game give you different decisions to take, there are
    determined decisions that takes you to a permanent freeze on a door, and other decisions not.
    In what you can be lucky is in that you choosed each time the decisions which do not makes freeze a door.
    The japanese version is the only ones which seems completely free of this problem.

    Best regards.
     
    Antonioks, AlGollan84 and truemaster1 like this.
  2. maxstyle

    maxstyle Member

    Joined:
    Nov 18, 2015
    Messages:
    23
    Likes Received:
    3
    Absolutely Krhacken complate disc change feature but not release perpahs he's working on some other things like game patches in elf file. I sended you working vcd file of the game. Also I will upload other vcd files too. Just wait for Disc change feature and besides you can tranfer your save data to epsxe emulator memory card with memory card rex tool and then when you complate disc and change disc to other one save again and continue with postarter emulator.

     
    Last edited: Sep 13, 2016
  3. truemaster1

    truemaster1 Enthusiastic Member

    Joined:
    Nov 10, 2015
    Messages:
    512
    Likes Received:
    226
    aha i see
     
  4. krHACKen

    krHACKen Enthusiastic Member

    Joined:
    Oct 24, 2012
    Messages:
    571
    Likes Received:
    376
    POPStarter_r13_WIP_06_OBT_20160918.zip

    Sorry gentlemen, I cannot comment atm, I'm sick.
     
    mrjaredbeta, ploder, ElPatas and 8 others like this.
  5. Vedita BR

    Vedita BR Rising Member

    Joined:
    Aug 28, 2015
    Messages:
    70
    Likes Received:
    32
    You made my sunday happier . Thanks :)
     
    krHACKen likes this.
  6. MartinBiohazard

    MartinBiohazard Active Member

    Joined:
    Jun 16, 2012
    Messages:
    45
    Likes Received:
    6
    How nice Sunday! Thanks you krHACKen for the new POPStarter build! Now we can finally play Parasite Eve 2 (without sound, but is great for me anyway!) and we have a swap disc system! What more can you ask?

    Thanks a lot for make all it possible. :)

    I'm sure a lot of people will be very happy here. :)

    Greetings.

    EDIT: Sorry krHACKen, I forgot to say that I hope you feel better soon.
     
    Last edited: Sep 18, 2016
    krHACKen and Zicon like this.
  7. maxstyle

    maxstyle Member

    Joined:
    Nov 18, 2015
    Messages:
    23
    Likes Received:
    3
    Last edited: Sep 18, 2016
  8. spyro

    spyro Member

    Joined:
    Jul 14, 2014
    Messages:
    12
    Likes Received:
    2
    Thank you very much for fix PE, krHACKen... I knew you could do it:D!
    Unfortunately, right now I haven't much time to test the game, but I'm equally very happy!
    I hope you will get well soon ;)
    My best wishes
     
    krHACKen likes this.
  9. krHACKen

    krHACKen Enthusiastic Member

    Joined:
    Oct 24, 2012
    Messages:
    571
    Likes Received:
    376
    Thank you.

    A while ago I tried a PAL version of RE3 with the game saves from the EOL forum members, which ElPatas gave to me. The game crashes in various places/situations and the cause is not always the same, as the exception cause varies from address error to bus error.

    POPStarter changes the EmulatedTime() clock to something that is close to PAL, when the VCD you launch has a European boot sector. When using GSM to force the NTSC output while POPStarter patches the EmulatedTime() thread, the speed/sync gets broken. That's why I added a function which disables the PAL patch from POPStarter if GSM v0.23x is found into the memory. But for any other GSM version, the user has to disable the PAL patch manually, with the $NOPAL command in CHEATS.TXT.
    There are certain games that run too fast/slow when altering the video mode, like the crash bandicoot series.

    For example, if you activate $480p with the PAL version of Crash Bandicoot 2, the music (and perhaps the whole game) will play too fast.
    A Crash Bandicoot video, recorded during my PAL to NTSC investigations :


    I'd say the internal HDD is the most reliable and compatible, for technical reasons. However, some games may only work in USB/SMB mode and not in HDD mode, like the PAL version of Break Out (SLES-02854)... Don't ask me why.
    I tried a lot of things, including changing the thread priorities, the HDD and PFS drivers arguments, the drivers themselves, forced IOPCD to cache only one VCD sector in a row, added delays to the HDD access, loaded multiple wrappers in the IOP to chain-redirect the I/O operations, nonsense jujus to charge the IOP... None of my testings helped in getting the goddamn Break Out to run from the internal HDD. Odd.

    Yep, it's a known issue.


    @joseri also made a video. I can't find it.
    No POPStarter version is able to make SOTN run without a crash.

    The new $480p mode adds big 4:3 look-alike black boarders on 2 out of the 4 PS1 resolutions :( .
    You can center the screen with the new $XPOS_#### and $YPOS_## commands, in PAL and NTSC modes only (not 480p).
    There are also two undocumented commands I left behind when I compiled the OBT 15 :
    $DWSTRETCH_#### and $DWCROP_#### which both work only in PAL and NTSC modes.
    $DWSTRETCH stretches the display horizontally to your screen.
    $DWCROP reduces/expands the display area width.
    For $XPOS_####, $YPOS_##, $DWSTRETCH_#### and $DWCROP_####, # is a number (decimal). Example, $XPOS_604.

    Yup, I live in France, Finistère (29).

    Only NTSC-I, PAL-I and 480P are "natively" supported by POPS. Trying any other video mode (like VGA, 720p...) makes POPS printf a "Not support displaymode" error, skips a whole bunch of pre-rendering functions and crashes.
    As for the interlace parameter, I tried to invoke SetGsCr with the non-interlaced parameter (in normal NTSC 0x02 and PAL 0x03 video modes). That didn't work.


    480p :
    Like I said in CHANGE.TXT, it's not reliable at all. Actually, $ONY did more or less implement 3 VMODEs :
    - 0x02 (NTSC-I) complete
    - 0x03 (PAL-I) incomplete, lacked the EmulatedTime() clock rate
    - 0x50 (480p) incomplete, lacked the code to cope with the PS1 GPU resolutions
    To "complete" the 480p mode, I had to craft something similar to GSM, hook it to the GS refresh function of POPS and make it monitor the registers of the emulated PS1 GPU so it calculates the double-word that's being written to the GS DISPLAY1 and DISPLAY2.
    Why did I say not reliable ? Its inability to stretch the frames isn't the only problem. For some reason I fail to understand, there are also cases where the PS2 outputs a signal that is not supported by the HDTVs o_O .
    That happend to me with the following games :
    PlayStation BIOS
    Grind Session (Menus)
    Air Race Championship (FMVs)
    Dead Or Alive (everything but the intro FMV)
    Tekken 3
    Ace Combat 3 (Intro FMV, Menus)
    Rally De Europe (Menus)
    Rally De Africa (Menus)
    Final Fantasy VII
    Colin McRae Rally 2.0 (Menus)
    Driver 2 (Menus)
    So $480p is an unreliable option, not to be used by default.

    "Static SetGsCrt interlace parameter" I mentionned in CHANGES.TXT :
    It's always on (in PAL and NTSC modes) and there's no way to de-activate this hack.
    Since I found that was enough for my HDTV to stop displaying still pictures and dumb things like that, I thought it could be helpful to yours.
    Please report whether it helps or causes unwanted side-effects, for me to know what I got to do to this hack in the next build.

    Multitap :
    Although I haven't seen mappings for more than two input devices in POPS, I added a function which inits the multitap. To try it, load a compatible SIO2MAN module, MTAPMAN module and PADMAN module as MODULE_#.IRX.
    If you don't use your own SIO2MAN, POPStarter will load the SIO2MAN which is embedded into POPS before it loads your other modules, so make sure the versions don't mismatch. Do this in debug mode to see if SifExecModuleBuffer returns an error.

    uLE_kHn :
    I decided to not provide modified uLE builds anymore. Because I'm one of those lame guys who don't update their SDK lol.
    For all your file/partition/HDD management needs, I STRONGLY recommend you to use the current uLE release or AkuHak's build from psx-scene, or compile your own binary with an up to date SDK. Important updates were made to the PS2SDK, related to the HDD. Continuing to maintain uLE_kHn without the hdd lib fixes is moot point. Not to mention the questionable sole reason of running something illegal from the FileBrowser hehe :/ ...
     
    Last edited: Sep 19, 2016
  10. truemaster1

    truemaster1 Enthusiastic Member

    Joined:
    Nov 10, 2015
    Messages:
    512
    Likes Received:
    226
     
    AlGollan84 and krHACKen like this.
  11. ElPatas

    ElPatas Spirited Member

    Joined:
    Feb 7, 2013
    Messages:
    192
    Likes Received:
    73
    Thank you very much for the new version, i hope you get well soon.

    I suspect that this can be due to the DMA speed of the internal HDD which by default is UDMA 4= (66.6 MB/s),
    there are PS2 games which fails to load or the music fails due to this default speed, and then they works
    using the most slow speed which is MDMA 0= (4.2 MB/s), (there are six levels of speed between this two)
    and this speeds in the practice are a lot more slow with the HDD in the PS2.
    If you make a trojan with MDMA 0 i can test this exception games with it, in the case that not worked we can be tried also the combination of MDMA 0 + add delays to the HDD access.

    But for which is this purpose if the emu do not supports 4 players? for future tests?

    I would like compile your uLE version updated, you used the source files from AkuHak's repository
    for compile the uLE?
    Which changes needs to be made in the uLE source files for can be loaded the VCD files directly?

    Best regards.
     
    AlGollan84 and krHACKen like this.
  12. krHACKen

    krHACKen Enthusiastic Member

    Joined:
    Oct 24, 2012
    Messages:
    571
    Likes Received:
    376
    My extra HDD access delays (for fseek/fread/sectorread), which did not help, were timings (actually loops of nop instructions).
    Your idea of limiting the transfer speed, like in OPL/HDL, is interesting. Though I've no idea of how to do that.
    Maybe it's time for me to study the OPL src...

    For someone with a multitap to confirm that POPS actually does not support more than 2 pads, in first place. Then it could be helpful to me or someone else to implement the non-existing 4 player support.

    uLE_kHn was based on AkuHak's WIP7 build. The source code I altered was in the ule_wip7.zip at psx-scene iirc. Regardless of the commits made to the repo, the implementation of the POPStarter/VCD launcher should still be easy to do.

    1) Put kHnStuff.c in your uLE source folder;
    2) Add int checkVCDstuff(char *path, int mode); to launchelf.h;
    3) Add kHnStuff.o to the EE_OBJS section of the Makefile;
    4) Add the checkVCDstuff function call to filer.c, in the function getFilePath(char *out, int cnfmode).

    Then you'll get a nice uLE, with the latest fixes, POPStarter argument support and no custom GUI colours/IP bullshit :) .
     
  13. sp193

    sp193 Site Soldier

    Joined:
    Mar 28, 2012
    Messages:
    2,217
    Likes Received:
    1,052
    Thanks for the new quality release. Please take good care and get well soon!

    Thanks, but I meant to ask if you've tried to enable interlacing. Given that some HDTVs don't like the non-interlaced NTSC/PAL signals getting fed through their component inputs, I assumed that the lack of display problem was due to the use of non-interlaced NTSC/PAL.

    If you meant to say that POPS always used regular, interlaced NTSC/PAL, please disgard this question.

    EDIT: Oh yeah. If POPS is like PS1DRV (see below), then you can't override the interlace selection easily.
    From the way I see it, you have to either stick with a video mode (and adapt the video output to fit) or to let the game control the video output for a realistic experience (which is what PS1DRV is doing).

    Since the emulator allows the PS game to modify DISPLAY1 and DISPLAY2, I have this feeling that it was made like PS1DRV. So it will be hard to implement true 480P support.

    Thanks for sharing and clarifying!

    I didn't know that you had already done some experiments and even made a feature to allow this to be tested. Sorry for the inconvenice caused.

    Are reads done asynchronously from the emulator core (i.e. it can read as the emulated PS is running)? If reading is done asynchronously, where did you place the NOPs? If you placed them on the EE side, you might need to put them on the IOP side or use a different method to give the emulator core CPU time, to run the game.

    HDLoader (as of the retail version) and older versions of OPL had no speed-limiting code.
    The patched versions of HDLoader and OPL allowed the user to specify the transfer mode for the HDD unit. MWDMA mode 0 was the choice for speed-limiting, given that it is the slowest DMA mode that has the closest transfer rate to a real CD/DVD drive's.

    OPL v0.9.3's Accurate Reads mode limits the read speed to 2800KB/s with the use of a timer. The transfer size is also limited to a block size of 8 sectors (8 x 2048) each time.
    This design helps to work around a few types of design issues in games:
    1. Games that assume that CDVDFSV won't take up much CPU time to read a lot of data in; thread starvation occurs when the HDD completes reads really quickly, which causes CDVDFSV to be very active in a short period of time.
    2. Games that expect reading to take place incrementally, with some visible progress (i.e. read position can be observed to increase).
    3. Games that suffer from race conditions due to the greater transfer rate.

    USB/SMB support got away without issues because the maximum block size for USB transfers is only 4096 bytes and SMB support's TCP transfer window is also about that size.
    On the other hand, the ATA interface can be used to transfer up to 8MB at once (with a ATA-5+ disk).

    Accurate Reads mode also has the callback timer function merged with it, so that the emulated CD/DVD interrupt will be triggered a while after the N-command is completed. Some games were (somehow) designed with the assumption that the completion callback (that is run from the hardware interrupt) for N-commands (for seek, reading etc) will take place a while after the corresponding libcdvd function returns.

    The stuff that I have mentioned here are for PlayStation 2 games. I have no experience with how PlayStation games are developed, so I am assuming that they might have similar design flaws (again, with the assumption that the CD-ROM library for the PS had a similar design).
    Hopefully, the problem with HDD support's vast transfer rate is similar to one of these issues.
     
    Last edited: Sep 19, 2016
    uyjulian, AlGollan84, AKuHAK and 2 others like this.
  14. diegoginard

    diegoginard Member

    Joined:
    Oct 20, 2014
    Messages:
    8
    Likes Received:
    4
  15. DaSA

    DaSA Robust Member

    Joined:
    Feb 23, 2013
    Messages:
    231
    Likes Received:
    153
    [I really love when krHACKen and SP193 talk to each other - sometimes, well, sometimes maybe, I get a word :D]

    Damn, that sucks. :eek:

    Thank you for your hard work and get well soon.
     
    Last edited: Sep 19, 2016
  16. jakdarklight

    jakdarklight Active Member

    Joined:
    Apr 8, 2016
    Messages:
    28
    Likes Received:
    13
    Spyro 2 on usb works, on hdd no freeze. pal video is now supported on my hdtv with component cable <3 <3 thanks a lot :)
     
    AlGollan84 likes this.
  17. AlGollan84

    AlGollan84 Spirited Member

    Joined:
    Jul 16, 2013
    Messages:
    170
    Likes Received:
    22
    Bonjour vous tous.

    Il ne reste plus qu'à faire fonctionner le "Spyro 3" et la boucle est bouclée. $ONY a sorti la série complète mais en Anglais pour les PS3. Ils auraient été plus avisé s'ils l'avaient sorti en version EURO pour les principales langues de notre continent.

    Merci à kHn pour son excellent travail.

    Algol "le papy".
     
    Last edited: Sep 20, 2016
  18. AKuHAK

    AKuHAK Spirited Member

    Joined:
    Jul 25, 2012
    Messages:
    172
    Likes Received:
    46
    About multitap - I just tested it with crash team racing and can confirm that first slot is recognized :D Other 3 slots isn't recognized unfortunately. Second player can be inserted only in 2nd PS2 joypad slot. The only advantage I get - no need for sio2man module so you can load only padman and mtapman modules (as MODULE_1.IRX and MODULE_2.IRX) maybe it is possible to load only mtapman I didn't check. Anyway thanks for work in that direction.

    Also I share with bunch of accuracy tests for ps1. Some test loading time can be more than 5 minutes so be patient.
     
    AlGollan84 likes this.
  19. truemaster1

    truemaster1 Enthusiastic Member

    Joined:
    Nov 10, 2015
    Messages:
    512
    Likes Received:
    226
    as a resident evil fan i have no problem to play pe3 again is there anything i can do to trace the the cause that freeze the game?? for example to run debuger??
     
    AlGollan84 likes this.
  20. jakdarklight

    jakdarklight Active Member

    Joined:
    Apr 8, 2016
    Messages:
    28
    Likes Received:
    13
    Hey guys ;)
    i made a program similar to my old "conf_elm generator" (I will consider it an "update" of this program :p)
    it permit to create a list of games and create a renamed copy of POPSTARTER.ELF file. it will also create the conf_elm.cfg for OPL.
    This is the link for the download:
    https://drive.google.com/file/d/0B9rZ9Ftve6Qlc3NQN2lFVFdGT2s/view?usp=sharing
    i hope you will appreciate my work :)
     
    Last edited: Sep 20, 2016
    AlGollan84 likes this.
sonicdude10
Draft saved Draft deleted
Insert every image as a...
  1.  0%

Share This Page