Skip to content
A NEC PC-9801 emulator with extended debugging features
C C++ Assembly Java Objective-C Makefile
Pull request Compare This branch is 1616 commits ahead, 28 commits behind nonakap:master.
Latest commit bc7c645 Nov 12, 2015 @nmlgc [Readme] Remove these terrible contribution ideas
No one's going to waste time doing this meaningless crap anyway. SDL+ImGui is
the way to go… I hope.
Failed to load latest commit information.
accessories add accessories Mar 25, 2004
android-project new opna manager Nov 11, 2015
bios omit include path (fdd) Nov 10, 2015
cbus new opna manager Nov 11, 2015
codecnv adds C-cast Nov 6, 2015
common new opna manager Nov 11, 2015
embed omit include path (fdd) Nov 10, 2015
fdd Sound: abstract pcmmix Nov 10, 2015
font
generic Fix any issues that break compilation of the X11 version Nov 12, 2015
i286c
i286x omit include path (bios, lio) Nov 10, 2015
i386c Fix any issues that break compilation of the X11 version Nov 12, 2015
io omit include path (fdd) Nov 10, 2015
lio omit include path (bios, lio) Nov 10, 2015
mem omit include path (font) Nov 10, 2015
np2tool
romimage Shift-JIS → UTF-8 Jan 12, 2013
sdl2
sound
trap omit include path (trap) Nov 10, 2015
vram resolved scrnsave Nov 10, 2015
win9x [Win9x] Give clearer names to the memory and disassembly debug modes Nov 12, 2015
x11 Fix any issues that break compilation of the X11 version Nov 12, 2015
zlib support arc for vermouth Dec 10, 2006
.gitattributes .gitignore and .gitattributes Jan 12, 2013
.gitignore <everything else I've done up to now> Jan 17, 2013
README.md [Readme] Remove these terrible contribution ideas Nov 12, 2015
break.c Fix any issues that break compilation of the X11 version Nov 12, 2015
break.h
calendar.c Shift-JIS → UTF-8 Jan 12, 2013
calendar.h change default on PPC (T.Yui) Jul 26, 2004
common.h removes unused defines Nov 9, 2015
debugsub.c omits SL-Zaurus(SDL) projects Nov 9, 2015
debugsub.h
debugsub386.c omits SL-Zaurus(SDL) projects Nov 9, 2015
keystat.c renames for MacOSX Nov 6, 2015
keystat.h Shift-JIS → UTF-8 Jan 12, 2013
keystat.tbl renames for MacOSX Nov 6, 2015
nevent.c refactor include: nevent Nov 10, 2015
nevent.h
np2ver.h omits PowerPC MacOS projects Nov 9, 2015
pccore.c Fix any issues that break compilation of the X11 version Nov 12, 2015
pccore.h refactor include: statsave Nov 10, 2015
readme.txt omit CGWND_FONTPTR Nov 9, 2015
statsave.c new opna manager Nov 11, 2015
statsave.h refactor include: statsave Nov 10, 2015
statsave.tbl
timing.c omit include path (fdd) Nov 10, 2015
timing.h fix fdd motor (T.Yui) Feb 18, 2004
update.txt note recent changes. Nov 9, 2015

README.md

Neko Project II - Debug Edition

(Windows binaries are here)

About

This is a fork of the PC-98 emulator Neko Project II with extended debugging features. The aim is to achieve a level of debugging comfort high enough to thoroughly modify PC-98 binaries and add new features to them.

The Win9x version of the upstream Neko Project II already comes with assembly, memory and register viewers for emulated code, which, however, have to be manually enabled by putting I286SAVE=true into its .ini file. In addition to enabling these features by default, this fork also includes:

  • single-step execution
  • code breakpoints
  • Shift-JIS memory display
  • memory searching
  • memory modification
  • memory breakpoints
  • stack viewer
  • real-directory-to-DOS-drive mounting (experimental)

What's still missing:

  • assembly modification by actually writing assembly mnemonics

Since all these features were build on top of the previously existing Win9x code, they are currently exclusive to the Win9x version.

This is, and probably ever will be, only tested against the Touhou Project games 01-05. While it is fully compatible with them, both the debugging functions and the rather outdated code base make it noticeably laggier (on average about 10 fps slower) than the recommended fmgen build. Thus, this edition is not what you're looking for if you want to actually play the games.

Building

Windows

Visual C++ 2010 is required for building. I don't really see a reason in maintaining project configurations for previous versions. Once you've understood property sheets, you really don't want to go back.

You'll also need:

  • the DirectX SDK. Apparently, this is included in the Windows SDK now. Starting with the June 2010 release, the required ddraw.lib is no longer included. You can get it from here. Since we're only using legacy functionality though, any old version of the SDK will do.

  • YASM to build the assembly code. Get the VS2010 archive and install it globally into Visual Studio's BuildCustomizations directory.

Linux

(via http://eru-cool.blogspot.com/2012/02/emulador-pc-98-nativo-para-linux-para.html)

You need the development libraries of GTK2, SDL and SDL_mixer, as well as nasm to build the assembly code. On Ubuntu, the required packages are:

build-essential nasm libsdl1.2-dev libsdl-mixer1.2-dev libgtk2.0-dev libxxf86vm-dev

Also, the Touhou games require the build to be configured with IA-32 support. From the root directory, the build commands are:

cd x11
./autogen.sh --enable-ia32
make

Debugging

The debugging window can be accessed under Tools → Debug utility.

Unassemble
  • Current instruction is always at the top of the window

Directory mounting

This very hackish and experimental feature overrides the DOS system functions called via INT 21, providing direct access to "real" files in a directory on your local file system from the emulator, without having to copy them on an image every time.

Doing something like this effectively requires a complete DOS emulation. Thus, the following things are confirmed to be impossible with this method:

  • Running programs (.EXE or .COM) from the mounted directory. The DOS EXEC syscall (INT 21,4B) would have to call the file opening function via INT 21 too - which is impossible because INT 21 is not reentrant.
  • Directory structures need to be replicated on the image. This is necessary because DOS still keeps its own directory state. When using mkdir or rmdir on the command prompt, directories are created and removed both inside the mounted directory and on the image.

… Really, this is only supposed to work for the few cases we need during the creation of the Touhou PC-98 translation patches. Don't expect it to work for anything else.

Something went wrong with that request. Please try again.