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

Author Topic: Shounen Ninja Sasuke Translation Hack  (Read 4922 times)

Reld

  • Jr. Member
  • **
  • Posts: 17
    • View Profile
Shounen Ninja Sasuke Translation Hack
« on: April 28, 2019, 11:28:29 pm »
Shounen Ninja Sasuke is a neat little Super Famicom beat 'em up by SunSoft for one or two players. It has a "quest" mode that features saving and mild RPG elements (kind of like River City Ransom). There's also an "action" mode that strips all of that out and basically makes it an arcade game.

I've been interested in this game ever since I found out about it, but my Japanese knowledge is pretty limited and the game is fairly dialogue heavy for a brawler, so until recently I had only really played around in the first couple of screens. It seemed ripe for a fan translation, but as far as I can tell nobody's working on one, so I decided to take a stab at it myself. I've mainly just been getting things set up, figuring out how things work, and "translating" some things myself as a proof of concept. Ideally I'd like to find an actual translator to work on the script.



Screenshots







What I've Done So Far:

Inserted a complete English font.
The game already had an all caps English font (actually two, one 8x8 and one 8x16). Everything else was (8x16) hiragana. The new font is kind of a custom hybrid of the existing all caps font (shortened vertically) and lowercase letters from some old computer font I can't remember the name of, plus some modifications of my own to tie it all together. I've also used some of the extra hiragana characters for some additional graphic elements like buttons on the equip screen.

Expanded some stuff.
I didn't expand the ROM. there's actually quite a bit of empty space in there already. What I've done is expanded the dialogue boxes, reduced the line spacing, raised the character limit on item names,  and figured out how to repoint everything. 

The dialogue boxes (the ones with borders) used to hold two lines of twenty characters, for a total of forty. Now they can hold three lines of twenty-two, for a total of sixty-six. The narration boxes (borderless) could hold two lines of thirty, or sixty total. Now it's three lines for ninety total. I can also add more boxes if needed.

Item names were nine characters max. They can now be up to twelve.

Increased the number of visible items in item menu/shops.
The reduced line spacing caused all of the items to be moved closer together. At that point I had to either find a way to space them back out, or find a way to increase the number of items loaded on screen at once. I went for the latter.

Moved the little Ninjutsu balls in the status menu up.
This really isn't a big deal, but I'm totally psyched that I figured out how to do it. The little Ninjutsu ball icons are normally part of the 8x8 font, and they're locked to the tile grid so no matter where I put them they were either too low or too high. I ended up using the game's control codes to switch to the 16x8 font (only in the menu) which produced blank spaces because those characters weren't meant to be used. I found where the game defines which character corresponds to which byte, overwrote the graphics for two unused hiragana characters with new two-tile ninjutsu characters, and voila! Properly aligned balls!

"Translated" all of the items and main menus.
This, while technically done, is still kind of a work in progress. Especially the item names.

There are special attacks called "Jutsus" that I'm really not sure what to do with. Rather than translating them directly I've sort of been naming them based on what they do. You can see a few of them in the screenshots. The one with the little log icon, for example is called "kawarimi no jutsu". When an enemy attacks you automatically quickly jump out of the way, leaving a log in your place. It basically lets you get hit once without taking damage. I'm currently calling it "Quick Change" because that's somewhat descriptive and fits within the character limit, but I'm not sure I'm happy with it. The other jutsus are the same way.

I've translated the food items ("Rice Ball" instead of "Onigiri", etc.) but I'm half-tempted to just use the Japanese names. They're Japanese foods, and it's a very Japan-themed game, after all. This might just be my inner weeb getting the best of me though.

There's probably other stuff to mention, but I feel like I'm already writing too much.



Stuff I still need to do:

Find a translator.
I have dumped the script. Despite saying it's "dialogue heavy" it's not really that long. It's no RPG.

I'm not sure if I should make a separate post in the help wanted subforum or not. I made this post first because I got excited and wanted to blab about what I'm doing. If I can't find a translator I'll try my hand at it myself, but my script probably won't be great.

Figure out the graphics compression.
This is going to be a tall order for me, and any insight is appreciated. The fonts and UI graphics are uncompressed, but just about everything else is compressed as far as I can tell. I've done some (very minor) ASM stuff to get some of my modifications working so I can mostly understand what's happening in the code, but working through and understanding a decompression routine is uncharted territory for me. Not to mention figuring out how to recompress. I'd like to at least change the title screen graphic. There are also a bunch of background elements with writing on them. I'm pretty sure the end credits are compressed as well. They use a different copy of the all caps English font, mixed with a bunch of Kanji that doesn't appear anywhere else. I'd like to romanize the names, and fix some spelling errors (like "EXECTIVE" instead of "EXECUTIVE"). I think both the graphics and tile map for the credits are compressed, and I don't know if they use the same routine.

