Post Reply 
 
Thread Rating:
  • 5 Votes - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
How to test games to help things get fixed
11-03-2013, 12:24 PM
Post: #16
RE: How to test games to help things get fixed
1:http://forums.pspslimhacks.com/threads/tutorial-how-to-setup-psplink-debug-psp-apps.5200/)
No more work

2:psplink driver need windows lang change to english first :/
3:I maybe need a long time to understand pspautotests
Find all posts by this user
Quote this message in a reply
11-03-2013, 07:48 PM
Post: #17
RE: How to test games to help things get fixed
Link fixed, I forgot I was using forum software with questionable link detection.

Hmm, I didn't realize it required English. For the driver, I think you can actually just get it from the libusb-win32 project.

pspautotests are really simple imho. You write some code, it runs on the PSP (going through usb by way of psplink), and the output comes back and is written to a file. Then you run the same code in the emulator, and it compares the program output to that file from the PSP.

It's not really important to understand the magic of how you can write the program locally and it runs on the PSP but gives results locally.

Example of creating a brand new test:

Step 1. Download the pspsdk. You can install with this:
http://sourceforge.net/projects/minpspw/

IIRC, it wants to live in c:\pspsdk - if you don't want to deal with things, just let it.

Step 2. Copy psplink to your PSP. It's in c:\pspsdk\psplink\psp\oe\psplink - a regular EBOOT and friends. Copy the psplink directory to your PSP\GAME\ folder on your psp.

Step 3. Install Python, if you haven't already. You can use the installer:
http://www.python.org/ftp/python/2.7.5/python-2.7.5.msi

Step 4. Set up the driver:

Step 4.1. THIS IS IMPORTANT. Turn on your PSP, and run the "psplink" game.

Step 4.2. Once it comes up with "PSPLink" in the top left of the screen, plug in the USB cable to your computer. Be 100% sure you did NOT load the PSP's USB mode. You should NOT see your PSP come up as a drive. If you do, you messed up. Start over. This has tripped people up.

Step 4.3. "Install" libusb-win32 (do this WHILE your PSP is connected per the above. This is important.)
http://sourceforge.net/projects/libusb-w...p/download

Step 4.4. Run the "inf-wizard" in the bin directory from that zip.

Step 4.5. Make sure you select "PSP" Type B.

