Progress on Project MONOLITH... some technical mumbo jumbo inside

Started by OldRover, 12/25/2011, 11:01 PM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

OldRover

For all of you waiting for updates on this project... I'm bringing in a few updates now.

/monolith-0010.png

This is the "dark castle" tileset. A lot of detail for so few colors.

/monolith-0016.png

A quick test of the shiny new Shift-JIS based dynamic text render code. All of the text is stored as Shift-JIS characters and is displayed using dynamic tile RAM updating; the font itself is pulled from the system card in realtime. It turned out to be less memory-intensive to just store all the text (even the English text) as Shift-JIS sequences rather than to use a lookup table (since there's so little actual text in the game).

In order to pull off the dialogue, I wrote a script "compiler" specifically for this project that uses my "famous" (haha) ETX scripting format. ETX (Etended TeXt) is a scripting format I developed in the late 1990s for RPG dialogue. It looks a bit like HTML. For the image above, this is the code:

;test script!
=english
%0
This is a test
script! LOGIC!
<END>
The ; line is a comment line, the = line tells the compiler which language to process, and the % line is an "entry point". The compiler generates the compiled script and a text file that can be copied 'n pasted into the source code that contains the entry points for each dialogue block. This is the method I should have used for MSR, but by the time I came up with it, it was way too late.

So... yeah... that's what's up right now. Oh, and the village shown in the second image has a whole bunch of women wandering around... lol. :) Only one is shown here. Their code is handled by the same code that went into the action scenes; it's based on some code Arkhan used for Insanity that is able to handle a large amount of data way faster than HuC can do by itself.

A new video will be put out once the village is more fleshed out.
Turbo Badass Rank: Janne (6 of 12 clears)
Conquered so far: Sinistron, Violent Soldier, Tatsujin, Super Raiden, Shape Shifter, Rayxanber II

OldRover

OK here's another quick test shot from the script function.

/monolith-0017.png

Yeah, I put a chick on the roof. :) The main thing of this shot was... I took a count of the unique colors... 86 in total. 86 freakin' unique colors. As Fragmare said before... the PCE is a palette monster. :)
Turbo Badass Rank: Janne (6 of 12 clears)
Conquered so far: Sinistron, Violent Soldier, Tatsujin, Super Raiden, Shape Shifter, Rayxanber II

nectarsis

My Blogger profile with all my blogs of wonderment:
blogger.com/profile/08066967226239965436

roflmao


cabbage

Looks like the project is progressing nicely! Those screenshots are excellent and now I'm looking forward to the new video. Thanks for sharing and especially for including "some technical mumbo jumbo" :D

HercTNT

completely agree! I love the sliver moon in the back ground, its a really nice touch.

OldRover

I've been verifying the character set lookup table inside the compiler... so far so good. Had to make a few changes, and made some minor code tweaks in the script decoder inside the game code. I was running into a weird VRAM usage issue that hopefully doesn't cause any problems when it comes to doing the Japanese text. It's not a problem for the English text since English tends to use a lot of spaces, but such is not the case in Japanese so hopefully I can figure out a way to deal with the problem if it arises. Starting at a lower VRAM address will probably solve it.

Man... I really should have done something like this for MSR... oh well. Lesson learned. :) Now, changing text is just a matter of making changes to the script file, running it through the compiler, then copy-n-pasting the entry point list into the game code. Freakin' easy peasy. With MSR, the script file gets changed too, but then I have to manually go into MSR's source code and update every fucking text pointer by hand. This can take hours, depending on how much data got moved around.

Anyway, today I'll be adding more of the control set to the script compiler, and will probably finish the NPC collision stuff so it will actually work like a real dialogue system (right now, you just press SELECT to bring up a pre-set dialogue sequence... works great for testing but is obviously useless in a real game). I also plan on finishing at least the outside of the village. NPC movement is kinda like Cadash meets Zelda 2... some NPCs move in pre-set patterns (like in Cadash), and some just walk and walk and walk and if they go off the map bounds, they just respawn on the other side (like in Zelda 2).
Turbo Badass Rank: Janne (6 of 12 clears)
Conquered so far: Sinistron, Violent Soldier, Tatsujin, Super Raiden, Shape Shifter, Rayxanber II

OldMan

QuoteMan... I really should have done something like this for MSR... oh well. Lesson learned. Smile
Only one of many, I'm sure :)

Quotechanging text is just a matter of making changes to the script file, running it through the compiler, then copy-n-pasting the entry point list into the game code
Why not make the compiler dump the entry point list to a text file, and include it in the source?
(Just Curious).

Arkhan Asylum

