Homebrew Wii64 and WiiSX recompiled (Improved USB Support)

wiisixtyfour

Well-Known Member
OP
Member
Joined
Feb 28, 2011
Messages
102
Trophies
0
Location
CA
Website
wiisixtyfour.webs.com
XP
111
Country
United States
Cospefogo said:
Sire,

I wonder if it is possible to add a FILTERING ON/OFF switch?
It could be wonderful to have the games running on sharp pixels!
That bilinear/blurry mode makes me feel like I need glasses!

Also, a 240p mode just like the SNES, NES, GEN and PCE emu could be AWESOME!

Thanks so much!
Best regards,
Cospefogo.
This is not a request thread.
 

thunderspider

Active Member
Newcomer
Joined
Oct 20, 2009
Messages
44
Trophies
0
XP
173
Country
Brazil
wiisixtyfour said:
thunderspider said:
Hello, wiisixtyfour, may be you can answer me.. how can i fix a input problem with the need for speed for wiisx? the first need for speed, the game apparently runs well, but isn't reckognize the controls, no matter the config
What controller are you using?
Also, have you tried changing the configuration? Go into Settings and then Input and then Configure Buttons.

hi wiisixtyfour. i will try it, working or not, thanks by help man
 

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
@matguitarist & tueidj :

IOS202 was faster than IOS58 (when matguitatist did the Wiisx mod, maybe now IOS58 is faster with latest devkitppc & libogc?).
Which one from cIOS202 and cIOS56 has a faster USB access?
cIOSx d2x base 56 has great speed result with USBloaders, could it be used too? maybe with meta.xml arguments to select the IOS to use?
 

matguitarist

Well-Known Member
Member
Joined
Oct 14, 2008
Messages
458
Trophies
0
Location
Canada
XP
147
Country
Canada
We could try to mod for use CIOS D2x, anyone have try Hermes cIOS Installer v5.1 MOD by Rodries ?

It include the same EHC module than D2X CIOS.

Any improvement in wiisx CIOS 202 mod using this Hermes CIOS Rodries MOD?
 

Fishaman P

Speedrunner
Member
Joined
Jan 2, 2010
Messages
3,322
Trophies
1
Location
Wisconsin
Website
twitch.tv
XP
2,184
Country
United States
Cospefogo said:
Sire,

I wonder if it is possible to add a FILTERING ON/OFF switch?
It could be wonderful to have the games running on sharp pixels!
That bilinear/blurry mode makes me feel like I need glasses!

Also, a 240p mode just like the SNES, NES, GEN and PCE emu could be AWESOME!

Thanks so much!
Best regards,
Cospefogo.
Yeah... You see, the NES, SNES, etc. all output 240p natively. The N64 and PSX are just a little bit more advanced than that.
 

Comrade Cough

Well-Known Member
Newcomer
Joined
Apr 3, 2010
Messages
64
Trophies
0
Location
Fu Manchu's Secret Evil Lair
Website
Visit site
XP
27
Country
United States
Some SNES games output in 512x480, but usually for still images, menu's and for displaying fonts, off the top of my head (And -maybe- some mode7), Dark Law comes to mind as one that raises the internal res for the font.
The only advantage to running in the internal res of the system or game [IMO] is for screenshotting purposes, or system requirements. Just plug a SNES in to a tv, and it's going to output at the TV's resolution, remember HD tv's weren't quite out the door yet back then, so it got analog scaling, and signal degredation which made the games look less blocky and pixelated.
/offtopic



From what I understand though this is not an improvement of the emulation, and just adds the new libs for better compatibility with hardware
 

thunderspider

Active Member
Newcomer
Joined
Oct 20, 2009
Messages
44
Trophies
0
XP
173
Country
Brazil
wiisixtyfour said:
thunderspider said:
Hello, wiisixtyfour, may be you can answer me.. how can i fix a input problem with the need for speed for wiisx? the first need for speed, the game apparently runs well, but isn't reckognize the controls, no matter the config
What controller are you using?
Also, have you tried changing the configuration? Go into Settings and then Input and then Configure Buttons.

nothing works, even changing input, even with different isos, or regions
 

Jacobeian

Well-Known Member
Member
Joined
May 15, 2008
Messages
1,893
Trophies
0
XP
387
Country
Cuba
Fishaman P said:
Cospefogo said:
Sire,

I wonder if it is possible to add a FILTERING ON/OFF switch?
It could be wonderful to have the games running on sharp pixels!
That bilinear/blurry mode makes me feel like I need glasses!

