2018 Reset C64 Craptastic 4KB Game Competition Results

This year’s Reset C64 Craptastic 4KB Game Competition was a great success and we would like to thank all of the competitors for their participation and hard work. Also a big thank-you to the judges and competition sponsors: RGCD, Pond Software, Bitmap Books and Protovision.

Every single entry was produced in the spirit of the competition and contained humour, creative ideas, and a demonstration of amazing skills by the developers – which is exactly what Craptastic is all about! Alas, there has to be a winner (even though we are proud of all the entries) and this time it is Paul Koller for his amazing Conga 4096. The arena shooter, based on RGCD’s Pan Dimensional Conga Combat, is definitely a worthy winner and is an amazing achievement by Paul and unbelievable for a 4KB game!

The winner: Conga 4096 by Paul Koller

Judges’ comments and more details will be published in a special Craptastic Reset mini-issue which will be out soon. Until then, enjoy the games which can be downloaded from the 2018 Craptastic page, and congratulations again to all of the entrants.

PLACINGS

  1. Conga 4096 by Paul Koller (28.86)
  2. WTF by Misfit (26.71)
  3. Snake-a-Space (aka Molly) by Jamie & Molly Fuller, Wave Hero by Geir Straume (26.57)
  4. Chef Quest by Pond/Privy Software, Orbs by Raffaele Formato/Federico Sesler (26.43)
  5. Dustin’ Pond/Privy Software (26.14)
  6. #2vABC by James (24.57)
  7. Kalle Kloakk 4k by Megastyle (24.43)
  8. Trump Tower by Megastyle (24)
  9. Endless Worlds by Derek, Mach-Tank by Malcontent (23.43)
  10. Space Poker by Karol Stasiak (23)
  11. Elevator Eric by Derek (21.43)
  12. Rabid Robots 4k by Richard Bayliss/Alf Yngve (21.14)
  13. Mind the Mines by Derek (21)
  14. Freaky Fish by Chris Page (20.43)
  15. Toxic by Richard Bayliss/Shaun Pearson (19.43)
  16. Memory Safe by Jamie Fuller (19.29)
  17. Parking Assist Chicken (PAC) by Goerp (17.58)
  18. 4kventure by Endurion (16.57)
  19. Sheeps! By Matthew Clarke (16.29)
  20. Roll Roll Roll by Cout (14)
  21. G7000 Racer by Igmar Coenen (13.71)
  22. I Found A Moon Rock In My Nose by Cout (12.57)
  23. Plunko by Cout (12.43)
  24. $100 Box by Cout (11.14)

Out of the comp: Shinobiden Gaiden by @_fou_lu.

Chef Quest

Dustin’

Snake-a-Space (aka Molly)

Orbs

Wave Hero

WTF

____________________________________________________________________________________________________________________

Unkle K / Reset C64
Father, husband, teacher and retro gaming/computer enthusiast! Editor of Reset… C64 magazine.

Follow Reset C64 on Twitter

 

 

Galencia on Steam!

The 2017 C64 GOTY, Galencia is now on Steam! So for those that missed out on Jason Aldred’s brilliant shmup on the C64, you are in luck, just head to Steam and buy it immediately!

If you are asking yourself, what is Galencia, then let us enlighten you – Galencia is a tribute to the great ‘stars and space’ shooters from the 1980’s, a love letter to Galaga and similar games from the golden age of arcade games.

Thanks to the awesome Jason Aldred, we have 5 x Galencia Steam keys to giveaway! All you have to do is tell us what your fave shoot’em up is on Twitter or Facebook (you must follow us and/or Like our page to be in the running).

The Galencia Steam keys giveaway will close at 4:00pm on July 31 (Australia Eastern Standard Time). Giveaway winners will be announced on August 1! So go on, what are you waiting for, hit Twitter and Facebook!

The lowdown:

Oh yeah, Galencia on Steam is enjoying a 40% launch discount, so go and get pew, pew, pewing!

PS: Jason has informed us that there is a sequel in the works, Galencia: Khaos Sphere that you can back right now on Indiegogo!

 

2018 Reset64 4KB Craptastic Game Competition Preview

Development for the 2018 Reset64 4kb ‘Craptastic’ game comp is in full swing. Deadline is fast approaching (June 30th) so we thought we’d give you all a quick look at what some of the devs are up to for the comp.

Best of luck to all the competitors and we can’t wait to try your craptastic creations!

Title: Rabid Robots 4K – Out of Control

Credits: Code & Sound Effects by Richard Bayliss, Graphics by Alf Yngve.

This is a score attack game, consisting of 8 levels. You are a schoolboy, who was playing outside his house with his dog. Suddenly out from nowhere comes a rampage of robots. Your quest is to protect yourself or your dog from incoming robots. For every robot shot with your water pistol, you will score points. If you or your dog makes contact with any of the robots. You’ll run away from the street and the game is over. The robots will be appearing from both sides of the screen. You can only fire left or right. Good luck.

