NEVEL-98 Play

VISUAL NOVEL FANTASY COMPUTER

NEVEL-98

Make visual novels the way they looked on a 1990s Japanese computer.

Draw in 16 colors, compose FM music and write the story in Lua, all inside one machine inspired by the NEC PC-9801 adventures. Then share your game as a floppy disk or a web page.

Both run in your browser. New here? Start with the manual.

NEVEL-98

A computer that never existed

NEVEL-98 imagines the machine behind the PC-98 adventures of the late '80s and '90s. Its limits are the style: dithered pixel art, square text windows, FM music.

  • 16 colors on screen, so shading comes from dithering, like the originals.
  • Every image can carry its own palette, so each scene gets its own mood.
  • The machine's Lua has no file or OS access: a cart only talks to the API, and saved games replay exactly.
NEVEL-98 FANTASY COMPUTERVersion 1.0.0
> specs
display   640×400, 60 frames per second
colors    16 on screen, each one of 4096 (0xRGB)
palettes  one per cart, plus one per image
text      8×16 and 6×12 fonts, 80×25 like PC-98
sound     6 channels: 4-op FM, SSG square, noise
music     32 instruments, 64 patterns, 8 songs
images    64 per cart, up to 640×400 each
texts     key tables, up to 8 languages
code      Lua 5.4, up to 512 KB
> 

A visual novel is just Lua

Every call waits as long as it needs to: say waits for the player to read, choice waits for an answer, a transition waits until it ends. You write the story from top to bottom.

NEVEL-98CODEIMAGETEXTSOUNDMUSIC
scene("start", function()
  layout("game")
  bg("station", "dither")
  music(1)
  show("rei_smile", "right", "dither")
  say("Rei", "Ehehe! You missed it too?")
  if choice{ "Who are you?",
             "I didn't miss it. I let it go." } == 1 then
    flag.asked = true
  end
  jump("platform")
end)
ctrl+r run
Rei, smiling on the station platform, says: Ehehe! You missed it too?
The same scene in the demo cart, with its framed layout and LED clock.
  • bg()
  • show()
  • say()
  • choice{}
  • menu{}
  • jump()
  • layout()
  • music()
  • quake()
  • flag
  • the_end()

Five editors behind the function keys

Everything you need lives inside the machine. Press Esc for the console, F1–F5 for the editors, F6 to run your game.

The code editor showing the demo's command menu loop

Code

A Lua editor with syntax highlighting for keywords, API names, strings and numbers.

  • Undo, find, go to line, comment, duplicate
  • Indent a whole selection with Tab
  • A runtime error stops the cart: press F1 to open the line that failed

Built for the PC-98 look

The visual novel engine is part of the machine, so a new cart already has saves, a backlog and a title screen.

  • Framed layouts

    The scene in an ornate frame, side panels for a clock, the date or a command menu, the text in a console below.

  • Adventure commands

    Choices, PC-98 style command menus like Look / Talk / Move, flags and multiple endings.

  • Transitions

    Dither, wipe, blinds, curtain and mosaic dissolves, palette fades, flashes and screen shake.

  • Saves included

    6 save slots, backlog, auto and skip, text speed and volume. Loading replays the scene exactly.

  • Any picture, 16 colors

    Import a PNG or JPG and get ordered (Bayer) or error-diffusion dithering, with a shared or own palette.

  • Game mode too

    Define _draw (and _update) with no scenes, and the cart runs as a plain game loop, like PICO-8.

A 3.5-inch floppy disk labeled Last Train Home
This picture is the whole demo. Download it and drop it on NEVEL-98.

Share it on a floppy disk

A game is a cartridge, and a cartridge travels three ways.

  • .n98

    The whole game as one text file: code, palette, images, music and texts. Easy to read and to keep in git.

  • .n98.png

    A picture of a 3.5" floppy with your game's label. The cart is hidden inside the PNG.Share floppies as files: image hosts that re-encode pictures remove the cart.

  • .html

    One page with the machine and your game inside. Upload it anywhere and it plays.

Last Train Home

December 31st, 1994. You've just missed the last train of the year. On the empty platform you meet Rei, whose radio plays songs from next year.

The demo cart: 3 endings, 3 FM tracks and a red LED clock counting down to midnight. Its source is open in the editors, ready to take apart.