Hacking gelu AKmenu3in1 10_e14

  • Thread starter Thread starter VatoLoco
  • Start date Start date
  • Views Views 4,119
  • Replies Replies 24

VatoLoco

Don't crush that dwarf, hand me the pliers.
Member
Joined
Jan 29, 2008
Messages
2,333
Solutions
3
Reaction score
401
Trophies
2
Age
54
Location
Ya Cant Get There From Here
Website
www.backwoodzstudioz.com
XP
3,815
Country
United States
QUOTE said:
changes in 4.10e14:

!!!ATTENTION!!! THIS IS VERY EXPERIMENTAL FIRMWARE. BACKUP YOUR SAVES AND USE
AT YOUR OWN RISK.

- added support of 64mbit saves in "daigassou! band-brothers dx".
the necessary conditions:
/- game must be runned from microsd card.
/- cluster size at microsd card must be at least 4096 bytes.
/- card speed must be fast or medium. on slow cards possible freezes in game.

- if save type set to no_save, save dont' allocated.
- gba internal sleep: mother 3 support added.
- gba internal sleep: hp - quidditch world cup support added.
- gba internal sleep: prince of persia support added.
- dq5 fix (from official fw)

You can find the download here
 
Worked here, too!
I think the "not blinking dots between the clock numbers" bug of the previous versions of the AKAIO is from gelu's firmware. Can you confirm, VatoLoco?

Tested with:
- AKRPG;
- 4GB MicroSDHC Kingston class4 Taiwan (SD speed 4000);
- 1GB MicroSD Kingston Japan (SD Speed 1300).

GAMEDATA.BIN for AKRPG with gelu fw - updated until 2513
http://rapidshare.com/files/139439693/GAME...l_2513.rar.html
 
So it sounds like an experimental direct-to-SD save write for the RPG? I can't find where he posted the source code.
 
QUOTE said:
logical thinker Posted Today, 02:10 AM

I think the "not blinking dots between the clock numbers" bug of the previous versions of the AKAIO is from gelu's firmware. Can you confirm, VatoLoco?

Hey, that's weird. You are right, there is no blink in the ':' with the gelu OS.
 
