The PokéCommunity Forums  

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

Notices

Hacks Studio Hacks Studio is the go-to destination for browsing our curated collection of ROM hacks, all made by PokéCommunity members! Patch, play and enjoy!
(Made a bit of progress on a ROM hack already? Post your projects in the Progressing Hacks forum!)
ROM Hacks are to subject to moderator approval before they are displayed.


Advertise here

Reply
Click here to go to the first staff post in this thread.  
Thread Tools
  #1    
Old June 22nd, 2009, 12:36 AM
Hiroshi Sotomura's Avatar
Hiroshi Sotomura
 
Join Date: Sep 2003
Location: Melbourne, Australia
Age: 24
Gender: Male
Nature: Lax

Advertise here
romhackersweekly@pokecommunity
The PokéCommunity’s official ROM hacking publication.
Issue 1 - June 22, 2009
Contents: Welcome - Conversations - Tips and tricks - Endnote
Welcome!

I was seriously going to do a first video review for ROM hackers weekly! But guess what? Acne happened. So this week we're snipping a few sections. (Damn.) Today I'll be publishing two tips and an interview. Maybe I'll get the video review up next issue and we can start pressing to the bigger stuff, too!

Conversations - Interview with Coolboyman

This week I've got an interview from the creator of Pokémon Brown 2.0, Coolboyman. We discuss 2.0 and future plans.
So, Coolboyman, this would be the second time you've been in an interview with us. Anything particularly interesting you'd like to share since the last time?

Coolboyman: Well I'm doing more than ROM hacking now. Even though Prism and Brown's Final Quest (which I promise will be released) is being worked on, I'm working on other games now as well.

Despite being The World of Rijon's webmaster and knowing you, I know absolutely nothing about Brown's Final Quest, hahaha. So, what's that about?

Coolboyman: Well I'm doing more than ROM hacking now. Even though Prism and Brown's Final Quest (which I promise will be released) is being worked on, I'm working on other games now as well. You will need a good team to get through - a lot of the battle are lvl 80-90 battles.

That's pretty... high.
What kinds of new Pokémon do you plan on or have already implemented?

Coolboyman: All the Pokemon are already programmed in, but there will be Legendaries as well as a few other new Pokemon.

I see. Also, you mentioned you had other games in the making? I think I know one of them, but what else?

Coolboyman: Well they're not ROM hacks, they're flash games, however I'm taking the same attitude towards making games with ROM hacking.  I was recently hired to make minigames for a website that I'm really looking forward too, as well as other flash games. My long lost project "Exertion" will also be reborn as a flash game.

Exertion?

Coolboyman: Yeah, it's actually going to be a really dark game, taking place about 300 years in the future with original characters. It's had a tough life too. First it was a Dragon Warrior I hack, then Zelda 1, then Zelda 4, then Zelda 1 again, and finally Flash.

Flash is pretty versatile compared to modifying existing bases, isn't it?

Coolboyman: It has a lot more freedom than ROM hacking, and gives me the opportunity to do more with games that I can't do with ROM hacking. However, ROM hacking has a certain charm to it.  I use it to make new games on an already established engine.  If I were to make Pokemon Prism in flash, I would have to reprogram everything myself to copy the game's coding, and theres no way I could do all of that successfully.

You've been relatively mum about Prism, lately. Have you got anything you haven't shown off that you'd like to say to us now?

Coolboyman: Well I really don't want to spoil much about Prism, it's best if you play through the game without knowing what will come next. There's some complex quests ahead, multi regional traveling, Crafting skills now have a level up system, and some very hidden secrets that I only expect a few people to discover without help.

I think a lot of people would have stuff to look forward to from you in the future, then! Any hacks you've kept your eye on lately?

Coolboyman: Not really to be honest.  I've seen a few hacks with lots of potential, but these days I'm spending more time making games than playing them.

Haha, right.

Anything in HeartGold/SoulSilver that you've been intrigued by?
Think there's anything worth pushing into the ROM hacking community, or would that just be a waste of time?

Coolboyman: Well HG/SS is looking like more than a standard remake, with map changes and new events and features.  I think those are a good addition to the game. And what do you mean by "worth pushing"?

Anything we could possibly implement that looks viable enough, really.

Coolboyman: Well it matters what it is, if it fits, and if the author can do it.  It's up to the author if he or she wants to put any of those in.

Perhaps it's a problem with the community right now, but do you think that, since GameFreak managed to "wow" us with some of its designs (e.g. New Bark Town's windmills) the community might be in need for some extra imagination?

