Help - FFXII is slow on Pentium D [title edited]
#1
so i'm taking a c++ course right now and i decided to try reading through the source code for pcsx2. I haven't been able to find the entry point anywhere. does anyone know where in project the entry point may be found?

----
Edited the title. Original title: "help with source code". - avih
Reply

Sponsored links

#2
probably I am not helping at all... but what would be the point to see the entry point?
Which one do you actually mean? I think the main entry point just looks for plugins/inis and starts the gui. But there is probably nothing fancy happening.

Probably you should look what happens if somebody clicks on Fast boot. But even then it would be complicated. pcsx2 has some lines nowadays and 'reading' it will probably take a lot of time. Understanding it even more (probably there was never a person who actually read the whole beast and thought about every line)

On the old svn page is written that the whole source code is written in 1,381,480 lines (more than 800k lines code and 200k blank and 200k comment lines) and in 16 different programming languages...


If you are just starting c++ either you look in something completely different or you look at something very specific. Maybe how deinterlacing or shaders are implemented.

(I know it is not the answer to your question but still...)
Reply
#3
Implicitly here: IMPLEMENT_APP(Pcsx2App). This is a wxWidgets macro which "prepares" and starts everything. However, unless you want to explore how wxWidgets works internally, the implementation of this macro is probably not the best place to start exploring PCSX2.

The main PCSX2 application is a GUI application, and those are usually event based (when this button was clicked, do this function, etc) rather than a linear series of calls. On top of that, it uses the wxWidgets framework for events and UI (because it's cross platform), which is similar to but different than windows.

On top of those, it uses threads which are sort of independent programs which execute concurrently, but still communicate between themselves. If that's not enough, some parts of it are written in assembler and not C or C++, and the list of stuff which is not "normal" for most C++ application is way longer.

Bottom line, PCSX2 might not be the best application to analyze "from the beginning". Your best starting points would probably be trying to follow menu commands. You can pick a menu item name in PCSX2, then search the code and find the function which handles it (even this might take quite a while). It probably won't be too easy to follow deep though, because much stuff, even internally, is asynchronous using events rather than sequential series of commands.
Reply
#4
tbh i'm actually just interested in trying to turn pcsx2 into an interpreter for final fantasy 12 as my rig's seen better days and it's saddening to play one of the best ps2 games ever made at a max of 35fps
Reply
#5
The interpreter mode is actually in-build (emulations settings. EE/VU0/VU1-> interpreter / microVU recompiler / superVU recompiler). But it is much slower than the recompiler.

Maybe you start a new thread and we try to make that game running. FF12 is not very demanding.
Reply
#6
i'm still saving up money to finish rebuilding my computer, my current rig is a modified hp xw4300 workstation.
Pentium D 940 @ 3,2ghz (2 physical cores, 800mhz fsb)
6gb DDR2 400hmz
EVGA GTX 650TI 2GB superclocked edition
2.25TB storage (4hdd's)
750w APower AKseries PSU
Reply
#7
hm... have you tested superVU?
What about overclocking?

(going to bed now)
Reply
#8
(05-07-2014, 12:16 AM)willkuer Wrote: The interpreter mode is actually in-build (emulations settings. EE/VU0/VU1-> interpreter / microVU recompiler / superVU recompiler). But it is much slower than the recompiler.

i meant streamlining the recompiler for 1 game in particular so that the code as if it were an interpreter program, not that it uses the actual interpreter code.

(05-07-2014, 12:24 AM)willkuer Wrote: hm... have you tested superVU?
What about overclocking?

i've messed with superVU a little but all it really does is gain me about 5 more fps on my high fps spikes, and the cpu's multiplier's are locked
Reply
#9
Is your mainboard locked?
In general the pentium d is overclockable:
an example
Reply
#10
my multipliers, fsb, reference clock, and core voltage are all locked; the workstation is still using it's original hp motherboard.
although i didn't know that the Pentium D 940 itself had unlocked multipliers, i knew that the higher end Pentium D's aka the Pentium Extreme edition cpu's such as the 840, 955 and 965 all were unlocked.
Reply




Users browsing this thread: 1 Guest(s)