Coder Social home page Coder Social logo

bitshifters / twisted-brain Goto Github PK

View Code? Open in Web Editor NEW
5.0 3.0 2.0 28.14 MB

#noteletext #justrasters

Assembly 5.96% Batchfile 0.09% Python 2.97% Visual Basic 0.13% C++ 79.81% C 11.04%
bbc-microbit bbc-master demoscene 6502-assembly vgm sn76489

twisted-brain's Introduction

TWiSTeD bRaIn

aka #noteletext #justrasters

A new demo for the BBC Master by ~ BITSHIFTERS COLLECTIVE ~

Presented at the NOVA 2018 demoparty on 23rd June 2018 in Budleigh Salterton, Devon. This demo will twist the 6845 CRTC video chip in your BBC Master computer. If you experience any glitches or have compatibility problems please report them to us as a GitHub issue. Otherwise, just enjoy the show & let us know what you think!

(We also broke your favourite emulator a little bit, sorry about that! ;)

CREDITS

  • Code & FX by kieranhj
  • Atari ST music by Mad Max
  • Music code & Atari ST port by Henley
  • Artwork by Dethmunk
  • Bitshifters logo by @Horsenburger
  • Font by Razor

CONTACT

INVERSE PHASE is creating authentic chiptunes please offer your support by visiting www.inversephase.com

TOOLS USED

BeebAsm, b-em emulator, jsbeeb emulator Exomizer, Pucrunch, Visual Studio Code GitHub & more

TECHNICAL SUPPORT

This demo requires a standard issue BBC Master 128K computer. Only MOS 3.20 has been tested, other MOS versions may be supported. Let us know!

All 4x sideways RAM banks 4 - 7 must be available for use. If you have ROMs installed internally these may be occupying sideways RAM banks. You will need to remove them and check links LK18 and LK19 are set correcly as per the Master Reference manual.

PAGE must be &1900 or lower. Type "P.~PAGE" in BASIC to check your value. If this is higher than &E00 then you may have a ROM installed that is claiming precious RAM! Try unplugging any non-essential ROMS with *UNPLUG.

Coprocessors and the Tube must be disabled. Type *CONF.NOTUBE and reset.

This demo has been tested on real floppy disc hardware, Retroclinic DataCentre and MAMMFS for MMC devices.

twisted-brain's People

Contributors

kieranhj avatar simondotm avatar tom-seddon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

tom-seddon hexwab

twisted-brain's Issues

Plasma FX: Need more control over colour / size changes

At the moment the plasma FX just cycles through a table of colour combos as it increases the bar size from smallest to largest.

Need to be able to control the colour and size parameters (and maybe the speed of flow) from the script for sequencing.

Twister FX: Need better sine tables

Twister needs much better sine / multiplications tables that the one at the moment.

Also potentially change the FX so can only see 1 / 2 / 3 / 4 rather than always show the repeated frame buffer.

Cassette filing system is unhappy with filenames

So I copied the files to tape[1] using the obvious filenames in the order in which they are loaded ("Twisted", "Brain", "Bank0", "Bank1", "Bank2", "Music", "Hazel"). Given that the fast disksys routines are disabled in favour of straight OSFILE I had high hopes it would Just Work, but no such luck. To CFS, "Bank0", "Bank0 " and "$.Bank0 " are all distinct. I brute-forced this by changing the OSFILE filename pointer at &1CAB from &1CA1 to &1CAA (""), which worked just fine (as, I suspect, would saving files called "$.Bank0 " etc.). However, it would be great if (a) the filenames passed to OSFILE were truly FS-agnostic (also maybe worth *OPT1,0 to avoid spoiling the countdown); (b) there was an official UEF build (or even an audio file for the UEF-impaired), as not everyone has a working disc system or the means to easily transfer disc images (and having this demo work far and wide is the goal, right? :). Not sure of the best way to automate UEF creation, although a program on disc that saves a bunch of files to tape may suffice for use in an UEF-writing emulator such as BeebEm (what I used for UEF creation, although not for playback to real hardware).

[1] Sadly, at just shy of 18 minutes' loading time, still currently the fastest way of getting code into my Master.

Text FX: Need to reveal text

Ideally have a system for displaying additional characters one frame at a time to write text.

(At the moment the string is written to the screen at FX init.)

VBlinds FX: Need more variations

Would like at least 2x additional variations of the sine wave table for the vblinds FX.
Potentially could have other palettes and such.

Twister FX: Need final GFX

At the moment the GFX are for MODE 1 but displayed in MODE 2, which is weird.

Either move the FX to MODE 1 or change to MODE 2.

Parallax FX: Need final GFX

Current GFX are created for MODE 1 but drawn in MODE 2 so look awful. Either move to MODE 1 or change the GFX to be in MODE 2 with nice colours. Could move to 2x scanlines for dither perhaps?

How does the demo end?

At the moment it just sits on copper forever. Is this OK, do we want to have an actual stop?

Text FX: Need interesting palette change patterns

At the moment the palette changes just scroll vertically - would be much more interesting to have these on various sine tables to provide interest.

Also additional colour combinations that look nice.

Final sequencing

Once all variations are in plus text etc. need to time all the FX changes to music where possible.

Remove music pauses when switching FX

Every FX module needs to ensure that the init functions poll the music player if taking longer than 20ms.

Can solve some of this by creating generic memcopy (with poll) and pu unpack (with poll) helper functions, but ultimately responsibility of each module.

Text FX: Need to write text

Presume text portion contains some or all of:

  • Specs (BBC, 2MHz 6502, SN76489, CRTC 6845, etc.)
  • Credits (Kieran, Simon, music)
  • Thankz (IP, everyone else)
  • Greetz (everyone at the party)

Need to write and add to sequence.

Kefrens FX: Need proper bar colours

At the moment the bars are just cycled from byte 0 to 255 so end up a MODE 2 multi-coloured mess.

Make the bars look more appealing in some way, this might require dithering across two scanlines?

Need additional title pages

After Bitshifters logo need at least some of the following:

  • Presents
  • at NOVA 2018
  • Demo name (Twisted Brain?)

Or just use John's Twisted Brain screenie.

Logo FX: transition to wibble

Bitshifters sine wibble can't just appear, needs to appear smoothly.
Would be nice to have some other variations in here as well.

Demo should probably test for BBC Master

Same as POP and barf if not.

Also might be worth seeing if the demo can boot at PAGE &1900 since lots of people seem to have crappy hacked DFS installed for their MMC devices.

Also add *FX200,3 for safety.

Kefrens FX: Need more variations

Ideally would like 2x more sine wave variations for the FX.
Can also have variations in the bar widths.
Potentially also have 2x bars simultaneously by alternating between sine tables.

Checkerboard FX: does this need recoding in MODE 1?

At the moment the Checkerboard Zoom FX is in MODE 4 but the switch between low & high frequency ULA modes puts the timing out of sync ever-so slightly.

Might be acceptable for the demo but otherwise would need to recode in MODE 1. (Option of coloured / dithered boxes in this case?!)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.