Release Pcsx-Rearmed


About $ra access in JAL delay slot..

Ari64 said:
It is doable. Move the stuff that sets the return address above the call to ds_assemble, but after the REG_PREFETCH bit. Then make sure it doesn't load the old value of r31. Under "// Load the delay slot registers if necessary" add
if(rt1==0||rs1[i+1]!=rt1) for the first case, and
if(rt1==0||rs2[i+1]!=rt1) for the second.
Then test it to make sure everything works correctly :)

You can do the constant propagation thing too if you want, but make sure you don't overwrite r31 with the original value if it's already been set with the result of the add instruction, which will happen in load_consts().

I don't have much luck with this. Well it mostly works but the register allocator occasionally allocates the same ARM register for r31 and whatever the delay slot uses. And I have hard time understanding how you did delay slot allocation (pre-alloc and post-alloc?). Maybe it decides r31 is unneeded or something.
Some advice would be helpful.
 
Last edited by a moderator:
Notaz, I know your busy with Rearmed tweeks and improvements(and whatever else life ask of you), and it is greatly appreciated. I now think this is just about the best thing going on the Pandora currently, but would it be possible to lend some support to the Mupen64?

I'm not really looking for performance improvements, although that would be nice, I would just like to see a decent front end like you have for Rearmed and Picodrive. Something that allows for easy access to your roms, and a nice way to set options, and clock speed within the emu. Your emu's are just about the best in regards to being very simple, and super functional.

Just a thought if and when you may have a little spare time. Thanks again for all your support in this community, you are one of the main reasons I have stuck around the open source scene for so long. Keep em coming! P.S. donation coming soon!

Chris
 
jumpman said:
Notaz, I know your busy with Rearmed tweeks and improvements(and whatever else life ask of you), and it is greatly appreciated. I now think this is just about the best thing going on the Pandora currently, but would it be possible to lend some support to the Mupen64?

I'm not really looking for performance improvements, although that would be nice, I would just like to see a decent front end like you have for Rearmed and Picodrive. Something that allows for easy access to your roms, and a nice way to set options, and clock speed within the emu. Your emu's are just about the best in regards to being very simple, and super functional.

Just a thought if and when you may have a little spare time. Thanks again for all your support in this community, you are one of the main reasons I have stuck around the open source scene for so long. Keep em coming! P.S. donation coming soon!

Chris

Maybe notaz should put his efforts into cloning himself, that way his clones could work on every emulator B) :p Just not enough of him to go around :(
 
Last edited by a moderator:
DynaMight said:
Maybe notaz should put his efforts into cloning himself, that way his clones could work on every emulator B) :p Just not enough of him to go around :(

"Emulator ________ needs more Notaz." I think I may put that in my sig.
 
Last edited by a moderator:
I suspect that Notaz wrote a "Notaz emulator" which emulates himself and is the real source of all his greatest works. He just sits on his arse and play tests the results his emulator churns out. Otherwise it would mean that if an orgasm could be emulated, Notaz would be the one to implement it. And he'd be selfless enough not to spend all his time running it, but instead adding extra features like more realistic damp patches and a superb "front end". No one is that wonderful surely?

This (PSX) emulator doubles the Pandora's commercial value. I can't wait to be able to use it.
 
notaz said:
About $ra access in JAL delay slot..
ok this seems to help:
Code:
--- a/libpcsxcore/new_dynarec/new_dynarec.c
+++ b/libpcsxcore/new_dynarec/new_dynarec.c
@@ -8886,6 +8886,8 @@ int new_recompile_block(int addr)
           clear_const(&current,rt1[i]);
           alloc_cc(&current,i);
           dirty_reg(&current,CCREG);
+          ooo[i]=1;
+          delayslot_alloc(&current,i+1);
           if (rt1[i]==31) {
             alloc_reg(&current,i,31);
             dirty_reg(&current,31);
@@ -8896,8 +8898,6 @@ int new_recompile_block(int addr)
             #endif
             //current.is32|=1LL<<rt1[i];
           }
-          ooo[i]=1;
-          delayslot_alloc(&current,i+1);
           //current.isconst=0; // DEBUG
           ds=1;
It seems $ra was being evicted by delayslot_alloc(), not sure if this doesn't break anything though.


jumpman said:
I'm not really looking for performance improvements, although that would be nice, I would just like to see a decent front end like you have for Rearmed and Picodrive. Something that allows for easy access to your roms, and a nice way to set options, and clock speed within the emu. Your emu's are just about the best in regards to being very simple, and super functional.
Frontend work is rather boring/annoying/demotivating for me, it's the part of development I hate most, so sorry but no.
Maybe Picklelauncher could be updated to generate some options based on it's config, and that itself could generate configs for mupen or something (just an idea, not saying I'm going to do it).
 
