SlideShare uma empresa Scribd logo
1 de 36
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Embedded Rust on ESP2 - Rust Linz
Embedded Rust on ESP2 - Rust LinzEmbedded Rust on ESP2 - Rust Linz
Embedded Rust on ESP2 - Rust Linz
 
Presentation on Raspberry pi
Presentation on Raspberry piPresentation on Raspberry pi
Presentation on Raspberry pi
 
Java seminar
Java seminarJava seminar
Java seminar
 
Linux Device Driver’s
Linux Device Driver’sLinux Device Driver’s
Linux Device Driver’s
 
Java Development Kit (jdk)
Java Development Kit (jdk)Java Development Kit (jdk)
Java Development Kit (jdk)
 
Asynchronous Python A Gentle Introduction
Asynchronous Python A Gentle IntroductionAsynchronous Python A Gentle Introduction
Asynchronous Python A Gentle Introduction
 
An Introduction to Gradle for Java Developers
An Introduction to Gradle for Java DevelopersAn Introduction to Gradle for Java Developers
An Introduction to Gradle for Java Developers
 
Web fundamentals - part 1
Web fundamentals - part 1Web fundamentals - part 1
Web fundamentals - part 1
 
Nodejs presentation
Nodejs presentationNodejs presentation
Nodejs presentation
 
Video Drivers
Video DriversVideo Drivers
Video Drivers
 
Understanding the Dalvik bytecode with the Dedexer tool
Understanding the Dalvik bytecode with the Dedexer toolUnderstanding the Dalvik bytecode with the Dedexer tool
Understanding the Dalvik bytecode with the Dedexer tool
 
Toolchain
ToolchainToolchain
Toolchain
 
JDK,JRE,JVM
JDK,JRE,JVMJDK,JRE,JVM
JDK,JRE,JVM
 
Introduction to Eclipse IDE
Introduction to Eclipse IDEIntroduction to Eclipse IDE
Introduction to Eclipse IDE
 
Node.js Basics
Node.js Basics Node.js Basics
Node.js Basics
 
Running Android on the Raspberry Pi: Android Pie meets Raspberry Pi
Running Android on the Raspberry Pi: Android Pie meets Raspberry PiRunning Android on the Raspberry Pi: Android Pie meets Raspberry Pi
Running Android on the Raspberry Pi: Android Pie meets Raspberry Pi
 
PCI Drivers
PCI DriversPCI Drivers
PCI Drivers
 
computer science JAVA ppt
computer science JAVA pptcomputer science JAVA ppt
computer science JAVA ppt
 
The Full Stack Web Development
The Full Stack Web DevelopmentThe Full Stack Web Development
The Full Stack Web Development
 
Web Application Introduction
Web Application  IntroductionWeb Application  Introduction
Web Application Introduction
 

Semelhante a 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
 

Semelhante a 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
 

Último

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
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 

Último (20)

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
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
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
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
 
ManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide Deck
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
%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
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
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...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 

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