SlideShare une entreprise Scribd logo
1  sur  36
Télécharger pour lire hors ligne
Amiga Cracktro
Programming
DavidVoswinkel
david@optixx.org
About me
• Developer at www.userlike.com
• Hobby projects at www.optixx.org
• Gaming consoles
• Micro controller
• Retro computing
Motivation
• Learned programming on the Amiga 500
• Use modern development tools
• Interesting platform
• Total control
• Batteries included
Whats is a Cracktro?
• Spread with pirated games released by
cracker groups
• via mail letters , later via modem
• Mostly logo, text and music
• Demonstrate technical skills
• Competition & fame
Cracktros come in
many form
• Small, packed, absolute or relocatable
• Standalone, injected or in bootloader
• Compilations / Trainers
World of Wonders
Quartex
The Company &Vision Factory
Amiga History
• 1985: Amiga 1000
• 1987: Amiga 500 & Amiga 2000
• 1990: Amiga 3000
• 1992: Amiga 1200 & Amiga 4000
• 1994: Bankruptcy of Commode Inc
Amiga 500
• 16/32bit Motorola 68000 CPU
• 32bit registers
• 16bit databus
• 24bit external address bus
• 7 MHz
• 512KB RAM Chip Ram
• OCS
• Price 800 DM in 1988
Amiga 1200
• Motorola 68EC020 CPU
• 32bit register
• 32bit databus
• 24bit external address bus
• 14 MHz
• 2MB RAM
• AGA
• Price 900 DM in 1992
Custom Chips
• Original Chip Set (OSC)
• Enhanced Chip Set (ESC)
• Advanced Graphics Architecture (AGA)
• Advanced Amiga Architecture (AAA)
Original Chip Set
(OCS)
Agnus
• Controls Chip RAM
• DMA
• Access only 512KB of Chip RAM
• Hosts the Blitter and Copper
Blitter
• BLock Image Transfer - Blit
• 4 Channels, boolean combination
• Copy, clear and fill
• Draw lines
Copper
• Co-processor
• Commands: MOVE,WAIT and SKIP
• Programs are copperlists
• Set video hardware registers
• Change color registers mid-frame
• Create rasterbars
Denise
• Display encoder
• Lowres 320x256 @50Hz PAL 32 Colors of 4096 palette
• Hires 640x256 @50Hz PAL 16 Colors of 4096 palette
• Interlaced
• Extra-HalfBrite (EHB)
• 64 Colors
• Hold-and-Modify (HAM)
• 4096 Colors
• Dual playfields
• 8 Sprites 16 pixel width
Paula
• Audio and peripheral
• IO
• Floppy controller
• Serial port
• Mouse / Joystick inputs
Chunky vs. Planar
• Planar
• Represents pixels with layered bitplanes
• Info spread on different planes / RAM
locations
• Chunky
• Packed pixel
• Pixel are grouped together in RAM
Emulate vs Hardware
• Emulator
• WinUAE, FS-UAE
• Lots of emulated hardware
• Hardware
• Real hardware with Gotek floppy emu
• MIST FPGA
Coding 1988
• Seka assembler (later ASMone)
• IDE, compiler and debugger in one
• Project management
• Floppy disks
• Paper & pen
• Pocket calculator
• Documentation
• Books & Printouts
• Word of mouth (phone calls)
Load & compile
Run
Debug
Coding 2016
• Crosscompiler: vbcc, vasm68k and linker
• Texteditor + Git
• Emulators
• FS-UAE
• WIN-UAE
• Documentation
• Blogs & Forums
Hack…
Compile
Emulate
Debugger
Code Flow
• Save system state
• Turn system off
• SetupVBI
• Mainloop
• Jump to effects routine
• Jump to music play routine inVBI
• Restore system state
Effect Explained
• Logo Wobbel
• Create a copperlist that manipulates the image
• Static vs. dynamics
• Update copperliste
• Use sine LUT
• Use hardware scroll register for < 16px
• Bitplane scroll register for >16px
Getting Started
• Photon’s ASMSKOOL videos & resources
• http://coppershade.org/
• Amiga Cross Dev
• https://github.com/kusma/amiga-dev
My Cracktro
• Logo with wobble effect
• Horizontal rasterbars
• 2-pixel sinescroller
• Sinescroller mirror with water effect
• Background starfield
Now Live Demo!
Amiga Cracktro Programming