Coolboyman: Well the community can look towards the game for inspiration on how they can improve their own hacks.  Not by necessarly taking ideas from them, but by seeing the potential of detail they can put into their game.

That's quite true.
Well, that's all the questions I had ideas of. Thank you for your time!

Coolboyman: No problem.



Tips and tricks

Two in store today: Creating HM moves, and Making custom instrument sets

Creating HM moves

Tip submitted by Dratii

Are the old HMs boring, or do you want to add a feature from D/P/Pt, such as 'RockClimb'?
Start off by opening a script editor. For this tip XSE was used. Create the usual parts used to start to a script, it maybe dynamic, or static.
Code:
#dynamic 0x//Offset

#org @//label
lock //Prevents the player from moving while the script is executed
Next checkattack or #raw 0x7C is needed. This checks if a pokémon in your party has the specified attack and stores it in 0x800D or LASTRESULT. To either continue the script or end it, compare or #raw 0x21 is used.
This is the script so far;
Code:
#dynamic 0x//Offset

#org @//label
lock //Prevents the player from moving while the script is executed.
checkattack //Hex or Dec of the attack to be checked, e.g. 0x1D or 29 or if #include stdattacks.rbh was used in the header of XSE ATK_HEADBUTT, the script would check for headbutt.
compare LASTRESULT 0x6 //Checks if the attack was found in the party, 0x6 can be changed to a different number, such as 0x1, 0x6 checks the whole party while having 0x1 would only check the first pokémon.
if 0x1 goto //Pointer or label to go to if the attack was found
Now that the game has checked that a pokémon in your party has the attack, we now need to get the script to do the new HM move.
For most HM moves setanimation and bufferpartypokemonSetanimation or #raw 0x9D are used to create the HM banner which show the pokémon using the move. Bufferpartypokemon or #raw 0x7D is used to place the name of the pokémon using the move in text.
The script now looks like;
Code:
#dynamic 0x//Offset

#org @//label
lock //Prevents the player from moving while the script is executed.
checkattack //Hex or Dec or name of the attack to be checked, e.g. 0x1D or 29 or if #include stdattacks.rbh was used in the header of XSE ATK_HEADBUTT, the script would check for headbutt.
compare LASTRESULT 0x6 //Checks if the attack was found in the party, 0x6 can be changed to a different number, such as 0x1, 0x6 checks the whole party while having 0x1 would only check the first pokémon.
if 0x1 goto //Pointer or label to go to if the attack was found
setanimation 0x0 LASTRESULT //Uses last result to prepare a HM animation bar
bufferpartypokemon 0x0 LASTRESULT //Puts the name of the pokémon, from number in last result, into [buffer1] in XSE or\v\h02
Next we need to ask the player if they want using the message command and the compare command. Another message can be used to tell the player that the attack has been used, e.g. [buffer1] used //Attack name.
The executing part of the script is finished off by using, doanimation, waitstate and goto. Doanimation or #raw 0x9C, does the animation that was set earlier; the HM bar. Waitstate or #raw 0x27 waits for the animation to finish. and goto or #raw 0x5, goes to the main script.
This is the finished exceuting script;
Code:
#dynamic 0x//Offset

#org @//label
lock //Prevents the player from moving while the script is executed.
checkattack //Hex or Dec or name of the attack to be checked, e.g. 0x1D or 29 or if #include stdattacks.rbh was used in the header of XSE ATK_HEADBUTT, the script would check for headbutt.
compare LASTRESULT 0x6 //Checks if the attack was found in the party, 0x6 can be changed to a different number, such as 0x1, 0x6 checks the whole party while having 0x1 would only check the first pokémon.
if 0x1 goto //label or pointer //Pointer or label to go to if the attack was found
setanimation 0x0 LASTRESULT //Uses last result to prepare a HM animation bar
bufferpartypokemon 0x0 LASTRESULT //Puts the name of the pokémon, from number in last result, into [buffer1] in XSE or\v\h02
message //label or pointer 0x5 //Asks the player if he wants to exicute the script
compare 0x800D 0x0 //Checks if the player answers no
if 0x1 goto //label or pointer //Pointer or label to go to if the the player answers no
message //label or pointer 0x4
doanimation 0x25 //Does the HM banner animation
waitstate //Waits for the animation to end
closeonkeypress //closes the text box when 'A' is pressed
goto //label or pointer //Goes to the next part of the script
Examples of scripts what can be done;
Headbutt
Rockclimb
Honeytree
....

