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

Pages: [1]
I'm expecting to get a grand total of 0 help, but I figure I should just go ahead and ask anyway. I'm pretty much completely tearing apart Nintendo Puzzle Collection for the gamecube (specifically the Panel de Pon portion), and so far so good. I can edit and manipulate most of the files as I please. However, there's lots of embedded content in a particular file with the extension "plf" (file in question is panepon.plf) which I found out was actually just an elf file but renamed (or perhaps with slight differences). I've managed to open it with a disassembler, which happened to have function names mapping to particular portions of code. Likewise with some digging I have found the entire list of files that were used as the source code, along with all of the function names. So here's my question: is there a quick and easy way of taking this debug info in the file (source code file names and function names) and then constructing a disassembly using those things? That is: sort ASM by function and file? I noticed there's some files embedded in there as well (some bin files which I know how to edit, some song files, etc.). Is there any way to easily extract all of these? Perhaps have some sort of tool to be able to quickly disassemble into the separate files/functions, and then a way to compile them back together?

I was thinking it'd be amazing to have a rough disassembly to use to be able to modify the game and get working to label what all of the code does (allowing for complete changes/modes/additions to the game). But I'm a bit out of my league rn, as I struggle to even navigate the file on my own w/o my disassembler.

Any help would be greatly appreciated! ❤️

Hello :). Last time I posted here was about my Panel De Pon translation within Nintendo Puzzle Collection for gamecube. That's going pretty well (albeit slowly due to life problems), and I just managed to find the gba rom for the add-on game. So within Nintendo Puzzle Collection, there's a feature to have a gba game downloaded over the cord to your gba. I wanted to translate this (and perhaps extract it), so I went digging and found a file, ponagb2m_client.bin, which appears to just be a renamed gba rom. I took it and tried running it in a couple emulators. mGBA runs it perfectly, so that's what I've been using to debug. But interestingly vba doesn't run it. Any help with that mystery would be appreciated.

So the translation effort on this title has been going well. I've got a font table for it, and windhex32 displays the text perfectly. However, the pause menu is nowhere to be found. I'm guessing that it's likely an image being displayed.

Likewise, there's a few other images I need to edit: the title screen, a couple logos, the confirm and cancel buttons, etc.

Here's where I get stuck. I'm either an idiot when it comes to graphics hacking, or this game's graphics are harder to hack than I expected. Opening it up in Tile Molester and Tile Layer Pro seems to come up with nothing. Opening it with this tool ( seems to work, and I can see the images, albeit they're unaligned and wrongly colored (and no amount of tweaking appears to fix that). Likewise, the extraction/importing doesn't seem to work properly, and I still can't find the pause menu!

Could I get some help with this?

Edit: I tried the rom through my supercard lite, but it failed to load, which is unfortunate. Any ideas on how to get this game working on accurate emulators and real hardware (without the dependency of the gc transfer)?

Programming / Algorithm for best optimizing string compression?
« on: December 18, 2015, 07:45:26 am »
I have what I think is a simple question, I'm just not too good on the math-y side of programming in order to figure this one out. I have a string compression function that reduces repeating strings down into a compressed form. Something like: "ABABAB" -> 3AB. The decompression is really simple and results in a perfectly expanded product. However, I'm having a bit of a difficult time getting the compression to... well... compress.

My first attempt was a naive approach of just starting with single repeating characters, then 2, then 3, then 4, etc. until the max amount of characters allowed. However, this still tends to result in unoptimized outcomes (given the capped nature of the compression). An example would be:


My current code would see AB AB AB AB and list it as 4AB, then it'd see a C with nothing good after so it'd do 1C, and then it'd see the 1ABC. Resulting in a compressed string of 4AB1C1ABC. However, it's fairly obvious to us humans that the correct compression would be 3AB2ABC.

I was wondering if there was a better way of scanning the input to get a better compression.

Simply decompressing an existing string and recompressing it boosts me from 2KB to 6KB in one example.

And I kinda lied, it's not really strings, but bytes for a particular part of my translation hack. But the principle is the same.

Here's a quick pastebin paste of my current rough code:

Basically I check the single byte compression, since it works a bit differently than the rest. From there I check the varying amount of bytes that will be repeated, and keep counts for each, and simply grab the one that works the best at the end and use that. But as I mentioned, it's a naive approach and commonly leaves bad compression in parts.

Thoughts? Has anyone else had to deal with something like this?

It's not too important, since the game is flexible on file sizes. But I have a feeling there's a hard limit on the total amount of stuff in general, so it's best to keep everything small. There's some other optimizations I can do as well, which I haven't tried yet. But that's unrelated to the question I'm posing here.

