Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
  You are not logged in - nap
Evening Star Enhanced   [2023]

Evening Star Enhanced Released by :
Grue

Release Date :
23 December 2023

Type :
C64 Game

User rating:**********  9.9/10 (8 votes)   See votestatistics

Credits :
Code .... Grue of Beyond Force, Extend, Kasettilamerit
  TNT of Beyond Force, Kasettilamerit
Music .... Linus of Censor Design, Fossil, MultiStyle Labs, Performers
Graphics .... Duce of Extend
Test .... Trurl of Extend


SIDs used in this release :
Locomotive Chef(/MUSICIANS/L/Linus/Locomotive_Chef.sid)

Download :

Look for downloads on external sites:
 Pokefinder.org


Summary
Submitted by Grue on 23 December 2023
Evening Star Enhanced Edition

Why, you may ask? It's a slow niche simulator for a steam engine.

I also wondered about that, but I frequently loaded Southern Belle from Tape, which intrigued me. I had no instructions, and my English skills were a lot worse than today. Somehow, I figured it out so much that I got the train moving and discovered that buildings, stations, and tunnels were on the way.

The 21st Century came, and U64 has a turbo option for the 6502, so I started to wonder if older games would work with it, and Southen Belle popped into my mind. So, I started experimenting with it and made some YouTube videos about faster execution on my YT channel.
But then the "winter came." I bought my old childhood home, and all my time and money went into renovating an old house. After a bit less than two years, I had to get something else to think about than my still ongoing renovation project, and I found out that Southern Belle had been improved and released with a new name and track:

Evening Star

I had a lot of notes about the Southern Belle game engine zero page and routine names already, so I focused on the Evening Star. It was easy to see that the codebase was almost the same, almost but not 100%, so there are some changes to the game engine. I used Ghidra for the reverse engineering part of the game, and after I was finished there, I moved on to 6502Bench to get the sources. I painstakingly got through the code again on 6502Bench and named all the known routines and variables to get a recompilable source. It took some time to get it 100% relocatable, but finally, I had the source code for the whole game.

It became clear that the game had been limited to other 6502 platforms with only 32k of RAM, but the c64 port wasn't enhanced. So the code had been heavily optimized for size and not for speed.

I timed High-Speed Run on the original release, which took approximately 7 minutes and 39 seconds. It was a good baseline for improvements. Ultimately, I implemented the CIA TOD clock timing feature to see if changes made it faster, and it got a way faster in the process.

I also implemented some new features like the Help Screen during the gameplay and imported the Evening Star train
image from the ZX-Spectrum version of the game to the title screen.

Duce / Extend painted excellent loading gfx for the "intro" part. Initially, I asked him to convert the original Spectrum loading image, but Duce suggested a new piece as the original was lame.

Some speed enhancements:
- C128 2Mhz mode in the borders
- if REU is Detected, it is used to clean Gfx Buffer and for copying it to the bitmap
- A lot of speed code added for places it needs to be
- Pixel plotting integrated into line drawing routine instead of JSR/RTS to it
- Game math speed improvements
- Smoke drawing routine rework
- TNT / BF overhauled the 3D engine and objects into a more optimized form. It's still not 100%.

There's still room for more improvements, but this project hasn't been touched for over 10 months, so I decided to release it.

The game also included a lot of small touches and polish here and there, which are too long to list here,
but do check the Changes.txt for the pains involved in developing this version.

During the gameplay, hit F1 for the help screen and F7 for stats on how many frames the last scene took time to draw.

You cannot really count the hours spent on this kind of process; reverse engineering binary into source code is a very slow process and, in a way, very addictive. Coding new features and modifying original code requires understanding how the game works; there are no real shortcuts to this.

.
Tools used for this:

RetroDebugger - For finding out what zero page locations game uses and their meaning, lots of trial and error
Debugging and testing
Ghidra - For general reverse engineering of the code
6502Bench - For generating 64tass compatible sourcecode
010Editor - Modifying bits and pieces
Speedcrunch - for various calculations
Multipaint - Importing ZX-Spectrum gfx from the screenshot and converting it to hires data
VSCode - For all source and text editing needs.
64tass - Compiler of my choise
Vice Emulator - Testing, debugging, and checking initial c128 and supercpu compatibility. I also figured out that 64-bit builds of vice crash randomly at the start on Windows. It took me a way too long to realize that, but using x86 builds works better.
Search CSDb
Advanced
Navigate
Prev - Random - Next
Detailed Info
· Summaries (1)
· User Comments (7)
· Production Notes (1)
Fun Stuff
· Goofs
· Hidden Parts
· Trivia
Forum
· Discuss this release
Support CSDb
Help keep CSDb running:



Funding status:




About this site:
CSDb (Commodore 64 Scene Database) is a website which goal is to gather as much information and material about the scene around the commodore 64 computer - the worlds most popular home computer throughout time. Here you can find almost anything which was ever made for the commodore 64, and more is being added every day. As this website is scene related, you can mostly find demos, music and graphics made by the people who made the scene (the sceners), but you can also find a lot of the old classic games here. Try out the search box in the top right corner, or check out the CSDb main page for the latest additions.
Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.1 sec.