Homebrew WiiSX beta 1

Status
Not open for further replies.

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,749
Trophies
4
Age
45
Location
Engine room, learning
XP
15,648
Country
France
The mod03 seems to have a calibration problem with Classic controler.

here my results with FF8 demo FR :


Mod 03, tested with Classic and GC controller:
* Standard controller : Digital controller is working fine (analog stick is a copy of digital cross), game run fine, sometime battle freeze. Start button is working fine.
* Analog controller : Cursor moving by itself on Y axis on title screen. Game freeze (loops with a blackscreen) instead of "this demo accept dual shock controller, press start to enable rumble" screen. Start button is working in Repeat mode. Rumble not possible (gray text).

Beta 01 with GC controller:
* Standard controller : All working fine. Start button work fine.
* Analog controller : Game working, Battles too. Analog working fine but Y axis (up/down) inverted with left analog stick, Cross control Y axis is good. Start button in Repeat mode too. Rumble not possible (gray text).

Conclusion :
Y axis seems to have a problem in both versions, but in beta01 it has good calibration.
Start button is in Repeat is both versions, when Analog controller is selected.
Y axis is moving by itself (bad calibration) on Mod03. When manually pushing analog stick "up" of "down", it stop moving.



Request for mod 04 :
Is there a L3 and R3 ?
Could you can add it with Home+Lz/Rz ?
Thank you ^^
 

Jacobeian

