logo
 drop

Main

Community

Submissions

Help

71442236 visitors

Author Topic: Please don't tell me Hex Editing is the only way...  (Read 6453 times)

Plint Michigan

  • Full Member
  • ***
  • Posts: 207
    • View Profile
Re: Please don't tell me Hex Editing is the only way...
« Reply #20 on: December 22, 2011, 01:54:47 pm »
Laughing out loud. You don't need to know hex to extract sprites. Just open an emulator, disable the backgrounds and take a screenshot of the sprite. That's it.

Ehh, that's something I already know, actually. That's how I'm making the sprites I'm using. I take sprites from the game and edit them so they look a little different, but still somewhat familiar.

If you want ALL the sprites in a game, you need a video ram viewer like vsnes or bsnes, but bear in mind that sprites in videoram are not shown like you see them in the games, they are usually segmented to save space.

I think I have vsnes floating around somewhere on my computer. I've tried bsnes, but it always seems to run games slowly.

Now, to hack it in, you do need to learn how to hack and that involves a LOT more than learning hex or using a hex editor. Trust me, if after a month all you've learned is to count in hex, then you are not doing it fast enough.

Best of luck anyway.

Here are samples of the sprites I wish to use.








I do understand that I can't just make and paste sprites into the game (Unless I had a utility that could allow me to do that, which I DON'T) and I also understand that sprites are made up of tiles. I also know that multiple sprites use some of the same tiles.

Anyway, those are just an idea of what I'm trying to make in the game, actually.

Edit: I goofed up when I said Burn Gobi. It's actually Burn Gaki. ...Or Burn Preta, but I like Burn Gaki better.
« Last Edit: January 07, 2012, 01:22:52 pm by Plint Michigan »

Ryusui

  • Hero Member
  • *****
  • Posts: 4975
  • Location: In the third dimension!
  • IT'S LIKE I CAN TOUCH YOU!!!
    • View Profile
    • Homepage and DevBlog
Re: Please don't tell me Hex Editing is the only way...
« Reply #21 on: December 22, 2011, 02:00:40 pm »
In romhacking, if you don't have a tool, you make one. :3

I had a great time working on Nanashi no Game, where the project leader had coded a tool for extracting the game's graphics to PNG and reinserting them in the same format. If you figure out how the sprites and palettes are stored, you can do the same thing.

*assumes everyone is a programmer*
Chiriyuku polaroid, atsumete paranoia...tsugi wa dare no ban da oshiete hoshii...

Fukanzen na jittai ni yorisoi nemureba...understand mieru darou!

Plint Michigan

  • Full Member
  • ***
  • Posts: 207
    • View Profile
Re: Please don't tell me Hex Editing is the only way...
« Reply #22 on: December 22, 2011, 02:18:50 pm »
In romhacking, if you don't have a tool, you make one. :3

I had a great time working on Nanashi no Game, where the project leader had coded a tool for extracting the game's graphics to PNG and reinserting them in the same format. If you figure out how the sprites and palettes are stored, you can do the same thing.

*assumes everyone is a programmer*

I also have an understanding of sprite constraints and pallet. For example with Frigid Rabia, I added more colors to the sprite, and removed the same number of existing ones. I am ALSO trying to make every sprite the same size.

Also, I am unsure how to make programs that allow me to extract sprites and insert new ones. Is there a way for me to do it?

OMT: It's alright, you can criticize my sprites if you want. I'm looking for ways to improve them, after all.

Ryusui

  • Hero Member
  • *****
  • Posts: 4975
  • Location: In the third dimension!
  • IT'S LIKE I CAN TOUCH YOU!!!
    • View Profile
    • Homepage and DevBlog
Re: Please don't tell me Hex Editing is the only way...
« Reply #23 on: December 22, 2011, 02:45:40 pm »
Visual Basic is probably the easiest way to go: you can get it for free from Microsoft themselves. You'll still need to learn how to actually program, but it's not too hard if you have the right mindset.
Chiriyuku polaroid, atsumete paranoia...tsugi wa dare no ban da oshiete hoshii...

Fukanzen na jittai ni yorisoi nemureba...understand mieru darou!

Plint Michigan

  • Full Member
  • ***
  • Posts: 207
    • View Profile
Re: Please don't tell me Hex Editing is the only way...
« Reply #24 on: December 22, 2011, 03:11:00 pm »
Visual Basic is probably the easiest way to go: you can get it for free from Microsoft themselves. You'll still need to learn how to actually program, but it's not too hard if you have the right mindset.

Actually, I think I might have bought Visual Basic a long time ago. I never used it, though. This might be a chance to use it, though.

Ryusui

  • Hero Member
  • *****
  • Posts: 4975
  • Location: In the third dimension!
  • IT'S LIKE I CAN TOUCH YOU!!!
    • View Profile
    • Homepage and DevBlog
