Hacking Devolution - Public Release

tueidj

I R Expert
OP
Member
Joined
Jan 8, 2009
Messages
2,569
Trophies
0
Website
Visit site
XP
999
Country
The texture problem is mentioned in the first post, I will work on it when I'm ready and there's no need to report any occurrences of it - they are all symptoms of the same problem.
I did mention all the graphics issues were related, so all rainbow/scrambled textures should be fixed.

For anyone interested, when gamecube games send the address of a TLUT (texture look-up table) to the graphics processor they send a single word that looks like this:
0x64XYYYYY
where X is undefined (random) and YYYYY is the physical memory address of the TLUT right shifted by five. The reason X is undefined is because the physical memory address will only use bits covering the range up to 0x01FFFFFF (GC only has 0x01800000 bytes of RAM), when you shift that value right by five it becomes 0x000FFFFF. The GPU knows only those bits are valid and ignores the rest, so the GXInitTlutObj function doesn't bother setting the value of X to anything (it will be whatever was left in memory before).
However in wii mode the presence of MEM2 means the physical address of the TLUT can be in the range up to 0x1FFFFFFF, which gives 0x00FFFFFF when right shifted by five. So the GPU does pay attention to the extra four "X" bits, causing bad values to be read into the TLUT caches. The patch I added ensures that the undefined value "X" is always zero.
 
  • Like
Reactions: 3 people

daxtsu

Well-Known Member
Member
Joined
Jun 9, 2007
Messages
5,627
Trophies
2
XP
5,194
Country
Antarctica
r120 has apparently fixed all visual bugs for me as well(except in MGS, as other have noted). Very nice. Thanks for the great update, Tueidj!

Edit: Thanks for giving us some insight into how the fix works as well. It's always neat to hear about little tidbits like that. Once you discovered where the problem lay, it was a relatively easy patch then, by the sound of it?
 
  • Like
Reactions: 1 person

daxtsu

Well-Known Member
Member
Joined
Jun 9, 2007
Messages
5,627
Trophies
2
XP
5,194
Country
Antarctica
Nice and easy. :P

Also, not that it really needs confirmation, but Metroid Prime 1 is no longer crashing at the pirate frigate, and the palette issues in both MP1 and MP2 are fixed, as I've noted in the Wiki.

I wish I had more games to test. A number of games in the wiki haven't been tested for some time.
 

tueidj

I R Expert
OP
Member
Joined
Jan 8, 2009
Messages
2,569
Trophies
0
Website
Visit site
XP
999
Country
Uh, if people are going to update the compatibility list with the new revision number and notes like "palette issues fixed as of r120" why not just remove the "issues" label instead?
 
  • Like
Reactions: 6 people

wiismodrome

flubber
Member
Joined
Feb 7, 2012
Messages
553
Trophies
1
XP
142
Country
Sweden
For anyone interested, when gamecube games send the address of a TLUT (texture look-up table) to the graphics processor they send a single word that looks like this:
0x64XYYYYY
where X is undefined and YYYYY is the physical memory address of the TLUT right shifted by five. The reason X is undefined is because the physical memory address will only use bits covering the range up to 0x01FFFFFF (GC only has 0x01800000 bytes of RAM), when you shift that value right by five it becomes 0x000FFFFF. The GPU knows only those bits are valid and ignores the rest, so the GXInitTlutObj function doesn't bother setting the value of X to anything (it will be whatever was left in memory before).
However in wii mode the presence of MEM2 means the physical address of the TLUT can be in the range up to 0x1FFFFFFF, which gives 0x00FFFFFF when right shifted by five. So the GPU does pay attention to the extra four "X" bits, causing bad values to be read into the TLUT caches. The patch I added ensures that the undefined value "X" is always zero.
Although perhaps not very useful for end users, I find this sort of stuff fascinating. Always cool to get an explanation of a problem and how it was fixed. Will have to try some of the games which had corrupted graphics... expect that they will be fixed.
 

wiismodrome

flubber
Member
Joined
Feb 7, 2012
Messages
553
Trophies
1
XP
142
Country
Sweden
Cars has issues playing the intro video (intermittent freezing in video/audio) and locks up with a black screen when the game is started. I'll see if I can post a log later sometime.
 

thevoiceover