Also, a 240p mode just like the SNES, NES, GEN and PCE emu could be AWESOME!

Thanks so much!
Best regards,
Cospefogo.
Yeah... You see, the NES, SNES, etc. all output 240p natively. The N64 and PSX are just a little bit more advanced than that.


That's not true.
N64 supports 256 × 224, 320 × 240 (non-interlaced) and 640 × 480 (interlaced) with only a few games supporting the latter, most games using 320x240.
PS1 supports also 256 x 224 (non-interlaced) up to 640 x 480 (interlaced) and again, most games used non-interlaced video modes.
 

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 recompiled version seems faster, the music is less laggy
smile.gif

But the game I want to play doesn't work with 2.1 (it freezes the wii on first enemy attack)

I've tried to recompile 2.0 with latest libogc and PPC23 too.
but it didn't work (stop when creating the .elf)

linking ... WiiSX.elf
fileBrowser-libfat.o: In function `fileBrowser_libfat_readDir':
f:/Homebrew/Wii/WiiSX/WiiSX2.0/Gamecube/fileBrowser/fileBrowser-libfat.c:204: undefined reference to `diropen'
f:/Homebrew/Wii/WiiSX/WiiSX2.0/Gamecube/fileBrowser/fileBrowser-libfat.c:213: undefined reference to `dirnext'
f:/Homebrew/Wii/WiiSX/WiiSX2.0/Gamecube/fileBrowser/fileBrowser-libfat.c:227: undefined reference to `dirclose'
collect2: ld returned 1 exit status
make[1]: *** [/f/Homebrew/Wii/WiiSX/WiiSX2.0/Gamecube/WiiSX.elf] Error 1
make: *** [build] Error 2

maybe some names changed in latest PPC and libogc?

@Wiisixtyfour: did you just compile the 2.1 sources without changing anything in the sources or did you replace the old command with new one?


PS:
The game I want to play is Rhapsody ~ A musical Adventure.
or maybe someone know what changed between 2.0 and 2.1 and I could fix the problem without waiting for 2.2?
 

matguitarist

Well-Known Member
Member
Joined
Oct 14, 2008
Messages
458
Trophies
0
Location
Canada
XP
147
Country
Canada
newest libogc use opendir readdir and closedir in replacement of diropen dirnext and dirclose

you could use libogc 1.8.6 or change this function to use latest libogc
 

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
Thank you Matguitarist, you are always here when it's WiiSX related
smile.gif


I changed it, but now it seems readdir doesn't have the same argument number than dirnext, and it expects struct DIR* instead of DIR_ITER*

I can use Libogc 1.8.6, but the purpose was to try with latest devkit improvement, like the build he made for 2.1 on the first post.
I can still use your old mod03, it was enough to play, but I wanted to see if it was still a little laggy with the songs in Rhapsody game
smile.gif
 

matguitarist

Well-Known Member
Member
Joined
Oct 14, 2008
Messages
458
Trophies
0
Location
Canada
XP
147
Country
Canada
I think you have to include dirent.h :

#include

DIR_ITER also been replace by DIR

i didn't compile newest apps, i'm trying to get vba cover mod working for now and it use older libogc maybe i'll try to port to new libogc later.

Now it's pool time ! Too hot here
smile.gif


See you later guys

here something who could help, i just find this

no-direnext
 

wiisixtyfour

Well-Known Member
OP
Member
Joined
Feb 28, 2011
Messages
102
Trophies
0
Location
CA
Website
wiisixtyfour.webs.com
XP
111
Country
United States
Cyan said:
The recompiled version seems faster, the music is less laggy
smile.gif

But the game I want to play doesn't work with 2.1 (it freezes the wii on first enemy attack)

I've tried to recompile 2.0 with latest libogc and PPC23 too.
but it didn't work (stop when creating the .elf)

linking ... WiiSX.elf
fileBrowser-libfat.o: In function `fileBrowser_libfat_readDir':
f:/Homebrew/Wii/WiiSX/WiiSX2.0/Gamecube/fileBrowser/fileBrowser-libfat.c:204: undefined reference to `diropen'
f:/Homebrew/Wii/WiiSX/WiiSX2.0/Gamecube/fileBrowser/fileBrowser-libfat.c:213: undefined reference to `dirnext'
f:/Homebrew/Wii/WiiSX/WiiSX2.0/Gamecube/fileBrowser/fileBrowser-libfat.c:227: undefined reference to `dirclose'
collect2: ld returned 1 exit status
make[1]: *** [/f/Homebrew/Wii/WiiSX/WiiSX2.0/Gamecube/WiiSX.elf] Error 1
make: *** [build] Error 2

