Add Nintendo Switch support (including gitlab-ci, gitlab-pages etc.)
This commit is contained in:
parent
5d9aa6f969
commit
d36e59ca9c
@ -93,3 +93,19 @@ job_gp2x:
|
||||
paths:
|
||||
- "*.zip"
|
||||
- "GP2X_JOB_ID"
|
||||
|
||||
job_switch:
|
||||
stage: build
|
||||
before_script:
|
||||
- apt-get update -qq && apt-get install -y -qq zip
|
||||
- "sh ./.install-switch-toolchain.sh"
|
||||
- "source /etc/profile.d/devkit-env.sh"
|
||||
script:
|
||||
- "SWITCH=1 make -j2 grafx2"
|
||||
- "SWITCH=1 make ziprelease"
|
||||
after_script:
|
||||
- "echo $CI_JOB_ID > SWITCH_JOB_ID"
|
||||
artifacts:
|
||||
paths:
|
||||
- "*.zip"
|
||||
- "SWITCH_JOB_ID"
|
||||
|
||||
@ -9,6 +9,7 @@ LINUX_JOB_ID=$(cat LINUX_JOB_ID)
|
||||
WIN32_JOB_ID=$(cat WIN32_JOB_ID)
|
||||
ATARI_JOB_ID=$(cat ATARI_JOB_ID)
|
||||
GP2X_JOB_ID=$(cat GP2X_JOB_ID)
|
||||
SWITCH_JOB_ID=$(cat SWITCH_JOB_ID)
|
||||
|
||||
# for debug:
|
||||
echo "CI_JOB_URL=${CI_JOB_URL}"
|
||||
@ -46,6 +47,8 @@ echo "<li>Atari (SDL API) :" >> ${OUTFILE}
|
||||
echo "<a href=\"${CI_PROJECT_URL}/-/jobs/${ATARI_JOB_ID}/artifacts/raw/grafx2-sdl-${VERSION}-m68k-atari-mint.zip\">grafx2-sdl-${VERSION}-m68k-atari-mint.zip</a></li>" >> ${OUTFILE}
|
||||
echo "<li>GP2X (SDL API) :" >> ${OUTFILE}
|
||||
echo "<a href=\"${CI_PROJECT_URL}/-/jobs/${GP2X_JOB_ID}/artifacts/raw/grafx2-sdl-${VERSION}-nottf-gp2x.zip\">grafx2-sdl-${VERSION}-nottf-gp2x.zip</a></li>" >> ${OUTFILE}
|
||||
echo "<li>Switch (SDL2 API) :" >> ${OUTFILE}
|
||||
echo "<a href=\"${CI_PROJECT_URL}/-/jobs/${SWITCH_JOB_ID}/artifacts/raw/grafx2-sdl2-${VERSION}-switch.zip\">grafx2-sdl2-${VERSION}-switch.zip</a></li>" >> ${OUTFILE}
|
||||
echo "</ul>" >> ${OUTFILE}
|
||||
echo "<ul>" >> ${OUTFILE}
|
||||
|
||||
|
||||
35
.install-switch-toolchain.sh
Executable file
35
.install-switch-toolchain.sh
Executable file
@ -0,0 +1,35 @@
|
||||
#!/bin/sh
|
||||
|
||||
|
||||
FILE="devkitpro-pacman.deb"
|
||||
SHA256=aa674feee79b00948154ba132ed36266e1ace9fe1974c430764449ea26ac1d7a
|
||||
URL="https://github.com/devkitPro/pacman/releases/download/devkitpro-pacman-1.0.1/$FILE"
|
||||
URLALT="https://github.com/devkitPro/pacman/releases/download/devkitpro-pacman-1.0.1/$FILE"
|
||||
|
||||
SUDO=$(which sudo || echo "")
|
||||
if [ -z "$SUDO" ] ; then
|
||||
echo "no sudo"
|
||||
else
|
||||
echo "sudo: $SUDO"
|
||||
fi
|
||||
|
||||
WGET=$(WGET=`which wget` ; \
|
||||
if [ "$?" = "0" ] && [ -x "$WGET" ] ; \
|
||||
then echo "$WGET -nv" ; \
|
||||
else echo 'curl -R -O -L' ; fi)
|
||||
|
||||
TMP=$(mktemp -d)
|
||||
cd ${TMP}
|
||||
|
||||
$WGET "$URL" || $WGET "$URLALT"
|
||||
if ! echo "$SHA256 $FILE" | shasum -c - ; then
|
||||
echo "FAILED to check authenticity of devikpro dkp-pacman deb package"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cd /
|
||||
$SUDO apt-get install "${TMP}/${FILE}" || exit 1
|
||||
echo "devkitpro pacman installed"
|
||||
yes Y | $SUDO dkp-pacman -S devkitA64 devkit-env libnx switch-tools switch-sdl2 switch-sdl2_ttf switch-sdl2_image switch-zlib switch-bzip2 switch-libpng switch-libjpeg-turbo switch-freetype || exit 1
|
||||
echo "Switch toolchain and library extracted to /opt/devkitpro.."
|
||||
rm -r ${TMP}
|
||||
@ -25,6 +25,9 @@ matrix:
|
||||
env: ''
|
||||
- os: linux
|
||||
env: 'WIN32CROSS=1'
|
||||
- os: linux
|
||||
env: 'SWITCH=1'
|
||||
sudo: required
|
||||
- os: linux
|
||||
env: 'ATARICROSS=1'
|
||||
sudo: required
|
||||
@ -40,6 +43,7 @@ before_install:
|
||||
install:
|
||||
- 'git fetch --unshallow'
|
||||
- 'if [ "$ATARICROSS" = "1" ] ; then sh ./.install-cross-mint.sh ; fi'
|
||||
- 'if [ "$SWITCH" = "1" ] ; then sh ./.install-switch-toolchain.sh ; fi'
|
||||
|
||||
script:
|
||||
- 'cd $TRAVIS_BUILD_DIR'
|
||||
|
||||
@ -121,6 +121,18 @@ To compile a gp2x executable, type
|
||||
make GP2XCROSS=1
|
||||
This will only work on an UNIXsystem (Linux or FreeBSD).
|
||||
|
||||
== switch ==
|
||||
|
||||
To build for Nintendo Switch, you have to install devkitA64 and the following dependencies using dkp-pacman:
|
||||
|
||||
devkit-env libnx switch-tools switch-sdl2 switch-sdl2_ttf switch-sdl2_image switch-zlib
|
||||
switch-bzip2 switch-libpng switch-libjpeg-turbo switch-freetype
|
||||
|
||||
see https://devkitpro.org/wiki/devkitPro_pacman
|
||||
|
||||
To compile a switch executable, type
|
||||
make SWITCH=1
|
||||
|
||||
== Windows ==
|
||||
|
||||
It is also possible to compile from linux, with this command :
|
||||
|
||||
425
misc/switch/gfx2def.ini
Normal file
425
misc/switch/gfx2def.ini
Normal file
@ -0,0 +1,425 @@
|
||||
###### GrafX2 initialization file ###### Fichier d'initialisation de GrafX2 ##
|
||||
# # #
|
||||
# You may modify this file with any # Vous pouvez modifier ce fichier avec #
|
||||
# standard ASCII text editor. # n'importe quel éditeur de texte #
|
||||
# # ASCII standard. #
|
||||
# # #
|
||||
# Comments are preceded by ';' or # Les commentaires sont précédés par #
|
||||
# '#'. # ';' ou '#'. #
|
||||
# # #
|
||||
# Options are not case sensitive and # Les options ne sont pas sensibles à #
|
||||
# spaces are ignored. # la casse et les espaces sont ignorés.#
|
||||
# # #
|
||||
# You must not change the order of # Vous ne devez pas changer l'ordre #
|
||||
# the sections and their options. # des sections et de leurs options. #
|
||||
# You must not delete or put into # Vous ne devez pas effacer ou mettre #
|
||||
# comment any section nor option. # en commentaire une section ou option.#
|
||||
# # #
|
||||
# Each option is preceded by a # Chaque option est précédée par un #
|
||||
# comment which explains its meaning. # commentaire qui explique sa fonction.#
|
||||
# # #
|
||||
##############################################################################
|
||||
|
||||
|
||||
|
||||
[MOUSE] # [SOURIS]
|
||||
|
||||
; The sensitivity of the mouse can | La sensibilité de la souris peut
|
||||
; take values from 1 to 4. The | prendre des valeurs de 1 à 4. Plus
|
||||
; smaller values, the faster. | les valeurs sont petites, plus c'est
|
||||
; This only takes effect in | rapide. Ce paramétrage n'est utilisé
|
||||
; fullscreen modes. | que dans les modes "plein écran".
|
||||
; |
|
||||
X_sensitivity = 1 ; (default 1)
|
||||
Y_sensitivity = 1 ; (default 1)
|
||||
|
||||
; Unused setting, only kept for compatibility.
|
||||
X_correction_factor = 0 ; (default 0)
|
||||
Y_correction_factor = 0 ; (default 0)
|
||||
|
||||
; Aspect of the main cursor (cross) | Aspect du curseur principal (croix)
|
||||
; 1: Solid | 1: Solide
|
||||
; 2: Transparent | 2: Transparent
|
||||
; 3: Thin (solid) | 3: Fin (solide)
|
||||
Cursor_aspect = 1 ; (default 1)
|
||||
|
||||
[MENU] # [MENU]
|
||||
|
||||
; Colors of the menus (the black | Couleurs des menus (la couleur noire
|
||||
; and the white colors cannot be | et la couleur blanche ne peuvent pas
|
||||
; modified). | être modifiées).
|
||||
; Values are in {Red,Green,Blue} | Les valeurs sont dans l'ordre {Rouge,
|
||||
; order and are between 0 and 63. | Vert,Bleu} et vont de 0 à 63.
|
||||
Light_color = 42,42,42 ; (default 42,42,42)
|
||||
Dark_color = 27,27,27 ; (default 27,27,27)
|
||||
;
|
||||
; Light_color = 24,25,30 ; \_ Nightmare
|
||||
; Dark_color = 13,14,19 ; /
|
||||
;
|
||||
; Light_color = 10,45,28 ; \_ Forest
|
||||
; Dark_color = 5,27,12 ; /
|
||||
;
|
||||
; Light_color = 48,41,26 ; \_ Gold
|
||||
; Dark_color = 26,22,15 ; /
|
||||
;
|
||||
; Light_color = 10,40,55 ; \_ Oceanic
|
||||
; Dark_color = 10,20,32 ; /
|
||||
|
||||
; Aspect ratio and size of the | Proportion des menus et de la barre
|
||||
; menus and the tool-bar. | d'outils.
|
||||
; Possible values: | Valeurs possibles:
|
||||
; 0: Do not adapt (pixels are not | 0: Ne pas adapter (les pixels ne sont
|
||||
; stretched) | pas étirés)
|
||||
; 1: Adapt the menus and the tool- | 1: Adapter les menus et la barre
|
||||
; bar according to the resolution| d'outils suivant la résolution
|
||||
; 2: Slightly adapt the ratio of | 2: Adapter légèrement les proportions
|
||||
; the menus and tool-bar | des menus et de la barre d'outils
|
||||
; -1:Do not adapt (like 0) | -1:Ne pas adapter (comme 0)
|
||||
; -2:Stretch by x2 maximum | -2:Etire au double de taille si possible
|
||||
; -3:Stretch by x3 maximum | -3:Etire au triple de taille si possible
|
||||
; -4:Stretch by x4 maximum | -4:Etire au quadruple de taille si
|
||||
; | possible.
|
||||
Menu_ratio = -2 ; (default -2)
|
||||
|
||||
[FILE_SELECTOR] # [SELECTEUR_DE_FICHIERS]
|
||||
|
||||
; Show hidden files and | Afficher les fichiers et répertoires
|
||||
; directories (values are 'yes' or | cachés (les valeurs sont 'yes' ou
|
||||
; 'no'). | 'no').
|
||||
Show_hidden_files = no ; (default 'no')
|
||||
Show_hidden_directories = no ; (default 'no')
|
||||
|
||||
; Delay before displaying a preview | Délai avant d'afficher une preview
|
||||
; in file-selectors (in 18.2th of | dans les sélecteurs de fichiers (en
|
||||
; second). Possible values range | 18.2èmes de seconde) Les valeurs
|
||||
; from 1 to 256. | possibles vont de 1 à 256.
|
||||
Preview_delay = 8 ; (default 8)
|
||||
|
||||
; Maximize the preview of the | Maximiser la preview des images pour
|
||||
; pictures so that it is as big as | qu'elle soit aussi grande que
|
||||
; possible. If you're not in the | possible.
|
||||
; same resolution as the picture's | Si vous n'êtes pas dans la même réso-
|
||||
; one, it can try to correct the | lution que celle de l'image, cela peut
|
||||
; aspect ratio, but if the picture | essayer de corriger les proportions,
|
||||
; does not fill the whole screen, | mais si l'image ne prend pas tout
|
||||
; it can be worse. | l'écran, cela peut être pire.
|
||||
Maximize_preview = no ; (default 'no')
|
||||
|
||||
; This option is used to place the | Cette option est utilisée pour placer
|
||||
; selection bar on a filename by | la barre de sélection sur un nom de
|
||||
; typing its first letters. | fichier en tapant ses 1ères lettres.
|
||||
; For example, if you want to find | Par exemple, si vous voulez trouver le
|
||||
; the "PICTURE.PKM" in a directory | fichier "PICTURE.PKM" dans un réper-
|
||||
; that also contains "PALETTE.PAL", | toire contenant également le fichier
|
||||
; you'll just have to type P and I. | "PALETTE.PAL", vous n'aurez qu'à taper
|
||||
; The different values of "FFF" | P puis I.
|
||||
; indicate if you want to find the | Les different valeurs de "FFF"
|
||||
; name in both files and directories| indiquent si vous voulez trouvez le nom
|
||||
; or just in only one of these: | dans les fichiers ET les répertoires ou
|
||||
; 0: files and directories | simplement dans l'un OU l'autre.
|
||||
; 1: files only | 0: fichiers et répertoires
|
||||
; 2: directories only | 1: fichiers seulement
|
||||
; | 2: répertoires seulement
|
||||
Find_file_fast = 0 ; (default 0)
|
||||
|
||||
|
||||
[LOADING] # [CHARGEMENT]
|
||||
|
||||
; Automatically set the resolution | Passer automatiquement dans la bonne
|
||||
; when loading a picture. | résolution lors du chargement d'une
|
||||
; You should set this value to | image.
|
||||
; 'yes' after disabling the video | Vous devriez définir cette option à
|
||||
; modes that are not supported by | 'yes' après avoir inhibé les modes
|
||||
; your video card or monitor. | vidéo qui ne sont pas supportés par
|
||||
; | votre matériel.
|
||||
Auto_set_resolution = no ; (default 'no')
|
||||
|
||||
; If the variable above is set to | Si la variable ci-dessus est à 'yes',
|
||||
; 'yes', this one tells if you want | celle-ci indique si vous voulez
|
||||
; to set the resolution according | définir la résolution suivant:
|
||||
; to: | 1: les dimensions de "l'écran
|
||||
; 1: the internal "original screen" | d'origine" internes à l'image
|
||||
; dimensions of the picture | 2: les véritables dimensions de
|
||||
; 2: the actual dimensions of the | l'image
|
||||
; picture |
|
||||
Set_resolution_according_to = 1 ; (default 1)
|
||||
|
||||
; If you load a picture with a | Si vous chargez une image ayant une
|
||||
; palette of less than 256 colors, | palette de moins de 256 couleurs,
|
||||
; this option defines if you want | cette option indique si vous souhaitez
|
||||
; to clear the palette or to keep | effacer la palette ou bien conserver
|
||||
; the colors of the previous | les couleurs de l'image précédente qui
|
||||
; picture that are over the number | se situent au-delà du nombre de la
|
||||
; of colors of the new picture. | nouvelle image.
|
||||
; For example, if you load a | Par exemple, si vous chargez une image
|
||||
; 32-color picture, the colors 32 | de 32 couleurs, les couleurs 32 à 255
|
||||
; to 255 will be set to black if | seront passées en noir si cette option
|
||||
; this option is set to 'yes', or | est à 'yes', ou bien elles resteront
|
||||
; they will be kept unchanged if | inchangées si elle est à 'no'.
|
||||
; this option is set to 'no'. |
|
||||
Clear_palette = yes ; (default 'yes')
|
||||
|
||||
|
||||
[MISCELLANEOUS] # [DIVERS]
|
||||
|
||||
; Draw the limits of the picture. | Afficher les limites de l'image
|
||||
Draw_limits = yes ; (default 'yes')
|
||||
|
||||
; Adjust the brush grabbing in | Ajuster la capture de brosse en mode
|
||||
; "grid" mode. | "grille".
|
||||
Adjust_brush_pick = yes ; (default 'yes')
|
||||
|
||||
; Coordinates: | Coordonnées:
|
||||
; 1: Relative | 1: Relatives
|
||||
; 2: Absolute | 2: Absolues
|
||||
Coordinates = 1 ; (default 1)
|
||||
|
||||
; Create a backup file when saving. | Créer un fichier backup lors des
|
||||
; | sauvegardes.
|
||||
Backup = no ; (default 'no')
|
||||
|
||||
; Number of pages stored in memory | Nombre de pages stockées en mémoire
|
||||
; for "undoing". | destinées à annuler les dernières
|
||||
; Values are between 1 and 99. | modifications. Valeurs entre 1 et 99.
|
||||
Undo_pages = 20 ; (default 20)
|
||||
|
||||
; Speed of the scroll-bars (in VBLs | Vitesse des barre de défilement (en
|
||||
; waited) while clicking with the | VBLs attendus) lorsque l'un des
|
||||
; left or right button of the mouse.| boutons de la souris est enfoncé.
|
||||
; Values can be between 1 and 255. | Les valeurs sont comprises entre 1 et
|
||||
; The bigger values, the slower. | 255. Plus elles sont grandes, plus
|
||||
; | c'est lent.
|
||||
Gauges_scrolling_speed_Left = 10 ; (default 10)
|
||||
Gauges_scrolling_speed_Right = 3 ; (default 3)
|
||||
|
||||
; Automatically save the configu- | Enregistre automatiquement la configu-
|
||||
; ration when exiting the program. | ration lorsqu'on quitte le programme.
|
||||
Auto_save = yes ; (default 'yes')
|
||||
|
||||
; Maximum number of vertices used | Nombre maximum de vertex utilisés dans
|
||||
; in filled polygons and polyforms, | les polygônes et polyformes pleins, et
|
||||
; and lasso. Possible values range | le lasso. Les valeurs possibles vont
|
||||
; from 2 to 16384. | de 2 à 16384.
|
||||
; Each vertex takes 4 bytes. | Chaque vertex prend 4 octets.
|
||||
Vertices_per_polygon = 1024 ; (default 1024)
|
||||
|
||||
; Automatically zoom into the | Zoomer automatiquement la zone pointée
|
||||
; pointed area when you press the | par la souris lorsque vous appuyez sur
|
||||
; short-key of the Magnifier button | la touche de raccourci de la loupe.
|
||||
; while being above the picture. |
|
||||
Fast_zoom = yes ; (default 'yes')
|
||||
|
||||
; Separate the colors in the tool- | Séparer les couleurs dans la barre
|
||||
; bar by a black squaring. | d'outils par un quadrillage noir.
|
||||
Separate_colors = no ; (default 'no')
|
||||
|
||||
; Initial value of the feedback for | Valeur initiale du "feedback" pour les
|
||||
; the drawing modes (cf. docs). | modes de dessin (cf. docs).
|
||||
FX_feedback = yes ; (default 'yes')
|
||||
|
||||
; When you reduce the palette or | Si vous réduisez la palette ou "zappez"
|
||||
; "zap" some colors out of it, it is| quelques couleurs, il est possible
|
||||
; possible that there are not enough| qu'il ne reste pas assez de couleurs
|
||||
; colors left to draw the menus. | pour afficher les menus. Mettre cette
|
||||
; Switching the following variable | variable à 'yes' ramènera automatiquent
|
||||
; on will bring back the colors of | les couleurs du menu s'il reste moins
|
||||
; the menu if there are less than 4 | de 4 couleurs après une "réduction" ou
|
||||
; colors left after "reducing" or | un "zapping".
|
||||
; "zapping". |
|
||||
Safety_colors = yes ; (default 'yes')
|
||||
|
||||
; Display a message at startup | Afficher un message au démarrage
|
||||
; telling the version number of the | indiquant le numéro de version du
|
||||
; program. | programme.
|
||||
Opening_message = yes ; (default 'yes')
|
||||
|
||||
; Take the Stencil into account when| Prendre le Stencil en compte lorsqu'on
|
||||
; clearing the image. | efface l'image.
|
||||
Clear_with_stencil = yes ; (default 'yes')
|
||||
|
||||
; Directly set the discontinuous | Passer automatiquement en mode de
|
||||
; freehand drawing mode after brush | dessin discontinu après la prise d'une
|
||||
; grabbing. | brosse.
|
||||
Auto_discontinuous = no ; (default 'no')
|
||||
|
||||
; Save the screen dimensions in GIF | Sauver les dimensions de l'écran dans
|
||||
; files. If you want to read these | les fichiers GIF. Si vous voulez lire
|
||||
; files with Photoshop or Alchemy, | ces fichiers avec Photoshop ou Alchemy,
|
||||
; and maybe some other programs, you| et peut-être d'autres programmes, vous
|
||||
; must set this option to 'no'. | devez mettre cette option à 'no'.
|
||||
Save_screen_size_in_GIF = no ; (default 'no')
|
||||
|
||||
; Automatically count the number of | Compter automatiquement le nombre de
|
||||
; different colors used when opening| couleurs différentes utilisées lors de
|
||||
; the palette editor window. (Set it| d'ouverture de la fenêtre d'édition de
|
||||
; to 'no' if you have a slow PC or | la palette. (Mettez-le à 'no' si vous
|
||||
; if you edit huge pictures) | avez un PC lent ou bien si vous éditez
|
||||
; | d'énormes images).
|
||||
Auto_nb_colors_used = yes ; (default 'yes')
|
||||
|
||||
; Default video mode at startup | Mode vidéo par défaut au
|
||||
; (see the list by running the | démarrage (voir la liste en lançant
|
||||
; program with argument "/?". | le programme avec l'option "/?".
|
||||
Default_video_mode = window ; (default 'window')
|
||||
|
||||
; Window dimensions. The program | Dimensions de la fenêtre en mode
|
||||
; remembers the last window size. | fenêtré.
|
||||
Default_window_size = 1920,1080 ; (default '640,480')
|
||||
|
||||
; This setting allows you merge successive mouse movements into a single
|
||||
; mouse movement. You should only use it if you are using a mouse which
|
||||
; reports at 200Hz or more, and you experience lag when using discontinuous
|
||||
; hand-drawing with large brushes (this tool tries to paste the brush and
|
||||
; update the screen on each new mouse position) In this case, set this to 2
|
||||
; or more, to ignore some intermediate mouse reports when a more recent one
|
||||
; is present.
|
||||
; Note that with a value superior to 1, you lose precision with continuous
|
||||
; hand-drawing, as intermediate mouse positions are skipped.
|
||||
Merge_movement = 0 ; (default 0)
|
||||
|
||||
; Number of columns in the palette of the menu bar. Can be any number from
|
||||
; 1 to 256. If there is not enough room, the program will display less
|
||||
; columns. But your preference will be kept, and as soon as there is more
|
||||
; space in the screen, more columns will be shown.
|
||||
;
|
||||
Palette_Cells_X = 16; (Default 16)
|
||||
|
||||
; Number of lines in the palette of the menu. Can be any number from
|
||||
; 1 to 16. The menu can always display the number of lines you request.
|
||||
;
|
||||
Palette_Cells_Y = 4; (Default 4)
|
||||
|
||||
; Bookmarked directories. Leave the directory blank for unused ones.
|
||||
;
|
||||
Bookmark_label =
|
||||
Bookmark_directory =
|
||||
|
||||
Bookmark_label =
|
||||
Bookmark_directory =
|
||||
|
||||
Bookmark_label =
|
||||
Bookmark_directory =
|
||||
|
||||
Bookmark_label =
|
||||
Bookmark_directory =
|
||||
|
||||
; In the classic layout, the palette in the menu has colors from left to
|
||||
; right. If you prefer the colors ordered top to bottom, set this option
|
||||
; to YES.
|
||||
;
|
||||
Palette_vertical = YES; (Default YES)
|
||||
|
||||
; The program remembers the last window position, if the
|
||||
; OS isn't able to do it by itself. (ie: Windows)
|
||||
Window_position = 9999,9999; (Default 9999,9999 which means: NA)
|
||||
|
||||
; This is the time (in milliseconds) between two clicks for Grafx2 to
|
||||
; recognize a double-click. Double-click is used mostly in the palette
|
||||
; area of the menu: double-click a color to open the palette.
|
||||
Double_click_speed = 500; (Default 500)
|
||||
|
||||
; When you press two digit keys in rapid succession (ex: 3 8), Grafx2
|
||||
; sets transparency to 38% (instead of 30% then 80%). This setting
|
||||
; allows you to set the maximum delay between two keypresses for
|
||||
; GrafX2 to recognize them as a combo.
|
||||
Double_key_speed = 500; (Default 500)
|
||||
|
||||
; Name of the skinfile you want to | Nom du fichier skin que vous voulez
|
||||
; use. | utiliser.
|
||||
; Default : (empty to let the program choose)
|
||||
Skin_file =
|
||||
|
||||
; Name of the font file (8x8) you | Nom du fichier police de caractère
|
||||
; want to use. | 8x8 utilisée dans les menus.
|
||||
; Default : (empty to let the program choose)
|
||||
Font_file =
|
||||
|
||||
; This determines the color value for the grid. Each pixel of
|
||||
; the grid will be displayed by XOR-ing the original color with
|
||||
; the value of this setting.
|
||||
; For example, if you always paint 16-color images, you can set it
|
||||
; to 16 so the color of the grid are 16 for 0, 17 for 1, etc.
|
||||
; Then you can set colors 16-31 as lighter/darker variants
|
||||
; of your original palette, resulting in a pretty grid !
|
||||
;
|
||||
; Valid values are 1 to 255.
|
||||
Grid_XOR_color = 255; (Default 255)
|
||||
|
||||
; This records the last pixel ratio used, to restore it on start.
|
||||
; Valid values are from 0 to 7 for: Simple, Wide, Tall, Double,
|
||||
; Triple, Wide2, Tall2, Quadruple.
|
||||
;
|
||||
Pixel_ratio = 8; (Default 0)
|
||||
|
||||
; This records the visibility of toolbars, to restore them on start.
|
||||
; It's a bitfield, where 1=Status, 2=Layers/Animation, 4=Tools
|
||||
;
|
||||
Menubars_visible = 255; (Default 255)
|
||||
|
||||
; This enables a mode where right mouse buttons acts as
|
||||
; a color picker, with most tools.
|
||||
;
|
||||
Right_click_colorpick = NO; (Default NO)
|
||||
|
||||
; When this mode is active, scrolling the view (and the magnifier view)
|
||||
; affects both the main image and the spare page - as long as they have
|
||||
; the same dimensions.
|
||||
;
|
||||
Sync_views = YES; (Default YES)
|
||||
|
||||
; This setting determines which key inverts the mouse buttons
|
||||
; when it's held : A left click is then interpreted as a right-click.
|
||||
; It's especially useful for one-button controllers,
|
||||
; such as touchscreens and tablets.
|
||||
; Possible values are 0 (none), 1 (control), 2 (alt)
|
||||
;
|
||||
Swap_buttons = 1; (Default 1)
|
||||
|
||||
; Last directory browsed with the script selector.
|
||||
; Leave blank to initially start in (data directory)/scripts
|
||||
;
|
||||
Scripts_directory =
|
||||
|
||||
; When this setting is disabled, and you create a shortcut with a key that
|
||||
; is already associated to another shortcut, Grafx2 will unset the latter.
|
||||
; If you enable this mode, Grafx2 will not make such check, so you can design
|
||||
; shortcuts that trigger several actions at once.
|
||||
;
|
||||
Allow_multi_shortcuts = no; (Default no)
|
||||
|
||||
; Determines if the Tilemap tool should identify tiles that are mirrored
|
||||
; version of other tiles, on the X axis.
|
||||
;
|
||||
Tilemap_detect_mirrored_x = no; (Default no)
|
||||
|
||||
; Determines if the Tilemap tool should identify tiles that are mirrored
|
||||
; version of other tiles, on the Y axis.
|
||||
;
|
||||
Tilemap_detect_mirrored_y = no; (Default no)
|
||||
|
||||
; Determines if the Tilemap tool should identify tiles that are reversed
|
||||
; versions of other tiles (180°).
|
||||
;
|
||||
Tilemap_detect_mirrored_xy = no; (Default no)
|
||||
|
||||
; Determines if the Tilemap tool should show the number of distinct tiles
|
||||
; at the end of analysis.
|
||||
;
|
||||
Tilemap_count = no; (Default no)
|
||||
|
||||
; Enables the virtual keyboard when the user enters a textbox.
|
||||
;
|
||||
; 0=Auto (guess), 1=ON, 2=OFF
|
||||
Use_virtual_keyboard = 0; (Default 0)
|
||||
|
||||
; Indicates if new images should by default use layers. The alternative
|
||||
; is animation frames.
|
||||
;
|
||||
Default_mode_layers = yes; (Default no)
|
||||
|
||||
; Set the gamma value used to translate palettes from Thomson MO/TO
|
||||
; pictures. 10 is 1.0, 22 is 2.2 etc.
|
||||
;
|
||||
MOTO_gamma = 28; (Default 28)
|
||||
|
||||
; end of configuration
|
||||
BIN
misc/switch/icon.jpg
Normal file
BIN
misc/switch/icon.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 32 KiB |
56
src/Makefile
56
src/Makefile
@ -568,6 +568,27 @@ endif
|
||||
STRIP = mipsel-linux-strip
|
||||
JOYCOPT = -DUSE_JOYSTICK
|
||||
else
|
||||
ifdef SWITCH
|
||||
#cross compile an exec for the switch
|
||||
ifeq ($(strip $(DEVKITPRO)),)
|
||||
$(error "Please set DEVKITPRO in your environment. export DEVKITPRO=<path to>/devkitpro")
|
||||
endif
|
||||
include $(DEVKITPRO)/libnx/switch_rules
|
||||
PLATFORM = switch
|
||||
API = sdl2
|
||||
NOLUA = 1
|
||||
OBJDIR = ../obj/switch
|
||||
BIN = ../bin/grafx2
|
||||
CC = $(DEVKITPRO)/devkitA64/bin/aarch64-none-elf-gcc
|
||||
ARCH = -g -march=armv8-a -mtune=cortex-a57 -fPIE -std=c99 -ffast-math -mcpu=cortex-a57+crc+fp+simd
|
||||
COPT = `$(DEVKITPRO)/portlibs/switch/bin/sdl2-config --cflags` `$(DEVKITPRO)/portlibs/switch/bin/freetype-config --cflags`
|
||||
COPT += $(ARCH) -Wall -ffunction-sections -O$(OPTIM)
|
||||
COPT += -D__SWITCH__ -D_XOPEN_SOURCE=500 -DUSE_JOYSTICK -D__no_tifflib__
|
||||
LOPT = -specs=$(DEVKITPRO)/libnx/switch.specs -g $(ARCH) -Wl,-Map,$(OBJDIR)/$*.map
|
||||
LOPT += -lSDL2_image `$(DEVKITPRO)/portlibs/switch/bin/sdl2-config --libs`
|
||||
LOPT += -lSDL2_ttf `$(DEVKITPRO)/portlibs/switch/bin/freetype-config --libs`
|
||||
LOPT += -ljpeg -lstdc++ -lnx
|
||||
else
|
||||
ifdef AROS32CROSS
|
||||
#cross compile an AROS 32 bit executable
|
||||
BIN = ../GrafX2
|
||||
@ -673,6 +694,7 @@ endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
endif
|
||||
@ -924,6 +946,13 @@ else
|
||||
ifeq ($(PLATFORM),FreeMiNT)
|
||||
$(STACK) -S 128k $(BIN)
|
||||
$(FIX_FLAGS) -S $(BIN)
|
||||
else
|
||||
ifeq ($(SWITCH), 1)
|
||||
@nacptool --create "grafX2" "grafX2 team / romain337 (nxbuild)" "$(VERSIONTAG)" $(BIN).nacp
|
||||
@echo built ... $(BIN).nacp
|
||||
@elf2nro $(BIN) $(BIN).nro $(BIN).nacp --icon=../misc/switch/icon.jpg --nacp=$(BIN).nacp
|
||||
@echo built ... $(BIN).nro
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
@ -937,6 +966,13 @@ else
|
||||
ifeq ($(PLATFORM),FreeMiNT)
|
||||
$(STACK) -S 128k $(BIN)
|
||||
$(FIX_FLAGS) -S $(BIN)
|
||||
else
|
||||
ifeq ($(SWITCH), 1)
|
||||
@nacptool --create "grafX2" "grafX2 team / romain337 (nxbuild)" "$(VERSIONTAG)" $(BIN).nacp
|
||||
@echo built ... $(BIN).nacp
|
||||
@elf2nro $(BIN) $(BIN).nro $(BIN).nacp --icon=../misc/switch/icon.jpg --nacp=$(BIN).nacp
|
||||
@echo built ... $(BIN).nro
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
@ -944,6 +980,12 @@ endif
|
||||
# Make release will strip the executable to make it smaller but non-debugable
|
||||
release : $(BIN)
|
||||
$(STRIP) $(BIN)
|
||||
ifeq ($(SWITCH), 1)
|
||||
@nacptool --create "grafX2" "grafX2 team / romain337 (nxbuild)" "$(VERSIONTAG)" $(BIN).nacp
|
||||
@echo built ... $(BIN).nacp
|
||||
@elf2nro $(BIN) $(BIN).nro $(BIN).nacp --icon=../misc/switch/icon.jpg --nacp=$(BIN).nacp
|
||||
@echo built ... $(BIN).nro
|
||||
endif
|
||||
|
||||
# .tgz archive with source only files
|
||||
SRCARCH = ../src-$(VERSIONTAG).tgz
|
||||
@ -995,6 +1037,19 @@ ifdef ATARICROSS
|
||||
GRAFX2/gfx2def.ini GRAFX2/DOC/ GRAFX2/SCRIPTS/
|
||||
$(AT)$(RM) -r $(TMP)
|
||||
else
|
||||
ifdef SWITCH
|
||||
$(eval TMP := $(shell mktemp -d))
|
||||
$(AT)$(MKDIR) $(TMP)/switch/grafx2
|
||||
$(AT)$(CP) $(BIN).nro $(TMP)/switch/grafx2
|
||||
$(AT)$(CP) -R ../share/grafx2/fonts $(TMP)/switch/grafx2
|
||||
$(AT)$(CP) -R ../share/grafx2/skins $(TMP)/switch/grafx2
|
||||
$(AT)$(CP) ../misc/switch/gfx2def.ini $(TMP)/switch/grafx2
|
||||
cd .. && $(ZIP) $(ZIPOPT) "grafx2-$(API)-$(VERSIONTAG)$(TTFLABEL)-$(PLATFORM).$(ZIP)" \
|
||||
$(DOC_FILES:../%=%) $(DOC_FILESRTF:../%=%) $(SRCARCH:../%=%)
|
||||
cd $(TMP) && \
|
||||
$(ZIP) $(ZIPOPT) "$(CURDIR)/../grafx2-$(API)-$(VERSIONTAG)$(TTFLABEL)-$(PLATFORM).$(ZIP)" -r ./*
|
||||
$(AT)$(RM) -r $(TMP)
|
||||
else
|
||||
ifdef GP2XCROSS
|
||||
$(eval TMP := $(shell mktemp -d))
|
||||
$(AT)$(MKDIR) $(TMP)/data
|
||||
@ -1026,6 +1081,7 @@ ifeq ($(PLATFORM),Darwin)
|
||||
$(DOC_FILES:../%=%) $(DOC_FILESRTF:../%=%) $(SRCARCH:../%=%)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
$(AT)$(TAR) czf "../grafx2-$(VERSIONTAG)-src.tgz" $(TARTRANSFORM) \
|
||||
../src/*.c ../src/*.cpp ../src/*.h ../src/Makefile \
|
||||
|
||||
@ -53,7 +53,7 @@
|
||||
#include "pxsimple.h"
|
||||
#include "oldies.h"
|
||||
|
||||
#if defined(__GP2X__) || defined(__WIZ__) || defined(__CAANOO__)
|
||||
#if defined(__GP2X__) || defined(__WIZ__) || defined(__CAANOO__) || defined(__SWITCH__)
|
||||
// We don't want to underline the keyboard shortcuts as there is no keyboard
|
||||
#define NO_KEYBOARD
|
||||
#endif
|
||||
|
||||
@ -571,7 +571,7 @@ void Read_list_of_files(T_Fileselector *list, byte selected_format)
|
||||
// Now here's OS-specific code to determine if "parent directory" entry
|
||||
// should appear.
|
||||
|
||||
#if defined(__MORPHOS__) || defined(__AROS__) || defined (__amigaos4__) || defined(__amigaos__)
|
||||
#if defined(__MORPHOS__) || defined(__AROS__) || defined (__amigaos4__) || defined(__amigaos__) || defined(__SWITCH__)
|
||||
// Amiga systems: always
|
||||
Add_element_to_list(list, PARENT_DIR, Format_filename(PARENT_DIR,19,1), FSOBJECT_DIR, ICON_NONE);
|
||||
list->Nb_directories ++;
|
||||
|
||||
@ -977,7 +977,9 @@ void Button_Stats(int btn)
|
||||
#else
|
||||
#define NODISKSPACESUPPORT
|
||||
// Free disk space is only for shows. Other platforms can display 0.
|
||||
#if !defined(__SWITCH__)
|
||||
#warning "Missing code for your platform !!! Check and correct please :)"
|
||||
#endif
|
||||
mem_size=0;
|
||||
#endif
|
||||
|
||||
|
||||
@ -156,6 +156,15 @@ byte Pan_shortcut_pressed;
|
||||
short Joybutton_left_click= JOY_BUTTON_A;
|
||||
short Joybutton_right_click=JOY_BUTTON_B;
|
||||
|
||||
#elif defined(__SWITCH__)
|
||||
|
||||
#define JOYSTICK_THRESHOLD (1024)
|
||||
short Joybutton_shift= JOY_BUTTON_L;
|
||||
short Joybutton_control= JOY_BUTTON_R;
|
||||
short Joybutton_alt= JOY_BUTTON_Y;
|
||||
short Joybutton_left_click= JOY_BUTTON_A;
|
||||
short Joybutton_right_click=JOY_BUTTON_B;
|
||||
|
||||
#else // Default : Any joystick on a computer platform
|
||||
///
|
||||
/// This is the sensitivity threshold for the directional
|
||||
|
||||
4
src/io.c
4
src/io.c
@ -462,7 +462,7 @@ int Directory_exists(const char * directory)
|
||||
/// Check if a file or directory is hidden.
|
||||
int File_is_hidden(const char *fname, const char *full_name)
|
||||
{
|
||||
#if defined(__amigaos4__) || defined(__AROS__) || defined(__MORPHOS__) || defined(__amigaos__) || defined(__MINT__)
|
||||
#if defined(__amigaos4__) || defined(__AROS__) || defined(__MORPHOS__) || defined(__amigaos__) || defined(__MINT__)|| defined(__SWITCH__)
|
||||
// False (unable to determine, or irrelevent for platform)
|
||||
(void)fname;//unused
|
||||
(void)full_name;//unused
|
||||
@ -772,6 +772,8 @@ byte Create_lock_file(const char *file_directory)
|
||||
{
|
||||
#if defined (__amigaos__)||(__AROS__)||(__ANDROID__)
|
||||
#warning "Missing code for your platform, please check and correct!"
|
||||
#elif defined(__SWITCH__)
|
||||
// The switch can only run one application at a time, so we don't do anything special here
|
||||
#else
|
||||
char lock_filename[MAX_PATH_CHARACTERS];
|
||||
|
||||
|
||||
@ -570,6 +570,20 @@
|
||||
#define JOY_BUTTON_JOY (10)
|
||||
|
||||
#define KEY_ESC (KEY_JOYBUTTON+JOY_BUTTON_HOME)
|
||||
#elif defined (__SWITCH__)
|
||||
/// Button definitions for the Switch
|
||||
#define JOY_BUTTON_UP (13)
|
||||
#define JOY_BUTTON_DOWN (15)
|
||||
#define JOY_BUTTON_LEFT (12)
|
||||
#define JOY_BUTTON_RIGHT (14)
|
||||
#define JOY_BUTTON_A (0)
|
||||
#define JOY_BUTTON_X (2)
|
||||
#define JOY_BUTTON_B (1)
|
||||
#define JOY_BUTTON_Y (3)
|
||||
#define JOY_BUTTON_L (6)
|
||||
#define JOY_BUTTON_R (7)
|
||||
|
||||
#define KEY_ESC (KEY_JOYBUTTON+JOY_BUTTON_X)
|
||||
#else
|
||||
///
|
||||
/// This is the key identifier for ESC. When hard-coding keyboard shortcuts
|
||||
|
||||
@ -92,6 +92,8 @@
|
||||
|
||||
#if defined(__macosx__)
|
||||
#include <machine/endian.h>
|
||||
#elif defined(__SWITCH__)
|
||||
#include <machine/endian.h>
|
||||
#elif defined(__FreeBSD__)
|
||||
#include <sys/endian.h>
|
||||
#elif !defined(WIN32)
|
||||
|
||||
@ -717,7 +717,7 @@ void Zoom_a_line(byte* original_line, byte* zoomed_line,
|
||||
|
||||
#if defined(WIN32)
|
||||
#include <windows.h>
|
||||
#elif defined(__macosx__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
|
||||
#elif defined(__macosx__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__SWITCH__)
|
||||
#if defined(__OpenBSD__)
|
||||
#include <sys/param.h>
|
||||
#endif
|
||||
@ -785,7 +785,13 @@ unsigned long Memory_free(void)
|
||||
return info.freeram*info.mem_unit;
|
||||
#else
|
||||
// AvailMem is misleading on os4 (os4 caches stuff in memory that you can still allocate)
|
||||
#if defined(__SWITCH__)
|
||||
// There is some way to get memory information on switch (see include switch/kernel/svc.h svcGetInfo svcGetSystemInfo)
|
||||
// but the usage is a bit confusing for the first and the later need privilege to be used.
|
||||
// If you come here with a solution, you'r welcome. For now we just return the default value.
|
||||
#elif
|
||||
#warning "There is missing code there for your platform ! please check and correct :)"
|
||||
#endif
|
||||
return 10*1024*1024;
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -43,6 +43,8 @@
|
||||
#include <sys/types.h>
|
||||
#elif defined(__SKYOS__)||defined(__ANDROID__)
|
||||
#warning "Your platform is missing some specific code here ! please check and fix :)"
|
||||
#elif defined(__SWITCH__)
|
||||
// Nothing much to do
|
||||
#else
|
||||
#define MOUNTED_GETMNTENT1
|
||||
#endif
|
||||
@ -279,6 +281,10 @@ read_file_system_list (bool need_fs_type)
|
||||
struct mount_entry **mtail = &mount_list;
|
||||
(void)need_fs_type; // may be unused
|
||||
|
||||
#if defined(__SWITCH__)
|
||||
(void)me; // unused on switch
|
||||
#endif
|
||||
|
||||
#ifdef MOUNTED_LISTMNTENT
|
||||
{
|
||||
struct tabmntent *mntlist, *p;
|
||||
|
||||
@ -74,7 +74,7 @@ const char * get_paste_board(void);
|
||||
#endif
|
||||
|
||||
// Virtual keyboard is ON by default on these platforms:
|
||||
#if defined(__GP2X__) || defined(__WIZ__) || defined(__CAANOO__) || defined(GCWZERO)
|
||||
#if defined(__GP2X__) || defined(__WIZ__) || defined(__CAANOO__) || defined(GCWZERO) || defined(__SWITCH__)
|
||||
#define VIRT_KEY_DEFAULT_ON 1
|
||||
#else
|
||||
#define VIRT_KEY_DEFAULT_ON 0
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
#include <limits.h>
|
||||
#endif
|
||||
|
||||
#if defined(__AROS__) || defined(__BEOS__) || defined(__MORPHOS__) || defined(__GP2X__) || defined(__WIZ__) || defined(__CAANOO__) || defined(__amigaos__)
|
||||
#if defined(__AROS__) || defined(__BEOS__) || defined(__MORPHOS__) || defined(__GP2X__) || defined(__WIZ__) || defined(__CAANOO__) || defined(__amigaos__) || defined(__SWITCH__)
|
||||
// These platforms don't have realpath().
|
||||
// We use the following implementation, found in:
|
||||
// http://amiga.sourceforge.net/amigadevhelp/FUNCTIONS/GeekGadgets/realpath/ex02_realpath.c
|
||||
@ -65,7 +65,7 @@
|
||||
|
||||
if (chdir(path)) {
|
||||
if (errno == ENOTDIR) {
|
||||
#if defined(WIN32) || defined(__MORPHOS__) || defined(__amigaos__)
|
||||
#if defined(WIN32) || defined(__MORPHOS__) || defined(__amigaos__) || defined(__SWITCH__)
|
||||
// No symbolic links and no readlink()
|
||||
l = -1;
|
||||
#else
|
||||
|
||||
@ -60,6 +60,8 @@
|
||||
#define UPDATE_METHOD UPDATE_METHOD_FULL_PAGE
|
||||
#elif defined(__ANDROID__)
|
||||
#define UPDATE_METHOD UPDATE_METHOD_FULL_PAGE
|
||||
#elif defined(__SWITCH__)
|
||||
#define UPDATE_METHOD UPDATE_METHOD_CUMULATED
|
||||
#else
|
||||
#define UPDATE_METHOD UPDATE_METHOD_CUMULATED
|
||||
#endif
|
||||
|
||||
@ -140,6 +140,9 @@ void Set_data_directory(const char * program_dir, char * data_dir)
|
||||
//on tos, the same directory is used for everything
|
||||
#elif defined (__MINT__)
|
||||
strcpy(data_dir, program_dir);
|
||||
//on switch, we store everything in the SD card in /switch/grafx2
|
||||
#elif defined(__SWITCH__)
|
||||
strcpy(data_dir,"/switch/grafx2/");
|
||||
// Haiku provides us with an API to find it.
|
||||
#elif defined(__HAIKU__)
|
||||
if (find_path(Set_data_directory, B_FIND_PATH_DATA_DIRECTORY, "grafx2/", data_dir, PATH_MAX) != B_OK)
|
||||
@ -180,6 +183,9 @@ void Set_config_directory(const char * program_dir, char * config_dir)
|
||||
// For TOS we store everything in the program dir
|
||||
#elif defined(__MINT__)
|
||||
strcpy(config_dir,program_dir);
|
||||
//on switch, we store everything in the SD card in /switch/grafx2
|
||||
#elif defined(__SWITCH__)
|
||||
strcpy(config_dir,"/switch/grafx2/");
|
||||
// For all other platforms, there is some kind of settigns dir to store this.
|
||||
#else
|
||||
char filename[MAX_PATH_CHARACTERS];
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user