Again, there are probably other things to mention, but this wall of text is long enough.

SunGodPortal

  • Hero Member
  • *****
  • Posts: 2921
  • 2 + 2 = 5
    • View Profile
Re: Shounen Ninja Sasuke Translation Hack
« Reply #1 on: April 29, 2019, 05:47:40 pm »
Cool. Glad to see someone attempting this. I played SNS a few years back with a friend and had a blast. I assume that we beat the game but as easy as it was I also assumed that we were missing out on a bunch of stuff due to our very limited understanding of written Japanese.

PS: R.I.P. Sunsoft... :(
War is Peace. Freedom is Slavery. Ignorance is Strength.

ginbunbun

  • Jr. Member
  • **
  • Posts: 56
    • View Profile
Re: Shounen Ninja Sasuke Translation Hack
« Reply #2 on: April 29, 2019, 10:24:47 pm »
Holy crap man I have been waiting for someone to translate this wonderful game. This is awesome!

Pennywise

  • Hero Member
  • *****
  • Posts: 2233
  • I'm curious
    • View Profile
    • Yojimbo's Translations
Re: Shounen Ninja Sasuke Translation Hack
« Reply #3 on: April 30, 2019, 10:15:47 am »
Looking good and seems like you're on the right track.

Anyhow, I'm not familiar with the SNES hardware, but reverse-engineering a graphic decompression routine is pretty easy. I've done it several times on the NES and GB and all it really requires is a debugger and trace logger. You basically start with what you know and trace your way backwards. In this case, starting when the graphics are loaded into VRAM. Also, you don't necessarily have to recompress the translated graphics, you can instead load the graphics uncompressed. I believe this is done via HDMA on the SNES.

KingMike

  • Forum Moderator
  • Hero Member
  • *****
  • Posts: 6843
  • *sigh* A changed avatar. Big deal.
    • View Profile
Re: Shounen Ninja Sasuke Translation Hack
« Reply #4 on: May 01, 2019, 11:10:42 pm »
No, it would not be done by HDMA. HDMA is to do scanline-based PPU register trickery for things like gradient windows.

I think you mean the more general-purpose DMA.
To be more clear, (1) decompression routines would decompress the graphics (2) to RAM and then (3) transfer the data to VRAM.
What these uncompression hacks people write is to skip the decompression part (1) with a routine that directly copies data to that same RAM space. Using the DMA functionality is a suggested method (basically following the tutorial Gideon wrote years ago) due to being simpler and probably faster, though it could be done manually.
"My watch says 30 chickens" Google, 2018

Reld

  • Jr. Member
  • **
  • Posts: 17
    • View Profile
Re: Shounen Ninja Sasuke Translation Hack
« Reply #5 on: May 01, 2019, 11:23:23 pm »
Is it normal for SNES graphics to be encrypted? I might be misunderstanding, but the decompression routine in this game doesn't actually seem to be writing the raw graphics data to RAM. It does decompress data to RAM, but there's another step when it's writing to VRAM where it XORs the first byte with $00, copies it to VRAM, XORs the next byte with the result of the previous XOR, copies it to VRAM, etc. I've never heard of this, and it seems like kind of a waste of time to me to encrypt SNES graphics data. Am I right in thinking that's what this step is for though? I could be way off base, but I don't know what other purpose all those XORs would serve. It seems like pretty weak encryption too, because as far as I can tell the "key" is just the first byte of uncompressed data.

EDIT: Never mind. I think I understand the utility of it now. "Encrypting" things in this way essentially turns runs of alternating bytes,into runs of the same byte, which compresses better.
« Last Edit: May 02, 2019, 12:53:08 am by Reld »

Googie

  • Hero Member
  • *****
  • Posts: 798
  • eeee!
    • View Profile
    • My work in progress ROM Hacking site
Re: Shounen Ninja Sasuke Translation Hack
« Reply #6 on: May 02, 2019, 06:24:51 pm »
Those screenshots look really cool, I'll be looking forward to playing this when it's done.  :D

Reld

  • Jr. Member
  • **
  • Posts: 17
    • View Profile
Re: Shounen Ninja Sasuke Translation Hack
« Reply #7 on: May 04, 2019, 01:24:28 pm »
Woo hoo! I managed to put together a working decompressor! Here are a couple of decompressed graphics chunks from the title screen, as viewed in Tile Molester:


I wouldn't be surprised if my code would make most programmers want to smack me in the head, but it works and that's all I really care about. Now to see about recompressing...

Thanks to everyone who's commented. I'll definitely look into bypassing the compression if it comes to that, but I'd like to avoid it if possible.

Question for anyone reading this thread: What should the title for the English version be? Wikipedia says it was at one point going to be localized as "Boy Ninja Sasuke", which is a pretty straightforward translation. The end credits romanize the title as "Sh┼Źnen Ninja Sasuke" with the accent over the O. I'm tempted to go with that, but I'm fine with either one (or something else entirely if it makes sense). Thoughts?



EDIT: Compressor Get!!
I got a compressor working!

On top is the decompressed tiles open in Tile Molester. You can see where I've drawn a random E on one of the background tiles (there's no particular reason for choosing that tile or that letter). On the bottom is an in-game screenshot after recompressing and reinserting the edited graphics. I used the SunSoft logo screen for my test just because it's the first set of compressed graphics the game loads. It's nothing fancy to look at right now, it just confirms that I can edit the compressed graphics.
« Last Edit: May 05, 2019, 10:04:23 pm by Reld »