how bout all the fancy databloblolomgsomanyenemies stuff? :)
This "max-level forum psycho" (:lol:) destroyed TWO PC Engine groups in rage: one by Aaron Lambert on Facebook "Because Chris 'Shadowland' Runyon!," then the other by Aaron Nanto "Because Le NightWolve!" Him and PCE Aarons don't have a good track record together... Both times he blamed the Aarons in a "Look-what-you-made-us-do?!" manner, never himself nor his deranged, destructive, toxic turbo troll gang!

OldRover

QuoteWhy not make the compiler dump the entry point list to a text file, and include it in the source?
(Just Curious).
They reside in different directories. When the compiler is finished, I'll probably copy it over to the game directory, but for now, this is a terribly minor detail and it sure beats the snot out of the method used for MSR. :) It already dumps the entry point list to a text file. I could probably just copy the file itself into the game directory to save an extra 2 seconds, hehe.
Turbo Badass Rank: Janne (6 of 12 clears)
Conquered so far: Sinistron, Violent Soldier, Tatsujin, Super Raiden, Shape Shifter, Rayxanber II

OldRover

OK... monkeying around a bit more, I've added bold text.

/monolith-0018.png

It works by taking each of the 32 bytes in the font buffer, then calculating a shifted value in both directions, then ORing the results back onto the data.

for(checkx1=0;checkx1<32;checkx1++)
{
highbyte = bytebuffer[checkx1] << 1;
lowbyte = bytebuffer[checkx1] >> 1;
bytebuffer[checkx1] = bytebuffer[checkx1] | highbyte | lowbyte;
}
which works ok. The only problem with this is that the text is stored character-by-character in the buffer, so bits on the edges are lost, producing some very obvious seams. This can be remedied by using the buffer as a per-line buffer rather than a per-character buffer, but the amount of work required to get the pixels onscreen goes up by quite a bit. However, doing that also opens the possibility of adding italics as well, so it'll be implemented at some point here.
Turbo Badass Rank: Janne (6 of 12 clears)
Conquered so far: Sinistron, Violent Soldier, Tatsujin, Super Raiden, Shape Shifter, Rayxanber II

OldRover

/monolith-0019.png

Figured it might be useful to include the ability for English text to directly specify Shift-JIS characters. Might have limited use, but for any characters which aren't included in the supported 95 character Roman lookup table, it might serve a purpose. The Japanese script parser already reads strings of Shift-JIS sequences.
Turbo Badass Rank: Janne (6 of 12 clears)
Conquered so far: Sinistron, Violent Soldier, Tatsujin, Super Raiden, Shape Shifter, Rayxanber II

OldMan

QuoteI could probably just copy the file itself into the game directory to save an extra 2 seconds, hehe.
Or you could just specify where the file is in the include line....
(ie, .include "../dir1/dir2/file.txt" ).
It does work in Huc, but may take a bit of experimenting to get the right location. We do it to keep graphics and such out of the way :)

OldRover

Yeah, I could probably do that. I normally store things in subdirectories of the project directory... only source files go in the project directory proper. The script file, for example, goes in ./binscripts with all the other datablob-type stuff. Keeps things organized better if I have to move project folders around for backups or whatnot.
Turbo Badass Rank: Janne (6 of 12 clears)
Conquered so far: Sinistron, Violent Soldier, Tatsujin, Super Raiden, Shape Shifter, Rayxanber II

Arkhan Asylum

Insanity was one big folder of shit for awhile.

Then, that stopped right away and now it doesn't happen anymore. lol

iirc, it uses / not \ even if you're on Windows.  :)
This "max-level forum psycho" (:lol:) destroyed TWO PC Engine groups in rage: one by Aaron Lambert on Facebook "Because Chris 'Shadowland' Runyon!," then the other by Aaron Nanto "Because Le NightWolve!" Him and PCE Aarons don't have a good track record together... Both times he blamed the Aarons in a "Look-what-you-made-us-do?!" manner, never himself nor his deranged, destructive, toxic turbo troll gang!

OldRover

Yep. If you want to use \, you have to use \\ anyway. It makes more sense to just use / since it's supported by HuC, and it's universal. Using \\ if you're compiling in Unix makes shit go boom (already done it, so I know).
Turbo Badass Rank: Janne (6 of 12 clears)
Conquered so far: Sinistron, Violent Soldier, Tatsujin, Super Raiden, Shape Shifter, Rayxanber II

OldRover

Language select screen.

/monolith-0027.png

There's no Japanese currently in the game, so if you select it and try to talk to people in the village, you get the first English text blurb (since the Japanese pointers are all set to 0).
Turbo Badass Rank: Janne (6 of 12 clears)
Conquered so far: Sinistron, Violent Soldier, Tatsujin, Super Raiden, Shape Shifter, Rayxanber II

