ScummVM-N64 README
==============================================================================

Requirements
============

- Nintendo64 (haha...)
- N64 Gamepad
- N64 Mouse (optional, gives better game experience)
- Controller PAK / FlashRAM cart (for saves)
- Flash Cart or copier (like Myth N64 or DoctorV64)
- N64 4mb Memory expansion (this is _almost_ a requirement)

Build cart images from sources
==============================
You can download hkz-libn64 sources from here: http://hkzlab.ipv7.net/consoles.html
hkz-libn64 is a library to control Nintendo64 hardware (es, video, audio, input, etc.).
* TODO *

Build cart images from binaries
===============================

ScummVM N64 cart images are composed by two parts: a binary with executable code
and a romfs image, containing game datafiles and other useful data.
Prebuilt binaries needs to be joined with a romfs image containing datafiles
from _YOUR_ games.

To generate a romfs image under linux/unix you need 'genromfs' tool from
http://romfs.sourceforge.net/, create a directory, copy game data inside,
and then generate the romfs image.

[EXAMPLE]
mkdir GAMEDATA
cp -a ../games/mygamedata ./GAMEDATA
genromfs -f ./ROMFS.img -d ./GAMEDATA -V romname

This creates a ROMFS image with 'mygamedata' directory inside.
Now you need to join this with the appropriate scummvm engine binary:

[EXAMPLE]
cat scummvm-bass.bin ROMFS.img > scummvm-bass.n64

Now the last step, you need to fix the checksum of the image, there are various
tools for this, i normally use ucon64.

[EXAMPLE]
ucon64 --n64 --chk scummvm-bass.n64

This gives you a n64 cart image you can use with your flashcart/copier to play
the game.

* NOTE *
Some copiers requires additional treatment of the cart image before uploading:
the DoctorV64 for example requires the image to be byte-swapped and padded to
the nearest 2mb multiple size. You can use ucon64 tool to perform these changes.

[EXAMPLE]
ucon64 --n64 --v64 --padn=16777216 scummvm-bass.n64

You are then ready to upload the image to the cart and play!

Saving & loading
================

ScummVM-N64 port supports two kind of saves: FlashRAM saves and controller pak saves.
If both are detected, FlashRAM is used.

WARNING!!! ScummVM-N64 currently _ERASES_ the data contained in your FlashRAM and
controller PAK without warning!!! Plug those in only if you want to use their space
for ScummVM saves.

* Controller PAK:
The PAK is a device plugged in the expansion port located underneath the gamepad, it
contains at most 32 kilobytes of data, which makes it very limited for ScummVM use (a
lot of games save size grows over 32kb when the game approaches the end). It contains
battery backed up ram, so savegames might disappear if the battery runs off.

* FlashRAM:
FlashRAM is contained in some game carts (like Command & Conquer), it keeps 128 kilobytes
of data at most, it's a little slower in saving than Controller PAK (it might show up as
a few seconds delay when saving in-game), it keeps enough data for most (all) games supported
by the port. Because of FlashRAM hardware (and the sake of simplicity) there is a top limit of
save files that can be created (8, no matter what the sizes are).

Controls
========

* Using a N64 Pad:
Left trigger                - ESC
Right trigger               - Virtual Keyboard
Analog                      - Mouse movement
D-pad                       - *SLOW* Mouse movement
Start                       - F5 / Main menu in some games
Z                           - Mouse button 1
B                           - Mouse button 2
A                           - '.' / Skip dialogues in some games
C buttons                   - Numeric keypad keys

* Using a N64 Mouse:
Used like a normal PC mouse.

Notes
=====

- If virtual keyboard doesn't show up, you need to make sure you included
  'vkeybd_default.zip' in the root of your romfs image.

- In some games (mostly gob) cursor movement might be choppy, it's a known
  problem and related on how N64 port manages screen updates.


** TODO **
==========

Write the rest of this README.

