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.

Messages - Psyklax

Pages: [1] 2 3 4 5 6 ... 40
ROM Hacking Discussion / Re: Background Tile Editors?
« on: Today at 08:26:42 am »
Tile Molester. NES graphics are usually not compressed but be prepared for economical use of the tiles.

Newcomer's Board / Re: Walk me through please (GBC)
« on: Today at 01:32:16 am »
A little explanation of my source because it might not be clear: the table files. I have three, j e and t. J is the Japanese characters (in Romaji because at the time I used Thingy, which I DO NOT recommend now, WH32EX is a better option, with Shift JIS); e is the English characters that are found in the ROM already, although I think it's just uppercase; t is what I decided to use for the translation (pasting characters over the top of the Japanese).

Hopefully that clears up any confusion. I'd recommend having the original game and my patched one to compare against.

Again, referring to your PMs (can you just write in the thread, I'll just delete your messages anyway):

Liu Kang in the first game I mentioned:
$8CE2 change AF to 0F
$8CE9 change AA to 00
$192AF change AF AA to 0F 00

Scorpion in the second game I mentioned:
$9016 change AA to 00
$901D change FA to F0
$BA71 change 7F EF BB EE to 3F CF 33 CC

Now learn how I did it. Go to $23C0 to $23FF in PPU memory (not $32C0, that's a mirror). Find the address of the portrait's palette. Set write breakpoint. When I go to the Vs screen again, it breaks several times, once with the value I need, $AF. The instruction it breaks on is the one that writes to the PPU_DATA register: the one directly before it loads $AF into the accumulator (the A register). FCEUX tells me where it got that from, so I go there in RAM, right-click "go there in ROM". Change it. Done. Now you can click "save ROM as", choose a file, and it's saved.

Now you can do it too for all the other characters. :)

Gaming Discussion / Re: Our translations were used in a museum
« on: December 17, 2018, 05:18:29 pm »
I have a somewhat similar story to share...

Well, your story is significantly better than mine. :D

Gaming Discussion / Our translations were used in a museum
« on: December 17, 2018, 04:54:04 pm »

Jump to 15:48 for the goods. For what it's worth, I've found all nine of my NES translations (one done with Filler, of course):

I don't know about you, but I was pleased to see my stuff on show. Even for a little two-day exhibit. :)

Programming / Re: Ripping An NES File
« on: December 17, 2018, 04:50:39 pm »
Might help if you told us what game you were working on.  Someone here might be familiar with it.

That really is one of my pet hates on the forum. Why can people never give enough info? So coy. The more info we know, the more we can help. :)

But anyway, I think changing the music in an NES game is probably beyond your level at this stage, so I'm not sure I'd go down that path. But experiment, by all means. ;)

The problem is that I barely know Mortal Kombat NES version's RAM/ROM map. I only know Super Mario Bros. and such.

Right, but you have submitted six different patches for Mortal Kombat II on the NES, which makes me think you would know how to do this. Unless you didn't actually make those patches, which would be strange since there's no credit for them except you.

Besides, I don't know the memory map either, but I solved it in 60 seconds because I know how the NES works. If you really want, I can spend 5 minutes when I get home later and get everything working how you want, but I'm not at home right now.

If you are having problems, I told you where the palette is stored in PPU memory, so doing a write breakpoint to that area will open the debugger when it is written to. In the debugger, the instruction to write to the PPU memory is preceded by an instruction to load the correct value into the accumulator, and that's where you find the value in RAM (and from there, ROM).

How exactly did you do all those other hacks for the NES? You already hacked this game to change the colour of one of the stages, didn't you?

If the Vs portrait is still red, it must be somewhere else in the ROM. I just told you how to find what I found, so if you do the same thing, you'll find it. :)

And trust me, I'm not a programmer, but learning assembly is much easier than you think, and will really improve your hacking skills.

Programming / Re: Ripping An NES File
« on: December 17, 2018, 03:19:49 am »
Ha, good one. Oh wait, you're serious..  well, NES games don't have files, they're one big chunk of data. Somewhere in that data is the graphics, music, sound effects and game code. If you want to rip music, it's not stored in files, rather a set of instructions for the sound hardware that's buried amongst instructions for everything else.

If you want to go about ripping and replacing music, get ready to do some debugging and assembly. Disk-based games (floppy, CD etc) do use files and work this way, but ROMs do not.

I don't want to waste my time with learning ASM codes!

Welcome to ;)