blueraven


Arkhan Asylum

Quote from: The Old Rover on 12/26/2011, 02:39 PMYep. If you want to use \, you have to use \\ anyway. It makes more sense to just use / since it's supported by HuC, and it's universal. Using \\ if you're compiling in Unix makes shit go boom (already done it, so I know).
yeah, the \\ is implied when you use \ in C.

At least, if you have half a fuckin brain. :D
This "max-level forum psycho" (:lol:) destroyed TWO PC Engine groups in rage: one by Aaron Lambert on Facebook "Because Chris 'Shadowland' Runyon!," then the other by Aaron Nanto "Because Le NightWolve!" Him and PCE Aarons don't have a good track record together... Both times he blamed the Aarons in a "Look-what-you-made-us-do?!" manner, never himself nor his deranged, destructive, toxic turbo troll gang!

OldRover

Quote from: guest on 12/27/2011, 01:12 AMAt least, if you have half a fuckin brain. :D
A quick look at the staff list at Adobe proves that not all programmers have even half a brain. :)
Turbo Badass Rank: Janne (6 of 12 clears)
Conquered so far: Sinistron, Violent Soldier, Tatsujin, Super Raiden, Shape Shifter, Rayxanber II

incrediblehark

This game is looking very impressive and fun, looking forward to playing it! You are one clever man

OldRover

New prototype video:
Shows off multiple moving NPCs with working interaction, multi-layer parallax scrolling (as usual), lots of new artwork from Paul, fully functional enemies, and a new boss fight.
Turbo Badass Rank: Janne (6 of 12 clears)
Conquered so far: Sinistron, Violent Soldier, Tatsujin, Super Raiden, Shape Shifter, Rayxanber II

henrycsc

Wanted:
Bootleg Hucards (Hong Kong, China)
Third Party Hardware (US, Japan, China, Europe, Korea)
Canadian Boxes and Manuals (French text)
Ton's of Trades available - just PM me.

roflmao


Arkhan Asylum

:)

My only complaint is that the text is kinda sprawled out.  the spacing feels like it needs to be tighter, to me.

I like the town parallax.  The whole atmosphere of the towns reminds me of Zelda II alot.
This "max-level forum psycho" (:lol:) destroyed TWO PC Engine groups in rage: one by Aaron Lambert on Facebook "Because Chris 'Shadowland' Runyon!," then the other by Aaron Nanto "Because Le NightWolve!" Him and PCE Aarons don't have a good track record together... Both times he blamed the Aarons in a "Look-what-you-made-us-do?!" manner, never himself nor his deranged, destructive, toxic turbo troll gang!

OldRover

Yeah, the huge text is kinda a bugger, but it's because it's pulled from the system card in realtime. I could implement a static 8x16 font if need be, though.
Turbo Badass Rank: Janne (6 of 12 clears)
Conquered so far: Sinistron, Violent Soldier, Tatsujin, Super Raiden, Shape Shifter, Rayxanber II

Arkhan Asylum

The Cosmic Fantasy 2 font was pretty legit, if you ask me. 
This "max-level forum psycho" (:lol:) destroyed TWO PC Engine groups in rage: one by Aaron Lambert on Facebook "Because Chris 'Shadowland' Runyon!," then the other by Aaron Nanto "Because Le NightWolve!" Him and PCE Aarons don't have a good track record together... Both times he blamed the Aarons in a "Look-what-you-made-us-do?!" manner, never himself nor his deranged, destructive, toxic turbo troll gang!

OldRover

Yeah, the CF2 font was pretty nice. Maybe I could swipe it, hehe. :)

/monolith-0031.png

Tatsujin translated all the text from the first village, so... there ya go. :)
Turbo Badass Rank: Janne (6 of 12 clears)
Conquered so far: Sinistron, Violent Soldier, Tatsujin, Super Raiden, Shape Shifter, Rayxanber II

Arkhan Asylum

See, the moon runes look fine in that font.  It's just the round eye that looks retarded.
This "max-level forum psycho" (:lol:) destroyed TWO PC Engine groups in rage: one by Aaron Lambert on Facebook "Because Chris 'Shadowland' Runyon!," then the other by Aaron Nanto "Because Le NightWolve!" Him and PCE Aarons don't have a good track record together... Both times he blamed the Aarons in a "Look-what-you-made-us-do?!" manner, never himself nor his deranged, destructive, toxic turbo troll gang!

OldRover