Programmed using CBMPRGStudio by Arthur Jordison.

Title: Shinobiden Gaiden 

Author: @_fou_lu

Shinobiden Gaiden is a short survival adventure game where you are a ninja who must collect a few magical items from a maze-like map before you die or time runs out. You’re pursued by undead the whole time, and all you can do is throw shurikens to stun them. The idea was to practice C64 assembly coding (using a Mac) and enter a silly prologue game to a more serious title I intend to make into the 4kB competition. I only have about 600 bytes left after compression; luckily all that’s left besides filling in the map is game loop and game over logic.

Title: Orb

Author: Annina Games

The game is a demake of Duet, which is a game developed for android/iphone that fits well on the c64. The goal is to manoeuvre two balls in sync, avoiding blocks by rotating either clockwise or counter clockwise. The engine is 90% complete. At the moment the level design is the more difficult stage.

Title: Wave Hero

Author: Geir Straume

How far can you go on your personal watercraft, without hitting any rocks or reefs?
You start off slowly, but the speed automatically increases as you reach various distance milestones. The watercraft is controlled using the fire button only.

Title: G7000 Racer!

Credits: Code by Igmar Coenen, Charset by David Almer

Drive your car as long as possible without crashing into other cars. Try to get 10000+ points to finish the game. You can choose the level of difficulty (easy or hard). The longer you drive the harder it gets (up to three levels).

Interesting info: My first c64 machine language game coded ever. Inspired by the race game on the Philips Videopac G7000 game console. First game I played (besides Pong of course).

Title: Neptune’s Oil

Author: Oziphantom

You are an oil mining company harvesting oil from Neptune, however the Plutonians are not happy and want it for themselves, so they have sent multiple attack drones. Your job is to defend the pumps in this side scrolling blast’em up.

Title: Snake-a-Space

Author/Credits: Designed by Molly Fuller, Coded by Jamie Fuller

Get up on a poorly, planetary-protecting-snake and defend IT for a change!

A simple run-and-jump joystick-mashing bit of craptastic fun! All the ideas for this game came from the imagination of Molly Fuller, my 6 year old daughter, who also helped with some of the graphics and play testing.

Title: Freaky Fish

Credits: Programming by Chris Page, Graphics and Sound by Chris and Brent Page

Freaky Fish has the ability to blow bubbles and must protect himself and his friends over 30 levels from the redneck who is fishing from his boat with dynamite!

This is our first Commodore 64 project since the early 90’s. At the time of writing the game is almost code complete with 88 bytes free when compressed, but space is at a premium and every addition now has to be weighed and optimized. At one point the game looked great but it blew out to a bit over 5k without some “essentials” such as collision detection so we had to spend a few weeks rewriting, cutting features and paring the graphics down. Given the 4k limits, there are lots of sprites, sound effects, music and code that didn’t make the cut so there is the possibility of an enhanced version after the competition.

For development used Kick Assembler, Visual Studio Code, Exomizer 3, VChar64 and Spritepad and we have also used our home grown SFX Editor on the C64.

Title: Kalle Kloakk 4k (Megastyle)

Credits: Code by Docster, Graphics & Music by Rotteroy

The game is about an old man who get stuck in the bathroom on the shopping mall and his struggle to pick up toilet paper that he can stack under the window and climb up and escape. It’s a plattformer with a twist; first you have to set all plattforms, then you have to complete the level. Memory eating music made in Goattracker!

Title: Trump Towers (Megastyle)

Credits: Code by Docster, Sprites by Rotteroy, Graphics by FX

Control the president around in his tower, grab the pussy when you can to get extra points.
No screenshot to be shown yet, Docster just started working on the engine.

Title: Fire (Megastyle)

Credits: Code by Docster, Graphics by FX, Sprites by Rotteroy

Game and watch go C64 4k!

Title: WTF

Credits: Code, Graphics & Audio by Mika “Misfit” Keränen

Bouncing ball has own intelligence. The player only manages the scrolling and the desperate ball tries to keep itself in the middle of the screen.

The main logic and graphics are finished. Needs audio and more levels. I’m very pleased. This game is so frustrating that players will hate me.

Title: CONGA4096

Author: Paul Koller

Game will be an arena shooter with a twist. Game is practically finished. I am currently working on getting some music and sfx into the game. I’ve added a teaser screenshot, which doesn’t show too much, to keep the surprise high.

Title: Dustin’

Author: Graham Axten/Pond Software

Credits:  Code & Graphics by Graham Axten, Music and SFX by Vanja Utne

Dustin the robot has been tasked with cleaning the dust from the precious innards of the world’s best 8-bit computer! Guide him around and help him clean up the dust particles, but watch out for electrical pulses that move across the circuit, they will fry him!

