Release REICAST - Dreamcast Emulator


ptitSeb

Serial Porter
Joined
Aug 15, 2012
Messages
9,195
Age
49
Location
France, near Lyon
So i should be ? I may have some emiter to create...


ORR(reg.mapg(op->rd),reg.mapg(op->rs2),reg.mapg(op->rs1),true, S_LSL, 1); //(C,rd)= rs1<<1 + (|) rs2
MOVW(reg.mapg(op->rd2),0); //clear rd2 (for ADC/MOVCS)
ADC(reg.mapg(op->rd2),reg.mapg(op->rd2),0); //rd2=C (or MOVCS rd2, 1)
Alternatively, you could reuse the ADC method, since it's functionally equivalent to ADC with the same two arguments.
Bah, the ORR seems to works, so I'll keep it like that :)

I'm still unabled to have a proper multiply. I think one of my emiter is broken, but I still don't know wich one. I will have to compile the asm on a side, and compare the output DWord by DWord to find the mistake :'(
I found the buggy emiter. NEG(rx, rx) doesn't seems to produce the right result. So I used RSB(rx, rx, 0) and it seems I have a working div32s :)
 

calc84maniac

Member
Joined
Mar 19, 2009
Messages
332
I found the buggy emiter. NEG(rx, rx) doesn't seems to produce the right result. So I used RSB(rx, rx, 0) and it seems I have a working div32s :)
That's odd. This is the definition of NEG(), after all:

Code:
EAPI NEG(eReg Rd,eReg Rs)
{
        RSB(Rd,Rs,0);
}
 

ptitSeb

Serial Porter
Joined
Aug 15, 2012
Messages
9,195
Age
49
Location
France, near Lyon
I found the buggy emiter. NEG(rx, rx) doesn't seems to produce the right result. So I used RSB(rx, rx, 0) and it seems I have a working div32s :)
That's odd. This is the definition of NEG(), after all:


EAPI NEG(eReg Rd,eReg Rs)
{
        RSB(Rd,Rs,0);
}
Yeah, but I used some overloaded ones, with "bool S" and CC_MI and things like that. I must have added some buggy emiter myself. I have to cleanup my mess before comiting to github :(
 

calc84maniac

Member
Joined
Mar 19, 2009
Messages
332
I feel like we should have a development thread, heh. I have a number of suggestions brewing for the dynarec and such. One thing that comes to mind is that your committed shop_sbc implementation doesn't seem like it'll work, because ARM uses carry for subtraction instead of borrow. I'll see if I can come up with something for that.

Edit: I guess the method you use to get the carry works, it's the output carry that's the problem. I guess you can use a MOVCC rd2,#1 instead of the ADC rd2,rd2,#0. Also, are the SUB and SBC actually setting flags? I can't tell.

More optimized implementation of shop_setpeq below (assuming these conditional emitters exist):

                case shop_setpeq:
                        {
                                EOR(r1, reg.mapg(op->rs1), reg.mapg(op->rs2));
                                MOVW(reg.mapg(op->rd), 0);
 
                                TST(r1, 0xFF000000);
                                TST(r1, 0x00FF0000, CC_NE);
                                TST(r1, 0x0000FF00, CC_NE);
                                TST(r1, 0x000000FF, CC_NE);
                                MOVW(reg.mapg(op->rd), 1, CC_EQ);
                        }
                        break;

Edit once again: It looks like your UMULL and SMULL destination registers are swapped from the normal order. What you have probably works, but it would be less confusing if they were in the same order as the actual assembly instruction.
 
Last edited by a moderator:

ptitSeb

Serial Porter
Joined
Aug 15, 2012
Messages
9,195
Age
49
Location
France, near Lyon
I feel like we should have a development thread, heh. I have a number of suggestions brewing for the dynarec and such. One thing that comes to mind is that your committed shop_sbc implementation doesn't seem like it'll work, because ARM uses carry for subtraction instead of borrow. I'll see if I can come up with something for that.

Edit: I guess the method you use to get the carry works, it's the output carry that's the problem. I guess you can use a MOVCC rd2,#1 instead of the ADC rd2,rd2,#0. Also, are the SUB and SBC actually setting flags? I can't tell.
I open a thread in developpement thread tomorow :)
 

