Posts: 243
Threads: 57
Joined: Feb 2014
Reputation:
0
(03-13-2014, 07:45 PM)gregory Wrote: Yes and no. Yes because it would allow to use to get some trick. No because I need to code it, and I seriouly need a debugger. Yes they also release one but it is limited to gl3.3. Anyway the real limitation of GSdx ogl is my free time (or additional people to work it, everybody want an Android port but nobody to help on opengl...) I know a couple of trick that could improve performance (GL_buffer_storage, GL_shader_subroutine, fix threading issue for example).
I wish I could help you code the linux version. all i know is c++ and logic gates which gives me understanding of binary. Can anyone help me understand how emulating works and where exactly do I start?
Specifications:
AMD Sempron 3850 @ 1.3GHz
Zotac Geforce GT 640 2GB
4GB RAM
Kubuntu Linux 14.10 STS
Posts: 243
Threads: 57
Joined: Feb 2014
Reputation:
0
(03-17-2014, 11:03 PM)gregory Wrote: why do you mean by logic gates. You mean verilog/vhdl stuff?
Edit: see this thread
http://forums.pcsx2.net/Thread-Areas-of-...pid=354969
Maybe you can look at item 12a
logic gates as in AND, OR , and XOR
Specifications:
AMD Sempron 3850 @ 1.3GHz
Zotac Geforce GT 640 2GB
4GB RAM
Kubuntu Linux 14.10 STS
Posts: 243
Threads: 57
Joined: Feb 2014
Reputation:
0
(03-18-2014, 12:03 AM)gregory Wrote: Well I work on the hardware industry so I know what is a gate I just wanted to know what you know if you work on this field too, or if you only know the operator.
but still are there any guides or stuff like that to teach me
how emulating works and guides that can help me code in pcsx2
Specifications:
AMD Sempron 3850 @ 1.3GHz
Zotac Geforce GT 640 2GB
4GB RAM
Kubuntu Linux 14.10 STS
Posts: 6.069
Threads: 68
Joined: May 2010
Reputation:
167
Location: Grenoble, France
I don't have any generic doc. But I will try to explain. Hardware is like sw. It take some parameters as input (for example a pressed button). Then it compute a new value. Hardware is fasr and expensive. Sw is slow and cheap.
In the emulator we will emulate several components. For example the ps2 cpu will execute an instruction every cycle. For the addition, we get the 2 operands and then we do a '+'. Easy. Hardware can handle severals corner case as overflow. So we must add an additional test to check the overflow case. And so on.
On the gs side. It is the same processus. We get the ps2 vertex/texture, we transform into standard pc vertex/texture. Then we ask the gpu to do its jobs. Nothing more!
Posts: 243
Threads: 57
Joined: Feb 2014
Reputation:
0
03-18-2014, 02:02 AM
(This post was last modified: 03-18-2014, 02:09 AM by SimonStreakio.)
(03-18-2014, 12:46 AM)gregory Wrote: I don't have any generic doc. But I will try to explain. Hardware is like sw. It take some parameters as input (for example a pressed button). Then it compute a new value. Hardware is fasr and expensive. Sw is slow and cheap.
In the emulator we will emulate several components. For example the ps2 cpu will execute an instruction every cycle. For the addition, we get the 2 operands and then we do a '+'. Easy. Hardware can handle severals corner case as overflow. So we must add an additional test to check the overflow case. And so on.
On the gs side. It is the same processus. We get the ps2 vertex/texture, we transform into standard pc vertex/texture. Then we ask the gpu to do its jobs. Nothing more!
sounds real easy when you explain, but real hard when you attempt to do that
edit: also for the past two hours, i found this site named nesdocs.com, and it's helping me understand how hardware works.
Specifications:
AMD Sempron 3850 @ 1.3GHz
Zotac Geforce GT 640 2GB
4GB RAM
Kubuntu Linux 14.10 STS
Posts: 6.069
Threads: 68
Joined: May 2010
Reputation:
167
Location: Grenoble, France
In theory it is not complicated. The complex parts are the speed opmization, the size of the system and the timing. To explain a bit the timing. You have several blocks that do operations in //. Sometimes they need to communicate so you need guarantee that the computing is done in good order. Note that you don't want to emulate timing (aka cycle accurate) because it is very hard and very slow.
To understand emulation looking at emulation of basic system could help. For PCSX2 the best is to limit to a single feature and become familiar with the code step by step. I have worked for 3-4 years in this project and I barely know 10% of the code!
Posts: 80
Threads: 2
Joined: Feb 2014
Reputation:
2
Location: New York, NY
I've been reading some of the developer blogs, which helped me to understand how the code works. Originally I though that there are multiple instances of GSThread created that all work concurrently.
But I read Air's post about how PCSX2 is primarily just a dual thread application. There is one thread that handles the PS2's Emotion Engine and input and output, and another thread that handles the Graphics Synthesizer (GSThread).
"I know now why you cry... but it is something I can never do."
-Emotion Engine