Here's your answer - and the game he was referring to, ladies and gents, is:
GoodNES: Mortal Kombat II Special (Unl) [!].nes
CRC32: 99D81100

Change $8CE2 to 0F and $8CE9 to 00. Liu Kang's portrait is now green. :)

How did I find that out? Well, wasting my time learning ASM codes certainly could've helped, but actually it was very easy. I changed some values in the palette section of VRAM ($23C0 to $23FF, in case you didn't know) and found the bit that covers Liu Kang's portrait. Then I did a write breakpoint to the two addresses I needed, found the instruction immediately, thereby found the ROM address where the palette table is stored, changed it to use a different palette. Easy peasy.

You know, I'm a little confused at your attitude towards assembly, since it seems that you've done quite a few NES hacks yourself (including of this game). Ah well, hopefully this will help you anyway. :)

EDIT: oh, and your other game, which is:
GoodNES: Mortal Kombat II (Unl) [!].nes

Change $9016 to 00 and $901D to F0. Scorpion is now red.

ROM Hacking Discussion / Re: Bypassing the language select?
« on: December 16, 2018, 07:11:45 pm »
Hello, I found this post a tad frustrating. :D You're asking for help, yet you say you've found two RAM addresses (by the way, I've never heard anyone say IRAM before, I had to do an online search for it :D ) but you won't say which RAM addresses they are. If you know that putting a certain value in a certain RAM address will do exactly what you want... then tell us the addresses! Then we can find the instructions that affect those addresses and give you what you need. :)

Also I had to do an online search for "Revenge of the Smurfs" because you didn't say it was for the GBA. This is useful information. :)

ROM Hacking Discussion / Re: List of Co-op / Multiplayer hacks
« on: December 16, 2018, 11:30:51 am »
That's very insensitive towards the SNES gamers who really want to play Final Fight on their console in multiplayer. Not everyone is interested in playing on PC, obtaining another version or getting new hardware. :P

1. My PC is plugged into my TV, so it makes little difference to me.
2. Obtaining? You mean finding a second-hand physical copy? If that's the case, what use is a patch?
3. The SNES came out almost 30 years ago, I think you'll be okay getting some new hardware. ;)

Hey, if someone else wants to do it then be my guest, but I'd rather do something more unique.

ROM Hacking Discussion / Re: List of Co-op / Multiplayer hacks
« on: December 16, 2018, 08:35:55 am »
This is a great idea. I didn't even know anyone had done a 2 player mod before, let alone a dozen or so. I'm actually curious to know what steps were taken to achieve some of these. I should investigate and think about doing one myself. :D

But anyone who suggests Final Fight SNES can GTFO, just play the Sega CD or arcade versions. ;)

Newcomer's Board / Re: How to post pictures in forum posts
« on: December 16, 2018, 02:11:23 am »
I agree with Filler, having your own webspace is much more freeing, but for those who don't want to, there are a multitude of image hosters out there that will give you a link to post on the forum.

Whatever you do, DON'T use the scratchpad! :D There's a reason it's called that: it's for when you need something uploaded temporarily to the site, because it gets deleted soon after.

Newcomer's Board / Re: Walk me through please (GBC)
« on: December 15, 2018, 11:37:50 am »
Welcome to the forum! :)

Please don't take this the wrong way, but if you start on the forum saying "please walk me through what to do", you might not have the right attitude for a ROM hacker. :) People do this hobby because they are curious about things and want to learn more, rather than have people walk them through it.

On the other hand, I know myself that getting that vital start can push you in the right direction. It was thanks to a small suggestion from a forum member that I became very proficient in ROM hacking. The first game I translated was a GBC game, in fact (my avatar is a clue to which one) and I'd say it's a good system to start with, for various reasons.

In fact, as a way of helping you or anyone else, I think I'll provide you with something to get you started. :) I made a zip file with the 'source' of my first ever hack. It's basically the table files I used, plus lots of text files relating to where things are in the ROM and how things work. Bear in mind that I didn't understand assembly at all when I did this: I just figured this out from trying it myself. If you look at the game (Meitantei Conan: Karakuri Jiin Satsujin Jiken) and then look at my patched version, and all this documentation, hopefully you'll be able to piece together how I figured it out.

So, in other words, I'm giving you the starting point and the final destination, but it's up to you to figure out how I got there. :D