Well-Known Member
Member
Joined
Sep 23, 2006
Messages
136
Trophies
0
Age
47
XP
321
Country
United States
" - enable paired singles instructions before launching (fixes Midway Arcade 2)"

So, this part in some of the fixes seems to have worked great for not only Midway Arcade 2, but 1 and 3 seem to work properly now... So now Midway Arcade 1 - 3 work (The whole Midway Arcade suite.)

Now time to go through and correct the compatibility chart for many of the fixes in the games I have, Great version update, the core/foundation seems pretty impressive now.


I wish I had more games to test. A number of games in the wiki haven't been tested for some time.

I'm updating a few now... Question though @tueidj - If we already submitted bug on earlier version and things such as textures are fixed now but other issues remain (such as audio) would you like new debug log or does the debug info remain the same on newer versions and you do not need this?
 

Joel Schmidt

Well-Known Member
Member
Joined
Mar 29, 2011
Messages
133
Trophies
0
XP
208
Country
United States
EDIT : Just googled it.
gamecube-keyboard-controller.jpg

is this thing legit?
Whoa! I've never seen one like that before. That thing is ridiculous!
The only Gamecube keyboard that I've seen is the Datel Sharkboard,
which is basically just a PS/2 keyboard to GC adapter with an included keyboard.

It is very legit. I have one..... but it is VERY bulky and not worth the headache.
 

thevoiceover

Well-Known Member
Member
Joined
Sep 23, 2006
Messages
136
Trophies
0
Age
47
XP
321
Country
United States
I wish I had more games to test. A number of games in the wiki haven't been tested for some time.

I'm pretty sure games that have been added to the wiki are gone now, I remember adding a few games that are no longer there (I think Lost Kingdoms, Muppets Cruise, Gun being some of them.) Are you aware of this? I just hate having to do more work for this (adding and testing / making images to test again)!
 

tueidj

I R Expert
OP
Member
Joined
Jan 8, 2009
Messages
2,569
Trophies
0
Website
Visit site
XP
999
Country
I don't recall seeing entries for those games.

Who changed the memcard status for tony hawk 3 US to "no" but put "works perfectly" for the notes? How can it work perfect if there's an issue with memory card emulation (which I doubt) ?
 

thevoiceover

Well-Known Member
Member
Joined
Sep 23, 2006
Messages
136
Trophies
0
Age
47
XP
321
Country
United States
I don't recall seeing entries for those games.


NFL Street 2 locks up at intro / E.A logo boot with distorted audio. Muppets was random, thinking just bad coded game - like SMS

