GDR Forum Index
Podcast Podcast
Dev Dev Logs
Search Search
RSS RSS
Register Register
Log in Log in
Reply to topic GDR Forum Index -> Game Developer's Refuge -> Development Log - Gardez 64 (end of 2014 C64 game)
View previous topic :: View next topic  
Author Message
PoV
Moderator

Joined: 21 Aug 2005
Posts: 10782
Location: Canadia
PostPosted: Wed Dec 31, 2014 11:51 am    Post subject: Development Log - Gardez 64 (end of 2014 C64 game) Reply with quote

So I decided to spend the rest of the year (i.e. New Years Eve) working on a Commodore 64 game.

And to make things even crazier, I decided to dig through my old game design notes from when I was a kid, and make a game based on that.

So I started with these:



I'm guessing I was around 12 years old when I made these.


I redrew the character.




And I've been working on sprites for the past few hours using Sprite Pad (a C64 sprite editor).



http://www.coder.pwp.blueyonder.co.uk/spritepad.htm


_________________
Mike Kasprzak
'eh whatever. I used to make AAA and Indie games | Ludum Dare | Blog | Tweetar
View user's profile Send private message
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9412
Location: Not Finland
PostPosted: Wed Dec 31, 2014 12:06 pm    Post subject: Reply with quote

Ugh. I remember charting sprites by hand using graphing paper :| That was not fun. Spritepad looks useful. Gotta remember that one.
_________________
NoOP / Reyn Time -- The $ is screwing everyone these days. (0xDB)
View user's profile Send private message Visit poster's website
PoV
Moderator

Joined: 21 Aug 2005
Posts: 10782
Location: Canadia
PostPosted: Wed Dec 31, 2014 12:33 pm    Post subject: Reply with quote

A friend of mine on Twitter suggested that since I'm using only 1 color in the overlay sprite, then why not just use 1 color mode? That means 2x pixels for that one color. :D


_________________
Mike Kasprzak
'eh whatever. I used to make AAA and Indie games | Ludum Dare | Blog | Tweetar
View user's profile Send private message
PoV
Moderator

Joined: 21 Aug 2005
Posts: 10782
Location: Canadia
PostPosted: Wed Dec 31, 2014 1:07 pm    Post subject: Reply with quote

More improvements. Updated GIF. Before and after:


_________________
Mike Kasprzak
'eh whatever. I used to make AAA and Indie games | Ludum Dare | Blog | Tweetar
View user's profile Send private message
PoV
Moderator

Joined: 21 Aug 2005
Posts: 10782
Location: Canadia
PostPosted: Wed Dec 31, 2014 5:46 pm    Post subject: Reply with quote



Phew!
_________________
Mike Kasprzak
'eh whatever. I used to make AAA and Indie games | Ludum Dare | Blog | Tweetar
View user's profile Send private message
PoV
Moderator

Joined: 21 Aug 2005
Posts: 10782
Location: Canadia
PostPosted: Wed Dec 31, 2014 7:31 pm    Post subject: Reply with quote

Okay. I have proper layered sprite drawing and allocation code, as well as input.


_________________
Mike Kasprzak
'eh whatever. I used to make AAA and Indie games | Ludum Dare | Blog | Tweetar
View user's profile Send private message
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9412
Location: Not Finland
PostPosted: Wed Dec 31, 2014 7:39 pm    Post subject: Reply with quote

that's pretty good work for one day, considering the platform!
_________________
NoOP / Reyn Time -- The $ is screwing everyone these days. (0xDB)
View user's profile Send private message Visit poster's website
PoV
Moderator

Joined: 21 Aug 2005
Posts: 10782
Location: Canadia
PostPosted: Wed Dec 31, 2014 7:41 pm    Post subject: Reply with quote

We've only just begun! :D
_________________
Mike Kasprzak
'eh whatever. I used to make AAA and Indie games | Ludum Dare | Blog | Tweetar
View user's profile Send private message
PoV
Moderator