ROM Hacking Discussion / Re: Changing text speed
« on: December 15, 2018, 02:28:36 am »
Okay, that's what I thought. :D Well, I have more experience with the NES than the Genesis, but the typical way a game knows when to print each letter, assuming it doesn't do it once per frame, is to use a counter of some kind. So let's say they want each letter to appear every four frames. So you print a letter and add 4 to somewhere in RAM. Then the next frame, the routine decrements that part of RAM and checks if it's now zero. If it is, new letter, if not, carry on.

Looking at Panorama Cotton, it prints characters every six frames. I tried doing a bit of debugging myself to see if I could pinpoint the exact thing the game was counting on. The only thing that looked somewhat similar was a counter at $8016 that counts down from 6, and the game printed a new character at 4, but when I changed the instruction to screw around with it, the text didn't change.

I haven't done the research to know which instructions actually print the text, but obviously you do. If I knew that, I might be able to get closer to figuring it out, but as it stands, I'm not sure. :)

ROM Hacking Discussion / Re: Changing text speed
« on: December 14, 2018, 07:34:06 pm »
I have two things to say here.

First, the game hasn't been translated into English, as far as I can tell, so why are you worried about the speed of the text if you can't even read it? (unless you can read it, in which case this point is moot)

And secondly, the way you're talking gives me the impression that you're not exactly familiar with 68K assembly, correct? If you want to mess with text timing, you'll need to know some assembly, and it's not always as simple as it seems. :)

EDIT: I just found out that you yourself have recently translated it into English. Congrats! :)

But that does make me wonder why you're having difficulty, unless you didn't need to do any assembly hacking in your project...

any hints on what you may be getting back to? More Time Stranger?

Well, there's a certain NES game that I was working on that you translated, and I never got round to finishing it, so... :) Plus I've got a fun little thing on the 3DO, which I was doing before you brought this game up. :D

Speaking of which... it's update time again, and my word, this is the game that keeps on giving...

First I thought I understood the compression with the 1bpp font. Then I thought I understood it with the title screen graphics. But the game had one last sting in the tail for me. See, I figured that I'd got things cracked: I took the new title screen tiles, went through the XOR routine that the game does, took out the zeroes, added the header, and figured that was that. But still it kept messing up, and I couldn't understand why. So I thought something else MUST be happening.

I went step by step through a trace log to see what I was missing. It turns out that there's one more step the game goes through: there are FOUR levels of compression, and there's a table with 2-bit values to tell the game which to use:

0   nothing but zeroes (LDIR blast direct to VRAM)
1   no compression (LDIR blast direct to VRAM, no 4-byte header)
2   partial compression (no XOR, only zeroes removed)
3   full compression (XOR and zeroes removed)

Now everything seems clear: not only do I have to think about using compression, but I also have to write this table as well. On the plus side, maybe I can just choose to use no compression and dump it all in there, though whether it'll actually fit is a good question. I'm not sure why the devs did this: surely all compression or no compression, but the fact that it has this system seems really quite sophisticated. But I'm very pleased that I've reverse engineered it. :)

For the last hour or so I've been going through the title screen again, this time comparing all three compression levels to see which one is best for each tile. Surprisingly it's a bit of a mix, so maybe this adaptive approach to compression isn't such a bad idea. Pity it would never work on the NES, but the SMS/GG is ideal for this. I'm most of the way down the screen and it's looking good (I'll save a screenshot for when I'm done - though it looks the same as FlashPV's picture on Twitter, so...). Not much more to do now!

December 15, 2018, 04:56:19 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
To hell with the seven-day limit, I have to post this:

It's a thing of beauty... 8)

If only you guys knew how many hours of painstaking work went into this, just because it uses a rather ingenious compression scheme that only now I fully understand. It's not totally finished, though: there's still the two secret screens that need their graphics tweaked to fit the new title screen, but now that I understand how it all works, it won't be a big deal, and the big work is done.

There's just a few things to fix up before I can release, so it's coming soon. :)

Ghost Sweeper Mikami: Joreishi wa Nice Body (SNES) English translation.


You know, that's a translation I've wanted to do for a while: there's not much text, I've finished the game (it's pretty good actually), so I think it'd be a nice choice. It's a bit of a hidden gem.

Of course, getting round to actually doing it is another matter entirely, since I'm so distracted by other matters. When I tried to hack it before, my knowledge of the SNES was poor so I had trouble figuring it out, but I think I'd be a bit more capable nowadays.

One day though, one day... :)

Pages: [1] 2 3 4 5 6 ... 40