News:

Don't forget to visit the main site! There's lots of helpful docs, patches, and more!

Main Menu

MDbtroid

Started by Infinitys_End, May 10, 2010, 06:24:06 PM

Previous topic - Next topic

Infinitys_End

Edit: This got released. Grab it here. What follows is the original post.

I will start off by saying I'm relatively new to the tile editing/NES ROM hacking scene, so please bear with me.

(This is more or less a copy-pasted post from my own forum, on the Metroid Database.  Just trying to reach out to as many people as possible)

Hey all.
I was just trying to dabble with some Metroid tile editing -- mainly just for fun.
I wanted to focus on editing the title screen so it resembles the real Metroid logo instead of the straight up-and-down version that we got.  
We are all familiar with the Japanese version:

And then our version:

So I made my own version, loosely based on the one from MII, and mixing it with the style used in the Japanese M1 title screen:


So here's where my main questions lie:

    How do I do more than just edit the tiles so the graphics look the way I want it to?
    I know I have to edit the tiles eventually, but how do I actually hack the rom so it takes from the NEW tiles instead of just using what's already there?
    What are the best tile editing/NES ROM hacking software apps to use? (or which do you prefer?)  I'm thinking Editroid might be my best bet, but it doesn't seem too focused on graphics editing...guess i'll have to fiddle with it more?

Remember, this is clearly more than just a simple tile edit -- I want to go in there and actually change the graphics of the title screen completely.

Thanks in advance, guys.

Zhs2

For graphics editing, you have such fine choices as TLP, YY-Chr, Tile Molestor or even FaTileTy, if you prefer. As for actually editing the tiles themselves, it's all a matter of finding them in the rom and modifying them accordingly, either by hand-drawing your version over the game's current or opening both your version (in a proprietary binary format) and the rom in a graphics editor that can support more than one game open at a time and copy-paste via dragging. Easy-peasy.

Quote from: Infinitys_EndRemember, this is clearly more than just a simple tile edit -- I want to go in there and actually change the graphics of the title screen completely.
lol. Aren't they the exact same thing? I guess the size connotations may differ, but it's all tile edits no matter how you look at it!

DSO

Quote from: Zhs2 on May 10, 2010, 08:27:24 PM
lol. Aren't they the exact same thing? I guess the size connotations may differ, but it's all tile edits no matter how you look at it!

No, it's not. I believe he wants to change how the tiles are laid out on the screen, which is not something you'd use a graphics program to do.

Parabox

Also, welcome Infinity's End, to Metroid Construction. It's safer here.

snarfblam

FCEUX is great for this kind of thing. It can show the pattern tables, palettes, name table, memory, disassembly, etc. The best place to start is to run the ROM and pause at the title screen. If you check the Name Table Viewer it will tell you the tile numbers used on the screen. Looking over the first few tiles in the logo, we have tiles 40, 5D, 56, 5D, and so on. You can pull up your favorite hex editor and search for this string. I found it at 0x446. For title screens most roms seem to use some kind of RLE format or a number of strings of tiles prefixed by PPU address and/or size. Looking before the 40 5D 56 5D in the ROM we have 21 03 1C. Sure enough, looking in FCEUX, the logo starts at PPU address 2103 and the first row has 1C (or 28) tiles.

So the format is:

bytes    data
-------------
2       PPU offset
1       Tile count
x       Tile data

The whole thing is probably terminated by a value of FF.

As far as PPU addresses, they start at 2000. Each row adds 20 to the address, each column, 1. So to get from X/Y to address it would be 2000 + 20*y + x. To go the other way it's y = (address - 2000) / 20 and x = (address modulo 20).


I'm not sure if you can squeeze all the tiles into the space given to you. The original title screen makes heavy re-use of tiles, probably to free up space for the alphabet. The japanese version didn't need to do this since you could save, and no password means you don't need the whole alphabet (twice). If you need more tiles, you can probably squeeze them in elsewhere, but I'm not going to get into all that unless it becomes necessary.

Zhs2

Quote from: DSO
Quote from: Zhs2
lol. Aren't they the exact same thing? I guess the size connotations may differ, but it's all tile edits no matter how you look at it!

No, it's not. I believe he wants to change how the tiles are laid out on the screen, which is not something you'd use a graphics program to do.
Oh. Good point. This particular job doesn't look like something you'd need to mess with tile tables for, though...

personitis

Speaking of the jap version, are there any major differences between it and the US version? Cause I was thinking how awesome it would be for the US version to have a save feature like the japs.

Parabox

The Japs had a save feature, better music and less glitches I believe. Just like with a whole lotta US password based games, like Castlevania.

Off-topic: FCEX can run .fds files (Famicom Disk System ROMs) if you have the correct bios ROM, which you have to rename to something and a certain file extension and place it in the ROM folder. There are two of them, the Sharp Twin and the normal one, based on their versions of the Famicom respectively.

I was wondering what the difference was between the two, as Wikipedia states the graphical settings of the Sharp Twin, but not the normal one.

snarfblam

Lately I keep finding myself answering the same questions by the same people on multiple forums.

For completeness on both ends, from http://www.metroid-database.com/forum/viewtopic.php?f=4&t=3162&p=80012#p80012:

Quote from: The guy with two thumbsMy post on Metroid Construction explains the actual offset where the nametable data is found. Once you've edited the patterns and have all those you need being loaded at the title screen, all you have to do is figure out which tiles go where. Editing the nametable data in a hex editor shouldn't be difficult. I explained the format of the raw data (again, on Metroid Construction), but it's pretty simple to figure it out from the ASM. All you need to do is substitute your new layout data.

For example, at offset 446 we have 21 03 1c 40 5d 56... The 21 03 1c is the header for the string of name table data. You shouldn't need to edit this. The 1c tells you how long the string is, not including the 3-byte header. The 40 5d 56... represents the tile-numbers to use on-screen. These are the values you should be editing. After the 1c (28) tile indecies you'll find the next string of data with the 3-byte header followed by more tile numbers.

It would probably help to load your ROM in FCEUX and open the pattern table viewer. When you hover over a tile it tells you the tile's index at the bottom. Once you have your edited patterns loaded up you can use the pattern viewer for easy reference to work out the correct hex values for the name table data.

Infinitys_End

Awesome.  Thank you guys a lot.  I was able to get a really firm grasp on how to do this in a short amount of time.
PRESTO, altered menu screen!

Snarfblam -- would you be interested in discovering a way to insert a loader code into the metroid source so it displays the unused katakana tiles as well?  They're in pattern table D.  Kejardon already figured out what code to write, but I guess we can't figure out where to insert it into the code - OR what is "unimportant" enough to overwrite.  If you read the MDb thread, he claimed that the Metroid 1 source had tons of bloated code so wouldn't it be theoretically possible to insert a loader to the current title screen pattern table?  That would essentially give me 21 more tiles to work with.  I guess I could overwrite the "Game Over" tiles as well, since I don't really plan on going full-blown hack with this.

EDIT: with some perserverance, I was able to finally get the title screen to show a colored version of the Metroid II logo on there:

It may not be as large, but it looks SOOOO much better than the real version.

Malpercio


Hiroshi Mishima

Reminds me of what my ex did when she made the title for her comic series. She based it on the design of the Japanese logo and got something similar. I like the way yours turned out, it's a nice effect.

lupus

Quote from: Infinitys_End on May 12, 2010, 07:26:18 PM
with some perserverance, I was able to finally get the title screen to show a colored version of the Metroid II logo on there:

It may not be as large, but it looks SOOOO much better than the real version.
where i can download it?
thx

snarfblam

Doubt it's available for download ATM. You might want to check out http://www.metroid-database.com/forum/viewtopic.php?f=4&t=3162 to see what's going on with this hack.

Parabox

Hmm, I just noticed after reading the topic that an Infinity's End - snarfblam NEStroid collab hack would be fap fap fap fap fap fap fap.


Quietus


Infinitys_End

The hack is fairly close to being finished.  I plan on releasing it in August, aka "Metroid Month."  Look forward to then. ;)

Malpercio


X-tradyte

Quote from: metruler1990 on July 02, 2010, 04:55:30 PM
ohboi! i might actually play M1 again for this

Same here! This hack looks epic. I'm looking forward to your August hack.  :^_^:

Infinitys_End

Well, MDbtroid has been released.  Feel free to head over to the official page to download it.  More screenshots are on the main page, too.

Crashtour99

Played this and I gotta say, I love what you did here.  Since I hadn't played NEStroid in a good long while it was a nice reminder of how the whole series started.  Still not sure how I feel about the Mother Brain resprite, but the new looks for Kraid and Ridley are awesome.

Infinitys_End

Why, will you look at that.  Someone combined 3 of our hacks together to make the ultimate hack!  I was never notified that he did this - I am honestly unsure why - it's apparently been out since last April and I only just stumbled upon it today.  I'm copy-pasting this text into some other threads just so the right people can know about it. :)

Grimlock

#23
Here's the trio hack combo at romhacking.net

"Metroid mOTHER"

http://www.romhacking.net/hacks/1988/

Edit: Looks like you already got the link covered.....  :lol:

Infinitys_End

So, this fuckwit decided to rip me off.  Redbubble is seriously a cesspool of copyright infringement.  How in the living hell are they getting away with this shit?

Since I don't own the rights to Metroid, there's really nothing I can do, but it's still very frustrating to see some asshole shamelessly ripping off the ideas of others like this.