Joined: 21 Aug 2005
Posts: 10782
Location: Canadia
PostPosted: Wed Dec 31, 2014 9:28 pm    Post subject: Reply with quote

From the creator of Sprite Pad is Char Pad, the Commodore 64 Map Editor.

http://www.coder.pwp.blueyonder.co.uk/charpad.htm

Here's a map.


_________________
Mike Kasprzak
'eh whatever. I used to make AAA and Indie games | Ludum Dare | Blog | Tweetar
View user's profile Send private message
PoV
Moderator

Joined: 21 Aug 2005
Posts: 10782
Location: Canadia
PostPosted: Thu Jan 01, 2015 12:12 am    Post subject: Reply with quote





Map loading works.
_________________
Mike Kasprzak
'eh whatever. I used to make AAA and Indie games | Ludum Dare | Blog | Tweetar
View user's profile Send private message
0xDB
Developer

Joined: 26 Dec 2005
Posts: 1651
Location: Your consciousness.
PostPosted: Thu Jan 01, 2015 6:05 am    Post subject: Reply with quote

\o/

Is Gardez the name of the main char?
_________________
0xDB
View user's profile Send private message Visit poster's website
PoV
Moderator

Joined: 21 Aug 2005
Posts: 10782
Location: Canadia
PostPosted: Thu Jan 01, 2015 9:04 am    Post subject: Reply with quote

Oh right, I never mentioned it here.

I found a little doodle in my notes of the character, and beside it was the word Gardez. To be authentic to the idea of "making a game based on what I created as a kid", I named it that.

I'm tempted to rename it Gardoz though, probably because of Zardoz, which makes me think of something epic (and strange).
_________________
Mike Kasprzak
'eh whatever. I used to make AAA and Indie games | Ludum Dare | Blog | Tweetar


Edited by PoV on Sun Jan 04, 2015 3:25 am; edited 1 time
View user's profile Send private message
PoV
Moderator

Joined: 21 Aug 2005
Posts: 10782
Location: Canadia
PostPosted: Thu Jan 01, 2015 9:10 am    Post subject: Reply with quote

Stayed up late trying to get a SID audio file playing in the game. AFAIK I have everything correct, but it's freezing when I call the Init function.

From what I know:

- SID files are actual 6502 code used to generate audio.
- the file must be placed in a specific location of the 64k memory map.
- the file header has 2 function addresses you call. The Init function, and the "Step" function.

Unfortunately I'm croaking at the Init function.
_________________
Mike Kasprzak
'eh whatever. I used to make AAA and Indie games | Ludum Dare | Blog | Tweetar
View user's profile Send private message
PoV
Moderator

Joined: 21 Aug 2005
Posts: 10782
Location: Canadia
PostPosted: Thu Jan 01, 2015 11:25 am    Post subject: Reply with quote

Gah! Finally. SID!



Seems I was doing everything right. The problem is that I don't understand how to make CC65's linker put things exactly where I want them in memory.

I had to bundle and copy my data manually, then call the functions.


_________________
Mike Kasprzak
'eh whatever. I used to make AAA and Indie games | Ludum Dare | Blog | Tweetar
View user's profile Send private message
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9412
Location: Not Finland
PostPosted: Thu Jan 01, 2015 11:43 am    Post subject: Reply with quote

Quote:

the file must be placed in a specific location of the 64k memory map.


Quote:

The problem is that I don't understand how to make CC65's linker put things exactly where I want them in memory.


Dear god, that's clunk-tastic. I know this is an ancient platform, but not having a variable address is unpleasant. But do keep taking notes -- I'll be getting there as soon as I get tired of playing around with SDL.
_________________
NoOP / Reyn Time -- The $ is screwing everyone these days. (0xDB)
View user's profile Send private message Visit poster's website
PoV
Moderator

