Share

Daedalus - An open-source N64 emulator.

File Release Notes and Changelog

Release Name: R11

Notes:
Daedalus PSP R11 Readme File
Copyright (C) 2006-2007 StrmnNrmn

This document last edited 06 May 2007

This is the binary distribution of Daedalus PSP. If you are a
developer, you may find the source distribution more useful.

What is Daedalus?
*****************

Daedalus is a Nintendo64 emulator for Windows and PSP. Daedalus
is named after the craftsman at King Minos's court who designed
the labyrinth for the Minotaur.

Getting the Latest Version
**************************

Daedalus is currently hosted on sourceforge at
http://sourceforge.net/projects/daedalus-n64. The most recent 
version of Daedalus will always be available there (and hopefully
mirrored on some of the other emulation/PSP sites).

About this Release
******************

This release of Daedalus for the PSP is currently in early stages
of development. It is intended to show the potential for a N64
emulator on the PSP, but the current release has many missing
features that make it far from usable:

* There is limited savegame support.
* Not all the N64 controls can be used simultaneously.
* Many roms won't boot.
* Many roms have serious graphical glitches.
* Many roms have random lockups and crashes.
* Many roms run at a low framerate.

Having said all that, I believe most of these problems can be
overcome in the future.

Using Daedalus
**************

Installation
------------

Copy the Daedalus folder to the \PSP\GAME\ folder on your PSP (for
the v1.5+ firmware release you should also copy across the Daedalus% 
folder). 

See the Homebrew FAQ on qj.net for more information on 
how to get homebrew running on your particular version of firmware:
http://forums.qj.net/showpost.php?p=14662&postcount=2

The PSP Homebrew FAQ is also a good reference:
http://www.psp-homebrew.eu/faq/index.php

Roms
----

Roms should be copied to the Roms subdirectory within the
Daedalus folder. Daedalus recognises most roms formats (.v64, .z64,
.rom etc) and will also run roms compressed within .zip files.

NB: Recent versions of Daedalus will also load any roms found
within the  \N64\ directory on your PSP. Note that this is in the
*root* directory of your PSP (e.g. for me it appears as P:\N64\ when 
I open the USB connection in Windows).

When Daedalus boots with a zipped rom, for performance reasons it
will attempt to decompress it to a temporary file on your memory 
stick before execution. If you are low on free space, it is 
recommended that you keep the original rom file on your PC, and 
manually extract the rom to your Roms directory.

Preview Pictures
----------------

Preview pictures for the rom selection screen can be added to the 
Resources\Preview directory in the Daedalus folder. They should be
in .png format, in a 4:3 aspect ratio.

To let Daedalus know which picture to use for each rom, you need to
add a line to the corresponding entry in the main daedalus.ini file,
with this format:

Preview=<filename.png>

Where <filename.png> is the name of the .png file. Don't include any
directory names in the path.

Save Games
----------

Currently Daedalus PSP has limited support for the following save
game types:

4Kb Eeprom
16Kb Eeprom
Mempack

Save games are created with the same name as the rom file, in the
Daedalus/SaveGames/ directory.

IMPORTANT NOTE: For performance reasons Daedalus only saves out
modified save game files when the Pause menu is accessed (by pressing
the 'Select' button while the emulator is running). I'll look at removing
this restriction ASAP, alongside adding SRAM support.

Main Menu
---------

When you run Daedalus, it will present you with a list of all the roms
it could find in your Roms subdirectory. Use the dpad or analogue stick
to navigate to the desired rom, and press X or Start to select it.
A new screen is displayed from which you can select to edit preferences
for the rom or start emulation. 

You can use the left and right shoulder buttons to cycle between other
options screens in Daedalus. 

Pause Menu
----------

When a rom is running, you can access the Pause Menu by pressing the 
'Select' button.

From the Pause Menu you can use the left and right shoulder buttons to
access various option screens. You can use the Pause Menu to take screenshots
and reset the emulator to the main menu. Screenshots are saved under
the Dumps/<gamename>/ScreenShots/ directory in the Daedalus folder on your
memory stick.

You can press the 'Select' button again to quickly return to the emulator.

Controls
--------