NFL Street 2
Wifi logging is ready
AI clocks configured
Exception vectors placed.
MMU initialized.
IOS was reloaded
stm_eh_fd: 0
stm_imm_fd: 1
GPIO Flags: 00ff8080
IOS communication initialized.
GETLINKSTATUS returned 0
IOCTL_NWC24_STARTUP returned 0 (0)
IOCTL_SO_STARTUP returned 0
IOCTL_SO_GETHOSTID retry 99
net init result: 2 (2)
IOCTL_SO_GETHOSTID retry 98
net init result: 2 (2)
IOCTL_SO_GETHOSTID retry 97
net init result: 2 (2)
IOCTL_SO_GETHOSTID retry 96
net init result: 2 (2)
IOCTL_SO_GETHOSTID retry 95
net init result: 2 (2)
Host IP Address: 10.0.0.17
Socket number: 0
Result from FCNTL: 0
bind returned 0
sendto returned 22
net init result: 3 (2)
Network initialization succeeded.
USB FD: 3
Found 1 USB devices
Device 0: id e71f0021 VID 13FD PID 1340
Device class 00, subclass 00, protocol 00
Number of configurations: 1
Configuration 1 has 1 interfaces
Interface 0 has 2 endpoints
Endpoint 81 Attributes 02 MaxPacket 0200
Endpoint 02 Attributes 02 MaxPacket 0200
Current device configuration: 1
Using config 1, interface 0, alt 0, ep_in 81, ep_out 02
Device MAX_LUN returned 9: 1
USB device reset returned 8
Cleared USB storage device error status
LUN 0 is a Direct Access device
USB_MS sector size for LUN 0: 512, max LBA: 488397167
Using storage device: "USB Generic External ", serial 34343934
MBR partition offset: 00000800
MBR partition offset: 00000000
MBR partition offset: 00000000
MBR partition offset: 00000000
Found a FAT partition at sector 2048 (1)
Number of bytes per FAT entry: 4 (FAT32)
Sectors per cluster: 64 (32K)
FAT1 first sector: 2080
FAT2 first sector: 61684
Root cluster / sector: 2 / 121288
First Data sector: 121288
End sector boundary: 488394752
Total number of clusters: 7629272
Cluster for MEMCARD file: 0 (121160)
Specified cluster for iso file: 005A6826
ISO file found: GN7E Disc 0
Checking file fat chain...
Total allocated size of file: 1459978240 bytes in 2851520 sectors
Result: 1 fragments
Date of Apploader: 2003/04/17
AppStart: 81200258, rounded total_size 00001960
Apploader start: 81200258
Apploader begin 81200278, load 81200298, finish 812002B8
Apploader Initialized. $Revision: 32 $.
This Apploader built Apr 17 2003 12:46:20
app address: 81201800, app section size 00000020, app offset 00000420
app address: 81201940, app section size 00000020, app offset 00000440
app address: 817FDA00, app section size 00002000, app offset 00000440
app address: 81201820, app section size 00000100, app offset 0001F700
app address: 80003100, app section size 000003A0, app offset 0001F800
app address: 800034A0, app section size 00286580, app offset 0001FBA0
app address: 80289A20, app section size 00000260, app offset 002A6120
app address: 80289C80, app section size 00038D60, app offset 002A6380
app address: 802C2A00, app section size 00043AC0, app offset 002DF0E0
app address: 803EA2A0, app section size 00002340, app offset 00322BA0
app address: 803ED6A0, app section size 00000E20, app offset 00324EE0
app address: 817FFA00, app section size 00000600, app offset 00325D00
apploader finished, GAME Entry point: 80003100
Patching memory card unlock @ C02596BC
<< Dolphin SDK - EXI release build: Apr 17 2003 12:33:17 (0x2301) >>
<< Dolphin SDK - SI release build: Apr 17 2003 12:33:19 (0x2301) >>
New AR_SIZE: 0043 (80239a68)
Passing direct ARAM request: 01000000 00000000 00000020 (80239adc)
Passing direct ARAM request: 01000000 00000000 00000020 (80239b24)
Set DBAT0U to 00000000 (0023bb48 00081002)
Set DBAT0L to 00000002 (0023bb4c 00081002)
Set DBAT0U to 800001ff (0023bb50 00081002)
Set IBAT0U to 00000000 (0023bb58 00081002)
Set IBAT0L to 00000002 (0023bb5c 00081002)
Set IBAT0U to 800001ff (0023bb60 00081002)
Set DBAT2U to 00000000 (0023bb68 00081002)
Set DBAT2L to 01000002 (0023bb6c 00081002)
Set DBAT2U to 810000ff (0023bb70 00081002)
Set IBAT2U to 00000000 (0023bb78 00081002)
Set IBAT2L to 01000002 (0023bb7c 00081002)
Set IBAT2U to 810000ff (0023bb80 00081002)

