**************************************************** * * * NEOPOCOTT VERSION 0.38b * * General User Documentation * * * **************************************************** Abbreviations used ------------------ NGP : NeoGeo Pocket NGPC : NeoGeo Pocket Color GUI : Graphical User Interface Technical documentation ----------------------- Platforms supported : - Windows 95/98/2000/NT/ME, - MacOS - MsDos - Linux (Console) - Acorn RISC OS - DreamCast - BeOS - PocketPC - Amiga PPC (SOON) - Linux (X-Windows) (SOON) - Linux (KDE) (SOON) - Linux (GTK) (SOON) - DirectX (SOON) - QNX (SOON) Current Version : 0.38b Last Update : 12/21/2000 Authors : - Julien FRELAT "Gollum" (julien.frelat@libertysurf.fr) Main Emulation Code NGP/NGPC Emulation Code Portable Architecture GUI Work Win32 Port Optimizations Fixes Web Maintainer Documentation Maintainer French support English support Old NeoPocott Icons - Judge New NGP/NGPC Emulation Code Fixes New DirectX Port - Richard BANNISTER MacOS Port Link Errors Fixes Cheat system - Anarko (anarko@telia.com) Linux (X-Windows) Port Linux Port MsDos Port Warning Fixes Fixes Debugger Work/Help - Colin Ward (cward@powerup.com.au) Amiga PPC Port Optimizations - David McEwen (david@acornemus.freeserve.co.uk) Acorn RISC OS Port Fixes Gfx Emulation Work/Help Optimizations - Brian Hague (alphaseinor@pcisys.net) Old BeOS Port - Niels Wagenaar (nwagenaar@digitaldynamics.nl) New BeOS Port - Brian Peek (peekb@albany.net) DreamCast Port Old DirectX Port Optimizations NeoPocott Store - Mic... PocketPC Port Win32 Optimizations Optimizations - Simon Singh PS2 Port What is it ? ------------ NeoPocott is a Neogeo Pocket and Neogeo Pocket Color emulator entirely written in C. This version is dedicated to Windows. How do I use it ? ----------------- "NeoPocott" is the name of the executable program. You need Neogeo Pocket or Neogeo Pocket Color Roms, ".NGP", ".NPC" or ".NGC" files, in order to run it. (Don't ask me for roms, please use the Net !) What is emulated ? ------------------ - TOSHIBA TLCS-900h CPU at 6.144 Mhz - Fake Real-Time emulation (no cycle count) - Fake Z80 emulation - Fake BIOS init emulation - Fake BIOS emulation - Fake sound init emulation - Foreground/Background Displaying - Foreground/Background Switching - Foreground/Background X/Y Character Flipping - Foreground/Background X/Y Scrolling - Foreground/Background Colors/Palettes (NGPC) - Sprites 8x8 - Sprites X/Y Position - Sprites X/Y Position Chaining - Sprites X/Y Character Flipping - Sprites Colors/Palettes (NGPC) - Sprites Hiding - Raster Effects (line-per-line graphics engine for Foreground/Background/Sprites) - 512Ko to 4Mo cartridges loading - NGP file format - NGPC initialization What are the special features ? ------------------------------- - Frame per second counter - Keyboard Configuration - Vsync - Speed adjusters - Multiple resolutions support (every video resolution support) - Zoom x1, x2, x3, x4 and Autozoom - ROM analysis with NGP/NGPC autodetection - Reset/Pause Options - Full Debugger included with gfx and memory features - Load/Save State feature with smallest size possible What is planned ? ----------------- X.XX : - TCP/IP, IPX, SERIAL support - Full NGP/NGPC support - Fix last bugs in TLCS-900h core - Optimizations (TLCS-900h core, GFX core, NGPC core) - Joystick/Mouse support - Sound support (another Z80 CPU) - Add free games or demos to NeoPocott - Add screenshots loading/saving - Better compatibility rate (play better commercial roms) What is new ? ------------- Project started April 2000 0.38b : HAPPY BIRTHDAY RELEASE ;-) - Not emulated : EE 0C (Pachisuro...) - Compatibility Improved (0.38b) : Better sprites display in games (Sonic, Metal Slug) ! - Compatibility improved (0.38b) : no more small intros in games ;-) - Compatibility improved (0.38b) : Magical Drop Pocket intro is now perfect ! - Compatibility improved (0.38b) : Sonic, Metal Slug 2nd Mission are now fully playble - Compatibility Improved (0.38b) : Puyo Pop, Pachisuro..., Koi Koi Mahjong (more playable) - Compatibility Improved (0.38b) : Party Mail, Real Bout Fatal Fury, Dokodemo Mahjong, SNK Gals Fighters - (WIN32) Set default speed to faster (Gollum) - (WIN32) Fixes release mode project settings (Voodoo/Gollum) - (WIN32) Add a FPS counter available only no vsync mode (Gollum) - (WIN32) Add a small optimization for Win32 display (Gollum) - (WIN32) Add a new icon by Champipi (Gollum) - (WIN32) Start working on a direct screen mode (Gollum) - (WIN32) Start working on a real fullscreen mode (Gollum) - (WIN32) Highly better sync for display !!! (Gollum) - (WIN32) Increase general speed for better sync with the real NGP (full speed) (Gollum) - (WIN32) Smooth & faster bitmap display !!! (Gollum) - (WIN32) Remove all ugly lines in display !!! (Gollum) - (WIN32) Add *.npc extension for rom loading as MHE/Rape! (Gollum) - (WIN32) Improve bitmap display (Mic.../Gollum) - (WIN32) Optimize speed display up to 350% !!! (Mic...) - (WIN32) Add keyboard shortcuts for load/save snapshot (Gollum) - (WIN32) Reduce window title (Gollum) - (WIN32) Set default size to x1 (Gollum) - (WIN32) Add load/save snapshot (Gollum) - (WIN32) Add a debugging/emulating switch (Gollum) - (WIN32) Improve Run/Pause feature (Gollum) - (WIN32) Add a jump back to current instruction (Gollum) - (DREAMCAST) Speed improvements for palette rendering (Brian Peek) - (DREAMCAST) Add some specific defines (Brian Peek/Gollum) - Remove the old slow Z-buffer stuff (Mic.../David McEwen/Gollum) - Add/Optimize a sprite sorting function (David McEwen/Gollum) - Optimize sprite vs front/back priorities (David McEwen) - Add a line per line sprite engine (David McEwen) - Optimize the debugging videodump function (Mic...) - Optimize the Window frame function (Gollum) - Optimize the VBL emulation (Mic.../David McEwen/Gollum) - Optimize front/back/sprite rendering (Mic...) - Optimize sprite display (Mic...) - Rewrite the Sprites rendering function (Mic...) - Speed improvements for palette loading (Brian Peek) - Speed improvements for memory reads (Brian Peek/Gollum/Colin Ward) - Fixes (aarrgh !!!) window frame clipping (Gollum) - Change a few games comments in database (Gollum) - Add new entries for recently dumped games in database (Anarko) - Change names for some games in database (Anarko) - Improve sync for fake Z80/sound emulation (Judge/Gollum) - Add a small hack to make Metal Slug 2nd Mission fully playable (Judge/Gollum) - Add a small hack to make Sonic fully playable (Judge/Gollum) - Fixes and add comments to all BIOS functions (Gollum) - Fixes BIOS VECT_RTCGET function (Judge) - Add BIOS VECT_INTLVSET function (Judge) - Add/Fixes some BIOS functions with more comments (Judge) - Add pending interrupts support (Judge) - Add two test roms thanks to Ivan Mackintosh's TestCott (Gollum) - Fixes snapshot loading (Richard Bannister) - Add BS1B/BS1F opcodes to debugger (Gollum) - Add BS1F opcode (Gollum) - Add ANDCF/ORCF opcodes (Gollum) - Add PAA opcode (Gollum) - Add/Fixes some BIOS functions (Gollum) - Fixes debugger (Gollum) - Fixes some warnings (Anarko) - Add/Fixes/Improve database info (Anarko) - Improve load/save snapshot feature (Richard Bannister) - Add load/save snapshot feature with smallest possible size (Gollum) - Add/Fixes all database status info (Gollum) - Add some comments to database (Gollum) - Add a hack to make Dokodemo Mahjong playable (Gollum) - Tests/Fixes all BIOS Communication Emulation using TestCott (Gollum) 0.37b : HALLOWEEN >;-[ RELEASE - (WIN32) Correct a few menu strings (Gollum) - (WIN32) Update menu with autoselection (Gollum) - (WIN32) Add Lorenzo Lamas' logo into about box (Gollum) - (MACOS) Add Layer selection (Richard Bannister) - (MACOS) Add common ZLib support (Richard Bannister) - (MSDOS) Add Debugger (Anarko) - Add/Fixes all database status info (Anarko) - Add/Fixes some database status info (Gollum) - Add BS1B opcode (David McEwen) - Add CPDR opcode (David McEwen) - Add fake sound init/test register (Gollum) - Optimizes gfx line clear (Voodoo) - Fixes MINC/MINC2/MINC4/MDEC1/MDEC2/MDEC4 (Gollum) - Fixes 16-bit parity flag emulation (David McEwen) - Fixes INCF/DECF to get correct RFP value (Gollum) - Fixes some warnings (Anarko) - Add language autoselection using database (Richard Bannister/Gollum) - Improve language info from database (Richard Bannister/Gollum) - Fixes RLD opcode (Gollum) - Add window frame color support (Gollum) - Add a function to get only database info or both ROM/database info (Gollum) - Add more info about ROM (Gollum) - Add a database for ROM identification (Anarko) - Fixes a link error (Richard Bannister) - Fixes sprite flickering (David McEwen) - Add sprite priorities (David McEwen) - Add a ZBuffer to handle sprite priorities (David McEwen) - Fixes some link errors (Richard Bannister) - Optimizes GFX rendering (David McEwen) - Fixes BIOS initialization (Gollum) - Reduce memory requirements to 4MB (Gank) - Rewrite all the memory handling (Gank/Gollum) - Add LDCF/STCF opcodes (Gollum) - Add MDEC1/MDEC2/MDEC4 (Gollum) - Add MINC1/MINC2/MINC4 (David McEwen) - More accurate system autoselect (Anarko) - Add RETD opcode (David McEwen/Gollum) - Add LDCF/STCF opcodes (David McEwen/Gollum) - Fixes (argh!) CHG opcode (Gollum) - Add CHG opcode (David McEwen) - Autoselect Neogeo Pocket Classic (B/W) or Neogeo Pocket Color emulation (Gollum/Anarko) - Improve system initialization (Gollum) - Rename all files in 8.3 names (Anarko) 0.36b : SONIC ;-) RELEASE - MANY MANY GAMES WORK NOW !!! ;-) - Check initialization functions (Gollum) - Change keyboard handler to avoid confusing with Allegro (Anarko) - Initialization functions now returns a boolean when malloc fails (Anarko/Richard Bannister) - Add special DIV opcode (Gollum) - Add 16-bit shift opcodes (Gollum/David McEwen) - Add LDCF/STCF opcodes (Gollum/David McEwen) - Add LDDR opcode (Gollum) - Add MINC1 opcode (Gollum) - Optimize some opcodes (Gollum) - Split main emulation function (Gollum) - Rewrite entirely the cpu core to eliminate all stupid bugs (Gollum) - Change KEY_XXX into NGPKEY_XXX to avoid confusing with Allegro (Anarko) - Fixes Load_Rom (Richard Bannister) - Fixes some warnings with MSVC (Gollum) - Fixes many warnings with GCC (Anarko) - Fixes unknown instruction error display (Gollum) - Change Debugger into NGPDebugger (Richard Bannister) - Add fake Z80 sound emulation (Gollum) - Add STCF opcodes (Gollum) - Add a few AND/ADC missing opcodes (David McEwen) - Remove link errors (Richard Bannister) - Fixes (aaarghhh !!!) read/write memory addresses (David McEwen) - Remove all warnings (Gollum) - Code is now 100% in C (remove all C++ stuff) (Gollum) - Emulator now uses independant code modules (Gollum) - Win32 specific code is now isolated (Gollum) - Add directories for each specific port code (Gollum) 0.35b : NEW WWW.EMU5EVER.COM DOMAIN RELEASE HELP : I still need help for sound TIP : Voodoo is working on a compatiblity list for the emu, please read it ASKING : If you encounter some problems with your demo/game please send me a mail - Run/Pause/Resume works better now - Add also *.* for file loading - Add *.NGC for file loading (asked by many people) - Improves Rom Info Window (dynamic) - Registers Window works independantly better - Add help for memory dump commands - Add more CPU registers in the Registers Window - Add CPIR opcode - Change XSP to 0x6C00 at reset as the real NGPC (thanks to Judge) - Cotton - Fantastic Night Dreams Game WORKS PERFECTLY !!! - Magical Drop Pocket Game WORKS PERFECTLY !!! - TPaint Demo WORKS BETTER NOW !!! - Add Keyboard Configuration - Add CHG opcode (thanks to Toby Carvan's TPaint) - Add Blanking Status support (thanks to Toby Carvan's TPaint) - Frame speed adjusters added (please play with them to have the wanted speed on your PC...) - VSync added (thanks to Brian Peek & Charles Doty) - CPU registers show in another window - Independant Windows - Many changes to code (portability, clarity) - Optimize flags emulation (ZF/SF) - Fixes flags emulation (CF/OF/HF) - Completely rewrite flags emulation (huge work...) - Many opcodes checked (huge thanks to Regtest by Ivan Mackintosh) - Fixes current directory when loading roms - Fixes all DIV/DIVS opcodes (huge thanks to Regtest by Ivan Mackintosh) - Add overflow tests for all DIV/DIVS opcodes 0.34b : ALL MY HOPES IN THIS RELEASE... - Dizzy Demo WORKS AT LEAST PERFECTLY !!! - Add horizontal/vertical position chain for sprites (huge thanks to Steven Robb) - Thieves Demo WORKS AT LEAST PERFECTLY !!! - Fixes some LDW opcodes (argh !!!) (thanks to Ivan Mackintosh again) - Emulator now handles 90% of CPU opcodes (add a hundred unemulated opcodes...phew!) - Debugger now handles 95% of CPU opcodes (add a hundred undebugged opcodes...phew!) - Fixes ZOOM x1 again - Add & Fixes some MUL/DIV opcodes 0.33b : LAST LANE BEFORE REAL PLAYING ;-) - Add FAKE black&white emulation for classic roms - Start sprites priorities emulation - Add TIMER and DMA defines - Fixes PUSHW/LDW opcodes in debugger - Add DAA emulation (Snake Demo WORKS AT LEAST PERFECTLY !!!) - Improves patch to unfreeze many games !!!!!! - Add a new bunch of unemulated opcodes - Fixes ZOOM x1/x2/x3/x4 (thanks to Syl) - Fixes MULS opcodes (Fractal demo WORKS NOW PERFECTLY !!!) - Fixes SET/RES opcodes (no flag changes) - Add some opcodes to emulate Fractal demo - Fixes a Foreground/Background screen bug - Neogeo Mode and Language can now be changed while playing - Fake BIOS VECT_COMGETDATA Emulation - Better initialization for a few video memory adresses - Add SWI 1 emulation (special BIOS calls) - Better BIOS calling support - New icon (thanks to NoFX) - Add a new bunch of unemulated opcodes - Fixes patterns/background color palettes interferences - Reduce patterns fixed palette - Rewrite RL/RR/RLC/RRC/SLA/SLL/SRA/SRL opcodes - Fixes (aaarghhh !!!) interferences between decoding and emulator auxiliary registers - Highly better sync for loops - Add a cool patch to unfreeze many games !!!!!! - Now runs at same speed on Win95/98/2000/NT - Fixes y flipping - Fixes x/y scrolling - Add background color support - Fixes (aaarghhh !!!) flags support - Fixes RFP in order to support RFP2 - Fixes RETI instructions and SR - Add a jump to memory adress to debug far instructions - Add a way to enter a specific memory adress to debug (thanks to Ivan Mackintosh -NeoSnake-) - Add a bunch of unemulated opcodes - Add x/y flipping for sprites - Fixes sprite position offset in order to wrap around 0.32b : HUGE WORK BUT STILL NO COMMERCIAL ROMS RUNNING... - NeoSnake freeware game WORKS NEAR PERFECTLY !!! - Squall demo WORKS PERFECTLY !!! - Clock demo WORKS PERFECTLY !!! - Rewrite Half carry and Overflow flags for all arithmetic opcodes thanks to Mael - Fixes hide sprites in upper left corner - Add sprites palette - Fixes PUSH F/POP F/JP nn opcodes (add breaks !) - Fixes VBL interrupt to prevent interrupt itself - Add Half carry and Overflow support for all arithmetic opcodes - Add scrolling plane priority - Add switched display for RGB signal - Add x/y scrolling for foregound/background - Add window origin and size support - Fixes rom size computing - Add support for 32Mbit roms - Add x/y flipping for foreground/background - Add sprite position offset - Fixes wrong instructions handle - Better interrupts call/ret - Improve initialization at reset - Ignore DMA opcodes as for now - Unavailable menu features grayed - Add Foreground/Background/Sprites Layers Enable/Disable - Add Autofire for Button A & B - Add Controller emulation - Fixes Carry for SLL/SLA/SRL opcodes - Fixes 16-bit parity for SLL/SLA opcodes - Add some opcodes and fixes shift opcodes - Add English/Japanese Languages support - Add foreground & background screen handle - Add Fake Enable Interrupts - Add Vertical Blanking Interrupt - More precise VBL Emulation - Full BIOS VECT_RTCGET Emulation - Full BIOS VECT_SYSFONTSET Emulation - Start BIOS Emulation - Add a constant palette for patterns (always visible) "READY TO BE RELEASED" 0.31b : - Fixes SLL,SLA,SRL opcodes to support shifting by 0 - Fixes INC/DEC #3,r opcodes with 16 or 32-bit operands - Fixes 16-bit CP opcodes - Fixes video dumps - Add Autozoom feature - Add Zoom x1/x2/x3/x4 features - Add Reset feature - Add Run/Pause feature - Neo-Neo! WORKS PERFECTLY !!! - Add x scrolling for background screen - Improve emulation speed - Add line-per-line gfx engine - Add timer refresh at 70Hz - First animation under Neo-Neo! (COOL !) - Better screen and sprite shows (dramatically faster!) - Fixes window size - Fixes RGB coding for palettes (right colors now!) - Neo-Neo! demo by DANZiG/NAPALM included (all credits to them !) - Neogeo Pocket Tech Doc 1.0 written by me included 0.30b : - Pattern screen shows under Neo21! - Fixes a RFP bug - Add INC/DEC/SET/DIV opcodes - Fixes a few debugger instructions - Add 'todolist.txt' compatibility list - Changes main menu with better debug options - First screen with right colors shows under Neo-Neo! - Add screen dump - Add sprites dump - Add sprites/foreground/background palettes dump 0.27b : - Add MUL opcode - Fixes index adressing mode with relative displacements (?) - Fixes multiple encodings with signed 8-bit and 16-bit registers (?) - Fixes multiple encodings with relative displacements - Fixes all JR/JRL/CALR opcodes in both debugger and emulator - Add pattern screen dump - First pattern screen shows under Neo-Neo! 0.26b : - Fixes all JP opcodes - Many opcodes added both to debugger and emulator - Fixes IFF and RFP emulation in SR - Add fake BIOS emulation - Fixes some macros 0.25b : - Add Carry flag support - Add horizontal scrollbars for news and status boxes - Add multiples encoding opcodes support for debugger - Many opcodes added both to debugger and emulator - Pre-inc and post-inc opcodes fixed (correct size) - Better pre-inc and post-inc opcodes handling - Add IFF and flags status in debugger window - Add flags support 0.24b : - Add a show memory feature 0.23b : - Debugger improved (changes memory opcodes) - Emulator improved (add a bunch of opcodes) 0.22b : - Debugger improved (removes wrong size opcodes) - Emulator improved (add SRC, DST and REG opcodes) 0.21b : - Debugger improved - Emulator improved - Add register banks support for emulator - Add flags emulation - Better RFP and IFF emulation 0.20b : - Add RFP Show Status - Debugger in progress (35%) - Emulator in progress (5%) - Add Jump & Emulate keys - Add Jump & Emulate features - Show Registers 0.10b : - Add Drag & Drop feature for ROM file - ROM Loading - First executable version Who I would like to acknowledge ? --------------------------------- - David McEwen for help, fixes and cool gfx emulation features - Anarko for help, fixes & advices - Richard Bannister for help & advices - Brian Peek for the NeoPocott store and his cool DreamCast port - Colin Ward, Brian Hague, Niels Wagenaar for their ports - Ivan Mackintosh for sources, games, advices and help ! - Steven Robb for sources, games, advices (thanks for the position chaining ;-) - Voodoo for its great compatibility list (and screenshots) - Champipi for all his logos and icons - Jan Stuhler for future design of the NeoPocott pages - Obys for the old official homepage - NoFX for the new icon and also the italian translations of the docs (er... need an update) - Napalm and especially DANZiG for the Neo-Neo! demo (great job guys !) - Esspe, J.J, Manu, Mael for first help, testing and support Where can I find NeoPocott ? --------------------------- NeoPocott's Official Homepage http://neopocott.emuunlim.com (English) These pages are maintained by Gollum. --------------------------------------------------------------------------- The author takes no responsability for what you do with the emulator. You must own a legal copy of the games. Don't ask us for roms. NeoGeo, Neogeo Pocket, Neogeo Pocket Color are registered trademarks of SNK. Win32, DirectX, Windows 95, Windows 98, Windows 2000, Windows NT are registered trademarks of Microsoft. DreamCast is a registered trademark of SEGA.