Igor: Objetivo Uikokahonia game interpreter (Android, SDL) http://cyxdown.free.fr/igor/
  • C++ 88%
  • C 11.2%
  • Shell 0.4%
  • Makefile 0.4%
Find a file
2018-08-07 22:19:17 +08:00
docs docs: document the reverse engineering process 2018-08-06 17:40:49 +08:00
tools decode_igor: update checksums for game versions 2018-02-19 22:59:07 +08:00
debug.cpp interpret_igor: replace calls to fprintf with debug/warning/error 2017-01-12 11:11:11 +08:00
debug.h interpret_igor: replace calls to fprintf with debug/warning/error 2017-01-12 11:11:11 +08:00
disasm.cpp initial import based on 0.1.6 tag 2012-03-17 11:38:03 +01:00
disasm.h initial import based on 0.1.6 tag 2012-03-17 11:38:03 +01:00
file.cpp interpret_igor: AssetFile for read-only access 2017-02-05 09:54:46 +08:00
file.h interpret_igor: AssetFile for read-only access 2017-02-05 09:54:46 +08:00
funcs.cpp interpret_igor: implement clearPalette call 2012-10-12 22:16:19 +02:00
game.cpp interpret_igor: enable parts 91 to 97 (credits) 2018-08-07 22:19:17 +08:00
game.h interpret_igor: remove unused TextOffset 2017-01-11 22:54:54 +08:00
gl_cursor.cpp interpret_igor: support for rendering with GLES 2016-03-14 09:02:57 +08:00
gl_cursor.h interpret_igor: add game cursor 2012-10-06 11:49:57 +02:00
gl_texture.cpp interpret_igor: limit tex subimage size passed to glTexSubImage2D 2016-08-18 19:28:12 +08:00
gl_texture.h interpret_igor: limit tex subimage size passed to glTexSubImage2D 2016-08-18 19:28:12 +08:00
igor_english.txt interpret_igor: add support for external translation file 2016-09-12 18:18:19 +08:00
main.cpp interpret_igor: add screenshot on F10 keypress 2018-08-06 17:40:49 +08:00
Makefile interpret_igor: add screenshot on F10 keypress 2018-08-06 17:40:49 +08:00
Makefile.mingw interpret_igor: add screenshot on F10 keypress 2018-08-06 17:40:49 +08:00
memory.cpp interpret_igor: enable parts 91 to 97 (credits) 2018-08-07 22:19:17 +08:00
memory.h interpret_igor: enable parts 91 to 97 (credits) 2018-08-07 22:19:17 +08:00
mixer.cpp interpret_igor: AssetFile for read-only access 2017-02-05 09:54:46 +08:00
mixer.h interpret_igor: stub MixerImpl 2016-03-14 09:08:54 +08:00
README.TXT interpret_igor: enable parts 91 to 97 (credits) 2018-08-07 22:19:17 +08:00
real.cpp interpret_igor: replace calls to fprintf with debug/warning/error 2017-01-12 11:11:11 +08:00
real.h initial import based on 0.1.6 tag 2012-03-17 11:38:03 +01:00
screenshot.cpp interpret_igor: add screenshot on F10 keypress 2018-08-06 17:40:49 +08:00
screenshot.h interpret_igor: add screenshot on F10 keypress 2018-08-06 17:40:49 +08:00
script.cpp interpret_igor: replace calls to fprintf with debug/warning/error 2017-01-12 11:11:11 +08:00
script.h interpret_igor: fix op_cmp.b and op_test.b 2012-10-12 22:16:19 +02:00
segment_exe.cpp interpret_igor: replace calls to fprintf with debug/warning/error 2017-01-12 11:11:11 +08:00
segment_exe.h interpret_igor: AssetFile for read-only access 2017-02-05 09:54:46 +08:00
stub.cpp interpret_igor: add command line switch for language .txt file 2016-09-12 18:18:19 +08:00
stub.h interpret_igor: set texture palette when dirty 2016-08-18 19:28:08 +08:00
text.cpp interpret_igor: AssetFile for read-only access 2017-02-05 09:54:46 +08:00
text.h interpret_igor: add support for external translation file 2016-09-12 18:18:19 +08:00
traps.cpp interpret_igor: replace calls to fprintf with debug/warning/error 2017-01-12 11:11:11 +08:00
util.h interpret_igor: replace calls to fprintf with debug/warning/error 2017-01-12 11:11:11 +08:00

Igor: Objetivo Uikokahonia
--------------------------

Running:
--------

You need the original files of the Spanish CD release :

    IGOR.DAT  61682719 bytes
    IGOR.EXE   9115648 bytes

One extra datafile is also required (present in the igor-*.zip file) :

    igor.bin

Audio tracks can be encoded as 22 Khz Vorbis files :

    track02.ogg - track16.ogg

The game can be started with :

    ./igor <data directory> <part number> <save directory> <language>

- If data directory is empty, current directory is used ('.').
- If part is not specified, it defaults to startup logos (900).
  The game.h file lists what the part numbers map to.

Game state is saved on exit (as 'igor.s00').

Status:
-------

This program is mostly a proof of concept. Since the original game
executable contains both hardcoded logic and assets, the idea was
to extract the datafiles and write a x86 decoder and interpreter.
Only higher level functions (palette, display, inputs) have been
rewritten (these are referred as 'traps' in the source code).

Missing features :
- original save/load screen

Contact:
--------

Gregory Montoir, cyx@users.sourceforge.net