Reld

  • Jr. Member
  • **
  • Posts: 17
    • View Profile
Re: Shounen Ninja Sasuke Translation Hack
« Reply #8 on: May 12, 2019, 09:58:53 pm »
I've got a few things to report this time, although only the first one is directly related to translation. You'll see what I mean.

1. I got a new title screen logo inserted!

Hopefully this is a little more interesting to look at than that random E I added to the SunSoft logo screen before. I had to edit both the graphics and the tile map. The tile map was also compressed, but thankfully it uses the same... scheme? Format? Not sure what to call it. It's compressed the same way as the graphics. The tile maps seem to be written in kind of an inefficient way, which I think I can use to my advantage when recompressing stuff I've edited, which is nice.

I'm going to put the rest behind spoiler tags, because they're kind of secrets that I found, but they're not actually plot spoilers or anything.

2.
Spoiler:
I found a debug menu!

This menu was already in English. As far as I can tell the intended way to access it has been removed, so I've been using that little NPC guy as a trigger for testing. On the left is what the menu looked like when I first got it to come up. It was functional, but as you can see it's pretty broken visually. I think some of the control codes functioned differently at some earlier point in development. After some cleaning up I got it to look like the menu on the right.

The stage select only kinda works. As soon as you change the value (without pressing confirm) it'll warp you to the stage represented by the new number... but it just immediately warps you right back. After that you can't talk to NPCs anymore, which is weird. It's kind of useless, except for seeing the index of whatever map you're currently on.

The next three items are kind of self-explanatory. "ENE NO HP" sets all enemies' HP to zero so they go down in one hit. "MUSIC" and "SE" play music and sound effects.

I'm not totally sure what "ENE RESET" does yet. I'm guessing it makes enemies you've already defeated on the current screen respawn.

I think this was probably originally accessed from the pause menu (Status/Items/Map/Return) because that's where it takes you when you press the back button to exit. I think I can probably restore that behavior, but the question will be how to enable it.

As an aside, the music and sound effect values are displayed as hex values rather than decimal numbers, and they use a special control code that I don't think is used anywhere else. I thought that was kind of neat.

3.
Spoiler:
I found a special attack!

This might not be a secret? If anybody can point me to a Japanese guide/walkthrough/FAQ I'd be really grateful. I've tried looking myself, but I'm not sure what to search for. The best I've been able to find is a page full of "cheats" which are basically just RAM values to edit.

Anyway, I've never seen this mentioned anywhere, and it's never done in the few runs I've seen on YouTube.

Basically you start by pressing left or right, then do a full circle from there with the D-pad ending with the same direction and press X. The direction of the circle (clockwise/counter-clockwise) doesn't seem to matter. If done right, you'll shoot one of those cute little waves in the screenshot.

4.
Spoiler:
I found... this thing!

This one has to be a secret. I found this totally by accident. You basically just do a bunch of circles with the D-pad. I haven't been able to tell exactly how many you need to do, but It's in the single digits. I think your health also needs to be at least half full. Eventually a transformation sequence will start, complete with all of those roses flying across the pink-tinted screen.

I don't know what to even call this. Adult Sasuke? Super Sasuke?

