The PokéCommunity Forums  

Go Back   The PokéCommunity Forums > ROM Hacking > Research & Development
Sign Up Rules/FAQ Live Battle Blogs Mark Forums Read

Notices

Research & Development Got a well-founded knack with ROM hacking? Love reverse-engineering the Pokémon games? Or perhaps you love your assembly language. This is the spot for polling and gathering your ideas, and then implementing them! Share your hypothesis, get ideas from others, and collaborate to create!
Research & Development programs in this forum are subject to moderator approval before they are displayed.

Reply
 
Thread Tools
  #1    
Old September 30th, 2014, 09:15 PM
Shiny Quagsire's Avatar
Shiny Quagsire
I like .short's because they're comfy and easy to wear.
 
Join Date: May 2009
Location: Hoenn Safari Zone
Age: 16
Gender: Male
Nature: Jolly
Greets all,

So for the last few days I noticed a significant number of new hacks coming up which were based on iimarckus's Pokemon Red disassembly. After a bit of discussion on #GoGo, Touched, Pia, and I decided to create the first Gen III disassembly for use with new ROM Hacks.

What is a Disassembly?
A disassembly, for those who are unaware, is a full in-assembly source file which can be compiled into a ROM of choice. In the case of iimarckus's disassembly, it's a full split disassembly which, when compiled, results in a Pokemon Red ROM. Disassemblies are useful in that they can assist in making ASM hacking and the addition of more resources easier, without having to worry about free space.

Why a Disassembly?
As I already mentioned, having the full source (in ASM) of the entire game in one file can make it incredibly easy to do various ASM hacking. However, once all the resources are properly split and stripped of their static offsets, all the advantages of a split disassembly start to pour in. Free from the original restrictions of offsets, you can easily add and remove code from the original engine and have all the resources reallocate around it. Freespace is managed by the compiler, as opposed to manual fragmented freespace management. Resources can be changed and manipulated as files instead of offsets, and in the case of iimarckus's disassembly, tools can even take editable PNGs and automatically manage and insert them throughout the ROM.

Pros and Cons of a Disassembly
As with most ASM hacks and fun things, there's always some key things to know. The advantages I outlined above make managing and creating hacks easier than ever. However, by breaking the resources of their offset-based bounds, compatibility with all tools is broken. Yes, all tools. This can be a huge dealbreaker for many, especially in terms of scripting, map making, or even music inserting. The solution to this, however, is for tool makers to adapt to the split disassembly method, and with that, the entire community. However, some tools are eliminated in some cases, like freespace finders or sprite editors, which can be done at compile time instead.

