News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Gil Galad

Pages: 1 [2] 3 4
Newcomer's Board / Re: Snes debugging question
« on: August 18, 2011, 04:26:57 pm »
You can step the debugger of course. And trace the code to see what writes to that address directly. Also,  a memory viewer would help if it has one.

Newcomer's Board / Re: Help!!!!!!
« on: August 14, 2011, 10:22:27 am »
The text is probably in the files somewhere. Those are binary files, you can't read them like a text file. So, you need a table file with the hexadecimal numbers that equal the letters that are displayed onscreen. I suggest that you read "Getting Started" from the left menu under the category "Help". Sure, a lot of it is for older systems, but the same basic logic mostly applies to all other systems.

You can try use video RAM viewers in emulators. Relative search methods, try using a Shift-Jis table file, etc. It is up to you to figure out what encoding is being used by the game. The text could also possibly be compressed as well.

Newcomer's Board / Re: Help!!!!!!
« on: August 14, 2011, 10:01:48 am »
I use Windhex that's found here on this site. Just make a table file with Japanese characters and make sure you have the right fonts like MS Gothic for example.

In Windhex, go to options, change font. Choose MS Gothic and at the bottom change the script to Japanese.

Personal Projects / Re: Gil-Galad's ROM Hacking Projects
« on: August 13, 2011, 12:57:30 pm »
Haha. I'm glad that you like it. Are you the one that created the font? If so, I can credit you for it.

Unless you don't like it?

Personal Projects / Re: Gil-Galad's ROM Hacking Projects
« on: August 04, 2011, 09:42:13 am »
I've already shared my view on this sort of thing in another thread, but if you've got space for it (no pun intended), I'd recommend using the title Debias: (The) Legendary Space-Time Hero. Space-Time Hero Debias sounds Engrishy to me.

Looks like an interesting game, though. The rest of the translation looks really good.


Yes, I agree your version sounds a lot better. I tried to find what Debias means and in my dictionary applications, there is no translation for it. I assume that means "legendary"? Not really sure. I always thought it was a name.

I might have space if I completely restructure the title screen. Because there are not enough tiles to add it to the small banner or whatever you call it. But wiping out "debias" and changing it would possibly give me enough tiles. I don't think ROM space will be a problem, just the tile space in the CHR-ROM.

I'll have to think about this some more. "Debias: Legendary Space-Time Hero" is going to be difficult to add.

Oh yeah, I sent you a message about Hanjuku Hero, did you receive it?

Personal Projects / Re: Gil-Galad's ROM Hacking Projects
« on: August 04, 2011, 08:13:08 am »
I can make no guarantees due to my busier schedule, but I suppose I could test the game. I'm always pretty thorough when it comes that sort of thing.

Thanks a lot for all your help so far. I have received those files that you gave me.

In other news, I have made significant progress on Asmik-Kun Land because the latest translator who has taken on this job has gotten a lot done. His name is Iriliane. I have updated my site and included some new screen shots for this work. Not much is left to do in this game. Perhaps another release will be coming soon?

Personal Projects / Re: Gil-Galad's ROM Hacking Projects
« on: July 28, 2011, 08:51:03 pm »
Sorry about the delay in response, I've been pretty busy lately. I just added the maps to the Jikuu Yuden Debias translation page on my website. Also, I requested beta-testing be added for help wanted. I then posted a ad for beta-testing. It should be up as soon as it's approved.

I've also been working on Asmik-kun Land as I got some of the script in from Iriliane. I may have some screen shots soon for that game.

Personal Projects / Gil-Galad's ROM Hacking Projects
« on: July 28, 2011, 01:39:31 am »
Unfortunately, my old hacking page got nuked in thread pruning because I wasn't paying attention to it for awhile. But now, I'm making it again and posting about update progress. I'm real close to releasing a game called Jikuu Yuden Debias which has been titled Space-Time Hero Debias. The game's script was translated by Steve Martin. Here are a few screen shots to show off.

News Submissions / Re: ROM Hacks: Bugfixed version of Cheetahmen II
« on: July 26, 2011, 12:36:06 am »
And I hear most non-Tengen unlicensed carts would brute force their way past the lockout (by attempting to short out the console's chip, even though that's probably not healthy for the console in the long run. But when quick bucks are at stake... :P )

Oh  yeah, that is true. I have a Color Dreams document that reported the lockout chip being ruined in rare cases due to the lockout stunner circuit. The document is on my site, as a matter of fact.

Here is an example to look at for ScriptCrunch. It's what I used for Dracula II since it has dictionary and I also added DTE.

Code: [Select]
; DTE at [80-BF]

; Dictionary enabled



; DTE doesn't need the extra features for Dictionary insertion

I'm not using the bottom insert function but using all the rest. Using whole words for dictionary. Dictionary in this game is two bytes; FCxx. First byte FC says it's a dictionary entry and the number afterwards is which dictionary entry it is.

Newcomer's Board / Re: Morality of Rom-Hacking
« on: July 12, 2011, 10:35:34 am »
What makes NES games confusing is a the massive amount of mapper controllers. iNES format has a header that's 16 bytes, 0h - 0Fh and then the ROM data starts at 10h. You have two types of ROMs, one with CHR-ROM or one without CHR-ROM. CHR-ROM is the graphic tiles. The header is there for emulators of course, it's not actually used on a real NES.

For example; Super Mario Bros. 1 iNES mapper 0.

0-0F - Header

PRG-ROM (Program ROM) - 10 - 800F

CHR-ROM (Character ROM) - 8010 - A00F.

That's the basic layout of the file if you viewed it in a hex editor. Your pointers would be found anywhere in the PRG-ROM area. I know it's kind of confusing but there are two concepts to understand. That's file offsets and memory addresses. File offset is the location in a file. Memory address is active memory when a bank of a file is loaded into memory.

Most NES games have a ROM memory map of $8000 - $FFFF (these are active memory addresses). So, Super Mario Bros. 1 is loaded into $8000 - $FFFF. So, if you wanted to know what file offset is what memory address you'd have to convert. For example 10h is $8000. Offset 7E30 converts to $FE20 address. This is the basic formula for mapper 0 games. Offset + $8000 - 10h = memory address. To convert to file offset; memory address - $8000 +10h = file offset.

Why is this important for pointers? Because everything has a location. For example if the text "The princess is in another castle." is located at 4010h (file offset). You want to find the pointer to that. So, do the formula. 4010 + $8000 = $C010 - 10h(header) = $C000.  So, the text is located at $C000. So, you'd want to find the pointer to the text. You flip the bytes around like so 00C0 and search in the ROM. (this is just an example and not the true location of the text in this ROM).

It gets confusing for other mappers because they use banks. These banks are loaded into the ROM space somewhere in $8000 - $FFFF. Standard bank sizes are;

2000h - that's 8KB  Common for games that use MMC3 mapper controller.

4000h - 16KB Common for games that use MMC1 mapper controller.

8000h - 32KB Common for games that have no mapper. Or mapper 3, 7, etc.

Mapper 16 has various configurations that you need to look up if you want to know the bank size that's loaded.

When you get to other games that have a mapper controller. You need to find out the bank size select and which bank is loaded into what address space. For example for a game that loads 8KB sized banks. BTW, banks are not always stored in this order. This is just a general example.

0-0F header

    10 - 200F - bank 0 $8000 - $9FFF

2010 - 400F - bank 1 $A000 - $BFFF

4010 - 600F - bank 2 $C000 - $DFFF


This is how I do it and it's based on NES development information to some extent. There is also some documents on this site to explain NES pointers that is slightly different than my method.

I'll just hazard a guess without really knowing much about the game's internals. Perhaps it needs a Variable Width Font?

256KB PRG-ROM is the largest for mapper 33. You have 4(counting from 0) bits to use for PRG-ROM bank switching. The 6th bit is used for mirroring control; vertical or horizontal.

A note about this mapper. The last 16KB is hardwired to $C000 - $FFFF. The rest of the banks are 8KB switched in at $8000 - $9FFF and $A000 - $BFFF. Should be easy to work with. Only thing to be cautious about is the fact that one of them uses IRQ and another does not. One document says there are two types for this mapper. Type I: No IRQ Type II: IRQ.

I'm pretty sure NFLATE can be used to expand the ROM. I noticed that Pennywise said and he also told me that the expansion worked in Nestopia, what about other NES emulators? We also talked about this last night on IRC. Just figured I'd mention it again here after thinking more about this mapper.

As far as my translation projects are concerned; I haven't been working on them much lately. I haven't been able to get a translator for games like Asmik Kun-land. For whatever reason, people say they will do it but never do. Not sure what the problem is.

I've also been working on some NES demos to increase my working knowledge of games. I'm sure it will help me more later on in doing more complicated hacks. I was doing a lot of NSF ripping. Another reason why I haven't been working on my translation projects.

ROM Hacking Discussion / Re: Warsong: Looking for text hack patch
« on: April 14, 2011, 05:30:47 am »
Here is the patch that D gave me himself. You can get it here -

KingMike: D told me to tell you that is gone and that he won't be bringing any of the old content back when he makes a new site. He says that he's working in other areas now. The domain is only being redirected to keep an email account active.

Programming / Re: DisPel 65C816 disassembler
« on: April 05, 2011, 08:42:30 pm »
Once upon a time almost all SNES ROM images had a header. Instead of forcing users to remove the header, just support it and work around it. Now times have changed; that's why I asked Pelrun to change DisPel.

Programming / DisPel 65C816 disassembler
« on: April 04, 2011, 03:20:43 pm »
I e-mailed Pelrun just recently about his disassembler DisPel about adding register commenting. He says he will add commenting soon but for now he has put up the source code to the disassembler.

I talked to him about changing the fact that DisPel expects a SNES ROM with a header. If you have a headerless ROM and you try to disassemble, it's off by 200h bytes. Now he says he changed it in the source code where DisPel expects a ROM without a header. If you have a header on a ROM use -n to skip 200h bytes. Although, it doesn't say that he made any changes in the readme.

He also says he converted the source from VC5 to GCC and that it should compile on Linux.

News Submissions / Re: Translations: TAO: The Way RPG
« on: April 03, 2011, 04:31:58 pm »
Yes, that's one of the games I worked on. "The NES Dump" has been making cartridges of a lot of people's work here. But I ain't trying to derail the thread. I was saying that this guy is selling TAO: The Way RPG as a cartridge.

News Submissions / Re: Translations: TAO: The Way RPG
« on: April 03, 2011, 03:37:19 am »
This place is selling a cartridge of this game. He's been selling a lot of different translations for awhile now.

[link removed]

Just letting you know. Some people don't like it very much because he also uses donor parts from already existing cartridges, among other reasons.

By request from Snark; I've removed the link out this thread.

ROM Hacking Discussion / Re: English PATCHED ROMs/ISOs
« on: March 25, 2011, 09:36:31 am »
Not to mention that it's also against this site's rules. I just removed the link to the ROMs.

Newcomer's Board / Re: Searching through ROM data
« on: March 24, 2011, 11:22:24 pm »
What I do first is figure out the ROM or disk(c) file format first. That helps me section various parts of the file so that I know what type of data they are as best as possible.

For example, if I was working with a NES/FC ROM. I know for starters that the file has up to three parts. Those would be header,RPG-ROM, sometimes CHR-ROM if the game has it. I also read the header and determine information about the file. For iNES and many others, there are many banks in a file. If you have a mapper 1 (MMC1) game, most of those have 16KB sized banks each about $4000h in size. Doing this will tell you the boundries and that most of the time you cannot easily hack past or outside of that bank. Commonly, a lot of the same information would be in one particular bank. Reset code, interrupts, framework for the entire ROM would be on one. You could have an entire audio music driver on another bank. Title screen and other misc things could be on another bank, etc. You just look around and deduce various things one at a time.

Some basic things you could do first is looking for text in a game. Once you find that and everything else on a particular screen. You can use GameGenie codes to find other data, perhaps stats and other things. You can do a lot of this stuff without doing too much assembly hacking right from the beginning. I didn't know assembly languages when I started. There are a lot of basic things you can do, just look in Getting Started on the left menu.

File system games are more difficult to hack and not usually a beginner's project. But it can be done.

They have various files in the disk(c) that are of various size and you can't change the files unless you know what you're doing.

I suggest that you do some research and then you can slowly figure out how to map out a ROM.

Pages: 1 [2] 3 4