Thanks  :)

ROM Hacking Discussion / Yay0 Compression?
« on: March 05, 2015, 05:42:06 am »
I got another tough question for you all. It turns out that some of my archive files are actually located in "panepon.szp", which, upon googling, appears to be a mostly untouched format. So into the hex editor I go. Turns out it's Yay0 compressed, which I was able to decompress with a tool I found online. But... the problem is it doesn't support recompression, and the tools that supposedly do are built for luigi's mansion and don't actually compress my file properly (game crashes when trying to load).

I know the decompression is working fine, since it decompresses into an identical .rel file which is also within the game (but unused). I'm wondering if anyone has a tool that does the compression. It's frustrating, since the particular files I'm trying to get at had 4-5 'decoys' which are the same files, but unused. The real ones are behind this compression. And the game won't accept the uncompressed format nor yaz0.

Help? Or am I going to be learning yay0 encryption this week?

Edit: I should mention that the yay0 tool that works is yay0dec from: The one here on doesn't seem to work.

As per suggestion from a few users over in this thread,18821.0.html, I'm making a topic here for help. I'm looking for someone (or some people) to help with the actual translation part, seeing as I don't speak Japanese. It's a simple puzzle game, so the script isn't that long.

As it stands, I'm currently working on extracting the text. I'm almost finished with the tool, but need help IDing Kanji (the extractor currently just uses <k##> tags for kanji).

I've extracted two Kanji font files. Both contain roughly the same kanji (one has a single extra kanji). But they look different, so it might help in the process.

Here are the two files:

I'll be finishing up the script extraction tool soon, so the script is coming.

ROM Hacking Discussion / Generating a Text Table for Kanji?
« on: October 29, 2014, 06:18:39 pm »
Wow, I haven't actually posted/been here in a while. Anyway, I recently picked up romhacking again, due to a recent interest in Pokemon Puzzle League. That interest spread to the source material: Panel De Pon. I find it insulting that Nintendo slapped yoshi/pokemon over the original game, and eventually removed the characters altogether.

Anyway, I found that the first game (for the SNES) had a translation patch. But my interest was in the gamecube game: Nintendo Puzzle Collection. The game didn't receive a localization at all! The included Panel De Pon game is pretty similar to Pokemon Puzzle League, but with story/menu differences (the same game modes are available), and it's for gamecube instead of N64.

So I dumped the files from the game, and ran into some .BIN files related to the game in question (I don't care for the Dr Mario and Yoshi games). I found that they were some sort of archive, which I wrote a program to decrypt.

Which finally brings me to my question. The BIN files include a menu/script type of file called "SBF". Which I'm currently working on decoding and figuring out the text and such. Which the progress is going well. I've managed to be able to add/remove text, and replace the Japanese with English.

My problem lies in creating a conversion table. The text is two-byte characters of the format: 0C 23. With the first byte being the character type (Kanji, English caps, english lowercase, katakana, hiragana, etc). So I went through by hand and found the values for the english and kana. That was simple enough as it was all in order (A-Z, Standard Kana order, etc).

But my problem is with the Kanji. I haven't done much digging yet, but I was wondering if I'd have to go through all 2000 possible kanji in order to dump the script. Or if there's a faster way of doing this. Kanji seems to be mostly marked with 04, followed by a "kanji number", but I'm not sure if there's any standard order of Kanji that makes this easier.


Also, while I'm at it, I might as well ask a couple other things (unrelated to the kanji problem).

1. There is a file format (pretty common in the archive) of "BIF". These seem to be some animated image format, with a 'subfile' of type "BNNF". I was wondering how you'd go about converting/viewing/editing these image files. My approach was going to be simply mess around until I figured out the format of colors/width/height. But if there's an easier way to do this, I'm all ears.

2. The english text seems to be spaced out a bit more than the Japanese. Do you think this is an issue with the font, or some sort of coding thing? What's the general approach to fix this?

This is my first time messing with Japanese text dumping, and messing around with more advanced romhacking than just simple hex editing/pointers. So I apologize if these are kind of stupid questions. Thanks for the help!

Newcomer's Board / gbc color conversion...
« on: January 25, 2011, 07:26:52 pm »
It's probably a stupid question, but I can't seem to figure it out for the life of me. You know the colors under VBA's "palette viewer"?

Well, I can't figure out how to convert the color from the  hex value to rgb.
How does it go about converting it?

Don't just say: "Just look at the r, g, and b that vba gives you" because I want to know how it converts, not what it converts into.

Pages: [1]