News: 11 March 2016 - Forum Rules

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 - DougRPG

Pages: 1 2 3 [4] 5 6 7 8
Programming / Re: Super Mario All-Stars FastROM Issue *SOLVED*
« on: October 31, 2016, 02:46:18 pm »
Ah, yeah, Dma is in $43xx, not $42xx.

Programming / Re: Super Mario All-Stars FastROM Issue *SOLVED*
« on: October 31, 2016, 07:00:25 am »
So the problem is that you cannot write in 16bits mode to $4203?

Doing that you are overwriting the Dma bank in $4204?
But this works on Snes9x?

ROM Hacking Discussion / Re: NES vs SNES
« on: October 20, 2016, 02:27:23 pm »
For me Snes is much easier than Nes.
With Snes you can easily expand the Rom and put new stuff there. Nes in general has much smaller room for expansion.

About debugger Nes has a little advantage, but for Snes you have Laevattein (Byuu's debugger based on Bsnes v086). This Laevattein é light years superior than Geiger and Bsnes Plus. The reason is that you have access to the full code to add whatever feature you want.
You can easily add new code anywhere in the whole system to help you in the debugging. Is very easy to recompile for Windows and Linux. The code is very well contructed and you can easily find what you want.
But probably this is for more advanced users, and few people knows about this debugger, even experienced romhackers. Probably most of romhackers still uses the unproductive Geiger.

ROM Hacking Discussion / Help with Donkey Kong 3 Memory Map
« on: October 14, 2016, 02:21:13 pm »
Hi, I'm facing some trouble with the DK3 rom.

This is a Hirom game, and it uses the full 4MB rom, but for some reason the game doesn't use the c0-ff:0000-ffff range.

So the game seems to map the first 2M to 80-bf:8000-ffff and the last 2M to c0-df:0000-ffff.
Can anyone confirm that?

My main goal is to expand the rom to at least 5M. If I change the byte at FFD7 (of the internal header) to 0xD, indicating a 4-6M Rom, the emulators heuristic blows off because the rom becomes an ExHirom format.

Someone can help me with this mapping?


Edit: I've found a solution. I need to remove the header from 0xffb0 and put it in 0x40ffb0 and adjust the start code to jump to the original address. Now the Rom 40-5f will be mapped to 40-7d in Snes.

Hi Tom, forget about Byuu doing this translation. He won't do it, 99,9% sure.
Like you said he likes emulation, not translations, so he will keep pushing this new debugger ad infinitum.

He is a nice guy and probably one of the best persons to do a great hack in this game, but time proved that he is not the guy you are looking for.

The guys I suggest to you are Bongo (he very active) and Nightcrawler.
As far as I know Nightcrawler finished the Glory of Heracles 4 hack, and from his messages about Glory of Heracles 4, this game has much more complex menus than FEOEZ. So I'm certain he can do an amazing work in FEOEZ.

Another option is wait for Lost Templar, but he is out of scene for years, so who knows when, or if, he could go back to romhacking.

The way Dejap handled the compressed script was a bit difficult and I found easier to merge the Huffman compression with the game's LZ decompressor and after this first step, use the dictionary method to get the final word.

Hi, I hacked Dejap's compression and it was a pain in the ass. I have the script dumped and a tool to assist the dialog translation, if you want. I'll release the inserter after finishing my portuguese translation (I'm about 80%).
I'm also improving Dejap's translation, like adding subtitles in the intro and fixing some menu stuff.

If you can retranslate this game from the japanese this would be a greate thing. This way I could improve my translation.

For more details about my translation see this video:

News Submissions / Re: ROM Hacks: New Hacks Added to the Database
« on: June 29, 2016, 06:47:37 pm »
Although the game allows the player to input their own name for Link and become the hero in an immersive experience, all of the characters in the game still refer to the player as male. This patch replaces the male pronouns referring to Link (the player) with gender-neutral pronouns (for example: “kid” instead of “boy”).

The Wind Waker allows the player to become the hero by inputting their own name at the start of the game but then continues to use male pronouns when referring to the player regardless of the player’s actual gender. Link’s physical appearance and grunting vocalizations don’t really identify Link as a specific gender, and there’s absolutely nothing in the story of the game that requires the hero to be specifically male.

What?? And what about all the Rpg games where you can input the hero's name?
These are lazy patches. If you want to play as a woman, change the character graphics too, at least. The next will be Chrono Trigger?
I can't see why someone would waste time doing a patch like that.

So if you load a ROM in a hexadecimal editor, is that the code for the entire game? In other words can any aspect of that game being modified by changing only those values?

Seems that you do not even know what hexadecimal is. You need to start from the very beginning.

Translating a game has a lot of parts, like translating the texts, editing the graphics, changing the game code, etc. If you want to change the game's code then you need to know programming and how to debug assembly and stuff like that. It's not novice stuff. Maybe you should focus on translating text, so go find someone who needs a translator.
If you want to work with code, and assuming you even know what hexadecimal is, then start studying programming from the very beginning and return to romhacking after some time (may take years).

Programming / Re: 65816 ASM change in Desktop application.
« on: May 15, 2016, 11:14:55 pm »
If you are curious, I'm currently helping my son with an ExHiROM format (4mb original + 2mb added for the language patch, in this case.)

A 6MB rom (ExHirom) is the same as a 4MB normal Hirom, except that the cartridge will now use one more bus line, so you won't have the upper mirror. So you need to make sure you are not trying to access some data through an invalid mirror. Accessing data through mirrors is a very common precedure using games with 4MB or less.
To make sure what address to use you have to deeply understand how the Snes memory map works. You need to understand that when a cartridge has physically less address lines than others, these cartridges with less lines will have the rom data memory mirrored through the address space. So its very common different games to use different mirrors in the code. It doesn't matter, because when the address is put in the address bus the higher bits are discarted, because the cartridge doesn't use this higher lines, so the cartridge will access the correct position no matter the mirror you use.
But with 6MB you are using almost all lines, so you need to use the correct address space when you change the assembly, otherwise you could access the wrong rom data.
You need to understand this stuff to be able to set the assembler correctly.

In this sense, I would like to be able to assemble five separate sets of code, all targeted for a specific placement in the SNES address space (each of them assembled to run at $C40000, for example) but where they are placed at five different ROM locations.

You have different sets of code and when they run they need to be at 0xc40000? You can only do this with a custom cartridge with a custom mapper. You could use a fpga for that, but I don't see the reason. With Snes you can have games up to 12MB, so why to use a mapper? If you need more than that you will have to use something like the MSU-1, that expand the Snes memory to 4gb.

Programming / Re: 65816 ASM change in Desktop application.
« on: May 15, 2016, 02:48:25 pm »
Sorry, but I didn't understand what you are trying to do. Could you write in a single phrase what the problem is?
The main use of bass is as a patcher assembler, so you can perfectly use it to change a Rom you have.

Anyway, Snes has mainly two types of Rom, LoRom and HiRom. You first need to find what type of Rom you have, and after that create a "seek" function to adjust the "origin" and "base" variables, so the assembler can change the correct place in the rom.

For example, if you want to use and address in the Snes space, for HiRom you'll probably want to create this macro:

macro seek(offset) {
      origin {offset}
      base 0x0

For LoRom (using the 0x800000 region), something like that:

macro seek(offset) {
      origin ({offset} & 0x7fff) + ((({offset}-0x800000) & 0xff0000) / 2)
      base {offset}

This way in your assembly file you do something like:

seek(0x801234) //for LoRom


seek(0xc01234) //for HiRom

and after that you put the code you want, and the assembler will know the corret position inside the Rom where to put the code and the assembled code will have the correct addresses.

If you want to use an absolute Rom address, for HiRom you'll need something like that:

macro seekRom(offset) {
      origin {offset} & 0x3fffff
      base 0xc00000 | {offset}

and for LoRom:

macro seekRom(offset) {
      origin {offset}
      base 0x800000 + ( ( ( {offset} << 1 ) & 0xff0000) + ( {offset} & 0x7fff ) + 0x8000 )

So, in a Hirom game, if you do "seek(0x1234)" the assembler you know that you are putting the code at 0xc01234, for example.

You will always need to set these origin and base variables for any hack you do. Some assemblers have a different way, but the theory is the same. The assembler cannot knows how the game works, so you need to verify yourself and configure the assembler to generate to code correctly. Bass is flexible, but you need to know the theory. Probably it's not recommended for the newcommers, because it suppose you have some experience.

Look this page and you'll find a lot of bass examples:

Programming / Re: 65816 ASM change in Desktop application.
« on: May 14, 2016, 11:21:25 am »
Try to use the assembler Bass v14 (the last implemented by Byuu):

Probably you can solve this array shifiting with it.

You can use hex editor to translate games with few texts, and it's usually done by everyone starting in romhacking.
For any serious translation (like Rpgs) you need to create your own tools.
Nobody translate a game with, say, more than 100 dialogs, using an hex editor. There are some reasons for that:

1-) You cannot replace the original string with a bigger string, otherwise you will overwrite the next dialog or game data. In these cases you'll need to manually change the pointers, getting the new addresses yourself.
With a custom tool you extract the dialogs to a nice format, and after that your tool reinserts the text and do all the grunt work automatically, so you can translate the strings to any size without worries. If the final block doesn't fit in the original place just expand the Rom and put the text block in the end (not always works of course). Each game is different, but with custom tools you can always do more stuff.

2-) It's absurdly boring and time comsuming. Romhacking is not this masochistic act. Romhacking is a fun exercise to apply your knowledge. If you have the intention to translate a big game with an hex editor, go do something better with your time. The time you will waste translating a big game with an hex editor you can do a programming course to learn how to program your own tools, and probably will take less time. If with state of art techniques it takes months to translate most of translations, with a single hex editor it will take decades.

3-) It's absurdly error prone. After changing a few pointers and some dialogs you'll find a lot of errors. It's almost impossible to change a single dialog without an error. You'll have to check each dialog as you progress, and you'll be crazy very soon.
With custom tools this is exponentially less error prone.

4-) It only works for games with no compression. Most Rpgs and bigger games has some type of compression.

5-) Even if you finish the translation, the quality will be very, very poor, at least compared to using better techniques. Doing something poor that noone will play is waste of time in my opinion. You can do good a translation with an hex editor only if you are translating a game with few texts, or if you have a huge amount of patience and free time. You can probably mention several games translated only with hex editors, but probably these games should have a much better quality if they had used custom tools.

But translating using an hex editor is the natural course of the romhacking learning curve. Probably everyone starts changing stuff with an hex editor. I'm only saying that because you wrote like absurd things in your first messages.
Hex editor is probably one of the most used tools in romhacking, but I only use it for visualize data, and I never change a single byte using an hex editor. For that I use patchers where I can generate the final Rom with a single command, always using the original Rom.

If you want to translate a game but don't want to learn programming, then try to find someone to do the romhacking for you and focus only on the text translation. It's difficult to find a good translator.
If you want to learn programming, then you should start studing programming and creating your own tools. Hex editor is only the beginning.

ROM Hacking Discussion / Re: Puzzledude's seminar on romhacking
« on: July 25, 2015, 10:27:13 pm »
The puzzledude's argument is only valid if you do romhacking for other people to enjoy.
If you do for yourself, as a way to learn new stuff and to have fun, then all these arguments are irrelevant.

ROM Hacking Discussion / Re: snes writing to VRAM
« on: July 24, 2015, 11:41:01 am »
Are you writing this in Vblank? You cannot write to Vram outside Vblank/Hblank.

ROM Hacking Discussion / Re: Screenshots
« on: July 24, 2015, 09:23:58 am »
Wait, is that video supposed to have any of the new subtitles/font hacking in it?

No, this is an older version. It only shows my progress and a little of my tools.

I'm still looking forward to any hack that makes those squiggle letters more bearable to my eyeballs though.

I won´t change the fonts. In my opinion they are perfect for the game.

ROM Hacking Discussion / Re: Screenshots
« on: July 22, 2015, 05:04:19 pm »
Where'd you post the link?  Not seeing it anywhere.

First post on page 45. Here:

ROM Hacking Discussion / Re: Screenshots
« on: July 22, 2015, 02:26:46 pm »
I might be wrong, but it looks like the normal "good" SO font put through a certain filter in the emulator, but I could be totally wrong.  TBH, I like either one really, I just can't stand the squiggly one that's in the menus and the battle display.

Hi, it´s the normal SO font. The game was running in Snes9x with some filter. I posted a link to a 2 hour video showing my progress and some gameplay. Check it out.

ROM Hacking Discussion / Re: Screenshots
« on: January 26, 2015, 04:06:28 pm »
Ok, on the other side I can code but I have no idea how to do what you did in Tales and MMX3. (ok, I have idea, but I still need to learn a lot about snes graphics to get to your level).
So I can try to change the game so you can do what you know.

I like Bsnes to test the games, because it's cycle accurate, so if the game works in Bsnes it will work in the real hardware. But to play I like Snes9x.

This debugger (Laevatein) is a little old (I think 2011-2012). It's based on Bsnes v0.86.
The only problem is that it's slow, but for a debugger is not a big problem.

I think it's not used much because of that folder concept. It forces you to create a folder with the same name of the rom. Seems absurd in the beginning, but after some use you cannot live without it. All your debugging stuff keeps organized. My favorite feature is that the current instruction is show in the middle of a block, so you can see the instructions before and after the current instruction. And you can easily change the code to expand that.

Edit: The link is:


Ah, and the code is:

If you want to add features you need to build the code following a read me inside the package.

ROM Hacking Discussion / Re: Screenshots
« on: January 26, 2015, 03:40:27 pm »
Yes, I was able to expand. I had to study the S-DD1 and how the cartridge was assembled. After that I built some routines to do the magic. Byuu helped me with some mapping and S-DD1 details and now I can do whatever I want. And it works fine in any emulator (ok, I only tested in Bsnes, Snes9x and Zsnes). And I already tested my partial translation in a real cartridge.

I'm using Byuu's debugger (Laevatein), and it's from far the best debugger for Snes. It's much, much better than Geiger (at least to me). Byuu's debugger is open source, so you can do whatever you want directly in the code, so it's the ultimate Snes debugger. You can easilly add new features and adjust the debugger to your programming style. And works on Linux and Windows.

In Star Ocean almost all graphics are compressed, and the game uses the S-DD1 to decompress. My approach will be bypass the S-DD1, storing the new graphics (probably getting it from Neviksti version) in an expanded area.
My focus right now is to finish the translation of my script and polish all issues related to the translation. After that we could try to go deep in these graphic questions, if you want and have the time. For my translation I'll fix the "yes/no" ballons and do some expansion in the battle menus, but more than that I'll need help.

ROM Hacking Discussion / Re: Screenshots
« on: January 26, 2015, 11:06:18 am »
Did you figure out where those "yes/no" bubbles were stored?

Yes, I´ll fix that. And I will expand the names in the battle, improve some stuff, add subtitles in the intro and add several phrases removed by Dejap.

The problem with Star Ocean is that there is almost no space left in the Rom, so Dejap had to insert a lot of compressions and reduce the script size to be able to fit the text in the game.

But with my changes there is no space constraints anymore, so I can put a much larger script, other graphics, or whatever (and 100% hardware compatible).

I´m still finishing my tools, but if anyone wants to translate this game I can send the script files and my text editing tool. Anyone interested can send me a message.

My work is more related to the translation, because I like to work with compressions, etc, but I still don´t have the Justin3009 skills regarding graphics programming to do a remodel in the game like he is doing with Tales of Phantasia. It would be great if he did something similar with Star Ocean, and I´d be glad to share my findings.

Pages: 1 2 3 [4] 5 6 7 8