When (and indeed if :) the rom runs, the following controls are mapped
by default:

N64					PSP
Start				Start
Analogue Stick		Analogue Stick
Dpad				O (Circle) + Dpad
A					X (Cross)
B					[] (Square)
Z					^ (Triangle)
L Trigger			L Trigger
R Trigger			R Trigger
C buttons			Dpad (Circle unpressed)

As of R7 Daedalus now allows user-configurable controls to be specified.
The desired controls can be chosen from the Rom Settings screen.

In order to define your own controller configuration you need to add a 
new .ini file to the Daedalus/ControllerConfigs directory. There are a
few examples provided which should give an overview of what is possible.
I will look at providing a more thorough tutorial shortly.

Support, Bugs, Comments etc
***************************

If you feel the need to get in touch, I can be contacted at:

					strmnnrmn@gmail.com

I've been deluged with mail since the first release of this emulator,
so apologies if I don't get back to you immediately.

Credits
*******

The Audio HLE code used in Daedalus was adapted from Azimer's great
plugin for PC-based emulators. Thanks Azimer! Drop me a line!

A special thanks to everyone who was involved with Daedalus on the PC in 
the past. Sorry I was so rubbish at keeping the project ticking along. You
know who you are.

Hello to everyone I used to know in the N64 emulation scene back in 2001 -
hope you are all doing well!

A huge thanks to the pspdev guys for all their work.

Many thanks to 71M for giving me the inspiration to get this ported over
and lots of pointers along the way.

A big hello to the Super Zamoyski Bros :)

Many thanks to all the people who suggested using the Circle button to 
toggle between the Dpad and C buttons. I received over two dozen emails and
comments suggesting this approach, so thanks for that :)

Many thanks to hlide and Raphael in the PS2Dev forums for advice on
various VFPU issues.

Copying
*******

Daedalus is released under the GNU General Public License,
and the sourcecode is available from the sourceforge site. 

Disclaimer
**********

The Daedalus distribution comes with absolutely no warranty of any kind.



