Emuforums.com

Go Back   Emuforums.com > Gamecube Emulation > Dolphin Discussion
Home About Us Register FAQ Members List Calendar Mark Forums Read


Reply
 
LinkBack Thread Tools Display Modes
Old August 15th, 2008   #1 (permalink)
Registered User
 
Join Date: Aug 2008
Location: United States
Posts: 7
Developer help: F-Zero GX


Are there any other developers out there who've taken a look at why F-Zero GX hangs at the login screen? I've just downloaded and compiled Dolphin recently, enabled the "debug ISO bootup" option, and am trying to take a look.

Any help, pointers or techniques would be much appreciated; I'm a professional software developer with experience in assembly (sun sparc and x86) as well as C/C++ (I say this only in the hopes of convincing knowledgeable persons that they won't be wasting their time in helping me out. )

Thanks!

buddh4sack is offline   Reply With Quote
Old August 16th, 2008   #2 (permalink)
Registered User
 
Join Date: Jun 2008
Location: New York
Posts: 216
Where's the "debug ISO bootup" option? Do you mean starting Dolphin with the -d option? Is it an option in the code that can be enabled? In addition to the normal LOG(BOOT, "...") function?

Last edited by John Peterson; August 16th, 2008 at 07:06.
John Peterson is offline   Reply With Quote
Old August 16th, 2008   #3 (permalink)
PrismSub7
 
Join Date: Oct 2007
Location: Netherlands
Posts: 43
Quote:
Originally Posted by buddh4sack View Post
Are there any other developers out there who've taken a look at why F-Zero GX hangs at the login screen?
It's because the TLB isn't emulated.

Issue 103 - dolphin-emu - Google Code
Issue 123 - dolphin-emu - Google Code (dublicate, some more information)
EleQusion is offline   Reply With Quote
Old August 18th, 2008   #4 (permalink)
Registered User
 
Join Date: Aug 2008
Location: United States
Posts: 7
Quote:
Originally Posted by John Peterson View Post
Where's the "debug ISO bootup" option? Do you mean starting Dolphin with the -d option? Is it an option in the code that can be enabled? In addition to the normal LOG(BOOT, "...") function?
No, there doesn't seem to be a command line switch for it. I only found it because the debugger was behaving very strangely when I tried out F-Zero GX; when I tried to step, the PC was jumping all over the place. It turns out that the debugger doesn't go into "step" mode until after the initial iso boot. I changed the following line of code to make it start debugging right away:

