Swiss 0.1

Discuss one of the most feature filled GameCube applications here :)
Locked
User avatar
wii_HD
Posts: 263
Joined: Tue Mar 08, 2011 8:27 pm
Location: United KIngdom

Re: Swiss 0.1

Post by wii_HD » Tue Apr 19, 2011 4:20 pm

Using the second test Swiss.

Like Hells Guardian - Read patchable and likely to boot are green - but I get black screen - no logo - no speech - nada.

Tried three times with the same outcome.
Playing - Super Mario Sunshine - DariusBurst CS - Hotline Miami 2 - Rpi2 Lakka - X360 BurnOut Paradise City
User avatar
emu_kidid
Site Admin
Posts: 4927
Joined: Mon Mar 29, 2010 10:06 am
Location: Australia
Contact:

Re: Swiss 0.1

Post by emu_kidid » Tue Apr 19, 2011 11:05 pm

ok no problem, we're getting closer at least - I'll have to find my NTSC Luigis mansion and figure it out :P

Hells Guardian, the problem is that when swiss crashes in a game, it's dead, so would be your debugger.
Image
User avatar
rod_br
Posts: 20
Joined: Sun Mar 20, 2011 11:16 pm
Location: Brazil

Re: Swiss 0.1

Post by rod_br » Tue Apr 19, 2011 11:57 pm

Hi emu_kidd, my Zelda Wind Waker NTSC on Wii USA is freezing when I press the "up" in d-pad for opening the dungeon map. Any fix for this?

Other players got same bug on brazilian forums

Thanks and congrats again for your work - the game is working perfect, apart from that
Swiss user!
Hells Guardian
Posts: 235
Joined: Sat Feb 12, 2011 9:17 pm

Re: Swiss 0.1

Post by Hells Guardian » Wed Apr 20, 2011 12:25 am

Fair enough. Glad we are getting closer to Luigis mansion working.
User avatar
emu_kidid
Site Admin
Posts: 4927
Joined: Mon Mar 29, 2010 10:06 am
Location: Australia
Contact:

Re: Swiss 0.1

Post by emu_kidid » Wed Apr 20, 2011 12:42 am

rod_br, I will look at this issue, it's near the top of my list :)
Image
biolizard89
Posts: 23
Joined: Mon Apr 18, 2011 2:43 am

Re: Swiss 0.1

Post by biolizard89 » Thu Apr 21, 2011 12:33 am

emu_kidid wrote:ok no problem, we're getting closer at least - I'll have to find my NTSC Luigis mansion and figure it out :P

Hells Guardian, the problem is that when swiss crashes in a game, it's dead, so would be your debugger.
I'm not sure if this applies in this case, but generally the Ocarina debugger traps exceptions, so if the game crashes for any reason, the debugger code handler immediately runs and can dump RAM/registers for further analysis. I imagine there's a good likelihood that this would work when a game crashes in Swiss, as long as the debugger has been loaded beforehand.
User avatar
emu_kidid
Site Admin
Posts: 4927
Joined: Mon Mar 29, 2010 10:06 am
Location: Australia
Contact:

Re: Swiss 0.1

Post by emu_kidid » Thu Apr 21, 2011 12:56 am

biolizard89, that's great then, I thought it wasn't catching exceptions :)
Image
Hells Guardian
Posts: 235
Joined: Sat Feb 12, 2011 9:17 pm

Re: Swiss 0.1

Post by Hells Guardian » Thu Apr 21, 2011 2:27 am

Thats what I had heard so thats why I'd figured the debugger would be an aid to you. However it's been ages since I'd read on the USB Gecko so I knew I may be wrong. Or possibly one of those rare cases where I was actually right. :o
WiiPower
Posts: 127
Joined: Sun May 23, 2010 5:57 pm

Re: Swiss 0.1

Post by WiiPower » Thu Apr 21, 2011 5:57 am