Changes: R11 - 06 May 2007 ----------------- [*] Large overhaul of rom settings and preferences. All settings should now be persistant. [+] Native support for palettised textures for faster rendering and less memory usage. [+] Provided a fixed size pool for all texture memory, to limit memory usage. [+] Expansion Pak enabled by default. [!] Updated rom info database to include save mechanism for many roms. [!] Fix memory leak in texture cache. [!] Fixed conversion of RGBA/32bpp textures with odd alignments. [!] Fix crash which occurred when recolouring textures in low memory situations. [^] Large rewrite of texture cache to reduce memory usage and improve performance. [^] Various optimisations to the way textures are looked up in the cache and installed. [^] Optimise offsetting/scaling of texture coordinates. [^] Improve performance of dynarec fragment cache and reduce memory fragmentation. R10 - 02 April 2007 ------------------- [+] Added frameskip option. [+] Added framerate limiting option. [+] Added adjustable stick deadzone. [+] Allow pause menu to be activated even when rom emulation has hung. [!] Fix crash when no roms found, added explanatory message. [!] Fix flickering when small number of roms found. [^] Fix texture hash frequency check. [^] Finally got code compiling with -O3 optimisation flag in GCC. [^] Use VFPU for InvSqrt (thanks hlide!) [^] Improved VFPU code for clipping and tnl (thanks Raphael!) [^] Improved inlining of AddTri. [^] Reduced time spent searching for overridden blend modes. [~] Remove debug console in public release builds (smaller footprint and slight speedup.) R9 - 22 February 2007 --------------------- [+] Added support for RGBA 4444 and 5551 textures [!] Tidied up all the texture conversion code, fixing a few bugs in the process [!] Fixed the width/height of FillRect calls in 1 and 2 cycle mode [!] Fixed a blending bug [^] Use 16-bit textures on the PSP to represent 16-bit N64 textures. [+] Added mirrored texture support [!] Fixed a LoadTile bug, allowing a couple of hacks to be removed [+] Added some new blend modes for various roms [!] Fixed the Tri2 command for F3DLX microcodes [!] Fixed a bug in busy-wait detection [!] Fixed a few dynarec stability issues (relating to exceptions occuring mid-trace) [+] Added audio support [+] Added the ability to dump textures (developer builds only at the moment) [!] Fixed screenshots. Again. [+] Implemented cmp.s, cvt.s, cvt.w, mtc1, mfc1, bc1f, bc1t, j, cfc1, ctc1, daddu, trunc.w.s, bc1t, bc1f, bc1tl, bcifl, bnel, beql, blezl, bgtzl, bltzl, blezl in dynarec [^] Avoid setting the branch delay flag and current PC in generated dynarec code unless necessary [^] Much better memory access handling in dynamically recompiled code [^] Use a second code buffer for generated dynarec code, to avoid polluting the instruction cache [+] Further improve the memory access handling in generated dynarec code [!] Fix register usage analysis for lwc1/swc1/mfc1/mtc1 which was preventing base registers used in these instructions from being cached [^] Have compensation blocks restore nobbled registers, so on-trace code does't need to reload [+] New automatic blender [+] New front-end [+] New pause menu, with option to reset to main menu R8 - 25 August 2006 ------------------- [^] Replaced all uses of sceCtrlReadBufferPositive with sceCtrlPeekBufferPositive. [^] Various known value optimisations for the dynamic recompilation engine. [^] Various texture cache optimisations and rendering optimisations. [+] Implemented a new clipping method which is more efficient and gives better results. [-] Removed 'tesselate large triangles' setting. [+] Added option to reset emulator to the main menu. [^] No longer use index buffers for rendering. [^] Implement matrix multiplication using VFPU. [^] Implement vertex transform and lighting code using VFPU. [^] Implement clipping code using VFPU. [^] Minor AddTri optimisations. [^] Free background and font textures while emulator is running to free VRAM. [!] Fixed bug in default controller config (c-down and dpad-down were broken) R7 - 13 August 2006 ------------------- [^] Avoid checking for interrupts in dynarec code in most situations. [^] Optimise dynarec Load/Store instructions to avoid checking for interrupts directly. [^] Implemented the remaining 32-bit integer instructions in the dynarec. [^] Implemented the remaining commong load/store instructions in the dynarec. [^] Implemented JAL/JR in dynarec. [^] Optimised various texture cache related features. [^] Added various known value optimisations to the dynarec engine. [^] Link together blocks even when they exit with branch likely instructions. [+] Added option to allow frequency of texture update checks to be reduced. [+] Added the ability to configure buttons [!] Fixed a couple of compatibility issues caused by the dynarec. [!] Fixed a couple of issues related to self-modifying code and the dynarec. [!] Fixed issues with the framerate counter flickering. R6 - 19 July 2006 ----------------- [+] Added over 50 new combiner modes [+] Added support for c-buttons [+] Load roms from ms0:\N64 in addition to local roms directory [!] Fixed backface culling issues [!] Correctly implemented flipping to avoid flickering with certain roms [!] Plugged memory leak in texture handling code, fixing various crashes [!] Fixed issue which caused screenshot function to hang the emulator R5 - 15 June 2006 ----------------- [+] New DynaRec engine, resulting in significant performance improvements [+] New front end - ability to toggle a couple of options (more to come) [+] Save game first pass (eeprom4k, eeprom16k and mempak) [^] Various interpreting engine optimisations [~] Use .png fileformat for background images, save ~380KB [~] Stripped out unnecessary code, save ~250KB R4 - 05 May 2006 ---------------- [!] Disable PSP FPU exceptions, enabling many roms to run. [!] Fixed ambient lighting bug. [!] Fixed scissoring. [~] Only create temp rom file if compressed (not swapped). [~] Fixed decaling offset. [~] Lots of combiner additions/fixes. R3 - 02 May 2006 ---------------- [+] Added support for streaming in large roms on demand. [+] Various combiner (graphics) fixes. [!] Fixed 120K wasted memory. [~] Minor cosmetic (debug output) tweaks. [~] Stopped debug output obscuring screenshots. R2 - 01 May 2006 ---------------- [+] Now runs in user-mode. [!] Rom selector now recognises .z64/.rom files. [~] Fixed various hard-coded paths. [~] Debug output is now correctly colourised. R1 - 01 May 2006 ---------------- [+] Initial Release