Step 4.6. Once it creates the inf file, right click and install it (iirc, pretty sure it doesn't offer to install for you...)

Step 5. If you want tests to run faster, open a command prompt, and type:
cd /d c:\path\to\ppsspp\pspautotests
usbhostfs_pc -b 3000

This isn't required, but your tests will run faster and be less noisy if you do this. Minimize that window and just leave it open.

Step 6. Now you're basically ready. Open a different command prompt, and type:
cd /d c:\path\to\ppsspp\pspautotests
gentest.py misc/libc

Congratulations. You just ran the test in pspautotests/tests/misc/libc.c. The output is now in pspautotests/tests/misc/libc.expected.

Now, you want to compare this with PPSSPP, which is what test.py is for. I have a copy of test.py in pspautotests/ myself, but you can do:
cd ..
test.py misc/libc

This will show you any differences in how PPSSPP runs the same small sample program.

-[Unknown]
Find all posts by this user
Quote this message in a reply
05-20-2014, 10:04 AM
Post: #18
RE: How to test games to help things get fixed
Hello Unknown. I'm trying from Yesterday to read and understand the source code, to get into the argument and understand how the emulator works.

But i need more info about the architecture of the emu:

(for now i'm following Windows source files)
1-> Starting from "Windows\main.cpp" i've found the WinMain start process, and various calls to the ini config load/save class, os version check etc., ending in the message pump OK; but basically from there we call MainWindow::Init;

2-> So we go to Windows\WndMainWindow.cpp; here (looking quickly) i can see there is, mainwindow initialization, wndproc callback to manage all events (menu, commands, resize, etc.) and I focalized on BrowseAndBoot()/BrowseAndBootDone() functions, that would load a rom and start emulation --> ending into NativeMessageReceived("boot", filename.c_str()); ---> so we are sending a message to Native framework to start emulating that file??;

3-> for how hard I searched where exactly we end up to read this message and start emulation, I could not find a sure/exact point... but for what i can understand in the entire solution, i think we end in "UI\EmuScreen.cpp"->class EmuScreen function sendMessage (EmuScreen::sendMessage), and from here in case of message "boot" we end up in bootGame(string filename):
here we configure coreParam object, and then we launch PSP_InitStart(coreparms,err_string) and PSP_InitUpdate function;

4-> This ending into Core\System.cpp: function PSP_InitStart() and PSP_InitUpdate(), in these methods I can see we call CPU_Init(); and GPU_Init();

5-> now we go into 2 different sourcefiles:
-> for CPU_Init() we remain into System.cpp, and in that method as I can see, we basically start up CPU emulation: we set some parameters, then some modules are started: Replacement_Init();Memory::Init();host->AttemptLoadSymbolMap();Audio_Init();CoreTiming::Init();HLEInit();if (!LoadFile(filename, &coreParameter.errorString)) {...} and we add to recent files the currently executed rom;

-> for GPU_Init() we end to GPU\GPUState.cpp, and in this method we switch case the type of GPU from: NullGPU,GlesGPU,SoftGPU, or DX9GPU, doing a SetGPU(T*obj) method that ends in specifing GPU Interface into a more specific GPU class

6 -> here i'm getting lost: i've tried to manipulate output randomly messing up the PixelShaderGeneratorDX9.cpp, thinking this was the display output generator for a Windows PC with dedicated GPU (thinking the switch will chose DX9GPU), but from some test i saw no result in games, modifying boolean values into ComputeFragmentShaderIDDX9(id); so i tried with changing the same code in the FragmentShaderGenerator.cpp from GLES GPU class, but no result the same as before;
So i understand that our software when executed on Windows pc, is not going through those portions of code: i'm sure our software is going through all the classes/methods/functions till the point 5, then i'm getting a bit lost... it's just a bit difficult to understand a so big source from 0, moreover with all these implicit calls/message exchanged.

7 -> in the end I've ended in GPUCommon.cpp, and i think our emulator is specifing the GPU class into the Common one (not the DX9 nor the GLES, that obviously is for mobile); unfortunately if I want to test my presence in a portion of code, if till the EmuScreen i could use OnScreenMessages.h (osm.show) or Windows.h (MessageBox), from System in advance I can't (headers not included), so to verify if i'm in those methods, i've used a little ugly thing: fopen(file,"w") of a new empty specific file(thinking the debug console isn't working with printf cause we are in a win32 app).... and ive discovered that the software go into gpucommon.


This for the GPU part, while for the CPU part i've not read much more code, but I only suppose that there (in the CPU part) we have the instruction translation (elf reading, relocation or what has to be done to get the instruction disassembled and reexecuted), and at the end of the process the execution of the correct task (audio/video/etc); in the GPU part we come to only after the translation, when we have a GPU minimal instruction to render, and so as I can see/guess in the Specific GPU classes we have specific methods for the particular GPU rendering system (dx, opengl, soft,null), that render Lights, fogs, polygons, blend, and all other effects/models... or at least generate parameters for the following rendering....

Ok now this last part is mostly my assumption, so my question is: from the point 5 in advance what does really happens??:
CPU_init() basically with which class/sourcefiles connects and what pactically does? And where does GPU_init() hook/end up?

Where and with which logic after we boot a Game, the system starts the ISO reading, elf/bin decoding/disassembling, and then in which methods the instructions are reinterpretated and redirected to the correct function; from this cpu-side elaboration how we will reconnect to the gpu side, and where we actually transfer the output to the directx device (in Windows case at least, using d3d*.h headers, and d3d rendering classes).

Thank you in advanceSmile Sorry if i've been too long, but I want also to "contribute" if I can; i really wanted to play Silent Hill origins, only to found annoying flickering starting the game, so i wanted to check into the source what call was causing this.... and also i have a snapdragon 800 smartphone with GLES 3 adreno 330 gpu (samsung galaxy Note 3), with not so high performance as expected with ppsspp on android, and so i want to see also this... But apart from these specific cases, I want to understand the code/architecture, and in the forum/site I can't find much informations; so I'm asking some help to you Smile

It would be very useful if we could get more info, to work all together, understanding better where to put our handsSmile Sorry if I ask all this to you, but it's very very difficult to understand the Whole code without the help of who has already deal with it from the very start; however thanks for every help.
Another thing, sorry for my (very)baddd english, i'm italianSmile

Bye, Marco
Find all posts by this user
Quote this message in a reply
05-21-2014, 01:45 AM
Post: #19
RE: How to test games to help things get fixed
I'm going to answer that here:
http://forums.ppsspp.org/showthread.php?tid=11828

By the way, it's not usually a good idea to post the same question two places, it just makes things harder to find when searching/etc.

-[Unknown]
Find all posts by this user
Quote this message in a reply
05-21-2014, 08:17 AM
Post: #20
RE: How to test games to help things get fixed
(05-21-2014 01:45 AM)[Unknown] Wrote:  I'm going to answer that here:

By the way, it's not usually a good idea to post the same question two places, it just makes things harder to find when searching/etc.

-[Unknown]

I'm very sorry Unknown.... i know it Sad but initially i read here, and I thought that here would be a good place... but then i realized that a new thread was better solution...... sorry for this...:/ and thank you for the answer. I'm reading all your explanations.
Find all posts by this user
Quote this message in a reply
06-28-2014, 05:36 PM
Post: #21
RE: How to test games to help things get fixed
Can i ask stupid question?
If i enable report host, is need to turn on wlan/wifi to send them to server?
Or just need internet connection? Especially for android
Find all posts by this user
Quote this message in a reply
06-28-2014, 06:58 PM
Post: #22
RE: How to test games to help things get fixed
Just need an internet connection. The WLAN option affects whether games are able to use the internet (and its buggy, currently), but it doesn't affect reporting.

-[Unknown]
Find all posts by this user
Quote this message in a reply
06-29-2014, 04:56 AM
Post: #23
RE: How to test games to help things get fixed
I see
By the way is it need to putting http:// ?
Find all posts by this user
Quote this message in a reply
06-29-2014, 05:37 AM
Post: #24
RE: How to test games to help things get fixed
In recent builds, you can check a checkbox in settings without editing ini files. Anyway, no, it's just the host (hostname:port), not including the http:// part or any /path.

-[Unknown]
Find all posts by this user
Quote this message in a reply
06-29-2014, 12:09 PM
Post: #25
RE: How to test games to help things get fixed
Um, in recent build?
But i even cant click it
Build 0.9.8 1466


Attached File(s) Thumbnail(s)
   
Find all posts by this user
Quote this message in a reply
06-29-2014, 07:07 PM (This post was last modified: 06-29-2014 07:07 PM by [Unknown].)
Post: #26
RE: How to test games to help things get fixed
If it's disabled, it means you are using a "dangerous" setting or have fonts missing. It doesn't report in these situations, because it gives us a lot of noise.

For example, "read framebuffers to memory" is known to completely break games. Therefore, reporting is disabled if it has ever been used in this game session / savestate.

-[Unknown]
Find all posts by this user
Quote this message in a reply
06-29-2014, 07:33 PM
Post: #27
RE: How to test games to help things get fixed
I see,that must because i using timer hack
Thank you for explanation
Find all posts by this user
Quote this message in a reply
09-29-2015, 11:24 PM (This post was last modified: 09-30-2015 01:52 AM by Talos91.)
Post: #28
RE: How to test games to help things get fixed
I am using the latest dev builds in android and there is a bug in the game ys oath in felgana that is not present in the stabe release 1.0.1. When playing the game there are a lot of black dots on the floor no matter where you go, anyone knows how to fix this?
Find all posts by this user
Quote this message in a reply
09-30-2015, 04:33 AM
Post: #29
RE: How to test games to help things get fixed
That doesn't seem related to this topic.

-[Unknown]
Find all posts by this user
Quote this message in a reply
09-30-2015, 09:08 PM
Post: #30
RE: How to test games to help things get fixed
(09-30-2015 04:33 AM)[Unknown] Wrote:  That doesn't seem related to this topic.

-[Unknown]

So where I can report this bug with the ppsspp dev versions?
Find all posts by this user
Quote this message in a reply
Post Reply 


Forum Jump: