Need ASM help - Kawa no Nushi Tsuri - Legend Of The River King for NES!

Started by mrrichard999, July 07, 2013, 03:23:06 PM

Previous topic - Next topic


 :banghead: Stuck at the moment as we are stumped on how to expand  (fit actual full names) these basic Item, Fish, and Animal names in the game. If anybody feels confident in taking this on, would you lend your help to us? There is not a lot to do and it would be great to have this game at 100% completion. All the dialogue is done & everything is translated. This is pretty much the roadblock that keeps us from moving any further. Send me or Pikachumanson a MSG or reply here if you are interested.  :banghead:

The link for the project is here


I see you want this translation to be top quality, and I admire that. I think it's a good idea to discuss right here what needs to be done and what documentation you already have. Two heads are better than one, and it leaves the discussion for future reference, for everyone to see...

My first question is about those fish names, and the other unfinished sections. What makes these names harder than the rest of the translation? Is it because of a lack of space on screen, or maybe a lack of space on the ROM? I suggest you share the basic data you already found, especially pointers, so that we can go see what could be done about it...


Yes, It would be really gorgeous if you shared all your notes :thumbsup:
Anyway, I played with it a little, and from what I can see, It's easy job. How many fishes are in the game?
I think I can help with this. I can see some opcodes( FF ends text while D0 draws a "Caught!" message) But I'd like to have a complete list of these, so I wont waste a lot of time.

You want something like this, right?


I tried to unzip the file, but all I got was a bunch of 0KB files, and "Unsupported Method" errors. Could you please use ordinary .zip instead of 7z? It's a very small archive, so the compression ratio doesn't matter...


Was hoping for Pikachumanson to address the code issues and technical stuff but I think he is away on vacation at the moment.

Here is a link for the patch with a .ZIP file

I use 7ZIP for all my compression now but i converted it for you to take a look at. no Nushi Tsuri - English V090 +

All the fish names are included in the file that are listed in the order they appear in the ROM. Included is also a TBL file so you can view it easy in WindHex.

The animal names are shortened but they are all available in the FAQ listed in the site below.

If you need anything else let me know  :crazy:


"My watch says 30 chickens" Google, 2018


I'll be uploading the files with notes tommorrow. Basically, we want it so that the fish and animal names fit without out overwriting any text. Some fish names i can expand a lot but when i get to something like salmon or newt it will just write the fish name and not write caught or got away. I will use the 7zip you have suggested but, i have never had a problem with winrar which is what i usually use.

July 10, 2013, 01:49:48 AM - (Auto Merged - Double Posts are not allowed before 7 days.)

I was using ff instead d0 so i will try that and if that works out.


Oh well, I looked into code, and it seems that "newline" opecode is missing. The "fish caught" screen can only be 2 lines, making fish names 9 symbols at best.
Normal text also have no newline opcodes, but it waits until text hits end and then moves text to lower line.
9 letters for a fish name is quite a problem..."YELLOWTAIL TUNA" is 15 letters long... Here's a list of text opcodes I found:
QuoteText opcodes:
1A-Draws a "*" above next letter.
2A-Code accepts it as opecode, but it does nothing in game...?
C0-Draw a RAM variable
C1-Draw a RAM variable
C2-Draw a RAM variable
C3-Draw a RAM variable
C5-Draw a RAM variable
A0-Draw a RAM variable
B0-Draw a RAM variable
B1-Draws "Mole" text.(probably animal name is based on RAM variable as well)
B2-Draw a RAM variable
B3-Draw a RAM variable
F0-Draw a RAM variable
F1-Draw Password first line
F2-Draw Password second line
F3-Draw Password third line
D0-Draws " caught!" message
FF-Stops the text
There's also some bytes after every fish, but it seems to never be used, what's it?


Nice! Say have any of you ever run into a problem where you try to change an item name and a specific letter has to stay the same or it will somehow glitch up the game when it's used? Me and MrRichard999 have also been trying to find out how this problem can be fixed as neither have ever encountered somthing like that before.

For example, in our game, the first letter of an item must remain the same and for food the second letter has to remain unchanged as well. All other letters are able to be changed. We were thinking that there is some type of function or pointer that controls what letter can't be changed.

I got a Mfgh in cavespeak and I want to change it to Glas but other than change the M to a G in the font I haven't really come up with a solution. This is also because i have been concetrating so much on the animal and fish names but, i just thought I'd throw that out there and see what you guys thought.


For .7z files, I use 7zX, which is at version 1.7.1 for the Mac. It's the first time I get that kind of errors with a 7z archive...

I can help with coding if it's deemed necessary, but I need offsets and data. I don't think it would be efficient to start from scratch. Can you state clearly the crux of the problem and what you have done up to now? From what I understand, you want to display fish names, and some of them are longer than in the original version. But when you try to add characters, it makes other words to vanish...

One thing would be to try to make the dialog box wider. Although it doesn't mean it will solve your other problems, which seem more related to how the engine interprets the different tile codes. As Dizzy already pointed out, some codes trigger special mechanisms. These triggers may very well be hard-coded into different routines, called individually as needed...


Yeah, we had an issue with the TOOL names where if we changes the first character of a word it screwed up the item to where it can't be used and the FOOD, if we changed the 2nd letter in the word, it would skip all the way to the last food item listed in the ROM instead of the proper item it is named. Guess each item is specific to that character for some odd reason.


The only explanation I can come up with is that, as we already know, there are two values that are hard-coded to generate the two dakutens, 0x1A and 0x2A. The original game has "どうぐ" (tool), which starts with an accented character, and "たべる" (eat), which has the second character accented...

The word "TOOL" takes 4 bytes, and the original takes 5. The word "FOOD" takes 4 bytes, the original takes 4. This is nebulous...


TOOL & FOOD come up fine in the menus but there are only 4 Characters max for each item so say for instance in the tools, when I use MAGN to describe magnet, the first letter if altered makes the item usage get weird. And for FOOD, if i use BRED for Bread, if i alter the original word's 2nd letter, it jumps to the last type of food used in the game which is RICE. Never seen anything like it where altering a word throws off how the item is used. The worse case scenario we will just change whatever that value is to make it that letter than.

The main Concern is the Animals and the Fish for the meantime, this item stuff if it can't be changed by code, we can simply just use whatever unchangeable value that character is and change the tile of that letter to match it.


I looked at the data tables starting from 0x14F33 (+0x10). There are 4 tables of C bytes, and the last one has B bytes. Each of these values represent an offset to the tables that follow, which are the text tables for the fish. I've tried the game and most of the names are chopped off. Maybe the solution lies there. If any ASM is involved, I'd suggest this kind of layout when you catch a fish:

Line 1: You caught...
Line 2: <name of the fish> (this lets you have the entire width of the box for the fish's name)
Line 3: Fish's length

Other than that, there seem to be some places that are poorly translated, or using a weird syntax. Some other phrases could be revised. For example, in the battles with Moles, Hares, etc., you have this dialog:

IT'S A Mole! (or Bat, or Hare, etc.)
What will you do?
You go to hit!
DMG dealt = 1

The first line is in capitals, except the name. The phrase "You go to hit!" sounds weird. The last line sounds a little formal, like a computer language. I suggest: "You dealt x DMG" or simply "x DMG"...


Yeah, everything was just fit in as best as possible without getting to involved in the code. If you can make it look better grammatically instead of how it is now with everything shortened, it is welcomed.


If you want help, we need more specific info. At the very least, we ought to know all the offsets where there is text. And better yet, a list of the "ideal" translations, regardless of technical limitations. With ASM, we can deal with limits to make the translation fit into whatever space we can generate...


Dizzy9 right now seems to got a handle on whats going so far, if you guys want to collaborate with him, you guys can share info and will be more than happy to give credit where its due. 


Sorry I can't do that. It turned out to more more time demanding than I expected.
Resizing fish\animal names is easy...but extending windows to make those names fit is just...time consuming.
The problem is:
The game does load whole map onto screen only when you are in village, and when you quit village. Also, the map loading function is hard-coded most likely need to write a new map loading function from scratch.
You may say "Yeah, loads map after a...(for example) catching a fish!".
Sadly, that's not the case. Look at this screenshot again:

The black tiles outside windows here are not empty tiles, they are, in fact, overworld tiles with colors all set to black.
When you exit this screen, map is not loaded, only the parts that were overwritten by windows...
Whew....term "window" is also not correct. For example the water background with fish uses same algoritm as windows do!

It don't seem like a too HARD job to get this done, but will take a lot of time for sure. Maybe someone can find another way.

Anyway, here's (very little) notes I have made:
jsr $C0CA-Load map. It's called when you exit village. Have hardcoded pointers.
jsr $C9B4-Load one vertical column of the map into PPU. Uses following RAM locations:
     $69-Hi PPU
     $6A-Low PPU
     $20-$3E:0x1E bytes of tile buffer which will be written to PPU.


Would it be possible to use the a max allotted word length possible and use that instead of expanding the window? For instance some of the names of the fish in the game have a 3 letter max but in reality the name may be 12 letters long. If say the max letter usage possible is 8 letters, it would be better to squeeze in the name into the 8 letters rather than restrict it to the 3 letters it had originally.   


You want to make squeeze the name into less number of tiles, right?
That might work just fine ;)
I have a question-any idea why there's a duplicated fish GFX at the end of CHR ROM? Is it used?
Will need addidtional CHR space to pull this squeezing trick.