emu_kidid wrote:biolizard89, that's great then, I thought it wasn't catching exceptions :)
Me too. I always thought the exceptions are handled via exception handlers that are located somewhere at 0x80000000-0x80001800.

Code: Select all

/* Copyright 2009 WiiGator. */
/* Based on code from GCOS. */
#include "exception.h"
#include "context.h"
#include "debugprintf.h"
#include "processor.h"
#include "plugin.h"

#ifdef GEKKO_DEBUG

/** Set breakpoint. */
#define SET_IABR(addr) \
	__asm__("mtspr 1010, %1\n"::"r"(0), "r"((addr) | 2));

/** Set data breakpoint. */
#define SET_DABR(addr, flags) \
	__asm__("mtspr 1013, %1\n"::"r"(0), "r"(((addr) & 0xFFFFFFF8) | ((flags) & 0x7)))

void exception_handler_default();
void exception_set_handler(int exception, void (*handler)(int, struct context_s*));

const char* exception_name[15] =
{
	"System Reset", "Machine Check", "DSI", "ISI", "Interrupt", "Alignment", "Program", "Floating Point", "Decrementer", "System Call", "Trace", "Performance", "IABR", "Reserved", "Thermal"
};
#endif

void exception_init(void)
{
#ifdef GEKKO_DEBUG
#ifndef MIOS_PLUGIN /* MIOS have already a debug handler, which prints correct register values. */
	static int initialized;

	/* Install exception handlers for debug purpose. */
	if (!initialized) {
		int i;

		//debug_printf("Initializing exception handlers.\n");
		for (i = 0; i < 15; ++i)
		{
			/* Don't overwrite interrupt, floating point handler and decrmenter, because this is normally used by the game.*/
			if ((i != 4) && (i != 7) && (i != 8)) {
				exception_set_handler(i, exception_handler_default);
			}
		}
		initialized = -1;
	}
#endif
#endif
}

#ifdef GEKKO_DEBUG
void exception_set_handler(int exception, void (*handler)(int, struct context_s*))
{
	/* The game installs an exception handler, which will call the functions in the table at 0x80003000, if exception is recoverable. */
	((void**)0x80003000)[exception] = handler;
}

void exception_handler_default(int exception)
{
	struct context_s* c = (struct context_s*)CONTEXT_CURRENT;

	/* XXX: Caution context structure definition is not correct for all registers!
	 * Only registers R3, R4 and R5 are valid! Other registers are not saved in handler.
	 */
	debug_printf("Exception %s, Caution some GPR values are not correct!\n", exception_name[exception]);
	debug_printf("GPR00 %x GPR08 %x GPR16 %x GPR24 %x\n", c->GPR[0], c->GPR[8], c->GPR[16], c->GPR[24]);
	debug_printf("GPR01 %x GPR09 %x GPR17 %x GPR25 %x\n", c->GPR[1], c->GPR[9], c->GPR[17], c->GPR[25]);
	debug_printf("GPR02 %x GPR10 %x GPR18 %x GPR26 %x\n", c->GPR[2], c->GPR[10], c->GPR[18], c->GPR[26]);
	debug_printf("GPR03 %x GPR11 %x GPR19 %x GPR27 %x\n", c->GPR[3], c->GPR[11], c->GPR[19], c->GPR[27]);
	debug_printf("GPR04 %x GPR12 %x GPR20 %x GPR28 %x\n", c->GPR[4], c->GPR[12], c->GPR[20], c->GPR[28]);
	debug_printf("GPR05 %x GPR13 %x GPR21 %x GPR29 %x\n", c->GPR[5], c->GPR[13], c->GPR[21], c->GPR[29]);
	debug_printf("GPR06 %x GPR14 %x GPR22 %x GPR30 %x\n", c->GPR[6], c->GPR[14], c->GPR[22], c->GPR[30]);
	debug_printf("GPR07 %x GPR15 %x GPR23 %x GPR31 %x\n", c->GPR[7], c->GPR[15], c->GPR[23], c->GPR[31]);
	//debug_printf("Exception %x\n", exception);
	debug_printf("LR %x SRR0 %x %x\n", c->LR, c->SRR0, c->SRR1);
	debug_printf("DAR: %x DSISR %x\n", mfspr(19), mfspr(18));

	while (1);
}
#endif
I wonder if adding a memory dump via usb gecko would work for this? I also wonder if i can take some of the memory from 0x80000000-0x80001800 with the "disadvantage" that if the game crashes, it crashes.
biolizard89
Posts: 23
Joined: Mon Apr 18, 2011 2:43 am

