This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Emulating PSP CPU overclock?
#11
(02-18-2012, 09:32 AM)bugmenot Wrote: I think you're mistaking thing here, see PSP has CPU which is being emulated by jpcsp, this emulated cpu is just like the real PSP cpu has standard clockspeed of 222MHz (iirc) and can clock itself dynamically from 1 to 333MHz according to wikipedia, if you ever tried CFW you'll know that you can force PSP to clock itself to its max clockspeed which result in smoother gameplay for most games but at the expense of battery life.

if you mean the emulated cpu of psp then yes, you can overclock it by editing module150/scePower.java
I tried and test, I've changed it to 333/111 333/166 and 333/99, but it runs just a little faster then 222/111, about 50FPS higher in PJD1.
Reply
#12
Agh, don't wanna install JDK in this machine. :p
Reply
#13
(02-18-2012, 12:33 PM)bugmenot Wrote: Agh, don't wanna install JDK in this machine. :p

you can try whenever you have installed netbeans
JDK isn't bad I think.
Reply
#14
(02-12-2012, 04:25 PM)bugmenot Wrote: Is it possible to force emulate PSP with 333MHz CPU clock? Some games require this to run without lag on real PSP.

ok, meseems you have a misconception about how JPCSP is emulating PSP Allegrex core. There is no such CPU clock. JPCSP Allegrex core is just interpreting or running javabyte code after recompiling at the fastest speed your PC can do. There is no such limit about 222 or 333 Mhz which is only relevant for a true PSP. The VFPU (used for vector and matrix computation, mostly in 3D games) is only interpreted on JPCSP.

To sum up, your question has no relevance towards JPCSP.

PS.: I coded the interpreter part of Allegrex core in JPCSP.
Reply
#15
I see, I suppose there's no tricky timing issue on PSP like PS2 does?
Reply
#16
(02-18-2012, 08:08 PM)bugmenot Wrote: I see, I suppose there's no tricky timing issue on PSP like PS2 does?

Not by the time I rewrote Allegrex core interpreter. For what I remember, we never deal with machine cycles. I think the timing given in scePower is jsut to return some valid values when a game queries which frequencies are.

And psp unlike ps2 doesn't let you to mess with hardware, so you could say there's no tricky timing issue.
Reply
#17
So, say, if a game need to be run at 333MHz clock at real PSP and somehow has a bug where if it played from memory stick it doesn't ask the psp to clock itself. Is it possible for JPCSP to exhibit the same behavior as PSP (returning lower value than the game needed) ?
Reply
#18
(02-19-2012, 07:41 AM)hlide Wrote:
(02-18-2012, 08:08 PM)bugmenot Wrote: I see, I suppose there's no tricky timing issue on PSP like PS2 does?

Not by the time I rewrote Allegrex core interpreter. For what I remember, we never deal with machine cycles. I think the timing given in scePower is jsut to return some valid values when a game queries which frequencies are.

And psp unlike ps2 doesn't let you to mess with hardware, so you could say there's no tricky timing issue.
the scePower says that:

// PLL clock:
// Operates at fixed rates of 148MHz, 190MHz, 222MHz, 266MHz, 333MHz.
// Starts at 222MHz.
protected int pllClock = 222;
// CPU clock:
// Operates at variable rates from 1MHz to 333MHz.
// Starts at 222MHz.
// Note: Cannot have a higher frequency than the PLL clock's frequency.
protected int cpuClock = 222;
// BUS clock:
// Operates at variable rates from 37MHz to 166MHz.
// Starts at 111MHz.
// Note: Cannot have a higher frequency than 1/2 of the PLL clock's frequency
// or lower than 1/4 of the PLL clock's frequency.
protected int busClock = 111;
Reply
#19
(02-19-2012, 11:56 AM)freefive Wrote: the scePower says that:

// PLL clock:
// Operates at fixed rates of 148MHz, 190MHz, 222MHz, 266MHz, 333MHz.
// Starts at 222MHz.
protected int pllClock = 222;
// CPU clock:
// Operates at variable rates from 1MHz to 333MHz.
// Starts at 222MHz.
// Note: Cannot have a higher frequency than the PLL clock's frequency.
protected int cpuClock = 222;
// BUS clock:
// Operates at variable rates from 37MHz to 166MHz.
// Starts at 111MHz.
// Note: Cannot have a higher frequency than 1/2 of the PLL clock's frequency
// or lower than 1/4 of the PLL clock's frequency.
protected int busClock = 111;

Well the references of "cpuClock" only occur in scePower.java. Which means they are just dummy values used to make some firmware functions return them happily when they ask for their values.

JPCSP is running the game the fastest it can regardless those values.

Again, there may be several factors where it is not perfect :
- VFPU is only interpreted AFAIK (suboptimal whatever you attempt).
- the synchronization between threads might lead to a poor parallelization of tasks (i had this vague feeling when reading how GE thread and CPU thread interact).
- Again, Java as fast as C is a myth. Those people who claimed Java is as fast as C are cheaters : they compared with a C binary compiled with no aggressive optimization, that is, a code even not intended for a release but usually for debug.

Reply
#20
(02-20-2012, 08:48 AM)hlide Wrote:
(02-19-2012, 11:56 AM)freefive Wrote: the scePower says that:

// PLL clock:
// Operates at fixed rates of 148MHz, 190MHz, 222MHz, 266MHz, 333MHz.
// Starts at 222MHz.
protected int pllClock = 222;
// CPU clock:
// Operates at variable rates from 1MHz to 333MHz.
// Starts at 222MHz.
// Note: Cannot have a higher frequency than the PLL clock's frequency.
protected int cpuClock = 222;
// BUS clock:
// Operates at variable rates from 37MHz to 166MHz.
// Starts at 111MHz.
// Note: Cannot have a higher frequency than 1/2 of the PLL clock's frequency
// or lower than 1/4 of the PLL clock's frequency.
protected int busClock = 111;

Well the references of "cpuClock" only occur in scePower.java. Which means they are just dummy values used to make some firmware functions return them happily when they ask for their values.

JPCSP is running the game the fastest it can regardless those values.

Again, there may be several factors where it is not perfect :
- VFPU is only interpreted AFAIK (suboptimal whatever you attempt).
- the synchronization between threads might lead to a poor parallelization of tasks (i had this vague feeling when reading how GE thread and CPU thread interact).
- Again, Java as fast as C is a myth. Those people who claimed Java is as fast as C are cheaters : they compared with a C binary compiled with no aggressive optimization, that is, a code even not intended for a release but usually for debug.

Yet I edited those values, compiled, then tested with pllClock = 800 cpuClock = 800 busClock = 200 and PJD1 got about 650 fps while the default values, 222/111, only got 580~600 fps.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)