Category: Retro

  • Sprdef2 1.1 is available

    The C64/128 sprite editor Sprdef2 (runs under Windows) is now available for download. Screenshot and link is available here: https://github.com/Anders-H/Sprdef2/blob/main/README.md

  • Resurser för Commodore 64-utveckling

    Om du som jag skriver program för Commodore 64 på fritiden, är denna sida ett register över de verktyg du behöver.

    Utvecklingsmiljöer

    CBM .prg Studio

    C64 Studio

    Programmeringsspråk

    Turbo Rascal

    KickC

    XC=BASIC 3

    Vision BASIC

    Commodore DOS

    DirMaster

    Dokumentation

    BASIC (C64 Wiki)

    Assembler (C64 Wiki)

    All about yout C64 – online help

    Chip music for dummies

    Commodore 64 memory map

    Machine language

    6402 opcodes

    Programming sound and music on yout Commodore 64

    Final Cartridge III manual

    VIC-1541 manual

    Commodore 64 Data Files

    Commodore BASIC tokenized file

    Editorer, musik

    GoatTracker 2

    SID Factory II

    Music Studio

    Editorer, grafik

    mcDRAW

    PETSCII Editor

    Emulering

    VICE

    Övrigt

    Awesome Commodore Resources

    The C-64 Scene Database

    För min del har jag skrivit bok om Commodore BASIC 2.0 second release, och jag håller på att arbeta med en sprite editor.

  • Några knep för att få fart på Commodore BASIC i C64

    Commodore BASIC 2.0 på Commodore 64 har några kända prestandaproblem, och denna enkla kod har implementerat några stycken:

    10 S=TI
    20 X=0.01
    30 FOR A=0 TO 255
    40 REM
    50 REM
    60 REM
    70 X=X+0.01
    80 POKE 16384,A
    90 REM
    100 REM
    110 REM
    120 NEXT
    130 S=TI-S
    140 PRINT "TIME" S
    150 PRINT "RESULT " X

    Programmet startar en tidtagning och 256 gånger görs en flyttalsberäkning och ett heltal skrivs till en minnesadress (16384). Programmet tar 327 jiffies i tid. (En jiffy är ungefär 1/60 sekund.)

    Att hitta ett radnummer tar tid, så om man optimerar genom att radera alla REM-satser, blir exekveringstiden istället 299 jiffies.

    10 S=TI
    20 X=0.01
    30 FOR A=0 TO 255
    70 X=X+0.01
    80 POKE 16384,A
    120 NEXT
    130 S=TI-S
    140 PRINT "TIME" S
    150 PRINT "RESULT " X

    Om man dessutom lägger alla radnummer tätt ihop, försvinner faktiskt en jiffie till.

    0 S=TI
    1 X=0.01
    2 FOR A=0 TO 255
    3 X=X+0.01
    4 POKE 16384,A
    5 NEXT
    6 S=TI-S
    7 PRINT "TIME" S
    8 PRINT "RESULT " X

    Att tolka ett heltal tar tid, så genom att skapa en variabel innehållande adressen 16384 behöver tolken bara göra det arbetet en gång.

    0 S=TI
    1 X=0.01
    2 N=16384
    3 FOR A=0 TO 255
    4 X=X+0.01
    5 POKE N,A
    6 NEXT
    7 S=TI-S
    8 PRINT "TIME" S
    9 PRINT "RESULT " X

    Detta skalar bort ytterligare 81 jiffies, så att programmet nu inte tar mer än 217 jiffies. Den sista optimeringen vi kan göra, är bara lämplig när arbetet som utförs inte kräver att bildskärmen är aktiv. Genom att stänga av bildskärmen, försvinner en tidskrävande arbetsuppgift, vilket gör att processorn kan lägga mer fokus på BASIC-programmet. På adress 53265 ligger normalt värdet 27, vilket betyder att skärmen ska vara aktiv. Genom att sätta 11 på adressen, stänger man av skärmen, när arbetsuppgiften är klar, kan man aktivera skärmen igen genom att återställa värdet till 27.

    0 POKE 53265,11
    1 S=TI
    2 X=0.01
    3 N=16384
    4 FOR A=0 TO 255
    5 X=X+0.01
    6 POKE N,A
    7 NEXT
    8 S=TI-S
    9 PRINT "TIME" S
    10 PRINT "RESULT " X
    11 POKE 53265,27

    Vi är nu nere på 205 jiffies för samma arbetsuppgift, vilket är 63% av ursprungstiden på 327 jiffies. BASIC är fortfarande lite för slött för att vara användbart när datorspel ska byggas, men om man väljer BASIC i kommersiell mjukvara, är det viktigt att göra rätt.

    De delar av Pirates! som inte kräver realtidsexekvering är faktiskt skrivna i BASIC, och även spelet Artworx Strip Poker var skrivet i BASIC.

  • Disabling loading turbo to make C64 programs work on the TheC64

    Disabling loading turbo to make C64 programs work on the TheC64

    On a TheC64, you would normally load a program from a disk image rather than a physical disk. If the program consists of a single file, everything is usually fine. But if several files make up the program you want to load, a custom loader is usually involved, and the built in TheC64 turbo will make the program unloadable.


    TheC64 solves this problem by looking at the ending characters in the name of the active disk image. The first disk image in my copy of the Comaland 100% demo is not called image1.d64 but image1_adro.d64. The presence of the characters “ad” tells the TheC64 to inactivate the built-in disk turbo, that makes most multipart software fail during load. The presence of the characters “ro” tells TheC64 that the disk is read-only, which makes most abandonedware work.


    The manual describes all of the character combinations that the TheC64 understand. You can control joystick ports, among other things. As a TheC64 user, you should make it a habit to add “ad” before the file ending in the image that holds your programs, and “_adro” to the end of any image you download from the C-64 Scene Database.

  • Åtta avsnitt av “Inte en singel”

    Åtta avsnitt av “Inte en singel”

    Det har hunnit bli åtta avsnitt av podcasten “Inte en singel” som jag gör tillsammans med Henrik Andersson. I varje avsnitt lyssnar vi på en skiva – åtminstone på låtarna som inte släpptes som singel – och recenserar både musiken och valet av singlar. Avsnitten finns samlade här (MP3/RSS) och på YouTube. Det senaste avsnittet filmade vi.

  • Preserverad SID-musik från 1988

    Preserverad SID-musik från 1988

    I samband med att jag lämnade staden och flyttade till landet, så gjorde jag mig av med alla mina Commodore-maskiner. Jag passade på att preservera en liten del av mina disketter, men jag kunde inte rädda allt. En av disketterna innehöll fyra SID-låtar som jag programmerade 1988 med Rock Monitor och en sample rip från Funky Drummer. Rock Monitor var en vidareutveckling av Sound Monitor med stöd för samples. Båda programmen var anpassade för att underlätta SID-programmering.

    Dessa fyra filer är kanske inte mitt stoltaste ögonblick som musiker, men eftersom det är historia så måste det såklart delas. Samtliga är packade som programfiler med Sledge Hammer. Dessa två är originallåtar:

    “Ibburd”:

    Hämta prg-fil.

    “The Lennart Song”:

    Hämta prg-fil.

    Dessa två är covers. Om jag minns rätt så programmerade jag dessa mest för att lära mig monitorn:

    “Push it”:

    Hämta prg-fil.

    “Romance d’amour/Du är den ende”:

    Hämta prg-fil.

    Samplingarna låter aningen bättre på en riktig Commodore 64 än i en emulator. Mycket nöje!

  • Sprdef 1.7

    Sprdef 1.7

    Version 1.7 of the Commodore 64 sprite editor for Windows, Sprdef, allows the user to scroll and flip a sprite and fixes a bug with thumbnail updates.

    Sprdef version 1.7

    Features:

    • Undo/redo buffer
    • Single color/multi color sprite edit
    • CBM prg Studio integration
    • BASIC import/export
    • Keyboard first editing or mouse first editing

    Download: http://winsoft.se/files/SetupSprdef.exe

    Sprdef requires .NET Framework 4.8 or later.

  • Commodore 128 Hello world!

    Commodore 128 Hello world!

    Några exempel på hur man kan skriva “Hello world” på den mångsidiga Commodore 128 (1985).

  • Skärmbyte på arkadspelet

    Skärmbyte på arkadspelet

    Jag äger en nytillverkad klassisk argadmaskin som spelar Jamma-kassetter, där skärmen tyvärr gav upp. Som synes klarar arkadspelet antingen vertikala eller horisontella spel med digital styrning. Jag använder den för vertikala spel.

    Det var enkelt att skruva loss den gamla skärmen och sätta den nya panelen på plats, men jag upptäckte naturligtvis lite för sent att jag satte den nya panelen 1,5 millimeter för långt till höger.

    Framför skärmen sitter två glasskivor med ett motivtryckt papper emellan, för att dölja skärmens kant.

    Här är glasskivorna på plats och listen som håller fast dem är fastskruvade. Här såg jag mitt lilla misstag, men beslutade mig för att skruva ihop den ändå, och justera panelens position i sidled vid ett senare tillfälle.

    Så här ser spelkassetterna ut. Idag finns även nytillverkade spelkassetter med flera spel på, men typiskt innehåller kassetterna spel från Pac Man- och Galaga-eran. Så här ser den ut med Ms. Pac Man laddad:

    Så nu är det bara att stoppa in en femma och köra igång!

    Följ mig på Instagram för fler äventyr:

    Visa det här inlägget på Instagram

    Skärmbyte på arkadspelet!

    Ett inlägg delat av Anders Hesselbom (@andershbom)

  • Sprdef 1.5

    Sprdef 1.5

    Sprdef är en sprite-editor för Windows 10 som används vid spelutveckling för Commodore 64 med Windows som utvecklingsmiljö. Version 1.5 integrerar med CBM prg Studio, har undo/redo-buffer, fungerar i både single- och multicolor-läge och kan importera/exportera BASIC-data. Ladda hem programmet här.

    Skärmbild av Sprdef 1.5.

  • E.T. for Atari 2600

    E.T. for Atari 2600

    The Atari 2600 was a home gaming console from 1977. The 2600 was a rather primitive machine compared to the later Commodore 64 (1982), but it supported hardware sprites and color graphics, which the Sinclair ZX didn’t. But the introduction price was rather high. $199 back then corresponds to more than $800 today.

    Many games were released for the 2600, but one of the most talked about, E.T., was a huge commercial failure. You play as the alien E.T. on Earth, and the objective of the game is to help E.T. get home. Every move you make costs energy, but you can pick up pieces of candy to gain energy.

    First, you need to pick up three parts that make up a special phone that can be used to contact the home planet. You can swap 9 pieces of candy for a part, if you like. The parts are found in pits that you fall into, and can levitate out of. To levitate, press fire so that E.T.’s neck is stretched, and when the neck is stretched, you simply levitate higher by pushing the joystick forward.

    E.T. has three lives. E.T.’s friend Elliot can bring him back to life when he dies. There is a special object that persuades Elliot to give E.T. a fourth life if it is carried. The game contains two protagonists, a scientist and an FBI agent, who can capture E.T. or steal phone parts from him. If you manage to find all three phone parts, you need to locate a place where the phone works. And after finding this place, you have to locate the place where the spaceship lands, and stay there and await the ship. If you succeed, you progress to the next level where the objective is the same, but the conditions are harder.

    The game looks quite good for its time, but it is it is rather buggy and unpredictable. You can fall into a pit without any warning, and it is sometimes rather hard to get out of a pit without falling in again. The best thing about this game, is that you can chat with a friend while playing – the game does not require full attention. This video shows how to complete the first level: