Swiss 0.1
Swiss 0.1
Well it's finally here - Swiss version 0.1
Please note that from this point on - I'd consider every aspect of this as Work in Progress - and this is why it is open to the public now. Your bug finding and suggestions will be the bloodlines to this project
Background:
Swiss is the software that I've been developing on and off the past few months or so. I've labelled it "Swiss" because it'll hopefully (not initially) boast more features than any other homebrew Gamecube utility out there. It is very losely based on the SD-Boot source but about 90% was re-written
It is 100% open sourced and available online so you can see changes as I make them and I'll be releasing binary versions with every new feature/improvement.
Current Features:
- Load DOL from SD/SDHC/DVD-R/HDD
- Load GCM/ISO from Original Disc/SD/SDHC/DVD-R/HDD
- Multi-Game DVD-R support (Cobra/GCOS)
- Multi-Disc support Original Disc/SD/SDHC/DVD-R/HDD
- Disc Ripping to SD/SDHC/HDD (WIP)
- Region free / Video forcing (480p) (WIP)
- Full cheat engine for all games (update it via SD/SDHC)
*HDD features require a IDE-EXI or homemade adapter
**SD features require a SDGecko or homemade adapter
Definite future features (in order of priority):
- Memory Card Management
- USBGecko/SE support
- IPL/SRAM/DVD-ROM/RAM dumping
- IPL Configuration
IMPORTANT:
- 480P video mode forcing is Work in Progress - it may not work at all yet!
- Disc dumping is known to corrupt some HDD's - still work in progress!
Two disc games:
Two disc games need to be named using the following name pattern:
game-disc1.xxx game-disc2.xxx
example:
resEvil0-disc1.gcm resEvil0-disc2.gcm
Source Download
Binary Download
* If you are using Action Replay or SD Media Launcher - take it out from the drive and replace it with a proper GC disc after you've booted swiss - it will result in better compatibility *
Please note that from this point on - I'd consider every aspect of this as Work in Progress - and this is why it is open to the public now. Your bug finding and suggestions will be the bloodlines to this project
Background:
Swiss is the software that I've been developing on and off the past few months or so. I've labelled it "Swiss" because it'll hopefully (not initially) boast more features than any other homebrew Gamecube utility out there. It is very losely based on the SD-Boot source but about 90% was re-written
It is 100% open sourced and available online so you can see changes as I make them and I'll be releasing binary versions with every new feature/improvement.
Current Features:
- Load DOL from SD/SDHC/DVD-R/HDD
- Load GCM/ISO from Original Disc/SD/SDHC/DVD-R/HDD
- Multi-Game DVD-R support (Cobra/GCOS)
- Multi-Disc support Original Disc/SD/SDHC/DVD-R/HDD
- Disc Ripping to SD/SDHC/HDD (WIP)
- Region free / Video forcing (480p) (WIP)
- Full cheat engine for all games (update it via SD/SDHC)
*HDD features require a IDE-EXI or homemade adapter
**SD features require a SDGecko or homemade adapter
Definite future features (in order of priority):
- Memory Card Management
- USBGecko/SE support
- IPL/SRAM/DVD-ROM/RAM dumping
- IPL Configuration
IMPORTANT:
- 480P video mode forcing is Work in Progress - it may not work at all yet!
- Disc dumping is known to corrupt some HDD's - still work in progress!
Two disc games:
Two disc games need to be named using the following name pattern:
game-disc1.xxx game-disc2.xxx
example:
resEvil0-disc1.gcm resEvil0-disc2.gcm
Source Download
Binary Download
* If you are using Action Replay or SD Media Launcher - take it out from the drive and replace it with a proper GC disc after you've booted swiss - it will result in better compatibility *
Re: Swiss 0.1
Awesome!
Too bad I´m at work atm, but I'll test it as soon as I come home. Thanks a lot for all your work!
Too bad I´m at work atm, but I'll test it as soon as I come home. Thanks a lot for all your work!
"The only thing more dangerous than a hardware guru with a code patch is a programmer with a soldering iron."
Re: Swiss 0.1
same here.Darkmystery wrote:Awesome!
Too bad I´m at work atm, but I'll test it as soon as I come home. Thanks a lot for all your work!
other than that: awesome work mate!
please search before you ask - a lot has been discussed already!
(or use google with "site:gc-forever.com *term*")
http://is.gd/MDmZcr
we also have a wiki filled with knowledge
http://is.gd/dX58Rm
(or use google with "site:gc-forever.com *term*")
http://is.gd/MDmZcr
we also have a wiki filled with knowledge
http://is.gd/dX58Rm
Re: Swiss 0.1
very thanks emukidid, i try test this beautiful homebrew, thanks
-
- Posts: 448
- Joined: Mon Apr 05, 2010 4:11 pm
- Location: Germany
Re: Swiss 0.1
you are at work and can surfe through the net? at my ex workplace they would fire me.
Re: Swiss 0.1
Well, I'm a software programmer. So, sometimes I browse the web for a small while, and then continue programming. I don't think my boss notices, or would mind that.yamaharacer wrote:you are at work and can surfe through the net? at my ex workplace they would fire me.
"The only thing more dangerous than a hardware guru with a code patch is a programmer with a soldering iron."
Re: Swiss 0.1
we are unfiltered, yep.yamaharacer wrote:you are at work and can surfe through the net? at my ex workplace they would fire me.
everyone else is, haha. that a huge plus if you're one of the IT guys
please search before you ask - a lot has been discussed already!
(or use google with "site:gc-forever.com *term*")
http://is.gd/MDmZcr
we also have a wiki filled with knowledge
http://is.gd/dX58Rm
(or use google with "site:gc-forever.com *term*")
http://is.gd/MDmZcr
we also have a wiki filled with knowledge
http://is.gd/dX58Rm
Re: Swiss 0.1
Clearer picture, because I can.
Re: Swiss 0.1
Yippie, found the 1st issue.
Re: Swiss 0.1
let's eliminate some bugs!WiiPower wrote:Yippie, found the 1st issue.
please search before you ask - a lot has been discussed already!
(or use google with "site:gc-forever.com *term*")
http://is.gd/MDmZcr
we also have a wiki filled with knowledge
http://is.gd/dX58Rm
(or use google with "site:gc-forever.com *term*")
http://is.gd/MDmZcr
we also have a wiki filled with knowledge
http://is.gd/dX58Rm
-
- Posts: 448
- Joined: Mon Apr 05, 2010 4:11 pm
- Location: Germany
Re: Swiss 0.1
I cant select anything in swiss. i want to boot a gcm or iso file but it doesnt load. it just stays in the screen and does nothing.
ok it works. but still doesnt load the pal gameboy player disk
wow respect. its faster. the zelda wind waker videos doesnt stock anymore. great work.
ok it works. but still doesnt load the pal gameboy player disk
wow respect. its faster. the zelda wind waker videos doesnt stock anymore. great work.
Re: Swiss 0.1
Awesome Emu, thanks again for all your hard work. will test this out in a bit
Re: Swiss 0.1
I can't compete with component on composite.
Re: Swiss 0.1
emu_kidid, congratulations for the awesome work you've done on Swiss! It's an awesome piece of software!
That being said, the program is still in its infancy, so it's only natural for there to be bugs. I've encountered a few of them and thought I'd share them with you. Keep in mind that I'm using Datel's SD Media Launcher, which means that I'm reading the games from a SD card.
- Sometimes, the program doesn't start. When I load Swiss, the screen goes black and the DVD drive is activated, but no response after that. Other times, I have to press A to get it to start up.
- The only game I've tried so far is Skies of Arcadia, which sadly does not work properly. The game boots just fine, but the problems arise right at the main menu. There's a noticeable sound skip going on at this menu.
But it doesn't end there. While in-game, when I try to access a menu, I immediately get a Disc Read Error. Strangely enough, the music doesn't stop when I get that error.
That's it for now. Again, thanks for this awesome tool!
That being said, the program is still in its infancy, so it's only natural for there to be bugs. I've encountered a few of them and thought I'd share them with you. Keep in mind that I'm using Datel's SD Media Launcher, which means that I'm reading the games from a SD card.
- Sometimes, the program doesn't start. When I load Swiss, the screen goes black and the DVD drive is activated, but no response after that. Other times, I have to press A to get it to start up.
- The only game I've tried so far is Skies of Arcadia, which sadly does not work properly. The game boots just fine, but the problems arise right at the main menu. There's a noticeable sound skip going on at this menu.
But it doesn't end there. While in-game, when I try to access a menu, I immediately get a Disc Read Error. Strangely enough, the music doesn't stop when I get that error.
That's it for now. Again, thanks for this awesome tool!
Re: Swiss 0.1
Oh, this with SDHC and FAT32 support. Please explain what I should do. You say there are no problems with SDGecko and SDHC and it depends on the software.
I'm booting like this. ViperGC -> Cobra plugin -> sdload -> Swiss
I think sdload is the problem, It doesn't find anything on SDHC and just now when I tried to format a normal 2 GB SD in FAT32 I got a RSOD gamecube exception in sdload.
Swiss is too large to fit as a plugin I'm pretty sure even if you compress it. The only other method I could think about that doesn't require to burn a disc every time a new version of Swiss comes out would be to use GCOM and then send the Dol through the BBA. But I don't like that and was even thinking about selling my BBA.
EDIT: Or I could use a normal SD card in sdload, then when swiss loads, before I select the slot I can just try and swap the card to something else?
On another note, I just tried Resident Evil 1 NTSC version. I couldn't get it to boot at all, on any video mode. Auto = black screen, NTSC = black screen, PAL50 = black screen, PAL60 = black screen, 480p = WARNING screen shows at half screen height then black screen. I've tried reformatting my SD card several times so I'm sure it's not a fragmentation issue. This same game worked on Sd-boot 0.4 final without any issues and although I have a new computer now I'm pretty sure it's the same dump. (by the way will Swiss be able to support switching to disc 2 in any way from SD or IDE-EXI?)
EDIT: Oh and Swiss never complained about not having an original disc in the drive. Is it no longer required that the disc is original? Backups works too?
I'm booting like this. ViperGC -> Cobra plugin -> sdload -> Swiss
I think sdload is the problem, It doesn't find anything on SDHC and just now when I tried to format a normal 2 GB SD in FAT32 I got a RSOD gamecube exception in sdload.
Swiss is too large to fit as a plugin I'm pretty sure even if you compress it. The only other method I could think about that doesn't require to burn a disc every time a new version of Swiss comes out would be to use GCOM and then send the Dol through the BBA. But I don't like that and was even thinking about selling my BBA.
EDIT: Or I could use a normal SD card in sdload, then when swiss loads, before I select the slot I can just try and swap the card to something else?
On another note, I just tried Resident Evil 1 NTSC version. I couldn't get it to boot at all, on any video mode. Auto = black screen, NTSC = black screen, PAL50 = black screen, PAL60 = black screen, 480p = WARNING screen shows at half screen height then black screen. I've tried reformatting my SD card several times so I'm sure it's not a fragmentation issue. This same game worked on Sd-boot 0.4 final without any issues and although I have a new computer now I'm pretty sure it's the same dump. (by the way will Swiss be able to support switching to disc 2 in any way from SD or IDE-EXI?)
EDIT: Oh and Swiss never complained about not having an original disc in the drive. Is it no longer required that the disc is original? Backups works too?
.
Re: Swiss 0.1
Tested another game on Swiss, namely Super Smash Bros Melee. This is what I got on my first try:
On my second try, Swiss does the GCM check properly, but when I press A to start the game up, he just gives the error message "Error: OK".
Still haven't managed to get the game running. I'll edit this post if I manage to do so.
On my second try, Swiss does the GCM check properly, but when I press A to start the game up, he just gives the error message "Error: OK".
Still haven't managed to get the game running. I'll edit this post if I manage to do so.
Re: Swiss 0.1
Hmm, i can't boot any games from SD-Gecko. I only tested Wind Waker yet(just black screen when it is supposed to load), so maybe there's a problem with that game, although the old SD Boot beta loads the game from the same sd card. Since i do all my tests on a wii, i'll wait for more results from other people before i start worrying.
Anyways, i noticed that Swiss (always?) says it can't patch seek. And then i looked at the patch code...
Swiss and NeoGamma use different patterns for it, this is NeoGamma's:
And i think i haven't seen nor heard from a game where it couldn't patch seek. Maybe it's the used function to compare the code to find the location where to patch. Here's the one from NeoGamma(a bit more than memcmp thanks to WiiGator):
Ok, i get it, patching seek might not be required at all right now. If, then it would be required by the discless mode, and i think i haven't actually seen a game do it(usb gecko debug output). All in all, this a small issue, but still...
Can somebody try 007 Everything or Nothing via SD Gecko or Ide-Exi? Please only people who are able to load games with it. I want to know if it says it can't patch the read, if yes, i think i might have something.
Anyways, i noticed that Swiss (always?) says it can't patch seek. And then i looked at the patch code...
Swiss and NeoGamma use different patterns for it, this is NeoGamma's:
Code: Select all
static const u32 dvd_seek_original[] = {
0x7c0802a6,
0x90010004,
0x38000000,
0x9421ffe8,
0x93e10014,
0x93c10010,
0x908d9478,
0x3c80cc00,
0x38846000,
0x900d9470,
0x3c00ab00,
0x90040008
};
Code: Select all
#include <stdint.h>
#include <gctypes.h>
#include "codecmp.h"
/** Instruction type lwz rD, d(rA). */
#define INSN_TYPE_LWZ 32
/** Instruction type stw rS, d(rA). */
#define INSN_TYPE_STW 36
/** Instruction b or bl. */
#define INSN_TYPE_B 18
/** Instruction bc. */
#define INSN_TYPE_BC 16
/** This register is used to access fast global variables. */
#define SDA_REG1 2
/** This register is used to access fast global variables. */
#define SDA_REG2 13
/** Compare code and ignore offsets used for r2 or r13. */
int codecmp(void *checkedCode, const u32 *condition, u32 size)
{
u32 *code;
int i;
int numberOfInstructions;
code = (u32 *) checkedCode;
numberOfInstructions = size/sizeof(*condition);
for (i = 0; i < numberOfInstructions; i++) {
u32 type;
u32 rA;
if (condition[i] == 0) {
continue;
}
type = (condition[i] >> (31 - 5)) & 0x1f;
rA = (condition[i] >> (31 - 15)) & 0x1f;
if (((type == INSN_TYPE_LWZ) || (type == INSN_TYPE_STW))
||((rA == SDA_REG1) || (rA == SDA_REG2))) {
/* Don't compare offset, because offset can change each time a program is compiled. */
if ((code[i] & 0xFFFF0000) != (condition[i] & 0xFFFF0000)) {
/* Code is not identical. */
return -1;
}
} else if (type == INSN_TYPE_BC) {
/* Ignore offset for branches. */
if ((code[i] & 0xFFFF0003) != (condition[i] & 0xFFFF0003)) {
/* Code is not identical. */
return -1;
}
} else if (type == INSN_TYPE_B) {
/* Ignore offset for branches. */
if ((code[i] & 0xFC000003) != (condition[i] & 0xFC000003)) {
/* Code is not identical. */
return -1;
}
} else if (code[i] != condition[i]) {
/* Code is not identical. */
return -1;
}
}
return 0;
}
Can somebody try 007 Everything or Nothing via SD Gecko or Ide-Exi? Please only people who are able to load games with it. I want to know if it says it can't patch the read, if yes, i think i might have something.
-
- Posts: 448
- Joined: Mon Apr 05, 2010 4:11 pm
- Location: Germany
Re: Swiss 0.1
swiss on my cube can load wind waker. no problem.
Re: Swiss 0.1
Mario Kart : Double Dash!! works amazing! Thanks for this release, i'm gonna try James Bond nightfire now, i'll tell you guys if my favorite gamecube multiplayer game works!
I have a XenoGC, a SD Media Launcher, a SD Gecko and a IcedCube case for my Nintendo Gamecube
Re: Swiss 0.1
Game boy player start up disc (U) works fine, Star fox assault (Pal) works fine on sdboot, but in swiss after the Hz selection stucks in a black screen, Pokemon box doen't work
Re: Swiss 0.1
Is Star Fox Assault an audio streaming game? If yes, do you happen to know if the game tries to play an audio stream in that moment?Aressi wrote:Game boy player start up disc (U) works fine, Star fox assault (Pal) works fine on sdboot, but in swiss after the Hz selection stucks in a black screen, Pokemon box doen't work
Pokemon Box does something to 0x80001800:
http://www.gc-forever.com/forums/viewto ... p=796#p796
Looks like emu_kidid knows about it, but did not have time to fix it yet. Can you add it to the issues at Google Code so it's officially known and it does not need to be reported again by somebody else?
- deku_scrub
- Posts: 172
- Joined: Thu Apr 01, 2010 7:34 pm
- Location: Balneário Camboriú, Santa Catarina - Brasil
Re: Swiss 0.1
sweeeeeet emu_kidid, sweeeeet
__ deku_scrub __ Wii D3-2 | System 4.3 | HC installed using Smash Stack | WODE Jukebox
Xbox 360 Slim 4GB | 320GB Hacked HDD | x360key
Xbox 360 Slim 4GB | 320GB Hacked HDD | x360key
Re: Swiss 0.1
Yay, thanks emu_kidid. I guess it's testing time
Swiss compatibility list, anyone?
Swiss compatibility list, anyone?