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


Production Info
Submitted by Grue on 23 December 2023
Evening Star modifications to the original game code:

Making Bitmap and Gfx Buffer copy and empty routines much faster

Engine gfx copy to straight loop without RLE depacking.

Engine gfx now handles emptying the buffer at the lower part of the buffer

Gauge base gfx plot now LDA / STA sequence with no looping. The original was way too slow

Implemented Buffer clear code to get rid of rubbish in my engine, clearing the lower part of the buffer Caused

Buffer to bitmap copy, replaced with faster code.

Signal and Gradient copy to bitmap now way faster.

Removed "Collar line" from the play area. It was drawn with a slow 3D engine
- reimplemented it later into bitmap clear speed code as plain lda/sta sequences.

Message area of the play screen scrolls bitmap, also when there is no message shown
- Implemented M key to control scroll on/off
- If there's no message shown, don't scroll empty bitmap...

Implemented Fire color in the firebox, as seen on the ZX-Spectrum version

Fixed file operations to be device-independent

Better random number routine added from Codebase64.com
The original game used a Kernal jiffy clock for random

Replaced original keyboard handling with something different
- Original game read keyboard 3x in the main game loop to avoid lag
- Keyboard is now read in IRQ, and the received key is stored in memory
- GETIN is not called again until the game has processed the earlier key and acknowledged that the key is read
- With this modification, we can call the read keyboard just once in the main loop and get a responsive game experience

Added Pause Message

Implemented a $d030 speeder in the border area for c128 and other compatible turbos
-original game with vice = approx 7min 39sec
-highspeed run with vice c64 = 5min 52sec
-C128 + IDE64 = 4min 6sec
-U64+external cart settings with $D030 in borders and 48Mhz = 1:36
-U64+external cart settings with 48Mhz always on = 43sec

I traced Loading Bug for too long, but in the end, it was a refreshing learning experience for a note here:
- If you have IRQ running on $fffe/$ffff, you cannot switch Kernal on if you use raster IRQ
- Set 0314/0315 somewhere you can ack raster IRQ with d019
- Make sure you don't typo #<label #>label
- load needs LDA #$00 before the call to load,8,1 even when it is set in SETSLFS
- try to name your variables in a easier way to debug...

TNT/Bf supplied a patch that fixes the Track Gradient display code. The original was bugged.
- now it can show steep slopes. The original code had a bug that prevented that
- even better patch!

Fixed C128 $d030 turbo again to work with the IDE64 and C128 combination. You cannot call Kernal routines safely.
If 2Mhz is on.

Implemented Benchmark for High-Speed run, TOD clock init 50/60hz for NTSC compatibility. End of run Result is shown
on-screen, and you must press X to exit instead of waiting like in the original game once the run is finished.

Added missing train gfx to the title screen that the ZX-Spectrum version of the game has.

Tnt made optimizations for the line drawing routine.
- Integrated Draw_Plot routine in Line Drawing code to avoid unnecessary JSR/RTS
- Improved divide calculations seedwise

Implemented more speed code
- The base image for the Engine is now drawn with lda/sta sequences instead of looping
- $FF bytes of Engine are only Drawn once on play screen init as they don't need to update every frame
- Play screen buffer cleaning implemented with speed code.
- In total, over 20sec are gained in the benchmark run.

Keyboard feedback
- upper left corners turn to red when the game reads the key press
- turn back to blue after $10 frames

Tnt supplied a faster buffer to the bitmap copy routine, which cleverly skips parts that don't need updating.

Fixed Benchmark mode, finally. I didn't understand that CIA TOD Times are in BCD
- It took me way too long to realize
- I spend time coding frame counter-based time display to compare results
- It looked like there was 6 seconds difference between real-time and the CIA TOD clock
- Tnt to the rescue, who supplied me with a print BCD routine.
- I feel like an ass now, but everything works!

Implemented the HELP screen for the game screen. It's activated by pressing F1

Current Benchmark result:
- C64 + IDE64: 4 min 15.06 sec
- C128 + IDE64: 3 min 8.06 sec
- U64+external cart settings 48Mhz: 33 sec
- U64+external cart settings 48Mhz Turbobit: 1 min 13.09 sec
- U64 48 Mhz 5.9sec

Cleanups for different screen transitions

Change to tscrunch from tinycrunch as it was so slow

Implemented REU cleaning of Gfx_Buffer and Copying Buffer to Bitmap
- Benchmark with 1Mhz U64 = 4 min 2 sec, 13 secs faster than with CPU
- Implemented REU check and modifying routines accordingly so it should also work in non-REU machines
- REU Detected text added to the title screen if REU is Detected.
- U64 48Mhz with $d030 control using REU: 1 min 13,2 sec
- U64 48Mhz manual control with REU: 34,05sec, sec slower than without REU

Added check for C128
- If the user has C128 and REU, do not do REU stuff in 2Mhz

Intro loading screen viewer started, needs more refining later when I get the final picture from Duce

Changed to nucrunch as earlier packers didn't work with SCPU

The signal panel is now redrawn if it changes. The original code redrew it every 1/4 mile, even when it was the same.

Fixed benchmark to show actual deciseconds

Added fps counter. It Shows how many frames it takes to draw one scene.
- Also, the max value is shown. It can be toggled with the F7 key.
- Benchmark shows the last value and max at the end of the benchmark

Restore key handling so that it won't crash our Game.

Added IRQ -based time counter to measure game progression time.
- 1 round on the game engine is 1sec of game time
- added counter, started on drawing each gfx frame, and check if 50+ frames have passed. If so, run a new round immediately. If not, wait for 50 frames (approx 1sec on PAL)
- implemented time acceleration control to work with this new frame counter.
- Currently, on time acceleration game runs ten rounds and draws a new frame.

TNT supplied:
- Optimized character to bitmap plotting routines, in total 4 seconds gain in benchmark, which is quite impressive
- Optimized number conversions and other printing optimizations

Animated firepit, like on the spectrum version.
- Run on waiting cycles for 1/sec to be filled up.
- Smoke looks much better now

Current benchmark run on plain c64 with vice: 4min 9.4 sec
- REU + c64 = 3min 53.1sec
- TNT supplied yet another version of Signal Draw. 2.2sec faster benchmark run!
- TNT supplied an enhanced Bitmap Scrolling Routine for the message area

Benchmark time
C128: 03:02.5
C64: 4:07.9

Code cleaning
- removed lots of redundant code
- reorganization of the source code into smaller bits

Dynamic framerate
- measure how much time it takes to draw one frame
- use the measured time for the divider for one second, which is one game cycle
- divide the speed by how many times we can draw the game screen during one second
- draw extra frames by adding out divided speed value
- works now with c64, c128 2Mhz, and other c64 CPU speeders like supercpu

TNT supplied yet another improvement on the 3d engine
- objects changed into coordinates from lines
- no need to calculate object points multiple times if we need to draw another line from the same point.
- 30sec improvement on benchmark with stock c64, IMPRESSIVE!

Wrapped things up, removed some debug features from the source code (I hope I didn't miss any), and wrote some release-making additions to the build script.
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.114 sec.