News:

11 March 2016 - Forum Rules

Main Menu

Translations of early Famicom games

Started by Psyklax, June 02, 2017, 04:55:57 AM

Previous topic - Next topic

KingMike

#160
By soft reset, I mean reboot the game directly, without returning to the BIOS screen. (similar to how on a Wii, when you push Reset while running a GameCube game, it resets the GC game but doesn't drop you back at the system menu)

A "vector" is a 2-byte pointer to each of the three functions in the CPU's address space.

NMI is "non-maskable interrupt". An "interrupt" is a piece of code that is named because it makes the CPU interrupt whatever routine it was working on (needing a special instruction, RTI, to tell it to resume what it was doing previously to the interruption). "non-maskable" means there isn't a CPU instruction that can explicitly disable it (not affected by CLI, which I think is the relevant instruction). In this case of the NES the NMI is initiated by the PPU. (the CPU can write a command to tell the PPU to disable the NMI. However, it is NMI since the CPU cannot itself disable it.)
The PPU forces that routine to run once each frame, which is often how timing is done on the NES. Typically NMI will also run code to check for pending VRAM/palette write requests (ideally first since it's the most time-critical) as well as sound driver and controller input checks.

Reset is, as may have been implied, the start of the game code. Pushing Power or Reset sets the CPU to that instruction. Some Konami FDS games will call the Reset function of the FDS BIOS directly, as an antipiracy measure to effectively endlessly reboot the console if it detects the game has been hacked.

IRQ is a standard interrupt. I think it can be initiated by the BRK instruction but I've never seen it done intentionally (I've only seen it before because I recall it is opcode 00, making it a common thing to happen when debugging bad code.) The stock NES hardware doesn't use it but some of the more advanced mappers (such as MMC3) use it for some of the more advanced functions (like split-screen scrolling).

Oddly, the Master System uses NMI for the Pause button and makes Reset function like a gameplay button the game can ignore if it feels like it. Sounds like they should've been handled the opposite. :P
"My watch says 30 chickens" Google, 2018

Psyklax

#161
I knew what you meant regarding soft reset, I meant that FCEUX doesn't return to the BIOS when you do a soft reset, but I've no idea what a real FDS would do as I don't have one.

Interesting notes about those other things. I always assumed 00 (BRK) would just stop the game entirely. Still not sure I follow NMI or IRQ though, I'll need to read more about it, but in my hacking it's not something that's really been necessary to know. I did wonder how games would go into infinite loops (such as JMP to themselves, over and over) but still eventually continue the program counter. I guess it has something to do with the PPU saying "okay, next frame, get on with it". :)

Interesting mention of the SMS pause button too, didn't know it would actually freeze the game.

EDIT: since I first wrote this post, I've translated Breeder on the FDS. :D Literally all that there was was the "set side B" and "please wait" messages: everything else is in English. Credits, menus, everything. It's interesting to look on the disk, though. I mentioned that Knight Lore had files for each level which it loaded in to the 32KB RAM as required, but this game looks more like a ROM: side A has 32KB PRG and 8KB CHR files, side B the same, plus save data. Unsurprisingly, the side A file doesn't use anywhere near enough of that 32KB, so it's mostly empty. I added together all the files - without the empty space - and it came to 58KB. Why it's even double sided I'll never know. :D

KingMike

Quote from: Psyklax on September 23, 2017, 04:53:18 PM
Interesting notes about those other things. I always assumed 00 (BRK) would just stop the game entirely. Still not sure I follow NMI or IRQ though, I'll need to read more about it, but in my hacking it's not something that's really been necessary to know. I did wonder how games would go into infinite loops (such as JMP to themselves, over and over) but still eventually continue the program counter. I guess it has something to do with the PPU saying "okay, next frame, get on with it". :)

Supposedly the better way to detect Vblank (than directly checking $2002),
is to do something like
LDA #$00
STA Flag
Loop:
CMP #$00
BNE Loop


and then in the NMI route set Loop to a non-zero value.

One possible way of writing to VRAM is to format data in RAM (when it's time to write data to VRAM, you want the CPU to just blast it in there, not waste time calculating it).
Then set a flag that tells the NMI routine data is ready to be written. (the NMI routine would thus have code to read the formatted data and write it)
The weird thing about the NES PPU is that every time data is written to VRAM (even like tile data), the scroll registers need to be rewritten afterwards or the PPU freaks out, even if not scrolling the screen.
"My watch says 30 chickens" Google, 2018

Eien Ni Hen

Quote from: filler on August 27, 2017, 03:06:05 AM
Please do! Here are the two blocks of Outlanders that I dumped with the work I've done so far.

I'm done with the Outlanders script. This is probably a dumb question, but where do I post it?
Soon the super karate monkey death car would park in my space. But Jimmy has fancy plans... and pants to match. The monkey clown horrible karate round and yummy like cute small baby chick would beat the donkey.

Psyklax

Quote from: Eien Ni Hen on October 02, 2017, 01:36:38 PM
I'm done with the Outlanders script. This is probably a dumb question, but where do I post it?

It's not a dumb question at all, but if you were amending Filler's script, I guess you could PM him. Of course I don't know who's going to hack the script into the game, but I could give it a try if nobody else has. Not that I have time for any hacking these days... :(

filler

FYI: Supper and I have released a patch for City Adventure Touch. It's still in the submission queue, but you can grab it from my site. http://projects.mattsmessyroom.com

That's one more off the list.

Psyklax

Quote from: filler on February 12, 2018, 08:21:23 PM
City Adventure Touch

Excellent! :D You can see that I've not done anything for this project for ages. I made a start on Time Stranger, but kana-only translations are a pain in the ass unless you're a native speaker. I also had a go on Space Hunter, but encountered some technical difficulties with ROM space and the like. I think I'll get back to them soon, but first I'll finish this PC-98 translation I'm working on. Oh, Shift JIS text with all the kanji ready to read... heaven... :laugh:

I think I can do something with Space Hunter if I try, but Time Stranger just has so much text. I'll give City Adventure Touch a try first, though! :)

cccmar

Wasn't Eien Ni Hen translating Time Stranger? I recall she was interested in doing that one. :)

Maybe it would be easier to do a project like 'Translation of all Famicom platformers/action games' or something,  since there aren't nearly as many of them as there are RPGs. Also, City Adventure Touch sure became a popular translation project this year. :D

Psyklax

Quote from: cccmar on February 13, 2018, 09:57:54 AM
Wasn't Eien Ni Hen translating Time Stranger? I recall she was interested in doing that one. :)

Well that's the first I've heard of it! :o They're welcome to try translating it since my version 0.1 proves that there will be no problem getting it into the game easily.

Quote from: cccmar on February 13, 2018, 09:57:54 AM
Maybe it would be easier to do a project like 'Translation of all Famicom platformers/action games' or something,  since there aren't nearly as many of them as there are RPGs. Also, City Adventure Touch sure became a popular translation project this year. :D

Thing is, I was doing it by year, and the only ones left were the fiddly ones, so it's not like we were doing big translations over simple ones. Trust me: if you see my list of translations you'll notice that I LOVE easy ones. :D

goldenband

I always love seeing this thread revived!

Psyklax, if it's not too much trouble, could you post an updated/consolidated copy of your Famicom and FDS translation lists at some point? With different copies in different places in the thread, and many of them out of date, it's gotten a tiny bit tricky to track what's what.

Still need to do something more with my partial translation of Konamic Tennis for the FDS, but that's a 1988 release and we ain't there yet. :)

My wife and I played through some of Pluvius's translation of Murder on the Mississippi a while back -- need to get back to that one. I'm also still wondering where that other translation of Super Monkey Daibouken ("Super Monkey Adventure") came from!

filler

Quote from: Psyklax on February 13, 2018, 12:03:56 PM
Well that's the first I've heard of it! :o
It's a couple of pages back in this thread. ;) (http://www.romhacking.net/forum/index.php?topic=24269.msg342891#msg342891)

You may want to follow up with her about it. I know she finished Outlanders and got that back to me, which is publicly available via the Help Wanted board currently.

cccmar

Quote from: Psyklax on February 13, 2018, 12:03:56 PM
Thing is, I was doing it by year, and the only ones left were the fiddly ones, so it's not like we were doing big translations over simple ones. Trust me: if you see my list of translations you'll notice that I LOVE easy ones. :D

Yup, of course! It just so happens that there are tons of RPGs/adventure games left from that period as well ('87-'90 more or less), and not many groups are focused specifically on those. Also, filler has a point, it could be a good idea to ask Eien about TS. :)

Psyklax

Everyone's telling ME to contact her, nothing stopping you guys from doing it... ;)

Anyway, she said "I can help of you like" which is hardly a clear statement. I'll send a PM...

Psyklax

Quote from: goldenband on February 13, 2018, 06:52:13 PM
Psyklax, if it's not too much trouble, could you post an updated/consolidated copy of your Famicom and FDS translation lists at some point? With different copies in different places in the thread, and many of them out of date, it's gotten a tiny bit tricky to track what's what.

Now that's a damn good idea! :) I've added my newly-updated list to the very first post, so you can check that. If I've missed anything, let me know. Note that I'm not actively involved with this project myself now, but I'm always keen to hear about news regarding the situation.

goldenband

Quote from: Psyklax on February 21, 2018, 05:00:12 PM
Now that's a damn good idea! :) I've added my newly-updated list to the very first post, so you can check that. If I've missed anything, let me know. Note that I'm not actively involved with this project myself now, but I'm always keen to hear about news regarding the situation.

Thanks very much for that! It's a big help. And it's so gratifying to see how close we are to getting the first four calendar years of the Famicom's library 100% translated, with year five well underway.

Psyklax

Funny, after reading your message, it occurred to me that we've had a couple of translations since I made the list... so I've just updated it with The Black Bass and Takahashi Meijin no Bugutte Honey. :) Makes the list look a little nicer!

