Week of the 11/05/2020 - #20
Contents
Tech
- Inkscape videos and blog
- YouTube Video on emulations
- Another headless CMS - DatoCMS
- Apple II resources
- Carbon: Beautiful screenshots of your code
- ImGui: Bloat-free Immediate Mode Graphical User interface for C++
- 8088 MPH Revision 2015 olskool demo winner
- Sound resources on an Apple II
- Create Apple II DSK images with monitor text files
Science
- Polynomial Optics: A Construction Kit for Efficient Ray-Tracing of Lens Systems
Art
- Idea to generate Double Planetoid by M.C.Escher as a shader
Inkscape videos and blog
I found this good video which compares Inkscape & Illustrator. The author has many other videos on using Inkscape and a blog with lots of tutorials/articles. Highly recommended.
- Illustrator vs. Inkscape video - [YouTube]
- Inkscape masterclass: Become A Master of Inkscape - The Inkscape Master Class is a comprehensive series of 50+ videos where I go over every tool, feature and function in Inkscape and explain what it is, how it works, and why it’s useful. Think of it as an interactive user manual, in video format, that you can refer to any time you want. [web]
- Inkscape tutorials blog - [web]
- Creating Patterns Along a Path in Inkscape - [blog article].
YouTube Video on emulations
This veeery long video talks about emulation, cycle-perfect emulations and retro-hardware. On the video we have Matt Godbolt who wrote the JSbeeb BBC micro-emulator and jason Turner. Worth the view. [YouTube]. This is the other side of the video [YouTube]. Mostly talks about 6502 processors. One very interesting piece of information discussed is that the opcode $87 which doesn’t actually exist does a store A & X into zero page (AAX / SAX / AXS) [reference]. In addition he show the Visual 6502 projects and talks about where the different registers are, etc. [visual 6502].
Another headless CMS
To look at: https://www.datocms.com/. NextJS blog hitting a DatoCMS: https://cms-datocms.now.sh/. For image resizeing it uses imagix API (https://www.imgix.com/).
Apple II resources
Applesoft snippet to view color palette
Small program to show the 16 colors available on the Apple II. Here’s the code and
10 GR : HOME
20 FOR I = 1 TO 16
30 COLOR = I
40 VLIN 5,35 AT 2*I+2
50 VLIN 5,35 AT 2*I+3
60 NEXT I
Google sheet with Apple II low resolution addresses
This Google sheet might come in handy to do some tests: [GoogleSheet]
Polynomial Optics: A Construction Kit for Efficient Ray-Tracing of Lens Systems
Very interesting paper on the simulation of light transport through lens systems. The paper is called “Polynomial Optics: A Construction Kit for Efficient Ray-Tracing of Lens Systems” by Mattihas B. Hullin, Johannes Hanika and Wolfgang Heidrich. It can be found here. [pdf]. Also there are some source code and other extra information [here]
Carbon: Beautiful screenshots of your code
This is a web page where you can paste a code snippet and render a great PNG image of it choosing syntax highlightning schema of your choice. You can test it [here] and you can download the source from [GitHub]. Here’s my Apple II code rendered in it:
ImGui: Bloat-free Immediate Mode Graphical User interface for C++
Dear ImGui is a bloat-free graphical user interface library for C++. It outputs optimized vertex buffers that you can render anytime in your 3D-pipeline enabled application. It is fast, portable, renderer agnostic and self-contained (no external dependencies). [GitHub]. There is an issue in the GH repo that has a lot of comments/screenshots of people using it. Its [this one]. A good example to test and see how it works in Linux is the one in examples/example_sdl_opengl2
which, as its name implies, uses SDL + OpenGL2.
Idea to generate Double Planetoid by M.C.Escher as a shader
I want to generate this image by renowned Dutch artist M.C.Escher:
To get started I should probably have a look at this shader [Shadetoy link]. Here’s a screenshot:
This Shader is inspired by this other Shader which I should study as well [shadertoy link]
As another source of inspiration I found this image which I also liked:
8088 MPH Revision 2015 olskool demo winner
This demo was the winner of Revision15 and pushed the limits of 8088 demos in many ways. I found a whole bunch of articles explaining the techniques and history which make for a fantastic reading. Here they are:
- Links to YouTube and Pouet [YouTube] - [Pouet] - Revision 2015 Compo site
- 8088 MPH: We Break All Your Emulators [article] This write up goes through the demo and talks about several of the effects and how they were done. There are also links to other more in-depth write ups.
- CGA in 1024 Colors - a New Mode: the Illustrated Guide [article] This more in-depth article talks about how to achive 1024 colors from a CGA card!
- 1K colours on CGA: How it’s done [article] Another article on how the color effects where achieved.
- 8088 PC Speaker MOD player: How it’s done [article] This blog post talks about the last 100seconds of the demo which playback an Amiga mod file on a standard PC.
-
8088 MPH: Sprites? Where we’re going, we don’t need… sprites! - [article]
- Some thoughts on emulators [article] I learned about the 8088 demo from this recent article which talks about demos en emulation. An interesting read.
Sound resources on an Apple II
Some sound related resources.
- DMS Drummer a Percussion sequencer for the Apple II This is the best in class for the apple II. It allows you to create and play a drum sequence on an Apple II with a decent quality. You can download a demo or pay U$S15 for the full version. Here’s the link to the creator site [web] and to the [demo dsk] You can buy the DMS [web]
- AppleCrate Polyphonic Music Synthesizer Description of how a crate a 16 voice synth out of 16 Apple IIs. [article]
-
Apple II Real-Time Single-Voice Music Synthesizer
- Apple Duet this is an old technique that allows for two simultaneous voices on classical hardware. [article]
/***************************************************************************
* Copyright (C) 1979-2015 by Paul Lutus *
* http://arachnoid.com/administration *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
/* Electric Duet Player Routine circa 1980 */
$0900 A9 01: LDA #$01 ; 2 *!*
$0902 85 09: STA $09 ; 3
$0904 85 1D: STA $1D ; 3
$0906 48: PHA ; 3
$0907 48: PHA ; 3
$0908 48: PHA ; 3
$0909 D0 15: BNE $0920 ; 4 *!*
$090B C8: INY ; 2
$090C B1 1E: LDA ($1E),Y ; 5 *!*
$090E 85 09: STA $09 ; 3
$0910 C8: INY ; 2
$0911 B1 1E: LDA ($1E),Y ; 5 *!*
$0913 85 1D: STA $1D ; 3
$0915 A5 1E: LDA $1E ; 3 *!*
$0917 18: CLC ; 2
$0918 69 03: ADC #$03 ; 2 *!*
$091A 85 1E: STA $1E ; 3
$091C 90 02: BCC $0920 ; 4 *!*
$091E E6 1F: INC $1F ; 5
$0920 A0 00: LDY #$00 ; 2 *!*
$0922 B1 1E: LDA ($1E),Y ; 5 *!*
$0924 C9 01: CMP #$01 ; 2
$0926 F0 E3: BEQ $090B ; 4 *!*
$0928 B0 0D: BCS $0937 ; 4 *!*
$092A 68: PLA ; 4
$092B 68: PLA ; 4
$092C 68: PLA ; 4
$092D A2 49: LDX #$49 ; 2 *!*
$092F C8: INY ; 2
$0930 B1 1E: LDA ($1E),Y ; 5 *!*
$0932 D0 02: BNE $0936 ; 4 *!*
$0934 A2 C9: LDX #$c9 ; 2 *!*
$0936 60: RTS ; 6
$0937 85 08: STA $08 ; 3
$0939 20 2D09: JSR $092D ; 6
$093C 8E 8309: STX $0983 ; 4
$093F 85 06: STA $06 ; 3
$0941 A6 09: LDX $09 ; 3 *!*
$0943 4A: LSR A ; 2
$0944 CA: DEX ; 2
$0945 D0 FC: BNE $0943 ; 4 *!*
$0947 8D 7C09: STA $097C ; 4
$094A 20 2D09: JSR $092D ; 6
$094D 8E BB09: STX $09BB ; 4
$0950 85 07: STA $07 ; 3
$0952 A6 1D: LDX $1D ; 3 *!*
$0954 4A: LSR A ; 2
$0955 CA: DEX ; 2
$0956 D0 FC: BNE $0954 ; 4 *!*
$0958 8D B409: STA $09B4 ; 4
$095B 68: PLA ; 4
$095C A8: TAY ; 2
$095D 68: PLA ; 4
$095E AA: TAX ; 2
$095F 68: PLA ; 4
$0960 D0 03: BNE $0965 ; 4 *!*
$0962 2C 30C0: BIT $C030 ; 4
$0965 C9 00: CMP #$00 ; 2
$0967 30 03: BMI $096C ; 4 *!*
$0969 EA: NOP ; 2
$096A 10 03: BPL $096F ; 4 *!*
$096C 2C 30C0: BIT $C030 ; 4
$096F 85 4E: STA $4E ; 3
$0971 2C 00C0: BIT $C000 ; 4
$0974 30 C0: BMI $0936 ; 4 *!*
$0976 88: DEY ; 2
$0977 D0 02: BNE $097B ; 4 *!*
$0979 F0 06: BEQ $0981 ; 4 *!*
$097B C0 00: CPY #$00 ; 2
$097D F0 04: BEQ $0983 ; 4 *!*
$097F D0 04: BNE $0985 ; 4 *!*
$0981 A4 06: LDY $06 ; 3 *!*
$0983 49 40: EOR #$40 ; 2 *!*
$0985 24 4E: BIT $4E ; 3
$0987 50 07: BVC $0990 ; 4 *!*
$0989 70 00: BVS $098B ; 4 *!*
$098B 10 09: BPL $0996 ; 4 *!*
$098D EA: NOP ; 2
$098E 30 09: BMI $0999 ; 4 *!*
$0990 EA: NOP ; 2
$0991 30 03: BMI $0996 ; 4 *!*
$0993 EA: NOP ; 2
$0994 10 03: BPL $0999 ; 4 *!*
$0996 CD 30C0: CMP $C030 ; 4
$0999 C6 4F: DEC $4F ; 5
$099B D0 11: BNE $09AE ; 4 *!*
$099D C6 08: DEC $08 ; 5
$099F D0 0D: BNE $09AE ; 4 *!*
$09A1 50 03: BVC $09A6 ; 4 *!*
$09A3 2C 30C0: BIT $C030 ; 4
$09A6 48: PHA ; 3
$09A7 8A: TXA ; 2
$09A8 48: PHA ; 3
$09A9 98: TYA ; 2
$09AA 48: PHA ; 3
$09AB 4C 1509: JMP $0915 ; 3
$09AE CA: DEX ; 2
$09AF D0 02: BNE $09B3 ; 4 *!*
$09B1 F0 06: BEQ $09B9 ; 4 *!*
$09B3 E0 00: CPX #$00 ; 2
$09B5 F0 04: BEQ $09BB ; 4 *!*
$09B7 D0 04: BNE $09BD ; 4 *!*
$09B9 A6 07: LDX $07 ; 3 *!*
$09BB 49 80: EOR #$80 ; 2 *!*
$09BD 70 A3: BVS $0962 ; 4 *!*
$09BF EA: NOP ; 2
$09C0 50 A3: BVC $0965 ; 4 *!*
You can get a commented version of the code (in french) here [GitHub]
- Apple II PT3 Vortex Tracker Player - There is player coded in 6502 assembly which allows to play
.pt3
(Vortex Tracker files). [GitHub] [post] - Apple II PT3 Vortex Tracker Library - Library for playing pt3 files generated by the Vortex Tracker on an Apple II with Mockingboard.. This allows you to play tracker files in your demo. [GitHub]
- Vortex Tracker - This is a Windows tracker which can generate
.pt3
files. [webpage] [source and othe resources] - Files in
.pt3
format - ZXArt
Apple II Code to Disk
This great utility will create a DSK image that will automatically load your code and execute it without the need of having DOS or ProDOS on the dist. Here’s the GitHub [repo]