View Full Version : Tis me the interdpth with a GBA ROM HACKING tutorial

December 11th, 2008, 9:26 PM
Saturday, December 13th, at 7 PM Central Standard I will be hosting a ROM hacking speed through tutorial.

It will last for at the most 4 hours.

First hour.
Using visual boy advance we will locate the title screen graphics.
Decompress it.
Recompress it.

Insert a larger amount of data with a hex editor and successfully repoint it.
Learn about pointers and how they work.

Then we will learn some inner workings of the GBA.

And finally ASM hacking.

1.There is to be no use of the word "hex" as a verb, no "hexing, hexer, etc" None of that.

It is hex editing, none of those.

2.Be at least twelve.

3.If you know something.

Either wait or go along, or leave.
4. There will be cursing.

I am doing this by myself for the sake of ROMHacking, I except some form of cooperation.

I will provide all the tools, but not the ROMs.

And we will not be using any game specific editors, the tutorial will take place in the PC romhacking room.

Please come and enjoy yourselves and learn a whole lot. :)

Tutorial will take place in the Rom Hacking IRC room for PC. :)

December 11th, 2008, 10:45 PM
Sounds fun. I'll be sure to attend. :D I hope it all ends well and you don't end up shooting someone.

Ninja Caterpie
December 11th, 2008, 11:03 PM
The only thing is...I think AEST is 16 hours behind (or in front?) of CST... xP
That means it would be....3AM in the morning? xP

If I'm wrong and it's in a good time, I'd love to attend. Great idea, interdpth. [css-div="font-size:xx-small"]You're back?[/css-div]

December 12th, 2008, 3:30 AM
I would like to attend as well. ^_^

And Central's my timezone, so I think I'm a-ok in that sense.

December 13th, 2008, 8:16 AM
so where is the IRC ?i really want to go if i can find it

December 13th, 2008, 8:54 AM
Check the notices.

I need at least 3 people to be in the class, sooo post here if you'll be.

December 13th, 2008, 9:19 AM
I will be there. It should be fun.

December 13th, 2008, 10:19 AM
So like SonSebbe killed the class by using the word HEXORS

So kill 'em.

Banjora Marxvile
December 13th, 2008, 10:25 AM
I would enter, but if it is when I think it is, I can't. Is it currently 12.25pm to you? If so, I definately can't.

Ninja Caterpie
December 13th, 2008, 11:38 AM
Wait, which Central Standard is it?

TB Pro
December 13th, 2008, 11:47 AM
I'll be sure to attend. Luckily for me we are in the same Timezone, so it'll work out great. Seems like this may help out the otherwise ****ed Hacking community. Yes I am talking about myself as well. Ahem, anyways, I can't wait.

Banjora Marxvile
December 13th, 2008, 12:01 PM
I'm right, I won't be able to attend... My timezone is bad...

December 13th, 2008, 2:47 PM
Class is on.

December 13th, 2008, 7:57 PM
This is the complete log, for those interested. Preview + attachment below:

Session Start: Sun Dec 14 00:34:58 2008
Session Ident: #tpc-romhacking
* Now talking in #tpc-romhacking
* Topic is 'Spam and Die!<3 | The Official Pokecommunity ROM Hacking Channel | 13RHN Issue 15 Out Now | http://www.pokecommunity.com/showpost.php?p=4178840&postcount=282 '
* Set by Cierra on Sat Dec 13 21:30:37
<&Thrace> ;_;
<&Thrace> ok
<&Thrace> well
<&Thrace> please continue
<&Britney_Spears> So
<&Britney_Spears> all we have to do
<&Britney_Spears> Is wait for Kyledove's permission to use the tiles?
<+interdpth> Lol
<+interdpth> I hope they read all the r rules :(
<&Thrace> yup
<&Thrace> @Luke
<&Thrace> anyways
<&Britney_Spears> Alright
<&Thrace> whenever you want to start interdpth
* element ([email protected]) has joined #tpc-romhacking
<+interdpth> Well uh
<megiddo> me
<element> me
<&Thrace> me
<+interdpth> Ok
<+interdpth> Uh
<megiddo> I'll summon jssse
<megiddo> jesse*
<+interdpth> Let me decide the lesson plan
<megiddo> kk
<element> oh so this is a class?
<Jesse> I'm here
<+interdpth> Let me verify my toolset
<Lone> me
<Lone> now
<+interdpth> Everyone got ruby ready?
<megiddo> no
<+interdpth> liek if u aint pirate
<Lone> ys
<element> for what>
<+interdpth> din get duh fck outz
<Lone> why ruby
<Lone> :(
<+interdpth> Because
<element> what is happening?
<+interdpth> I'm using Ruby.
<Lone> i'm loggin' this<censored>
<~Sotomura> For the note
<~Sotomura> The swear filter is on
<~Sotomura> Any way around it = temp. ban
<Lone> ok?
<Lone> >_>
<Lone> Anywho
<Lone> Ruby, ready
<element> What is happening?
* wakachamo ([email protected]) has joined #tpc-romhacking
<Lone> hex editing class element
<+interdpth> So I can curse all I want and it'll be censored?
<element> oh okay *downloads ruby*
<+interdpth> Like
<&Thrace> no
<&Thrace> don't curse
<+interdpth> I curse
<+interdpth> I've always cursed ;(
<+interdpth> Ask Soto
<~Sotomura> That I acknowledge
<&Thrace> everyone is ready now interdpth
<~Sotomura> However, it's simply not tolerated
<&Thrace> please continue
<~Sotomura> D;
<+interdpth> I will curse allow me too for dis class and i'll watch myself after
<element> should I use hex workshop or hexecute?
<megiddo> I have ruby ready now
<+interdpth> We will be using this toolset
<+interdpth> http://interdpth.arc-nova.org/Tools.zip
<Jesse> I has ruby
<Jesse> Cos I rule
<Jesse> Wait
<Jesse> Ah nvm
<+interdpth> We're going straight in to finding and editing compressed graphics
<Jesse> Alright
<+interdpth> Eew jitters
<+interdpth> One sec
<~Sotomura> interdpth...
<~Sotomura> Is that copy of hex workshop hacked? :|
<element> k im ready
<~Sotomura> I'll warn you now
<+interdpth> Only if you follow the instructions
<+interdpth> 8D
<~Sotomura> But if I catch you giving warez instructions
<~Sotomura> Or downloads
<+interdpth> I'm not
<Lone> what the heck is mzm
<Lone> anywho
<Lone> continue
<+interdpth> This is the set I used for my last class
<+interdpth> So bleh
<+interdpth> Anyway
<megiddo> still downloading
<+interdpth> We will be looking for the title screen
<+interdpth> Let me grab it's number so we can edit that
<+interdpth> This lesson will cover finding GFX
<+interdpth> er lz compressed GFX
<+interdpth> editing reinserting
<+interdpth> Then reinserting a bigger picture and repointing with a hex editor
<&Thrace> awesome :D
<Lone> !
<megiddo> :P
<+interdpth> This is stupid easy
<element> should be usefull
<+interdpth> So you'll be getting what takes some people years to understand in an hour or two
<Jesse> Sounds kewlkats
<Lone> xd
<+interdpth> Who's scared of hex editing and the dread LZ COMPRESSION
<+interdpth> ?
<+interdpth> Oh blah
<megiddo> xp
<+interdpth> mzm.zip shouldn't've been in there
<Jesse> Rofl
<+interdpth> Just delete that folks
<Lone> y
<Lone> what is it
<Lone> ;x
<Jesse> Ur mum
<Jesse> Nah jk
<Jesse> I'll be good
<Lone> OH<censored>
<Lone> zero mission
<Lone> yes
06 * Lone keeps
<Jesse> Rofl
<+interdpth> That's what I hax
<megiddo> :P
<Jesse> Awesome
<Lone> I've been looking for this
<Lone> lol
<+interdpth> Crap
<+interdpth> I got a bad dump XD
<Lone> xd
<megiddo> :o
<element> this is more like a circus
<Lone> xd
<Jesse> Yeah
<+interdpth> Hence why I wanted to start at 7
<+interdpth> But oh well
<+interdpth> Give me a few minuts
<Jesse> Circuses are awesome
<+interdpth> minutes^
<Jesse> Rofl k
<megiddo> k
<Jesse> In that case, I'mma grab some food =D
<element> can I be one of those monkeys who craps on the crowed?
<element> crowd
<element> *
<Lone> okay guys
<Lone> can we be serious
<Lone> plz
<Lone> I'd like to actually learn something here
<Lone> ...not about monkeys crapping on circus crowds
<element> hes not here yet
<element> so
<Lone> Yeah I know
<Lone> But still
<Lone> >_>
<element> I might as well get a drink
<+interdpth> Why is VBA not working >_<
<Lone> your comp hates you
<megiddo> what's it doing
<element> crapping on the crowd
<+interdpth> There we go
<megiddo> :D
<Jesse> Back
<Jesse> mmmm
<Jesse> Pop
<Jesse> And beer
<Jesse> Rofl
<megiddo> Lol
<Jesse> Jk
<element> I have orange crush!
<Jesse> I has Dr. Pepper and Mountain Dew
<element> mixed with booze
<Jesse> Rofl
<Jesse> Mine's straight
<+interdpth> Ble
<+interdpth> h
<+interdpth> Ugl picture
<element> unlike yunghove
<+interdpth> Anyway
<+interdpth> Whenever one is ready let me know
<Jesse> I'm ready
<element> ready
<Lone> ready
<megiddo> same
<+interdpth> Alright
<+interdpth> Fire up the vba in the tool set and load ruby
<+interdpth> Click tools then click logging
<+interdpth> and check swi
<+interdpth> Then click ok
<+interdpth> Press A on the screen
<+interdpth> Then A once more and you should see the groudon
<+interdpth> Tell me when you're there
<megiddo> ther
<Jesse> There
<megiddo> there*
<+interdpth> And you seee a crapload of text in the window?
<megiddo> yep
<Jesse> no
<Jesse> Crap
<element> there
<element> no\
<Jesse> What the poop
<megiddo> logging window
<Lone> ...
<Lone> eh
<element> i dont see it
<Lone> It's under tools
<Lone> click Loggin
<Jesse> I see nothing
<Lone> uh
<Lone> what the hell
<Lone> When I load up Ruby it brings a giant white scren
<Lone> *screen
<+interdpth> http://img03.picoodle.com/img/img03/3/12/13/f_untitledm_db9333f.png simiar
<Jesse> Rofl
<Lone> It normally works
<Lone> o_o
<Jesse> Crashed
<element> crashed
<+interdpth> Similar
<+interdpth> Put the rom in a different directory then vba
<+interdpth> and try
<+interdpth> that's what I had to do
<Jesse> This is bull
<element> k now it worked
<Lone> it already is
<Lone> >_>
<megiddo> :D
<Jesse> I don't see any text in the damn window
<Jesse> Same with me
<+interdpth> You're using the one from the toolset right?
<Lone> yes
<+interdpth> And you clicked ok
<element> keep the logging window open
<megiddo> is this vbadsl-h?
<+interdpth> Before getting to the groudon screen
<+interdpth> No
<megiddo> kk
<+interdpth> It's VBA developer edition
<megiddo> ah
<Jesse> Oh
<Lone> It just brings a white screen when I load the rom
* liger66 ([email protected]) has joined #tpc-romhacking
<megiddo> :/
<Lone> not even getting to logging
<Lone> it all works
<~Sotomura> How good is No$GBA as a debugger?
<Lone> but white screen comes up and nothing happens
<+interdpth> Put the rom in a different directory
<+interdpth> Soto: Amazing
<Jesse> This is bull
<Jesse> hmm
<Lone> same thing
<element> then the rom is<censored>
<element> wait
<Lone> it works fine on my other VBA
* AmineX ([email protected]) has joined #tpc-romhacking
<element> wasnt that cencored?
<Lone> ys
<element> oh
<element> not for me\
<+interdpth> Ok
<+interdpth> Well
<+interdpth> we learned how to do that
<+interdpth> >_>
<+interdpth> Now
<+interdpth> Well
<+interdpth> I still need to explain
<+interdpth> For those that don't work
* AmineX is now known as IdiotKawa
<+interdpth> Wait until I give you guys the go ahead to join us
<+interdpth> For the ones that the logging did work for
<+interdpth> Please open up note pad
<+interdpth> Right click the logging window where the text is
<megiddo> k
<+interdpth> right click, select all and copy
<+interdpth> then paste into notepad tell me when you're done
<megiddo> done
<element> done
<liger66> can c\some one help my i think i stuffed the time zone conversion
<+interdpth> Are you here for the class?
<liger66> and im a bit late
<liger66> yea
<+interdpth> We actually began earlier then supposed too
<Lone> oh
<Lone> that roms crap
<megiddo> LZ77UnCompVram: 0x08e9c798,0x06000000
<+interdpth> No
<Lone> but it works fine when i use it as a base for other things
<+interdpth> That's not what we want
<Lone> odd
<Lone> o_O
<megiddo> what is it
<+interdpth> Stop skipping
<megiddo> i'm just wondering
<+interdpth> Alrighht
<+interdpth> In note pad
<+interdpth> Go to the top
<megiddo> i'm there
<+interdpth> ctrl + f and type in LZ77UnCompVram
<+interdpth> Too get the area
<+interdpth> Now we want to know where the gfx decompressed too
<+interdpth> So go tools -> Map viewer
<+interdpth> BG0 obviously
<megiddo> done
<Jesse> Err
<Jesse> I'll jsut skip this thing
<+interdpth> We want the char base
<Jesse> Cos the stupid VBA is<censored>
<Jesse> :P
<+interdpth> 0x6008000
<megiddo> :P
<+interdpth> Jesse this part is almost over
<Jesse> k
<+interdpth> So look for that in one of the LZ things
<+interdpth> And you'll find LZ77UnCompVram: 0x08393250,0x06008000
<megiddo> the nlz tool?
<element> k found it
<+interdpth> To the ones it didn't work
<+interdpth> You can join in now
<Jesse> ok
<+interdpth> One sec
<+interdpth> We have a new guy
<Jesse> k
<Jesse> liger?
<liger66> sorry
<+interdpth> yeah
<Jesse> If it wasn't for adam, I would have been late also
<Jesse> :P
<element> so what now?
<Jesse> Hold on
<Jesse> He's gotta tell liger what to do
<Lone> give me a few seconds and I can finally join
<element> oh okay sorry
<Jesse> :P
* gamefreak ([email protected]) has joined #tpc-romhacking
<Jesse> hmm
<Lone> what the<censored>
<Lone> that rom's bad too
<Jesse> Is that another late person?
<Jesse> hmm
<gamefreak> me?
<megiddo> are you here for the lessons?
<wakachamo> lol, lessons
<gamefreak> kind of
<gamefreak> i just wanted to see what he was doing :)
<Jesse> I see
<+interdpth> Ok
<Jesse> And waka what's so funny?
<+interdpth> We'll just pot the log
<+interdpth> Anyway
<+interdpth> Open up nlz
<+interdpth> open up ruby
<+interdpth> Tell me whence
<megiddo> done
<element> it says I need network framework
<wakachamo> Jesse: And waka what's so funny?<-- do I even know you?
<Jesse> Done
<Jesse> You sure don't
<wakachamo> k, miss TB Pro
<+interdpth> Element
<+interdpth> Do you have unlz?
<+interdpth> Either will work
<element> yeah
<element> okay
<+interdpth> Just takes longer in unlz
<element> no matter
<+interdpth> Everybody navigate to 0x393250 in the respective lz thingies
<Lone> THERE
<Lone> finally
<megiddo> done
<Jesse> I cannot
<Jesse> :P
<+interdpth> Why so Jesse?
<Jesse> Uhh
<megiddo> is there a way to get a more normal palette
<Jesse> Oh, is this in NLZ?
<element> mine is like static on a tv
<+interdpth> Whichever you want to use
<Jesse> I thought you meant in Notepad:P
<element> is it right if it looks like tv static?
<megiddo> nope
<megiddo> it should look like groudon
<element> ill search for it
<Jesse> Yeah
<Jesse> It looks like groudon
<+interdpth> I'll wait
<Lone> thank god i'm copying this all or i'd be lost
<megiddo> :P
<Jesse> :P
<Lone> map viewer...
<element> found it
<Jesse> skip ahead
<Jesse> Open NLZ
<Jesse> And goto 393250
<Lone> k
<+interdpth> Ok
<Lone> ty
<+interdpth> Everyone see groudon's tiles
<Jesse> Yw
<element> yeah
<Lone> yes
<Jesse> Yep, i do.
<megiddo> ;)
<+interdpth> Alright
<+interdpth> Click Raw dump in nlz
<+interdpth> call it
<+interdpth> groudon.bin
<+interdpth> same for unlz
<Jesse> Done
<megiddo> done
<element> done
<+interdpth> Now let's use Tile Molestor from teh toolset
<Jesse> Mkay
<element> lol molestor
<+interdpth> Molester^
<megiddo> have to extract it
<+interdpth> Open groundoun.bin
<Jesse> Hold on a sec
<element> I cant find it
<element> ill just download another one
<Lone> er
<Lone> Hold on
<Lone> I have a question
<Jesse> What the crap
<element> do we have to use tile molestor?
<Lone> can I close the notepad from earlier
<Jesse> I extracted it but it's not there rofl
<+interdpth> Yeah lone
<+interdpth> TM
<+interdpth> TLP
<+interdpth> YYCHR
<Lone> k
<+interdpth> Watever
<+interdpth> Just open it
<Jesse> Alright
<Jesse> I'm usin TLP
<+interdpth> and draw a nice smilie face somewhere on groudon
<+interdpth> or something and save
<EarthsVisitor> o.o
<megiddo> goto all files
<Jesse> What the crap
<megiddo> in tm
<megiddo> what codec
<Jesse> It's not the same thing
<Jesse> Lol
<EarthsVisitor> Started early?
<element> it wont take the groudon
<megiddo> it opened mine
<Jesse> Mine too\
<Jesse> But
<Jesse> It
<Jesse> 's not the same
<+interdpth> -.-
<+interdpth> OK
<Jesse> It's all these weird green lines Rofl
<element> it doesnt support
<element> bin
<Jesse> All files
<+interdpth> -.-
<Jesse> Click all files
<+interdpth> Just rename it to GBA
<megiddo> 4 bpp reverse?
<megiddo> or something else
<+interdpth> Yeah
<megiddo> i see it now
<megiddo> :P
<element> not the same
<megiddo> saved
<Lone> k
<Lone> got it
<+interdpth> Element what's wrong?
<Jesse> Yeah Element I feel ya
* Juan ([email protected]) has left #tpc-romhacking
06 * +interdpth has to diagonose all problems so others don't get confused
<element> it's like static

December 13th, 2008, 9:13 PM
Wish I could of joined, but me time zone is out, thanks for the log HackMew. Great job interdpth

TB Pro
December 13th, 2008, 9:48 PM
Ahem ignore anything from me(i.e. cursing ect.). Twas a great lesson, and ASM is next weekend. However, I'm not gonna be here, so hopefully somebody'll log that one too.

December 14th, 2008, 12:03 PM
Aw.. I forgot.. ;_;

I'll read through the log, so thanks for that, HackMew. ^^

I'll remember next week, honest.

Elite Trainer Red
December 7th, 2010, 6:55 PM
O_O is this dead?
:( Hope not

December 7th, 2010, 11:19 PM
Elite Trainer Red, this thread has been dead for just shy of two years. You're only allowed to revive threads if you can contribute something meaningful. So, without further ado...