Psyklax

Hey guys! I think it's time we had an UPDATE!! :D

After Filler posted about it a week ago, I've spent the week hacking his translation into the game, and now I can present it to you guys: Sherlock Holmes for the Famicom!


Download xdelta (Work In Progress)

I haven't 100% finished it as there's still a few bytes I forgot to touch, but it's practically done. It's an xdelta patch rather than IPS because I doubled the ROM size, and IPS isn't very good at that. Doubling the ROM enabled me to fit all the text in very comfortably. I hope you like the ZX Spectrum font, too. ;)

Please let me know what you think, and if all looks good, I'll be officially releasing it ASAP. I admit it's not the best game: funnily enough, it reminds me of Aighina's Prophecy that I translated before on this project, with all the hints to where you should go and what to do, but that was mostly helpful. This game requires a FAQ, seriously. I've half thought about doing a 'redux' version which gives you explicit directions instead of vague hints.

Anyway, give it a try! :D

mz

Good job on another really fast release! (Although it certainly isn't the best game. :D)

Quote from: Psyklax on March 06, 2018, 03:53:56 AMI hope you like the ZX Spectrum font, too. ;)
I like it! I used it on another detective game, too: http://www.romhacking.net/?page=translations&action=images&id=2880&imageid=2

I wonder if there's something about the Speccy that makes one think about detectives...
There has to be a better life.

Psyklax

Quote from: mz on March 06, 2018, 04:55:01 AM
I like it! I used it on another detective game, too: http://www.romhacking.net/?page=translations&action=images&id=2880&imageid=2

Ah yes, the game I never got around to finishing. :) At least I finished the first game. I was always curious: did you do it from scratch, or did my work on it help you out at all?

Midna

What if we're indifferent to the ZX Spectrum font because we live in a country where it was never sold?