Title: Fire Rescue

Author: Syed U Rizvi

Well to describe the game, I guess you could say the name sums it up but to be honest. It’s a simple rescue mission whereby the ambo guys with a stretcher have to save people jumping from a burning building! And then make sure they make it to the ambulance without falling. Simple eeh!

The progression? So far, so good! I would say the game is 60 percent complete and I am currently working on collision detection and score updating. The rest would be straight forward with setting character graphics on the screen (burning building and other graphic objects).

Title: Chef Quest

Author: Anthony Stiller/Pond Software

Credits: Code & Graphics by Anthony Stiller, Music & SFX by Vanja Utne

Oh no! Chef is out of ingredients so it’s time to venture into the restaurant’s dungeon to restock the larder with delicious monsters. Chef Quest is a tiny, action-oriented RPG and will almost certainly be ready by the deadline.

Title: Elevator Eric

Author: Derek

It’s not a game that’s going to shatter any records of quality, rather just a bit of fun that I knocked together over last day and a half whilst off work.  I haven’t really done much with the C64 for coming on 30 years now I guess it must be (and it shows! lol – I’m about as good or should I say bad now as I was back then!). The game concept is based on games such as Nifty Lifty and Wack Waiters.

Title: $100 Box

Author: Cout

This one is based on a mathematics game theory problem for 100 people, but the game simulates the problem with just one player. The computer selects a random number from 1 to 100 as your lucky number. You will need to guess which box from 00-99 where the lucky number is hidden. The game allows you to have up to 50 guesses, but it’s not easy to win as it sounds!

Title: I Found A Moon Rock In My Nose

Author: Cout

Title Reference: The title comes from a line from the character Ralph Wiggum which is seen on The Simpsons from the episode This Little Wiggy from Season 9, Episode 18.

About the Game:

The object of the game is to pick your nose to find ‘moon rocks’.
You can pick from either your your left or right nostril at anytime.
The more you pick the more points you score!
However, don’t pick too much or you will get a nosebleed!

Includes:

PETSCII Nose Graphics and SID Sound Effects!

About the Author:

Created from the developer of I Ate the Purple Berries from the 2016 Reset ‘Craptastic’ 4kb Game Comp and My Cat’s Breath Smells Like Cat Food which was developed back in 2003. Cout Games creates unique games from some of The Simpsons most popular quotations.

Title: Plunko

Author: Cout

This game is based off one of the pricing games from the US version of The Price Is Right. The player is given 10 flat discs which are released one at a time from the top of the board.  The game board consists of a number of pegs which bounce the disc randomly around. As the disc falls to the bottom, it is impossible to determine where the disc might end up. At the bottom of the board, the disc stop and lands in a money slot the player can win.

I put the game through 100,000 rounds and it is theoretically possible to get the top amount from anywhere the disc is dropped from on the board. However, you do have a greater chance of winning money from the middle, it is also twice as likely that you will get nothing as well. Statistics are available upon request.

Title: Role Role Role

Author: Cout

Roll Roll Roll is a dice game where you roll a single six sided dice where you can win money.

On the first roll, you have the option to keep your roll as cash or roll again. Similarly, on the second roll, you have the same two options again. On the third and final roll, you keep whatever you roll (whatever the outcome). There are 10 rounds to a game.

This is based on a mathematics problem with worked out from the averages of rolling three dice in the hope of scoring the most points. The aim of the game is to beat the average (3.5) or optimally (4.66 for 3 rolls).

____________________________________________________________________________________________________________________

Unkle K / Reset C64
Father, husband, teacher and retro gaming/computer enthusiast! Editor of Reset… C64 magazine.

Follow Reset C64 on Twitter

 

 

2018 Reset64 4KB ‘Craptastic’ Game Competition

We’re excited to announce the 2018 Reset C64 4KB game coding competition. This year’s competition theme is once again…. Craptastic!

“What the bloom’n heck does craptastic mean?”, I hear you ask.

It certainly doesn’t mean crap, although it can! Craptastic can mean ludicrous, bonkers, outrageous, funny, wacky, far out, and silly. The theme simply implies that the compo is just for a bit of fun, not a serious coding competition. You are more than welcome to make an excellent game to submit for the compo. Your game may contain some humour or silliness to fit more with the theme, but it doesn’t have to!

2016 Craptastic Comp Winner: Goblin by Vanja Utne / Pond Software

In the 2016 competition, some entries were truly excellent, others excellent but silly, others truly awful but funny! It’s just a chance for people to do something a little different if they wish and explore ideas/concepts that wouldn’t normally work well in a more serious compo.

Please remember that this competition is limited to 4KB. Yes, any entry submitted can be no more than 4KB when compressed. If your game is more than 1 file, then all the files put together must not exceed the 4KB limit.

We want craptastic game entries! Remember, the key word here is fun! We want both coders and players alike to have fun and enjoy this comp!