maybe some names changed in latest PPC and libogc?

@Wiisixtyfour: did you just compile the 2.1 sources without changing anything in the sources or did you replace the old command with new one?
As you may have figured out, I compiled the latest WiiSX source available with the latest libogc/devkitPPC at the time (which was before PPC23 and libogc 1.8.7). I didn't have to change any code, it compiled fine. Now that I updated to ogc 1.8.7 it does not compile.
 

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
Matguitarist linked to a good topic explaining how to make the change.
It needs a little rewrite of the folder listing loop. I didn't change anything yet.


Edit:
I made the change (I don't know if I did it correctly, but it's compiling and listing iso correctly on USB device).
Code:
ÂÂDIR* dp = opendir( file->name );
ÂÂÂÂif(!dp) return FILE_BROWSER_ERROR;
ÂÂÂÂstruct dirent * temp = NULL;
ÂÂÂÂstruct stat fstat;

ÂÂÂÂ// Set everything up to read
ÂÂÂÂchar filename[MAXPATHLEN];
ÂÂÂÂint num_entries = 2, i = 0;
ÂÂÂÂ*dir = malloc( num_entries * sizeof(fileBrowser_file) );
ÂÂÂÂ// Read each entry of the directory
ÂÂÂÂwhile( (temp = readdir(dp)) && (temp != NULL) ){
ÂÂÂÂÂÂÂÂ// Make sure we have room for this one
ÂÂÂÂÂÂÂÂif(i == num_entries){
ÂÂÂÂÂÂÂÂÂÂÂÂ++num_entries;
ÂÂÂÂÂÂÂÂÂÂÂÂ*dir = realloc( *dir, num_entries * sizeof(fileBrowser_file) );
ÂÂÂÂÂÂÂÂ}
ÂÂÂÂÂÂÂÂsprintf((*dir)[i].name, "%s/%s", file->name, temp->d_name);
ÂÂÂÂÂÂÂÂ(*dir)[i].offset = 0;
ÂÂÂÂÂÂÂÂ(*dir)[i].sizeÂÂ = fstat.st_size;
ÂÂÂÂÂÂÂÂ(*dir)[i].attrÂÂ = (fstat.st_mode & S_IFDIR) ?
ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ FILE_BROWSER_ATTR_DIR : 0;
ÂÂÂÂÂÂÂÂ++i;
ÂÂÂÂ}

I compiled WiiSX beta 2.0 (the one working with Rhapsody).
Compiling with devkitPPC23 didn't improved the loading speed.
Maybe because WiisX beta2.0 it's still using usb1 so its speed can't be improved.

I'll try with matguitarist WiiSX2.0 USB2 mod
edit: I can't compile your mod. "no rule to make utils/ehcmodule.elf.o"
And I can't use your .o files, they have your desktop path hardcoded.

Well, it was just a test I wanted to do, and check if Rhapsody worked better.
It's working good enough with WiiSX 2.0, I'll play the game with this version until the 2.1 bug is fixed.
 

matguitarist

Well-Known Member
Member
Joined
Oct 14, 2008
Messages
458
Trophies
0
Location
Canada
XP
147
Country
Canada
Cyan said:
Matguitarist linked to a good topic explaining how to make the change.
It needs a little rewrite of the folder listing loop. I didn't change anything yet.


Edit:
I made the change (I don't know if I did it correctly, but it's compiling and listing iso correctly on USB device).
Code:
ÂÂDIR* dp = opendir( file->name );
ÂÂÂÂif(!dp) return FILE_BROWSER_ERROR;
ÂÂÂÂstruct dirent * temp = NULL;
ÂÂÂÂstruct stat fstat;