Last edited by a moderator:
Thanks anyways Notaz. I had no idea it was "un-fun" work for you, I would never know judging by the final product.

Well maybe someone else can pick up the torch at some point, and make some much needed improvements.

Chris
 
jumpman said:
Thanks anyways Notaz. I had no idea it was "un-fun" work for you, I would never know judging by the final product.

Well maybe someone else can pick up the torch at some point, and make some much needed improvements.

Chris
edit: I should learn to read
 
Last edited by a moderator:
Pickle said:
Blue Protoman said:
I think he should open-source his frontend like with Picklelauncher.

every related to this emulator is open source, what are you talking about?

I meant the frontend that Notaz uses in his emulators. Like this or Picodrive.
 
Last edited by a moderator:
Blue Protoman said:
Pickle said:
Blue Protoman said:
I think he should open-source his frontend like with Picklelauncher.

every related to this emulator is open source, what are you talking about?

I meant the frontend that Notaz uses in his emulators. Like this or Picodrive.
check the GIT. The frontend source is available, as every other part of the emulator :blink:
 
Last edited by a moderator:
notaz said:
It seems $ra was being evicted by delayslot_alloc(), not sure if this doesn't break anything though.
I think that's right. The basic idea is that the instructions are issued out-of-order, so it does the delay slot first, and then the branch.

There are two register mappings, first the registers that are used by the delay slot instruction, which go into regs.regmap, then (under "branch post-alloc") the registers that are used by the branch instruction itself, which go into branch_regs.regmap.

The delay slot accessing $ra kinda screws up this ordering, since you have to first set $ra, then execute the delay slot, then branch.

Allocating $ra into the delay slot's regmap after allocating the delay slot registers should be fine, since when alloc_reg()/lsn() is given a branch instruction, it gives a high priority to the delay slot registers so they don't get evicted.

The way I had it would allocate $ra but let the delay slot evict it if it wanted to. Then it would re-allocate $ra in branch_regs, where it really needs it. The prefetch stuff would load things early if the registers were available, but do it after the delay slot otherwise.

The register allocation is a heuristic based on various factors. Usually the delay slot would not evict the branch's registers (alloc_reg looks at the previous instruction) but it might do so in certain circumstances if there were few available registers. Or maybe it's a bug...
 
Last edited by a moderator:
IsSuE said:
Blue Protoman said:
Pickle said:
Blue Protoman said:
I think he should open-source his frontend like with Picklelauncher.

every related to this emulator is open source, what are you talking about?

I meant the frontend that Notaz uses in his emulators. Like this or Picodrive.
check the GIT. The frontend source is available, as every other part of the emulator :blink:

Well I'll be damned.
 
Last edited by a moderator:
DynaMight said:
Maybe notaz should put his efforts into cloning himself, that way his clones could work on every emulator B) :p Just not enough of him to go around :(
Notaz should write a Notaz emulator, and then we could all run our own copies fixing up our own favorite emulators. And with git they'd even be able to share repos!
 
Last edited by a moderator:
Larry Hastings said:
DynaMight said:
Maybe notaz should put his efforts into cloning himself, that way his clones could work on every emulator B) :p Just not enough of him to go around :(
Notaz should write a Notaz emulator, and then we could all run our own copies fixing up our own favorite emulators. And with git they'd even be able to share repos!
Best idea I've heard this month. :)

P.S. I LOVE the frontend that Notaz uses in his emulators. The more emulators use it, the better. Seems much nicer to me than Picklelauncher (which is okay, but quite simple - no emulator options in the menu).
 
Last edited by a moderator:
Esn said:
P.S. I LOVE the frontend that Notaz uses in his emulators. The more emulators use it, the better. Seems much nicer to me than Picklelauncher (which is okay, but quite simple - no emulator options in the menu).

+1. I remember when I first tried Picodrive, I was like: "What, Text-only? :( " But then, after using it, I really came to like it. Now it would be a welcome addition to just about any emulator I use. :D

-God Ginrai
 
Last edited by a moderator:
Notaz, i hope it's still demanded
Ninja: Shadow of Darkness,with bios it closes with following messages http://paste.org.ru/?n2not9 , without it just hang at line 14 of log
 
I installed this emulator. Works really perfect for the most part, but I still have few issues with some of the games.
Can you help me figure out what I do wrong, because in compatibility list these games stated as "green = works good".
Okay here's the games:
Metal Gear Solid - just black screen... (I use iso rip from original cd).
Diablo - seems to work fine, but controls just doesn't register, like I press buttons but nothing happens.
I use r7 version with bios.
 
I don't think that the emulator defaults to using the bios. You need to change the option with the game loaded, exit the game and reload it for the change to take effect. I had to do that dance to get the controls in Diablo to work, myself.
 
Back
Top