JOY by New Beat [web]

 --- New Beat ---------------------------------------------------------------
                           .---.  .-------.  ,--.  .--.
                           |   | '   .-.   ' \   \/   /
                           |   | |   | |   |  \      / 
                     ,---. |   | |   | |   |   \    /  
                     |   '-'   ' '   '-'   '   /   /   
                      `-------'   `-------'   /   /   
 -------------------------------------------  `--'  ---------------- 2019 ---
  What? It actually happened again? Another demo finished in time for

  To avoid glitches and hiccups, run this demo from a device connected to
  the IDE interface of the Falcon030. Avoid SCSI devices if possible (see
  known issues for more information).

  There are two different versions of this demo:
  - JOY_VGA.PRG: VGA 50Hz version.
  - JOY_RGB.PRG: RGB 50Hz version using the 25MHz pixel clock to achieve
                 horizontal overscan in a 320x240 resolution.

  Which version should you run? Well, it depends on what monitor and
  hardware you have access to.
  - If you have a VGA monitor that is capable of handling a vertical refresh
    rate of 50Hz, or if you have a scan converter, such as the OSSC, then go
    with JOY_VGA.PRG.
  - If you have an old-style RGB monitor (CRT), choose JOY_RGB.PRG. It should
    give you a full overscan in 320x240. This version is almost certainly not
    going to look pretty on a flat-screen. They get fooled by the use of the
    25MHz pixel clock, and the picture often end up being cut-off
  - If nothing of the above works out for you, or if you are too lazy to
    start-up your Falcon030 (shame on you), then Hatari will do the job as
    well. It should not really matter what version you choose. JOY_VGA.PRG
    was used to record a video of the demo with Hatari so that one should
    behave as expected. To achieve full frame-rate, Hatari version 2.2 or
    later is required, along with a fairly powerful computer.

  Both versions are visually identical and run at a constant 50 frames a
  second on a standard Falcon030 with at least 4 MB of ST-RAM (the demo
  requires about 3.6 MB of ST-RAM).
  A note on accelerated computers:
  This demo was created and designed for standard Falcon030 computers. It
  requires a 68030 CPU and must not be loaded into FAST-RAM. It should work
  on CT6x equipped computers if run in 030 mode.
  Known issues:
  - Sometimes the MP2 player refuses to start. If the music is not playing by
    the time the shimmering busybee appears on the screen, please press
    space and restart the demo (the very first part of the demo has no sound).
  - If you run JOY from a SCSI device, you will experience hiccups during the
    demo. SCSI on the Falcon030 uses DMA for the transfer of data and the DMA
    is stealing bus-cycles from the CPU during MP2 streaming and loading of
    data. During some sequences in the demo, when the VBL interrupt consumes
    nearly all available CPU time, and the DMA starts using the bus when
    returning from the VBL interrupt, it will not release the bus in time for
    the next VBL interrupt.
    This will happen more frequently on computers with only 4 MB of ST-RAM as
    the MP2 is then streamed from disk. To avoid this problem, run the demo
    from an IDE device.

  Some facts about this demo:
  - The demo uses the MP2 player by NoCrew.
  - The main-part music "Rainbow Dash!" is a 14-channel XM module. The
    version used in the demo is an edited version, with some parts removed
    and other parts extended to better fit the demo (sorry). The XM module
    was exported as a WAV, resampled at 49170Hz and finally encoded as a MP2.
  - About 9 MB of disk space is used. The MP2 with its 3.5 minutes at a
    bit-rate of 192kBit/s (49,170Hz) accounts for nearly 5 MB of those 9 MB.
  - The DSP is only used for playing the music.
  - All parts of the demo run in full frame-rate (50 frames/s) at a
    resolution of 320*240 in 8-bitplanes.
  - The polygon filler uses a combination of the CPU and Blitter and fits
    entirely in the 68030 instruction cache.
  - Almost all code was written from scratch; only the demo system and the
    shimmering busybee were reused from MORE.
  - The work on this demo started in July 2018 and was completed 11 months
    later, in June 2019.
  - The demo was primarily developed on a PC with Sublime Text,
    (text editor), vasm (cross-assembler), Hatari, PARCP-USB and CosmosEx.
  - Most of the time during development, testing and execution of code was
    performed on real hardware using PARCP-USB and CosmosEx.

  We had a lot of fun creating this demo, and if you enjoyed watching it,
  please let us know one way or another (preferably by giving the demo a
  thumbs-up at http://www.pouet.net). It will help us stay motivated, or if
  nothing else, make us happy!

  Thank you for watching,
  Daniel & Anders / New Beat

 --------------------------------- CREDITS ----------------------------------

                       Code & Design:
                       .................Daniel/New Beat

                       .................Anders/New Beat
                       .................Daniel/New Beat

                       Rainbow dash! (main-part music):

                       Bullet Sequence (end-part music):

                       MP2 player:
                       .........NoRing & NoBrain/NoCrew

                       MP2 player DFD replay patch:

                       ARJ Packer:
                       .................Mr Ni!/TOS-Crew

                       Sentry Packer:

 ---------------------------------------------------- http://nb.atari.org ---