Submit your entries to RESET (via email) by 30th June, 2018 (23:59 GMT).

____________________________________________________________________________________________________________________
RULES

Basic rules are as follows:

  1. The competition deadline is 23:59 GMT on the 30th June, 2018. All entries to be submitted to [email protected])
  2. All entrants must register at [email protected]
  3. Entrants are free to preview screenshots and videos of their game(s) to other publications/websites.
  4. The competition will only begin when there are at least 5 registered entrants.
  5. All submitted games MUST be 4KB or less, compressed, and executable on a stock C64 on either or each of tape, disk and cartridge. Your submission may have a separate docs file (either as a C64 executable or a txt file, which doesn’t count towards the 4KB cap).
  6. The games must be previously unreleased and your own work, whether that be by yourself or as part of a collaboration.
  7. PAL must be supported, with additional NTSC support optional (but encouraged).
  8. Participants may submit multiple entries, either as an individual or within a team. Team entries must be registered by an individual, and any potential prizes will be sent to the registered individual only.
  9. All applicants that submit a valid entry will be featured within the next issue of RESET magazine.
  10. Entries should be submitted exclusively to RESET by the competition deadline. Please feel free to share as you wish after the competition has ended (after the compo deadline has passed).
  11. There will be a panel of judges (TBA), and entries will be scored on a point distribution basis across several criteria. The decision of the panel is final.
  12. Judges *CAN* enter games themselves, but cannot self-vote (award points to their own release).
  13. Games must be submitted as freeware.
  14. Games will be published (not necessarily exclusively) on a future Reset Mix-i-disk for the whole world to enjoy, after the competition has concluded, and may be included on a future cartridge compilation.

4th place in the 2016 Craptastic Comp: Bonkey Kong by Graham Axten / Pond Software

____________________________________________________________________________________________________________________
SCORING SYSTEM

The scoring rules are very simple. Depending on the number of entries, the judges will award points to each game over several criteria (as discussed below). If there are 6 entries, 6 points go to the best, then 5, 4, 3, 2 and 1 to the worst.

If a panel member has entered a game themselves, then the number of points that they can award will be adjusted (in this example, to 5) and they will not score their own release.

The criteria that each game will be evaluated on are:

Originality – New idea or “rip off”? Off the wall ideas encouraged.
Concept – Quality of game design, is it fun, is it bonkers, is it craptastic?
Execution – Execution of design, taking into account controls, NTSC/GS compatibility.
Presentation – Quality of graphics, audio and overall presentation. Supremely bad can be seen as a positive in some cases!
Gameplay – A measure of how enjoyable the game is to play.
Lasting Appeal – replay value, addictiveness.
OMG factor – when you see it, do you think “wtf!?” This is the true measure of craptasticness!

When the panel has scored each game accordingly, the totals for each criteria will be divided by the number of judges to produce a mean average. These averages are then added together for each game to give a final score.

CSDB will not be used for voting. Also, entries should not be uploaded to CSDB, or elsewhere until after the competition has closed. Feel free to post screenshots or info though.
____________________________________________________________________________________________________________________
PRIZES

A craptastic gaming comp requires craptastic prizes, right? Actual prizes and more sponsors will be announced soon!

For now, a big thank-you to the following sponsors for their support.

____________________________________________________________________________________________________________________
ADDITIONAL INFORMATION

  • Keep an eye on the Reset64 Facebook page for more information.
  • If you would like to sponsor a prize, please get in touch!

So, what are you waiting for? Get coding, and remember, have fun!!

Previous competition (to help you get inspired): http://csdb.dk/event/?id=2483

____________________________________________________________________________________________________________________

Unkle K / Reset C64
Father, husband, teacher and retro gaming/computer enthusiast! Editor of Reset… C64 magazine.

Follow Reset C64 on Twitter

 

 

Review: Pan-Dimensional Conga Combat

By: Kevin Tilley (Unkle K)

Being an old timer harking from the days of the Atari VCS and Commodore 64, the complexities of modern gaming sometimes get the better of me. Not only that, but with a large family and demanding job, spending hours gaming each day is an impossibility. Short, sharp bursts of gaming not only fit into the small amount of free time I actually have, it also suits my rather limited attention span as well. Cue RGCD, who have been bringing us pick up and play Commodore 64 games for years now, and in 2016 released Pan-Dimensional Conga Combat on the Windows platform via the RGCD itch.io store.

After nearly two years since the original itch.io release, and a rather quiet Greenlight campaign, Pan was released on Steam on February 16.

Self-described as “a rhythm-synchronised, old-school, score-chasing arcade game that plays like some alien coin-op from another dimension”, Pan is a mash of the old and new. I can only describe it as the love child of Volfied and Robotron, with a hint of Geometry Wars thrown in – an impressive pedigree indeed, and fortunately for us, it all gels together perfectly.

Set in a rather confined arena, Pan has you navigating the screen and obliterating everything that moves with your bullet tail. The tail follows you around at a distance that is proportional to your speed – the faster you move the longer your tail gets. You can also charge your on board laser cannon whenever the free roaming purploids drift into your tail. Once charged, you have a short burst mega destructive cannon at your disposal, which is essential when the action hits a certain level of franticness. To complete each level you must make a predetermined set of kills. There are also various score chains you can achieve and an assortment of enemy types to get your head around – with most of them homing straight in on you Robotron style, in various speeds and patterns. Enemy portals are destroyed by looping your tail around them, and levels are completed by entering the warp which opens up as soon as you reach the kill quota.

Pan is a frantic and compulsive score chaser that will have you pulling your hair out in disgust and immediately pressing the button for another go. Controls are simple and the game is immediately accessible. There are enough game modes present to keep you more than interested for a good while (include arcade and a survival mode) and the Steam release introduces online leader boards and achievements. For a game like Pan, these simple additions really add to the games longevity.

Graphics are solid without being outstanding, with the limited palette of colours supported by attractive pixel art and various visual effects, that don’t reach ‘Minter’ levels of trippyness but do their job regardless. The soundtrack is perfectly suitable, with various beats and breaks complimenting the gameplay and adding to the overall experience.

Pan-Dimensional Conga Combat deserves to be played. It’s an honest and fun score chaser that will test your (probably aging) reflexes and reward persistence. Old school gamers looking for a quick blast will love it, and younger gamers should give it a go and prove their superiority on the online leader boards – c’mon, I dare you! Highly recommended.


source: James Monkman

Footnote: A special package is still available on itch.io which contains the game (the itch.io download and a Steam key) as well as a set of two matte-finish A2 RGCD posters.

 

Making Of Reset C64 Intro

By Andrew Burch

While immersed in Syntax 2015 and beginning work on an intro for Hokuto Force (which went on to be released as “Technic” shortly after), I was approached by a familiar face. Unkle K sat down and we had a great chat about family, the C64, my intros and naturally, the Reset magazine. During the chat, he asked if I was interested in doing an intro for Reset64. Given Reset is an Australian magazine and I loved the work they put into it, how could I refuse? Time passes too quickly these days and it would be another 9 months before I’d start to form the basis of the intro. But once started, it came together quickly over the following weeks and I was pleased to be involved in the Reset #10 release with an intro and this write up to accompany it.

Rather than just put a bunch of things on screen, I like to focus on the design of my intros so the effects fit with the music and there is a smooth flow to the experience. Because I have so few SID contacts to help with the music, I begin most of my intros using sidplay2 and HVSC (High Voltage SID Collection) to look for existing tracks which I think I could design an intro around. Often I have an idea of how much memory I want to allocate to music, so this means I can focus on SID files of a certain size. I have a simple script that digs through the HVSC folders looking for SID files under (or between) a certain size and then copying them to a separate folder. I then create a play list from that folder in sidplay2 and explore for suitable tracks. This allows me to create a short list of music, which I will then listen to on repeat as I begin designing the flow of the intro. For this intro, I ended up settling on a track from ECO (Raik Picheta), which I had been wanting to create an intro around for quite a while. I’ve used a few of Raik’s tracks now and love what he creates.

My goal was to create the biggest (and hopefully best) Reset intro to date. I wanted the intro to be more than just a simple greets list, scroller and logo. This meant it had to have multiple parts instead of a single screen. The chosen music track suited a multi-part intro, so I was keen to flesh out something larger than the normal intro that accompanies each issue of Reset. Because this is a milestone release, the intro should celebrate the previous releases in some form and also acknowledge the Reset64 staff. A nice transition of some kind from the start screen to the intro is always a must for me and something I would incorporate into the intro. When designing the flow of the intro, I don’t necessarily know exactly how each part will appear on screen. Mainly, I focus on what each part will represent and build on that. With these few things in mind, and the music track selected, I came up with the flow to use:

  • Transition from BASIC to intro
  • Introduce Reset intro
  • Reset team credits
  • Show logo
  • Intro credits
  • Final part (continuous play)

With some design down for the intro, I now got cracking on writing the code. With every intro I’ve done, I always have multiple parts under development at the same time. I find it a good way to avoid getting stuck on a certain bit for too long and it also helps give an early idea on how well the implementation matches what I envisioned. Each part is developed within its own assembly file, which helps avoid working in large files. For some of the larger parts, I will even split them into smaller assembly files and code each sub effect first before bringing them together. For example, the final part which has a logo swing, cycling text, scroller and border sprites started life as four separate “effects” which were eventually brought together with their own transitions into a single assembly file, which then got merged into the final release file. I’ve found this method allows me to tweak and tune parts and their transitions easily before considering them complete and ready to move into the intro. It also makes it easier to sort out bugs before intro parts are merged together. An added bonus to this is it means I can quickly test each piece in both PAL and NTSC modes too. The final intro file will contain a small section at start up that detects NTSC mode (by peeking at the value in $02A6) and adjusts some variables & instructions to improve stability under that mode.

