News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu

Problems installing cpctelera 1.4

Started by Toni, 18:50, 21 January 17

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Toni

Hello!




I am trying to install cpctelera 1.4, but I always get an error message when it reaches 46%.


http://www.imagebam.com/image/799e2e527714787


I think I have it installed well:


c/cygwyn/home/toni/cpctelera-1.4/cpctelera


Here the file from tool_building.log:


Is the final part of the file

3.5.5/obj/support/sdbinutils/binutils' /bin/sh /home/toni/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/src/support/sdbinutils/binutils/../ylwrap /home/toni/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/src/support/sdbinutils/binutils/arparse.y y.tab.c arparse.c y.tab.h arparse.h y.output arparse.output -- bison -y -d updating arparse.h /bin/sh /home/toni/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/src/support/sdbinutils/binutils/../ylwrap /home/toni/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/src/support/sdbinutils/binutils/sysinfo.y y.tab.c sysinfo.c y.tab.h sysinfo.h y.output sysinfo.output -- bison -y -d /home/toni/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/src/support/sdbinutils/binutils/sysinfo.y: aviso: 1 conflicto desplazamiento/reducción [-Wconflicts-sr] updating sysinfo.h if [ -r sysinfo.c ]; then \ gcc -c -I. -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -g -O2  sysinfo.c ; \ else \ gcc -c -I. -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -g -O2  /home/toni/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/src/support/sdbinutils/binutils/sysinfo.c ; \ fi /bin/sh /home/toni/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/src/support/sdbinutils/binutils/../ylwrap /home/toni/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/src/support/sdbinutils/binutils/syslex.l lex.yy.c syslex.c -- flex gcc -c -I. -I/home/toni/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/src/support/sdbinutils/binutils -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -g -O2  /home/toni/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/src/support/sdbinutils/binutils/syslex_wrap.c gcc -g -O2 -static-libstdc++ -o sysinfo.exe sysinfo.o syslex_wrap.o syslex_wrap.o: En la función `yylex': /home/toni/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/obj/support/sdbinutils/binutils/syslex.c:1097: referencia a `yywrap' sin definir /home/toni/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/obj/support/sdbinutils/binutils/syslex.c:1097:(.text+0xcfe): reubicación truncada para ajustar: R_X86_64_PC32 contra el símbolo `yywrap' sin definir collect2: error: ld devolvió el estado de salida 1 make[5]: *** [Makefile:1325: sysinfo.exe] Error 1 make[5]: se sale del directorio '/home/toni/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/obj/support/sdbinutils/binutils' make[4]: *** [Makefile:3169: all-binutils] Error 2 make[4]: se sale del directorio '/home/toni/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/obj/support/sdbinutils' make[3]: *** [Makefile:836: all] Error 2 make[3]: se sale del directorio '/home/toni/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/obj/support/sdbinutils' make[2]: *** [Makefile:166: sdcc-sdbinutils] Error 2 make[2]: se sale del directorio '/home/toni/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/obj' make[1]: *** [Makefile:63: sdcc] Error 2 make[1]: se sale del directorio '/home/toni/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5' make: *** [Makefile:74: sdcc-3.5.5] Error 2

Thanks

SRS

#1
I'd say the flex package is missing : " referencia a `yywrap' sin definir"

try installing "flex". See which packages are needed here :

