NeoPocott/SDL 0.3 Pre-release HTML Documentation
By Niels Wagenaar [mailto:niels.wagenaar@wolmail.nl]


This is the documentation for the SDL release of NeoPocott/SDL 0.3 Pre-release which is available for Linux (i386 elf glibc2), BeOS R5 and Win32 (Using DirectX with SDL on Win2k, Win9x and WinNT) using the Simple Directmedia Layer made by Sam Lattinga and other developers. NeoPocott is a free software emulator, originally written by Julien "Gollum" Frelat,  which emulates SNK's NeoGeo Pocket (Colour) gameheld device. Because the NeoPocott emulator is completely written in C and there for very portable and thus available for many platforms!

NeoPocott/SDL uses the Simple Directmedia Layer (SDL) which can be found on the original website. From this website you must get the Runtime binaries to use NeoPocott/SDL. SDL is a C/C++ library for many systems like BeOS, Linux, Win32, FreeBSD, Solaris, etc for the use of portable graphical, input (joystick, mouse and keyboard), sound and other hardware related media's. Because of that the emulation engine is written in C and of the portability of the SDL library, some most used platforms will eventually have release. The following platforms are known to work : FreeBSD and SUN's Solaris. Probably work in progress (WIP) releases will come out shortly for these systems. Also a release of NeoPocott/SDL will come out (if possible) for Indrema's Linux console called the Indrema L600. Keep your eyes on the official NeoPocott/SDL website or the official NeoPocott website.

NeoPocott is, as stated before, a software emulator and there for uses dumps (or also named ROM's or ROM dumps) from the games which are available on the NeoGeo Pocket Colour. This dumps are widely available on the Internet but it's illegal to use them if you don't own the cartridge yourself! It's not mine or the fellow NeoPocott developers intention to promote the piracy of ROMS! If you like the game, buy it (if possible).

A lot has changed since the 0.2b release of NeoPocott/SDL. The following is implanted in the 0.3 pre-release:

- Better zip and gzip files handling;
- New experimental graphics-core which is 10% faster than the old one;
- New output options (window sizing, fullscreen and scanline support);
- Last used commandline switches saving. Literally you can now start Neopocott with
  no commandline options or what so ever and it'll run the last used ROM with the used
  options. Almost like a real NGP :);
- *experimental* savestate support (only 1 per game atm);
- DirectX support using SDL on Win32 platforms (only fullscreen);
- *experimental* joystick/joypad support;
- Based upon the latest (version 0.35 beta) emulation-core sourcetree.

Be warned though, savestate has (many) bugs so it will not function always. The savestate is loaded directly on startup of the emulator.

For the Win32 users, be sure you get the latest SDL runtime download from the SDL website as it contains many fixes. Also a sitenote for DirectX, it is only initialized when you're in fullscreen mode. You'll definitely see some speed increase with DirectX. I compiled SDL using DirectX 6.1 but I'm sure it'll work on Windows NT 4 with DirectX 3. A small site note to the people who run the emulator on Linux and/or WinNT/Win2K. Make sure you have significant rights to start the emulator and to have write permissions in the directory where NeoPocott/SDL is in. Also, in the Win32 ZIP file it contains 2 .dll files which are necessary to run NeoPocott/SDL on you Win32 system. You can leave these files in the directory where NeoPocott was put or you can copy/move them to the \WINDOWS\SYSTEM (for Win9x or WinME users) or to the \WINNT\SYSTEM32 directory. 

Joystick/Joypad support is implanted but I don't know if it works. It was implented based upon the SDL docs so I really can't tell if it works or not. 
E-mail
me with your findings about it!
Furthermore, only the 1st joystick/joypad is used for controlling NeoPocott/SDL. 

As I wrote, a lot has been changed. Also the source has been cleaned out of rubbish en some stuff has been optimized. But I know for sure there are bugs in the release, so e-mail me with a list of bugs you've found and make sure you have a good explanation! So the bug : "Game x doesn't run" won't be answered back! Only valid bugreports are valid and will be replied to! 

For the people who have questions about something. Please post them on the forum which is found at the NeoPocott/SDL website! I always reply to valid messages so for a valid question you'll receive valid answers. 

At the moment all keys are predefined. But I'm working on the source for you own definitions (which will appear in the 0.4 release). The following keys are mapped for use:

Function Key
NGP Movement left Left cursor-key or Joy-left
NGP Movement right Right cursor-key or Joy-right
NGP Movement up Up cursor-key or Joy-up
NGP Movement down Down cursor-key or Joy-down
NGP Option Tab key
NGP Button A Z key or Joy-button 1
NGP Button B X key or Joy-button 2
NGP ON/OFF ESC (well, only off to be honoust :)
Pause emulator F1
Continue emulator F2
NGP Black and White mode F3
NGP Colour mode F4
Save current state F5
Save current commandline options F6
Make screenshot F9
Reset emulator F10

If you start neopocott without any commandline options and NO config file is found (neo.cfg) than it'll display the following (or for Win32 users, the output can be find in the stdout.txt file) :

Usage: ./neopocott romfile options
Where options are:

-speed 4 - 7 : Setting speed, 5 is default.
-vsync true, false: Enable (true)/Disable (false) vsync at a speed 
cost/increase.Default is true (on).
-frameskip 1 - 10 : Options to skip some frames. Default is 3.
-size 1 - 4 : Windows sizing with scanline support.
-fullscreen : Enabling fullscreenmode (overrides size!).
-core 1,2 : Which graphicscore to use. 1 = oldcore, 2 = new
(experimental) core. Default is old (1) core.
-joystick : Enable SDL joystick support. (Default not enabled)

The commandlineoptions are self explainary. Feel free to play a bit with the speed options (speed, frameskip, vsync, core, etc) to gain more speed.

The following people and/or companies are the ones that deserve credits:

- Julien "Gollem" Frelat for having me to have the source (cheers m8!)
- Anarko, the MS-DOS/Linux console porter of NeoPocott,  for letting me "loan" some of his source ;)
- Zakk from www.retrofaction.com for giving me space for the website!
- Jeffro for betatesting the BeOS version.
- Joshua for betatesting the Linux version of for keeping me on the project :)
- Akawak for giving me some pointers.
- Tsaotsao for giving me pointers for SDL
- #sdl on irc.openprojects.net for the help on SDL problems with BeOS.
- Linus Torvalds for making the best OS available : LINUX!
- Be for making a really cool OS : BeOS
- SNK for making the most coolest handheld device available : The NeoGeo Pocket (colour)!

That's about it :)

Website Information
http://neopocott.retrofaction.com Home of the NeoPocott/SDL project!
http://neopocott.emmuunlim.com Home of the NeoPocott project!
http://www.retrofaction.com Zakk's emulator news website and my host ;)
http://www.libsdl.org Home of the SDL project