The assembly files won’t run themselves though and need to be compiled. My choice in compiler is win2c64 which was written by Aart Bik. There are more flexible cross assemblers around, but I found Aart’s to be very easy to use and haven’t had a reason to switch. For code writing I use Sublime Text 2 and a custom syntax colouring scheme I wrote (which I could not live without!). I make use of several common C64 cross development tools like Timanthes, CharPad, SpritePad, Sidplay2 and of course VICE.

Another tool I make use of is Beyond Compare 4, which is great not only for comparing source code changes, but also comparing images. I used this in the Reset intro where I had run the logo data through some conversion routines and wanted to make sure that the before and after output was the same. So before and after screen shots were taken from VICE and fed into Beyond Compare, which can then highlight pixels (bottom panel) where my conversion had faults.

A final piece of software I make frequent use of is Fraps. This tool allows me to capture the intro running in VICE to a video file for playback. This is extremely handy when graphical glitches occur on screen and you can then go back and watch them frame by frame to help diagnose the cause. This was used a few times on the Reset 10 intro where the transition code between parts had some conflict, which resulted in brief graphical glitch flashes and some cases where rasters were flickering. I often find the cause is usually raster interrupts fighting or a timing issue.

Along with the software mentioned, I also have a library of Lua scripts I have developed over the course of my C64 projects which are used to export and transform data into a state ready to be used in one of my assembly files. This includes things like data exporters for sprites, fonts, music, logos and scroller message formatting. There are some days where I spend more time tweaking and improving my tools than I do coding intro parts, simply because of the benefit they offer to the current and future projects. My choice in Lua is simply because, at the time I got back into C64 coding, I was working in the games industry on PS3 & X360 games and used Lua daily. So I found it quick and easy to get my early script library together. I’ve not yet had a reason to switch to something stronger.

I always like to see a transition in an intro from the start screen as I think it’s a nice presentation touch and starts the intro off nicely. For this intro I settled on fading each line of the screen to black (in a pattern), while leaving a nice bright RESET tag in the lower right corner. I use a colour table to ensure that the fade to black looks reasonable no matter what the colour ram, background and border colours are at the time the intro is run. It does however make an assumption the colour RAM is consistent across the screen. You’ll note that the border colour for each 8 pixel high character line also fades out with it, which requires raster interrupts all the way down the screen. It’s actually the same interrupt repeating all the way down, with each row containing its own indexes into the colour table. It’s a simple transition, but gets the intro off to a nice start and something I felt lacking in previous Reset intros.

With the transition done and the intro now starting, I wanted to include something that acted as an “intro to the release”. Reaching issue 10 is a nice milestone for Reset and something for Unkle K and the team to be proud of. I thought it might be good to look back at the previous releases, to see the important dates in their journey so far and then acknowledge their latest release date as part of that. There’s nothing too tricky in terms of code in this part, although originally the dates were not animated using the hardware scroll register. I added the animation to give the screen a little more life as each date fades in and out.

I wanted to dedicate a part of the intro to the team behind Reset who put it together for us to enjoy. It can be thought of as a shout out to the guys who “power” Reset64. This part went through a few design changes before the final was settled on. Originally it started a lot darker, with the scrolling text lit up using white and greys. The colour cycling was also intended to be more of a light source, circling around the text. The names were always going to glow in colour and it was hoped the darker background would put strong emphasis on the name. But the lack of colour felt dull and the “lighting” effect not as good as I imagined it would be. The light source was changed to cycling the colour RAM and brighter colours added. The scrolling “RESET64” text is achieved by rolling character data left and right, which is more efficient than using the hardware scroll and actually scrolling 12 lines of screen data. It leaves plenty of cycles free to scroll the colour ram instead. The top and bottom borders are also open, with sprites waving within. This is actually a really easy trick to perform, and requires you to switch the screen mode to 24 row mode just before the bottom border begins to render. This tricks the VIC into thinking the border is already being rendered, so it doesn’t bother starting it at raster line 250. You simply need to restore it to 25 rows somewhere in the next screen update (I usually do this as part of the frame set up in the top border).

The intro was really starting to come along at this point and I was in need of a logo. Unkle K put me in contact with Shine. This was excellent as I had been looking forward to working with him for a while. Because I wanted to swing the logo (along with bouncing it with Flexible Line Distance), I was keen for a 3 colour logo that could be converted to a character set. Keeping it at 3 colours means the colour RAM does not to be updated during the swing effect. This allows me to spend time doing other things on screen. However, this then places an annoying limit on any artist, but Shine did well to put together a logo (40×8 characters).