Contenu connexe

Tendances

ppt sejarah komputer, softwere dan hardware
ppt sejarah komputer, softwere dan hardwareppt sejarah komputer, softwere dan hardware
ppt sejarah komputer, softwere dan hardware
aamahadika
 
Pengertian mikroprosesor
Pengertian mikroprosesorPengertian mikroprosesor
Pengertian mikroprosesor
Masega Masega
 
High-Performance Networking Using eBPF, XDP, and io_uring
High-Performance Networking Using eBPF, XDP, and io_uringHigh-Performance Networking Using eBPF, XDP, and io_uring
High-Performance Networking Using eBPF, XDP, and io_uring
ScyllaDB
 
Synchronization linux
Synchronization linuxSynchronization linux
Synchronization linux
Susant Sahani
 
memoria Dram
memoria Drammemoria Dram
memoria Dram
laya11
 

Tendances (20)

Contoh RPP SMP
Contoh RPP SMPContoh RPP SMP
Contoh RPP SMP
 
Drilling into Data with Apache Drill
Drilling into Data with Apache DrillDrilling into Data with Apache Drill
Drilling into Data with Apache Drill
 
Ceph Tech Talk: Bluestore
Ceph Tech Talk: BluestoreCeph Tech Talk: Bluestore
Ceph Tech Talk: Bluestore
 
Fast File System
Fast File SystemFast File System
Fast File System
 
Pembahasan Solusi Perhitungan VLSM untuk Lab 17.8.2 Packet Tracer - Skills In...
Pembahasan Solusi Perhitungan VLSM untuk Lab 17.8.2 Packet Tracer - Skills In...Pembahasan Solusi Perhitungan VLSM untuk Lab 17.8.2 Packet Tracer - Skills In...
Pembahasan Solusi Perhitungan VLSM untuk Lab 17.8.2 Packet Tracer - Skills In...
 
Raspberry Pi introduction
Raspberry Pi introductionRaspberry Pi introduction
Raspberry Pi introduction
 
Perkembangan Komputer Dari Generasi Ke Generasi
Perkembangan Komputer Dari Generasi Ke GenerasiPerkembangan Komputer Dari Generasi Ke Generasi
Perkembangan Komputer Dari Generasi Ke Generasi
 
cara kerja frekuensi 2,4 dan 5,8 GHZ dan channel width
cara kerja frekuensi 2,4 dan 5,8 GHZ dan channel widthcara kerja frekuensi 2,4 dan 5,8 GHZ dan channel width
cara kerja frekuensi 2,4 dan 5,8 GHZ dan channel width
 
ppt sejarah komputer, softwere dan hardware
ppt sejarah komputer, softwere dan hardwareppt sejarah komputer, softwere dan hardware
ppt sejarah komputer, softwere dan hardware
 
M|18 How to use MyRocks with MariaDB Server
M|18 How to use MyRocks with MariaDB ServerM|18 How to use MyRocks with MariaDB Server
M|18 How to use MyRocks with MariaDB Server
 
Spesifikasi hardware
Spesifikasi hardwareSpesifikasi hardware
Spesifikasi hardware
 
Network Drivers
Network DriversNetwork Drivers
Network Drivers
 
Presentasi CPU
Presentasi CPUPresentasi CPU
Presentasi CPU
 
Pengertian mikroprosesor
Pengertian mikroprosesorPengertian mikroprosesor
Pengertian mikroprosesor
 
High-Performance Networking Using eBPF, XDP, and io_uring
High-Performance Networking Using eBPF, XDP, and io_uringHigh-Performance Networking Using eBPF, XDP, and io_uring
High-Performance Networking Using eBPF, XDP, and io_uring
 
Yocto Project Open Source Build System and Collaboration Initiative
Yocto Project Open Source Build System and Collaboration InitiativeYocto Project Open Source Build System and Collaboration Initiative
Yocto Project Open Source Build System and Collaboration Initiative
 
Langkah Langkah Perakitan PC
Langkah Langkah Perakitan PCLangkah Langkah Perakitan PC
Langkah Langkah Perakitan PC
 
Synchronization linux
Synchronization linuxSynchronization linux
Synchronization linux
 
