Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[OPL TEST ISO]: add variant for 8mb IOP machines #1309

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

israpps
Copy link
Member

@israpps israpps commented Sep 1, 2024

Pull Request checklist

Note: these are not necessarily requirements

  • I reformatted the code with clang-format
  • I checked to make sure my submission worked
  • I am the author of submission or have permission from the original author
  • Requires update of the PS2SDK or other dependencies
  • Others (please specify below)

Pull Request description

OPL test ISO has a freeram module that assumes 2mb of RAM

this update provides a version for using it on machines with 8mb of IOP RAM
like:

  • DTL-T models
  • DESR models
  • Namco system 256 (?)

@rickgaiser
Copy link
Member

In order to make the iop module as tiny as possible, so it affects free iop as little as possible, I chose to pass the value to the EE at a fixed memory location that should always be free: 1MiB.

I assumed that that location would always be free if no game is loading modules into the iop.
The only thing loaded at the time of measurement are the default udnl/ioprp modules + our (as tiny as possible) emulation modules.

I would expect this to work the same on iop's with more ram. Do ps2's with 8MiB iop ram use more than 1MiB of RAM after reboot + emulation therefore causing issues? Did you test and did it fail?

We can make 2 different iso's if needed, but if 1 iso works on all models then that would be preferred.

@israpps
Copy link
Member Author

israpps commented Sep 2, 2024

In order to make the iop module as tiny as possible, so it affects free iop as little as possible, I chose to pass the value to the EE at a fixed memory location that should always be free: 1MiB.

I assumed that that location would always be free if no game is loading modules into the iop. The only thing loaded at the time of measurement are the default udnl/ioprp modules + our (as tiny as possible) emulation modules.

I would expect this to work the same on iop's with more ram. Do ps2's with 8MiB iop ram use more than 1MiB of RAM after reboot + emulation therefore causing issues? Did you test and did it fail?

We can make 2 different iso's if needed, but if 1 iso works on all models then that would be preferred.

someone tested on PSX and it returned negative free ram

also, yes, IIRC, PSX use more ram bc their IOPBTCONF is larger

@israpps
Copy link
Member Author

israpps commented Sep 2, 2024

In order to make the iop module as tiny as possible, so it affects free iop as little as possible, I chose to pass the value to the EE at a fixed memory location that should always be free: 1MiB.
I assumed that that location would always be free if no game is loading modules into the iop. The only thing loaded at the time of measurement are the default udnl/ioprp modules + our (as tiny as possible) emulation modules.
I would expect this to work the same on iop's with more ram. Do ps2's with 8MiB iop ram use more than 1MiB of RAM after reboot + emulation therefore causing issues? Did you test and did it fail?
We can make 2 different iso's if needed, but if 1 iso works on all models then that would be preferred.

someone tested on PSX and it returned negative free ram

also, yes, IIRC, PSX use more ram bc their IOPBTCONF is larger

although, I would like an approach where the module writes back to the EE like HDDLOAD did. assuming thats doable while keeping module smaller

@uyjulian
Copy link
Member

uyjulian commented Sep 2, 2024

Transfer to EE using sceSifSetDma shouldn't take too much more memory (allocating in units of 256 bytes). Also, you can subtract the module size (probably by using QueryBlockSize on some address in the module space) from the result to get a better reading

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants