dev, computing, games

📅July 29th, 2018

"Ghost characters" introduced in JIS encoding can be found in Unicode today

https://www.dampfkraft.com/ghost-characters.html

July 29th, 2018 at 5:08 pm | Comments & Trackbacks (0) | Permalink

📅July 12th, 2018

Animal Crossing (for Gamecube) contains a functional, hidden Famicom emulator

July 12th, 2018 at 7:58 pm | Comments & Trackbacks (0) | Permalink

📅July 9th, 2018

Sun Ce's sounds like a sophisticated machine-learning algorithm

Dong Bai's officer offers reassurance in the English dub

Li Jue helps determine a strategy

Sun Ce comes through with an observation

Side thing: What a nice vantage point!
Maple didn't think so

Normal, natural conversation

July 9th, 2018 at 11:08 pm | Comments & Trackbacks (0) | Permalink

📅June 27th, 2018

Finished Birds of Steel (PS3)

Genre: WWII Pacific Aerial combat simulator.

I picked up this game after watching Dunkirk looking to get more immersion in that same context with the historical planes, and sense of action and urgency. Although I hate flying in real life I love flight simulators. This game feels a lot more realistic in its controlling of the planes than the other ones I've played. It turns out, the dogfighting strategies which work in Star Fox are not realistic.

Having positive memories of the predecessor of this game, IL-2 Sturmovik: Birds of Prey, I picked this one up and it holds up pretty well despite being last-gen. The graphics for the water and details on the planes themselves are good.

Each part in the campaign has an explanation of the context of the battle, narrated by Stephen Fry. Good for them, they got someone high-profile to narrate. Unfortunately, the scene descriptions are written horribly. Everything is so tedious and roundabout. Who writes a paragraph and starts 2 or 3 sentences in a row with "However"?

And there is one really persistent visual gripe I have with this and at least 1 other modern flight sim (Eagle's Flight). The dark edges. A vignette filter. You see it, right? This is as cheap a trick as jacking up the contrast. Why would anyone invest in a large TV, when the outer edges of it are useless?

I had positive impressions of how many planes were included, different types of environments, and sound. They capture sound clips of both Allied and Japanese pilots. For voice, I was suspecting they would get non-Japanese actors to impersonate Japanese people for the voice-over. But, nope. Japanese voice actors play Japanese pilots.

It's surprisingly hard to find good flight simulators for console. Most high-budget, non-indie flight simulators made now are not marketed in the mainstream, but to a very specific audience- a very hardcore audience who typically have a pilot's license IRL and some extremely fancy actual cockpit-like setup. Microsoft Flight Simulator still has a lot of loyal fans in this category.

Controls were a good compromise between video game-y and airplane-y. Knowing their target demographic, Birds of Steel has a control mode for simulator fans. I am glad it also has an arcade-style control mode. I am a video game player without a pilot's license. The arcade style mode still felt airplane-y because you can't just move the analog stick in the direction you want to go. You adjust the roll and rudder separately. It was fun and easy enough to get the hang of.

Since the game came out 6 years ago the online scene is no longer a thing but it was worthwhile going through the campaign of it. The main highlights were Pearl Harbor and Guadalcanal.

June 27th, 2018 at 11:25 pm | Comments & Trackbacks (0) | Permalink

📅May 14th, 2018

Project-- Porting a Tetris game I wrote a long time ago in X86 to run on modern 64-bit Windows

The game was written in about 1000 lines of X86, and assembled with the A86 assembler tools. This was 12 years ago, in 2006.

It is extremely low tech and not super complicated or flashy, it was meant to be a personal effort back then to learn about it and becoming more comfortable debugging it. It was built as a 16-bit DOS COM executable. Although it ran on Windows at the time, the binary format was not very current even back then. Sadly time passed, the binary rotted and it does not run anymore.

There are three reasons why it does not run anymore
1. It's a .COM executable. Running these requires an MS-DOS emulation subsystem of Windows which is not present on 64 bit Windows
2. It's a 16-bit executable, which does not have support on 64 bit Windows
3. It uses DOS interrupts in order to work. These interrupts are not supported in modern OS. Modern Windows behavior is that they just crash the app

In addition to the broken binary, I had the source code still. So I decided to resurrect it by porting it so that it can be run natively now on a modern 64 bit Windows OS (where 'natively' here means 'not with an emulator'). Yeah you can run it in DOSBox, but meh

Although the program was originally assembled with A86, I ported it to use MASM (a Microsoft product). I want to say using MASM is not necessary for fixing the above problems. It would actually be possible to fix the above problems while still using A86. As it turns out, building Win32 programs with A86 is easier than ever because the author has (since 2006) created a new set of convenience tools for that, just barely too late for me to have taken advantage of. Looks promising.

The thing is, if I'm going to set out to make it work on Win32 anyway, it is almost certainly going to be easier with MASM. It has easy-to-set-up integration with Visual Studio, it's basically automatic setting up my project to link against the right libraries, and there are built-in conveniences which make the Win32 APIs (or anything) syntactically nicer to call for the purposes of doing this. MASM has different syntax than A86 but switching over to its syntax wasn't such a bad price to pay. Mnemonics themselves and the syntax for the addressing modes are basically the same. I thought I'd have to change over some things on this front, but as it turned out I didn't. In general I don't think the compatibility of mnemonics is standardized or guaranteed, but I didn't run into problems in this area.

The annoyance-- which would been there for MASM or A86 regardless-- was graphics, because this part had to be changed the most. I decided to go with GDI which is not going to be anything like mode 13h (If you haven't had to ever program with mode 13h it basically gives you a pointer to the aperture and writing to it draws indexed-color pixels on the screen) For GDI on Win32 the program needs to be structured a lot differently. It needs to create a window and window resources, the code for drawing the grid needed to be moved to a paint message handler, needs to update with a timer, it should be scaled up too since a 320x200 resolution 1:1 is not a great time on a modern display, etc.

Coming at this I had wanted to be able to treat the game as a black box. Change a few things to get it working in Windows and that's it. But in the end, I needed to understand nearly all parts of it to do what I wanted to do. There were all these long stretches of code organized horribly where I'd long forgotten how they work. Doing this was a gigantic hassle

Anyway I got it working. It is still extremely low tech but that's kind of the point, and to just get it working. I got to add a couple new things too:
- Different colors for the different pieces
- Fixed a bug where rows would sometimes not get cleared correctly
- Added a 'next piece' UI
- When you get game over instead of crashing it displays a message and you can press Escape to start again

I wonder... when it will rot again?? (As a GDI Win32 app) maybe it's good for a while

The code for the Win32 version is all in one file located here.

May 14th, 2018 at 10:43 pm | Comments & Trackbacks (0) | Permalink

📅February 27th, 2018

"We do not play out the catastrophe"

https://medium.com/@balehman/the-tragedy-of-gj237b-928cfeae460b

Some commentary:

https://www.metafilter.com/172626/We-do-not-play-out-the-catastrophe

February 27th, 2018 at 4:13 pm | Comments & Trackbacks (0) | Permalink

📅February 26th, 2018

If something seems too good to be true, it probably is.

Don't use tool-assisted gameplay as a sole reference for good non-tool-assisted strategies.

Look online to find a good assortment of Super Ghouls N Ghosts videos and gameplay footage. Great! Find one. Looks good. All levels. They take no damage. A very skilled player, for sure. As I looked more closely, something was off.

1) The player had a very inconsistent level of skill.

They could always handle dense 'bullet hell' situations, but took many tries to jump onto a ledge. Ledge is simple and flat and not hazardous.

2) The player was unfazed with many serious 'close calls'.

Close calls' are a part of this genre of game, as well as some understanding of hitboxes, but these are extreme cases. In most circumstances, a typical human player* will react to 'close calls' by slowing down, leaving more space and using more caution.

3) The player performs normally-very-dangerous maneuvers, with some knowledge from the future that those maneuvers are safe.

For example, jumping straight into collision with a boss while attacking it. Normally that would be lethal. But if you know that your attack will be the finishing blow to kill the boss, and death disables its hitboxes, then it's fine.
Since this game has no health bars, a human player cannot exploit the last-hit-to-kill-the-boss without keeping a mental count of hits. A boss fight is a stressful situation. It's hard for a human to keep a mental count during it. And think of cost versus benefit. If the player is skilled enough to last the whole fight landing attacks safely, what's one more? Is the opportunity of that suicide jump worth the mental tax that it takes? Not really.

After digging through Youtube comments a little, I found out that the run was indeed tool assisted. I've been burned by this before. They don't put 'tool assisted' in the title or description or anywhere obvious before posting it, so you don't know. Don't be tricked! I would play better too, if I could rewind and replay parts...

February 26th, 2018 at 1:29 pm | Comments & Trackbacks (0) | Permalink

📅February 23rd, 2018

Finished Wonder Project J (SNES)

What it is- Pinocchio: the anime game

The scientist Geppetto has constructed a robot named Pino, part of a special family of robots called Gijin. In a tragic and sudden surprise, Geppetto was captured by the evil rulers of the kingdom before he was able to finish Pino's programming. You play as Tinker, a magical fairy who guides Pino toward being able to rescue the kingdom and his creator Geppetto.

You don't control Pino directly, but Tinker. Tinker can direct Pino left or right, or tell him to stop; signal to him "right!" or "wrong!" She can tell him to interact with an object, she can pick up and move objects.

Interactions with Tinker comprise the building blocks with which Pino learns language, combat, good manners, sports, musical instruments. And how not to eat the cat. (In my 1st playthrough he hoisted the cat up into the air and into his mouth and it disappeared. I think it's a glitch, but he gained a bunch of health from it, so... I dunno...)

Another game never released in the west. It turns out there is not much of a market for these sorts of simulators. It was tantalizing reading about this in Nintendo Power magazine but there was no typical way to play it.

Playing it in the late 90s / early 2000s was difficult because it was only available in Japanese and there didn't yet exist any English-language guides. Fortunately the gameplay is very all-ages friendly and visually explanatory, so it worked well as a learning tool for some words and vocabulary at that time.

Graphically it was all about really layered, complicated backgrounds and big smoothly-animated characters. Oh, and voice acting. In an SNES game. When Pino learns something, he actually says "Wakatte wa!" (Got it! / I understand it). There's a poignant moment where he says "Arigatou... minna". There were maybe 5 or 6 voice clips like that. Voice acting in SNES games exists but it's very rare. I really want to know what percent of the cartridge was dedicated to storing wave file sound.

Today there is a 100% complete fan translation. A really good one at that. I'm glad to be playing it now!

February 23rd, 2018 at 12:07 am | Comments & Trackbacks (0) | Permalink

📅February 21st, 2018

Time to set up your Nintendo Switch!

>perform hookup to TV.

>"Please log in with your Nintendo Account"

>okay

>"No account found"

> It turns out what I have is a Nintendo Network ID, not a Nintendo Account.

>They are different things.

>Use "External Sign-in" option to sign in with the Nintendo Network ID, presumably so that it can be linked to a Nintendo Account.

>"You can't log in with your Nintendo Network ID on this device.
By default, that type of ID is intended to be used on the Wii U console and Nintendo 3DS family.
To enable it to be used on other devices, go to your settings and select this option"

>okay

> Wii U is not hooked up, also I don't think I had used that sign-in with the Wii U
But I did for the 3DS

> Find the 3DS

> Battery dead

> Find AC adapter
Plug in

> Open "Settings" -> "Nintendo Network ID"

> "You must perform a System Update in order to access the settings"

> Go to the option for System Update

> System update can't be performed until the battery has more charge
Even if it's plugged into AC power

Currently waiting for it to charge.

Really digging this Nintendo exclusive. It's not the easiest game I've picked up over the last couple years, but the puzzles rival Layton and the graphics include so many different styles of progress bars all of them delightful! The music, I'd describe as very 'chill'.

February 21st, 2018 at 10:44 pm | Comments & Trackbacks (0) | Permalink

📅February 14th, 2018

Finished Super Ghouls 'N Ghosts (SNES)

This one, I streamed it live on Twitch. Thanks to those who joined in! The playthrough consisted of going through all levels of the game, beating the last boss, then doing all levels AGAIN and beating the new final boss to get the "real" ending. Completion time: about 2 hours 16 minutes.

This game was released by Capcom in '91, making it very early-gen. It is notorious for being a finicky oldschool 2D platformer. It is all about double-jumping and its unique flavor of double-jumping is hard to get used to. It is easy to take damage and taking two damages kills you.

Something I like about this game is how it's easy to just dive in and play without much time commitment. No long, annoying cutscenes, no tutorial, you just sort of blast right through. I practiced this game a bit while listening to an audio-book and it was a nice way to keep myself occupied. As some telegraphing is sound-based it's not super mute friendly but you can do it.

It has some things going for it: the art direction is good for the time at which it came out, and the early and midgame levels are creatively designed.

The game is severely held back by the amount of content recycling. Enemies, bosses, level progression. The hardest-to-forgive is how it forces you to effectively play through the same content twice to get to the ending.

I don't recommend this game. If you want a sense of what its art direction has to offer, play a different but related game Demon's Crest.

February 14th, 2018 at 1:11 am | Comments & Trackbacks (0) | Permalink