• 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.

Something amazing (possibly) I found in my Fire Red ROM

Sierraffinity

Desperately trying to retire from ROM hacking
1,069
Posts
16
Years
  • While looking at the pointers to the map CGs referred to in liuyanghejerry's document about adding map CGs to Fire Red, I came across this bit of info a small while after the table:
    hiddeninfoinfr.png

    Also, pay attention to this Windows directory:
    hiddeninfoinfrfolder.png

    Is this the folder some developer for Fire Red used for his source?
     

    IceGod64

    In the Lost & Found bin!
    624
    Posts
    15
    Years
  • Well, the game was built on normal PCs before it was compiled for GBA.. but, that path... shouldn't be there. If there was some resource the game needed, that would've been compiled into the ROM, and that path should have been a pointer..

    Is this a clean ROM?
     
    Last edited:

    Sierraffinity

    Desperately trying to retire from ROM hacking
    1,069
    Posts
    16
    Years
  • Well, the game was built on normal PCs before it was compiled for GBA.. but, that path... shouldn't be there. If there was some DLL the game needed, that would've been comiled into the ROM, and that path should have been a pointer..

    Is this a clean ROM?
    No, but I am betting that it's on any clean FR 1.0 ROM you guys out there have. I have no idea what that directory is as I do not have that one on my own computer.

    Navigate to the offset in the picture and see if it's still there.
    EDIT: P.S.: All this is in ASCII, not using any table.
     

    colcolstyles

    Yours truly
    1,588
    Posts
    15
    Years
  • Well if the source code for the game (or some part of it) is titled "rfu.c" then it confirms that the games were in fact written in C. But does anyone know what "rfu" stands for?
     

    mindfreak

    Belgium Rom hacker
    45
    Posts
    16
    Years
    • Seen Nov 1, 2012
    There are more!
    Check the following addresses.
    ----------------
    0x001E9F68
    0x00352F18
    0x003A720C
    0x003A725C
    0x003F5EF0
    0x0043ED94
    0x00457138
    0x00466F28
    0x00466F80
    0x00468C5C
    0x00479CD8
    0x004CC483
    -----------------
    I don't think we can do much with these directory's but its funny.

    Btw Nintendo has child slaves!
    11gonid.jpg
     

    interdpth

    I've seen things, man.
    275
    Posts
    19
    Years
    • Seen Jun 8, 2021
    That code is for the wireless stuff.
    There's a few debug symbols left in there, among other things. Nothing amazing that hasn't been found before.

    IIRC LG has some bad info for pirates. XD
     

    IceGod64

    In the Lost & Found bin!
    624
    Posts
    15
    Years
  • Well if the source code for the game (or some part of it) is titled "rfu.c" then it confirms that the games were in fact written in C. But does anyone know what "rfu" stands for?

    As for it being written in C, many, many games are. In fact, I do believe most all of them are. They're certainly not written in assembly, as if I recall, that hasn't happened since the N64.

    No idea wat rfu stands for though.

    I now have the urge to try a disassembly, due to how much that could do for the hacking community, though I can't honestly do it myself.
     
    219
    Posts
    16
    Years
  • Hehe,this is interesting.I didn't notice this ever before.
    Usually,GBA games are written by C.But I'm wodering how to design the graphic things.Maybe there is a Pokemon Designer porgrame?
    Hehe,just thinking.
     

    pokefreak2

    I can't believe you read this
    84
    Posts
    15
    Years
  • There are more!
    Check the following addresses.
    ----------------
    0x001E9F68
    0x00352F18
    0x003A720C
    0x003A725C
    0x003F5EF0
    0x0043ED94
    0x00457138
    0x00466F28
    0x00466F80
    0x00468C5C
    0x00479CD8
    0x004CC483
    -----------------
    I don't think we can do much with these directory's but its funny.

    Btw Nintendo has child slaves!
    11gonid.jpg
    omg nintendo ! your using slave childs Don't use me PLEASE I BEG YOU!!! unless you let me beta test your games :P
     

    Melash

    Back for now.
    426
    Posts
    16
    Years
  • Hmm, this is the first time I've really been interested in Advanced Generation ROMs. Finding beta or unused data in a ROM (that actually may mean something) is very cool, even if you're not necessarily the first to discover it. Keep searching for more! :D
     

    davidthefat

    I Love C++
    437
    Posts
    14
    Years
    • Seen Mar 3, 2012
    Slave Child and Parent are types of Classes, Child classes are derived from parent classes, its called inheritance, Im not too sure about slave classes, but apparently they are used in data bases, like Oracle. RFU is named for the wireless unit, its a Radio Frequency Unit. that file handled all the wireless functions. IMHO its just debug stuff left over like what one guy said up there... Yea that shows they have good naming habits that anyone can understand what each file or class and function does... But strangely C does not use classes, but Unions and Structs, classes are a C++ thing...


    edit: the NULL.size is the size of the ping that gets returned when the RFU (see above) sends the data, so I assume the function is literally called RfuFunc in the class named RFU, so I assume that RFU function is the constructor... and Im not too sure but I think the RFU (Wireless adapter) brings in the info thats highlighted like RFU WAIT, RFU SEND, RFU BOOT, RFU ERROR and ect to set permisions, allowing the game to do certain functions already implemented on the wireless adaptor...


    edit of an edit: None of try to disassemble that, trust me, its just a pain in the ass, you end up with whole bunch of assembly code, and you will get nowhere... You can only get a glimpse of how they handle the wireless on the GBA...


    triple edit: The RFU WAIT and other functions are the ones that they were watching (its when you debug, you keep track of watch they are doing) and left over from the debug
     
    Last edited:

    interdpth

    I've seen things, man.
    275
    Posts
    19
    Years
    • Seen Jun 8, 2021
    Slave Child and Parent are types of Classes, Child classes are derived from parent classes, its called inheritance, Im not too sure about slave classes, but apparently they are used in data bases, like Oracle. RFU is named for the wireless unit, its a Radio Frequency Unit. that file handled all the wireless functions. IMHO its just debug stuff left over like what one guy said up there... Yea that shows they have good naming habits that anyone can understand what each file or class and function does... But strangely C does not use classes, but Unions and Structs, classes are a C++ thing...


    edit: the NULL.size is the size of the ping that gets returned when the RFU (see above) sends the data, so I assume the function is literally called RfuFunc in the class named RFU, so I assume that RFU function is the constructor... and Im not too sure but I think the RFU (Wireless adapter) brings in the info thats highlighted like RFU WAIT, RFU SEND, RFU BOOT, RFU ERROR and ect to set permisions, allowing the game to do certain functions already implemented on the wireless adaptor...


    edit of an edit: None of try to disassemble that, trust me, its just a pain in the ass, you end up with whole bunch of assembly code, and you will get nowhere... You can only get a glimpse of how they handle the wireless on the GBA...


    triple edit: The RFU WAIT and other functions are the ones that they were watching (its when you debug, you keep track of watch they are doing) and left over from the debug


    The GBA games were coded in C/C++ with classes and the like
    I know.

    Kawa disassembled and almost put the RFU in to OpenPoke I have all of his data.

    Pokemon is fun stuff~

    ~From that guy up there.
     

    HackMew

    Mewtwo Strikes Back
    1,314
    Posts
    17
    Years
    • Seen Oct 26, 2011
    Nothing really new to me, actually:

    • 0x1E9F68
      Code:
      C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/gflib/malloc.c
    • 0x352F18
      Code:
      C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/fieldmap.c
    • 0x3A720C
      Code:
      C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/evobjmv.c
    • 0x3A725C
      Code:
      C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/scrcmd.c
    • 0x3F5EF0
      Code:
      C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/scr_tool.c
    • 0x43ED94
      Code:
      C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/rfu.c
    • 0x457138
      Code:
      C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/rfu_union_tool.c
    • 0x466F28
      Code:
      C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent.c
    • 0x466F80
      Code:
      C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c
    • 0x468C5C
      Code:
      C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/menews_jisan.c
    • 0x479CD8
      Code:
      C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/cereader_tool.c

    EDIT: All offsets are FR US v1.0. The same strings could be found in LG US v1.0 as well.
     
    Last edited:

    Poryhack

    March 14th
    50
    Posts
    15
    Years
    • Seen Jul 5, 2010
    I've seen similar thing in the 4th gen ROMs too if you guys are that interested. It's just leftover junk though, it's not like you're gonna magically find the C source code in the ROM.
     

    HackMew

    Mewtwo Strikes Back
    1,314
    Posts
    17
    Years
    • Seen Oct 26, 2011
    I've seen similar thing in the 4th gen ROMs too if you guys are that interested. It's just leftover junk though, it's not like you're gonna magically find the C source code in the ROM.

    Yeah, it's pretty useless yet it's still somehow interesting. Basically it's a proof the games were coded (also?) in C.
     
    Back
    Top