Re: Swiss 0.1

Post by biolizard89 » Thu Apr 21, 2011 6:28 am

Well, I have observed that when a game crashes and I have Ocarina enabled, I'm able to look at registers and RAM via USB Gecko. More skilled hackers than I report that they are even able to modify registers via USB Gecko and cause the game to uncrash. I assume this is done by trapping exceptions, although that's just my assumption. (Is there any other way that could work? I know the USB Gecko can't trigger exceptions, so clearly the code handler runs while the game is crashed....)
User avatar
emu_kidid
Site Admin
Posts: 4927
Joined: Mon Mar 29, 2010 10:06 am
Location: Australia
Contact:

Re: Swiss 0.1

Post by emu_kidid » Thu Apr 21, 2011 1:37 pm

problem is when things crash it's crashed in my EXI code and the bus is left a mess.. still, the usbgecko might be ok to communicate
Image
panmusic
Posts: 81
Joined: Thu Mar 03, 2011 2:14 pm

Re: Swiss 0.1

Post by panmusic » Mon Apr 25, 2011 10:10 am

Emu_kidid,any news from the development front?Any progress about Luigi's Mansion freezing,video compatibility etc. ?
It is awfully quite the last few days... :-(
User avatar
emu_kidid
Site Admin
Posts: 4927
Joined: Mon Mar 29, 2010 10:06 am
Location: Australia
Contact:

Re: Swiss 0.1

Post by emu_kidid » Mon Apr 25, 2011 3:37 pm

It's been non stop easter/family stuff for the last week for me.. I've been looking at Luigis Mansion NTSC too, nothing yet. I need to do a major overhaul on the front-end to get a proper file browser happening too which is underway.
Image
panmusic
Posts: 81
Joined: Thu Mar 03, 2011 2:14 pm

Re: Swiss 0.1

Post by panmusic » Mon Apr 25, 2011 3:56 pm

That's nice to hear!
Happy Easter!!!
User avatar
infact
Posts: 346
Joined: Tue Mar 29, 2011 4:35 am
Location: Germany

Re: Swiss 0.1

Post by infact » Mon Apr 25, 2011 4:50 pm

emu_kidid wrote:I need to do a major overhaul on the front-end to get a proper file browser happening too which is underway.
So libwiigui is coming?
infact
Image Image
User avatar
emu_kidid
Site Admin
Posts: 4927
Joined: Mon Mar 29, 2010 10:06 am
Location: Australia
Contact:

Re: Swiss 0.1

Post by emu_kidid » Tue Apr 26, 2011 1:40 am

infact, I haven't decided to be honest.. do you guys prefer it?
Image
User avatar
andzlay
Posts: 447
Joined: Thu Jul 08, 2010 12:53 am
Location: Germany

Re: Swiss 0.1

Post by andzlay » Tue Apr 26, 2011 9:38 am

Yes! I don't like the swiss GUI :P With gx it would be lot easier to modify swiss to a version without GUI or whatever. I tried to understand some of the code but the gui stuff you wrote is confusing me... :lol:
User avatar
infact
Posts: 346
Joined: Tue Mar 29, 2011 4:35 am
Location: Germany

Re: Swiss 0.1

Post by infact » Tue Apr 26, 2011 12:09 pm

@andzlay: I dont think it makes any difference, which interface is used for that purpose.
But you are right, the interface emu used until now, adopted gcos stuff, is like 2006 and not bleeding edge.

@emu: Well, libwiigui has pros and cons.
It is serious work at first, but then easy to modify later (do more, write less).
It is in some parts overweight (strip all the wii specific things and the not needed sound effects, etc),
but in other parts it just fits the needs (e.g. great filebrowser).

But when we look at the alternatives (freetypegx, grrlib, ...), it's in some parts the same.

When you intend to use a self created user interface, it can be like reinventing the wheel sometimes. But it will be unique... ;-)

But, it's your choice. You have to be happy with whatever you use. :)

Only thing i can offer is to help you with libwiigui where i can.
infact
Image Image
User avatar
emu_kidid
Site Admin
Posts: 4927
Joined: Mon Mar 29, 2010 10:06 am
Location: Australia
Contact:

Re: Swiss 0.1

Post by emu_kidid » Tue Apr 26, 2011 2:48 pm

I'll give libwiigui a try after I consult with tantric a bit about it :)
Image
User avatar
emu_kidid
Site Admin
Posts: 4927
Joined: Mon Mar 29, 2010 10:06 am
Location: Australia
Contact:

Re: Swiss 0.1

Post by emu_kidid » Wed Apr 27, 2011 3:58 am

people who have been testing Luigis Mansion NTSC (not players choice), is your dump a verified dump? can I get some MD5's? I've seen one floating around online which is bad - it's possible this is the issue.
Image
panmusic
Posts: 81
Joined: Thu Mar 03, 2011 2:14 pm

Re: Swiss 0.1

Post by panmusic » Wed Apr 27, 2011 8:48 am

I personnally dumped my PAL copy of Luigi's Mansion.I am not sure of that helps...
User avatar
infact
Posts: 346
Joined: Tue Mar 29, 2011 4:35 am
Location: Germany

Re: Swiss 0.1

Post by infact » Wed Apr 27, 2011 8:55 am

@panmusic: no, cause it's PAL, the problems are with the NTSC version.
infact
Image Image
panmusic
Posts: 81
Joined: Thu Mar 03, 2011 2:14 pm

Re: Swiss 0.1

Post by panmusic » Wed Apr 27, 2011 9:38 am

infact wrote:@panmusic: no, cause it's PAL, the problems are with the NTSC version.
Sorry for that.But no matter what,my PAL Luigi's Mansion is freezing just the NTSC version...
User avatar
infact
Posts: 346
Joined: Tue Mar 29, 2011 4:35 am
Location: Germany

Re: Swiss 0.1

Post by infact » Wed Apr 27, 2011 11:05 am

No problem, didn't know you have problems with the PAL version.
Have you tried rebuilding the iso with fstfix?
Another Question: What is the checksum for your ISO?

Here is mine:

Code: Select all

FILE: Luigis Mansion PAL.iso
CRC-32: eed631c9
MD4: 31d45203e03ee7977a8745e8d4ade926
MD5: 74a346b8b1cd44ffde7b953b396cec03
SHA-1: 43863419b403627db494f105a197cc5c4de9c9be
infact
Image Image
User avatar
wii_HD
Posts: 263
Joined: Tue Mar 08, 2011 8:27 pm
Location: United KIngdom

Re: Swiss 0.1

Post by wii_HD » Wed Apr 27, 2011 11:10 am

emu_kidid wrote:people who have been testing Luigis Mansion NTSC (not players choice), is your dump a verified dump? can I get some MD5's? I've seen one floating around online which is bad - it's possible this is the issue.
Image

Graspingly - According to wiki - Luigis Mansion is the only GC title with stereoscopic 3D support.
Playing - Super Mario Sunshine - DariusBurst CS - Hotline Miami 2 - Rpi2 Lakka - X360 BurnOut Paradise City
Locked