Turbo Badass Rank: Janne (6 of 12 clears)
Conquered so far: Sinistron, Violent Soldier, Tatsujin, Super Raiden, Shape Shifter, Rayxanber II

Arkhan Asylum

Hmm.  I feel like it should be Norumandoru, or something.

Doesn't that say "noomandoru"
This "max-level forum psycho" (:lol:) destroyed TWO PC Engine groups in rage: one by Aaron Lambert on Facebook "Because Chris 'Shadowland' Runyon!," then the other by Aaron Nanto "Because Le NightWolve!" Him and PCE Aarons don't have a good track record together... Both times he blamed the Aarons in a "Look-what-you-made-us-do?!" manner, never himself nor his deranged, destructive, toxic turbo troll gang!

OldRover

The original text says "Normandor". Tatsujin translated it to ノーマンドル and SuperDeadite confirmed that it's good, so... we be all good here. :D
Turbo Badass Rank: Janne (6 of 12 clears)
Conquered so far: Sinistron, Violent Soldier, Tatsujin, Super Raiden, Shape Shifter, Rayxanber II

Arkhan Asylum

I guess either works really.  It's not like there are severe rules for making round eye words in Katakana.

This "max-level forum psycho" (:lol:) destroyed TWO PC Engine groups in rage: one by Aaron Lambert on Facebook "Because Chris 'Shadowland' Runyon!," then the other by Aaron Nanto "Because Le NightWolve!" Him and PCE Aarons don't have a good track record together... Both times he blamed the Aarons in a "Look-what-you-made-us-do?!" manner, never himself nor his deranged, destructive, toxic turbo troll gang!

spenoza

Quote from: The Old Rover on 12/28/2011, 01:24 AMThe original text says "Normandor". Tatsujin translated it to ノーマンドル and SuperDeadite confirmed that it's good, so... we be all good here. :D
That is an acceptable way, but I think "ノルマンドル" is just as likely a candidate, and I think I've seen more English words with "or" in them translated as "oru" instead of "oo". The Japanese are nothing if not inconsistent.

OldRover

Well, I don't plan on changing it now. :) hehe :) but yeah... it seems there's more than one way of doing things. Hell, SD and Tats had different ideas about the particular dialect used...
Turbo Badass Rank: Janne (6 of 12 clears)
Conquered so far: Sinistron, Violent Soldier, Tatsujin, Super Raiden, Shape Shifter, Rayxanber II

spenoza

Find out how Japan romanizes "Normandy" and you've got it.  : )

Arkhan Asylum

Quote from: The Old Rover on 12/28/2011, 10:51 PMWell, I don't plan on changing it now. :) hehe :) but yeah... it seems there's more than one way of doing things. Hell, SD and Tats had different ideas about the particular dialect used...
When it comes to katakana9000ing stuff, there is definitely more than one way.  I got multiple ways to do Insanity, and picked the one I liked the most.

Noomandoru and Norumandoru are both acceptable, I just prefer the ru as much as possible. :)

Google translate refers to both of them as "Norman US Dollar"

so, Nooman Doru and Noruman Doru, lol
This "max-level forum psycho" (:lol:) destroyed TWO PC Engine groups in rage: one by Aaron Lambert on Facebook "Because Chris 'Shadowland' Runyon!," then the other by Aaron Nanto "Because Le NightWolve!" Him and PCE Aarons don't have a good track record together... Both times he blamed the Aarons in a "Look-what-you-made-us-do?!" manner, never himself nor his deranged, destructive, toxic turbo troll gang!

OldRover

Norman US Dollar? Wtf. lol

The name "Normandor" comes from a modification of "Cormantor", which was one of the original cities in the game world. When Charlie (not MacDonald... this particular Charlie isn't part of the PCE scene) and I were designing the game world, he named a city "Cormantor", and it was the first city you reach in the game. The first village wasn't named at that point, and the name "Normandor" just kinda popped into my head. The name worked, so the name stuck.
Turbo Badass Rank: Janne (6 of 12 clears)
Conquered so far: Sinistron, Violent Soldier, Tatsujin, Super Raiden, Shape Shifter, Rayxanber II

Arkhan Asylum

Well, Doru = Dollar

and Noruman, well, duh.

:D

WELCOME TO TOWN NORMAN US DOLLAR!
This "max-level forum psycho" (:lol:) destroyed TWO PC Engine groups in rage: one by Aaron Lambert on Facebook "Because Chris 'Shadowland' Runyon!," then the other by Aaron Nanto "Because Le NightWolve!" Him and PCE Aarons don't have a good track record together... Both times he blamed the Aarons in a "Look-what-you-made-us-do?!" manner, never himself nor his deranged, destructive, toxic turbo troll gang!

OldRover

The Roman font on the system card really was bugging me, so I modified the script compiler to spit out regular ASCII characters for the English text, modified the in-game script process to support new subcode 0x09 for direct Shift-JIS character entry, and loaded in a pre-made 8x16 font. The end result:

/monolith-0037.png

Much better, methinks. :) And of course, I can change the font at any time to something new... if need be.
Turbo Badass Rank: Janne (6 of 12 clears)
Conquered so far: Sinistron, Violent Soldier, Tatsujin, Super Raiden, Shape Shifter, Rayxanber II