That pose he's striking in the upper right shot with the rose in his mouth is his idle pose. He always runs, never walks, and he comes to a skidding stop (lower left shot) which makes him hard to control. Running into enemies damages them, but I think you might take damage from it as well. His only actual attacks are the standard jump kick, and this weird thing where he conjures an exploding bowling ball (lower right shot). The bowling ball attack is pretty slow, so he's kind of hard to use in general.

He reverts back to normal when his health is at half or below, or when transitioning to a new map.

BadChad

  • Jr. Member
  • **
  • Posts: 46
    • View Profile
Re: Shounen Ninja Sasuke Translation Hack
« Reply #9 on: May 13, 2019, 02:01:10 am »
Fantastic job on the new Title Screen! Captures the aesthetic and feel of the original perfectly! :thumbsup:

teahouser

  • Jr. Member
  • **
  • Posts: 62
    • View Profile
Re: Shounen Ninja Sasuke Translation Hack
« Reply #10 on: May 13, 2019, 02:25:42 am »
Title screen looks great. I'm excited to play this once you're done, keep up the great work!

Psyklax

  • Hero Member
  • *****
  • Posts: 1001
    • View Profile
    • Psyklax Translations
Re: Shounen Ninja Sasuke Translation Hack
« Reply #11 on: May 13, 2019, 03:07:49 am »
I don't normally do this, but I really have to commend you on your work. It looks like a really professional job: great attention to detail like squeezing more items on-screen. The new title looks wonderful, too. :) Good job, and good luck with finishing it! ;)

foiopaulo

  • Jr. Member
  • **
  • Posts: 9
    • View Profile
Re: Shounen Ninja Sasuke Translation Hack
« Reply #12 on: May 13, 2019, 07:41:09 am »
I've got a few things to report this time, although only the first one is directly related to translation. You'll see what I mean.

1. I got a new title screen logo inserted!

Hopefully this is a little more interesting to look at than that random E I added to the SunSoft logo screen before. I had to edit both the graphics and the tile map. The tile map was also compressed, but thankfully it uses the same... scheme? Format? Not sure what to call it. It's compressed the same way as the graphics. The tile maps seem to be written in kind of an inefficient way, which I think I can use to my advantage when recompressing stuff I've edited, which is nice.

I'm going to put the rest behind spoiler tags, because they're kind of secrets that I found, but they're not actually plot spoilers or anything.

2.
Spoiler:
I found a debug menu!

This menu was already in English. As far as I can tell the intended way to access it has been removed, so I've been using that little NPC guy as a trigger for testing. On the left is what the menu looked like when I first got it to come up. It was functional, but as you can see it's pretty broken visually. I think some of the control codes functioned differently at some earlier point in development. After some cleaning up I got it to look like the menu on the right.

The stage select only kinda works. As soon as you change the value (without pressing confirm) it'll warp you to the stage represented by the new number... but it just immediately warps you right back. After that you can't talk to NPCs anymore, which is weird. It's kind of useless, except for seeing the index of whatever map you're currently on.

The next three items are kind of self-explanatory. "ENE NO HP" sets all enemies' HP to zero so they go down in one hit. "MUSIC" and "SE" play music and sound effects.

I'm not totally sure what "ENE RESET" does yet. I'm guessing it makes enemies you've already defeated on the current screen respawn.

I think this was probably originally accessed from the pause menu (Status/Items/Map/Return) because that's where it takes you when you press the back button to exit. I think I can probably restore that behavior, but the question will be how to enable it.

As an aside, the music and sound effect values are displayed as hex values rather than decimal numbers, and they use a special control code that I don't think is used anywhere else. I thought that was kind of neat.

3.
Spoiler:
I found a special attack!

This might not be a secret? If anybody can point me to a Japanese guide/walkthrough/FAQ I'd be really grateful. I've tried looking myself, but I'm not sure what to search for. The best I've been able to find is a page full of "cheats" which are basically just RAM values to edit.

Anyway, I've never seen this mentioned anywhere, and it's never done in the few runs I've seen on YouTube.

Basically you start by pressing left or right, then do a full circle from there with the D-pad ending with the same direction and press X. The direction of the circle (clockwise/counter-clockwise) doesn't seem to matter. If done right, you'll shoot one of those cute little waves in the screenshot.

4.
Spoiler:
I found... this thing!

