mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-22 09:49:11 +00:00
.. | ||
framfs_save_manager.cpp | ||
framfs_save_manager.h | ||
Makefile | ||
module.mk | ||
n64.mk | ||
nintendo64.cpp | ||
osys_n64_base.cpp | ||
osys_n64_events.cpp | ||
osys_n64_utilities.cpp | ||
osys_n64.h | ||
pad_rom.sh | ||
pakfs_save_manager.cpp | ||
pakfs_save_manager.h | ||
portdefs.h | ||
README.N64 |
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.