oscar64

Aus C64-Wiki
Zur Navigation springenZur Suche springen
Stub Dieser Artikel ist sehr kurz und nicht besonders ausführlich. Hilf bitte mit, ihn zu verbessern.
oscar64
Entwickler Dr. Mortal Wombat
Verleger Dr. Mortal Wombat
Release 2021
Lizenz Open Source (GPL)
Plattform(en) PC (Windows), Mac, Linux
Genre Entwicklungssystem
Steuerung
Medien Download
Sprache(n) Sprache:englisch
Information
  • Aktuelle Version: v1.31 (18.06.2025)

Oscar64 ist ein C/C++-Cross-Compiler, der auf einem modernen System (z. B. einem Windows-PC, Mac oder Linux-Rechner) läuft und auf die klassische 6502-Prozessorfamilie abzielt. Er ist hauptsächlich auf Commodore-Systeme wie den C64, PET oder VC-20 ausgerichtet. Der Compiler unterstützt C99 und viele C++-Funktionen bis hin zu variadischen Templates und Lambda-Funktionen.

Der Zweck dieses Compilers besteht darin, die Notwendigkeit zu beseitigen, 6502-Assembler-Code zu schreiben, um eine hohe Code-Dichte und schnelle Ausführungsgeschwindigkeit zu erreichen. Er wird mit allen damit geschriebenen Spielen, Demos und Tools kontinuierlich verbessert. Er unterstützt Disk-Overlays und Banked-Cartridges für größere Projekte.


C64 Spiele[Bearbeiten | Quelltext bearbeiten]

Eine Spielszene aus "Corescape" (2924).

Die folgenden kostenlosen C64-Spiele wurden von Dr. Mortal Wombat mit dem Compiler oscar64 entwickelt:


Benchmarks[Bearbeiten | Quelltext bearbeiten]

Eine der traditionellen Fragen bei der Verwendung von C/C++ auf 6502-Architekturen ist, ob damit eine ähnliche Leistung wie mit handcodiertem Assembler erzielt werden kann, insbesondere bei hochleistungsfähigem Spielcode. Daher ist die Leistung des kompilierten Codes von großer Bedeutung. oscar64 wurde dahingehend optimiert, handcodierten Assemblercode vollständig zu ersetzen und liefert, sowohl bei Performance, als auch bei Größe des erzeugten Codes, hervorragende Ergebnisse wie der C-Bench-64 Benchmark Sprache:englisch zeigt.

Benchmark-Ergebnisse für aktiv gepflegte C-Cross-Compiler
Benchmark oscar64 llvm-mos cc65**
crc8 0.8 1.0 3.3
crc16 1.7 2.3 4.6
crc32 2.5 3.8 38.9
sieve 9.5 16.7 23.1
sieve-bit 16.3 19.6 70.7
pi 50.9 64.3 104.7
fact 66.0*** 50.7*** 238.2
pow 3.3 19.2 --
puff2 7.4 48.8* 53.4
dhrystone 1.4 1.9 10.0
aes256 12.5 10.1 195.4
  • * ohne Optimierung, da optimierte Builds fehlschlagen.
  • ** Die cc65-Ergebnisse stammen aus dem ursprünglichen gglabs-Artikel von 2022.
  • *** oscar64 und llvm-mos berechnen dies vollständig zur Kompilierzeit, so dass die tatsächliche Ausführungszeit nun bedeutungslos ist.

Weblinks[Bearbeiten | Quelltext bearbeiten]