Next Generation Emulation banner

1 - 7 of 7 Posts

·
Registered
Joined
·
344 Posts
Discussion Starter #1
hcf said:
By the way, I would like to ask you another thing. I saw that in the gpu.cpp file, in the SUBC routine, you replaced this:
SET_ZNC_SUB(RN - borrow, RM, res);

with this:
SET_ZNC_SUB(RN, RM + borrow, res);

(to avoid a problem with the carrier). But, don't you think that this fix may be done too in the dsp.cpp (also in the SUBC routine)? It still has the old SET_ZNC_SUB(RN - borrow, RM, res);

Please, excuse me if this is not the correct place to talk about this kind of things. I don't know what the best place is...
You can always create a thread to talk about stuff not related to the thread at hand, like I did just now :)

Now getting back to your question: the treatment of the carry flag on the SUBC opcode. In looking it over, it would indeed seem to cause problems. But it also seems that in the case of SUBC, that the C flag would mirror the N flag, and I'm not convinced that this is right. So I need to run a few tests on real H/W to settle the question. Thanks for pointing this out! :thumb:
 

·
Registered
Joined
·
8 Posts
Thank you very much for your interesting answer! Please, if you study it in the future and get some conclussions, let us know. Comparing with other emulators of other consoles, Virtual Jaguar is very well coded, and this kind of things are very educational.
For example, in my case I can say that I don't understand how the real Jaguar works, but I do understand how Virtual Jaguar works :)

Congratulations again for this great emulator of a great console!
 

·
Registered
Joined
·
344 Posts
Discussion Starter #3
After looking it over, I could find places where the N flag would *not* track C. And so, I've replaced the current problematic code (in both the GPU and DSP) with what the ALU actually does. :)

Thanks for the kind words, I try my best to keep the codebase as clear as possible. :thumb:
 

·
Registered
Joined
·
8 Posts
After reading some documentation of the Jaguar, I would like to ask a small question. I have seen that, when you made the pipelined DSP, we have achieved a much more realistic emulation of this module, and that gave us the possibility of playing new games that didn't work with the old DSP.

But I would like to suggest: maybe the same thing can be done with the GPU? As far as I have read, the GPU processor is very similar to the DSP, and its functionality is pipelined too. So, maybe doing a pipelined GPU (very similar to the pipelined DSP) can fix some of the few games that still don't work perfectly?

I'm sure that you have already thought about this possibility, but I ask this because Virtual Jaguar is being very educational for me, and I would like to learn why this option has not been implemented. Maybe due to lack of time to do it, or maybe I am overlooking some detail and this is a bad idea?

The only bad thing that comes to my mind, is the fact that both the pipelined DSP and that pipelined GPU, would require a much more powerfull machine to be executed at full speed, because as you know, the pipelined emulation is much slower... so I am not sure about the performance of many PCs if pipelined DSP and pipelined GPU were used...
Thank you very much!
 

·
Registered
Joined
·
344 Posts
Discussion Starter #6
The main problem with the pipelined version of the DSP is that it's not correct ATM. Also, it's very complex, unoptimized and as such, quite slow. It's been on the back burner because of other, more pressing problems with VJ (like the blitter, bus contention, etc), but that's not to say I'll never revisit it again.

That said, the reason that I haven't pipelined the GPU is that I doubt it would bring much gain to stuff that's currently not working. I know of at least one program that would require it to work correctly, but that's about it. :)
 

·
Registered
Joined
·
8 Posts
Thanks for your detailed answer. I will look forward to see if you manage to improve the blitter and bus contention things in the future, and this brings better emulation in some games. Thank you very much for your great work! :)
 
1 - 7 of 7 Posts
Top