Entwicklungsumgebung


Einmal kurz eine Übersicht wie sich die Entwicklung gestaltet, vielleicht  interessiert dass die ein oder andere Entwickler:in :)

Grundsätzlich arbeite ich seit Anfang des Jahres auf einem niegel-nagel-neuen PC:

Hardware

  • Ryzen 5 9600X
  • 32 GB RAM
  • Geforce 4070 Super
  • 2 x 1 TB NVMe SSD
  • 32"4K HDR Monitor

reicht gerade so für SNES Entwicklung :rofl:

Das Ganze läuft nun auch komplett unter Linux, Windows habe ich erstmal den Rücken gekehrt.

Hier verwende ich EndevourOS (https://endeavouros.com/), basierend auf Arch Linux und ich kann sagen es funktioniert bisher alles problemlos (auch Windows Software per Wine). Die größte Hürde war das Xbox Wireless Gamepad aber das ist inzwischen auch behoben.

Dann gehts auch schon ans Eingemachte:

Programmierung

Ich programmiere den kompletten SNES Code in Assembler. Hier verwende ich 64tass (https://sourceforge.net/projects/tass64/) als AssemblerEin schnöder Texteditor reicht mir nicht, als IDE verwende ich Visual Studio Code (https://code.visualstudio.com/) mit rudimentärem Syntax Highlighting und custom Tasks um direkt in der IDE zu assemblieren und im Emulator starten zu können.

Alle weiteren Tools (nintentool und gametool, mehr dazu weiter untendie ich verwende entwickle ich in C/C++ mit Visual Studio bzw. jetzt mit gcc und CLion als IDE. (CLion kostet Geld aber ich komme damit super zurecht).

Test und Debugging

Zum Testen verwende ich den Emulator mesen2 (https://github.com/SourMesen/Mesen2), zum Debuggen auch.

Läuft alles im Emulator teste ich normalerweise noch auf meinem Analogue SuperNT mit einem SD2SNES aka FXPakPro Modul. Ab und an schließe ich dann aber auch ein echtes SNES an.

Grafik

Alle Arbeiten an Hintergründen, Tilemaps, Tiles, Sprites und Animationen erledige ich mit ProMotionNG (https://www.cosmigo.com/). Kostet wieder Geld, ist meiner Meinung nach aber jeden Cent wert. Es hat viele gute Funktionen und läßt sich gut bedienen. Support ist auch super.

Die Daten/Grafiken werden in eines von mehreren konfigurierbaren Formaten exportiert. Der Vorteil ist nun dass man einen externen Task nach dem Export starten kann. Hier kommt mein nintentool zum Einsatz. Es nimmt die Ausgaben von ProMotionNG und konvertiert diese in ein für meinen SNES Code passendes Format. Aktuell unterstützt das Tool Gameboy und SNES und erledigt einige Sachen automatisch (z.B. Palettensortierung/-optimierung und Sortierung der Tiles in den Maps). Das Tool wird parallel immer weiterentwickelt je nachdem was ich gerade noch neu brauche.

Daneben gibt es noch das gametool mit dem ich die gameplay-relevanten Teile editiere (Collision Maps, Gegnerpositionierung, Levelscripting, HDMA Effekte,  etc.) Auch dieses Tool wird stetig weiterentwickelt nach Bedarf.

Musik und Effekte

Musik ist meine Schwachstelle :) Aktuell verwende ich hierfür snesGSSq mitstamt dem Audio Treiber fürs SNES. Wird noch ausgetauscht gegen was Anderes was auch immer das sein mag :)

Leave a comment

Log in with itch.io to leave a comment.