Dolphin OS
Kernel built : Apr 17 2003 12:33:06
Console Type : Development HW-1 (10000002)
Memory 24 MB
Arena : 0x803fe4c0 - 0x817ffa00
<< Dolphin SDK - OS release build: Apr 17 2003 12:33:06 (0x2301) >>
DSI while overwriting NOP: 80647000
<< Dolphin SDK - DVD release build: Apr 22 2003 15:49:00 (0x2301) >>
Final code page was loaded as data: 80289000
Found AXSetVoiceAddr @ C0289198 3bfd01a6
<< Dolphin SDK - VI release build: Apr 17 2003 12:33:22 (0x2301) >>
Patched rlwinm for tlbie @ C0245B14
Patched tlbie @ C0245B1C
Patched tlbie @ C0245EEC
Patched tlbie @ C0245EF4
Patched tlbie @ C0245EFC
Patched tlbie @ C0245F04
Patched tlbie @ C0245F0C
Patched tlbie @ C0245F14
Patched tlbie @ C0245F1C
Patched tlbie @ C0245F24
Patched mfspr SDR1 @ C0245F54
Patched mtspr SDR1 @ C0245FA4
mtspr sr7, r3 @ 80245F48 (00000000)
mtspr SDR1,r4 @ 00245FA4 (00400000)
Patched AR_GetBaseAddress @ C02483D4
<< Dolphin SDK - AR release build: Apr 17 2003 12:33:55 (0x2301) >>
Performing AR_Init fix-up 0 @ 8024838C
New AR_SIZE: 0063 (802484f0)
Passing direct ARAM request: 803fe280 01000000 80000020 (80248654)
Passing direct ARAM request: 803fe340 01000000 00000020 (80248700)
AR_CheckSize fixup @ 80248704 - 19
Passing direct ARAM request: 803fe2c0 01000000 80000020 (802487c0)
<< Dolphin SDK - ARQ release build: Apr 17 2003 12:33:56 (0x2301) >>
<< Dolphin SDK - CARD release build: Apr 17 2003 12:34:19 (0x2301) >>
<< Dolphin SDK - DSP release build: Apr 17 2003 12:34:16 (0x2301) >>
Patched GXInitTlutObj @ C0250614
<< Dolphin SDK - GX release build: Apr 21 2003 14:55:46 (0x2301) >>
Fixing up AR_GetBaseAddress using EA patch1 (8027342c)
< Dolphin SDK - AI release build: Apr 17 2003 12:33:54 (0x2301) >>
<< Dolphin SDK - AX release build: Apr 17 2003 12:33:57 (0x2301) >>
Power Button press detected!
Jumping to HBC stub..

lockup 2 seemed different like went further
Wifi logging is ready
AFound 1 USB devices
Device 0: id e71f0021 VID 13FD PID 1340
evice class 00, subclass 00, protocol 00
Number of configurations: 1
Configuration 1 has 1 interfaces
Interface 0 has 2 endpoints
Endpoint 81 Attributes 02 MaxPacket 0200
Endpoint 02 Attributes 02 MaxPacket 0200
Current device configuration: 1
Using config 1, interface 0, alt 0, ep_in 81, ep_out 02
Device MAX_LUN returned 9: 1
USB device reset returned 8
Cleared USB storage device error status
LUN 0 is a Direct Access device
USB_MS sector size for LUN 0: 512, max LBA: 488397167
Using storage device: "USB Generic External ", serial 34343934
MBR partition offset: 00000800
MBR partition offset: 00000000
MBR partition offset: 00000000
MBR partition offset: 00000000
Found a FAT partition at sector 2048 (1)
Number of bytes per FAT entry: 4 (FAT32)
Sectors per cluster: 64 (32K)
FAT1 first sector: 2080
FAT2 first sector: 61684
Root cluster / sector: 2 / 121288
First Data sector: 121288
End sector boundary: 488394752
Total number of clusters: 7629272
Specified cluster for memcard file: 00662BAC
Cluster for MEMCARD file: 6695852 (428655688)
Checking file fat chain...
otal allocated size of file: 16777216 bytes in 32768 sectors
MEMCARD has 1 fragments
memcard serial: 00000000 00000000 00000000
Memory card emulation activated (80)
Specified cluster for iso file: 005A6826
ISO file found: GN7E Disc 0
Checking file fat chain...
Total allocated size of file: 1459978240 bytes in 2851520 sectors
Result: 1 fragments
Date of Apploader: 2003/04/17
AppStart: 81200258, rounded total_size 00001960
Apploader start: 81200258
Apploader begin 81200278, load 81200298, finish 812002B8
Apploader Initialized. $Revision: 32 $.
This Apploader built Apr 17 2003 12:46:20
app address: 81201800, app section size 00000020, app offset 00000420
app address: 81201940, app section size 00000020, app offset 00000440
app address: 817FDA00, app section size 00002000, app offset 00000440
app address: 81201820, app section size 00000100, app offset 0001F700
app address: 80003100, app section size 000003A0, app offset 0001F800
app address: 800034A0, app section size 00286580, app offset 0001FBA0
app address: 80289A20, app section size 00000260, app offset 002A6120
app address: 80289C80, app section size 00038D60, app offset 002A6380
app address: 802C2A00, app section size 00043AC0, app offset 002DF0E0
app address: 803EA2A0, app section size 00002340, app offset 00322BA0
app address: 803ED6A0, app section size 00000E20, app offset 00324EE0
app address: 817FFA00, app section size 00000600, app offset 00325D00
apploader finished, GAME Entry point: 80003100
Patching memory card unlock @ C02596BC
<< Dolphin SDK - EXI release build: Apr 17 2003 12:33:17 (0x2301) >>
<< Dolphin SDK - SI release build: Apr 17 2003 12:33:19 (0x2301) >>
Patching SRAM read to 003A3AC0 for slot A memory card emulation
New AR_SIZE: 0043 (80239a68)
Passing direct ARAM request: 01000000 00000000 00000020 (80239adc)
Passing direct ARAM request: 01000000 00000000 00000020 (80239b24)
Set DBAT0U to 00000000 (0023bb48 00081002)
Set DBAT0L to 00000002 (0023bb4c 00081002)
Set DBAT0U to 800001ff (0023bb50 00081002)
Set IBAT0U to 00000000 (0023bb58 00081002)
Set IBAT0L to 00000002 (0023bb5c 00081002)
Set IBAT0U to 800001ff (0023bb60 00081002)
Set DBAT2U to 00000000 (0023bb68 00081002)
Set DBAT2L to 01000002 (0023bb6c 00081002)
Set DBAT2U to 810000ff (0023bb70 00081002)
Set IBAT2U to 00000000 (0023bb78 00081002)
Set IBAT2L to 01000002 (0023bb7c 00081002)
Set IBAT2U to 810000ff (0023bb80 00081002)