Where can I get this "Disassembly"?
As of today, there is one out of the 3 main Gen III engines disassembled, and none which are completely split (meaning it's pretty much worse than a ROM at this point). The Fire Red disassembly, based on knizz's IDB, can be found on my GitHub here. As of now it compiles to an exact ROM of Fire Red, but it requires large binary blobs from an original ROM to work. However, now that there is a source file to go off of, people can assist in breaking down all the resources of Fire Red into separate files, and slowly but surely, removing the need for binary blobs altogether. A split disassembly of Emerald is planned next, and after that perhaps a split disassembly of Ruby (or German Debug Ruby) of someone feels so inclined to do so.

How can I Help?
At the moment, with the disassembly successfully compiling into a proper Fire Red ROM, the main task is to start separating resources into separate files. A full list of offsets for the Fire Red split disassembly can be found in newsyms.sym (the file which links binary offsets to the source ASM), as well as in knizz's split disassembly. A lot of resources may have pointers which are not contained in the actual code (ie pointers in the resources to other resources) so frequent testing is key to maintaining the ROM and keeping the ROM from changing. Cleanup would help as well, especially in the 0x1E0000ish region where the Nintendo inbuilt library resides, which uses a lot of ARM code which doesn't usually play friendly with IDA Pro.

Questions, comments, concerns? Feel free to talk about this below. A split disassembly is definitely a step forward in my mind, but I'd definitely like to hear your take on it.

GitHub Link: DisFire, DisEmerald (coming soon), DisRuby (maybe but probably not coming soon)
__________________



Reply With Quote
  #2    
Old October 1st, 2014, 03:56 PM
ShyRayq's Avatar
ShyRayq
Unprofessional Unprofessional
 
Join Date: Aug 2007
Gender: Male
Nature: Adamant
Wow, this is something big. I can't believe that you're starting this massive project. I wish you and any other helpers the best of luck. I bet when this is finished, this will change hacking in a big way.
__________________
3DS Friend Code: 5069-3944-3902
IGN: Peter, Pokemon Y
Friend Safari: (Fighting) Throh, Meditite, Breloom
Live Pokedex Completed as of 02/03/14
Big thanks especially to DestinedJagold, Xerneas_X and Elements1

PM me if you want to trade, or add my FC.
Reply With Quote
  #3    
Old October 1st, 2014, 05:41 PM
Shiny Quagsire's Avatar
Shiny Quagsire
I like .short's because they're comfy and easy to wear.
 
Join Date: May 2009
Location: Hoenn Safari Zone
Age: 16
Gender: Male
Nature: Jolly
So it seems that the entire first binary blob needed (located between the main engine and Nintendo's library) is pretty much made up of just scripts. So using MEH, I generated a list of every single script in the game, coming out to a total of 2148 unique scripts. I'll probably end up doing some automagic conversion of these files to ASM or scripts using SEA or something else. The main issue to tackle is turning the static offsets of strings and whatnot into proper relative names. In addition to that, I'll probably need to make up a sort of Script -> ASM markup into SEA so that the scripts are editable when it comes time to do that. I'm thinking maybe something similar to mid2agb where it's all assembly, but it uses some extra bits to make it more script-like.

For those curious, the list of scripts in the game:
Spoiler:

scr_816047A
scr_816047B
scr_816047C
scr_81604BC
scr_81604C6
scr_81604D0
scr_81604DA
scr_81604E4
scr_81604EE
scr_81604F8
scr_8160502
scr_816050C
scr_816051F
scr_8160529
scr_8160532
scr_816053B
scr_8160544
scr_816054D
scr_8160556
scr_816055F
scr_8160568
scr_8160571
scr_8160588
scr_816059F
scr_81605B6
scr_81605CD
scr_81605E4
scr_81605EE
scr_81605F7
scr_816060E
scr_8160625
scr_816063C
scr_8160653
scr_816066A
scr_8160681
scr_8160698
scr_8160699
scr_81606B0
scr_81606C2
scr_816071B
scr_816077F
scr_81607E4
scr_81607FB
scr_8160812
scr_8160829
scr_8160840
scr_81608CB
scr_81608CC
scr_81608D5
scr_81608DE
scr_81608DF
scr_81608EB
scr_81608F7
scr_8160A54
scr_8160A5D
scr_8160A5E
scr_8160A67
scr_8160A68
scr_8160A69
scr_8160A72
scr_8160A7B
scr_8160A84
scr_8160A9B
scr_8160AB2
scr_8160AB3
scr_8160ABC
scr_8160AC5
scr_8160ACE
scr_8160B1E
scr_8160B27
scr_8160B30
scr_8160B39
scr_8160B3A
scr_8160BC9
scr_8160BD2
scr_8160BDB
scr_8160BDC
scr_8160BE5
scr_8160BE6
scr_8160BEF
scr_8160C06
scr_8160C1D
scr_8160C1E
scr_8160C27
scr_8160C30
scr_8160C43
scr_8160C44
scr_8160C66
scr_8160C67
scr_8160C7E
scr_8160C7F
scr_8160C96
scr_8160C97
scr_8160CB0
scr_8160CB1
scr_8160CC8
scr_8160CDF
scr_8160CE0
scr_8160CE9
scr_8160CF2
scr_8160CF3
scr_8160D0A
scr_8160D21
scr_8160D22
scr_8160D2B
scr_8160D34
scr_8160D35
scr_8160D3E
scr_8160D47
scr_8160D48
scr_8160D5F
scr_8160D76
scr_8160D77
scr_8160D8E
scr_8160D8F
scr_8160DA6
scr_8160DA7
scr_8160DBE
scr_8160DD5
scr_8160DD6
scr_8160DDF
scr_8160DF2
scr_8160DF3
scr_8160E38
scr_8160E39
scr_8160EB5
scr_8160EBF
scr_8160EC0
scr_8160EC9
scr_8160ECA
scr_8160ED3
scr_8160EDD
scr_8160EDE
scr_8160EE7
scr_8160EE8
scr_8160EF1
scr_8160EFB
scr_8160EFC
scr_8160F05
scr_8160F33
scr_8160F64
scr_8160F7B
scr_8160F92
scr_8160FD5
scr_8161006
scr_8161037
scr_816104E
scr_8161065
scr_816107C
scr_8161093
scr_81610AA
scr_81610CF
scr_8161103
scr_816111A
scr_8161131
scr_8161148
scr_816115F
scr_816117A
scr_8161195
scr_81611AE
scr_81611C5
scr_81611DC
scr_81611F3
scr_816120A
scr_81612A1
scr_81612A2
scr_81612B9
scr_81612BA
scr_81612D1
scr_81612E8
scr_8161317
scr_8161363
scr_8161381
scr_81613AD
scr_81613CE
scr_8161418
scr_81614D8
scr_81614D9
scr_8161625
scr_816162F
scr_8161638
scr_8161641
scr_816165A
scr_8161660
scr_8161669
scr_8161680
scr_8161697
scr_81616AE
scr_81616C5
scr_81616DE
scr_81616FF
scr_8161708
scr_816171F
scr_8161736
scr_816174F
scr_8161770
scr_8161779
scr_8161790
scr_81617A7
scr_81617BE
scr_81617E0
scr_8161801
scr_816180A
scr_8161813
scr_816181C
scr_8161825
scr_816183C
scr_8161853
scr_816186A
scr_8161881
scr_8161891
scr_81618B2
scr_81618D3
scr_81618F4
scr_8161915
scr_8161936
scr_816193F
scr_8161956
scr_816196D
scr_8161984
scr_81619BC
scr_81619C8
scr_8161AC8
scr_8161B97
scr_8161BB8
scr_8161BD9
scr_8161BFA
scr_8161C03
scr_8161C1A
scr_8161C31
scr_8161C48
scr_8161C5F
scr_8161C6F
scr_8161C90
scr_8161C99
scr_8161CB0
scr_8161CC7
scr_8161CDE
scr_8161D09
scr_8161D38
scr_8161D41
scr_8161D58
scr_8161D6F
scr_8161D86
scr_8161D96
scr_8161DB7
scr_8161DC0
scr_8161DD7
scr_8161DEE
scr_8161DFE
scr_8161E7F
scr_8161E88
scr_8161E94
scr_8161F37
scr_8161F40
scr_8161F57
scr_8161F6E
scr_8161F6F
scr_81621F9
scr_8162212
scr_8162226
scr_816223D
scr_8162254
scr_8162264
scr_8162278
scr_8162281
scr_816228A
scr_81622A1
scr_81622B1
scr_81622C5
scr_81622CE
scr_81622E5
scr_81622FC
scr_816230C
scr_8162320
scr_8162329
scr_8162340
scr_8162357
scr_8162361
scr_816236A
scr_8162373
scr_816237C
scr_816237D
scr_8162386
scr_816238F
scr_8162398
scr_8162399
scr_81623A2
scr_81623AB
scr_81623B4
scr_81623BD
scr_81623C6
scr_81623C7
scr_81623D0
scr_81623D9
scr_81623E2
scr_81623EB
scr_81623EC
scr_81623F5
scr_81623FE
scr_81623FF
scr_8162408
scr_8162411
scr_816241A
scr_816241B
scr_8162424
scr_816242D
scr_8162436
scr_8162437
scr_8162440
scr_8162449
scr_8162452
scr_8162453
scr_81624B3
scr_81624BD
scr_81624BE
scr_81624F5
scr_816256C
scr_81625DC
scr_8162685
scr_81626EC
scr_8162810
scr_8162877
scr_816292D
scr_8162A14
scr_8162AE2
scr_8162D4C
scr_8162DD6
scr_8162DE0
scr_8162DE9
scr_8162E00
scr_8162E17
scr_8162E2E
scr_8162E45
scr_8162E5C
scr_8162E73
scr_8162E8A
scr_8162E8B
scr_8162EA2
scr_8162EB9
scr_8162ED0
scr_8162EE7
scr_8162EFE
scr_8162F15
scr_8162F2C
scr_8162F43
scr_8162F4D
scr_8162F4E
scr_8162F4F
scr_816302E
scr_816319D
scr_81631AC
scr_8163223
scr_816322C
scr_8163235
scr_816323F
scr_8163248
scr_8163251
scr_816325A
scr_816327C
scr_8163285
scr_8163286
scr_816328F
scr_816329B
scr_81633A6
scr_81633A7
scr_81633BE
scr_81633D5
scr_81633EC
scr_81633ED
scr_8163404
scr_816341B
scr_8163432
scr_8163433
scr_816343C
scr_8163453
scr_816345B
scr_8163472
scr_8163489
scr_81634A0
scr_81634B7
scr_81634B8
scr_8163514
scr_816352B
scr_8163542
scr_8163559
scr_816355A
scr_8163586
scr_816363D
scr_81636D6
scr_8163764
scr_81637B8
scr_816382F
scr_816388D
scr_81638EB
scr_81638EC
scr_81638F5
scr_81638FE
scr_8163907
scr_8163910
scr_8163919
scr_8163922
scr_816392B
scr_8163934
scr_816393D
scr_8163946
scr_816397F
scr_81639F0
scr_8163A4E
scr_8163AB4
scr_8163ACB
scr_8163AE2
scr_8163AF9
scr_8163AFA
scr_8163AFB
scr_8163AFC
scr_8163B33
scr_8163BAA
scr_8163BAB
scr_8163C45
scr_8163C46
scr_8163C47
scr_8163C48
scr_8163C49
scr_8163C6F
scr_8163C70
scr_8163C71
scr_8163C83
scr_8163D28
scr_8163D31
scr_8163D3A
scr_8163D44
scr_8163D81
scr_8163D82
scr_8163D98
scr_8163F25
scr_8163F2E
scr_8163F5A
scr_8163F78
scr_8163F81
scr_8163F93
scr_8163FE6
scr_8163FFD
scr_8164014
scr_8164070
scr_8164087
scr_8164182
scr_816418C
scr_8164195
scr_816419E
scr_81641A7
scr_81641B0
scr_81641B1
scr_81641B2
scr_81641B3
scr_81641B4
scr_81641B5
scr_816441F
scr_8164559
scr_8164590
scr_81645A7
scr_81645BE
scr_81645D5
scr_81645EC
scr_8164603
scr_816461A
scr_8164631
scr_8164648
scr_816465F
scr_8164676
scr_816468D
scr_81646A4
scr_81646AE
scr_81646B8
scr_81646C8
scr_81646CE
scr_81646D4
scr_81646DA
scr_81646E0
scr_81646E6
scr_8164714
scr_8164742
scr_8164770
scr_816479E
scr_81647CC
scr_81647FA
scr_8164828
scr_8164839
scr_816495D
scr_8164966
scr_8164992
scr_81649CE
scr_8164AD8
scr_8164AE6
scr_8164AEF
scr_8164AF8
scr_8164B03
scr_8164BEC
scr_8164BF6
scr_8164BF7
scr_8164C0E
scr_8164C0F
scr_8164C10
scr_8164C11
scr_8164C28
scr_8164C29
scr_8164C2A
scr_8164C2B
scr_8164C2C
scr_8164C2D
scr_8164CCB
scr_8164CCC
scr_8164CCD
scr_8164CCE
scr_8164CCF
scr_8164CDE
scr_8164CEA
scr_8164CF6
scr_8164D02
scr_8164D0E
scr_8164D1A
scr_8164D26
scr_8164D60
scr_8164DCC
scr_8164E39
scr_8164E5C
scr_8164E7F
scr_8164EA2
scr_8164EC5
scr_8164EE8
scr_8164F0B
scr_8164F9E
scr_8164F9F
scr_8164FFB
scr_81650E7
scr_8165134
scr_81651F2
scr_81651F3
scr_81651F4
scr_81651F5
scr_81651F6
scr_81651F7
scr_81651F8
scr_81651F9
scr_81651FA
scr_81651FB
scr_81651FC
scr_81651FD
scr_81651FE
scr_81651FF
scr_8165200
scr_8165201
scr_8165202
scr_8165203
scr_8165271
scr_816535B
scr_816535C
scr_8165365
scr_816536E
scr_8165377
scr_8165380
scr_8165399
scr_81653CF
scr_81653E6
scr_81653E7
scr_8165420
scr_8165421
scr_816545A
scr_81655ED
scr_81655F9
scr_816575C
scr_816582F
scr_8165838
scr_8165850
scr_8165859
scr_8165862
scr_816586B
scr_816587B
scr_81658D3
scr_816596D
scr_8165994
scr_816599D
scr_81659A6
scr_81659AF
scr_81659B8
scr_81659C1
scr_81659CA
scr_81659F6
scr_8165A8F
scr_8165AC4
scr_8165AF0
scr_8165AF6
scr_8165B10
scr_8165B2E
scr_8165B8E
scr_8165B9D
scr_8165D8E
scr_8165D9A
scr_8165DA6
scr_8165DB2
scr_8166075
scr_816607E
scr_816622B
scr_8166244
scr_816626D
scr_8166276
scr_816627F
scr_8166288
scr_81662A0
scr_81662A9
scr_81662B7
scr_81662C4
scr_81662D1
scr_8166471
scr_816649A
scr_81664A6
scr_81664B9
scr_8166603
scr_8166683
scr_81666A3
scr_81666E7
scr_81666FE
scr_816671D
scr_8166726
scr_816672F
scr_8166738
scr_816674F
scr_81667DD
scr_8166838
scr_8166841
scr_816684A
scr_8166853
scr_816686B
scr_816687D
scr_81668A6
scr_81668AF
scr_81668B8
scr_81668C1
scr_81668CA
scr_81668D3
scr_81668DC
scr_8166917
scr_8166920
scr_8166941
scr_8166B8A
scr_8166B91
scr_8166B98
scr_8166C17
scr_8166C20
scr_8166C2F
scr_8166C38
scr_8166C53
scr_8166C5C
scr_8166C65
scr_8166C6E
scr_8166C86
scr_8166C8F
scr_8166C99
scr_8166CA2
scr_8166CAD
scr_8166CB6
scr_8166CBF
scr_8166CC5
scr_8166CDC
scr_8166CFA
scr_8166D03
scr_8166D0C
scr_8166D15
scr_8166D1E
scr_8166D27
scr_8166D30
scr_8166D48
scr_8166D51
scr_8166D5A
scr_8166D63
scr_8166D6C
scr_8166D75
scr_8166D9D
scr_8166DA6
scr_8166DAF
scr_8166DB8
scr_8166DC1
scr_8166DDA
scr_8166DE3
scr_8166DEC
scr_8166DF5
scr_8166E07
scr_8166E1F
scr_8166E38
scr_8166E51
scr_8166E6A
scr_8166E83
scr_8166E9C
scr_8166ED6
scr_81671CA
scr_81671EF
scr_8167208
scr_8167211
scr_816721A
scr_8167223
scr_816723B
scr_816735F
scr_816737A
scr_8167383
scr_816738C
scr_8167395
scr_816739E
scr_81673A7
scr_81673B0
scr_81673B9
scr_81673E3
scr_81673EC
scr_81673F5
scr_81673FE
scr_8167407
scr_816741A
scr_8167423
scr_816742C
scr_8167435
scr_816744D
scr_8167456
scr_816745F
scr_8167468
scr_8167471
scr_816747A
scr_8167483
scr_8167484
scr_8167517
scr_8167549
scr_8167552
scr_816755B
scr_8167564
scr_816760F
scr_816774C
scr_8167755
scr_816775E
scr_8167777
scr_8167780
scr_8167789
scr_8167792
scr_816779B
scr_81677A4
scr_81677AD
scr_81677D8
scr_81677E5
scr_8167989
scr_81679B5
scr_8167A1D
scr_8167A29
scr_8167A35
scr_8167A41
scr_8167A4D
scr_8167C77
scr_8167C80
scr_8167C89
scr_8167C9C
scr_8167CA5
scr_8167CAE
scr_8167D55
scr_8167E2E
scr_8167E5A
scr_8167E73
scr_8167E7C
scr_8167E85
scr_8167E8E
scr_8167E98
scr_8167EA1
scr_8167EAA
scr_8167EB3
scr_8167EBD
scr_8167EC6
scr_8167ECF
scr_8167ED8
scr_8167EE2
scr_8167EEB
scr_8167EF4
scr_8167EFD
scr_8167EFE
scr_8167F52
scr_8167F5B
scr_8167F64
scr_8167F65
scr_8167F6E
scr_8167F77
scr_8167F78
scr_8167F81
scr_8167F8A
scr_8167F8C
scr_8167F95
scr_8167F9E
scr_8167FA7
scr_8167FA8
scr_8167FB1
scr_8167FB2
scr_8167FBB
scr_8167FBC
scr_8167FC5
scr_8167FC6
scr_8167FCF
scr_8167FD0
scr_8167FD9
scr_8167FDB
scr_8167FE4
scr_8167FED
scr_8167FF6
scr_8167FF7
scr_8168000
scr_8168014
scr_81680A3
scr_81680AC
scr_81680B5
scr_81680B6
scr_81680BF
scr_81680C8
scr_81680D1
scr_81680D2
scr_81680DB
scr_81680DC
scr_81680E5
scr_8168121
scr_81681AD
scr_81681B6
scr_81681BF
scr_81681C0
scr_81681C9
scr_81681D2
scr_81681DB
scr_81681E4
scr_81681ED
scr_81681F6
scr_816821F
scr_8168228
scr_8168231
scr_8168232
scr_816823B
scr_8168280
scr_8168289
scr_816828A
scr_816828B
scr_816828C
scr_8168298
scr_81682AB
scr_81683ED
scr_81683F9
scr_816840C
scr_81684E2
scr_81684EB
scr_816850C
scr_816851D
scr_816852E
scr_816853F
scr_8168550
scr_8168561
scr_8168572
scr_8168583
scr_8168598
scr_81685AD
scr_81685C2
scr_81685D7
scr_81685EC
scr_8168601
scr_8168616
scr_816861F
scr_8168620
scr_8168660
scr_816866C
scr_8168745
scr_8168746
scr_816874F
scr_8168758
scr_8168759
scr_8168762
scr_816876B
scr_816876C
scr_8168775
scr_8168776
scr_8168777
scr_8168780
scr_8168789
scr_8168796
scr_81687CC
scr_81687D5
scr_81687E0
scr_81687E1
scr_81687E2
scr_81687E3
scr_81687E4
scr_8168844
scr_816884D
scr_816884E
scr_8168932
scr_8168942
scr_816898D
scr_81689A4
scr_81689BB
scr_81689D2
scr_81689D3
scr_8168A48
scr_8168B15
scr_8168B16
scr_8168B2D
scr_8168B2E
scr_8168B37
scr_8168B40
scr_8168B41
scr_8168B4A
scr_8168B53
scr_8168B6D
scr_8168B94
scr_8168BD5
scr_8168BE1
scr_8168BEA
scr_8168BF3
scr_8168BF4
scr_8168BFD
scr_8168BFE
scr_8168C07
scr_8168C08
scr_8168C09
scr_8168C62
scr_8168CA3
scr_8168CD2
scr_8168CDB
scr_8168CE4
scr_8168D27
scr_8168D56
scr_8168F63
scr_8168F6C
scr_8168F75
scr_8168F7E
scr_81692C3
scr_81692E7
scr_81692F3
scr_81692FF
scr_816955F
scr_8169595
scr_8169BAB
scr_8169D78
scr_8169DAE
scr_8169DEE
scr_8169E1A
scr_8169E46
scr_8169E5F
scr_8169E68
scr_8169E71
scr_8169E7A
scr_8169E9A
scr_8169E9B
scr_8169EA4
scr_8169EAD
scr_8169EC0
scr_8169EC9
scr_8169ECA
scr_8169F7A
scr_8169F91
scr_8169FA8
scr_8169FBF
scr_8169FD6
scr_8169FED
scr_816A004
scr_816A01B
scr_816A032
scr_816A05E
scr_816A07C
scr_816A07D
scr_816A094
scr_816A0AB
scr_816A11D
scr_816A1D3
scr_816A268
scr_816A2AE
scr_816A2B7
scr_816A2C0
scr_816A2CF
scr_816A2D8
scr_816A2E1
scr_816A2EA
scr_816A2F3
scr_816A31A
scr_816A31B
scr_816A38F
scr_816A3A5
scr_816A3BB
scr_816A49C
scr_816A4A5
scr_816A4AE
scr_816A509
scr_816A512
scr_816A532
scr_816A552
scr_816A553
scr_816A55C
scr_816A565
scr_816A56E
scr_816A577
scr_816A580
scr_816A589
scr_816A592
scr_816A593
scr_816A63E
scr_816A655
scr_816A6AF
scr_816A6CD
scr_816A6CE
scr_816A6D7
scr_816A6E0
scr_816A71C
scr_816A71D
scr_816A726
scr_816A736
scr_816A760
scr_816A76F
scr_816A778
scr_816A781
scr_816A798
scr_816A7A1
scr_816A7AC
scr_816A7B5
scr_816A7DC
scr_816A7DD
scr_816A7E6
scr_816A7EF
scr_816A7F0
scr_816A975
scr_816A976
scr_816A995
scr_816A99E
scr_816A9A7
scr_816A9A8
scr_816A9B1
scr_816AA2D
scr_816AA3C
scr_816AA45
scr_816AA4E
scr_816AA57
scr_816AA70
scr_816AA79
scr_816AAA0
scr_816AAA1
scr_816AB44
scr_816AB5B
scr_816AB7F
scr_816AB9E
scr_816ABBC
scr_816ABBD
scr_816AC6C
scr_816AC75
scr_816AC94
scr_816AC9D
scr_816AC9E
scr_816ACA7
scr_816ACB0
scr_816ACEE
scr_816ACEF
scr_816AE4F
scr_816AE50
scr_816B0DA
scr_816B0EF
scr_816B0FE
scr_816B107
scr_816B110
scr_816B119
scr_816B122
scr_816B149
scr_816B14A
scr_816B1AA
scr_816B1C3
scr_816B1CC
scr_816B1EB
scr_816B1FE
scr_816B211
scr_816B229
scr_816B232
scr_816B233
scr_816B252
scr_816B265
scr_816B266
scr_816B34F
scr_816B350
scr_816B359
scr_816B362
scr_816B36B
scr_816B3A6
scr_816B3A7
scr_816B424
scr_816B433
scr_816B43C
scr_816B445
scr_816B44E
scr_816B457
scr_816B47E
scr_816B47F
scr_816B4FC
scr_816B528
scr_816B563
scr_816B59E
scr_816B5B1
scr_816B5C4
scr_816B5CD
scr_816B5D6
scr_816B5D7
scr_816B653
scr_816B654
scr_816B65D
scr_816B666
scr_816B69E
scr_816B78F
scr_816B79B
scr_816B7A7
scr_816B7B3
scr_816B7BF
scr_816B7CB
scr_816B7D7
scr_816B7E3
scr_816B7EF
scr_816B7FB
scr_816B807
scr_816B813
scr_816B81F
scr_816B82B
scr_816B837
scr_816B94A
scr_816B9FA
scr_816BA1E
scr_816BA35
scr_816BA6C
scr_816BA8B
scr_816BAA9
scr_816BAAA
scr_816BAB3
scr_816BABC
scr_816BACF
scr_816BAD8
scr_816BAD9
scr_816BAE2
scr_816BAEB
scr_816BAF4
scr_816BAFE
scr_816BB07
scr_816BB10
scr_816BB4E
scr_816BB84
scr_816BB85
scr_816BB8B
scr_816BB94
scr_816BB9D
scr_816BBA6
scr_816BBAF
scr_816BBB8
scr_816BBC1
scr_816BBCA
scr_816BBD3
scr_816BBDC
scr_816BBE5
scr_816BBEE
scr_816BBEF
scr_816BBF8
scr_816BC01
scr_816BC0A
scr_816BC40
scr_816BC41
scr_816BC4A
scr_816BC53
scr_816BC5C
scr_816BC96
scr_816BCCC
scr_816BCCD
scr_816C022
scr_816C02B
scr_816C034
scr_816C152
scr_816C153
scr_816C320
scr_816C321
scr_816C38E
scr_816C3A1
scr_816C3B4
scr_816C3C7
scr_816C3D0
scr_816C3D1
scr_816C3DA
scr_816C3DB
scr_816C3E4
scr_816C3ED
scr_816C3F6
scr_816C435
scr_816C43E
scr_816C447
scr_816C450
scr_816C459
scr_816C45A
scr_816C463
scr_816C464
scr_816C46D
scr_816C519
scr_816C522
scr_816C5EC
scr_816C5FB
scr_816C604
scr_816C60D
scr_816C616
scr_816C61F
scr_816C646
scr_816C684
scr_816C68D
scr_816C7BA
scr_816C7D7
scr_816C7E7
scr_816C857
scr_816C87E
scr_816C88E
scr_816C89E
scr_816C8FE
scr_816C95E
scr_816C9A4
scr_816C9B0
scr_816C9BC
scr_816C9D4
scr_816C9E0
scr_816C9EC
scr_816C9F8
scr_816CA04
scr_816CA10
scr_816CA1C
scr_816CA28
scr_816CA34
scr_816CA40
scr_816CA58
scr_816CA64
scr_816CA7C
scr_816CA88
scr_816CA94
scr_816CAAA
scr_816CAF5
scr_816CB5A
scr_816CB63
scr_816CB6C
scr_816CB75
scr_816CB76
scr_816CB7F
scr_816CB88
scr_816CE1D
scr_816CF88
scr_816D060
scr_816D061
scr_816D111
scr_816D128
scr_816D14C
scr_816D163
scr_816D17A
scr_816D19E
scr_816D1B5
scr_816D1CC
scr_816D1EA
scr_816D1EB
scr_816D1F4
scr_816D1FD
scr_816D255
scr_816D25E
scr_816D267
scr_816D268
scr_816D271
scr_816D27A
scr_816D283
scr_816D284
scr_816D28D
scr_816D296
scr_816D29F
scr_816D2A8
scr_816D36D
scr_816D379
scr_816D385
scr_816D4B7
scr_816D4E0
scr_816D4E1
scr_816D4EA
scr_816D4F3
scr_816D528
scr_816D529
scr_816D532
scr_816D53B
scr_816D544
scr_816D54D
scr_816D54E
scr_816D5F1
scr_816D608
scr_816D61F
scr_816D643
scr_816D65A
scr_816D671
scr_816D688
scr_816D6A7
scr_816D6C5
scr_816D6C6
scr_816D6CF
scr_816D6E8
scr_816D6F1
scr_816D700
scr_816D709
scr_816D712
scr_816D71B
scr_816D724
scr_816D74B
scr_816D74C
scr_816D804
scr_816D80D
scr_816D816
scr_816D817
scr_816D894
scr_816D895
scr_816D94B
scr_816D9D4
scr_816DA7F
scr_816DA96
scr_816DAC2
scr_816DAFB
scr_816DB27
scr_816DB53
scr_816DB7F
scr_816DBAB
scr_816DBCA
scr_816DBE8
scr_816DBF4
scr_816DCDD
scr_816DCE9
scr_816DDBB
scr_816DDC7
scr_816DE92
scr_816DE9E
scr_816DF69
scr_816DF75
scr_816E040
scr_816E04C
scr_816E273
scr_816E28B
scr_816E294
scr_816E29D
scr_816E2A6
scr_816E2AF
scr_816E2B8
scr_816E2B9
scr_816E2C2
scr_816E33E
scr_816E3DE
scr_816E3DF
scr_816E3E5
scr_816E3EE
scr_816E3F7
scr_816E400
scr_816E401
scr_816E47D
scr_816E8D7
scr_816E8E6
scr_816E8EF
scr_816E8F8
scr_816E901
scr_816E90A
scr_816E9E8
scr_816EA0F
scr_816EA10
scr_816EA19
scr_816EA22
scr_816EA5A
scr_816EA8A
scr_816EAC3
scr_816EACC
scr_816EB06
scr_816EB0F
scr_816EB36
scr_816EB37
scr_816EB40
scr_816EB49
scr_816EB5C
scr_816EB5D
scr_816EB70
scr_816EB7B
scr_816EBC9
scr_816EBD2
scr_816EBDB
scr_816EBDC
scr_816EBEE
scr_816EC00
scr_816EC46
scr_816ED2B
scr_816ED34
scr_816ED3D
scr_816ED46
scr_816ED5D
scr_816ED74
scr_816ED8B
scr_816EDA2
scr_816EDD7
scr_816EDD8
scr_816EE88
scr_816EE9F
scr_816EEC3
scr_816EEDA
scr_816EEF1
scr_816EF08
scr_816EF1F
scr_816EF36
scr_816EF55
scr_816EF73
scr_816EF74
scr_816EF7D
scr_816EF86
scr_816EF99
scr_816EFA2
scr_816EFA3
scr_816EFAC
scr_816EFB5
scr_816EFEC
scr_816EFFB
scr_816F004
scr_816F00D
scr_816F016
scr_816F037
scr_816F05E
scr_816F05F
scr_816F0BF
scr_816F281
scr_816F2F8
scr_816F36F
scr_816F3E6
scr_816F45D
scr_816F4BF
scr_816F521
scr_816F583
scr_816F5E5
scr_816F5E6
scr_816F5EF
scr_816F5F8
scr_816F5F9
scr_816F602
scr_816F67E
scr_816F67F
scr_816F714
scr_816F71D
scr_816F71E
scr_816F727
scr_816F730
scr_816F739
scr_816F74B
scr_816F754
scr_816F75F
scr_816F8BB
scr_816F8C4
scr_816F8CD
scr_816F8D8
scr_816F8FF
scr_816F900
scr_816F901
scr_816F90A
scr_816F916
scr_816F922
scr_816F9C6
scr_816F9C7
scr_816F9D0
scr_816F9DC
scr_816F9E8
scr_816FA8C
scr_816FA8D
scr_816FA8E
scr_816FA97
scr_816FAA3
scr_816FAAF
scr_816FB53
scr_816FB54
scr_816FB5D
scr_816FB69
scr_816FB75
scr_816FC2F
scr_816FC41
scr_816FC4A
scr_816FC53
scr_816FC5C
scr_816FC65
scr_816FCFA
scr_816FD21
scr_816FD22
scr_816FD2B
scr_816FD34
scr_816FD35
scr_816FD53
scr_816FD5C
scr_816FDD8
scr_816FE6D
scr_816FE6E
scr_816FE77
scr_816FE78
scr_816FE81
scr_816FE8A
scr_816FF0B
scr_816FF0C
scr_8170067
scr_8170088
scr_8170089
scr_8170092
scr_8170093
scr_81700B0
scr_81700B9
scr_817014E
scr_817014F
scr_81701AF
scr_81701C2
scr_81701DB
scr_81701E4
scr_81701F0
scr_81701FC
scr_8170208
scr_8170214
scr_81702B5
scr_81702BE
scr_81702BF
scr_81702C8
scr_81702D1
scr_81702DA
scr_81702E3
scr_8170378
scr_8170391
scr_817039A
scr_81703A6
scr_81703B2
scr_81703BE
scr_81703CA
scr_817046B
scr_817046C
scr_8170475
scr_817047E
scr_81704FA
scr_81704FB
scr_81704FC
scr_817050D
scr_8170522
scr_8170523
scr_817054B
scr_81706DD
scr_817088A
scr_8170958
scr_8170A75
scr_8170A7E
scr_8170B30
scr_8170B31
scr_8170B6E
scr_8170B77
scr_8170B80
scr_8170B89
scr_8170B98
scr_8170BA1
scr_8170BAA
scr_8170BB3
scr_8170BBC
scr_8170BE3
scr_8170BE4
scr_8170BE5
scr_8170BF8
scr_8170E94
scr_8170E9D
scr_8170EC5
scr_8171148
scr_8171151
scr_817115A
scr_8171179
scr_81711AA
scr_81711B6
scr_81711C2
scr_81711CE
scr_8171334
scr_817135B
scr_817135C
scr_8171365
scr_817136E
scr_817136F
scr_8171378
scr_81713BD
scr_81713D0
scr_8171535
scr_817155F
scr_817160C
scr_8171618
scr_8171619
scr_81717B4
scr_81717C3
scr_81717CC
scr_81717D5
scr_81717DE
scr_8171805
scr_8171806
scr_8171819
scr_817181A
scr_8171829
scr_8171832
scr_8171841
scr_817184A
scr_8171853
scr_817185C
scr_8171865
scr_817188C
scr_817188D
scr_81718C4
scr_81718CD
scr_81718D6
scr_81718DF
scr_81718E0
scr_81718F9
scr_8171902
scr_8171903
scr_817190C
scr_817190D
scr_8171916
scr_817191F
scr_8171920
scr_817193F
scr_8171940
scr_8171BEA
scr_8171BF9
scr_8171C02
scr_8171C0B
scr_8171C14
scr_8171C1D
scr_8171C44
scr_8171C45
scr_8171C4E
scr_8171C58
scr_8171C8D
scr_8171C98
scr_8171C99
scr_8171CAC
scr_8171CAD
scr_8171CAE
scr_8171CE8
scr_8171CF1
scr_8171D00
scr_8171D09
scr_8171D12
scr_8171D1B
scr_8171D42
scr_8171D43
scr_8171D56
scr_8171D57
scr_8171D60
scr_8171D61
scr_8171D6A
scr_8171E05
scr_8171E0E
scr_8171E17
scr_8171E20
scr_8171E47
scr_8171E48
scr_8171E5B
scr_8171E5C
scr_8171E65
scr_8171E66
scr_8171EA0
scr_8171EA9
scr_8171EAA
scr_8171EBD
scr_8171EBE
scr_8172062
scr_817206B
scr_817206C
scr_817206D
scr_8172157
scr_8172178
scr_8172179
scr_8172182
scr_8172183
scr_8172242
scr_81A77B6
scr_81A77C1
scr_81A891B
scr_81A8935
scr_81A894F
scr_81A8969
scr_81A8983
scr_81A899D
scr_81A89B7
scr_81A89D1
scr_81A89EB
scr_81A8A05
scr_81A8A1F
scr_81A8A39
scr_81A8A53
scr_81A8A6D
scr_81A8A87
scr_81A8AA1
scr_81A8ABB
scr_81A8AD5
scr_81A8AEF
scr_81A8B09
scr_81A8CF6
scr_81A8CFC
scr_81A8D02
scr_81A8D08
scr_81A93C9
scr_81A9407
scr_81A9445
scr_81A9483
scr_81A94C1
scr_81A94FF
scr_81A953D
scr_81A957B
scr_81A95B9
scr_81A95F7
scr_81A9635
scr_81A9673
scr_81A96B1
scr_81A96EF
scr_81A972D
scr_81A976B
scr_81A97A9
scr_81A97E7
scr_81A9825
scr_81A9863
scr_81A98A1
scr_81A98DF
scr_81A991D
scr_81A995B
scr_81A9999
scr_81A99D7
scr_81A9A15
scr_81A9A53
scr_81A9A91
scr_81A9ACF
scr_81A9B0D
scr_81A9B4B
scr_81A9B89
scr_81A9BC7
scr_81A9C05
scr_81A9C43
scr_81A9C81
scr_81A9CBF
scr_81A9CFD
scr_81A9D3B
scr_81A9D79
scr_81A9DB7
scr_81A9DF5
scr_81A9E33
scr_81A9E71
scr_81A9EAF
scr_81A9EED
scr_81A9F2B
scr_81A9F69
scr_81A9FA7
scr_81A9FE5
scr_81AA023
scr_81AA061
scr_81AA09F
scr_81AA0DD
scr_81AA11B
scr_81AA159
scr_81AA197
scr_81AA1D5
scr_81AA213
scr_81AA251
scr_81AA28F
scr_81AA2CD
scr_81AA30B
scr_81AA349
scr_81AA38F
scr_81AA3D5
scr_81AA413
scr_81AA451
scr_81AA48F
scr_81AA4CD
scr_81AA50B
scr_81AA549
scr_81AA587
scr_81AA5C5
scr_81AA603
scr_81AA649
scr_81AA68F
scr_81AA6CD
scr_81AA70B
scr_81AA749
scr_81AA787
scr_81AA7C5
scr_81AA803
scr_81AA841
scr_81AA87F
scr_81AA8BD
scr_81AA8FB
scr_81AA939
scr_81AA977
scr_81AA9B5
scr_81AA9F3
scr_81AAA31
scr_81AAA6F
scr_81AAAAD
scr_81AAAEB
scr_81AAB29
scr_81AAB67
scr_81AABAD
scr_81AABF3
scr_81AAC31
scr_81AAC6F
scr_81AACAD
scr_81AACEB
scr_81AAD29
scr_81AAD67
scr_81AADA5
scr_81AADE3
scr_81AAE21
scr_81AAE5F
scr_81AAEA5
scr_81AAEEB
scr_81AAF29
scr_81AAF67
scr_81AAFA5
scr_81AAFE3
scr_81AB021
scr_81AB05F
scr_81AB0A5
scr_81AB0EB
scr_81AB129
scr_81AB167
scr_81AB1A5
scr_81AB1E3
scr_81AB221
scr_81AB25F
scr_81AB29D
scr_81AB2DB
scr_81AB319
scr_81AB357
scr_81AB395
scr_81AB3D3
scr_81AB411
scr_81AB44F
scr_81AB48D
scr_81AB4CB
scr_81AB509
scr_81AB547
scr_81AB585
scr_81AB5C3
scr_81AB601
scr_81AB63F
scr_81AB67D
scr_81AB6C3
scr_81AB709
scr_81AB747
scr_81AB785
scr_81AB7C3
scr_81AB801
scr_81AB83F
scr_81AB87D
scr_81AB8BB
scr_81AB8F9
scr_81AB937
scr_81AB975
scr_81AB9B3
scr_81AB9F1
scr_81ABA2F
scr_81ABA6D
scr_81ABAAB
scr_81ABAE9
scr_81ABB27
scr_81ABB65
scr_81ABBAB
scr_81ABBF1
scr_81ABC2F
scr_81ABC6D
scr_81ABCAB
scr_81ABCE9
scr_81ABD27
scr_81ABD65
scr_81ABDA3
scr_81ABDE1
scr_81ABE1F
scr_81ABE5D
scr_81ABE9B
scr_81ABEE1
scr_81ABF27
scr_81ABF65
scr_81ABFA3
scr_81ABFE1
scr_81AC01F
scr_81AC05D
scr_81AC09B
scr_81AC0E1
scr_81AC127
scr_81AC165
scr_81AC1A3
scr_81AC1E1
scr_81AC21F
scr_81AC25D
scr_81AC29B
scr_81AC2D9
scr_81AC317
scr_81AC355
scr_81AC393
scr_81AC3D1
scr_81AC40F
scr_81AC44D
scr_81AC48B
scr_81AC4D1
scr_81AC517
scr_81AC555
scr_81AC593
scr_81AC5D1
scr_81AC60F
scr_81AC64D
scr_81AC693
scr_81AC6D9
scr_81AC717
scr_81AC755
scr_81AC793
scr_81AC7D1
scr_81AC80F
scr_81AC84D
scr_81AC88B
scr_81AC8C9
scr_81AC907
scr_81AC94D
scr_81AC993
scr_81AC9D1
scr_81ACA0F
scr_81ACA4D
scr_81ACA8B
scr_81ACAC9
scr_81ACB07
scr_81ACB45
scr_81ACB83
scr_81ACBC1
scr_81ACC07
scr_81ACC4D
scr_81ACC8B
scr_81ACCC9
scr_81ACD07
scr_81ACD65
scr_81ACDD0
scr_81ACDEA
scr_81ACE03
scr_81ACE1C
scr_81ACE36
scr_81ACE4F
scr_81ACE68
scr_81ACE83
scr_81ACE9D
scr_81ACEB8
scr_81ACED3
scr_81ACEEC
scr_81ACF07
scr_81ACF2C
scr_81ACF46
scr_81ACF5F
scr_81ACF7A
scr_81ACF95
scr_81ACFAE
scr_81ACFD4
scr_81ACFEF
scr_81AD03A
scr_81AD053
scr_81AD06C
scr_81AD087
scr_81AD0A0
scr_81AD0B9
scr_81AD0D4
scr_81AD0ED
scr_81B2867
scr_81B2938
scr_81BB1D2
scr_81BB8DB
scr_81BB8F8
scr_81BB915
scr_81BB932
scr_81BB980
scr_81BB9D3
scr_81BC2E7
scr_81BC2FC
scr_81BDF13
scr_81BE00C
scr_81BE11D
scr_81BE58E
scr_81BE59B
scr_81BE5A8
scr_81BE5B5
scr_81BE5C2
scr_81BE5CF
scr_81BE5DC
scr_81BE5E9
scr_81BE5F6
scr_81BE603
scr_81BE610
scr_81BE61D
scr_81BE62A
scr_81BE637
scr_81BE644
scr_81BE651
scr_81BE65E
scr_81BE66B
scr_81BE678
scr_81BE685
scr_81BE692
scr_81BE69F
scr_81BE6AC
scr_81BE6B9
scr_81BE6C6
scr_81BE6D3
scr_81BE6E0
scr_81BE6ED
scr_81BE6FA
scr_81BE707
scr_81BE714
scr_81BE721
scr_81BE72E
scr_81BE73B
scr_81BE748
scr_81BE755
scr_81BE762
scr_81BE76F
scr_81BE77C
scr_81BE789
scr_81BE796
scr_81BE7A3
scr_81BE7B0
scr_81BE7BD
scr_81BE7CA
scr_81BE7D7
scr_81BE7E4
scr_81BE7F1
scr_81BE7FE
scr_81BE80B
scr_81BE818
scr_81BE825
scr_81BE832
scr_81BE83F
scr_81BE84C
scr_81BE859
scr_81BE866
scr_81BE873
scr_81BE880
scr_81BE88D
scr_81BE89A
scr_81BE8A7
scr_81BE8B4
scr_81BE8C1
scr_81BE8CE
scr_81BE8DB
scr_81BE8E8
scr_81BE8F5
scr_81BE902
scr_81BE90F
scr_81BE91C
scr_81BE929
scr_81BE936
scr_81BE943
scr_81BE950
scr_81BE95D
scr_81BE96A
scr_81BE977
scr_81BE984
scr_81BE991
scr_81BE99E
scr_81BE9AB
scr_81BE9B8
scr_81BE9C5
scr_81BE9D2
scr_81BE9DF
scr_81BE9EC
scr_81BE9F9
scr_81BEA06
scr_81BEA13
scr_81BEA20
scr_81BEA2D
scr_81BEA3A
scr_81BEA47
scr_81BEA54
scr_81BEA61
scr_81BEA6E
scr_81BEA7B
scr_81BEA88
scr_81BEA95
scr_81BEAA2
scr_81BEAAF
scr_81BEABC
scr_81BEAC9
scr_81BEAD6
scr_81BEAE3
scr_81BEAF0
scr_81BEAFD
scr_81BEB0A
scr_81BEB17
scr_81BEB24
scr_81BEB31
scr_81BEB3E
scr_81BEB4B
scr_81BEB58
scr_81BEB65
scr_81BEB72
scr_81BEB7F
scr_81BEB8C
scr_81BEB99
scr_81BEBA6
scr_81BEBB3
scr_81BEBC0
scr_81BEBCD
scr_81BEBDA
scr_81BEBE7
scr_81BEBF4
scr_81BEC01
scr_81BEC0E
scr_81BEC1B
scr_81BEC28
scr_81BEC35
scr_81BEC42
scr_81BEC4F
scr_81BEC5C
scr_81BEC69
scr_81BEC76
scr_81BEC83
scr_81BEC90
scr_81BEC9D
scr_81BECAA
scr_81BECB7
scr_81BECC4
scr_81BECD1
scr_81BECDE
scr_81BECEB
scr_81BECF8
scr_81BED05
scr_81BED12
scr_81BED1F
scr_81BED2C
scr_81BED39
scr_81BED46
scr_81BED53
scr_81BED60
scr_81BED6D
scr_81BED7A
scr_81BED87
scr_81BED94
scr_81BEDA1
scr_81BEDAE
scr_81BEDBB
scr_81BEDC8
scr_81BEDD5
scr_81BEDE2
scr_81BEDEF
scr_81BEDFC
scr_81BEE09
scr_81BEE16
scr_81BF398
scr_81C47AE
scr_81C487E
scr_81C48E6
scr_81C494E
scr_81C49B6
scr_81C4AEE
scr_81C4B56
scr_81C4BBE
scr_81C4D84
scr_81C4DEC
scr_81C54AF
scr_81C54B4
scr_81C54EA
__________________



Reply With Quote
  #4    
Old October 1st, 2014, 06:14 PM
Urist McHemlock's Avatar
Urist McHemlock
Manager of Stukosaran
 
Join Date: Sep 2008
Location: Hope's Peak Academy
Age: 19
Gender: Male
Nature: Serious
Great job Shiny Quagsire. As usual, I will be sitting on the sidelines. Do it for !!SCIENCE!!
__________________

"Hee-ho!"
Reply With Quote
  #5    
Old October 1st, 2014, 09:01 PM
MrDollSteak's Avatar
MrDollSteak
Formerly known as 11bayerf1
 
Join Date: Dec 2008
Location: Hong Kong
Age: 19
Gender: Male
I don't know if this is useful at all, but I've started work at identifying a few routines, and saying what new abilities and items could be added to these checks, this doesn't really take into account how to add these routines to the dissassembly but its just something to think about. I'd be glad to give you all the routines I have so that you can work on implementing them into the calcs. I think putting it in directly like this is great as it saves free space from branches into free space in the long run and risks less bugs.

Routines

Spoiler:

loc_8014E3C: Macho Brace check for Speed drop (Can be used for Speed boosting or lowering items)
loc_8014E64: Quick Claw check for increased priority (Can be used to create priority boosting abilities like Prankster)

loc_80176F2: Checks the move set by Choice Band and prevents the use of other moves (Used for Assault Vest)
loc_801792E: Check to struggle if Choice Band move is out of PP (used to create Assault Vest)

off_8019F18 ability_something: Checks the field for present abilities(registers r0=x13, r1=0x0, r2=0xabilityindex, r3=0x0 checks the whole field, whereas
r0=xE, r1=0x0, r2=0xabilityindex, r3=0x0 checks your side of the field, this can be used to check for Veil abilities, Aura Break, Damp in Aftermath etc.)

off_801A8B4: Contact ability check (Loads the defending pokemon's ability then adds it to the value of the table at 1A8D0 picking the routine. I personally would rewrite this to incorporate for the new contact abilities)
loc_801A994: Color Change
loc_801AA5C: Rough Skin
(can be edited to do 1/8 instead of 1/16 max hp)
loc_801AB1C: Effect Spore
loc_801AC14: Poison Point
loc_801ACF0: Static
loc_801ADCC: Flame Body
loc_801AEA8: Cute Charm


loc_801D960: Protect Check (The check for the special status bit is at 1D968, can be expanded to include Spiky Shield, Wide Guard, King's Shield, Quick Guard etc.)

loc_801E4F0: Part of the Critical Calculation routine (The check for Battle Armor is located at 1E4FE, and the check for Shell Armor at 1E502, can be used for Lucky Chant)

atk15_8021124: Calculates the chance of secondary effects
(The check for Serene Grace is located at 21136, can be used to make Sheer Force's removal of secondary effects)

atk77_8026F68: Set Protect (Can be expanded to set different special status bits for Quick Guard, Wide Guard, King's Shield and Spiky Shield)

loc_8027D58: Clear Body and White Smoke Check
loc_8027D74: Stat doesn't get lowered
loc_8027E0C: Keen Eye
loc_8027E6C: Hyper Cutter
(can be used to make Big Pecks if you make the value of R7 check for #0x2)
loc_8027ED0: Shield Dust (differs from the others as it only blocks stat reductions from secondary effects)
loc_8028060: Stat lowering effect (could be used for Defiant and Competitive)

atkB1_802AAA4: Set Foresight (Can be expanded to set a different special status bit for Miracle Eye)

loc_803EDFC: Huge Power and Pure Power (can be used for various damage calc abilities, such as Fur Coat, Grassy Pelt)

loc_803EF3C: Stat boosting Hold item checks
loc_803EF44: Choice Band check for Attack Boost
(used to create Choice Specs)
loc_803EF58: Soul Dew check
loc_803EFC8: Deepseatooth check
loc_803EFDE: Deepseascale check
(used to create Assault Vest, Gen IV Metal Powder and Eviolite)
loc_803EFF6: Light Ball check
loc_803F00A: Metal Powder check
(Used to create Eviolite)
loc_803F020: Thick Club check

loc_803F036: Thick Fat
(Used to create Heatproof and Multiscale)
loc_803F04E: Hustle (Used to create Technician)
loc_803F064: Plus
loc_803F092: Minus
loc_803F0C4: Guts
loc_803F0E0: Marvel Scale


loc_803F102: Mud Sport
loc_803F126: Water Sport
(Uses the routine ability_something to check if the respecting sport move has been set, could be expanded to check for new Terrain moves, also to change the reduction effect from 50% to 67%)
loc_803F14A: Overgrow
loc_803F17A: Blaze
loc_803F1AA: Torrent
loc_803F1DA: Swarm
(could be used to create Fairy Aura, Dark Aura and Aura Break, as well as the new Aerilate etc. abilities)


I'll either update this section or make new posts detailing new routines once I can be bothered to document them.
I'd also consider including lots of the fixes or features that hackers have found, such as the PSS, JPAN's Save Block Hack, Hackmew's Pokedex Fix, Running Shoes fix etc.
__________________

Last edited by MrDollSteak; October 2nd, 2014 at 04:22 AM. Reason: formatting
Reply With Quote
  #6    
Old October 2nd, 2014, 12:31 AM
Touched's Avatar
Touched
 
Join Date: Jul 2014
Gender: Male
Congratulations on getting FireRed to assemble. I neglected to mention something to you on the IRC that is probably the reason for your crashes. Knizz's IDB is not a perfect disassembly of FireRed. He changed some locations to pure ASCII (such as the intro, some menu items, etc.) for readability reasons. I don't think he anticipated anyone using his IDB to create a split disassembly. This, of course, means that strings are null terminated instead of ~0 terminated, meaning that the strcpy and other string related routines will break.

Anyway, I've started work on the (IDA Python) scripts that we spoke about. Here is the one you suggested. It starts at the address of the cursor in IDA, and prompts you for an end address. It then jumps to the next aligned unexplored region and attempts to identify it as code. If it succeeds, it tries to make it a subroutine.

Just go File -> Script File to run it.
Spoiler:
Code:
from idc import *

# Instruction pointer; allows the user to select where to begin analysis
address = ScreenEA()

# Stop the search here. Prompt the user to decide
end_addr = AskAddr(0x08FFFFFF, 'Enter the address of the end of the code region.')

while address < end_addr:
    # Find the next unexplored region
    address = FindUnexplored(address, SEARCH_DOWN | SEARCH_NEXT)

    # Check if the address is word aligned
    if address % 4:
        # It isn't; attempt to align it
        address += 2

        # Try to search and align again
        continue

    # We now have an aligned address that is unidentified
    # Make it code
    length = MakeCode(address)

    # Make instruction failed
    if not length:
        continue

    # Attempt to declare the code a function
    MakeFunction(address)

    # Add the length and continue the loop
    address += length
Reply With Quote
  #7    
Old October 5th, 2014, 03:51 PM
knizz's Avatar
knizz
 
Join Date: Aug 2007
Quote:
Originally Posted by Touched View Post
… I neglected to mention something to you on the IRC that is probably the reason for your crashes. Knizz's IDB is not a perfect disassembly of FireRed. He changed some locations to pure ASCII (such as the intro, some menu items, etc.) for readability reasons. I don't think he anticipated anyone using his IDB to create a split disassembly.
With the following idc script you can revert any selection to it's original form:
Code:
#include <idc.idc>
static main(void) {
        auto ptr, end, k;
        ptr=SelStart(); if(ptr==BADADDR) return;
        end=SelEnd(); if (end==BADADDR) return;
        while(ptr<end) {
                PatchByte(ptr, GetOriginalByte(ptr));
                ptr++;
        }
}
__________________
Firered IDA 6.1 DB: https://www.dropbox.com/s/hvvmxxoo1dkmdzc/firered.idb
VBA-M with lua scripting support (no longer in development)
Reply With Quote
  #8    
Old October 7th, 2014, 07:24 PM
Shiny Quagsire's Avatar
Shiny Quagsire
I like .short's because they're comfy and easy to wear.
 
Join Date: May 2009
Location: Hoenn Safari Zone
Age: 16
Gender: Male
Nature: Jolly
So I've been working on splitting apart the scripts in the ROM, and I almost have it done.However, there were some issues which caused certain areas of the ROM to be decompiled improperly, as well as some "mysterious" data areas which were seemingly neither scripts nor strings. After some closer inspection I found that they were actually Japanese strings leftover from the initial translation. For anyone curious, a full list of the Japanese texts and their offsets can be found here. I found it very interesting that these happened to be in the ROM in the first place, since you'd think they'd remove them during translation. Google Translate can give a somewhat decent idea of what they say but frankly it's really horrible at translating. As an example, this section:

Code:
この あいだ やまおくで
きんのたまを ひろい ましてね!
つかえない しなもの ですが
うったら なんと 5000$でした
was Google Translated to this:
Code:
This Aida mountains 
I much less broad balls of gold! 
Although it is an article which can not be used 
It was a whopping $5000 Uttara
With the actual translation (by GameFreak) being:
Code:
A NUGGET is totally useless.
So I sold it for $5000.
Granted, this isn't a perfect translation on GameFreak's part (as in, word for word), but it does show that a lot of these strings are just duplicates of already existing translated strings.
__________________



Reply With Quote
  #9    
Old October 8th, 2014, 05:47 AM
daniilS's Avatar
daniilS
busy trying to do stuff not done yet
 
Join Date: Aug 2013
Age: 15
Gender: Male
Quote:
Originally Posted by Shiny Quagsire View Post
So I've been working on splitting apart the scripts in the ROM, and I almost have it done.However, there were some issues which caused certain areas of the ROM to be decompiled improperly, as well as some "mysterious" data areas which were seemingly neither scripts nor strings. After some closer inspection I found that they were actually Japanese strings leftover from the initial translation. For anyone curious, a full list of the Japanese texts and their offsets can be found here. I found it very interesting that these happened to be in the ROM in the first place, since you'd think they'd remove them during translation. Google Translate can give a somewhat decent idea of what they say but frankly it's really horrible at translating. As an example, this section:

Code:
この あいだ やまおくで
きんのたまを ひろい ましてね!
つかえない しなもの ですが
うったら なんと 5000$でした
was Google Translated to this:
Code:
This Aida mountains 
I much less broad balls of gold! 
Although it is an article which can not be used 
It was a whopping $5000 Uttara
With the actual translation (by GameFreak) being:
Code:
A NUGGET is totally useless.
So I sold it for $5000.
Granted, this isn't a perfect translation on GameFreak's part (as in, word for word), but it does show that a lot of these strings are just duplicates of already existing translated strings.
The translation issue is because the games only use kana. I have tried replacing it with kanji, which gives:
Quote:
この間山奥で
きんのたまを拾いましてね!
使えない品物ですが
売ったらなんと5000$でした
Translated by Google:
Quote:
During this time in the mountains
I have picked up balls of gold!
Although it is an article which can not be used
It was a whopping $ 5000 if you sell
which is fairly decent
__________________

Thanks to JPAN, Jambo51, Shiny Quagsire and knizz for teaching me almost everything I know about hacking, through tutorials or in person.
Reply With Quote
  #10    
Old October 8th, 2014, 10:52 AM
U.Flame's Avatar
U.Flame
Brony Hacker
 
Join Date: Jun 2008
Location: Sapphire City in future Hoenn
Age: 19
Gender: Male
Nature: Jolly
Yes! The Pokemon hacking community is taking the first steps of evolving into advanced hacking the likes of which the Sonic hacking community has been! Once the methods are perfected and tools adapted, just think of what's possible, what the future has in store for our fan games! I'm so excited! I wish I had any helpful knowledge, but all I can do is cheer you on and offer emotional support. That and work on my own unrelated experiments.
__________________
More good news! A friend gave me his old laptop! It's definitely not new, but it's modern and fully functional! Nothing can stop me now!

Yay my username is accurate now! Also holy crap I just realized Unbeatable was misspelled for the longest time! Fixed. xp

Times I've been ninja'd: 18
Times I've ninja'd people: 3

Quote:
Originally Posted by drarixio View Post
Unbeatable Flame would make a pokemon trainer run outta breath in the anime:
Unbeatable Flame, Flamethrower.
Unbeatable Flame, Sky Uppercut.
Unbeatable Flame, this.
Unbeatable Flame, that.
Un*pant*beatable---Flame, hooollaaa
Un-un-un-un--bea-bee....*Pokemon trainer fainted*
Reply With Quote
  #11    
Old October 12th, 2014, 08:29 PM
IceGod64's Avatar
IceGod64
My imagination.
 
Join Date: Oct 2008
Location: Castelia City
Age: 26
Gender: Male
Nature: Naive
Thank goodness this is FINALLY taking off; I've tried ROM hacking for many different games in the past, and it's really a complete mess. I really hope to see this progress. There's just so much room for expansion once this gets to a more hackable state. I will attempt to download and look into it as well once I'm able.
__________________

Reply With Quote
  #12    
Old October 14th, 2014, 08:29 AM
LocksmithArmy's Avatar
LocksmithArmy
Mew!
 
Join Date: Feb 2013
Age: 25
Gender: Male
once its ripped, we canmake a full IDE to write scripts asm code and even map, similar to Visual studios... Then wed be set lol.
__________________
Reply With Quote
  #13    
Old October 16th, 2014, 08:25 PM
thisisdada's Avatar
thisisdada
 
Join Date: Oct 2014
I'd try to help out. I've done some disassembly of Gen 1, and I know how to extract tables and code from the ROM. I really prefer ASM-level stuff anyways. It might take longer, but you have complete control over the outcome and you're only limited by the console itself.
Reply With Quote
  #14    
Old 3 Weeks Ago, 03:58 PM
Shiny Quagsire's Avatar
Shiny Quagsire
I like .short's because they're comfy and easy to wear.
 
Join Date: May 2009
Location: Hoenn Safari Zone
Age: 16
Gender: Male
Nature: Jolly
Heyo all,

First off, long time no update (about a month it seems), but do not worry. I've been (somewhat) busy working on this and a few other small projects, and I'm finally done with a major part of the ROM: scripts. Yep, pretty much every part of the first binary block has been picked apart by SEA's new Linear Script Decompiler and formatted into a readable, organized, and compilable ASM file. However, a small block of battle scripts has yet to be decompiled, and remains purposely stuck as a string until I feel like adding battle script support to my command database and SEA itself. However, I feel that the battle scripts will be a bit easier to work with than normal scripts because they aren't as... loopy. And by loopy I mean completely jumbled up with all sorts of different data like strings, movement data, mart data, level scripts, japanese strings, etc.

Basically, at this point every script in the game is decompiled, and can be viewed and edited. That being said, the best thing anyone could probably do to help is to find parts in the file which are improperly decompiles. This basically consists of scripts being missing or forced to a string. If you find a string which looks like gibberish (or, a script which looks like gibberish) you can just post it here or post an issue on GitHub. In most cases, the gibberish scripts are actually Japanese strings which happen to get picked up as scripts due to the large amount of values which normally don't occur in english strings. And if a string looks like gibberish, it's either misinterpreted movement/mart/level script data or it's a script which got forced as a string for some reason. I will say that all data after (I think) 0x1C68F4 is battle scripts forced as strings, so those will look like complete garbage, and they should look like garbage.

In terms of what to do next, I'll probably start by going down the next binary blob and converting everything to data down there. MEH will likely become crucial in getting map data converted, so some work will likely get done to make sure I have every bit of data read from MEH.
__________________



Reply With Quote
  #15    
Old 1 Week Ago, 11:47 AM
MajinBlueDragon
 
Join Date: May 2004
Gender:
So, I dunno if this is useful for this, but let me know--long ago, I reverse-engineered the sound engine. By this, I mean...I have the actual m4a sound engine from the GBA dev kit, and essentially reverse engineered the Pokemon sound data in to files this engine can compile back again, including all music and sound effects from the entire Gen 3 series--think of it as essentially having the entire audio source code of the games available to you.

Again, I don't know if that will help this project, though it does compile to assembly output, so do let me know if it will be of any value and I can start getting it in to a condition anyone other than myself could use :P this is a really awesome project and I am happy to see it happening!

So, I dunno if this is useful for this, but let me know--long ago, I reverse-engineered the sound engine. By this, I mean...I have the actual m4a sound engine from the GBA dev kit, and essentially reverse engineered the Pokemon sound data in to files this engine can compile back again, including all music and sound effects from the entire Gen 3 series--think of it as essentially having the entire audio source code of the games available to you.

Again, I don't know if that will help this project, though it does compile to assembly output, so do let me know if it will be of any value and I can start getting it in to a condition anyone other than myself could use :P this is a really awesome project and I am happy to see it happening!
Reply With Quote
  #16    
Old 1 Week Ago, 03:17 PM
Shiny Quagsire's Avatar
Shiny Quagsire
I like .short's because they're comfy and easy to wear.
 
Join Date: May 2009
Location: Hoenn Safari Zone
Age: 16
Gender: Male
Nature: Jolly
Quote:
Originally Posted by MajinBlueDragon View Post
So, I dunno if this is useful for this, but let me know--long ago, I reverse-engineered the sound engine. By this, I mean...I have the actual m4a sound engine from the GBA dev kit, and essentially reverse engineered the Pokemon sound data in to files this engine can compile back again, including all music and sound effects from the entire Gen 3 series--think of it as essentially having the entire audio source code of the games available to you.

Again, I don't know if that will help this project, though it does compile to assembly output, so do let me know if it will be of any value and I can start getting it in to a condition anyone other than myself could use this is a really awesome project and I am happy to see it happening!
That would actually help out a ton. I wouldn't be able to use any official GBA SDK code though if that's what you mean, but source files always help out a ton, especially for sounds.
__________________



Reply With Quote
  #17    
Old 1 Week Ago, 11:00 PM
MajinBlueDragon
 
Join Date: May 2004
Gender:
ah yeah, totally. I'll try and package it up with a quick little explanation and send it your way a bit later then!
Reply With Quote
  #18    
Old 4 Days Ago, 04:21 PM
OrangeStar's Avatar
OrangeStar
The Star of Destiny
 
Join Date: Nov 2014
Gender: Female
Nature: Bashful
I really want to help with this :3
__________________
May the stars guide you into a destiny that is broad and great....
Reply With Quote
  #19    
Old 3 Days Ago, 03:29 PM
Ksiazek Bartlomiej's Avatar
Ksiazek Bartlomiej
Rejishan awake...
 
Join Date: Jun 2008
Location: Takoabe Town (Region Thonsu)
Age: 21
Gender: Male
Nature: Hardy
I was intrested about dumping Pokemon Ruby Double Wild Battles unfinished code to end it.
__________________
- Thonsu Region will never die when Rejishan take care about them. Even the evilnesse of Team Mystic do not destroy land of Thonsu.

POKEMON DIRTY SUN - Comming Soon.
Reply With Quote
  #20    
Old 1 Day Ago, 11:17 PM
Shiny Quagsire's Avatar
Shiny Quagsire
I like .short's because they're comfy and easy to wear.
 
Join Date: May 2009
Location: Hoenn Safari Zone
Age: 16
Gender: Male
Nature: Jolly
Greets all,

I was talking with Sufflejoy on the IRC and I decided to add a few example commits of how to commit data in .bins vs .asms. Basically, if the data is a table, struct, should be able to be read out, or contains any pointer whatsoever, it needs to be committed as a .asm file and .include'd (or put within firered.asm itself to be separated later). Large binary data like bitmaps, LZ77 compressed data, and other bits should be committed as a .bin, or if it has accompanying data (ie for fonts, font widths) a .asm with the accompanying data and a .bin for the blob. If you need an example for this, see here. Examples for .bin and .asm commits can be found here and here respectively. The disassembly is based on knizz's IDB, so if you want to commit get that set up for referencing and grabbing data lengths and such.
__________________



Reply With Quote
Reply
Quick Reply

Sponsored Links
Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Minimum Characters Per Post: 25



All times are UTC -8. The time now is 05:53 PM.


Style by Nymphadora, artwork by Sa-Dui.
Like our Facebook Page Follow us on Twitter © 2002 - 2014 The PokéCommunity™, pokecommunity.com.
Pokémon characters and images belong to The Pokémon Company International and Nintendo. This website is in no way affiliated with or endorsed by Nintendo, Creatures, GAMEFREAK, The Pokémon Company or The Pokémon Company International. We just love Pokémon.
All forum styles, their images (unless noted otherwise) and site designs are © 2002 - 2014 The PokéCommunity / PokéCommunity.com.
PokéCommunity™ is a trademark of The PokéCommunity. All rights reserved. Sponsor advertisements do not imply our endorsement of that product or service. User generated content remains the property of its creator.