This one has to be a secret. I found this totally by accident. You basically just do a bunch of circles with the D-pad. I haven't been able to tell exactly how many you need to do, but It's in the single digits. I think your health also needs to be at least half full. Eventually a transformation sequence will start, complete with all of those roses flying across the pink-tinted screen.

I don't know what to even call this. Adult Sasuke? Super Sasuke?

That pose he's striking in the upper right shot with the rose in his mouth is his idle pose. He always runs, never walks, and he comes to a skidding stop (lower left shot) which makes him hard to control. Running into enemies damages them, but I think you might take damage from it as well. His only actual attacks are the standard jump kick, and this weird thing where he conjures an exploding bowling ball (lower right shot). The bowling ball attack is pretty slow, so he's kind of hard to use in general.

He reverts back to normal when his health is at half or below, or when transitioning to a new map.

This title screen is sick!  :thumbsup:
Keep it up!

4lorn

  • Jr. Member
  • **
  • Posts: 82
    • View Profile
Re: Shounen Ninja Sasuke Translation Hack
« Reply #13 on: May 13, 2019, 02:31:48 pm »
1. I got a new title screen logo inserted!


That *is* one heck of a title screen :o This is looking great. Hoping for more news!

(PS: Not to nitpick, since my Japanese level is zero and I'm not sure how it would be translated, but shouldn't it be Ninja Boy Sasuke?)

Special

  • Full Member
  • ***
  • Posts: 156
    • View Profile
Re: Shounen Ninja Sasuke Translation Hack
« Reply #14 on: May 13, 2019, 03:50:20 pm »
Adding to the praise, that's one of the best title screens I've ever seen done.

Pennywise

  • Hero Member
  • *****
  • Posts: 2233
  • I'm curious
    • View Profile
    • Yojimbo's Translations
Re: Shounen Ninja Sasuke Translation Hack
« Reply #15 on: May 13, 2019, 06:51:20 pm »
Title screen looks great.

Regarding those gameplay things you found, I can't imagine they're secret per se. I bet they're mentioned in the instruction manual.

Reld

  • Jr. Member
  • **
  • Posts: 17
    • View Profile
Re: Shounen Ninja Sasuke Translation Hack
« Reply #16 on: May 13, 2019, 10:04:32 pm »
Thanks everybody! I'm glad the title screen has been so well received.

(PS: Not to nitpick, since my Japanese level is zero and I'm not sure how it would be translated, but shouldn't it be Ninja Boy Sasuke?)
I guess it could make sense either way, but I think "boy" is meant to be modifying "ninja" ("he's a ninja who happens to be young and male"), rather than the other way around ("he's a boy who happens to be a ninja"). I'm no expert either though. At the very least, according to Wikipedia (which cites a 1994 issue of EGM) "The game was supposed to be released in English as Boy Ninja Sasuke."

Regarding those gameplay things you found, I can't imagine they're secret per se. I bet they're mentioned in the instruction manual.
Hmm... You very well could be right. That would really take the wind out my sails after getting so excited about it! :laugh: I don't know though. I've been searching for every drop of info I can find about the game and not one site I've come across mentions either of those "secrets". My Japanese googling skills might just suck though. Or maybe nobody cares enough about this game to write about it? There's very little info (that I can find) out there for this game in general. I certainly don't think I'm the first to ever discover these things. I dunno. Consider me perplexed!

KingMike

  • Forum Moderator
  • Hero Member
  • *****
  • Posts: 6843
  • *sigh* A changed avatar. Big deal.
    • View Profile
Re: Shounen Ninja Sasuke Translation Hack
« Reply #17 on: May 14, 2019, 12:55:53 pm »
I'd go with Ninja Boy Sasuke for something more natural sounding.
Or maybe Young Ninja.

Probably wound need to find the EGM reference to see if it was an actual localization announcement, as EGM had a habit of reviewing Japanese games and making up English names for games without official English titles.
"My watch says 30 chickens" Google, 2018

POWCo-op

  • Jr. Member
  • **
  • Posts: 88
    • View Profile
Re: Shounen Ninja Sasuke Translation Hack
« Reply #18 on: May 14, 2019, 01:16:32 pm »
Ninja Kid Sasuke is a clear alternative. I would strongly recommend not using Boy in this title.
Now you're playing in... three dimensions.

Reld

  • Jr. Member
  • **
  • Posts: 17
    • View Profile
Re: Shounen Ninja Sasuke Translation Hack
« Reply #19 on: May 14, 2019, 01:43:43 pm »
What's unnatural sounding about "Boy Ninja"? How is it any different from "Boy Genius"?