• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.
E
Reaction score
1

Profile posts Latest activity Postings About

  • It has yet to be done. You are in uncharted territory man.:) Welcome to the big leagues haha. There won't be anyone to guide you through this. Just keep trying and you will find something.
    Golden Sun is completely different. What you need to do is find the loader for the palettes and have it load 256 colors. Then, you need to insert 256 color OWs and make sure the game reads them as such.
    FR will reload palettes when exiting menus. I provided a fix for that on PHO.

    The amount of palettes is a HardWare restriction. This cannot be changed, ever.

    Golden sun uses 1 palette, but it has 256 colors. F palettes * F colors = 256 color palette. They have no more colors.
    ldr r0,=#0x3000EA8 ;
    ldrb r0,[r0]

    I found that in your ASM. That means there is a pointer at that offset. Follow the pointer that is in the memory there and then look.
    Okay, then why don't you try and find out? Run the game and using the memory viewer in VBA, go to those offsets and look around.
    Hmmm, those sound the like the offsets of pointers to dma hidden objects. Have you checked the FR Ram Map? There is one in R&D somewhere, either by JPAN or DavidJCobb, not sure which.
    Haha, no I found the asm. It is all of the comments and everything. They are in spanish and I'm having trouble sifting through them.
    1) I only use the registers and instructions screens. The others are just extras.

    2) Trace is the same, except that it will follow bls. Run next won't.

    3) It doesn't run everything, only the stuff it needs. So, if you set a breakpoint on a routine, that routine actually has to run for it to activate the breakpoint. Ideally, you should know what you are looking for, so you will know if the routine is called. So, if you are trying to find the OW loaders, you would set the break, then warp. If the break point doesn't activate, that wasn't the right routine.

    4) Ahh, maybe it skipped over it. The game likes to do this:

    cmp r1, r0
    bhi jump_down_three_rows
    do_stuff_to_correct_an_error
    do_stuff_to_correct_an_error
    do_stuff_to_correct_an_error
    here_is_where_it_jumped_to

    got it? Most code has a section in it that only runs if there is an error or other issue.
    5) Umm, besides breaking on instructions, you can also break on ram changes and such. Look in the NO$ debugging documentation for info on how to do that.
    The game runs each instruction in about a nanosecond. So, yeah, impossible. However, by setting a break, then running the game to that break, you can then hit F3 to execute the next instruction.
    The best way to know what the hell I'm pushing and popping is to watch the code in action. In that case, apply JPAN's engine to a FR rom, then compile and insert it like I outline in the very last post of that thread. From there, you can play with it and see how it works. My favorite debugger for testing games as they run is NO$GBA, but if you like VBA-SDL-H better, go for it.

    Haha, I'm glad you liked it. It took me a long time, but I definitely feel it helps bridge that gap that most tutorials leave. Thanks.
    Okay, so you know the syntax, but you don't really understand it. Cool. My spanish is only about 50%, so I can read some of what you wrote and it looks okay. My concept of ASM tutorial is posted both here and PHO. I'm sure you can find it.:p It explains popping and pushing and a lot about why certain things are done.
    IDA doesn't have a tutorial. It is an expensive program, so if you are using it, people just assume you know how to. In most cases, and mine, I learned simply by breaking it a million times until I finally figured out how it worked. You can learn a lot by pushing random buttons. (Just don't save:p) Knizz is an IDA master. If you go on PHO's IRC, he is there a lot. You may be able to glean some information on how to use it from him.

    Okay, first, do you know ASM? When I say that, I mean, if I send you code, can you read it, understand it, and then use it?

    If not, then read my "Concept of ASM" guide and when you understand it, work on hackmew's and shinyquagsire's tutorials. Once you have the syntax down, then I will teach you debugging and finding stuff.
    In all honesty, don't add any more. Let me explain why:

    In GBA hardware, there is a max of 256 OAM colors, (this is 16 OW palettes) on screen at once. Furthur limitations in the coding of the game only allow palette slots 0->A to contain pallets for OWs (the others are reserved for other purposes). There is a reason GF coded the games to use so few palettes: only 11 unique ones can be on screen at once! I hate how JPAN added new palettes, because it drives me nuts that you really can't use them. I'm all up for adding new sprites, but the number of palettes can't change much, otherwise you will have a very limited number of characters on screen, and you will have to be very careful about where you place them, otherwise you will get a lot of OWs with the wrong palettes, because a new one was loaded that used the same slot.

    Furthermore, each OW has a fixed palette slot. This means that it has only one slot which its palette can be loaded into. Do you see the dilema? If you have too many palettes, (more than 11 actually) these slots have to be shared. So, if two OWs share a palette slot, that means that only one can be on screen at a time, lest the second one to be loaded will overwrite the first one's palette, and the first will look like crap.

    So, long story short, don't add new palettes.
  • Loading…
  • Loading…
  • Loading…
Back
Top