Hoping to make your life's design a bit more dynamic!

It is currently Wed Sep 22, 2021 2:40 pm

All times are UTC [ DST ]




Post new topic Reply to topic  [ 28 posts ]  Go to page Previous  1, 2, 3  Next
Author Message
Post subject: Re: Me, My Stuff, and I
PostPosted: Fri Apr 14, 2017 2:53 pm 
Offline
Site Admin
User avatar

Joined: Fri Oct 30, 2009 4:43 am
Posts: 742
RetroGameFan9000 wrote:
Somebody hack the game's title screen. It is free for anyone that are translating the game. http://www.romhacking.net/translations/2100/


Ha! That's awesome! This makes my day. Thanks for pointing this out, and to M-Tee for the perfect title screen.


The Devil takes notes from Lina Inverse? That sounds about right.

My projects
RHDN Community DB


Top
 Profile  
Reply with quote  
Post subject: Re: Me, My Stuff, and I
PostPosted: Sun Apr 16, 2017 10:56 pm 
Offline

Joined: Tue Oct 20, 2009 6:19 pm
Posts: 226
I briefly looked at the game when M-Tee did his title screen for it several years back. (He did several excellent title screens for me in the past, but too bad he's not active anymore...) Anyhow, I said "screw this" when I saw vertical text. That stuff is usually a big pain to hack.


Top
 Profile  
Reply with quote  
Post subject: Re: Me, My Stuff, and I
PostPosted: Mon Apr 17, 2017 2:31 am 
Offline
Site Admin
User avatar

Joined: Fri Oct 30, 2009 4:43 am
Posts: 742
Garrett wrote:
I briefly looked at the game when M-Tee did his title screen for it several years back. (He did several excellent title screens for me in the past, but too bad he's not active anymore...) Anyhow, I said "screw this" when I saw vertical text. That stuff is usually a big pain to hack.

I noticed it's pretty infrequent, so I figured I'd get as far with it as I can. It may only be used in the intro.


The Devil takes notes from Lina Inverse? That sounds about right.

My projects
RHDN Community DB


Top
 Profile  
Reply with quote  
Post subject: Re: Me, My Stuff, and I
PostPosted: Mon Apr 17, 2017 6:40 pm 
Offline

Joined: Wed Oct 21, 2009 2:24 am
Posts: 215
filler wrote:
The title screen is a pretty big mess though. I don't know how people normally tackle those. I made one for Nakayama Miho's Tokimeki High School, but it was a real pain to put back in to the ROM due to the way the tiles were split up. Marusa no Onna looks even worse. :(

ImageImage

I first looked at that screen and was thinking like "dude, you're in the wrong BPP mode" but then I opened the ROM myself.
It's a CHR-ROM game so it should be in NES 2BPP, I think? (I think that's the NES "native" format which thus can only be used in CHR-ROM since CHR-ROM means the PPU is drawing them STRAIGHT out of the ROM)
But no it looks like it is doing a weird thing where two graphics are overlaid (perhaps to place two monochrome (1BPP) graphics in the ROM space of 1 4-color (2BPP) graphic). I guess using palette effects to mask out the pixels of the other graphic.
That would be a bit of a pain to draw I guess. (the four "colors" being: pixel used by neither graphic, pixel used by graphic #1, pixel used by graphic #2, pixel used by both)


Top
 Profile  
Reply with quote  
Post subject: Re: Me, My Stuff, and I
PostPosted: Tue Apr 18, 2017 7:10 am 
Offline
Site Admin
User avatar

Joined: Fri Oct 30, 2009 4:43 am
Posts: 742
KingMike wrote:
I first looked at that screen and was thinking like "dude, you're in the wrong BPP mode" but then I opened the ROM myself.
It's a CHR-ROM game so it should be in NES 2BPP, I think? (I think that's the NES "native" format which thus can only be used in CHR-ROM since CHR-ROM means the PPU is drawing them STRAIGHT out of the ROM)
But no it looks like it is doing a weird thing where two graphics are overlaid (perhaps to place two monochrome (1BPP) graphics in the ROM space of 1 4-color (2BPP) graphic). I guess using palette effects to mask out the pixels of the other graphic.
That would be a bit of a pain to draw I guess. (the four "colors" being: pixel used by neither graphic, pixel used by graphic #1, pixel used by graphic #2, pixel used by both)
Yeah, that's why I was in 1bbp. It might be fun to check out M-Tee's title screen in 1bbp to see how it looks. I assume they left those graphics in.

FYI: The script translation for Miho Nakayama is coming right along. The worst part is a character who speaks thick Kansai-ben. I can figure out most of his lines but a couple have me stumped.


The Devil takes notes from Lina Inverse? That sounds about right.

My projects
RHDN Community DB


Top
 Profile  
Reply with quote  
Post subject: Re: Me, My Stuff, and I
PostPosted: Wed Apr 19, 2017 2:03 am 
Offline
Site Admin
User avatar

Joined: Tue Oct 20, 2009 3:58 pm
Posts: 1275
Location: Korea
filler wrote:
FYI: The script translation for Miho Nakayama is coming right along. The worst part is a character who speaks thick Kansai-ben. I can figure out most of his lines but a couple have me stumped.


Great to hear the script is receiving your expert attention ;)

Your dialect comment reminds me of a fictional city in G.O.D. which uses a bit of Kansai/Nagoya dialect. Everyone in town tacks "Myaa" on the end of every damn sentence... Quite annoying, but a little quirky and cute, so it fits the game quite well.


Top
 Profile  
Reply with quote  
Post subject: Re: Me, My Stuff, and I
PostPosted: Wed Apr 19, 2017 6:40 am 
Offline
Site Admin
User avatar

Joined: Fri Oct 30, 2009 4:43 am
Posts: 742
Draken wrote:
Great to hear the script is receiving your expert attention ;)

Heh, it should be "done" tomorrow, probably edited by the weekend.

Draken wrote:
Your dialect comment reminds me of a fictional city in G.O.D. which uses a bit of Kansai/Nagoya dialect. Everyone in town tacks "Myaa" on the end of every damn sentence... Quite annoying, but a little quirky and cute, so it fits the game quite well.


Here's an example of Sadakichi's dialect which seems to be regular Kansai:
さだきち[STARTDIALOG]なんで きずかんかったんやろう。[LINE]
 わいは なさけのうて なさけのうて…($FF)

さだきち = Sadakichi
[STARTDIALOG]
なんで (standard) = "why"
きずかんかったん (kansai negative) = きづかなかったん "didn't realize"
やろう (kansai copula) = だろう "seems"
[LINE]
わいは (kansai masculine casual) = わたし "I"
なさけのうて (kansai masculine casual?) = なさけね/なさけない "pathetic/shameful"

Here's the standard line (as best I can. Maybe I screwed it up?):

さだきち[STARTDIALOG]なんで きづかなかったんだろう。[LINE]
 わたしは なさけねて なさけねて…($FF)

Sadakichi: Why didn't I realize? I'm so ashamed...


The Devil takes notes from Lina Inverse? That sounds about right.

My projects
RHDN Community DB


Top
 Profile  
Reply with quote  
Post subject: Re: Me, My Stuff, and I
PostPosted: Sat Jun 02, 2018 10:16 am 
Offline
Site Admin
User avatar

Joined: Fri Oct 30, 2009 4:43 am
Posts: 742
I guess I made this a while ago to ramble about what I'm working on. Due to Supper's interest in an old Game Gear project of mine, Magic Knight Rayearth, I started poking at some Game Gear games again for fun. Due to this, I've managed to dump a script for Kishin Douji Zenki as well as a partial script for Sailor Moon. I am missing what I think Supper calls the tilemap text for that game. However, in taking a look at another Game Gear game, Saint Tail, I checked video RAM/tileset with the emulator Emukon, and used it to make a table file for the dialog, and a separate one for the tilemap/fixed length text.

Saint Tail's dialog is padded with a bunch of 00 and it wasn't playing nicely when dumping from a hex editor. This inspired me to write my first custom dumper in PHP. After looking up some functions and checking out some examples, it was fairly easy to open the file, read the data between some offsets, and then convert that data to hex. After that I read in the table file, turned it into an associative array, and performed a swap with the hex values. I had to chunk the hex into single bytes to do the swapping, or at least that was the first solution that came to mind. I'm not happy with it because there's not currently a way to deal with multibyte entries in the table file, but I'll think about that problem more later.

For now I was able to dump the dialog text, as well as two different styles of fixed width text. I also coded it to handle converting unvoiced characters to voiced ones (i.e. ones with diacritical marks). It can handle this conversion for diacritics that appear one character before an unvoiced character, one character after, or on a fixed width line, a specified number of lines previous to the current line. I also coded it to work with config files, so the main script and function libraries can stay the same, while the config file is used for each individual game, or style of text within a game. It's basically like OOP templates, except I didn't actually use OOP since I'm still not fully comfortable with it. This could be a good project to convert to OOP, but I wasn't motivated enough to go there.

For example, I have 3 config files for Saint Tail; one configured to dump the dialog text, converting diacriticals that appear before the unvoiced character, one configured to dump fixed length text that's 20 characters long with diacriticals that appear two lines previous, and one configured to dump fixed length text that's 22 characters long with diacriticals that appear one line previous.

I'm curious to see how useful this is for handling fixed width text in other projects since this has always been something of a stumbling block for me. I'm messing around with some more Game Gear games such as Moldorian which I've made something of a text dump for. I don't know how many of these I'll translate, but stuff like Saint Tail is short and easy so I'll probably bang out a few scripts here and there.


The Devil takes notes from Lina Inverse? That sounds about right.

My projects
RHDN Community DB


Top
 Profile  
Reply with quote  
Post subject: Re: Me, My Stuff, and I
PostPosted: Sat Jun 02, 2018 1:15 pm 
Offline
Site Admin
User avatar

Joined: Mon Oct 05, 2009 9:49 am
Posts: 1361
Location: Oklahoma City
Filler: Dealing with multibyte values is pretty simple. The way I used to do it was to load an array with your table values and then sort largest to smallest. You don't have to sort the array but it is easier than the alternative. You can do this as you load or by using a second array or whatever means you want but this is the easy way. Then find the length in bytes of the largest one and then load that many bytes of the rom. Then test that data against the table biggest to smallest using chopping just the amount to test against you need. If you've already sorted the table this is simple but you can sort on the fly instead. And that is it.

The reason you test from largest to smallest is simple. Lets say you have Dual Tile Encoding for example.

You want to find things like il, li and ll before you find i or l. Largest to smallest is the way to make sure

Or if you have Word Table Lookup Compression you'd want to find the and then before you find t h or e.

Oh, and of course then you move forward in the file with a locate however many bytes you pulled.

You could (if you find the pointer table) use that to locate and pull text. But that is more advanced though not much harder. I typically program in perl these days (even though I do know other languages.) I just feel the most comfortable with it. Sure it isn't GUI but I wouldn't do any of these with a gui anyway. Gizmo was programmed in Visual Basic. At that time, several people told me a general insertion tool that dealt with pointers was impossible. It was actually not only possible but quite easy. Sure it isn't much use these days but it did its job well at that time and a few groups used it to do games. It would probably work great for your Game Gear games. If you want it, just shout. Of course, this was back before Bongo` started doing most all our hacking. I honestly did most of my tools in Quick Basic before Gizmo. Laugh all you want but it worked just fine and we turned out plenty of projects with those old Quick Basic tools.


Image


Top
 Profile  
Reply with quote  
Post subject: Re: Me, My Stuff, and I
PostPosted: Sun Jun 03, 2018 1:25 am 
Offline
Site Admin
User avatar

Joined: Fri Oct 30, 2009 4:43 am
Posts: 742
taskforce wrote:
Filler: Dealing with multibyte values is pretty simple. The way I used to do it was to load an array with your table values and then sort largest to smallest. You don't have to sort the array but it is easier than the alternative. You can do this as you load or by using a second array or whatever means you want but this is the easy way. Then find the length in bytes of the largest one and then load that many bytes of the rom. Then test that data against the table biggest to smallest using chopping just the amount to test against you need. If you've already sorted the table this is simple but you can sort on the fly instead. And that is it.

The reason you test from largest to smallest is simple. Lets say you have Dual Tile Encoding for example.

You want to find things like il, li and ll before you find i or l. Largest to smallest is the way to make sure

Or if you have Word Table Lookup Compression you'd want to find the and then before you find t h or e.

Oh, and of course then you move forward in the file with a locate however many bytes you pulled.

You could (if you find the pointer table) use that to locate and pull text. But that is more advanced though not much harder. I typically program in perl these days (even though I do know other languages.) I just feel the most comfortable with it. Sure it isn't GUI but I wouldn't do any of these with a gui anyway. Gizmo was programmed in Visual Basic. At that time, several people told me a general insertion tool that dealt with pointers was impossible. It was actually not only possible but quite easy. Sure it isn't much use these days but it did its job well at that time and a few groups used it to do games. It would probably work great for your Game Gear games. If you want it, just shout. Of course, this was back before Bongo` started doing most all our hacking. I honestly did most of my tools in Quick Basic before Gizmo. Laugh all you want but it worked just fine and we turned out plenty of projects with those old Quick Basic tools.

Thank you for that advice. I was thinking of something along those lines (sorting and then chunking by size) but I hadn't thought it out. This will be a big help. As for using pointer tables, I actually asked for some advice about that on the RHDN forum just recently, but it does sound more involved than I'm interested in. Maybe I can get my head around it, but I don't know. I'd have to run across a use case and really decide to give it a try. What I'm doing for now is adequate for some projects anyway.

No shame in Quick Basic either. I programmed QBasic in the 90s. Is Gizmo an executable? I'd certainly take a look at it.


The Devil takes notes from Lina Inverse? That sounds about right.

My projects
RHDN Community DB


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 28 posts ]  Go to page Previous  1, 2, 3  Next

All times are UTC [ DST ]


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group