Pembahasan Solusi Perhitungan VLSM untuk Lab 11.10.1 Packet Tracer - Design a...
Pembahasan Solusi Perhitungan VLSM untuk Lab 11.10.1 Packet Tracer - Design a...Pembahasan Solusi Perhitungan VLSM untuk Lab 11.10.1 Packet Tracer - Design a...
Pembahasan Solusi Perhitungan VLSM untuk Lab 11.10.1 Packet Tracer - Design a...
 
memoria Dram
memoria Drammemoria Dram
memoria Dram
 

Similaire à Amiga Cracktro Programming

My ISCA 2013 - 40th International Symposium on Computer Architecture Keynote
My ISCA 2013 - 40th International Symposium on Computer Architecture KeynoteMy ISCA 2013 - 40th International Symposium on Computer Architecture Keynote
My ISCA 2013 - 40th International Symposium on Computer Architecture Keynote
Dileep Bhandarkar
 

Similaire à Amiga Cracktro Programming (20)

Laptop Evolution
Laptop EvolutionLaptop Evolution
Laptop Evolution
 
Multiplayer RogueLike Game for the Commodore 64
Multiplayer RogueLike Game for the Commodore 64Multiplayer RogueLike Game for the Commodore 64
Multiplayer RogueLike Game for the Commodore 64
 
Multiplayer Roguelike for the Commodore 64
Multiplayer Roguelike for the Commodore 64Multiplayer Roguelike for the Commodore 64
Multiplayer Roguelike for the Commodore 64
 
Brief History of Graphics Devices
Brief History of Graphics DevicesBrief History of Graphics Devices
Brief History of Graphics Devices
 
New Commodore 64 Network Game Developments
New Commodore 64 Network Game DevelopmentsNew Commodore 64 Network Game Developments
New Commodore 64 Network Game Developments
 
Alessandro Abbruzzetti - Kernal64
Alessandro Abbruzzetti - Kernal64Alessandro Abbruzzetti - Kernal64
Alessandro Abbruzzetti - Kernal64
 
A brief introduction to making your own (Internet of Things) Thing
A brief introduction to making your own (Internet of Things) ThingA brief introduction to making your own (Internet of Things) Thing
A brief introduction to making your own (Internet of Things) Thing
 
WOver
WOverWOver
WOver
 
Raspberry Pi, Arduino and the Maker Movement
Raspberry Pi, Arduino and the Maker MovementRaspberry Pi, Arduino and the Maker Movement
Raspberry Pi, Arduino and the Maker Movement
 
Ultimate Modded Commodore 64
Ultimate Modded Commodore 64Ultimate Modded Commodore 64
Ultimate Modded Commodore 64
 
Windows 3.1 (WFW) on vintage and modern hardware
Windows 3.1 (WFW) on vintage and modern hardwareWindows 3.1 (WFW) on vintage and modern hardware
Windows 3.1 (WFW) on vintage and modern hardware
 
Gentoo on a 486
Gentoo on a 486Gentoo on a 486
Gentoo on a 486
 
My ISCA 2013 - 40th International Symposium on Computer Architecture Keynote
My ISCA 2013 - 40th International Symposium on Computer Architecture KeynoteMy ISCA 2013 - 40th International Symposium on Computer Architecture Keynote
My ISCA 2013 - 40th International Symposium on Computer Architecture Keynote
 
GPU-working & structure(Nividia & AMD)-History and 2017-Open session
GPU-working & structure(Nividia & AMD)-History and 2017-Open sessionGPU-working & structure(Nividia & AMD)-History and 2017-Open session
GPU-working & structure(Nividia & AMD)-History and 2017-Open session
 
Raspberry Pi Gaming Rig
Raspberry Pi Gaming RigRaspberry Pi Gaming Rig
Raspberry Pi Gaming Rig
 
.net for fun: write a Christmas videogame
.net for fun: write a Christmas videogame.net for fun: write a Christmas videogame
.net for fun: write a Christmas videogame
 
De Re PlayStation Vita
De Re PlayStation VitaDe Re PlayStation Vita
De Re PlayStation Vita
 
Apple Devices History
Apple Devices HistoryApple Devices History
Apple Devices History
 