Arkhan Asylum

yes, that font is far better than the other stretchy one.

I mean it still sucks, but hey, I'm picky. >=)
This "max-level forum psycho" (:lol:) destroyed TWO PC Engine groups in rage: one by Aaron Lambert on Facebook "Because Chris 'Shadowland' Runyon!," then the other by Aaron Nanto "Because Le NightWolve!" Him and PCE Aarons don't have a good track record together... Both times he blamed the Aarons in a "Look-what-you-made-us-do?!" manner, never himself nor his deranged, destructive, toxic turbo troll gang!

OldRover

Turbo Badass Rank: Janne (6 of 12 clears)
Conquered so far: Sinistron, Violent Soldier, Tatsujin, Super Raiden, Shape Shifter, Rayxanber II

Arkhan Asylum

needs more fixedsys, ;)

You know you like it.  Cmon, show everyone!
This "max-level forum psycho" (:lol:) destroyed TWO PC Engine groups in rage: one by Aaron Lambert on Facebook "Because Chris 'Shadowland' Runyon!," then the other by Aaron Nanto "Because Le NightWolve!" Him and PCE Aarons don't have a good track record together... Both times he blamed the Aarons in a "Look-what-you-made-us-do?!" manner, never himself nor his deranged, destructive, toxic turbo troll gang!

OldRover

/monolith-0040.png

Public opinion seems split between these two images... the second one above, and this one right here. The second one above is nice because it's clean and Falcom-ish, and this one's good because it's uniform and solid.
Turbo Badass Rank: Janne (6 of 12 clears)
Conquered so far: Sinistron, Violent Soldier, Tatsujin, Super Raiden, Shape Shifter, Rayxanber II

esteban

The easiest (and best) way to compare the fonts was to stack 'em together:

IMG

(A) is nice in isolation, but clearly not as fluid and graceful as (B). It may be possible to salvage (A) by adjusting the overall tracking (spacing) between all the letters (but that would require a lot of work, and I don't know if there is any extra room in the individual tiles.) Kerning between certain letter combos is also an issue, but tracking would probably solve most of (A)'s shortcoming.

(B) is truly elegant and charming. It doesn't seem to offer as much contrast with the background as (A) or (B). Odd, since (A) and (B) are not much different. (B) is the sans serif version of (A), with pussy-footed dots over the "i".

(C) is [bold] and easy to read even when you are sleepy and about to enter the land of Nod. I think it is easy to read, but it does seem a bit heavy-handed compared to (B), no? (B) sharply contrasts with the background, which definitely improves its readability.
IMGIMG IMG  |  IMG  |  IMG IMG

Keranu

Quote from: TurboXray on 01/02/2014, 09:21 PMAdding PCE console specific layer on top of that, makes for an interesting challenge (no, not a reference to Ys II).
IMG
Click the banner to learn more about Alex Chiu and his "immortality rings"

NecroPhile

You forgot everyone's favorite font, esteban!

IMG

/monolithfont.png

Damn that looks good!
Ultimate Forum Bully/Thief/Saboteur/Clone Warrior! BURN IN HELL NECROPHUCK!!!

Arkhan Asylum

keranu has an interesting point.  The single pixel ones might blow wang on a TV
This "max-level forum psycho" (:lol:) destroyed TWO PC Engine groups in rage: one by Aaron Lambert on Facebook "Because Chris 'Shadowland' Runyon!," then the other by Aaron Nanto "Because Le NightWolve!" Him and PCE Aarons don't have a good track record together... Both times he blamed the Aarons in a "Look-what-you-made-us-do?!" manner, never himself nor his deranged, destructive, toxic turbo troll gang!

spenoza

I'm for C, the bold text. Readability is king, IMO. The spacing looks better on it as well.

OldRover

Of course, there's two others...

/monolith-0039.png
/monolith-0041.png
Turbo Badass Rank: Janne (6 of 12 clears)
Conquered so far: Sinistron, Violent Soldier, Tatsujin, Super Raiden, Shape Shifter, Rayxanber II