ÂÂÂÂ// Set everything up to read
ÂÂÂÂchar filename[MAXPATHLEN];
ÂÂÂÂint num_entries = 2, i = 0;
ÂÂÂÂ*dir = malloc( num_entries * sizeof(fileBrowser_file) );
ÂÂÂÂ// Read each entry of the directory
ÂÂÂÂwhile( (temp = readdir(dp)) && (temp != NULL) ){
ÂÂÂÂÂÂÂÂ// Make sure we have room for this one
ÂÂÂÂÂÂÂÂif(i == num_entries){
ÂÂÂÂÂÂÂÂÂÂÂÂ++num_entries;
ÂÂÂÂÂÂÂÂÂÂÂÂ*dir = realloc( *dir, num_entries * sizeof(fileBrowser_file) );
ÂÂÂÂÂÂÂÂ}
ÂÂÂÂÂÂÂÂsprintf((*dir)[i].name, "%s/%s", file->name, temp->d_name);
ÂÂÂÂÂÂÂÂ(*dir)[i].offset = 0;
ÂÂÂÂÂÂÂÂ(*dir)[i].sizeÂÂ = fstat.st_size;
ÂÂÂÂÂÂÂÂ(*dir)[i].attrÂÂ = (fstat.st_mode & S_IFDIR) ?
ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ FILE_BROWSER_ATTR_DIR : 0;
ÂÂÂÂÂÂÂÂ++i;
ÂÂÂÂ}

I compiled WiiSX beta 2.0 (the one working with Rhapsody).
Compiling with devkitPPC23 didn't improved the loading speed.
Maybe because WiisX beta2.0 it's still using usb1 so its speed can't be improved.

I'll try with matguitarist WiiSX2.0 USB2 mod
edit: I can't compile your mod. "no rule to make utils/ehcmodule.elf.o"
And I can't use your .o files, they have your desktop path hardcoded.

Well, it was just a test I wanted to do, and check if Rhapsody worked better.
It's working good enough with WiiSX 2.0, I'll play the game with this version until the 2.1 bug is fixed.

Sorry Cyan, this time i didn't see your post !

You can't compile it because newer version of libogc have ehcmodule include in it.

No more utils folder need. I modify the makefile and the GamecubeMain.cpp to use the latest libogc with IOS58 support.

Sometime the mod work without problem and sometime with other HDD it seem to be slower ...

I prefered to use the old USB2 202 mod who work great for me but here the correct version with source : WiiSX USB2 MOD 05

If i got more time, i'll try to check if i can fix the usb problem with some disk.


CODE#---------------------------------------------------------------------------------
# Clear the implicit built in rules
#---------------------------------------------------------------------------------
.SUFFIXES:
#---------------------------------------------------------------------------------
ifeq ($(strip $(DEVKITPPC)),)
$(error "Please set DEVKITPPC in your environment. export DEVKITPPC=devkitPPC")
endif

include $(DEVKITPPC)/wii_rules

#---------------------------------------------------------------------------------
# TARGET is the name of the output
# BUILD is the directory where object files & intermediate files will be placed
# SOURCES is a list of directories containing source code
# INCLUDES is a list of directories containing extra header files
#---------------------------------------------------------------------------------
TARGETÂÂÂÂÂÂÂÂ:=ÂÂÂÂWiiSX
BUILDÂÂÂÂÂÂÂÂ:=ÂÂÂÂbuild
SOURCESÂÂÂÂÂÂÂÂ:=ÂÂÂÂ. ../cdrmooby28/ ./gc_input/ ./libgui/ ./menu/ ./fileBrowser/ .. ../ppc/ ../PeopsSoftGPU/ ../franspu/ ../utils/

DATAÂÂÂÂÂÂÂÂ:=ÂÂÂÂdataÂÂ

INCLUDESÂÂÂÂ:=ÂÂÂÂ

#---------------------------------------------------------------------------------
# options for code generation
#---------------------------------------------------------------------------------

CFLAGSÂÂÂÂ= -g -O3 -Wall $(MACHDEP) $(INCLUDE) -D__GAMECUBE__ -DWII -DHW_RVL -D__ppc__ \
ÂÂÂÂÂÂÂÂÂÂ-D__GX__ -D_SDL -DEMBEDDED_FONTS \
ÂÂÂÂÂÂÂÂÂÂ-DTHREADED_AUDIO -DRELEASE #-DSHOW_DEBUG #-DDEBUGON #-DPROFILE
ÂÂÂÂÂÂÂÂÂÂ
CXXFLAGSÂÂÂÂ=ÂÂÂÂ$(CFLAGS)

ASFLAGS := -DHW_RVL

LDFLAGSÂÂÂÂ=ÂÂÂÂ-g $(MACHDEP) -Wl,-Map,$(notdir $@).map

#---------------------------------------------------------------------------------
# any extra libraries we wish to link with the project
#---------------------------------------------------------------------------------
LIBSÂÂÂÂ:=ÂÂÂÂ-laesnd -ldi -liso9660 -lm -lfat -ldb -lwiiuse -lbte -logc -lz -ltinysmb