Boot.cpp: line 442
Code:
bool CBoot::BootUp(const SCoreStartupParameter& _StartupPara)
{
    const bool bDebugIsoBootup = true;
And thank you, EleQusion, for cluing me in about the TLB. Is there anyone currently working on this effort? Or any specs I could try to read?

(My problem might be occurring earlier than this; my copy of F-Zero GX isn't producing that message... it just loops around the first Sega/Nintendo startup image again and again.
buddh4sack is offline   Reply With Quote
Old August 18th, 2008   #5 (permalink)
PrismSub7
 
Join Date: Oct 2007
Location: Netherlands
Posts: 43
Quote:
Originally Posted by buddh4sack View Post
And thank you, EleQusion, for cluing me in about the TLB. Is there anyone currently working on this effort? Or any specs I could try to read?
As far as I know, nobody is working on TLB. The only documentation is the famous 'Yet another Gamecube Documentation' located Yet another Gamecube Documentation
EleQusion is offline   Reply With Quote
Old August 18th, 2008   #6 (permalink)
so i herd you like emu's?
 
daco's Avatar
 
Join Date: Oct 2007
Location: a country called Belgium
Posts: 647
Quote:
Originally Posted by EleQusion View Post
As far as I know, nobody is working on TLB. The only documentation is the famous 'Yet another Gamecube Documentation' located Yet another Gamecube Documentation
indeed nobody is working on TLB and its last on their todo list.
afaik implanting TLB will decrease speed drasticly
__________________


my DolphinWx rev Builds:
http://www.nyleveia.com/daco/
Njoy with rumble disabled:
32bit clickme and 64bit clickme
daco is offline   Reply With Quote
Old August 18th, 2008   #7 (permalink)
Registered User
 
Join Date: Aug 2008
Location: United States
Posts: 7
Quote:
Originally Posted by EleQusion View Post
As far as I know, nobody is working on TLB. The only documentation is the famous 'Yet another Gamecube Documentation' located Yet another Gamecube Documentation
Awesome; thanks, this is precisely the sort of info I was hoping you experienced guys could point me to. Even if implementing a realtime TLB is not feasible at this point in time, I'm still going to press ahead a bit with it... My interest is probably different than most people here, as I specifically want to analyze and understand the awesome 3-D engine that exists in this particular game.
buddh4sack is offline   Reply With Quote
Old August 18th, 2008   #8 (permalink)
Registered User
 
Join Date: Nov 2007
Location: close enough
Posts: 29
Quote:
The only documentation is the famous 'Yet another Gamecube Documentation' located Yet another Gamecube Documentation
There's better specs somewhere.
Google for a Gekko's specific paired instruction like "ps_rsqrte" and you should find a heavy pdf.
It seams to be the good one, so far... (I've just started to read it)
memberTwo is offline   Reply With Quote
Old August 18th, 2008   #9 (permalink)
Emu author
 
Join Date: May 2003
Posts: 296
The TLB/MMU is similar to that of other PowerPC processors so just read any ppc manual that details the TLB. Or steal code from PearPC.

In any case, it's gonna be SLOW.
ector is offline   Reply With Quote
Old August 18th, 2008   #10 (permalink)
Banned
 
Join Date: Jul 2008
Location: United States
Posts: 253
Quote:
Originally Posted by ector View Post
The TLB/MMU is similar to that of other PowerPC processors so just read any ppc manual that details the TLB. Or steal code from PearPC.

In any case, it's gonna be SLOW.
Wouldn't it just be slow on games that use these features and the ones that do not use TLB at all would not be affected? At least the games that use it would run slow instead of not at all.
Hemi3 is offline   Reply With Quote
Old August 19th, 2008   #11 (permalink)
Registered User
 
Join Date: Jun 2008
Location: New York
Posts: 216
Quote:
Originally Posted by ector View Post
In any case, it's gonna be SLOW.
Why will it be slow if it works as usual on the GameCube? Can't you recompile these instructions as you do with the other instructions? Could you elaborate?
John Peterson is offline   Reply With Quote
Old August 19th, 2008   #12 (permalink)
Registered User
 
Join Date: Aug 2008
Location: United States
Posts: 7
Quote:
Originally Posted by John Peterson View Post
Why will it be slow if it works as usual on the GameCube? Can't you recompile these instructions as you do with the other instructions? Could you elaborate?
If I learn enough, I'll post everything I know.

I'm curious about another issue; in the F-Zero GX iso, there are a lot of ".lz" files... I'm guessing this is standard LZ77 compression, but I'm not having any luck decompressing them. Any ideas? Thanks!
buddh4sack is offline   Reply With Quote
Old August 19th, 2008   #13 (permalink)
Emu author
 
Join Date: May 2003
Posts: 296
Quote:
Originally Posted by John Peterson View Post
Why will it be slow if it works as usual on the GameCube? Can't you recompile these instructions as you do with the other instructions? Could you elaborate?
We have to make it cause interrupts on wrong memory accesses. This means that we can't compile stuff into blocks anymore, making it impossible to use the JIT.
ector is offline   Reply With Quote
Old August 20th, 2008   #14 (permalink)
Registered User
 
Join Date: Dec 2006
Location: ß
Posts: 341
Quote:
Originally Posted by buddh4sack View Post
If I learn enough, I'll post everything I know.

I'm curious about another issue; in the F-Zero GX iso, there are a lot of ".lz" files... I'm guessing this is standard LZ77 compression, but I'm not having any luck decompressing them. Any ideas? Thanks!
check their headers in a hex editor.


also, tlb is ugly and scary
__________________
AMD X2 5200+(65Watt)@3.2GHz | GTX280 | 4GB RAM | Vista Ultimate x64
shuffle2 is offline   Reply With Quote
Old August 20th, 2008   #15 (permalink)
....
 
mudlord's Avatar
 
Join Date: Feb 2007
Location: not that you need to know....
Posts: 1,584
Isn't F Zero GX by Nintendo?

If so, Yaz0 compression might be used (if I am not mistaken, if it really is a Nintendo EAD production).
mudlord is offline   Reply With Quote
Old August 20th, 2008   #16 (permalink)
hcs
Registered User
 
hcs's Avatar
 
Join Date: May 2005
Location: Austin, TX
Posts: 27
F-Zero GX was developed by Sega, actually. Thus the predilection for ADX...
hcs is offline   Reply With Quote
Old August 20th, 2008   #17 (permalink)
Just an Emu Nerd.
 
NexXxus's Avatar
 
Join Date: Jan 2006
Location: Cologne, Germany
Posts: 3,467
errm wasn't f-zero on an GD-R ?
ah no that was f-zero AX ...
__________________
My System: C2D E6700 @2.67GHz | Asus P5W DH Deluxe | 4GB DDR2 800 | GeForce 8800GT Extreme
My EeePC 901 white: Intel Atom 1.6ghz | 2GB DDR2 667@533 | 4GB Main SSD | 64GB Additional SSD! | WinXP Home SP3 | 16GB Transcend SD | Logitech NX50 Laser Mouse

My FFXII GSdx Highres Screenshot Gallery (link fixed!) | mixed pcsx2 screenshots

Get the latest GSdx here and ZeroGS here
If you search for pcsx2 betas, look here (but no support in the forums for it!)
Tutorial: Hardware Antialiasing in PCSX2 (DX9 only)
NexXxus is offline   Reply With Quote
Old August 20th, 2008   #18 (permalink)
Registered User
 
Join Date: Aug 2008
Location: United States
Posts: 7
Quote:
Originally Posted by hcs View Post
F-Zero GX was developed by Sega, actually. Thus the predilection for ADX...
Actually, it was co-developed by a Sega subsidiary (AV Entertainment) with Nintendo (it's still strange to think of those two cooperating on a project). Shigeru Miyamoto (of Mario fame) was the lead producer on the project.


I did look for a header in the .lz files; some of them are even nicely named *.arc.lz, so I know that they should decompress to something that has the arc magic number in them... but there seems to be no common header at all.

I'm still poking around all the files; since this is the first GameCube ISO I've tried to dissect, I'm not sure what's "standard" and what's not. From inspecting files in the &&SystemData data directory (AppLoader.ldr and Start.dol) I can see they used the Metrowerks Power PC kernel, and there are functions for reading ARC files in there. I'll need to understand the boot process a bit more; I'm busy checking out Core/Source/Boot/Boot.cpp right now.
buddh4sack is offline   Reply With Quote
Old August 20th, 2008   #19 (permalink)
hcs
Registered User
 
hcs's Avatar
 
Join Date: May 2005
Location: Austin, TX
Posts: 27
I'd say "I stand corrected", but I'm going to cling to the fact that what I said wasn't technically wrong
hcs is offline   Reply With Quote
Old August 20th, 2008   #20 (permalink)
Registered User
 
Join Date: Aug 2008
Location: United States
Posts: 7
Quote:
Originally Posted by hcs View Post
I'd say "I stand corrected", but I'm going to cling to the fact that what I said wasn't technically wrong
Oh, I didn't mean to seem like I was nitpicking; I just find it fascinating that Sega and Nintendo, who were such intense rivals for all my early gaming years, actually teamed up on something.

And I see that the first thing called from the iso is at address 0x20 of the AppLoader.ldr file, so I've got a good place to start my analysis.

Last edited by buddh4sack; August 20th, 2008 at 19:04.
buddh4sack is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

All times are GMT. The time now is 11:01.

© 2006 - 2008 Emu Forums | About Emu Forums | Legal | A member of the Crowdgather Forum Community


Powered by vBulletin® Version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.2.0 RC5