Re: Please don't tell me Hex Editing is the only way...
« Reply #25 on: December 22, 2011, 03:39:05 pm »
You might want to spring for the newer version - it's free, just as capable, and better supported. Odds are an older version of VB might have problems running on a newer version of Windows, anyway.
Chiriyuku polaroid, atsumete paranoia...tsugi wa dare no ban da oshiete hoshii...

Fukanzen na jittai ni yorisoi nemureba...understand mieru darou!

Plint Michigan

  • Full Member
  • ***
  • Posts: 207
    • View Profile
Re: Please don't tell me Hex Editing is the only way...
« Reply #26 on: December 22, 2011, 04:02:02 pm »
You might want to spring for the newer version - it's free, just as capable, and better supported. Odds are an older version of VB might have problems running on a newer version of Windows, anyway.

...I still have the same computer I did at the time I bought it, which has Windows XP.

Also, how big of a file is the free one?
« Last Edit: December 22, 2011, 04:30:28 pm by Plint Michigan »

Ryusui

  • Hero Member
  • *****
  • Posts: 4975
  • Location: In the third dimension!
  • IT'S LIKE I CAN TOUCH YOU!!!
    • View Profile
    • Homepage and DevBlog
Re: Please don't tell me Hex Editing is the only way...
« Reply #27 on: December 22, 2011, 05:22:01 pm »
The download's a few hundred megabytes.
Chiriyuku polaroid, atsumete paranoia...tsugi wa dare no ban da oshiete hoshii...

Fukanzen na jittai ni yorisoi nemureba...understand mieru darou!

Plint Michigan

  • Full Member
  • ***
  • Posts: 207
    • View Profile
Re: Please don't tell me Hex Editing is the only way...
« Reply #28 on: December 22, 2011, 05:29:51 pm »
The download's a few hundred megabytes.

Forget it, then. I'll use the one I bought.

Also, I found a MMX3 sprite editor, and I'm wondering if it's possible to edit that in order to be compatible with MMX1 as well. There's also:

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

This is something that pops up in the sprite editor, and I'm wondering what it means.

Edit: I also kind of want to do one for Megaman X 2 as well, but I'm not sure about number 3. I already have boss ideas for both 1 and 2. Like for example as I mentioned in another thread, the music in Megaman X 2 is, IMO, nightmarish. And since all these bosses are based off mythical monsters, one of the bosses, most likely Wheel Gator cause he has the most nightmarish theme, is going to be based off of Amducias, the musician from hell. But... I also kind of want to poke fun at lousy translation. Like, instead of calling the boss something like Gyro Amducias, I could call it Gyro Amadeus. The name sounds similar enough, and since both Amducias and Amadeus are musicians, the translation error would also be kind of ironic.
« Last Edit: December 22, 2011, 06:28:55 pm by Plint Michigan »

Ryusui

  • Hero Member
  • *****
  • Posts: 4975
  • Location: In the third dimension!
  • IT'S LIKE I CAN TOUCH YOU!!!
    • View Profile
    • Homepage and DevBlog
Re: Please don't tell me Hex Editing is the only way...
« Reply #29 on: December 22, 2011, 11:40:10 pm »
How would people be able to tell it's an error? Amadeus is a composer; Amducias is the musician from hell; how are people supposed to tell that it's supposed to be the latter and not the former?
Chiriyuku polaroid, atsumete paranoia...tsugi wa dare no ban da oshiete hoshii...

Fukanzen na jittai ni yorisoi nemureba...understand mieru darou!

Plint Michigan

  • Full Member
  • ***
  • Posts: 207
    • View Profile
Re: Please don't tell me Hex Editing is the only way...
« Reply #30 on: December 23, 2011, 03:30:43 pm »
How would people be able to tell it's an error? Amadeus is a composer; Amducias is the musician from hell; how are people supposed to tell that it's supposed to be the latter and not the former?

...I suppose you're right, but basically the boss takes the form of a unicorn, the form Amducias takes. ...Eh, I guess it was something I thought would be funny. And it's also something very few people would get.

...But anyway...

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

I get this error every time I try to open a Megaman X 3 game with the Megaman X 3 Sprite Editor. How do I fix this?

Gil Galad

  • Full Member
  • ***
  • Posts: 186
  • Location: Ohio, USA.
    • View Profile
    • Homepage of Gil Galad
Re: Please don't tell me Hex Editing is the only way...
« Reply #31 on: December 24, 2011, 12:59:07 pm »
Going back to NES music hacking.

Commonly, all the music code is going to be in one bank, data will be in that same bank. Some NES Megaman games use several banks for music sequence data and sound effects.