One in action;


Making custom instrument sets

Tip submitted by the editor

Note: wall of text ahead. Also requires applied knowledge, so if you can't use your head, wait for someone else to. You won't be making anything in this tip - you'll learn what's needed to make something though.

It's been a part of rijonAdventures for a very long time now, but it doesn't seem that anyone's actualy figured it out - that, or someone's posted it and it's been long forgotten about. The way I'm showing you is the barebones way to do it, so this assumes you have a music track to edit the instruments for already AND know the anatomy of a song (and how instrument sets are selected) - if you want to make an in-depth tutorial featuring all the game's instrument sets or make a deluxe music editing tutorial about it, be my guest (and credit me).

Oh, and you must know how pointers work. Actually, not just that, but how to do any hex at all.

What is an instrument set?


An instrument set is dumb; it's not part of anything and is only loaded when its needed. It has no header data or footer data, either. I find that the offset it's placed DOES matter at times, but not all the time. A song will call a specific part of an instrument set - we'll call it an instrument reference here - when it needs it. Generally, each track will call one or two instrument references. So, instrument sets (or to some, "voicegroups") are really a collection of these "instrument references" (for the lack of a better name). The instrument set is the second set of four bytes in a song header.

Anatomy of an instrument set


An instrument set is as big as each individual song needs. Most songs will generally need about 128 instrument references. Find out how many your song needs.

An instrument reference consists of 12 bytes of data. The first 4 bytes are a "header" of sorts for that reference and determine what is required for the last 8 bytes. A typical instrument reference for a "simple"-type instrument looks like this:

00 3C 00 00 78 A9 50 08 FF EB 00 CC

If you looked at the second (green) set of four bytes and recognized a pointer, that's exactly what it is! It's a pointer that leads to an instrument to be played. The first set of bytes (namely, 00 3C) indicate to the game that this track is to load a MIDI instrument. And if anyone knows the point to the third set of bytes, tell me. (They probably "tune" the MIDI instrument.)

This tip isn't going to go too in-depth with the types of instrument references, but if you look through the ROM yourself at a voice group, you'll find different kinds. If you want, make a tutorial with all the instrument references listed in them (like the one above - which is what track 0 of the Viridian Forest song uses). Once you find them all, you'll have all the instrument references that are in the Pokémon games altogether. (Remember: they're twelve bytes each.)

How many instrument references?


You need as many as the song requires. With Sappy open, click the green disclosure triangle at the track list header (note though, that if you're not running Sappy 2006, you'll have to click them all). Play the song completely and look for the highest red number. To that number, add 1 - instrument reference 0 is not included - and the number you get determines how many instrument references are needed.

An example: the highest red number in the Viridian Forest track is 127 but it doesn't include instrument reference 0, so do the math - 128 * 1536 bytes, so that much is what the song will need.

Wait, what? How do these work altogether?


I told you to look at the red numbers for a reason, but pay attention to the ones in each track - this is the instrument reference the track (or this particular part of it, to be precise) will need. The instrument reference above that track 0 of the Viridian Forest song needs is "13". Do the math here: 13 * 12 = 156, so the instrument reference that the track 0 will seek in the instrument set is 156 bytes into the instrument set.

When applying this knowledge to transferring tracks from Ruby/Sapphire/Emerald, you'll be able to copy the instrument sets from songs in those games into THIS game. Perhaps that's something for the next issue.

There may be errors in this tutorial - don't hesitate to point them out. If you have any questions or have a dire need for screenshots, ask away.


Endnote

Next week, maybe we'll finally see that video review I wanted to introduce.

__________________
Hiroshi Sotomura

That's Our Switch.
Pre-Service Teacher. Tech Guy. Web Designer. PokéCommunity Administrator. Wanderer. Novice Hockey Player. rijonAdventures Developer. #westjournal. Views are my own.
Reply With Quote
  #2    
Old June 22nd, 2009, 12:58 AM
Thrace's Avatar
Thrace
@tion
 
Join Date: Jun 2007
Age: 23
Gender: Male
I thought you meant video footage of gameplay of the hack with commentary, I didn't realise you were going to video yourself. The interview was great, it was very enjoyable to read. Can't wait for the next issue.
__________________
Reply With Quote
  #3    
Old June 22nd, 2009, 02:46 AM
Tropical Sunlight's Avatar
Tropical Sunlight
The Faltine
 