ptitSeb

Serial Porter
Joined
Aug 15, 2012
Messages
9,195
Age
49
Location
France, near Lyon
It was asked at some point int his thread (or maybe it's the other one) to handle analog RT/LT with the other Nub. 

While I can probably do that, what should I map to, Up=>RT, Down=>LT, the contrary, or use Left => LT, Right => RT, or both (don't think it can be a good idea). Of course, I'll keep trigger button to fully pressed Trigger analog as it is now.
 

itami

Still Fresh
Joined
Mar 7, 2011
Messages
71
It was asked at some point int his thread (or maybe it's the other one) to handle analog RT/LT with the other Nub.


While I can probably do that, what should I map to, Up=>RT, Down=>LT, the contrary, or use Left => LT, Right => RT, or both (don't think it can be a good idea). Of course, I'll keep trigger button to fully pressed Trigger analog as it is now.
With driving games you not always need to use full brake/throttle, so using right nub up for throttle and down for brake would be nice.


Biggest disadvantage of the Dreamcast controller is that is has only one analog stick, the a b x y buttons are often used for movement and to be able to bind these to a nub would also be nice.


Best would be if it could be like Pcsx-rearmed, every game his own settings.
 
Last edited by a moderator:

ptitSeb

Serial Porter
Joined
Aug 15, 2012
Messages
9,195
Age
49
Location
France, near Lyon
It was asked at some point int his thread (or maybe it's the other one) to handle analog RT/LT with the other Nub.


While I can probably do that, what should I map to, Up=>RT, Down=>LT, the contrary, or use Left => LT, Right => RT, or both (don't think it can be a good idea). Of course, I'll keep trigger button to fully pressed Trigger analog as it is now.
With driving games you not always need to use full brake/throttle, so using right nub up for throttle and down for brake would be nice.


Biggest disadvantage of the Dreamcast controller is that is has only one analog stick, the a b x y buttons are often used for movement and to be able to bind these to a nub would also be nice.


Best would be if it could be like Pcsx-rearmed, every game his own settings.
No GUI and no Per Game config for now. I'm just trying to get best default config.
 

ptitSeb

Serial Porter
Joined
Aug 15, 2012
Messages
9,195
Age
49
Location
France, near Lyon
Here is a new alpha alpha version.

I integrated most opcode (exept div32s that doesn't work for sure).

And I integrated a "Nub mode" for right Nub.

By default, it does nothing.

Press "n" to toggle through the 4 modes:

0 : nothing

1 : Up=>RT, Down=LT

2 : Left=LT, Right=RT

3 : ABXY digital mode

There is no OSD for now, so the mode is silently changed for now, you have to count/guess wich mode you are... 

reicast.pnd
 

Attachments

  • reicast.pnd
    6.1 MB · Views: 143

MRCANNADY

Newbie
Joined
Dec 30, 2013
Messages
6
Here is a new alpha alpha version.

I integrated most opcode (exept div32s that doesn't work for sure).

And I integrated a "Nub mode" for right Nub.

By default, it does nothing.

Press "n" to toggle through the 4 modes:

0 : nothing

1 : Up=>RT, Down=LT

2 : Left=LT, Right=RT

3 : ABXY digital mode

There is no OSD for now, so the mode is silently changed for now, you have to count/guess wich mode you are... 
Probably a stupid question, but how do I install the pnd file to update my original alpha reicast apk??
 
Last edited by a moderator:

edgex004

Advanced Member
Joined
Jan 5, 2008
Messages
1,219
Here is a new alpha alpha version.


I integrated most opcode (exept div32s that doesn't work for sure).


And I integrated a "Nub mode" for right Nub.


By default, it does nothing.


Press "n" to toggle through the 4 modes:


0 : nothing


1 : Up=>RT, Down=LT


2 : Left=LT, Right=RT


3 : ABXY digital mode


There is no OSD for now, so the mode is silently changed for now, you have to count/guess wich mode you are...
Probably a stupid question, but how do I install the pnd file to update my orinal alpha reicast??
I changed the ".pnd" on my original


Alpha from the repo to ".123". I then downloaded this Alpha Alpha to the same folder.


To find the original file from the repo, look in your SD card > Pandora > apps or menu or desktop or mmenu depending on where you had it saved to.
 

MRCANNADY

Newbie
Joined
Dec 30, 2013
Messages
6
Here is a new alpha alpha version.


I integrated most opcode (exept div32s that doesn't work for sure).


And I integrated a "Nub mode" for right Nub.


By default, it does nothing.


Press "n" to toggle through the 4 modes:


0 : nothing


1 : Up=>RT, Down=LT


2 : Left=LT, Right=RT


3 : ABXY digital mode


There is no OSD for now, so the mode is silently changed for now, you have to count/guess wich mode you are...
Probably a stupid question, but how do I install the pnd file to update my orinal alpha reicast??
I changed the ".pnd" on my original


Alpha from the repo to ".123". I then downloaded this Alpha Alpha to the same folder.


To find the original file from the repo, look in your SD card > Pandora > apps or menu or desktop or mmenu depending on where you had it saved to.
Thanks for your help, but I am going to assume that this is only for Pandora users??  I have an Nvidia Shield, so I only have the alpha apk version... :)
 

ptitSeb

Serial Porter
Joined
Aug 15, 2012
Messages
9,195
Age
49
Location
France, near Lyon
Here is a new alpha alpha version.

I integrated most opcode (exept div32s that doesn't work for sure).

And I integrated a "Nub mode" for right Nub.

By default, it does nothing.

Press "n" to toggle through the 4 modes:

0 : nothing

1 : Up=>RT, Down=LT

2 : Left=LT, Right=RT

3 : ABXY digital mode

There is no OSD for now, so the mode is silently changed for now, you have to count/guess wich mode you are... 
Probably a stupid question, but how do I install the pnd file to update my original alpha reicast apk??
This PND is for Pandora only, not for Android.
 

MRCANNADY

Newbie
Joined
Dec 30, 2013
Messages
6
Here is a new alpha alpha version.

I integrated most opcode (exept div32s that doesn't work for sure).

And I integrated a "Nub mode" for right Nub.

By default, it does nothing.

Press "n" to toggle through the 4 modes:

0 : nothing

1 : Up=>RT, Down=LT

2 : Left=LT, Right=RT

3 : ABXY digital mode

There is no OSD for now, so the mode is silently changed for now, you have to count/guess wich mode you are... 
Probably a stupid question, but how do I install the pnd file to update my original alpha reicast apk??
This PND is for Pandora only, not for Android.
lol..thanks, i just figured that out after 30 minutes of trying to get it to work on my shield!  I really appreciate you guys making my portable dreamcast dreams become a reality, you guys dont know how much this means to me!  The dreamcast introduced me to my gaming addiction, and I havent turned back ever sense!  I wish  that I could donate to you guys, money well freaking deserved!!!
 

MRCANNADY

Newbie
Joined
Dec 30, 2013
Messages
6
I'm the number one Dreamcast fan, not you!  
Now those are fighting words!  Man, I remember the first day that I got my dreamcast like it was yesterday!  I took a cab to and from my local gamestop (even though the store was only 15 minutes walking distance from my home).  Picked up the system and NBA 2K...and passed out for about 30 minutes after witnessing those amazing graphics on my tv lol.  Man, the dreamcast was really an amazing system, that should of sold like hotcakes!!  Remember how NBA live on the ps1 looked compared to NBA 2k on the Dreamcast..what a joke!

BTW I wish that NBA 2k would work on the current alpha state, but unfortunately, it does not  :(
 

matzesu

Forum Addict!
Staff member
Joined
Oct 24, 2008
Messages
12,429
Age
38
Location
Germany,, Saarland, at home
I think for my CC Pandora, this is a bit Overkill but mybe i have to prepare a second 32 gb card whit Dreamcast Games for the Pyra. .

God that i have a lot time until then. .
 

rohezal

Advanced Member
Joined
Oct 18, 2009
Messages
1,712
Since the cpu is bottleneck could we have the option to disable the sound and gaina few % speed? Or is the sound emulation almost free?
 
Top