Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > A Simple Commodore 64 Game in C++17
2016-09-26 12:34
Martin Piper

Registered: Nov 2007
Posts: 739
A Simple Commodore 64 Game in C++17

CppCon 2016: Jason Turner Β“Rich Code for Tiny Computers: A Simple Commodore 64 Game in C++17Β”

https://www.youtube.com/watch?v=zBkNBP00wJE

Rather interesting to watch the compiler in action from: https://youtu.be/zBkNBP00wJE?t=747
 
... 10 posts hidden. Click here to view all posts....
 
2016-09-27 14:44
Mr. SID

Registered: Jan 2003
Posts: 425
I guess that's not helpful because:
Quote:

Thumb has all the advantages of a 32-bit core:
32-bit address space
32-bit registers
32-bit shifter, and Arithmetic Logic Unit (ALU)
32-bit memory transfer.

Only the opcodes are 16bit, so you still have all the same problems you have on x86.
2016-09-27 14:48
Peacemaker

Registered: Sep 2004
Posts: 279
grrr. fuck you commodore, why didnt you make this machine 32bit? so c++ would be more useable :(
2016-09-27 17:49
ChristopherJam

Registered: Aug 2004
Posts: 1424
Quote: grrr. fuck you commodore, why didnt you make this machine 32bit? so c++ would be more useable :(

πŸ˜‚πŸ˜‚πŸ˜‚
2016-09-27 18:10
MagerValp

Registered: Dec 2001
Posts: 1082
Quoting Mr. SID
Only the opcodes are 16bit, so you still have all the same problems you have on x86.


Well except the ARM instruction set is actually sane :)
2020-04-18 19:03
TWW

Registered: Jul 2009
Posts: 557
I watched the presentation and got inspired to code this manually.

However the original contained some things I wanted to improve and still see if the result (size / # of instructions) could match the compiler. These are the points which were improved:

- start with RUN command OR autorun (added)
- No clear screen when stared (Implemented)
- Border color not set (Implemented)
- Use full screen size instead of 256 pixels (9 bit arithmics vs 8 bit) (Implemented)
- Ball getting stuck bug when bouncing off a player if it still has collision detected. (Fixed)
- Decimal score to 99 (Implemented)
- Limit player top & bottom (min/max Y) (Fixed)
- 1 player sprite-colour not set (same as background) (Fixed)
- Reset both ball and player position after a miss. (Implemented)
- Cosmetic - moved the score away from the screen centre (Implemented)

The result ended up as follows (original values obtained from the presentation):

Original x86 (No idea of the compiled size):
- Compiled: 83 x86 instructions - excluding boilerplate (graphics)
- Compiled: 231 x86 instructions total incl. gfx

Compiled: 419 x6510 instructions total
- 126 bytes of graphics written => 2 instructions each byte = 252
- 419 - 252 = 167 instructions for gamecode (estimated)
compiled: 1005 bytes (6510)
- Graphics = 5 x 126 = 630b
- 1005 - 630 = 375 bytes without graphics (estimated).

After adding the improvements above I ended up with:

hand coded Size excl. gfx: 301 bytes vs 375 bytes
hand coded size Incl. gfx: 390 bytes vs 1005 bytes
hand coded excl. gfx: 115 Instructions vs 167 Instructions
hand coded incl. gfx: 139 Instructions vs 419 Instructions

At least some improvement. Actually only 32 instructions more than the x86 version looking only at the game code.
2020-04-19 11:39
hedning

Registered: Mar 2009
Posts: 4808
A Simple Commodore 64 Game in C++17
Previous - 1 | 2 - Next
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
Didi/Laxity
iAN CooG/HVSC
Isildur/Samar
Acidchild/Padua
Airwolf/F4CG
kbs/Pht/Lxt
sebalozlepsi
dlee
Guests online: 172
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Codeboys & Endians  (9.7)
4 Mojo  (9.6)
5 Coma Light 13  (9.6)
6 Edge of Disgrace  (9.6)
7 Signal Carnival  (9.6)
8 Wonderland XIV  (9.5)
9 Uncensored  (9.5)
10 Comaland 100%  (9.5)
Top onefile Demos
1 Nine  (9.7)
2 Layers  (9.6)
3 Cubic Dream  (9.6)
4 Party Elk 2  (9.6)
5 Copper Booze  (9.5)
6 Scan and Spin  (9.5)
7 Onscreen 5k  (9.5)
8 Grey  (9.5)
9 Dawnfall V1.1  (9.5)
10 Rainbow Connection  (9.5)
Top Groups
1 Artline Designs  (9.3)
2 Booze Design  (9.3)
3 Oxyron  (9.3)
4 Performers  (9.3)
5 Censor Design  (9.3)
Top Swappers
1 Derbyshire Ram  (10)
2 Jerry  (9.8)
3 Acidchild  (9.7)
4 Cash  (9.6)
5 Violator  (9.6)

Home - Disclaimer
Copyright Β© No Name 2001-2025
Page generated in: 0.044 sec.