MK2 Game - Harbinger (128k)

Ayuda sobre MT Engine MK2.

Moderador: na_th_an

Avatar de Usuario
Cthonian Godkiller
Mensajes: 268
Registrado: Mar, 04 Feb 2014, 22:11
Ubicación: Santa Cruz de Tenerife

MK2 Game - Harbinger (128k)

Mensajepor Cthonian Godkiller » Mié, 12 Ago 2015, 22:33

Pues mi siguiente juego sera un plataformas de perspectiva lateral de ciencia ficción, lo estaba haciendo al mismo tiempo que el godkiller 2 y al final me decidí a hacerlo con MK2 :twisted:

128k, 1 nivel de 40 pantallas, 48 tiles.
al hacer los cambios para pasarlo a 128 usando los fuentes del espadewr me peta por todos sitios :twisted:

Los cambios a prioir serían ? :

1º )el make.bat habria que cambiarlo añadiendo las ordenes para el reubica ?
2º )añadir librarian.exe y los recursos del list.txt en bin ?
3º ) las directivas del config
4º ) activar el 128k en el .c

y alguna cosa mas seguro :cry:

Imploro la sabiduría de los dioses mojonos ( prometo no mandar al Godkiller a asesinarlos :twisted: )

:dalefran:

$this->bbcode_second_pass_code('', '
------------------------------------------------------------------------------
BUILDING harbinger
------------------------------------------------------------------------------
### GENERANDO BINARIOS ###
* Building reubica
* Building RAM3 AND RAM4 AND RAM6
THE LIBRARIAN

Processing list.txt
+ File title.bin
+ File marco.bin
+ File ending.bin
+ File
El sistema no puede encontrar el archivo especificado.
1 archivo(s) copiado(s).
### MAKING MAPS ###
map2bin 1.1 - Hanna edition
usage

$ map2bin mapa.map map_w map_h lock map.bin bolts.bin [connections.txt] [force]

where:
* mapa.map is your map from mappy .map
* map_w, map_h are map dimmensions in screens
* lock is 15 to autodetect lock, 99 otherwise
* map.bin is the output map, bin file.
* bolts.bin is the output bolts, bin file.
* connections.txt - include custom connections.
* force - forces packed, extra tiles are output an map.bin.spt file.

packed/unpacked auto-detected
El sistema no puede encontrar el archivo especificado.
### MAKING ENEMS ###
reading enems file
enems filename = ..\enems\enems.ene
reading 54 enemies
written 54 enemies
648 bytes written.
reading 18 hotspots
54 bytes written.

### MAKING TILESET ###
reading font
font filename = ..\gfx\font.png
converted 64 chars
reading 16x16 tiles
tileset filename = ..\gfx\work.png
converted 192 chars
writing tileset
2304 bytes written

### MAKING SPRITESET ###
** WARNING **
SprCnv convierte los sprites en un PNG en formato churrera
c¾digo C usable directamente en el juego.
CutreCode Disclaimer: este programa es cutrecode, esto significa
que si el PNG de entrada no tiene el formato churrera especificado
en la documentaci¾n, cosas divertidas pueden ocurrir.

íTodo correcto!
### MAKING SCRIPT ###
Parsing harbinger.spt
Scripts for 0 levels read and compiled into scripts.bin
Generating parser
DONE!
1 archivo(s) copiado(s).
1 archivo(s) copiado(s).
1 archivo(s) copiado(s).
### MAKING FIXED ###
Reading input png
input filename = ..\gfx\title.png
Reading colour pairs
Examining and reordering bitmap
Adding attribute file
Writing output
output filename = ..\gfx\title.scr
6912 bytes written
===============================================================================
aPLib example Copyright (c) 1998-2004 by Joergen Ibsen / Jibz
All Rights Reserved

http://www.ibsensoftware.com/
===============================================================================

compressed 6912 -> 3610 bytes (52%) in 0.01 seconds
Reading input png
input filename = ..\gfx\ending.png
Reading colour pairs
Examining and reordering bitmap
Adding attribute file
Writing output
output filename = ..\gfx\ending.scr
6912 bytes written
===============================================================================
aPLib example Copyright (c) 1998-2004 by Joergen Ibsen / Jibz
All Rights Reserved

http://www.ibsensoftware.com/
===============================================================================

compressed 6912 -> 1950 bytes (28%) in 0.00 seconds
### MAKING LOADING
Reading input png
input filename = ..\gfx\loading.png
Reading colour pairs
Examining and reordering bitmap
Adding attribute file
Writing output
output filename = loading.bin
6912 bytes written
### COMPILING ###
1 archivo(s) copiado(s).
1 archivo(s) copiado(s).
sccz80:"librarian.h" L:18 Warning:#2:Too many arguments in function call
sccz80:"./engine/enemsinit.h" L:42 Error:#42:Unknown symbol: level_data
sccz80:"./engine/enemsinit.h" L:42 Error:#36:Can't take member
Compilation aborted
### MAKING TAPS ###

BAS2TAP v2.5 by Martijn van der Heide of ThunderWare Research Center

Creating output file loader.tap
Done! Listing contains 1 line.
Input file open failed!
Input file open failed!
Input file open failed!
loader.tap
loading.tap
1 archivo(s) copiado(s).
### LIMPIANDO ###
No se pudo encontrar C:\harbinger\dev\main.tap
No se pudo encontrar C:\harbinger\dev\harbinger.bin
### DONE ###

')


MAKE

$this->bbcode_second_pass_code('', '
@echo off

rem set here the game name (used in filenames)

SET game=harbinger

echo ------------------------------------------------------------------------------
echo BUILDING %game%
echo ------------------------------------------------------------------------------


echo ### GENERANDO BINARIOS ###
echo * Building reubica
..\utils\pasmo reubica.asm reubica.bin
echo * Building RAM3 AND RAM4 AND RAM6
cd ..\bin
librarian.exe
copy RAM3.bin ..\dev\ram3.bin
copy librarian.h ..\dev


rem ###########################################################################
rem ## LEVELS
rem ###########################################################################

rem we will delegate on makelevels.bat - if your game supports several levels,etc
rem echo ### BUILDING LEVELS
rem cd ..\levels
rem call makelevels.bat

rem but for 48K/single level games...

echo ### MAKING MAPS ###

rem the "Force" parameter is to force 16 tiles maps even if the actual map data
rem has more tan 16 tiles. Extra tiles are written to extra.spt. Me have to move
rem that file to the script folder.

..\utils\map2bin.exe ..\map\mapa.map 8 5 15 map.bin
move map.bin.spt ..\script

echo ### MAKING ENEMS ###
..\utils\ene2bin.exe 3 6 1 ..\enems\enems.ene enems.bin hotspots.bin

echo ### MAKING TILESET ###
..\utils\ts2bin.exe ..\gfx\font.png ..\gfx\work.png ts.bin

echo ### MAKING SPRITESET ###
..\utils\sprcnv.exe ..\gfx\sprites.png sprites.h

rem If you use arrows and/or drops this will make the sprites binary:

rem ..\utils\spg2bin.exe ..\gfx\drop.png spdrop.bin
rem ..\utils\spg2bin.exe ..\gfx\arrow.png sparrow.bin

rem ###########################################################################
rem ## GAME TEXT
rem ###########################################################################

rem Each line in text.txt contains a text string for the game.
rem textstuffer.exe will compress and pack all text strings in
rem a binary file called texts.bin. The parameter "24" define how
rem many chars per line. Word wrapping is automatic.

rem echo ### MAKING TEXTS ###
rem cd ..\texts
rem ..\utils\textstuffer.exe texts.txt texts.bin 24
rem copy texts.bin ..\dev

rem ###########################################################################
rem ## GAME SCRIPT
rem ###########################################################################

rem The game script is compiled by msc3.exe. For 128K games use "rampage" at
rem the end so the script compiler generates code to stuff everything in
rem extra pages; the second parameter is the # of screens in your game.
rem i.e. "msc3.exe ninjajar.spt 21 rampage

echo ### MAKING SCRIPT ###
cd ..\script
..\utils\msc3.exe %game%.spt 40 rampage

rem If scripts and texts are going to share the same RAM page, use this line
rem (for 128K games)
rem This calculates an offset for the scripts binary automaticly.
rem ..\utils\sizeof.exe ..\bin\texts.bin 49152 "#define SCRIPT_INIT" >> msc-config.h

copy msc.h ..\dev
copy msc-config.h ..\dev
copy scripts.bin ..\dev
cd ..\dev

rem For 128K games with text + script sharing the same page, use this to
rem bundle both binaries...
rem echo ### BUNDLING TEXT + SCRIPT ###
rem copy /b ..\texts\texts.bin + ..\script\script.bin ..\bin\preload4.bin

rem ###########################################################################
rem ## FIXED SCREENS
rem ###########################################################################

echo ### MAKING FIXED ###
..\utils\png2scr.exe ..\gfx\title.png ..\gfx\title.scr
..\utils\apack.exe ..\gfx\title.scr title.bin
..\utils\png2scr.exe ..\gfx\ending.png ..\gfx\ending.scr
..\utils\apack.exe ..\gfx\ending.scr ending.bin

del ..\gfx\*.scr
echo ### MAKING LOADING
..\utils\png2scr.exe ..\gfx\loading.png loading.bin

rem ###########################################################################
rem ## COMPILATION AND TAPE BUILDING
rem ###########################################################################

echo ### COMPILING ###
zcc +zx -vn %game%.c -o %game%.bin -lsplib2 -zorg=24200
echo ### MAKING TAPS ###
..\utils\bas2tap -a10 -sHARBIN loader.bas loader.tap
..\utils\bin2tap -o reubica.tap -a 25000 reubica.bin
..\utils\bin2tap -o ram1.tap -a 32768 ram1.bin
..\utils\bin2tap -o ram3.tap -a 32768 ram3.bin
..\utils\bin2tap -o loading.tap -a 16384 loading.bin
..\utils\bin2tap -o main.tap -a 24200 %game%.bin
copy /b loader.tap + loading.tap + main.tap %game%.tap
echo ### LIMPIANDO ###
del loader.tap
del main.tap
del loading.tap
del %game%.bin
echo ### DONE ###
')
Soy el Destino Final de Todos los Destinos
http://cthoniangodkiller.wordpress.com/
Avatar de Usuario
na_th_an
Mensajes: 26413
Registrado: Vie, 09 Ene 2009, 12:18

Re: MK2 Game - Harbinger (128k)

Mensajepor na_th_an » Jue, 13 Ago 2015, 10:39

¡Buenas! Ante todo enhorabuena por atreverte a dar el paso. Y ole tus cojones por empezar con algo para 128K :lol:

Lo que ocurre pueden ser mil cosas, lo suyo es mirarlo despacito. Ahora mismo, en la salida de make.bat, ya veo varios errores. En primer lugar, si te fijas, map2bin está sacando las opciones a pantalla en vez de los mensajes de conversión, por lo que es probable que tengas mal la llamada a map2bin o no encuentre el archivo del mapa. Revísalo todo MUY bien.

Otra cosa, aunque no esté actualizado, puedes sacar muchas cosas como loader.bas o un make.bat más petón de Ninjajar!, que es para 128K.

Dicho esto, te respondo las preguntas.

1º )el make.bat habria que cambiarlo añadiendo las ordenes para el reubica ?

Para el modo 128K hay que meter más cosas, efectivamente:

- Hay que incluir reubica.bin. No hace falta que lo vuelvas a ensamblar, pilla el bin directamente.
- Hay que modificar LOADER.BAS para que cargue reubica y todos los módulos y los ponga en su sitio antes de cargar el juego. Hay muchos ejemplos, y todo depende de cuantos RAMx.BIN estés usando. Por ejemplo, si sólo usas música (RAM1.BIN) y las pantallas comprimidas (RAM3.BIN) te valdría con este LOADER.BAS

$this->bbcode_second_pass_code('', '10 BORDER NOT PI:PAPER NOT PI:INK NOT PI:CLEAR VAL "24199":LET D=VAL"25000":LET E=D+2:LOAD""SCREEN$:POKE VAL"23739",CODE"o":LOAD""CODE:LOAD""CODE:POKE D,VAL"1":RANDOMIZE USR E:LOAD""CODE:POKE D,VAL"3":RANDOMIZE USR E:LOAD""CODE:RANDOMIZE USR VAL"24200":REM UNA_PASHOSHA
')

Este cargador hace esto:
- Carga la pantalla.
- Carga reubica.
- Carga RAM1.BIN
- Pokea 1 para reubica y lo ejecuta, colocando ese bloque en RAM 1.
- Carga RAM3.BIN
- Pokea 3 para reubica y lo ejecuta, colocando ese bloque en RAM 3.
- Carga el bloque del juego
- Lo ejecuta.
- Una pashosha.

2º )añadir librarian.exe y los recursos del list.txt en bin ?

Necesitas, como mínimo, meter las pantallas de título, marco y final en list.txt de /bin y ejecutar librarian. Si compartes pantalla para título y marco, marco debe aparecer de todos modos, aunque sea un archivo vacío y no se use.

Esto te generará RAM3.BIN que debes mover a /dev. Puedes añadir todo eso a make.bat (cambiar a /bin, ejecutar librarian, copiar RAM3.BIN y librarian.h a /dev, y volver a /dev :

$this->bbcode_second_pass_code('', 'echo ### BUILDING RAMS ###
cd ..\bin
..\utils\librarian.exe
copy ram?.bin ..\dev
copy librarian.h ..\dev
cd ..\dev')

3º ) las directivas del config

Con activar el MODE_128K te vale, todas las demás cosas son para hacer juegos con más de un nivel. En ese caso, deberás preguntarme - pero ya de entrada te digo que puede ser un poco lío hasta que lo echas a andar, y que recomendamos (porque es lo que hacemos) construir todo el motor con un juego de un solo nivel y luego convertirlo a multi-nivel y añadir las cosas.

4º ) activar el 128k en el .c

En realidad lo que se hace es mover la pila a otro sitio y un par de mierdas más, que son necesarias.
Como diría Rorshach: "Urm..."
Avatar de Usuario
Cthonian Godkiller
Mensajes: 268
Registrado: Mar, 04 Feb 2014, 22:11
Ubicación: Santa Cruz de Tenerife

Re: MK2 Game - Harbinger (128k)

Mensajepor Cthonian Godkiller » Jue, 13 Ago 2015, 13:01

Gracias contestar titan :twisted: , probaré y ya te iré contando :twisted:
Soy el Destino Final de Todos los Destinos
http://cthoniangodkiller.wordpress.com/
Avatar de Usuario
Cthonian Godkiller
Mensajes: 268
Registrado: Mar, 04 Feb 2014, 22:11
Ubicación: Santa Cruz de Tenerife

Re: MK2 Game - Harbinger (128k)

Mensajepor Cthonian Godkiller » Jue, 13 Ago 2015, 16:51

okis, ya he realizado los cambios, me falto añadir el bolts a la orden del conversor, pero peta abajo del todo :(

cuando activo el scripting en el config :

$this->bbcode_second_pass_code('', '
sccz80:"librarian.h" L:17 Warning:#2:Too many arguments in function call
sccz80:"msc.h" L:154 Error:#42:Unknown symbol: ctimer
sccz80:"msc.h" L:154 Error:#36:Can't take member
Compilation aborted
')

si desactivo el scripting :

$this->bbcode_second_pass_code('', '
sccz80:"librarian.h" L:17 Warning:#2:Too many arguments in function call
sccz80:"./engine/enemsinit.h" L:42 Error:#42:Unknown symbol: level_data
sccz80:"./engine/enemsinit.h" L:42 Error:#36:Can't take member
')


¿ puede ser por el manejo del scripto en 128k, veo que lo pasa todo a una pagina de ram extra.

$this->bbcode_second_pass_code('', '
echo ### MAKING SCRIPT ###
cd ..\script
..\utils\msc3.exe %game%.spt 40 rampage

rem If scripts and texts are going to share the same RAM page, use this line
rem (for 128K games)
rem This calculates an offset for the scripts binary automaticly.
rem ..\utils\sizeof.exe ..\bin\texts.bin 49152 "#define SCRIPT_INIT" >> msc-config.h

copy msc.h ..\dev
copy msc-config.h ..\dev
copy scripts.bin ..\dev
cd ..\dev
')


$this->bbcode_second_pass_code('', '
------------------------------------------------------------------------------
BUILDING harbinger
------------------------------------------------------------------------------
### MAKING MAPS ###
reading map...
map filename = ..\map\mapa.MAP
width in tiles = 120
height in tiles = 50
lock @ (85, 4) => (5, 0)=5.
lock @ (26, 11) => (1, 1)=9.
lock @ (117, 13) => (7, 1)=15.
lock @ (61, 16) => (4, 1)=12.
lock @ (27, 18) => (1, 1)=9.
lock @ (96, 24) => (6, 2)=22.
lock @ (99, 32) => (6, 3)=30.
lock @ (24, 36) => (1, 3)=25.
lock @ (23, 44) => (1, 4)=33.
lock @ (108, 45) => (7, 4)=39.
total bytes read = 6000
unpacked map detected (48 tiles)
10 bolts found.
writing map...
6000 bytes written.
writing bolts...
128 bytes written.

### MAKING ENEMS ###
reading enems file
enems filename = ..\enems\enems.ene
reading 54 enemies
written 54 enemies
648 bytes written.
reading 18 hotspots
54 bytes written.

### MAKING TILESET ###
reading font
font filename = ..\gfx\font.png
converted 64 chars
reading 16x16 tiles
tileset filename = ..\gfx\work.png
converted 192 chars
writing tileset
2304 bytes written

### MAKING SPRITESET ###
** WARNING **
SprCnv convierte los sprites en un PNG en formato churrera
c¾digo C usable directamente en el juego.
CutreCode Disclaimer: este programa es cutrecode, esto significa
que si el PNG de entrada no tiene el formato churrera especificado
en la documentaci¾n, cosas divertidas pueden ocurrir.

íTodo correcto!
### MAKING SCRIPT ###
Parsing harbinger.spt
Extra decorations file for current level is MAP.BIN.SPT
END_OF_LEVEL reached.
Scripts for 1 levels read and compiled into scripts.bin
Generating parser
DONE!
1 archivo(s) copiado(s).
1 archivo(s) copiado(s).
1 archivo(s) copiado(s).
### MAKING FIXED ###
Reading input png
input filename = ..\gfx\title.png
Reading colour pairs
Examining and reordering bitmap
Adding attribute file
Writing output
output filename = ..\gfx\title.scr
6912 bytes written
===============================================================================
aPLib example Copyright (c) 1998-2004 by Joergen Ibsen / Jibz
All Rights Reserved

http://www.ibsensoftware.com/
===============================================================================

compressed 6912 -> 3610 bytes (52%) in 0.01 seconds
Reading input png
input filename = ..\gfx\ending.png
Reading colour pairs
Examining and reordering bitmap
Adding attribute file
Writing output
output filename = ..\gfx\ending.scr
6912 bytes written
===============================================================================
aPLib example Copyright (c) 1998-2004 by Joergen Ibsen / Jibz
All Rights Reserved

http://www.ibsensoftware.com/
===============================================================================

compressed 6912 -> 1950 bytes (28%) in 0.01 seconds
### MAKING LOADING
Reading input png
input filename = ..\gfx\loading.png
Reading colour pairs
Examining and reordering bitmap
Adding attribute file
Writing output
output filename = loading.bin
6912 bytes written
* Building reubica
### BUILDING RAMS ###
THE LIBRARIAN

Processing list.txt
+ File title.bin
+ File marco.bin
+ File ending.bin
Writing RAM3.bin
RAM3.bin
1 archivo(s) copiado(s).
1 archivo(s) copiado(s).
-------------------------------------------------------------------------------
### COMPILANDO WYZ PLAYER ###
1 archivo(s) copiado(s).
### COMPILING ###
1 archivo(s) copiado(s).
1 archivo(s) copiado(s).
sccz80:"librarian.h" L:17 Warning:#2:Too many arguments in function call
sccz80:"msc.h" L:154 Error:#42:Unknown symbol: ctimer
sccz80:"msc.h" L:154 Error:#36:Can't take member
Compilation aborted
### MAKING TAPS ###

BAS2TAP v2.5 by Martijn van der Heide of ThunderWare Research Center

Creating output file loader.tap
Done! Listing contains 1 line.
Input file open failed!
loader.tap
loading.tap
1 archivo(s) copiado(s).
### LIMPIANDO ###
No se pudo encontrar C:\harbinger\dev\main.tap
No se pudo encontrar C:\harbinger\dev\harbinger.bin
### DONE ###
')
Soy el Destino Final de Todos los Destinos
http://cthoniangodkiller.wordpress.com/
Avatar de Usuario
elborra
Mensajes: 209
Registrado: Dom, 12 Ene 2014, 14:37

Re: MK2 Game - Harbinger (128k)

Mensajepor elborra » Jue, 13 Ago 2015, 18:07

Nas...

Sin el source por delante yo soy un inútil y no voy a poder ayudarte mucho :(, pero veamos si cuela.

1.$this->bbcode_second_pass_code('', 'sccz80:"librarian.h" L:17 Warning:#2:Too many arguments in function call')Fallo en la linea 12 de librarian; por esa línea ya se estan definiendo los recursos, si librarian.h tiene el siguiente aspecto no se por donde andarán los tiros, ¿Puedes subir el fichero librarian.h?$this->bbcode_second_pass_code('', '// librarian.h
// Generated by The Librarian
// Copyleft 2012 The Mojon Twins

typedef struct {
unsigned char ramPage;
unsigned int ramOffset;
} RESOURCE;

RESOURCE resources [] = {
{3, 49152}, // 0: title.bin
{3, 51629}, // 1: marco.bin
{3, 52413}, // 2: ending.bin
....
')
2.$this->bbcode_second_pass_code('', 'sccz80:"msc.h" L:154 Error:#42:Unknown symbol: ctimer
sccz80:"msc.h" L:154 Error:#36:Can't take member')¿Usas el temporizador mediante el script? Si es así probablemente te falte activarlo en config.h mediante$this->bbcode_second_pass_code('', '
#define TIMER_ENABLE // Enable timer')
Avatar de Usuario
Cthonian Godkiller
Mensajes: 268
Registrado: Mar, 04 Feb 2014, 22:11
Ubicación: Santa Cruz de Tenerife

Re: MK2 Game - Harbinger (128k)

Mensajepor Cthonian Godkiller » Jue, 13 Ago 2015, 18:16

Aquí te dejo el librarian, si necesitas algo mas dimelo ;) , te mando el source por mp , asias titán

no, en el script no esta activado el timer.

$this->bbcode_second_pass_code('', '
sccz80:"librarian.h" L:17 Warning:#2:Too many arguments in function call
sccz80:"./engine/enemsinit.h" L:42 Error:#42:Unknown symbol: level_data
sccz80:"./engine/enemsinit.h" L:42 Error:#36:Can't take member
Compilation aborte

')
Adjuntos
librarian.h
(455 Bytes) Descargado 947 veces
Soy el Destino Final de Todos los Destinos
http://cthoniangodkiller.wordpress.com/
Avatar de Usuario
elborra
Mensajes: 209
Registrado: Dom, 12 Ene 2014, 14:37

Re: MK2 Game - Harbinger (128k)

Mensajepor elborra » Jue, 13 Ago 2015, 18:50

Hay algo extraño en la función$this->bbcode_second_pass_code('', 'void get_resource (unsigned char res, unsigned int dest) {
unpack_RAMn (resources [res].ramPage, resources [res].ramOffset, dest, 1);
}') mi librarian no tiene el último parámetro: el 1. Que es precisamento lo que error marca: "demasiados parámetros".$this->bbcode_second_pass_code('', 'void get_resource (unsigned char res, unsigned int dest) {
unpack_RAMn (resources [res].ramPage, resources [res].ramOffset, dest);
}')Juraría que no estas usando la versión correcta de librarian.exe (estarás utilizando alguno de la churrera), ya que aparte de esa diferencia en la función, librarian.exe de mk2 genera otra serie de DEFINES al final del fichero (al menos la versión de Ninjajar).
Atención, no te valdrá con editar el fichero y quitarle el 1, puesto que el fichero librarian.h se genera cada vez que se compila. Como digo, la solución a ese error es remplazar el fichero librarian.exe del directorio "bin" por el correcto para que al compilar genere el fichero librarian.h compatible con MK2 :cabesa:

$this->bbcode_second_pass_quote('Cthonian Godkiller', 'n')o, en el script no esta activado el timer.$this->bbcode_second_pass_code('', '
sccz80:"librarian.h" L:17 Warning:#2:Too many arguments in function call
sccz80:"./engine/enemsinit.h" L:42 Error:#42:Unknown symbol: level_data
sccz80:"./engine/enemsinit.h" L:42 Error:#36:Can't take member
Compilation aborte')
Pues parece que quisiera usarlo, lo que está claro es que tiene que ver con el temporizador. Quizás se use para una intro o para otra cosa ¿?¿?, puedes probar a activar el temporizador en config.h, verás como el error desaparece (aunque seguiriamos sin saber porque necesita usar el temporizador y añadiriamos más codigo que probablamente no se necesite). Si subes el fichero msc.h le hecho un vistazo, aunque no creo que el error/bug venga de ahí...