Dolphin OS
Kernel built : Apr 17 2003 12:33:06
Console Type : Development HW-1 (10000002)
Memory 24 MB
Arena : 0x803fe4c0 - 0x817ffa00
<< Dolphin SDK - OS release build: Apr 17 2003 12:33:06 (0x2301) >>
<< Dolphin SDK - DVD release build: Apr 22 2003 15:49:00 (0x2301) >>
Final code page was loaded as data: 80289000
Found AXSetVoiceAddr @ C0289198 3bfd01a6
<< Dolphin SDK - VI release build: Apr 17 2003 12:33:22 (0x2301) >>
Patched rlwinm for tlbie @ C0245B14
Patched tlbie @ C0245B1C
Patched tlbie @ C0245EEC
Patched tlbie @ C0245EF4
Patched tlbie @ C0245EFC
Patched tlbie @ C0245F04
Patched tlbie @ C0245F0C
Patched tlbie @ C0245F14
Patched tlbie @ C0245F1C
Patched tlbie @ C0245F24
Patched mfspr SDR1 @ C0245F54
Patched mtspr SDR1 @ C0245FA4
mtspr sr7, r3 @ 80245F48 (00000000)
mtspr SDR1,r4 @ 00245FA4 (00400000)
Patched AR_GetBaseAddress @ C02483D4
<< Dolphin SDK - AR release build: Apr 17 2003 12:33:55 (0x2301) >>
Performing AR_Init fix-up 0 @ 8024838C
New AR_SIZE: 0063 (802484f0)
Passing direct ARAM request: 803fe280 01000000 80000020 (80248654)
Passing direct ARAM request: 803fe340 01000000 00000020 (80248700)
AR_CheckSize fixup @ 80248704 - 19
Passing direct ARAM request: 803fe2c0 01000000 80000020 (802487c0)
<< Dolphin SDK - ARQ release build: Apr 17 2003 12:33:56 (0x2301) >>
<< Dolphin SDK - CARD release build: Apr 17 2003 12:34:19 (0x2301) >>
<< Dolphin SDK - DSP release build: Apr 17 2003 12:34:16 (0x2301) >>
Patched GXInitTlutObj @ C0250614
<< Dolphin SDK - GX release build: Apr 21 2003 14:55:46 (0x2301) >>
Patching memory card write timeout period @ C0253A54
Patching memory card write timeout period @ C0253E00
Fixing up AR_GetBaseAddress using EA patch1 (8027342c)
<< Dolphin SDK - AI release build: Apr 17 2003 12:33:54 (0x2301) >>
<< Dolphin SDK - AX release build: Apr 17 2003 12:33:57 (0x2301) >>
<< Dolphin SDK - PAD release build: Apr 17 2003 12:33:44 (0x2301) >>
Power Button press detected!
Jumping to HBC stub...
 