The logo arrived in the form of a bitmap, which I then wrote a conversion script for that converted it into unique character data and also a display matrix that could be used to render the characters to screen. This resulted in a set of 194 unique characters for the logo. Part of the conversion process was to also standardise the use of the character colour and the two multi colours. Because the logo started as a bitmap, the multi colours and character colours were not uniform across the logo. An inspection (and adjustment) of the bits for each character byte was done as part of the conversion to ensure the colours were standardised. Beyond Compare was very useful here to verify the output against the original and would highlight where bits had not been converted properly.

Although the logo would be bouncing and swinging across the screen, it wasn’t enough for me. I wanted to give the logo a little more life and decided to add some animation to it. Getting another colour on the logo might be good too, so I added sprites that flash across the letters and Shines tag. I also decided to animate the stars that appear in the top left and right of the logo.

Next I thought about how I could introduce the logo onto the screen. When it appears in the final part of the intro, the logo will swing across onto screen – so that one is easy. But I want to introduce the logo earlier, right after the Reset team credits have been shown. There is a perfect part of the music where this can happen and from the first time I heard the track, I had a mental picture of a logo vertically scrolling up. I settled on using a small “trick” of the VIC hardware, which stops rendering colour and simply renders black if you have both multi-colour and extended colour modes enabled at the same time. Putting this together with a Flexible Line Distance effect, I could make the logo begin to appear from half way down the screen. This was then finished off by rendering a line which the logo could appear from, bounce on and then disappear behind again. You’ll notice in the final intro that the word “MAGAZINE” appears in the bottom half of the screen in a wave pattern. These are sprites and are not affected by the multi-colour + extended colour “trick”.

This trick was used again for the intro credits part, but this time it also hides sprites by having their colour set to black. This way the role and credit can appear from the line in different directions. One is hidden by multi-colour + extended colour being enabled and the other is simply sprite colour changing at a certain raster line. To make the sprites appear, their y position is simply updated. The text appears by again using FLD (Flexible Line Distance) to push the character data down.

With all these parts getting to their completed state, I was able to begin creating the “final” assembly file. This is where all the parts get merged together for the final release of the intro, which means I now need to think seriously about memory layout. For this sort of intro, memory size isn’t an issue – I’m not going to run out. But I’m forever conscious about what memory I’m using and where it makes sense to compress or optimise things. The code will start at $0810 and I’ll have exomizer prefix it with an auto run block on the final build. I’ll be using memory around $0b00 to $0fff for sprite data and some table data. Music will live at $1000 and the logo character set at $2800. The main 1×1 font will live at $3000 and is made up of 64 characters. The larger 1×2 font will live at $3200, followed by animated characters used in various parts. I know I’ll need to allocate a little more space for sprites based on my estimates, so will set aside some memory here for those too. I want all graphics data sitting before $4000 so I don’t have to think about bank swapping. I built in some buffers to each of the key areas to allow for change right up to the last minute. In the end those buffers will either compress right down using Exomizer, or I’ll juggle some data tables around to fill them. The rest is free for code and data tables. With that decided I create a new assembly file with the above memory mapped out, ready to start merging parts together.

Merging everything and their transitions together can be tedious work. It can also be rewarding as you see the intro finally coming together in its final form, but it can be slow going as you realise the transitions you’ve created don’t gel well with the previous part, which then requires some juggling. Or new bugs get introduced, which can be “fun” to hunt down. I’m also more mindful at this stage of memory alignment with certain code blocks and where some bits best fit together. As I bring each piece together I test both PAL and NTSC modes. This way I can see early on where there is flicker (usually in NTSC mode) and do my best to get both running well so by the time the intro is completely together there are minimal changes required to have it run under either mode.

At this stage the intro was really flying along, but I still need to code up the final part. The final part will remain on the screen until the system is rebooted. This screen will contain a few different effects, all happening at once. It’s probably one of the trickiest parts to get complete as you not only need to get each effect running, but they have to run side by side with everything else going on screen and everything needs to transition in smoothly. I manage this with some raster interrupt juggling as each effect transitions on screen until finally it just loops forever.

When designing this part, I knew it had to have the logo and it would swing and bounce (using FLD and the hardware scroll register). This would take up the first 10 rows of screen display. When using FLD to bounce the top section of the screen, you need a second FLD effect further down to balance it out. As the top FLD increases in height, the lower FLD decreases. That way the lower section of the screen remains stable all through the bounce.

In the bottom section of the screen I wanted to put the scroller and settled on a 4×4 scroller. Instead of taking up more memory with a new 4×4 font, I wanted to dynamically create a 4×4 version of the 1×1 font already in use. Creating a scroller like this isn’t too difficult (I’ve created a tutorial on my site www.0xc64.com for those that are interested). It requires 16 characters, which make up every combination of 2×2 pixel data. Then using a bit mask and some shifting as each 2×2 bit block is processed, the scroller code creates an index into those characters to build the required 4×4 version.