Well-Known Member
Member
Joined
May 15, 2008
Messages
1,893
Trophies
0
XP
387
Country
Cuba
Y axis inversion is easy to fix (I've seen where it is inverted but did not touch it as I thought it was meant to be like that)

in analog controller mode, there is indeed a bug I introduced with classic controller:

Code:
else if(controllerType==1) {
ÂÂÂÂÂÂ//adjust values by 128 cause psx values in range 0-255 where 128 is center position
#ifndef HW_RVL
ÂÂÂÂÂÂpad->leftJoyXÂÂ= (u8)(PAD_StickX(0)+127) & 0xFF;ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ//analog stick
ÂÂÂÂÂÂpad->leftJoyYÂÂ= (u8)(-PAD_StickY(0)+127) & 0xFF;
ÂÂÂÂÂÂpad->rightJoyX = (u8)(PAD_SubStickX(0)+127) & 0xFF;ÂÂÂÂÂÂÂÂÂÂÂÂ//C-stick (Left JoyStick)
ÂÂÂÂÂÂpad->rightJoyY = (u8)(PAD_SubStickY(0)+127) & 0xFF;
#else
ÂÂÂÂÂÂpad->leftJoyXÂÂ= ((u8)(PAD_StickX(0)+127) + (u8)(WPAD_Stick(0,0,0)+127)) & 0xFF;
ÂÂÂÂÂÂpad->leftJoyYÂÂ= ((u8)(-PAD_StickY(0)+127) + (u8)(-WPAD_Stick(0,0,1)+127)) & 0xFF;
ÂÂÂÂÂÂpad->rightJoyX = ((u8)(PAD_SubStickX(0)+127) + (u8)(WPAD_Stick(0,1,0)+127)) & 0xFF;
ÂÂÂÂÂÂpad->rightJoyY = ((u8)(PAD_SubStickY(0)+127) + (u8)(WPAD_Stick(0,1,1)+127)) & 0xFF;
#endif

should be

Code:
else if(controllerType==1) {
ÂÂÂÂÂÂ//adjust values by 128 cause psx values in range 0-255 where 128 is center position
#ifndef HW_RVL
ÂÂÂÂÂÂpad->leftJoyXÂÂ= (u8)(PAD_StickX(0)+127) & 0xFF;ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ//analog stick
ÂÂÂÂÂÂpad->leftJoyYÂÂ= (u8)(PAD_StickY(0)+127) & 0xFF;
ÂÂÂÂÂÂpad->rightJoyX = (u8)(PAD_SubStickX(0)+127) & 0xFF;ÂÂÂÂÂÂÂÂÂÂÂÂ//C-stick (Left JoyStick)
ÂÂÂÂÂÂpad->rightJoyY = (u8)(PAD_SubStickY(0)+127) & 0xFF;
#else
ÂÂ ÂÂÂÂif (PAD_StickX(0) || PAD_StickY(0))
ÂÂÂÂÂÂÂÂ{
ÂÂÂÂÂÂÂÂÂÂ pad->leftJoyXÂÂ= (u8)(PAD_StickX(0)+127) & 0xFF;ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ//analog stick
ÂÂÂÂÂÂÂÂ pad->leftJoyYÂÂ= (u8)(PAD_StickY(0)+127) & 0xFF;
ÂÂÂÂÂÂ}
ÂÂÂÂÂÂÂÂelse 
ÂÂÂÂÂÂ {
ÂÂÂÂÂÂÂÂÂÂ pad->leftJoyXÂÂ=(u8)(WPAD_Stick(0,0,0)+127) & 0xFF;
ÂÂÂÂÂÂÂÂ pad->leftJoyYÂÂ= (u8)(WPAD_Stick(0,0,1)+127) & 0xFF;
ÂÂÂÂÂÂ }

ÂÂ ÂÂÂÂif (PAD_SubStickX(0) || PAD_SubStickY(0))
ÂÂÂÂÂÂÂÂ{
ÂÂ ÂÂÂÂÂÂ pad->rightJoyX = (u8)(PAD_SubStickX(0)+127) & 0xFF;ÂÂÂÂÂÂÂÂÂÂÂÂ//C-stick (Left JoyStick)
ÂÂÂÂÂÂÂÂ pad->rightJoyY = (u8)(PAD_SubStickY(0)+127) & 0xFF;
ÂÂÂÂÂÂ}
ÂÂÂÂÂÂÂÂelse 
ÂÂÂÂÂÂ {
ÂÂÂÂÂÂÂÂÂÂ pad->rightJoyX = (u8)(WPAD_Stick(0,1,0)+127) & 0xFF;
ÂÂÂÂÂÂ pad->rightJoyY = (u8)(WPAD_Stick(0,1,1)+127) & 0xFF;
ÂÂÂÂÂÂ }
#endif


same for player 2
 

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,749
Trophies
4
Age
45
Location
Engine room, learning
XP
15,648
Country
France
I tried the change.
The game is running with Analog now (with mod03 it froze after newgame selection).

But the Y axis is still inverted, and the Digital is in repeat mode too
tongue.gif

when pushing a direction, the player is moving, stopping, moving, stopping, etc. at high speed.
this occur only when choosing Analog controller.


My build is very slow and laggy compared to beta and your build
unsure.gif
 

Jacobeian

Well-Known Member
Member
Joined
May 15, 2008
Messages
1,893
Trophies
0
XP
387
Country
Cuba
you need to apply the changes on mod03 and use the Makefile included in the mod03 package (the one from the beta adds debug outputs that slowdown emulation as hell)

otherwise, you are doing things wrong because the above code does not touch anything on the "digital mode"

I does not have access to my dev setup right now , will try to compile something when I can

also note that analog controller emulation might be buggy or not compatible with that game in the original PCSX (we are only returning inputs analog raw values here)
 

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,749
Trophies
4
Age
45
Location
Engine room, learning
XP
15,648
Country
France
Your change is good, just add back the negative for Y axis.
Your analog is even better than beta01, it takes the magnitude (thanks to Snes9xGx), except for "up" on FF8, but working great in all direction with soul reaver.


The digital controller error is present on beta01 too when selecting Analog (in FF8 demo only, Soul reaver is working fine).
 

emupaul

Well-Known Member
Member
Joined
Jun 26, 2009
Messages
416
Trophies
0
Location
space
Website
Visit site
XP
144
Country
United States
-03 optimaztion will cause some problems on the stack and cause more random crashing than not due to code being removed from the final binary

safer bet would be go back to -02

and look into adding

750 aka as G3 (PowerPC)

these are considered "safe flags" and may improve emulation speed due to build time optimizations... something to look into...
or maybe snake oil...

CHOST="Wi Processor"
CFLAGS="-mcpu=750 -O2 -pipe -fsigned-char -mpowerpc-gfxopt"
CXXFLAGS="-mcpu=750 -O2 -pipe -fsigned-char -mpowerpc-gfxopt"

Controllers support via Wii Use Lib could cause slow downs ( please correct me if im wrong) because the compiler will need to add c++ code while linking the files causing the binary to be bigger and require the need to execute more commands and lose performance?... a guess....

I guess speeding it up would just mean writting a tighter routine for controller input and possibly put it in a new thread to pump events out the event que a little more efficiently and quicker would help squeeze out some frames...
 

Jacobeian

Well-Known Member
Member
Joined
May 15, 2008
Messages
1,893
Trophies
0
XP
387
Country
Cuba
CHOST is unecessary
-mcpu=750 is already set by devkippc and powerpc-gekko-gcc default rules
-pipe has nothing to do with optimization, it's only used during the compilation/linking process
-fsigned-char only set the type char to signed char when compiling, again, not used for optimization and already done by default if I remember well

About PowerPC specific options (-mpowerpc-gfxopt),according to the GCC manual, using mcpu=xxx will overide those options since they are used to tell what kind of instructions the compiler can use i.e telling the compiler the CPU is a PowerPC750 type will set all the optimized options for you


QUOTE said:
Controllers support via Wii Use Lib could cause slow downs ( please correct me if im wrong) because the compiler will need to add c++ code while linking the files causing the binary to be bigger and require the need to execute more commands and lose performance?... a guess....


no, binary size don't affect speed unless you are heavily relying on the Instruction cache to store your whole code, which isn't the case here.... anyway, the fact you link wiiuse (which is written in C btw, not C++) library does not affect speed at all.
what affects speed is updating & reading the WPAD controllers on every frame, but it's VERY minimal overhead compared to the other emulation processing job.
QUOTEI guess speeding it up would just mean writting a tighter routine for controller input and possibly put it in a new thread to pump events out the event que a little more efficiently and quicker would help squeeze out some frames...

threading won't help... thread or not, you will always be tied to the processing required to update & read the controllers (2 wii controllers + 2 gamecube ones).
And there is a very limited set of possible event anyway.
You could eventually put the controller update function in the VSYNC callback but again, it won't change anything related to emulation speed.
I already tried to simplify the WPAD code to the maximum and the only way to make it more efficient imo is to remove some unwanted checks (only check the controller you want or those which has been detected on startup for example, don't decode analog sticks position when emulating digital controller, etc)
 

Jacobeian

Well-Known Member
Member
Joined
May 15, 2008
Messages
1,893
Trophies
0
XP
387
Country
Cuba
obviously, you need to plug your gamecube controller in port 2 if you want to use it for player 2

wiimote+classic #1 or gamecube #1 -> player 1
wiimote+classic #2 or gamecube #2 -> player 2

unless you have seen some hidden options I didn't know about, there is no other way to know which controller should be used for player 1
 

Sstew

GBAtemp's Grim Reaper.
Member
Joined
Jul 15, 2008
Messages
1,461
Trophies
0
Age
31
Location
Florida
Website
Visit site
XP
252
Country
United States
Haven't tried this yet, but compatibility list says most games run from 50-70 FPS. Is that as fast as a regular PS1 or is it noticably slower?

Just trying to figure out if I should keep using the PS1 Emulator on my computer or switch to this
 

emupaul

Well-Known Member
Member
Joined
Jun 26, 2009
Messages
416
Trophies
0
Location
space
Website
Visit site
XP
144
Country
United States
Sstew said:
Haven't tried this yet, but compatibility list says most games run from 50-70 FPS. Is that as fast as a regular PS1 or is it noticably slower?

Just trying to figure out if I should keep using the PS1 Emulator on my computer or switch to this

for some games 50 is okay but no its kind of slow and as with many games emulated right the sound is just to messy, but some games do work well at this point in time.
65-80 is most playable
 

emupaul

Well-Known Member
Member
Joined
Jun 26, 2009
Messages
416
Trophies
0
Location
space
Website
Visit site
XP
144
Country
United States
great and if you have any issues or you dont think the description is accurate feel free to update the compatibility wiki ;0
 

h8uthemost

Well-Known Member
Member
Joined
Dec 7, 2006
Messages
702
Trophies
1
XP
403
Country
United States
SoTN is the only game I want to play on this emulator since it's the only ps game I don't own and want to play.

So my apologies if this has been answered already(don't want to read 30 pages), but does this game run well enough to where I'll be able to play it from start to finish? Is the game barely playable, or does it run near full speed? I mean the wiki says it runs between 50 and 70fps. That sounds like close to full speed.

Thanks.

Edit: Also, which version of wiisx would you guys recommend? The official beta, or one of the unofficials(mod03)? If the unofficials run as well as the official but with classic controller support, then I think that's the one I'll go for.
 

Guild McCommunist

(not on boat)
Member
Joined
May 6, 2009
Messages
18,148
Trophies
0
Age
31
Location
The Danger Zone
XP
10,348
Country
United States
h8uthemost said:
SoTN is the only game I want to play on this emulator since it's the only ps game I don't own and want to play.

So my apologies if this has been answered already(don't want to read 30 pages), but does this game run well enough to where I'll be able to play it from start to finish? Is the game barely playable, or does it run near full speed? I mean the wiki says it runs between 50 and 70fps. That sounds like close to full speed.

Thanks.

We have a compatability list on the Wiki, if you're curious.

The game runs at a smooth framerate but doesn't have music. It's definately playable all the way through (provided its not multi-disc).
 

h8uthemost

Well-Known Member
Member
Joined
Dec 7, 2006
Messages
702
Trophies
1
XP
403
Country
United States
Ouch. No music? The wiki doesn't mention that. I'm not sure if I want my first playthrough ever with this game to be with no music.

Thanks for your reply Guild. It's appreciated.
 

emupaul

Well-Known Member
Member
Joined
Jun 26, 2009
Messages
416
Trophies
0
Location
space
Website
Visit site
XP
144
Country
United States
h8uthemost said:
Ouch. No music? The wiki doesn't mention that. I'm not sure if I want my first playthrough ever with this game to be with no music.

Thanks for your reply Guild. It's appreciated.
it would probley be worth it to buy a cheap psx and the game than to wait for this emulator sound to be %100 and trust me it will kill the experience of sotn.
however i think the game cost more than the console now...
 
Status
Not open for further replies.

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    SylverReZ @ SylverReZ: Sup