/NAGI

Primary LanguageCOtherNOASSERTION

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>NAGI v2.06 Source</title></head><body>
<h1>NAGI v2.07 beta Source</h1>
<b>By Nick Sonneveld</b><br>
<h3>Introduction</h3>
This is the public release of the NAGI source code.<br>
<br>

          NAGI (New Adventure Game Interpreter) is a clone of Sierra's own
  AGI     which   they created and used through the 80's to produce a whole 
 bunch    of  great  adventure games like Space Quest, Leisure Suit Larry 
and Kings     Quest.   NAGI  was created by disassembling the original AGI 
executable   and  writing  equivalent C code that would run under 
         SDL which is a free generic  library        for low-level  access
  to graphics and audio.  It can read both v2 and    v3 game data for the
PC.<br>
<br>




I am still supporting and working on NAGI! &nbsp;I just feel it's time to
release the source code as well. &nbsp;If you are working on a similiar interpreter
or a tool to help develop AGI games, then hopefully you'll find some use
in the NAGI source code. &nbsp;The original source was released April 18th, 2002.<br>


<br>


The current source release supports Linux and some some minor bug fixes! &nbsp;Check it out!<br>
<h3>
<h3>Current Developers:</h3>

</h3><a href="mailto:sonneveld.at.hotmail.com">

Nick Sonneveld</a> - Original author<br>

<a href="mailto:g_mcm.at.mweb.co.za">

Gareth McMullin</a> - Linux port and tweaking<br>

<a href="mailto:claudio.at.helllabs.org">
Claudio Matsuoka</a> - has pledged to support the project.
<h3>
<h3>License</h3>
</h3>





NAGI's source has been released under the X11 license. &nbsp;This means you
can use the source in any project you want and you do not have to provide
the source if that is your wish. &nbsp;You have to make sure you acknowledge
my copyright and you cannot use my name as an endorsement of something else.
&nbsp;No warranties are implied either.<br>





<br>





The X11 license has been deemed to be <a href="http://www.gnu.org/licenses/license-list.html">compatible with the GPL license</a>. &nbsp;For the full license, check out of the bottom of this page.
<h3>
<h3>
Systems Supported</h3>

</h3>
<ul>
<li>



Windows - NAGI was originally written for Windows using the SDL Library</li><li>Linux - a new version, ported by Gareth McMullin</li>
</ul>






<h3>Build Requirements</h3>




In order to successfully build NAGI from the provided source code, you will need:<br>




<ul>
<li>gcc - <a href="http://www.mingw.org">MinGW</a> is an excellent compiler for Windows<br>
</li><li>Make - automating compilation &nbsp;(available through cygwin or the ported mingw tools)</li><li>Sed - an attempt at dependancy generation</li><li><a href="http://www.libsdl.org/">SDL Library Headers</a> - NAGI links to this</li><li>SDL Runtime Library - necessary to run NAGI. &nbsp;Usually is provided with SDL Library</li>
</ul>




<h3>How to Build</h3>




Make sure SDL include files are available using #include &lt;sdl/sdl.h&gt;<br>




<br>




The mingw tools, sed and make will need to be in the system path. &nbsp;Depending on the operation system you need to type in:<br>

<ul>
<li>"make -f Makefile.win"</li><li>"make -f Makefile.linux"</li>
</ul>

For Windows (since Linux version only has one build)<br>




<ul>
<li>"make -f xx" - compile NAGI and NAGI-console</li><li>"make -f xx nagi" - compile NAGI</li><li>"make -f xx nagi-console" - compile NAGI with console support</li>
</ul>




All files are produced in a directory called "../bin". &nbsp;This is easily changed in the makefile.






<h3>Suggestions</h3>




These are some things that I planned to work on:<br>




<ul>
<li>New save game format to make it less fragile and compatible across other free interpreters</li><li>Save menu, controller and thumbnail info in save games<br>
  </li><li>Font scaling</li><li>Clean sound code</li><li>Optimised x1 x2 graphics scale modes</li><li>beeping for agi errors</li><li>GUI to configure NAGI options (using wxWindows?)</li><li>Links with AGI Studio to aid debugging</li><li>MIDI generation</li><li>Ability to split ini keys on several lines</li><li>Screenshots</li><li>Separate ini file in game directory overides main ini</li><li>cache of found games</li><li>After quitting game, go back to game menu</li><li>Dialogue box to enter commands</li><li>Selectable gui backgrounds</li><li>256 colour / palette hacks</li><li>support for Amiga mouse commands</li><li>support for AGInfo's game checksum list</li><li>support early interpreter's sprite handling (fix Donald Duck, AGI Trek, Xmas demo sprite glitches)</li><li>transition screen fades between new rooms</li><li>fix windib support (SDL problem?)</li><li>joystick support<br>
  </li><li>patches for copy protection</li>
</ul>




Hopefully that will give you some ideas if you want to hack NAGI.<br>




<h3>Disassembled Code</h3>




Also in another package are files I used for disassembling NAGI. &nbsp;Some
code, before I started writing straight into C, is available here along with
files that are compatible with the early free DOS version of IDA (interactive
disassembler). &nbsp;If you have a legal commercial Windows version, it should
be able to read them in and convert them.<br>




<br>




If any of the disassembled comments looks wrong, it possibly is. &nbsp;I
learnt proper C and how to read assembler from this project so my initial
guesses may be wrong.<br>




<h3>Support</h3>




Send me any emails if you want more information on NAGI or how the source
code fits together. &nbsp;As long as it doesn't get too demanding, I won't
mind answering any questions.<br>




<br>



<h3>X11 License</h3>


The license in full: (applies to all source code)<br>





<blockquote><tt>COPYRIGHT AND PERMISSION NOTICE</tt><br>
  <br>
  <tt>Copyright (c) 2001, 2001 Nick Sonneveld</tt><br>
  <br>
  <tt>All rights reserved.</tt><br>
  <br>
  <tt>Permission is hereby granted, free of charge, to any person obtaining a</tt><br>
  <tt>copy of this software and associated documentation files (the</tt><br>
  <tt>"Software"), to deal in the Software without restriction, including</tt><br>
  <tt>without limitation the rights to use, copy, modify, merge, publish,</tt><br>
  <tt>distribute, and/or sell copies of the Software, and to permit persons</tt><br>
  <tt>to whom the Software is furnished to do so, provided that the above</tt><br>
  <tt>copyright notice(s) and this permission notice appear in all copies of</tt><br>
  <tt>the Software and that both the above copyright notice(s) and this</tt><br>
  <tt>permission notice appear in supporting documentation.</tt><br>
  <br>
  <tt>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS</tt><br>
  <tt>OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</tt><br>
  <tt>MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT</tt><br>
  <tt>OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR</tt><br>
  <tt>HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL</tt><br>
  <tt>INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING</tt><br>
  <tt>FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,</tt><br>
  <tt>NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION</tt><br>
  <tt>WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</tt><br>
  <br>
  <tt>Except as contained in this notice, the name of a copyright holder</tt><br>
  <tt>shall not be used in advertising or otherwise to promote the sale, use</tt><br>
  <tt>or other dealings in this Software without prior written authorization</tt><br>
  <tt>of the copyright holder.</tt><br>
</blockquote>



<br>
Nick Sonneveld<br>
<a href="mailto:sonneveld@hotmail.com">sonneveld@hotmail.com</a><br>
<br>
<br>
<br>
</body></html>