That left the middle of the screen empty to do something with. I thought it might be nice to show off what features would be appearing in the release. Originally this was just a blue background with colour cycling over the text. It felt too dull and as always I wanted to put more on screen. I ended up with a parallax starfield, which was split in the middle of the screen. This had stars rolling left on one side and right on the other, keeping the flow of the colour cycling on the text. Because the new issue would contain many features, I rotate through new features every so often. With the old feature being hidden with blue colour. The update code detects this and then begins to render the next feature while the colour ram and background colours match. This way the next feature smoothly transitions on to screen.

As a final touch for this part, I opened the top and bottom borders again and added some sprites with a subtle wave to give them some life. Once all the pieces of the final part were brought together (with their transitions), it was added to the final release file.

Quite often as parts evolve, I have to juggle where updates and transitions occur, as adding more things to the screen takes up more raster time. I use a simple method of changing the border colour using an inc and dec on $d020 to see roughly how many scan lines certain update / render routines are taking up. In the screen shot below for example, the final part has several interrupts performing update and rendering for various things going on in the frame. The big gap at the top is reserved for the music, frame prep and top border sprite set up. As you see down the screen, the border changes colours at certain spots, showing the rough start and end raster lines for different routines. Often these will increase and decrease depending on what code is executed in the update. Where I have routines that execute on alternating frames, I can combine these into 1 block to try and get more effects into each screen.

At this point, the intro was ready. The scroller text and feature text are placed right at the end of the intro, which makes them easy to update. I always put these sorts of things at the end since they are variable in length and I don’t want to have to shuffle code or data around if their length exceeds what I had allowed for.

Working on the intro for Reset #10 was a great experience. It came out better than I had planned and certainly hope everyone can enjoy it. Congratulations to Reset for reaching 10 releases and let’s hope there are many more to come.
One part that you’ll never see in the intro is this one. Originally it was going to form the basis of the final continuous play part of the intro. A parallax star field, with a huge vertical logo on the right. It was intended the logo be made of multi-colour sprites, which could be moved around separate to the starfield. Text would be displayed on the right, acting as the scroller. It was ditched as I wanted to do far more on the screen and felt limited by the design. The white lines at the bottom is the raster time the star field animation is taking up.

Pre-order the latest issue of RESET C64 right now from Binary Zone!

 

2016 Reset C64 ‘Craptastic’ 4KB Game Competition Results

Whoa, the Reset C64 ‘Craptastic’ 4KB game coding competition was a great success and we would like to thank all of the competitors for their participation and hard work. Also a big thank-you to the judges and competition sponsors, Retro Computer Scene, Bitmap Books and Protovision.

The competition was extremely close and tough to judge, but every single entry brought a smile to our faces. Like any cmpetition, there could only be one winner, and this time it was Vanja Utne of Pond/Privy Software with her game, Goblin – an amazing achievement for a 4KB game!

The winner: Goblin by Vanja Utne

You can play the games on the official compilation disk (available here) which was coded and compiled by Richard Bayliss (thanks Richard!). Judges’ comments and more details will be published in the Reset Christmas mini-issue, which will be out soon! Until then, enjoy the games and on behalf of the Reset team, we wish you all a Merry Christmas!

PLACINGS

  1. Goblin by Vanja Utne (30)
  2. Dog by Vanja Utne (29.86)
  3. Lumberjack by MajikeyriC (28)
  4. Bonkey Kong by Graham Axten (27.57)
  5. Super Ski by Andreas Gustafsso (27.29)
  6. Rise and Shine Professor Miggles by Paulko64 (26.57)
  7. Attack of the Mutant Cabbages by Anthony Stiller (26.4)
  8. Winky Blinky by Roy Fielding (25.29)
  9. Granny’s Teeth by Richard Bayliss (23.67)
  10. Zombie Massacre by Wanax (23.57)
  11. Antarctica by Antarctica (23.29)
  12. Picross by Oziphantom (22.86)
  13. I am the Flashing C64 Cursor by Craig Derbyshire (22.29)
  14. Firefighter Jenny by OziphantoM (21.14)
  15. Watschinator by Georg RottensteineR (20.29)
  16. Valentine Day Shopping Simulator by Karmic (18.57)
  17. Princess Saver 2000 by Freakin Frankie (11)
  18. :10 by COUT (10.43)
  19. I Ate the Purple Berries by COUT (9.71)
  20. $#!7 by COUT (8.14)
  21. MASTERBAGELS by COUT (7.14)

____________________________________________________________________________________________________________________

Unkle K / Reset C64
Father, husband, teacher and retro gaming/computer enthusiast! Editor of Reset… C64 magazine.

Follow Reset C64 on Twitter