Warning! Your devicePixelRatio
is not 1 (or your browser doesn't CSS media queries, in which case you can probably ignore this warning)!
Since HTML is as braindead as it can get, creating sites outside of diversity hires corporate art sphere is damn near impossible, so this site is not really optimized for HiDPI screens.
Some images might appear blurry.
Tasogare no Kyoukai / 黄昏の境界
Created: 1656979200 (2022-07-05T00:00:00Z), Updated: 1663004000 (2022-09-12T17:33:20Z), 4086 words, ~17 minutes
Originally published on vndb
You're playing as 有賀 彰 (Ariga Akira, changeable), who having born to treasure hunter parents, finds school boring, and decides to suspend his studies and look for a more interesting activity. Two things:
- There's like three instances in the whole game where it uses furigana. None of it is for names. No voice acting either. But at least it looks like even native players have problem with names. So take every romanization with a grain of salt in this review (and probably in the character list on vndb too).
- The game is not super clear about it, but you can only change the protagonist's given name. So don't do what I did and enter 名無し (Nanashi) from reflex (btw the engine can't handle ASCII characters in player name, only moonrunes and maybe fullwidth chars...), because that way I ended up with the majestic name of 有賀 名無し (Ariga Nanashi). Ehm, whatever.
With that out of the way, let's start the game. You meet with イザナミ
(Izanami), who first describes what the treasure hunter guild does, then a few
lines after she just goes on how you're already a pro in this field. Yes, as
you know, but do it a bit better, damnit. After the short introduction, you
head to 神谷村 (Kamiya-mura) located in T県 (T prefecture), where a ruin called
鬼ノ天戸遺跡 (I'm not even attempting to romanize this) awaits you. 90% of the
story takes place in this village, which I guess should be present-time
fictional Japanese countryside, but take note this game is from 97, so
present-time=1997... Or that's what I'd like to say, but since no technological
innovations are ever mentioned, it could even take place even in the not so far
past, since they definitely have CRT TVs. It's probably not important, and only
bugs my autistic brain.
The cover story is that there are some ruins there, and caves underneath. A few
months ago they sent an investigation group there, but only a single person
returned, with a 200-carat diamond. Okay, I guess, this is what the treasure
hunters are after. Yet, the game quickly starts infodumping you about some
demon's spirit, which is also in this cave system, and you also hear about some
bizarre, unsolved murder cases from a few years before. And just as you arrive
in the village, you meet the ryoukan owner's daughter, and her friends, and they
will instantly have a crush on you even if it's not obvious at first. So, as you
can expect, you end up with a VN that tries to do everything, poorly, in a
genre roulette. Compared to its (huge) scope it's also too short, so expect
many unexplained details, cut short scenes, and twists that doesn't make sense
even after finishing the game. Like, the title, which could be translated as
"Boundary of Twilight" or "Boundary of Melancholy", neither makes much sense.
Yes, there are a few sad scenes, but that's true for pretty much any non
completely comedy work. Twilight is mentioned even less (the moon plays a
somewhat important role though).
Gameplay#
The game is (mostly) divided into days, where you get a world map (or more like
village map), and you choose where to go, and each place has a few unique events
each day, after it will just repeat the last event. Pretty standard stuff. What
you see above is the map ingame, but I've upscaled it and overlaid the place
names with normal fonts, so it's more readable than the original low pixel-count
one. Talk about too much autism...
Also, while there's one brief branch in the story (that takes about a day),
otherwise you only have a single route, so what places you go to and what you
skip (and the selections you make) only influence what ending and extra content
you get, but not the main story. Oh, and there are many choices in this game, so
you can expect a lot of Meaningless Choices, but there are also a few ones
where the effect is only visible much later in the story. There are a few scenes
I have no freaking idea how you're supposed to find without using a
guide, and 100%ing the game with normal means is futile.
Apart from normal VN elements, you have a dungeon crawler minigame, complete with state-of-the-80's pseudo 3D map display. Unlike standard dungeon crawlers, you don't have traps or fight monsters, you only have some ghosts/demons/whatever random supernatural being from Japanese folklore that blocks your way. You have an eye shaped stone pickup, with that you can get rid of some ghosts. You can treat the other ghosts as walls. You can also pick up treasures, but all they do is unlocking some side event, and there are some hidden passages. The bad thing is that you don't have a built-in map, so you'll have to either use some guide or do the mapping for yourself. I did the latter, it's fun for some time, and fortunately you don't have so many dungeons in this game for it to tire you out.
The annoying thing is that you have a minimap, but as you spend time in the dungeon, your lamp goes out of fuel, and with that your minimap becomes smaller, until it disappears completely, at which point you can only use the 3D view. (And if you don't get out of the dungeon ASAP, your fuel will go to 0 and you die because in complete darkness monsters spawn that eat your guts.) Also, I don't know if this is a bug or feature, but if you try to load a game while talking to a monster, you'll get a game over instead of loading your savegame.
Below is a sample of how this whole thing looks like in action, along with some VN segments (this is when you know what are you doing, expect a lot of trial and error (mostly the latter) during your first time). There are some light spoilers after 3:40, though.
Story#
As I mentioned already, this game is trying to do many things, randomly
mentioning things and leaving a lot of details unexplained. A whole survey group
disappears save for one person, and they don't even try to question him what
happened? They allow him to continue his investigation while he doesn't allow
anyone else except his buddies near? There's a serial killer running around, and
they let one single standard policeman handle all the investigation while he
also has to patrol the area and function as a tourist information bureau? And
don't get me started on when the policeman goes away and leaves some case files
on his desk in an unlocked room. So in short, you have a likable and kind
policeman, who's ultimately completely useless, and probably has an IQ of around
80, i.e. no match for the criminal out there.
Back to the player, as a treasure hunter you're supposed to get some relic and
get the fuck out, right? Well, no, you'll stare at rocks, study documents about
an old legend about how to resurrect some extremely powerful demon, help a
cute miko reclaim some manuscripts that were stolen from her, trying to
figure out what the ryoukan owner's is up to when she doesn't return home on
time and I don't know what else. Also, the game description said this is a
horror game, and you have to investigate a sequence of murders. Where's all
this? In the second part of the game (I mean the murder part, the horror part is
very tame, if it exists at all). You just have an overly long exposition.
Truth to be told, the game managed to catch me off guard when the first dead
body finally appeared. Yes, this is a good point, but at what price? And of
course after the first death, people start dropping like flies, and finally we
can unroll the mystery. The treasure hunting part takes a backseat, and also
this is the place when H scenes start appearing, because, uh, priorities?
But enough bashing, the underlying story about the ancient curses and needing to
sacrifice certain people to revive the oni and gain his power, was somewhat
interesting and I think it can be enjoyable if you're into this kind of stuff.
For me, who has zero interest in these kinds of pseudo religious stories, not
exactly, and without that, the pure murder mystery parts are pretty thin. (Or
not that pseudo, I'm not an expert of Japanese mythology. But it also had a bit
of Christianity thrown into the mix for good measure.)
I think that's all what I can write about the story without going into spoilers.
I've removed the screenshot from vndb that spoiled a big chunk of endgame for
me. There's a cheap trick at the end if you get one of the three main heroines
good end. You have 3 good ends, 1 debatable, and 2 bad ends I think, but
they're just an extra CG and a bunch of extra lines. Plus two different music,
but I liked the bad end's music better than the good end's, I'm beyond salvation
I guess.
H#
Yes, the H scenes. First, this game is not a Nukige, in fact it's possible to finish it without seeing a single H scene (you won't get a good ending though, so I couldn't tag this game with Only Avoidable Sexual Content). You have to go out your way to find most H scenes, and there are a few "read the walkthrough" level hidden ones (like when you have to actively go against what the game tells you to do then next day visit a certain location 11 times and read the same generic description 10 times, then go to a second place... or the whole school/library arc). The scenes can be separated into two groups, sex with the 3-4 main girls (雛姫/Hinaki, まこと/Makoto, 美夕/Miyu, and to some extent メラニー/Melanie) and everyone else.
Let's start with the everyone else batch. They're... bad, there's no helping it. Except the library ones, they're coming out of the blue, no buildup or anything. They also have the most mundane reasons you can expect, like it were some kind of nukige where the producer told the writer that he can't write more than five lines of story. You have the classic going into a room with a girl you barely know, and she'll just drop her clothes, then the creepier case: you hear noises from a bathroom, so you go inside:
"Go out"
"No. Just think I'm your dead husband"
"..."
Or my favorite, "I need to give back the documents you just gave me a few days ago, but to be able to do that, you have to fuck me". Seriously?
Also the length. First, I'm not a fan of overly long H scenes, I'm very far from it, especially when all they contain is earraping moans, or it goes into "practice reading the あ letter" course, but this is the other extreme. It's like reading an abridged version, they do the deed and it's gone, enjoy the 2-3 CGs and the 5 lines of text for each CG. But at least they're legit different CGs, not just minor variations. Plus, you have too many scenes where you're an onlooker watching others. Fortunately no NTR, since you barely have to do anything with these girls.
Then you have the main characters, and they're the polar opposite. You have proper buildup, the length is just right—not overlong, not hasty, you also have a few choices during the act. My biggest problem here is that you only have one scene per girl. And if they could do these scenes right, why didn't they do the other H scenes right?
日本語 / Nihongo#
(Let's try to write a section like this, although I can't promise I'll make a
habit out of this.)
Actually, it was simpler than what I expected, especially given that it should
have "mystery" elements and religious shit. Yes, I had to look up a few words
(mostly from the religious and mythical areas), but it's like 10 words or so
repeated all over. And it throws a good chunk of it at you early in the game, so
if you survive the first 30 minutes, you should be okay. It has occasional
archaic speech, and some dialectal speech, but that's all, everything else is
pretty standard. So while it probably shouldn't be the first thing you try to
read in Japanese, I'd say it's still one of the easier works you can try.
Technicalities#
Aka the part I'm going to explode with raging. Feel free to skip this part if
you're not interested in my ramblings.
Actually this is the first time I'm playing a VN so old (97 was 25 years ago),
and while I expected that some things will be different, the end result were...
worse than what I expected. First, forget quality of life features, like
backlog, read text marking (and thus read text skipping) and save anywhere. The
latter two is especially unfortunate, since this game has lots of options, and
if you want to 100% them, you'll have to re-do and re-read a lot of content,
since you have to go back to the last checkpoint every time. Ctrl key is your
friend, and memorizing a good chunk of the dungeon layout. It doesn't help that
sometimes a line or two changes in the middle of a wall of text, you can easily
miss them. And by the way, you don't even have load anywhere function, you can
only load at choices or in the dungeon: press the right mouse button, it's not
mentioned anywhere in the game. Until I figured that out, I closed and restarted
the game every time I wanted to load a game...
Now, for the ugly part. I tried to run this game on Linux in wine. It actually
starts without problem, you just have to cd to where you mounted the CD first,
because the game searches for the data files in your working directory (Windows
users never use the command line). Even the CD audio works (use cdemu if you
lack a physical CD drive, iso files are not enough). But. There is a but. The
intro is too fast (see video above), and the text is unreadable. The first one
was also mentioned by someone else, that part is probably depending
on the CPU speed, fortunately doesn't affect rest of the game. But what about
the font? I tried every font winetricks had, fakejapanese_ipamona
gave the
best results, but it was still pretty bad. Okay, let's install a Japanese
Windows 98 in dosbox and let's see what it gives... still not my dream, but much
better. Actually, the dos prompts had more readable fonts, but I'm getting ahead
of myself. So I copied MSGOTHIC.TTC
and MSMINCHO.TTC
from win98 to wine...
and still horrible. Here are the screenshots for a comparison, from left to
right: running under win98, wine default font, wine with winetricks
fakejapanese
, wine with winetricks fakejapanese_ipamona
, wine with
winetricks fakejapanese_vlgothic
, and finally wine with win98 fonts:
First I thought wine (or freetype) doesn't understand the bitmap fonts, and it
instead rasterizes the outline fonts with horrible quality, but after a lot of
debugging I found out the problem: this game request a font with weight 700. 700
means bold. This font doesn't have a bold variant. It looks like win98 in this
case just ignores the font weight and gives you a normal font. Not wine. Wine
tries to be a smartass and "fakes" a bold font. Yeah, totally gonna work at
pixel sizes like these. Also, whoever wrote the game engine really wanted a
bold font, so the game actually draws each character three times, with one pixel
offsets. And you end up with double bolding, and text that's fucking unreadable.
First I patched wine to not do this fake bolding, but later it became apparent
that I have to patch the game.
I didn't like the extra bolding this game tries to do. You have 640x400 pixels
and no antialiasing, be grateful that you can display your fucking 24 stroke
abominations, and you don't have to resort to katakana only script FFS, don't
challenge the impossible. Also, the vertical alignment is completely broken (wat
is baseline lol), but you won't notice it because MS Gothic has equally broken
metrics (well, at least under wine, because on windows it's also broken....),
and add two broken things together, and you'll end up with something correct,
right? (Wrong, otherwise Windows 10 would be the best OS ever made). I guess at
this point I was beyond saving, and I already stared too much at the game in
ghidra, so I just patched the exe and went forward.
Start the game, and wine will create a 642x402 pixel window. No, not 640x400, but 642x402. Why do I care about those two pixels? I have 1920x1200 monitors, and 1920/3=640 and 1200/3=400, which means it would be a perfect 3x integer scale, if the window would be 640x400 and not fucking 642x402. The game somewhy requires an extra edge, which means the window will have thicker edges than normal windows, and this causes wine to add an extra one pixel border around the window, even when I tell it to not draw any borders. But fortunately this is also buggy on Windows, just look at the screenshots, the extra border you see (slightly inconsistently cropped) are there because Windows is a buggy piece of shit, and instead of giving you a 640x400 window, it gives you a 638x398 window with weird geometry (0,0 will be outside the window, 1,1 will be the top left corner). This way, the game is internally running it 640x400, but it's displaying at 638x398. Maybe I should go and "fix" the release to specify 638x398 as a resolution, because you can't get 640x400 resolution without patching the game, or Windows. And I thought it can't get worse.
Anyway, after fixing these two bugs (I didn't care too much about the intro, the
linked blog entry has a transcription of it, and fixing an engine that depends
on CPU speed to not depend on CPU speed is not a simple task), I could finally
start playing the game, using Textractor to get a permanent backlog (use hook
code HS932#-8@401947
to get only VN text and not every character displayed
anywhere on the screen). I've checked every nook and corner every day to not
miss anything... and of course I got a bad ending. Let's retry, now I'm being a
prick who doesn't give a shit about anything, get the same bad ending. Grr. I
could have tried playing trial-and-error for a long time, but that looked
hopeless; I could check out some walkthrough, but nah, that's too easy (and
players of that time didn't really have internet to look things up, and I wanted
to be somewhat realistic. Not that using Ghidra, initially released 2019 is
realistic. There was IDA, if you were a rich boy). Instead, I went and reverse
engineered the VM format this game uses. Then I wrote a tool to dump that
compiled binaries to some more human-readable format. Then I could start
figuring out what variables mean what and what to do to reach parts I haven't
read previously. But I've soon realized that there are many unreachable
scenes/lines, so I changed my goal to either watch every line, or prove that
said line is unreachable. And with that I get all endings. Turns out I selected
the wrong choice every time. Maybe I didn't realize that this isn't euphoria
where you have to rape the same girl 5 times to win their heart. Oops. Anyway, I
also got the other H scenes, and everything else. Probably a complete waste of
time. But at least I can say that I really 100%d this game. It's possible that
no-one else did this before.
I lost count of how many bugs I found during this whole ordeal. There are scenes that are unreachable, not because they're cut contents, but because of bugs in the script or VN. Whatever tool they used to compile their scripts were also buggy and sometimes generated invalid bytecode, but no problem, since the VM ignores invalid bytecode, it just werks™. Seriously what. In the dungeon, your lamp actually has half the fuel the developers intended (the fuel is initialized to -2 + 126 + 126 = 250, but it doesn't make sense, it's more likely they wanted to treat the first -2 as unsigned and initialize to 254 + 126 + 126 = 506, which makes much more sense, since you have events when your fuel level reaches 400 and 300. They're now basically dead code). I also realized why do I have save games made at 30:12:38 and other martian times:
write_time_tm = _gmtime((time_t *)&file_stats.last_write_time_0xc);
_sprintf(saveinfo_str,"%2d %04d/%02d/%02d %02d:%02d:%02d",save_i,
write_time_tm->tm_year + 1900,write_time_tm->tm_mon + 1,write_time_tm->tm_mday,
write_time_tm->tm_hour + 9,write_time_tm->tm_min,write_time_tm->tm_sec);
(Here's a ghidra screenshot (JXL, PNG), if you don't believe it.)
Yes,
someone hasn't heard of the localtime
function, so they just
tried to add 9 hours (Japan's timezone difference to UTC). You could add
9*60*60 to the gmtime argument instead of this abomination, and that would only
make a morally broken code, but at least it would have worked correctly inside
Japan. Yes, you don't have to realize that there's something at the other side
of the great puddle around you, it's broken even in Japan between midnight and 9
o'clock, even if we suppose they will never change time zone. I guess they never
tried to save in said time range, because good boys and girls are sleeping at
that time...
If you 100% the game and go to the gallery, it will tell you have 19 unviewed
CGs. Wat? Let's check the code... there are 72 CGs in the CG viewer, and upon
returning it reports 88 - number_of_viewed_cgs as unviewed. But hey, that would
mean 16 unviewed CGs, not? Let's see what else we have. The first CG you see
(ryoukan room) is actually never unlocked, it's just that the CG viewer is also
buggy and will show it to you even if you don't have it unlocked => 17. The loop
that calculates how many CGs you unlocked has an off-by-one error, and it won't
count the last CG => 18. And the engine doesn't automatically register viewed
CGs, it has to be done manually by the script, and guess what? They forgot to do
it once, hence the 19 unviewed CGs. The game actually has a congratulations
message if you get all CGs, but you can't get them even if you edit your fucking
save-file. Was this thing ever play tested?
The engine also leaks GDI resources. I've seen one function in Ghidra, but there are likely more, attempting to fix all of them is probably futile. In wine, you end up with:
0380:err:gdi:alloc_gdi_handle out of GDI object handles, expect a crash
well, I don't get a crash, the game just locks up and I have to kill it. Now, I could play the game "normally" for hours and this problem didn't manifest, but later when I tried to get all lines and I replayed the same stages again and again Ctrl-ing over everything, I could get to this in 10-15 minutes. Ouch.
And the worst offender comes last. I finally get 雛姫's (Hinaki's) good ending... and the game locks up. Another random lockup? I retry it, the same result. Wat? Check the code... there's a typo, and it tries to load a non-existing file. HOW THE FUCK DO YOU FUCK UP THE GOOD ENDING OF THE MOST MAIN CHARACTER IN THE FUCKING GAME? DID YOU RETARDS EVEN PLAYTEST THIS PIECE OF SHIT BEFORE RELEASING? OR IT WAS JUST LIKE IF IT COMPILES, SHIP IT!?
Summary#
Actually, I don't know what should I write here. This VN is certainly not a master price, but it wasn't bad enough for me to drop either... but I guess reverse engineering the engine and the game were more interesting than actually playing it. I should have measured the reverse engineering time too, not just the gameplay time, because I'm sure it would have been higher. I guess I shouldn't touch any other VN for a year now, for my own sake.
My patches to the game engine are available here or here.