Join Date: Mar 2008
Location: Slovenia
Age: 18
Gender: Male
Send a message via Windows Live Messenger to Tropical Sunlight
The tips & tricks was useful!
Good luck with the next, maybe even longer issue!
__________________
Reply With Quote
  #4    
Old June 22nd, 2009, 03:59 AM
Hiroshi Sotomura's Avatar
Hiroshi Sotomura
 
Join Date: Sep 2003
Location: Melbourne, Australia
Age: 24
Gender: Male
Nature: Lax
Quote:
Originally Posted by Thrace View Post
I thought you meant video footage of gameplay of the hack with commentary, I didn't realise you were going to video yourself. The interview was great, it was very enjoyable to read. Can't wait for the next issue.
Well that was the idea at some stage, but that'd be a lot of video and a little less like proper reviewing, methinks. :P
__________________
Hiroshi Sotomura

That's Our Switch.
Pre-Service Teacher. Tech Guy. Web Designer. PokéCommunity Administrator. Wanderer. Novice Hockey Player. rijonAdventures Developer. #westjournal. Views are my own.

Last edited by Hiroshi Sotomura; June 23rd, 2009 at 02:47 AM. Reason: Move music to main issue
Reply With Quote
  #5    
Old June 22nd, 2009, 07:47 PM
Master Terrador's Avatar
Master Terrador
Welcome to the Underworld!
 
Join Date: Jan 2009
Location: Lost in my mind
Age: 20
Gender: Male
Nature: Quiet
Nice... I Really enjoyed the interview with KBM...Quite interesting...
Are you planning on extending into new areas in future issues???
Also looking forward to having some video reviews in the future...
__________________
The distortion of antimatter signifies the dark one's arrival
Dragonadopters | Friend codes | Prism | Snakewood | Life of Guardians| Credits

Last edited by Master Terrador; June 22nd, 2009 at 07:53 PM. Reason: Added Something...
Reply With Quote
  #6    
Old June 22nd, 2009, 07:48 PM
Hiroshi Sotomura's Avatar
Hiroshi Sotomura
 
Join Date: Sep 2003
Location: Melbourne, Australia
Age: 24
Gender: Male
Nature: Lax
Yes. There's even a review section which I got nothing useful written for. :P

There's also a news section that nobody wrote to. (C'mon, you guys must have SOME exciting updates to your hacks!)
__________________
Hiroshi Sotomura

That's Our Switch.
Pre-Service Teacher. Tech Guy. Web Designer. PokéCommunity Administrator. Wanderer. Novice Hockey Player. rijonAdventures Developer. #westjournal. Views are my own.
Reply With Quote
  #7    
Old June 23rd, 2009, 02:29 AM
Magic's Avatar
Magic
 
Join Date: Jan 2009
Location: UK
Age: 23
Gender: Male
Ahh the HM tip is great and I'm sure will be helpful to many people developing their hacks.

The interview was interesting nice to hear CBM is working hard XD Hehe.
__________________
Reply With Quote
  #8    
Old June 23rd, 2009, 05:01 AM
score_under's Avatar
score_under
I program the *other* ASM.
 
Join Date: Aug 2005
Location: Hertfordshire, England
Age: 21
Nature: Rash
Quote:
Originally Posted by SwiftSign View Post
Ahh the HM tip is great and I'm sure will be helpful to many people developing their hacks.
I've had an option to make that in PKSV's "script generator" for some time now
__________________
Plz not to PM me, I don't come here often enough. Email if you need me
Reply With Quote
  #9    
Old June 23rd, 2009, 06:46 AM
Chimchar 9's Avatar
Chimchar 9
inactive ~ depression :/
 
Join Date: Jan 2008
Location: England, Southampton.
Age: 20
Gender: Male
Nature: Calm
Send a message via Windows Live Messenger to Chimchar 9
No offense.
But i still think RHN is still better.
Maybe you can make the next issue better and longer.
__________________
Pokemon Green Diamond
Status: On Hold.
Reply With Quote
  #10    
Old June 23rd, 2009, 01:44 PM
Pokepal17's Avatar
Pokepal17
More cowbell~
 
Join Date: Oct 2008
Location: Steeltown
Age: 19
Gender: Male
Nature: Modest
This was great, the music tip was brilliant. I'll send in a useful tip also regarding music
__________________
Pokémon Stardrop
Reply With Quote
  #11    
Old June 24th, 2009, 12:05 AM
[BlackEyedHacker]
Newb
 
Join Date: Sep 2008
Location: New Zealand
Gender: Male
Nature: Hasty
Awesome, I actually enjoyed reading the entire thing. I usually hate zines, but this was actually well put and applied to a sensible topic. Awesome, man.
__________________


Epic-Nerd-Fail
Spoiler:
Quote:
Originally Posted by Number Prince View Post
And Dark Prince, remember to ignore this guy. He's no good, doesn't have an avatar.
Spoiler:
Related Note, I understand, we're all nerds, honestly. But this kid, took to failure.
Spoiler:
This also means I cannot have an avatar in the future just so I can stick to my guns. Oh lordy internet! Why must you be so harsh?!
Reply With Quote
  #12    
Old June 29th, 2009, 09:31 PM
The Exorcist
Trainer
 
Join Date: Jun 2007
Location: Australia
Age: 18
Gender: Male
Nature: Lonely
Interesting :P Hopefully the future issues will be richer in content! Great idea to create these.
Reply With Quote
  #13    
Old June 30th, 2009, 02:28 AM
The Prince of Sweet Sorrow's Avatar
The Prince of Sweet Sorrow
★Folk Man♫ lml
Community Supporter
 
Join Date: Feb 2009
Age: 19
Gender: Male
Nature: Lonely
Send a message via Skype™ to The Prince of Sweet Sorrow
Thats really cool!!I love it,and i cant wait for the next issue.I think i'm going to use the tip for the HM's,true,they're boring. :D
__________________

*****

Reply With Quote
  #14    
Old July 1st, 2009, 02:00 AM
HackMew's Avatar
HackMew
Mewtwo Strikes Back
 
Join Date: Jun 2006
Something I'd like to report:

Quote:
lock //Prevents the player from moving while the script is executed
Wrong. Lock prevents the person you're talking with from moving while the script is executed. That's a common misunderstood thing I guess. BTW, the player is locked automatically by the game while a script is executed. I know it doesn't make a lot of sense for a cutting tree or a rock, for example, but the game use lock anyway for both.
__________________
Reply With Quote
  #15    
Old July 1st, 2009, 02:14 AM
.Seth's Avatar
.Seth
.explorer.
 
Join Date: Jun 2008
Location: A capacitor in a power supply board.
Gender: Male
Nature: Quiet
Eh, it's nice. I like the HM tip, though.
Oh by the way, this is very weekly, huh Jake?

Can't wait for the next issue.
Reply With Quote
  #16    
Old July 16th, 2009, 02:46 PM
darkmewham2's Avatar
darkmewham2
Cold's catch rate- 100%. D:
 
Join Date: Jan 2009
Location: In a certain place in my mind I like to call "the creative part".
Gender:
Nature: Docile
This. Is. So. Cool. :D

I love the HM script. Amazing! I will definably use this script in my next hack. ;3
__________________
Extreme Code Lyoko Fanatic-- Make Way!
Reply With Quote
  #17    
Old July 28th, 2009, 01:07 PM
NarutoActor's Avatar
NarutoActor
The rocks cry out to me
Community Supporter
 
Join Date: Jan 2009
Location: Brooklyn/Marlboro
Age: 20
Gender: Female
Nature: Bashful
Send a message via AIM to NarutoActor Send a message via Windows Live Messenger to NarutoActor
Quote:
Originally Posted by score_under View Post
I've had an option to make that in PKSV's "script generator" for some time now
wow I thought that tool was only for genarating an old hm now I am gona make a new hm maby wourld pool keep up the good work amazing work
__________________
~There are those people who understand hex, F the rest
Reply With Quote
  #18    
Old July 31st, 2009, 01:24 AM
0m3GA ARS3NAL's Avatar
0m3GA ARS3NAL
Im comin' home...
Community Supporter Tier 1
 
Join Date: Jan 2008
Location: Superjail Penitentiary
Age: 21
Gender: Male
Nature: Gentle
I can't believe I have not subscribed to this yet.
__________________
>Boot Jailbot
>Pass *****
.
.
Jailbot OS Ver 1.1.2
Greetings Warden
of Superjail Penitentiary
Awaiting user input...

>Display User_Info
╠══User Info══╣
Username:
0m3GA ARS3NAL
Age: 18
Sex: Male ♂
Race: Caucasian
Quote:
"What is this
I don't even..."

M/O: Often acts out to get attention, but recently has changed that. Has been studying up on hacking information and hopes to participate in more advanced hacking discussion.
╠══End of File══╣
Awaiting user input...

>
Reply With Quote
Reply
Quick Reply

Sponsored Links


Advertise here
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 08:54 AM.


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.