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.

Topics - tashi

Pages: [1]
Personal Projects / maten no soumetsu translation: realer than real life!
« on: January 04, 2021, 09:09:52 pm »
hello friends. I've been hacking / translating the sega megadrive game maten no soumetsu for the past few months. The game had a bit of a troubled history, getting delayed several times over multiple years, while the advertising ran full-steam with clever tag lines like "Arnath, who is the shadow standing behind you?!" I was unfamiliar with the game when I started working on it, but it's apparently infamous for being a terrible game, and it deserves its reputation 100%.

I've dabbled with a few translation projects in the past, but always reached my limit at inserting strings, sometimes doing some basic repointing, but my goal with maten no soumetsu was not to make any compromises. I'm not there yet, but I'm close enough that I wanted to share my progress, get feedback, and maybe get some playtesters. Aside from the title screen, everything in the game should be translated. My hacks are pretty amateurish, and my python script dynamically rewrites assembly code, so there could be bugs hiding anywhere. The first playthrough I did took over 10 hours and was quite frustrating, and I was cheating my pants off the whole time. I've tried translating certain lines a little more deliberately to direct the player what they need to be doing. I don't intend to release my patch "officially" until I put together a basic strategy guide, but if anyone is brave / masochistic enough to give this a spin, I'd appreciate it.

I'm grateful for any feedback on the game itself, my translation, the hacks, or my python inserter. Patches and all the files I used for generating the hack can be found on github:

Here's the equipment menu before/after:

ROM Hacking Discussion / Bushi Seiryuuden script dump etc
« on: June 28, 2012, 09:32:49 am »
Everyone probably knows Game Freak for making Pokemon, and since this community is sort of focused around obscure retro games, most of you probably also know that they made an RPG on the SNES called Bushi Seiryuuden - futari no yuusha. I haven't beaten it yet, but it's really fun and interesting. In particular, the combat system kept me engaged. There's a target number of turns for finishing each battle, and you get tasty candies if you can beat it, but it is very tricky to slip in under the limit. Although the combat has turns, it is very fluid, almost like an action RPG. If you want a better description, please read the HG101 article on bushi seiryuuden

As this thread title suggests, I dumped the script and made a table, but there are a ton of embedded pointers and/or control codes that I can't figure out. Since there is very little talk of this game from what the forum search tool could show me, I thought it would be worthwhile to at least post what I have for a couple reasons: maybe someone will help me figure out control codes, or maybe someone can use it to jump start a translation project of their own. <- VERY ugly script, uses 852 kanji (but 575 of them are elementary level!) <- table (missing MANY control codes)

Personal Projects / Marvelous ~ mou hitotsu no takarajima
« on: March 19, 2012, 11:40:38 pm »
Hi, I'm translating / hacking the SNES game Marvelous - mou hitotsu no takarajima. I feel like I've made enough progress and can see far enough down the road to merit a thread.

current playtest patch June 2012

This is an incomplete shoddy patch. The dialogue is 98%ish translated, but some UI elements are not translated, some graphics are missing, some line breaks are misplaced and WILL CRASH THE GAME D: You have been warned.

Text wall, hooooooooo!

I'm pretty bad at hacking, but I got a few breaks with this game. Marvelous only has 2 pointers. One is to the RAM location (SA-1 RAM I think...) where it writes a 24bit pointer table. The other pointer is to the start of the dialogue block. I expanded the ROM and repointed so the English script will fit.

I have 1736 2302 2559 2929 strings translated and inserted out of 3075. As I get more lines translated, the going gets a little slower since I have been skipping lines that don't make sense without context. I will start my localization playthrough when I translate as much as possible without context (not to put too much pressure on myself, but probably this week). One unfortunate thing is that the dialogue is jumbled pretty badly. It almost seems like it alternates every other line between different islands... When I've done as much editing and proofreading / playtesting as I can stand, I would really appreciate playtesters. Marvelous is VERY sensitive with text formatting, and will freeze up and crash awfully if a string has 23+ characters, or if a line break is in the wrong place... and there are many branching possibilities, so with one playthrough I won't be able to test all strings.

As far as graphics, I did most of the menu things today but only with moderate success. The problem is that, as you see on the right side on "item" and "teamwork" is that some weird overlay persists, even though I replaced all the relevant graphics I could find... The other graphics problem is that I can't find a way to replace the titlescreen, or the short intro that plays before the title screen. Those are problems for way down the road, I reckon.

