< >
Hello, guest! Please log in or register.

The PokéCommunity

Go Back     The PokéCommunity Forums > Members List BLAx501!'s Profile


BLAx501!'s Profile Picture

BLAx501! BLAx501! is offline

Pokemon Flux

Visitor Messages

Showing Visitor Messages 1 to 15 of 55
  1. Deltakirby
    4 Days Ago 12:53 PM
  2. Deltakirby
    5 Days Ago 5:55 PM
    love your avatar
  3. CJoE
    3 Weeks Ago 2:42 AM
    haha just asking :D
  4. CJoE
    4 Weeks Ago 5:26 PM
    Are you by any chance, have played Clash Of Clan before?
  5. GOLDstandard
    December 2nd, 2015 8:16 PM
    Ohh, I see. Thank you
  6. Touched
    October 31st, 2015 2:22 AM
    Sorry for the late reply, PC is refusing to give me notifications for VMs for some reason. Can you join the IRC channel link in my signature? I'd be happy to explain things more there.

    There are a number of problems with C in existing binaries:

    1) We don't have a main method, so we need to circumvent this restriction.
    2) We need some way of getting using existing symbols in the ROM in our C program, as well as make our program start from later on in the ROM, rather than offset 0.
    3) We need some way of extracting addresses to our compiled functions so we can hook to them or callasm them.
    4) We need some way of declaring static variables so that they don't clash with existing ones.
    5) We need a way to insert quickly.
    6) We need a way to debug.
    7) We need a way of calling internal functions, since the range of BL is too small.

    My solutions (a WIP) are:

    1) Compile each C file to a separate object file and link them up using a manual call to LD, ignoring the lack of a __start symbol (which usually points to the main method)
    2) Use a series of linker scripts to add symbols and declare them in headers as if they were an external, statically linked binary. Also, use a linker script to specify the offset we're starting from.
    3) I link into an object file and use nm to dump the symbol table. A script will then calculate the address of each function and create a map of function names -> address.
    4) Don't use globals at all. If you need them, manually find free RAM and declare it as an existing symbol as you would in 2)
    5) Use a script to extract the raw binary code and insert it into the ROM at the same offset supplied in the linker scripts in 2). We then use the map generated in 3) to insert hooks.
    6) Use a GDB stub and connect to it via GDB. When compiling we export a separate file containing debugging information so we can debugging at source level here.
    7) Compile using the flag "-mlong-calls" so that we can call internal functions at the cost of some space.

    As you can see, this process is heavily reliant on scripts, which I usually write for each project in Python. Often these scripts seem to only work on Linux and probably aren't very helpful if you don't know Python. I might do a tool that automates this whole procedure, but I'm reluctant to do that until I've worked out all the kinks.
  7. shadow Noctowl
    September 22nd, 2015 8:38 AM
    shadow Noctowl
  8. shadow Noctowl
    September 12th, 2015 6:10 AM
    shadow Noctowl
    Hi there
  9. GoGoJJTech
    August 7th, 2015 5:16 PM
    I have the tab opened 24/7
  10. Patatas Fritas
    June 12th, 2015 10:07 AM
    Patatas Fritas
    I'm sure you're not the first person who thought I was Spanish
  11. ~Ruki!
    June 11th, 2015 1:46 PM
    El GS esta detenido por falta de guionista, Tyren dijo que se unía, pero al final ni me contestó, asi que mejor seguiré el que ya tenía una idea planteada
  12. Patatas Fritas
    June 11th, 2015 1:01 PM
    Patatas Fritas
    No! I'm not Spanish. If only! I'm English. My Spanish is terrible, but I understood that :P
  13. Navenatox
    May 20th, 2015 12:12 PM
    You're welcome! I'm glad I could help. Nice to see that there are people out there who actually use it!
  14. Navenatox
    May 20th, 2015 11:26 AM
    Hi there!
    Nope, you can put as many tracks for one maps as you want. What I meant by that line is that if you add more than one alternative track for a map, the routine will load the first suited track it finds, even if all the conditions are met. So for example, let's assume you add two alternative tracks for one map, one with variable 0x40D0 and value 1, the other with variable 0x40D1 and also value 1. Now if both variables hold value 1 upon entering the map, the first track of the two will be loaded.

    So if you use one variable but different values like you suggested, it should work completely fine!

    Let me know if you need any more help with it!
  15. Spherical Ice
    April 7th, 2015 9:45 AM
    Spherical Ice
    Well, sometimes you need to enforce the rules when users are walking a very fine line from being edgy and just being outright disrespectful, which infringes on the PC global rules. That's why I stepped in, just to warn that user to ease off a bit.

About Me

  • About BLAx501!
    Administrator of Spanish Poke-RomHacking community Whack a Hack and lazy rom hacker. I've been "working" on different projects for 3 years and now I'm starting to get results.
    Madrid, Spain
    Male ♂
    Also Known As
    Favorite Pokémon
    Too many to name all of them but here I go with some:

    Pikachu, Charizard, Blastoise (wasn't it obvious :P), Mewtwo, Lugia, Entei, Raikou, Suicune, Moltres, Blaziken, Swampert, Thyplosion, Skarmory, Bisharp, Lucario, Keldeo, Deoxys, Rayquaza, Greninja... As I said, too many to name all of them.


Total Posts
Activity by Forum
Visitor Messages
General Information
  • Last Activity: 4 Hours Ago 5:16 PM
  • Join Date: October 6th, 2013
  • Referrals: 0


Showing Friends 1 to 2 of 2

Contact Info

Instant Messaging
Send an Instant Message to BLAx501! Using...
Home Page
This Page

  All times are GMT -8. The time now is 9:24 PM.

Contact Us Archive Privacy Statement Terms of Service Top