#---------------------------------------------------------------------------------
# list of directories containing libraries, this must be the top level containing
# include and lib
#---------------------------------------------------------------------------------
LIBDIRSÂÂÂÂ:= $(PORTLIBS)

#---------------------------------------------------------------------------------
# no real need to edit anything past this point unless you need to add additional
# rules for different file extensions
#---------------------------------------------------------------------------------
ifneq ($(BUILD),$(notdir $(CURDIR)))
#---------------------------------------------------------------------------------

export OUTPUTÂÂÂÂ:=ÂÂÂÂ$(CURDIR)/$(TARGET)

export VPATHÂÂÂÂ:=ÂÂÂÂ$(foreach dir,$(SOURCES),$(CURDIR)/$(dir)) \
ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ$(foreach dir,$(DATA),$(CURDIR)/$(dir))

export DEPSDIRÂÂÂÂ:=ÂÂÂÂ$(CURDIR)/$(BUILD)

#---------------------------------------------------------------------------------
# automatically build a list of object files for our project
#---------------------------------------------------------------------------------
CFILESÂÂÂÂÂÂÂÂ:=ÂÂÂÂ$(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c)))
CPPFILESÂÂÂÂ:=ÂÂÂÂ$(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp)))
sFILESÂÂÂÂÂÂÂÂ:=ÂÂÂÂ$(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s)))
SFILESÂÂÂÂÂÂÂÂ:=ÂÂÂÂ$(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.S)))
BINFILESÂÂÂÂ:=ÂÂÂÂ$(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.*)))

#---------------------------------------------------------------------------------
# use CXX for linking C++ projects, CC for standard C
#---------------------------------------------------------------------------------
ifeq ($(strip $(CPPFILES)),)
ÂÂÂÂexport LDÂÂÂÂ:=ÂÂÂÂ$(CC)
else
ÂÂÂÂexport LDÂÂÂÂ:=ÂÂÂÂ$(CXX)
endif

export OFILESÂÂÂÂ:=ÂÂÂÂ$(addsuffix .o,$(BINFILES)) \
ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ$(CPPFILES:.cpp=.o) $(CFILES:.c=.o) \
ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ$(sFILES:.s=.o) $(SFILES:.S=.o)

#---------------------------------------------------------------------------------
# build a list of include paths
#---------------------------------------------------------------------------------
export INCLUDEÂÂÂÂ:=ÂÂÂÂ$(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) \
ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ$(foreach dir,$(LIBDIRS),-I$(dir)/include) \
ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ-I$(CURDIR)/$(BUILD) \
ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ-I$(LIBOGC_INC) \
ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ-I$(DEVKITPRO)/libogc/include, -I$(DEVKITPRO)/libfat/libogc/include

#---------------------------------------------------------------------------------
# build a list of library paths
#---------------------------------------------------------------------------------
export LIBPATHSÂÂÂÂ:=ÂÂÂÂ$(foreach dir,$(LIBDIRS),-L$(dir)/lib) \
ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ-L$(LIBOGC_LIB) \
ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ-L$(DEVKITPRO)/libogc/lib/wii, -L$(DEVKITPRO)/libfat/libogc/lib/wii

export OUTPUTÂÂÂÂ:=ÂÂÂÂ$(CURDIR)/$(TARGET)
.PHONY: $(BUILD) clean

#---------------------------------------------------------------------------------
$(BUILD):
ÂÂÂÂ@[ -d $@ ] || mkdir -p $@
ÂÂÂÂ@$(MAKE) --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile_Wii
ÂÂÂÂ@echo creating ... $(notdir $(OUTPUT)).dol
ÂÂÂÂ@$(DEVKITPPC)/bin/elf2dol $(OUTPUT).elf $(OUTPUT).dol

#---------------------------------------------------------------------------------
clean:
ÂÂÂÂ@echo clean ...
ÂÂÂÂ@rm -fr $(BUILD) $(OUTPUT).elf $(OUTPUT).dol

#---------------------------------------------------------------------------------
else

DEPENDSÂÂÂÂ:=ÂÂÂÂ$(OFILES:.o=.d)

#---------------------------------------------------------------------------------
# main targets
#---------------------------------------------------------------------------------
$(OUTPUT).elf: $(OFILES)

#---------------------------------------------------------------------------------
# This rule links in binary data with the .jpg extension
#---------------------------------------------------------------------------------
%.jpg.oÂÂÂÂ:ÂÂÂÂ%.jpg
#---------------------------------------------------------------------------------
ÂÂÂÂ@echo $(notdir $
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    The Real Jdbye @ The Real Jdbye: hoi