Now, I'll leave you with a fish:

*edit: typo!
*edit 2012/3/21 TL progress update. 2302! 75%!
*edit 2012/3/22 TL progress update. 2559! I started my playthrough!
*edit 2012/3/25 TL progress update. 2929! on last chapter :)))
*edit 2012/12/15 meh i give up :) patch link up.

Newcomer's Board / Marvelous font hack / rom free space
« on: March 15, 2012, 12:41:35 am »
Howdy. I want to translate Marvelous ~ mou hitotsu no takarajima. I played the game a couple months ago, and boy was it fun! I took a crack at hacking it, then, too, and got as far as script dumping / inserting, but got busy with work, etc. Now without a pesky job to slow me down, I wanted to see if I couldn't get a little further.

Marvelous uses a 16x16 2bpp font. It includes ASCII characters so I can easily work on script insertion and mess with a font as a separate issue. The problem is that I can only fit 22 characters per line. Any more and the game crashes angrily. It would be amazing someone could help me somehow hack the font to be 8x16. I can insert my own font if the engine can be converted.

The other issue is that I'm afraid there isn't enough room for a full English script. The script area has around $2000 bytes of blank space after it, so for now I am just carving into that space, but that won't last long. Since there aren't any pointers (on startup, the script area is scanned and a pointer table is built in VRAM), I'm not sure if it would be possible to split text across banks...

Here's an SJIS encoded Marvelous text dump with Atlas commands and the corresponding table file. Typesetting is a slight challenge (formatting with the control codes, and keeping within the character limit). I'm attempting to script something to automate it. In the meantime, I can explain it if anyone cares.

The first game dialogue starts on line 3936 and sort of jumps around.

A teaser image:

ROM Hacking Discussion / Casper (SNES) 94% translation hack!
« on: March 13, 2012, 07:27:28 pm »
This is a mostly complete English translation of the SNES Casper originally released in Japan in 1997 based on the movie "Casper" released two years prior. The Casper game by Natsume released in America in 1996 has no connection to this game in any way.

In this game, the player controls Kat in an isometric world. Casper follows her around the haunted mansion helping her search for her father. Exploration and puzzle-solving abound. All the while, the evil Carrigan and her henchman, Dibs, have grown impatient and are hot on your trail. Can Kat and Casper overcome the odds and save Kat's daddy?!

I am abandoning this project because the intro contains compressed text and a few cutscenes use a sprite-based font which I cannot hack. As is, all in-game dialogue is translated and inserted, so I consider the game very playable, even if incomplete.

In the Casper file available on RHDN's abandoned project page you will find IPS and xdelta patches, the Japanese table, my English table, the Atlas script I inserted, and some other notes.

*edit: fixed link.

ROM Hacking Discussion / La Wares engine?
« on: March 10, 2012, 08:51:51 am »
Good day.

I am tinkering with the SNES game La Wares and heard that it perhaps shared an engine with another game. That game might be Burning Heroes or might be something else. Does anyone know?


Newcomer's Board / SNES Marvelous text pointers [solved]
« on: December 04, 2011, 10:09:14 am »
I'm trying to find the text pointers in the SNES game Marvelous - mou hitotsu no takarajima. The game has an SA-1 chip. The ROM size is 3MB, but the rom info in snes9x reports 32mbit. It is supposedly LoROM, but also uses HiROM addressing. The font tiles and script are uncompressed. I have a pretty complete table, and have dumped the script. Now, I want to find the pointers. I'm not sure if all this information is relevant, but better to have and not need, right?

The first two strings in game start at the following offsets:

Replacing every occurrence of A0A2 with random numbers did not affect the dialogue loading, so I figured the pointers are probably stored as offsets from a base pointer location.

I ran a trace of the first line of dialogue coming out, and I think I hit the nail on the head.

