And yet you still neglected the one thing I asked you for:
Originally Posted by cmal1492
A report on how the same version of LaunchELF works for you with a normal 8MB MC.
So v3.45, v3.44, etc, all work problem free on the same card ?
If I switch off to an older version, things work fine off that 64MB card with no complaints,
But v3.46 fails badly, and v3.47 fails only slightly (as mentioned later in your post).
Please understand that most of the elf loading code has been completely untouched for a VERY long time. It is identical in all those versions. The only difference in v3.46 (and v3.47) is that I edited the makefile for the loader, so that this loads to a different address in EE RAM. I didn't edit the source file at all. All routines that access MC in all the versions I mentioned above are also completely IDENTICAL.
Another thing to consider is that no-one else has reported similar problems, and many people use Max Memory cards without problems, for the same versions of LaunchELF that you consider bugged. I myself use two 32MB MCs from Datel, and EP has a 64MB MC, presumably same type as yours. Yet even he has not mentioned any problem of the kind you describe, though he too complains about how slow it is.
----- snip ----- re: why you don't suspect your 64MB MC
I understand your reasoning, but I can't agree with it. Other people use similar stuff with same versions and don't see these errors. The difference must be due to something at your end. Either your PS2, or the MC, or the validity of the files you put on it (fresh unpack from healthy ZIP, like I said earlier ?).
The only thing missing for a complete picture of your problems is a report on how similar operations work for you with a normal 8MB MC. If that fails the same way, then the 64MB MC may be OK, but your PS2 is probably not... But if an 8MB MC works perfectly for you, I think it proves that the 64MB MC is responsible for the errors.
Did 3.47 make any changes that should effect its behavior for me;
The total set of changes from v3.46 to v3.47 was to erase one unwanted statement and to modify one delay loop test. Both in the early part of LaunchELF's initialization after bootup. No other code was changed.
For this sort of thing even 1 in 20 is a huge amount.
it seems to be working much better on that plausibly bad card... I get maybe 1 in 20 fails, always when its sat still for awhile or before its done calculating the free space.
As for that long 'free space' calculation delay, I've only heard of it from EP before (who also has a 64MB MC). With my own 32MB cards that delay is less than half a second, so I can never browse to an ELF fast enough to launch it before that operation completes.
It's the same thing really. 'Not an ELF' means the ELF header data was corrupted when read from MC, while 'black screen' means that the program code of the ELF was corrupted when loaded from MC. Same type of corruption for similar kinds of MC access, just affecting different data blocks.
edit:/ for the heck of it I uploaded the uncompressed uL 3.47 to the boot/boot.elf for dev1 (it takes alot longer to boot) on the 64MB card (c'mon, its got the room to have it uncompressed) and I have not been able to get it to say "not an elf" but instead it will black screen on occasion.
If corruption is less frequent now (for unknown reasons), then it makes sense that you get less 'Not an ELF' warnings, as the ELF header is very small compared to the total size of a program, so there is less chance of 'hitting' that small part with random corruption. But if the corruption is very frequent, then you'll get that warning all the time, as you reported before...
I don't understand what you mean. How can 'slowness' be a cause for hardware to malfunction... If that is indeed the case, then that hardware is either broken or badly designed.
I can even switch between sms1.6r3 and uL 3.47 flawlessly (so long as I dont browse to the elf too fast or waaaay to slow)
I'm sorry I can't be more helpful, but I really don't see what I can do.
You report the last two versions as being very different, in something that they use completely identical code for. To me that makes no sense, so I can't do anything sensible about it.
Best regards: dlanor