Presentation Graphic cards - History
Presentation Graphic cards - HistoryPresentation Graphic cards - History
Presentation Graphic cards - History
 
Programming skills
Programming skillsProgramming skills
Programming skills
 

Dernier

The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 

Dernier (20)

%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 

Amiga Cracktro Programming

  • 2. About me • Developer at www.userlike.com • Hobby projects at www.optixx.org • Gaming consoles • Micro controller • Retro computing
  • 3. Motivation • Learned programming on the Amiga 500 • Use modern development tools • Interesting platform • Total control • Batteries included
  • 4. Whats is a Cracktro? • Spread with pirated games released by cracker groups • via mail letters , later via modem • Mostly logo, text and music • Demonstrate technical skills • Competition & fame
  • 5. Cracktros come in many form • Small, packed, absolute or relocatable • Standalone, injected or in bootloader • Compilations / Trainers
  • 9. Amiga History • 1985: Amiga 1000 • 1987: Amiga 500 & Amiga 2000 • 1990: Amiga 3000 • 1992: Amiga 1200 & Amiga 4000 • 1994: Bankruptcy of Commode Inc
  • 10. Amiga 500 • 16/32bit Motorola 68000 CPU • 32bit registers • 16bit databus • 24bit external address bus • 7 MHz • 512KB RAM Chip Ram • OCS • Price 800 DM in 1988
  • 11. Amiga 1200 • Motorola 68EC020 CPU • 32bit register • 32bit databus • 24bit external address bus • 14 MHz • 2MB RAM • AGA • Price 900 DM in 1992
  • 12. Custom Chips • Original Chip Set (OSC) • Enhanced Chip Set (ESC) • Advanced Graphics Architecture (AGA) • Advanced Amiga Architecture (AAA)
  • 14. Agnus • Controls Chip RAM • DMA • Access only 512KB of Chip RAM • Hosts the Blitter and Copper
  • 15. Blitter • BLock Image Transfer - Blit • 4 Channels, boolean combination • Copy, clear and fill • Draw lines
  • 16. Copper • Co-processor • Commands: MOVE,WAIT and SKIP • Programs are copperlists • Set video hardware registers • Change color registers mid-frame • Create rasterbars
  • 17. Denise • Display encoder • Lowres 320x256 @50Hz PAL 32 Colors of 4096 palette • Hires 640x256 @50Hz PAL 16 Colors of 4096 palette • Interlaced • Extra-HalfBrite (EHB) • 64 Colors • Hold-and-Modify (HAM) • 4096 Colors • Dual playfields • 8 Sprites 16 pixel width
  • 18. Paula • Audio and peripheral • IO • Floppy controller • Serial port • Mouse / Joystick inputs
  • 19. Chunky vs. Planar • Planar • Represents pixels with layered bitplanes • Info spread on different planes / RAM locations • Chunky • Packed pixel • Pixel are grouped together in RAM
  • 20. Emulate vs Hardware • Emulator • WinUAE, FS-UAE • Lots of emulated hardware • Hardware • Real hardware with Gotek floppy emu • MIST FPGA
  • 21. Coding 1988 • Seka assembler (later ASMone) • IDE, compiler and debugger in one • Project management • Floppy disks • Paper & pen • Pocket calculator • Documentation • Books & Printouts • Word of mouth (phone calls)
  • 23. Run
  • 24. Debug
  • 25. Coding 2016 • Crosscompiler: vbcc, vasm68k and linker • Texteditor + Git • Emulators • FS-UAE • WIN-UAE • Documentation • Blogs & Forums
  • 30. Code Flow • Save system state • Turn system off • SetupVBI • Mainloop • Jump to effects routine • Jump to music play routine inVBI • Restore system state
  • 31. Effect Explained • Logo Wobbel • Create a copperlist that manipulates the image • Static vs. dynamics • Update copperliste • Use sine LUT • Use hardware scroll register for < 16px • Bitplane scroll register for >16px
  • 32.
  • 33. Getting Started • Photon’s ASMSKOOL videos & resources • http://coppershade.org/ • Amiga Cross Dev • https://github.com/kusma/amiga-dev
  • 34. My Cracktro • Logo with wobble effect • Horizontal rasterbars • 2-pixel sinescroller • Sinescroller mirror with water effect • Background starfield