It's really easy to track down the music code and data in those games once you understand how. Although, editing the data is another matter. You really do need to understand NES audio hardware and to reverse engineer the data format. Lucky for you, there are already documents for hacking some music in certain Megaman games.

I've read some of this thread and I see that perhaps you are interested in hacking many different things in the game. It's going to take you many weeks of study to figure how to hack various things in the game. As you first start out, it's going to be more difficult because you may not know where to start. Patience is the key ingredient to being a successful hacker. Because it's going to take a lot of time and your attention span needs to be solid and steady.

As far as studying is concerned. There is a great deal of material to read at this site. "Getting Started" should be your first stop, especially since you did not understand the hexadecimal numbering system at first. There is a great deal of resources here that could potentially make you a great hacker. Dig in and enjoy!
 
Homepage of Gil Galad || New Forum

“I don’t know half of you half as well as I should like; and I like less than half of you half as well as you deserve. ”

Plint Michigan

  • Full Member
  • ***
  • Posts: 207
    • View Profile
Re: Please don't tell me Hex Editing is the only way...
« Reply #32 on: December 25, 2011, 09:13:36 am »
Thanks, Gil Galad. Now could someone please explain the JIT Debugging error? I've kind of been trying to get that question answered.

I think I have a few things figured out, but I've used Tile Layer Pro to view the sprites in Megaman X. I can find Megaman's sprites, but I can't view anyone elses sprites. The bosses are completely absent from the viewing plane. All I see are Megaman's Sprites, the Hornet Copter, and the rest is a gargled mess. The tutorial said that there would be more sprites on different formats because some games store sprites in different formats, but no dice. It also says some (or I'm assuming 99% of the graphics) are compressed and un-viewable through a tile editor, but I'm not sure how to extract them. The tutorial only tells me there's documents in the documents section, but it doesn't give me recommendations. And I'm still unsure about the JIT Debugging error that no one has helped me with so far.
« Last Edit: December 25, 2011, 11:26:41 am by Plint Michigan »

Mauron

  • Sr. Member
  • ****
  • Posts: 270
  • Location: Missouri
    • View Profile
Re: Please don't tell me Hex Editing is the only way...
« Reply #33 on: December 25, 2011, 01:17:46 pm »
The  JIT Debugging thing you posted was only part of the message. There should be more to it.

What you posted was standard information on how to enable more than the error message.
Mauron wuz here.

Plint Michigan

  • Full Member
  • ***
  • Posts: 207
    • View Profile
Re: Please don\'t tell me Hex Editing is the only way...
« Reply #34 on: December 25, 2011, 01:35:20 pm »
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.IO.IOException: Unable seek backward to overwrite data that previously existed in a file opened in Append mode.
   at System.IO.FileStream.Seek(Int64 offset, SeekOrigin origin)
   at System.IO.BinaryWriter.Seek(Int32 offset, SeekOrigin origin)
   at gfX3.Form1.menuItem2_Click(Object sender, EventArgs e)
   at System.Windows.Forms.MenuItem.OnClick(EventArgs e)
   at System.Windows.Forms.MenuItem.MenuItemData.Execute()
   at System.Windows.Forms.Command.Invoke()
   at System.Windows.Forms.Command.DispatchID(Int32 id)
   at System.Windows.Forms.Control.WmCommand(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.ContainerControl.WndProc(Message& m)
   at System.Windows.Forms.Form.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3625 (GDR.050727-3600)
    CodeBase: file:///c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
gfX3
    Assembly Version: 1.0.3123.32669
    Win32 Version:
    CodeBase: file:///F:/Nutrinopets%20Enemies/graphiX3/GraphiX3.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3623 (GDR.050727-3600)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3624 (GDR.050727-3600)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.



...That's all of it. That's what I got.

On another note: Here's another sprite.

Ragnus, unlike most monsters I'm using, is an original race based off of interpretations of Manticore Rats I've seen in several games. Ragnus Manticore Rats are fans of rock-and-roll, which is the reason for the big platform shoes.

December 27, 2011, 02:13:40 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
Sorry for double posting, but I've been fiddling with a tile editor for a while, and just now I edited a boss tile I found amongst a huge garbled mess. ...But when I edited the sprite then selected the level of said boss, the changes did not appear in his stage introduction. Yet, when I actually faced the boss, they showed up then. How come?

Edit: Nevermind, they're in a separate tile. But some of the sprite parts are mixed up in one tile. Other parts of the sprites are nowhere to be found.
« Last Edit: December 27, 2011, 06:52:29 pm by Plint Michigan »

Ryusui

  • Hero Member
  • *****
  • Posts: 4975
  • Location: In the third dimension!
  • IT'S LIKE I CAN TOUCH YOU!!!
    • View Profile
    • Homepage and DevBlog
Re: Please don't tell me Hex Editing is the only way...
« Reply #35 on: December 29, 2011, 02:37:19 pm »
The problem is that your tool is broken. It's opening the file in Append mode, meaning it can only add data to the end of the file, not change data in the file itself, but that's not stopping it from trying.

Find the guy who wrote it and get him to fix it. Hopefully, it will only require a small tweak to a single line of code.
Chiriyuku polaroid, atsumete paranoia...tsugi wa dare no ban da oshiete hoshii...

Fukanzen na jittai ni yorisoi nemureba...understand mieru darou!

Plint Michigan

  • Full Member
  • ***
  • Posts: 207
    • View Profile
Re: Please don't tell me Hex Editing is the only way...
« Reply #36 on: December 29, 2011, 02:55:53 pm »
I'm using Tile Editor by the way, which seems to be a respected program. ...Or are you talking about the JIT Debugging bug?

Also, Tile Editor seems to be working okay for me for now. Maybe I'm just not looking hard enough. Plus, some bits of sprite are mixed in on the same tile.



Here's the first screenshot  made when hacking the game. The first sprite I implanted into the game.



Here's a beta screenshot of Wind Labolas. The sprites aren't finished yet cause I have yet to find all the bits and pieces of the original Storm Eagle.

Karatorian

  • Sr. Member
  • ****
  • Posts: 376
  • Location: Corneria (The City of Dreams)
  • "Gotta get get ... 6502"
    • View Profile
    • Studio Karatorian
Re: Please don't tell me Hex Editing is the only way...
« Reply #37 on: January 05, 2012, 11:27:31 pm »
Don't know much about Megaman, but I do have some suggestions for absolute newbie stuff.

First, one of the easiest things in the world to do is graphic hack a game that uses CHR-ROM, like SMB. You don't even need a special editor, use something generic like TileMolester. Editing the tiles is dead easy. Editing the palettes requires more learning, but there's probably some tutorials out there. Also, use a generic editor and look around the ROMs you're interested in. Unless they use graphics compression, you ought to be able to find all kinds of interesting stuff. You will learn a lot more using a generic graphics tool than special editors. This will help you get a (first) feeling for reverse engineering (the hardest part, in my opinion, of ROM hacking).

Second, learn the basics. Learn hex (I think you've got that now) and basic computer architecture. If you don't know what memory, and registers, and machine code really are, learn. Many people don't really understand how computers work, learning the basics of that is important if you don't know it already. Read the documentation on the system you're working with. For the NES, read Nestech. Then re-read it. Depending on your experience, some of the more technical docs can be hard to follow, but keep at it.

Thirdly, learn to program. I tell all the newbies this. The reason is simple. I learned to program long before I started ROM hacking and when I started ROM hacking, it was fairly easy. From what I've seen, it's the people who don't know how to program that have the hardest time hacking. It's not that you necessarily need to write lots of code to ROM hack (although sometimes it helps), but I think by knowing how to program (especially at a low level), you learn a lot of the skills needed to hack as a side effect. Usually, I recommend Python for beginners, but that's just a personal bias (and it's a rather high level language). Learning ASM will help with ROM hacking more than anything else. Even when you're not using it directly (i.e. not doing ASM hacks), knowing it helps you understand how the machine works, helps you think at the proper level.

P.S. If you really don't like hex editing, you can disassemble stuff instead, that's what I do. (Not that I recommend that for a newbie.)
Current ProjectsFinal Fantasy EngineSMB Special for NESStudio Karatorian
@loop: lda (src),y — sta (dst),y — iny — bne @loop — inc src+1 — inc dst+1 — dex — bne @loop

Plint Michigan

  • Full Member
  • ***
  • Posts: 207
    • View Profile
Re: Please don\'t tell me Hex Editing is the only way...
« Reply #38 on: January 06, 2012, 05:30:31 pm »
Actually, I do have the graphics editing down pretty well. I've been able to change most of X's sprites into MegaMiraj sprites, and I still do so constantly. But there's also a problem, in that X's sprites show up clearly in Tile Layer Pro. But the bosses and almost everything else are a lot harder to find. I might need to extract the compressed files or something. Also, I know there are more people hacking Megaman than Megaman X, but you may be wondering why I want to hack Megaman X so much, and the answer is simple: I hate Megaman X.
« Last Edit: January 17, 2012, 04:39:27 pm by Plint Michigan »

Plint Michigan

  • Full Member
  • ***
  • Posts: 207
    • View Profile
Re: Please don't tell me Hex Editing is the only way...
« Reply #39 on: January 17, 2012, 04:39:38 pm »
I have my project on hold right now cause I'm trying to figure out how to extract and edit the compressed graphics. I have all the tools and a good idea on extracting them, but I'm still a little unsure about re-applying them.