buvk

Well-Known Member
Newcomer
Joined
Oct 7, 2007
Messages
67
Trophies
0
XP
230
Country
Canada
Who changed the memcard status for tony hawk 3 US to "no" but put "works perfectly" for the notes? How can it work perfect if there's an issue with memory card emulation (which I doubt) ?

sorry, that was me. first time editing the wiki... fixed now
 

Bryon15

Well-Known Member
Member
Joined
Aug 9, 2010
Messages
1,282
Trophies
0
Age
39
Location
united states
XP
1,896
Country
United States
All of a sudden it's taking games a really long time to load for me. When I go into devolution and press A to start a game I get a black screen for like two minutes. And then the game loads. It wasn't like this before. It used to take a couple seconds. What happened?
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • Psionic Roshambo @ Psionic Roshambo:
    Biker Mice from Mars needed a Sequel, Angry Hamsters from Uranus
  • T @ Texasauras:
    uh bro i was just asking have you seen these, help me look
  • T @ Texasauras:
    its on amazon
  • Psionic Roshambo @ Psionic Roshambo:
    Download Batocera make it your own
    +1
  • Psionic Roshambo @ Psionic Roshambo:
    If you want GC PS2 Wii stuff like that use a PC
    +1
  • Xdqwerty @ Xdqwerty:
    @Psionic Roshambo, i also use my tv stick to watch YouTube and streaming services
    +1
  • BigOnYa @ BigOnYa:
    Psi those play well on the Pi5 now...
  • BigOnYa @ BigOnYa:
    @Xdqwerty yep that's what I use my stick for most anymore, streaming tv shows, movies. or even youtube. Or doing kens mum.
    +1
  • K3Nv2 @ K3Nv2:
    RG Cube is going to be good for ps2 if it's $100
    +1
  • Xdqwerty @ Xdqwerty:
    @BigOnYa, and since the default emulator is below average i downloaded some "replacements" like snes9x for snes games for example
    +1
  • Xdqwerty @ Xdqwerty:
    And I also have my ps3
    +1
  • BigOnYa @ BigOnYa:
    Yea ps3 is a beast still to today compared to most "sticks"
  • K3Nv2 @ K3Nv2:
    If you just want pi for emulation no point when Anbernic releases new shit every two seconds
    +1
  • BigOnYa @ BigOnYa:
    What's really cool about Pi's tho is you can have multiple SD cards with different OS on each SD card and change from say a gaming machine to a full fledged pc if wanted
  • K3Nv2 @ K3Nv2:
    Plus all bios are set up and usually includes at least 128gbs or 64
  • K3Nv2 @ K3Nv2:
    Yeah but if your main goal is just to play n64 and GameCube you can save about $50 and have the portability option
    +1
  • BigOnYa @ BigOnYa:
    True, but on 2 monitors at 4k. Its just want you want really, to each they own.
  • K3Nv2 @ K3Nv2:
    For a kids aspect Anbernic would be the better option they'd probably melt over the price on a good 4k display
    +1
  • BigOnYa @ BigOnYa:
    For that texasroo guy, I'd recommend the Spell and speak as his first system.
    +1
  • K3Nv2 @ K3Nv2:
    So they buy a pi5 kit for about $150 and say a 28" 4k display probably looking around $400 total
  • K3Nv2 @ K3Nv2:
    They'll be getting in the territory of portable Pcs anyway
    +1
  • BigOnYa @ BigOnYa:
    Again you get what you pay for, its like buying a S series for $300 but its only 1440p native, if you want true 4k, gotta get the X model for $500. But yea you right, when moms buying it anyways, you gotta stay cheap.
  • K3Nv2 @ K3Nv2:
    They could use HD out on their TV no real need for a monitor these days tbh the purists will disagree
  • K3Nv2 @ K3Nv2:
    I'm kind of phasing out on the need for wanting all these consoles cool to have but they just become dust build ups
  • BigOnYa @ BigOnYa:
    I here ya there, I have too many myself, and have hard time letting them go, since most of mine I've modded at some point.
    BigOnYa @ BigOnYa: I here ya there, I have too many myself, and have hard time letting them go, since most of mine...