ROM Hack Japanese Programming Madness

  • Thread starter Thread starter Auryn
  • Start date Start date
  • Views Views 11,040
  • Replies Replies 32
Nice stuff pleonex- I am not sure that is what the OP was going for* but I am always up for sharing developer left extras, hidden things (several games have had audio tracks left in that did not make the final game) and I have had a few easier hacks of games that I might otherwise have been left scratching my head over for a while because someone left something like this in there over the years.

*I read it as what odd ideas (compared to your "standard" rom) have you seen Japanese game developers use that ultimately caused headaches or raised eyebrows when it came time to hacking them.

Still Inazuma 11 had a script for building the audio side of things (see pb audio format http://gbatemp.net/topic/305167-the-various-audio-formats-of-the-ds/ )

One of the princess maker games had almost complete source code (missing some headers if memory serves).

Sports games have proven to be fairly interesting- I think it was a basketball one made several references in there to the PS2 version (or at least one of the home consoles).

One has to mention the smap file in Zoids (a few other games have had them in over the years but I have forgotten their names) because it led to the whole SDAT being decoded a bit more easily thing.

I have seen plenty of thumbs.db files over the years as well as well as a few XML laden files (the Wizard of Oz game for example).
 
@FAST6191 In some case it can help to the hacking because you know interesing things, in other games it's very annoying, specially with text and graphic files where you don't know if it's really needed.

Reading some batch files you can know how the file was before the conversion, ie: the common textures BTX0 were tga images (in the folder Test of "Zelda - Phantom Hourglass" the same game where the above pic was).
I have found too a MODS video file named "audio44100_fps24_q40_adpcm.mods" that give important parameters.

Anyway, I think that the worst task of some games is to know how to unpack some files, games that have only one big file with a lot of data inside. Some of them have really horrible pointers (if they have), I know one game where the game in order to know the offset of each file, multiplies each char from the internal path by 25 and then sums all of then and a lot of operations more...

Something similar is the pack file GFSA of the last Layton where it's fully compressed (45MB), the pointer and name table too!. At least I know what kind of compression is, but no where it starts.

The exe file that I have is "BinToElf.exe" from "Dragon Booster", another one convert a C code file with and array of bytes to palette.
 
Yeap, nice stuff to read while I am sick on my bed and naturally very interesting.

Hey Pleonex...I know what that pic is: if you attack any animal in Zelda for 1 hour non stop, that pic will appear with a message that you are an animal sadic and if you have your Wi-Fi activated, soon afterwards you will get a visit from the police and a rappresentant of the WWF :P
No, just joking, it's like this that wild stories start in the internet.

I find that "how_to_create_highlights.txt" and the zip thing because I believe it's a proof that programmer now a day are not capable as the old ones even if programming has become easier at least from the language side.
Yes, I know, 3D graphics, 3D sound and and and but this is only the presentation, all other that matters (fun, variation, gameplay, etc..) are in regress.

Take as example the last Zelda...I don't see anything that should have taken 4 years to program and actually have annoying "errors" like restart BEFORE the intro sequence of a big boss....I believe that it was on PS1 that i last saw this error made. As same as how many times have we seen the bitch that "rescued" us from falling from Skyloft?? This was annoying in 2 ways: first to loose those 10seconds with the same stupid text over and over; second, we are supposed to live up there and we have the birds, why we can jump off from some places and not from others??

Dragon Booster a "bintoelf"?? Did they plan a Wii or Playstation port??
 
About strange behaviours, it's the same for DB Kai.
I didn't manage to display the font although there are 3 *.fnt files.
DSO files used in this game still need to be reverse-engeenered too.

About asm links, coranac is the best for beginners imho (with gbatek nds specs).


Little of topic, does some of you guys know a good emu site (I mean for dev, CPU specific or global concepts and mechanisms) ?
 
When I had 5min of free, I managed to see how this font of Dragon Ball Kai Ultimate Butoden was stored.
Did you even see a font stored with a different width and heigth for each tile in the font??
Well you have now:
fontli.png


Lucky who will hack this game that at least there is a nice pointer table at the beginning of the file with all the width/heights.
Note that what I called tile ID is actually the SJIS code of that caracter :P
fonthex.png
 
I rarely see that in Japanese games Auyrn but I wish I would- it is the basis for a variable width font and maybe even proper line handling. Indeed when trying to add a variable width font to a game one of the main methods is to add data like that and have the text/font handler parse it.

Also I wanted to link this up as I just stumbled across it
http://tcrf.net/Category:Nintendo_DS_games
 
The font Auryn was talking about is definitively the strangest one I have ever seen (game is Dragon ball kai boutoden) :
kai%20font.png


Two sprites in one using transparency. Weird isn't it ?
 
Pulled apart Barnyard blast (was looking for a game to pull apart the level format for before I remembered N+), not a Japanese game but to further our discussion of developer left extras.
Bunch of text files in the game (including in game text) which was nice but alongside that some markupish stuff to define levels by the looks of things and some that appear to match the NANR animation format (second codebox)
MEv4_5.txt
Code:
//Map  Position

//Warp zone  

 //Number of  warpzone

// Position X  //Position y //  NextPosX//NextPosY// DIR//To level target    //Activate in zoneID



//Lock zone

//Number of lockzone

//Position activate, Lock left, Lock right, Condition (0 numbers of monster to kill, 1 identify monster to kill), Monster ID if 1, Number of monster to kill if 0
//formular (standard) (x-110) (result+256) (top left+110 detect)



//Floor  (SX)(SY)(EX)(EY)(TYPE)










//Wall



// Moster type#ENEMY TYPE 0 = TOMATO 1 = TOMATOFLY 2 = MANGO 3 = PUMPKIN 4 = GREEN 5= SPIDER 6= BAT 7= BOSS  8= GOLEM

  //number

//Type enemy 

//Monster position

//Enemytype, PosToActivateX, PosToActivateY (-1 for standard zombie y154), ActivateType (0 born infront 1 born when pass 2 time born), TimeToBorn (1000=1sec), Lockzone ID






 




//OBject Type   num    name   ........


//Interactive Object
//num    

//type  gfxType   posX   posY    width    hight   speedX  speedY   efSpeedX   efSpeedY   minX   minY    maxX    maY
z_apple_anim.txt
Game appears to use the nitroSDK formats (NANR and such)
Code:
Zombie


Stand




Born

 




back




 

Die_A




Die_b


 

Walk_a

 


App_a

 

App_b



App
 
I had a go at Umihara Kawase Shun: Second Edition Kanzenban with a friend and it was utterly terrifying. Couldn't find ANY files that had text in them, let alone any programs that could open any of the files that weren't basic images. They claim to have been stuck since last year on the translation and all they have left to do is tutorials and image clean up.
 
I took a very quick look at the game (less than 15min). Well, my impression is that they go everything graphically and nothing text.
The .gif are real gif that you can open with any image program (not NDS/game specific).
The .scr look like starting with a pointer table and then bytes that seem to be a tile maps (yes, probably multiple in one file).
From this 2 files I suspect that the game splits the gif in 8x8 tiles and then address them with the "tilemap" and the pointers to know where the tilemap starts.
The big problem is at the moment the .prs files. Somehow i have the feeling they are some kind of (compressed) archives (maybe gifs without header).
Like i said, this is all just a quick look and untested; I actually never played the game either.
 
Theta- a Japan only puzzle game

Some nice lua source code which as far as I can see makes it the earliest instance of it being used on the DS for a commercial game and not in the encrypted/bytecode things favoured by puzzle quest and some other games. I have not confirmed if it is a developer leftover or an active part of the game but I am leaning towards the latter right now.
Sample of menu_cfg.lua

-- メニュ・CFG・ファイル
-- 著者: Akintunde Omitowoju
-- 日付: 2006年07月07日
[codebox]

MENU_PANEL = 3
MENU_SLIDER = 4
MENU_CHECKBOX = 5
--------------------------------------------------------------------------------------------------------
puzzlePath = "/plvl/p%03d.lua"
tankPath = "/plvl/t%03d.lua"
puzzleFile = "p%03d"
tankFile = "t%03d"
--------------------------------------------------------------------------------------------------------
GAME_TYPE_PUZZLE = 1
GAME_TYPE_FISHTANK = 2
GAME_TYPE_DUALTANK = 3
GAME_TYPE_BONUS = 4
--------------------------------------------------------------------------------------------------------
menuTex =
{
{ tname="sel-red", sname="sel-red" }
,{ tname="sel-green", sname="sel-green" }
,{ tname="sel-blue", sname="sel-blue" }
,{ tname="sel-cyan", sname="sel-cyan" }
,{ tname="sel-purple", sname="sel-purple" }
,{ tname="sel-orange", sname="sel-orange" }
,{ tname="sel-grey", sname="sel-grey" }
}

RED = 1
GREEN = 2
BLUE = 3[/codebox]
 

Site & Scene News

Popular threads in this forum