To my untrained eye, the following lines seemed important.
Code: [Select]
$97/EBBB AF 94 7A 40 LDA $407A94[$40:7A94]   A:0440 X:0002 Y:0024 D:3000 DB:97 S:1FF1 P:envmXdizc HC:0822 VC:001 FC:14 I:00
$97/EBBF 0A          ASL A                   A:0000 X:0002 Y:0024 D:3000 DB:97 S:1FF1 P:envmXdiZc HC:0878 VC:001 FC:14 I:00
$97/EBC0 AA          TAX                     A:0000 X:0002 Y:0024 D:3000 DB:97 S:1FF1 P:envmXdiZc HC:0900 VC:001 FC:14 I:00
$97/EBC1 BF 95 EB 97 LDA $97EB95,x[$97:EB95] A:0000 X:0000 Y:0024 D:3000 DB:97 S:1FF1 P:envmXdiZc HC:0922 VC:001 FC:14 I:00
$97/EBC5 8D AA 35    STA $35AA  [$97:35AA]   A:0EA0 X:0000 Y:0024 D:3000 DB:97 S:1FF1 P:envmXdizc HC:0978 VC:001 FC:14 I:00
$9F/BA4F A0 00 00    LDY #$0000              A:7F7F X:0EA0 Y:0001 D:3500 DB:00 S:1FEB P:envmxdizC HC:0820 VC:055 FC:14 I:00
$9F/BA52 BB          TYX                     A:7F7F X:0EA0 Y:0000 D:3500 DB:00 S:1FEB P:envmxdiZC HC:0852 VC:055 FC:14 I:00
$9F/BA53 84 9C       STY $9C    [$00:359C]   A:7F7F X:0000 Y:0000 D:3500 DB:00 S:1FEB P:envmxdiZC HC:0874 VC:055 FC:14 I:00
$9F/BA55 86 9A       STX $9A    [$00:359A]   A:7F7F X:0000 Y:0000 D:3500 DB:00 S:1FEB P:envmxdiZC HC:0910 VC:055 FC:14 I:00
$9F/BA57 B7 04       LDA [$04],y[$E2:A2A0]   A:7F7F X:0000 Y:0000 D:3500 DB:00 S:1FEB P:envmxdiZC HC:0964 VC:055 FC:14 I:00

Not that I really know anything about ASM, but it does the following:

Loads $407A94 (which is seemingly 0) into A
ASL (doubles?) it? (which is still 0)
Puts A into X
Loads $97EB95 (apparently 0EA0) + x (which is zero) into A (now A is 0EA0 )
Stores A (0EA0) in $35AA which is (for some reason) $97:35AA
Then it loads $AA (with DP of $3500?, so $00:35AA) into X (X is now 0EA0) (this somehow accesses SA-1 chip? no clue)
Then it loads $40DBE0 (the base pointer location) + X (which is 0EA0, an offset from base pointer) into A ($40:EA80 in BSNES memory editor is A0A2E2, but the accumulator is 16 bit, so just A2A0)
But it somehow overcomes that to get $E2:A2A0 , which is a HiROM address for the PC location $22A2A0, my line of text.

Ignoring the fact Marvelous is LoROM, hey pretty good? Looks like the pointer routine. EXCEPT I can't figure out what $407A94 is pointing to, or $97EB95, or $40DBE0 to be honest. Using BSNES's memory editor, I can see the pointer table starts at $40DBE0 and has a few hundred 24bit pointers. But what does $40DBE0 correspond to? ROM? Cartridge RAM? Using Lunar Address to calculate possible PC offsets for LoROM or HiROM of those locations doesn't yield anything sensible.

The next line of dialogue (PC file offset $22A311, pointer offset 0EA3) follows the same pattern:

I know this is a poorly explained text wall, but I am banging my head on a wall. How can I find where the pointers are stored in the ROM?

***** EDIT: ****************
MKendora from the IRC channel gave me the answer. The key was finding $97EB95. The SA-1 has a flippy bit at $2222 that sets how to map addresses in the $80-$9F:8000-FFFF range.  So I took $97EB95 and masked it with 0x7FFF which gave me $6B95. Relative jumping through the rom in $8000 increments eventually lands at $2BEB95, which is lo! A00E, and not coincidentally so. The whole pointer offset table is there. This knowledge allows me to change the positions of pointers, but not change the pointers themselves.

To change the actual pointers, I still need to know what $40:EA80 maps to. Any ideas?

Newcomer's Board / SMD text hacking
« on: November 21, 2011, 08:40:06 pm »
Hello. I am translating Lord Monarch for the Sega Genesis. I am new to this scene but have been following what resources I can find. At this point, I have dumped the script, inserted a tentative English font, and would like to start inserting text. But I hit a snag here. All the letters are 4 8x8 tiles, and I want to rework the font engine to draw them as 8x16 fonts instead. If RedComet sees this, I would love to know what assembler you used for your SMD hacks. I would also appreciate any suggestions on what someone without any assembly experience should do.

Pages: [1]