the no blink is the latest devkitarm. we've reverted to an earlier version which fixed that. i noticed it too.
sleep function is in for official games that have it. his generic patching routine (from dwedit) doesn't work (it's supposed to enable sleep in any game with L+R+Select).
But games that officially have sleep support seem to work.
Gelu's code is based on his own loading routines, obviously. in porting this code to AKAIO i've hit a snag with the savefilename stuff (his is still based on it all being .nds.sav, as you know we've changed it to a user setting). Also I have a slow MicroSD card so, while the SAV is being created, I cannot confirm if my loading is messed up due to bad code or if it's just my card. I get past the loading screens and then am faced with a black screen.
Norm, wanna take a stab at merging the code?
 
Smiths said:
the no blink is the latest devkitarm. we've reverted to an earlier version which fixed that. i noticed it too.
sleep function is in for official games that have it. his generic patching routine (from dwedit) doesn't work (it's supposed to enable sleep in any game with L+R+Select).
But games that officially have sleep support seem to work.
Gelu's code is based on his own loading routines, obviously. in porting this code to AKAIO i've hit a snag with the savefilename stuff (his is still based on it all being .nds.sav, as you know we've changed it to a user setting). Also I have a slow MicroSD card so, while the SAV is being created, I cannot confirm if my loading is messed up due to bad code or if it's just my card. I get past the loading screens and then am faced with a black screen.
Norm, wanna take a stab at merging the code?

Want to commit your latest code so i can fix yours
tongue.gif
 
z.g. the code in question is valid code, and compiles to less code than the code in revision 213.

Gelu, why use code like
Code:
patchEntry=(u32*)0x238b598; //2
ÂÂÂÂÂÂÂÂpatchEntry[0]=0xe1a00000; // nop
ÂÂÂÂÂÂÂÂpatchEntry=(u32*)0x238b604; //9
ÂÂÂÂÂÂÂÂpatchEntry[0]=0xe1a00000; // nop
ÂÂÂÂÂÂÂÂpatchEntry=(u32*)0x238b614; //11
ÂÂÂÂÂÂÂÂpatchEntry[0]=0xe1a00000; // nop
ÂÂÂÂÂÂÂÂpatchEntry=(u32*)0x238b62c; //12
ÂÂÂÂÂÂÂÂpatchEntry[0]=0xe1a00000; // nop
ÂÂÂÂÂÂÂÂpatchEntry=(u32*)0x238b634; //13
ÂÂÂÂÂÂÂÂpatchEntry[0]=0xe3a00000; // mov r0, #0
ÂÂÂÂÂÂÂÂpatchEntry=(u32*)0x238b650; //14
ÂÂÂÂÂÂÂÂpatchEntry[0]=0xe1a00000; // nop
ÂÂÂÂÂÂÂÂpatchEntry=(u32*)0x238b624; //15
ÂÂÂÂÂÂÂÂpatchEntry[0]=0xe1a00000; // nop

when

Code:
patchEntry=(u32*)0x238b598; //2
ÂÂÂÂÂÂÂÂpatchEntry[0x00]=0xe1a00000; // nop
ÂÂÂÂÂÂÂÂpatchEntry[0x1B]=0xe1a00000; // nop
ÂÂÂÂÂÂÂÂpatchEntry[0x1F]=0xe1a00000; // nop
ÂÂÂÂÂÂÂÂpatchEntry[0x23]=0xe1a00000; // nop
ÂÂÂÂÂÂÂÂpatchEntry[0x25]=0xe1a00000; // nop
ÂÂÂÂÂÂÂÂpatchEntry[0x27]=0xe3a00000; // mov r0, #0
ÂÂÂÂÂÂÂÂpatchEntry[0x2E]=0xe1a00000; // nop

would be more efficient?
 
Normmatt said:
z.g. the code in question is valid codereally? of course using uninitialized variable is a valid code, because it compiled by compiler. but it is not correct code.
Normmatt said:
Gelu, why use code like
{skipped}
when
{skipped}
would be more efficient?Normmatt' why use code like
Code:
patchEntry=(u32*)0x238b598; //2
ÂÂÂÂÂÂÂÂpatchEntry[0x00]=0xe1a00000; // nop
ÂÂÂÂÂÂÂÂpatchEntry[0x1B]=0xe1a00000; // nop
ÂÂÂÂÂÂÂÂpatchEntry[0x1F]=0xe1a00000; // nop
ÂÂÂÂÂÂÂÂpatchEntry[0x23]=0xe1a00000; // nop
ÂÂÂÂÂÂÂÂpatchEntry[0x25]=0xe1a00000; // nop
ÂÂÂÂÂÂÂÂpatchEntry[0x27]=0xe3a00000; // mov r0, #0
ÂÂÂÂÂÂÂÂpatchEntry[0x2E]=0xe1a00000; // nop
when
CODE
patchEntry=(u32*)0x238b598; //2
const u8 shifts[]={0x00,0x1B,0x1F,0x23,0x25,0x2E};
for(u32 ii=0;ii
 
gelu- i dunno if the blinking was truly in the code. we did not have blinking for a while either... and i downgraded to r21 and it was fine.
was odd.
but good work on the BBDX thing.
I don't even play the game or try to care, but I did notice it doesn't let you download songs. says "this card cannot download songs".
rom protection or what?
 
Smiths said:
gelu- i dunno if the blinking was truly in the code. we did not have blinking for a while either... and i downgraded to r21 and it was fine.
was odd.
but good work on the BBDX thing.
I don't even play the game or try to care, but I did notice it doesn't let you download songs. says "this card cannot download songs".
rom protection or what?
Each BBDX has a unique ID and each ID is entitled to download 100 songs. The unique ID is in fact not a piracy prevention, it's simply a Copyright issue regarding how many songs you're allowed to download.
 
Smiths said:
gelu- i dunno if the blinking was truly in the code. we did not have blinking for a while either... and i downgraded to r21 and it was fine.
was odd.
you mean that using old version of devkit for support buggy code is better then correct code?
 
z.g said:
Smiths said:
gelu- i dunno if the blinking was truly in the code. we did not have blinking for a while either... and i downgraded to r21 and it was fine.
was odd.
you mean that using old version of devkit for support buggy code is better then correct code?

nope not even close. but we have to use the old devkit for AKAIO compiling because for some reason unicode fonts are broken with the latest. correct code is always better and i saw that you did and yes, it's definitely more correct.
but until devkitarm 24 is out, we have to use 21 for AKAIO compiling
 
z.g said:
Normmatt said:
z.g. the code in question is valid codereally? of course using uninitialized variable is a valid code, because it compiled by compiler. but it is not correct code.
Normmatt said:
Gelu, why use code like
{skipped}
when
{skipped}
would be more efficient?Normmatt' why use code like
Code:
patchEntry=(u32*)0x238b598; //2
ÂÂÂÂÂÂÂÂpatchEntry[0x00]=0xe1a00000; // nop
ÂÂÂÂÂÂÂÂpatchEntry[0x1B]=0xe1a00000; // nop
ÂÂÂÂÂÂÂÂpatchEntry[0x1F]=0xe1a00000; // nop
ÂÂÂÂÂÂÂÂpatchEntry[0x23]=0xe1a00000; // nop
ÂÂÂÂÂÂÂÂpatchEntry[0x25]=0xe1a00000; // nop
ÂÂÂÂÂÂÂÂpatchEntry[0x27]=0xe3a00000; // mov r0, #0
ÂÂÂÂÂÂÂÂpatchEntry[0x2E]=0xe1a00000; // nop
when
CODE
patchEntry=(u32*)0x238b598; //2
const u8 shifts[]={0x00,0x1B,0x1F,0x23,0x25,0x2E};
for(u32 ii=0;ii
 
Normmatt said:
Because that code is worse than mine. It has too do more reading and has to look the addreses up in a lookup table, it shouldn't be in a loop anyway the loop is small enough to unbundle which gives a nice optimisation and mine takes up less space than your new code and thus produces faster code.really?
result of your code:
Code:
ÂÂÂÂldrÂÂÂÂr1, .L3
ÂÂÂÂldrÂÂÂÂr3, .L3+4
ÂÂÂÂstrÂÂÂÂr1, [r3]
ÂÂÂÂaddÂÂÂÂr3, r3, #108
ÂÂÂÂstrÂÂÂÂr1, [r3]
ÂÂÂÂaddÂÂÂÂr3, r3, #16
ÂÂÂÂstrÂÂÂÂr1, [r3]
ÂÂÂÂaddÂÂÂÂr3, r3, #16
ÂÂÂÂstrÂÂÂÂr1, [r3]
ÂÂÂÂldrÂÂÂÂr2, .L3+8
ÂÂÂÂaddÂÂÂÂr3, r3, #8
ÂÂÂÂstrÂÂÂÂr1, [r3]
ÂÂÂÂaddÂÂÂÂr3, r3, #8
ÂÂÂÂstrÂÂÂÂr2, [r3]
ÂÂÂÂaddÂÂÂÂr3, r3, #28
ÂÂÂÂstrÂÂÂÂr1, [r3]
ÂÂÂÂbxÂÂÂÂlr
.L4:
ÂÂÂÂ.alignÂÂÂÂ2
.L3:
ÂÂÂÂ.wordÂÂÂÂ-509607936
ÂÂÂÂ.wordÂÂÂÂ37270936
ÂÂÂÂ.wordÂÂÂÂ-476053504
mine:
Code:
ÂÂÂÂldrÂÂÂÂr3, .L7
ÂÂÂÂldrÂÂÂÂr1, .L7+4
ÂÂÂÂmovÂÂÂÂr2, r3
ÂÂÂÂaddÂÂÂÂr2, r2, #140
ÂÂÂÂstrÂÂÂÂr1, [r3]
ÂÂÂÂstrÂÂÂÂr1, [r3, #108]
ÂÂÂÂstrÂÂÂÂr1, [r3, #124]
ÂÂÂÂstrÂÂÂÂr1, [r2]
ÂÂÂÂaddÂÂÂÂr2, r2, #8
ÂÂÂÂstrÂÂÂÂr1, [r2]
ÂÂÂÂaddÂÂÂÂr3, r3, #184
ÂÂÂÂldrÂÂÂÂr2, .L7+8
ÂÂÂÂstrÂÂÂÂr1, [r3]
ÂÂÂÂsubÂÂÂÂr3, r3, #28
ÂÂÂÂstrÂÂÂÂr2, [r3]
ÂÂÂÂbxÂÂÂÂlr
.L8:
ÂÂÂÂ.alignÂÂÂÂ2
.L7:
ÂÂÂÂ.wordÂÂÂÂ37270936
ÂÂÂÂ.wordÂÂÂÂ-509607936
ÂÂÂÂ.wordÂÂÂÂ-476053504

QUOTEBy the way whats the main problem with adding NAND support? that ECC crap?
i dont' know. you can try implement, why not?
 

Site & Scene News

Popular threads in this forum