QuoteUnder Windows Cygwin is required for CPCtelera to work.  You may download Cygwin 32 / 64 and install it along with these packages (you may launch cygwin's setup.exe at any time to install them),

       
  • Commands: gcc-core, gcc-g++, make, bison, flex, wget, unzip
  • Libraries: libboost-devel, libintl-devel

ronaldo

Hi @Toni ,

   It's quite bizarre. As @SRS points out, it seems a problem with flex, which is the lexical analyzer used to produce the SDCC compiler. However, CPCtelera checks that flex is installed before using it, so it must be installed. Therefore, there is only one thing that I can think of that can produce this: a deprecated/corrupted version of Cygwin.

   My advice would be to try this:

       
  • Uninstall and remove Cygwin completely.
  • Ensure you have the latest setup-x86_64.exe.
  • Install Cygwin again but, most importantly, select a different mirror on the mirrorlist.
  • Ensure you install all the required packages
  • Install CPCtelera.
It wouldn't be the first time that problems in CPCtelera installation are due to a corrupted Cygwin installation. Sometimes happens do to corrupted packages on mirrors (sometimes they serve copies while they are mirroring), other times due to deprecated versions of Cygwin or some packages. This time, I personally think is a corrupted installation.
   Please, try this and give as feedback on your results. Hope this helps.


Toni

#3
Hi!


Thanks SRS and Ronaldo


I continue to have the same problem, 46%.
I changed the mirror, but I did not change anything.
Of course, flex has been installed.


A curiosity that may not mean anything is that there is a file called cygwinccompiler in C:\Users\toni\Downloads\Python34\Lib\distutils


which I think has nothing to do with cygwin.


http://www.imagebam.com/image/559715527747808


Naturally i downloaded cygwin64 from the official website, and I installed and executed it as administrator.


I have Windows 7 64 bits

The final part of the archive:



make[5]: se entra en el directorio '/home/toni/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/obj/support/sdbinutils/binutils'
/bin/sh /home/toni/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/src/support/sdbinutils/binutils/../ylwrap /home/toni/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/src/support/sdbinutils/binutils/arparse.y y.tab.c arparse.c y.tab.h arparse.h y.output arparse.output -- bison -y -d
updating arparse.h
/bin/sh /home/toni/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/src/support/sdbinutils/binutils/../ylwrap /home/toni/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/src/support/sdbinutils/binutils/sysinfo.y y.tab.c sysinfo.c y.tab.h sysinfo.h y.output sysinfo.output -- bison -y -d
/home/toni/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/src/support/sdbinutils/binutils/sysinfo.y: aviso: 1 conflicto desplazamiento/reducción [-Wconflicts-sr]
updating sysinfo.h
if [ -r sysinfo.c ]; then \
  gcc -c -I. -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -g -O2  sysinfo.c ; \
else \
  gcc -c -I. -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -g -O2  /home/toni/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/src/support/sdbinutils/binutils/sysinfo.c ; \
fi
/bin/sh /home/toni/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/src/support/sdbinutils/binutils/../ylwrap /home/toni/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/src/support/sdbinutils/binutils/syslex.l lex.yy.c syslex.c -- flex 
gcc -c -I. -I/home/toni/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/src/support/sdbinutils/binutils -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -g -O2  /home/toni/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/src/support/sdbinutils/binutils/syslex_wrap.c
gcc -g -O2 -static-libstdc++ -o sysinfo.exe sysinfo.o syslex_wrap.o
syslex_wrap.o: En la función `yylex':
/home/toni/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/obj/support/sdbinutils/binutils/syslex.c:1097: referencia a `yywrap' sin definir
/home/toni/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/obj/support/sdbinutils/binutils/syslex.c:1097:(.text+0xcfe): reubicación truncada para ajustar: R_X86_64_PC32 contra el símbolo `yywrap' sin definir
collect2: error: ld devolvió el estado de salida 1
Makefile:1325: fallo en las instrucciones para el objetivo 'sysinfo.exe'
make[5]: *** [sysinfo.exe] Error 1
make[5]: se sale del directorio '/home/toni/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/obj/support/sdbinutils/binutils'
Makefile:3169: fallo en las instrucciones para el objetivo 'all-binutils'
make[4]: *** [all-binutils] Error 2
make[4]: se sale del directorio '/home/toni/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/obj/support/sdbinutils'
Makefile:835: fallo en las instrucciones para el objetivo 'all'
make[3]: *** [all] Error 2
make[3]: se sale del directorio '/home/toni/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/obj/support/sdbinutils'
Makefile:166: fallo en las instrucciones para el objetivo 'sdcc-sdbinutils'
make[2]: *** [sdcc-sdbinutils] Error 2
make[2]: se sale del directorio '/home/toni/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/obj'
Makefile:58: fallo en las instrucciones para el objetivo 'sdcc'
make[1]: *** [sdcc] Error 2
make[1]: se sale del directorio '/home/toni/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5'
Makefile:69: fallo en las instrucciones para el objetivo 'sdcc-3.5.5'
make: *** [sdcc-3.5.5] Error 2
make: se sale del directorio '/home/toni/cpctelera-1.4/cpctelera/tools'


Thanks

KaosOverride

Meanwhile try this "portable" version.


https://mega.nz/#!GwZzCbpC!twk_ZpnyIlO82hfBb2IQQ_I38YKzSPIrKOMLzo7PWUY


It's fully instaled and configured. With nano editor and git. Yesterday I missed the Midnight Commander, maybe in the future I will update it. I say "portable" but is 1.4gb uncompressed. It's not invasive because the cpctelera.bat sets the environment variables just for the opened terminal screen.


It's also an old version of cygwin, just the last one with WinXP support. I use it at one pendrive as portable workspace and one of the PCs is an XP. But works fine at my Win10 x64.
KaosOverride · GitHub
MEGA Amstrad Public Amstrad folder

KaosOverride

Also making some googling I got advices that flex sometimes missed installing flex-devel.
KaosOverride · GitHub
MEGA Amstrad Public Amstrad folder

Toni

Thanks, KaosOverride




By the way, the packages, including flex, in what folder are they?


I could always copy the flex folder from your file and pass it to the one that is not installed.




By the way, your file has worked very well :)
Although the window is the msdos instead of cygwin.


http://www.imagebam.com/image/a593d9528032036


Thanks!

KaosOverride

You should not try to mix from the 2 cygwins because mine is a bit outdated. If yours is last version then it requires some Vista and above requeriments. So the flex you need may have different bindings to the rest of cygwin and windows.


Better remove the flex and flex-devel from your installation with the installer, and later reinstall.


Also because of the outdated cygwin it uses the old "bash in CMD window", not the custom terminal cygwin uses now.


I hope you repair your install but meanwhile you have  something to start with!!
KaosOverride · GitHub
MEGA Amstrad Public Amstrad folder

ronaldo

@Toni,

Everything seems quite odd to me. I think I will try latest version of Cygwin myself. They might have changed something.

Thanks for your report, It might be useful to fix things up for other users :).

ronaldo

@Toni, @KaosOverride , I've checked it out and the problem seems to be due to something that has changed in latest Cygwin distribution. I've made some tests, but couldn't find out the source of the problem. It's quite bizarre, because yywrap function is defined in SDCC.lex, and there seems to be no reason for it not to be correctly linked. Moreover, it was being linked without problem until now, so the problem is even more misterious.

However, I've found a manual fix for the problem. Just follow these steps:

       
  • Install cygwin as requested
  • Download CPCtelera and launch ./setup.sh
  • Wait until it fails at ~47% and then edit this file: cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/obj/support/sdbinutils/binutils/syslex.c
  • Comment out line 74 of syslex.c adding // at its start. It should look like this: //    #define yywrap yywrap
  • Launch ./setup.sh again
If you already had Cygwin and CPCtelera, you may start at step 2 by launching setup with Clean Reinstall option: ./setup -cri

This fixes the problem manually. It's not a good solution, but it will work until we find the true source of the problem.

AMSDOS

Sounds a little bit like when Java do an update, our mapping program ceases at work, so we're told not to update Java, though updates a very frequent, it's annoying, has something to do with how the mapping program is linked into the Java at the time, so when an update is done, the program ceases to function.
* Using the old Amstrad Languages :D   * with the Firmware :P
* I also like to problem solve code in BASIC :)   * And type-in Type-Ins! :D

Home Computing Weekly Programs
Popular Computing Weekly Programs
Your Computer Programs
Updated Other Program Links on Profile Page (Update April 16/15 phew!)
Programs for Turbo Pascal 3

SRS


Toni

#12

Sorry for the delay

Thanks, I finally got it installed!  :)


I'm using the latest version of RGAS to create the sprites, But there is no tutorial to create the sprites with this tool for  cpctelera.


There are some available to create a simple one with your frames?


I have tried to make a sprite with 4 frames (2 looking to the left and 2 to the right).


Is this:



http://www.imagebam.com/image/283dfe537773656


And here the file paco1.c:


[/code]#include "paco1.h"
// Data created with Img2CPC - (c) Retroworks - 2007-2015
u8* const g_tile_tileset[8] = {
   g_tile_paco1_0, g_tile_paco1_1, g_tile_paco1_2, g_tile_paco1_3, g_tile_paco1_4, g_tile_paco1_5, g_tile_paco1_6, g_tile_paco1_7
};
// Tile g_tile_paco1_0: 8x16 pixels, 4x16 bytes.
const u8 g_tile_paco1_0[4 * 16] = {
   0xc0, 0xc0, 0xc0, 0xcc,
   0xc0, 0xc0, 0xcc, 0xcc,
   0xc0, 0xc0, 0xcc, 0xc0,
   0xc0, 0xc0, 0xcc, 0xc0,
   0xc0, 0xc0, 0xcc, 0xcc,
   0xc0, 0xc0, 0xc0, 0xcc,
   0xc0, 0xc0, 0xc0, 0xf0,
   0xf0, 0xf0, 0xf0, 0xf0,
   0xc0, 0xc0, 0xf0, 0xf0,
   0xc0, 0xc0, 0xf0, 0xf0,
   0xc0, 0xc0, 0xf0, 0xf0,
   0xc0, 0xc0, 0xc0, 0xc0,
   0xc0, 0xc0, 0xc0, 0xc0,
   0xc0, 0xc0, 0xc0, 0xc0,
   0xc0, 0xc0, 0xc0, 0xc0,
   0xc0, 0xc0, 0xc0, 0x00
};


// Tile g_tile_paco1_1: 8x16 pixels, 4x16 bytes.
const u8 g_tile_paco1_1[4 * 16] = {
   0xcc, 0xc0, 0xc0, 0xc0,
   0xcc, 0xc0, 0xc0, 0xc0,
   0xcc, 0xc0, 0xc0, 0xc0,
   0xcc, 0xc0, 0xc0, 0xc0,
   0xcc, 0xc0, 0xc0, 0xc0,
   0xcc, 0xc0, 0xc0, 0xc0,
   0xf0, 0xf0, 0xc0, 0xc0,
   0xf0, 0xf0, 0xc0, 0xf0,
   0xf0, 0xf0, 0xf0, 0xf0,
   0xf0, 0xf0, 0xf0, 0xc0,
   0xf0, 0xf0, 0xc0, 0xc0,
   0xc0, 0xc0, 0xc0, 0xc0,
   0xc0, 0xc0, 0xc0, 0xc0,
   0xc0, 0xc0, 0xc0, 0xc0,
   0xc0, 0xc0, 0xc0, 0xc0,
   0x00, 0xc0, 0xc0, 0xc0
};


// Tile g_tile_paco1_2: 8x16 pixels, 4x16 bytes.
const u8 g_tile_paco1_2[4 * 16] = {
   0xc0, 0xc0, 0xc0, 0xcc,
   0xc0, 0xc0, 0xcc, 0xcc,
   0xc0, 0xc0, 0xcc, 0xc0,
   0xc0, 0xc0, 0xcc, 0xc0,
   0xc0, 0xc0, 0xcc, 0xcc,
   0xc0, 0xc0, 0xc0, 0xcc,
   0xf0, 0xc0, 0xc0, 0xf0,
   0xc0, 0xf0, 0xf0, 0xf0,
   0xc0, 0xc0, 0xf0, 0xf0,
   0xc0, 0xc0, 0xf0, 0xf0,
   0xc0, 0xc0, 0xf0, 0xf0,
   0xc0, 0xc0, 0xc0, 0xc0,
   0xc0, 0xc0, 0xc0, 0xc0,
   0xc0, 0xc0, 0xc0, 0xc0,
   0xc0, 0xc0, 0xc0, 0xc0,
   0xc0, 0xc0, 0xc0, 0x00
};


// Tile g_tile_paco1_3: 8x16 pixels, 4x16 bytes.
const u8 g_tile_paco1_3[4 * 16] = {
   0xcc, 0xc0, 0xc0, 0xc0,
   0xcc, 0xc0, 0xc0, 0xc0,
   0xcc, 0xc0, 0xc0, 0xc0,
   0xcc, 0xc0, 0xc0, 0xc0,
   0xcc, 0xc0, 0xc0, 0xc0,
   0xcc, 0xc0, 0xc0, 0xc0,
   0xf0, 0xf0, 0xc0, 0xc0,
   0xf0, 0xf0, 0xc0, 0xf0,
   0xf0, 0xf0, 0xf0, 0xc0,
   0xf0, 0xf0, 0xf0, 0xc0,
   0xf0, 0xf0, 0xc0, 0xc0,
   0xc0, 0xc0, 0xc0, 0xc0,
   0xc0, 0xc0, 0xc0, 0xc0,
   0xc0, 0xc0, 0xc0, 0xc0,
   0xc0, 0xc0, 0xc0, 0xc0,
   0x00, 0xc0, 0xc0, 0xc0
};


// Tile g_tile_paco1_4: 8x16 pixels, 4x16 bytes.
const u8 g_tile_paco1_4[4 * 16] = {
   0xc0, 0xc0, 0xc0, 0xcc,
   0xc0, 0xc0, 0xc0, 0xcc,
   0xc0, 0xc0, 0xc0, 0xcc,
   0xc0, 0xc0, 0xc0, 0xcc,
   0xc0, 0xc0, 0xc0, 0xcc,
   0xc0, 0xc0, 0xc0, 0xcc,
   0xc0, 0xc0, 0xf0, 0xf0,
   0xf0, 0xc0, 0xf0, 0xf0,
   0xf0, 0xf0, 0xf0, 0xf0,
   0xc0, 0xf0, 0xf0, 0xf0,
   0xc0, 0xc0, 0xf0, 0xf0,
   0xc0, 0xc0, 0xc0, 0xc0,
   0xc0, 0xc0, 0xc0, 0xc0,
   0xc0, 0xc0, 0xc0, 0xc0,
   0xc0, 0xc0, 0xc0, 0xc0,
   0xc0, 0xc0, 0xc0, 0x00
};


// Tile g_tile_paco1_5: 8x16 pixels, 4x16 bytes.
const u8 g_tile_paco1_5[4 * 16] = {
   0xcc, 0xc0, 0xc0, 0xc0,
   0xcc, 0xcc, 0xc0, 0xc0,
   0xc0, 0xcc, 0xc0, 0xc0,
   0xc0, 0xcc, 0xc0, 0xc0,
   0xcc, 0xcc, 0xc0, 0xc0,
   0xcc, 0xc0, 0xc0, 0xc0,
   0xf0, 0xc0, 0xc0, 0xc0,
   0xf0, 0xf0, 0xf0, 0xf0,
   0xf0, 0xf0, 0xc0, 0xc0,
   0xf0, 0xf0, 0xc0, 0xc0,
   0xf0, 0xf0, 0xc0, 0xc0,
   0xc0, 0xc0, 0xc0, 0xc0,
   0xc0, 0xc0, 0xc0, 0xc0,
   0xc0, 0xc0, 0xc0, 0xc0,
   0xc0, 0xc0, 0xc0, 0xc0,
   0x00, 0xc0, 0xc0, 0xc0
};


// Tile g_tile_paco1_6: 8x16 pixels, 4x16 bytes.
const u8 g_tile_paco1_6[4 * 16] = {
   0xc0, 0xc0, 0xc0, 0xcc,
   0xc0, 0xc0, 0xc0, 0xcc,
   0xc0, 0xc0, 0xc0, 0xcc,
   0xc0, 0xc0, 0xc0, 0xcc,
   0xc0, 0xc0, 0xc0, 0xcc,
   0xc0, 0xc0, 0xc0, 0xcc,
   0xc0, 0xc0, 0xf0, 0xf0,
   0xf0, 0xc0, 0xf0, 0xf0,
   0xc0, 0xf0, 0xf0, 0xf0,
   0xc0, 0xf0, 0xf0, 0xf0,
   0xc0, 0xc0, 0xf0, 0xf0,
   0xc0, 0xc0, 0xc0, 0xc0,
   0xc0, 0xc0, 0xc0, 0xc0,
   0xc0, 0xc0, 0xc0, 0xc0,
   0xc0, 0xc0, 0xc0, 0xc0,
   0xc0, 0xc0, 0xc0, 0x00
};


// Tile g_tile_paco1_7: 8x16 pixels, 4x16 bytes.
const u8 g_tile_paco1_7[4 * 16] = {
   0xcc, 0xc0, 0xc0, 0xc0,
   0xcc, 0xcc, 0xc0, 0xc0,
   0xc0, 0xcc, 0xc0, 0xc0,
   0xc0, 0xcc, 0xc0, 0xc0,
   0xcc, 0xcc, 0xc0, 0xc0,
   0xcc, 0xc0, 0xc0, 0xc0,
   0xf0, 0xc0, 0xc0, 0xf0,
   0xf0, 0xf0, 0xf0, 0xc0,
   0xf0, 0xf0, 0xc0, 0xc0,
   0xf0, 0xf0, 0xc0, 0xc0,
   0xf0, 0xf0, 0xc0, 0xc0,
   0xc0, 0xc0, 0xc0, 0xc0,
   0xc0, 0xc0, 0xc0, 0xc0,
   0xc0, 0xc0, 0xc0, 0xc0,
   0xc0, 0xc0, 0xc0, 0xc0,
   0x00, 0xc0, 0xc0, 0xc0
};




the console:


[url=http://www.imagebam.com/image/42b96a537774664]http://www.imagebam.com/image/42b96a537774664[/url]


Many thanks






ronaldo

Quote from: Toni on 16:07, 12 March 17
There are some available to create a simple one with your frames?

Sorry Toni, didn't see your reply to this thread. Are you asking for tutorials on how to create sprites for the CPC using RGAS? I think we didn't create any tutorial on this tool. There are several videos on youtube (in spanish) showing how to create sprites in any editor, and then automatically converting them from PNG/BMP to C code. However, I don't remember any tutorial on how to manually create and convert the sprites using RGAS. Sorry for that. It would be nice to have tutorials on this point.

Powered by SMFPacks Menu Editor Mod