Joined: 21 Aug 2005
Posts: 10782
Location: Canadia
PostPosted: Thu Jan 01, 2015 12:15 pm    Post subject: Reply with quote

I know there's a way to do it, I just don't care enough right now to figure it out.

Not to mention, loading your audio as an external PRG file might be a better idea anyway. That way, you don't waste binary space with an original that needs to be copied (but ideally the binary is padded to the right position anyway).

PRG files are pretty interesting. They've very simple, a 2 byte address where the PRG data file should go, followed by the data. If it's a program to be executed, you jump to it and begin.
_________________
Mike Kasprzak
'eh whatever. I used to make AAA and Indie games | Ludum Dare | Blog | Tweetar
View user's profile Send private message
PoV
Moderator

Joined: 21 Aug 2005
Posts: 10782
Location: Canadia
PostPosted: Thu Jan 01, 2015 12:36 pm    Post subject: Reply with quote

One more thing.



Running on the real hardware. :)


Audio not working, but hey! I'll take running. :D
_________________
Mike Kasprzak
'eh whatever. I used to make AAA and Indie games | Ludum Dare | Blog | Tweetar
View user's profile Send private message
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9412
Location: Not Finland
PostPosted: Thu Jan 01, 2015 12:46 pm    Post subject: Reply with quote

I tossed my C64 a few years back, which I believe I've made mention of. One of the SID channels was blown, so games sounded all wonky. Also, one of my pair of disc drives had finally bitten the dust. I kept it for nostalgia purposes, but emulation is just so good now...

But it's good to have one for a *true* test of your code :)

I do have a Commodore Plus/4 that's in near-mint condition, but that's a different beast.
_________________
NoOP / Reyn Time -- The $ is screwing everyone these days. (0xDB)
View user's profile Send private message Visit poster's website
PoV
Moderator

Joined: 21 Aug 2005
Posts: 10782
Location: Canadia
PostPosted: Sun Jan 04, 2015 3:07 pm    Post subject: Reply with quote

So I figured out my Commodore 64 Audio problem. Turns out, it was the Commodore 64 itself! Ha!

Tested all 3 of my C64's. The one "on deck" had no audio, the one in storage had no video, and the C64C I grew up with worked fine.



So I cracked open the two C64's...

https://vine.co/v/OdpZVHrKQAe
https://vine.co/v/OdpKbiTqMZg

Swapped the SID chips, and then...



Success! I now have a working C64 and C64C.

The other, his name will forever be known as "spare parts"
_________________
Mike Kasprzak
'eh whatever. I used to make AAA and Indie games | Ludum Dare | Blog | Tweetar
View user's profile Send private message
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9412
Location: Not Finland
PostPosted: Sun Jan 04, 2015 4:32 pm    Post subject: Reply with quote

Cool. And I love the crazy radial effect your camera is generating against the monitor's refresh rate :)

IIRC the SID chips were socketed, right?
_________________
NoOP / Reyn Time -- The $ is screwing everyone these days. (0xDB)
View user's profile Send private message Visit poster's website
PoV
Moderator

Joined: 21 Aug 2005
Posts: 10782
Location: Canadia
PostPosted: Sun Jan 04, 2015 5:42 pm    Post subject: Reply with quote

Yes. Many of the important chips are socketed on the C64, making spare Commodore's worth keeping around for their parts. :)

Also yes, the crazy Sonar refresh rate effect is great. :D
_________________
Mike Kasprzak
'eh whatever. I used to make AAA and Indie games | Ludum Dare | Blog | Tweetar
View user's profile Send private message
Reply to topic GDR Forum Index -> Game Developer's Refuge -> Development Log - Gardez 64 (end of 2014 C64 game)
Game Developer's Refuge
is proudly hosted by,

HostGator

All trademarks and copyrights on this page are owned by their respective owners. All comments owned by their respective posters.
phpBB code © 2001, 2005 phpBB Group. Other message board code © Kevin Reems.