Author
|
Topic: A possible comeback + Questions (Read 2616 times)
|
Pepper
Guest
|
|
« Reply #15 on: September 24, 2006, 01:20:52 am » |
|
Kinda off topic, but anybody ever use FDS Explorer. It looks pretty cool, but I am to lazy to install the .NET Framework to check it out. I feel kinda bad for the author's lack of feedback, so e-mail him if you like it or have any suggestions. http://www.anes.se/FDSExplorer/P.S. I submitted it to the database, but I could not link directly to the download .
|
|
|
|
Alcy
Guest
|
|
« Reply #16 on: September 24, 2006, 12:07:32 pm » |
|
What's the problem? Just click File -> Open -> Browse for the .fds file -> Double click. Yeah, you need the FDS BIOS ROM (or Sharp Twin Famicom BIOS, shouldn't be any difference except saying FAMICOM instead of Nintendo). Should be on many sites. But if you can't find it, there's the one in the GoodNES set. But most of that one is garbage. Just copy $6010-800F into another file to get a working BIOS ROM. Rename this file disksys.rom and put in the same folder as the FCEUltra exe. The BIOS ROM will automatically load when you open an FDS image. It's possible I have the GoodNES one, I'll have to check, but I've done all those steps as far as opening the ROM. It works fine for me in VirtuaNES, just not FCEU. Where should I put the BIOS file in regards to my copy of FCEU? Last night, I split the ROM and took a closer look...still not much in the way of finding the ASCII bits that are somewhere, and while the kana is no longer on top of other kana in 1BPP mode, each block is still half of one kana on the top and half of another kana on the bottom. Is this a type of encoding? Things will probably be OK if/when I can get FCEU to run FDS and get the table, though if the ASCII isn't a full table I'll have to be sure I understand this part.
|
|
|
|
Ryusui
Guest
|
|
« Reply #17 on: September 25, 2006, 02:55:11 am » |
|
It's not encoding, it just means the font is slightly offset.
Press the + and - keys until everything lines up.
|
|
|
|
Alcy
Guest
|
|
« Reply #18 on: September 25, 2006, 05:22:37 pm » |
|
It's not encoding, it just means the font is slightly offset.
Press the + and - keys until everything lines up.
On the keyboard? I don't see any + or - buttons in the program (but maybe I'm just overlooking something obvious). Still no luck getting FCEUXD to run FDS games (I probably need to figure out how to copy that part out of the BIOS I have, like someone said earlier), but the game does have a full ASCII table - it showed up in VirtuaNES's pattern viewer. Won't do me much good until I can figure out the hex numbers, though. Hopefully I'm getting on the right track. Is there an easy way to edit pointers? I'm really just on the beginning level and don't know if I should mess with them, but most names would be too long to romanize in the current spacing. I think in the Crayon Shin-Chan game, I just made special tiles with combinations of letters to use for those, but I'm sure there's a better way... Thanks for all the help, guys!
|
|
|
|
Ryusui
Guest
|
|
« Reply #19 on: September 25, 2006, 06:36:38 pm » |
|
On the keyboard? I don't see any + or - buttons in the program (but maybe I'm just overlooking something obvious).
Yes, on the keyboard. Doing so will increment/decrement the offset.
|
|
|
|
Alcy
Guest
|
|
« Reply #20 on: September 25, 2006, 09:21:55 pm » |
|
On the keyboard? I don't see any + or - buttons in the program (but maybe I'm just overlooking something obvious).
Yes, on the keyboard. Doing so will increment/decrement the offset. OK, thanks. Sorry for the dumb question there.
|
|
|
|
Alcy
Guest
|
|
« Reply #21 on: September 26, 2006, 12:25:08 am » |
|
Thanks to everyone's help, I now have a table file and am working on this game. Everything seems to be going smoothly now, if I have any more questions (likely) I'll be back. Thank you!
|
|
|
|
KingMike
Guest
|
|
« Reply #22 on: September 27, 2006, 09:29:59 am » |
|
A simple DOS program I wrote to copy a block of data from one file to another location in the same file, or a different file. Now just feed it the GoodNES BIOS, 6010, 800f, "disksys.rom", 0. And you're done. (not a command-line tool. I'm too lazy to use a command-line if I don't have to. ) (at some, I'll stop being lazy and write a space-filled-filename-happy program. Right now, use DOS-style filenames. No spaces. Also, the program assumes addresses are in hex. Who uses decimal addresses anyways? ) EDIT: Removing the program. I can throw it up on my website if there's a request. PM or email.
|
|
« Last Edit: October 26, 2006, 09:57:14 pm by KingMike »
|
|
|
|
Alcy
Guest
|
|
« Reply #23 on: September 27, 2006, 05:26:49 pm » |
|
A simple DOS program I wrote to copy a block of data from one file to another location in the same file, or a different file. Now just feed it the GoodNES BIOS, 6010, 800f, "disksys.rom", 0. And you're done. (not a command-line tool. I'm too lazy to use a command-line if I don't have to. ) (at some, I'll stop being lazy and write a space-filled-filename-happy program. Right now, use DOS-style filenames. No spaces. Also, the program assumes addresses are in hex. Who uses decimal addresses anyways? ) Oh, I already got it working with a different BIOS file, but thank you. Question: Is it possible to switch disk sides in FCEUltra? It doesn't seem to be. I got a decent amount done last night after trying WindHex (Hexecute and the FCEU editor were having some problems), but then after the last edit I did, I was no longer able to switch disk sides (some error about "DISK A,B"). I was able to after doing any of the other edits...trouble is, I only edited things that seemed to be text. Is there anything standard about double-sided FDS games I should watch out for when messing with? Thanks. Also, (I might be asking prematurely on something simple here) certain words and names seem to be stored as shortcuts. Is there any way to figure out the shortcut to the name or word without waiting to find a line that calls for it? Is it usually safe to make a line longer than the original as long as you keep whatever code was on the end of it and make the next line shorter than the original by whatever amount? It seems fine in the menu since on the ends of words there were just spaces, but not sure about in the name or dialogue areas. Thanks again for putting up with all of my n00b questions!
|
|
|
|
Kitsune Sniper
Guest
|
|
« Reply #24 on: September 27, 2006, 05:53:44 pm » |
|
F8 ejects the disk, F6 flips it.
|
|
|
|
Ryusui
Guest
|
|
« Reply #25 on: September 27, 2006, 08:00:24 pm » |
|
Also, (I might be asking prematurely on something simple here) certain words and names seem to be stored as shortcuts. Is there any way to figure out the shortcut to the name or word without waiting to find a line that calls for it?
Is it usually safe to make a line longer than the original as long as you keep whatever code was on the end of it and make the next line shorter than the original by whatever amount? It seems fine in the menu since on the ends of words there were just spaces, but not sure about in the name or dialogue areas.
The first part is dictionary compression. See if you can find the dictionary in the ROM/image: all the words that are being abbreviated as byte shortcuts should be gathered together in one place. They should be sequential: that is, if the dictionary begins with "Homestar", "Trogdor" and "Marzipan", and we know that the byte $00 makes the game print "Homestar", then it stands to reason that $01 is "Trogdor" and $02 is "Marzipan". We can edit this dictionary, but first let's tackle the second part: Pointers. There are plenty of documents about pointers and how to edit them, but the basic premise is this: the game should have a table near the script full of numbers in a fairly regular pattern. Those numbers - usually pairs of bytes arranged in little-endian (i.e. Least Significant Byte/LSB-First) format - are the addresses of every string in the block. If you try to edit text in a ROM without understanding how pointers work, you're going to make a mess. On a side note, if you still need help with "little-endian" format, take this as an example: say the first string in the block is at address 4100. The pointer that indicates this string would therefore be 0041. If the second string starts at 4116, then the pointer for it would be 1641. Of course, it's usually not this clear-cut: game hardware treats ROMs differently from hex editors, and so you'll have to deal with banks and offsets and what-have-you. But it's a simple matter to work out once you know how to convert ROM-speak to hardware-speak and vice versa.
|
|
|
|
KingMike
Guest
|
|
« Reply #26 on: September 28, 2006, 12:25:29 am » |
|
Oh, I already got it working with a different BIOS file, but thank you.
Question: Is it possible to switch disk sides in FCEUltra? It doesn't seem to be.
I got a decent amount done last night after trying WindHex (Hexecute and the FCEU editor were having some problems), but then after the last edit I did, I was no longer able to switch disk sides (some error about "DISK A,B"). I was able to after doing any of the other edits...trouble is, I only edited things that seemed to be text. Is there anything standard about double-sided FDS games I should watch out for when messing with? Thanks.
Also, (I might be asking prematurely on something simple here) certain words and names seem to be stored as shortcuts. Is there any way to figure out the shortcut to the name or word without waiting to find a line that calls for it?
Is it usually safe to make a line longer than the original as long as you keep whatever code was on the end of it and make the next line shorter than the original by whatever amount? It seems fine in the menu since on the ends of words there were just spaces, but not sure about in the name or dialogue areas.
Thanks again for putting up with all of my n00b questions!
As for strings, some games use pointers, some might count strings. I'd say expirement. Try doing that method. If you change a string, and the one after it still prints, then you've got string counting going on. If the second string is bad, then you'll need to change it back. Deep Dungeon is a game that used the string counting method, plus the first byte in a string was the length. So if it wanted to print string #5, it would set a counter to 0, if the counter is not equal to 5, it would read the length (some games might instead read up to a end-of-string character) byte and increment the pointer by that much, increment the counter and repeat the procedure. String counting is slower than a pointer table, but it may happen on an FDS game, since they need to keep the file size low, so they can keep RAM space used low (since files are loaded into RAM, and then run). Also, with FDS games, I would eject the disk, and wait a couple a seconds before reinserting. Remember that you can flip a virtual disk over much faster than you probably could a physical disk. If you were playing with a real console, you'd have to push the eject button, pull the disk out, turn it over, and put it back in. You'd probably take a couple seconds to perform the operation (since you don't want to yank it out, or jam it back in). Some games depend on that reaction time. Also, to remind you, you should eject a disk before you change it (maybe that's why later versions of FCEUltra used the same key to insert and eject. Some games will want until the disk is ejected, (possibly wait the "reaction time" inherit to a real console, mentioned above) then check if the disk is inserted, and what side is inserted.
|
|
« Last Edit: September 28, 2006, 12:31:11 am by KingMike »
|
|
|
|
Alcy
Guest
|
|
« Reply #27 on: September 28, 2006, 08:51:13 pm » |
|
Hmm, thanks. The disk thing was fine when I tried it another time, I guess I probably did just mess up inserting/changing the disk that one time.
I'll try to figure out the dictionary thing, thanks. So far it seems to be OK to change line lengths (but there are some awkward spots where lines break in the middle of the word - though I'm sure I can just reword to fix that).
The only thing confusing me now is dialogue - I don't get how it's stored, it's different than other text. FCE Ultra shows the tiles numbered in order of how they appear rather than the table.
Thanks again for all of your help.
|
|
|
|
RedComet
Guest
|
|
« Reply #28 on: September 28, 2006, 08:53:07 pm » |
|
Hmm, thanks. The disk thing was fine when I tried it another time, I guess I probably did just mess up inserting/changing the disk that one time.
I'll try to figure out the dictionary thing, thanks. So far it seems to be OK to change line lengths (but there are some awkward spots where lines break in the middle of the word - though I'm sure I can just reword to fix that).
The only thing confusing me now is dialogue - I don't get how it's stored, it's different than other text. FCE Ultra shows the tiles numbered in order of how they appear rather than the table.
Thanks again for all of your help.
Are you sure you're using the PPU Viewer?
|
|
|
|
Alcy
Guest
|
|
« Reply #29 on: September 29, 2006, 01:16:52 am » |
|
Hmm, thanks. The disk thing was fine when I tried it another time, I guess I probably did just mess up inserting/changing the disk that one time.
I'll try to figure out the dictionary thing, thanks. So far it seems to be OK to change line lengths (but there are some awkward spots where lines break in the middle of the word - though I'm sure I can just reword to fix that).
The only thing confusing me now is dialogue - I don't get how it's stored, it's different than other text. FCE Ultra shows the tiles numbered in order of how they appear rather than the table.
Thanks again for all of your help.
Are you sure you're using the PPU Viewer? I used the name table viewer...it was fine for getting the table for every other kind of text. It seems kind of random...the menu and pretty much everything else uses a normal table, but dialogue is something like 404142434445464748494a4b4c in that order, but the text in question isn't in kana order. (Imagine 40=I 41= 42=u 43=s 44=e 45=d and so forth.)
|
|
|
|
|