Ranquest, new video game for the Propeller
JT Cook
Posts: 487
Ranquest - a game for the Parallax Propeller C3 board
The king needs your help! The six mystical treasures have been taken from the castle! Locate the six
treausres and return them safely to the save the kingdom. Are you brave enough for this task?
Ranquest requires a Parallax C3 board, micro SD card, TV, and keyboard (NES controller and adapter optional). Copy all the files from the sd_card folder to the root of the SD card and load up ranquest.bin to start to play.
The game also support PAL TVs, just create an empty tile file called "pal.tv" and place it in the root of the SD card.
Credits:
Game: Jay Cook
Music: John Wedgeworth
TV driver that supports either NTSC or PAL by Parallax and Jim Bagley
SNEcog - SN76489 emulator V0.6 (C) 2011 by Johannes Ahlebrand
C3 SD Card driver by David Betz,Mike Green,Tomas Rokicki, and Jonathan Dummer
Port to standard Propeller boards - Roadster
NOTE: There are two different downloads...
ranquest_v1.zip - this will only run the Parallax Propeller C3
ranquest_DemoBoard_ElJugader.zip - this will run on more standard Parallax propeller configurations. You may need to make some minor modifications to get this running on your own Propeller setup (like pin assignments).
The king needs your help! The six mystical treasures have been taken from the castle! Locate the six
treausres and return them safely to the save the kingdom. Are you brave enough for this task?
Ranquest requires a Parallax C3 board, micro SD card, TV, and keyboard (NES controller and adapter optional). Copy all the files from the sd_card folder to the root of the SD card and load up ranquest.bin to start to play.
The game also support PAL TVs, just create an empty tile file called "pal.tv" and place it in the root of the SD card.
Credits:
Game: Jay Cook
Music: John Wedgeworth
TV driver that supports either NTSC or PAL by Parallax and Jim Bagley
SNEcog - SN76489 emulator V0.6 (C) 2011 by Johannes Ahlebrand
C3 SD Card driver by David Betz,Mike Green,Tomas Rokicki, and Jonathan Dummer
Port to standard Propeller boards - Roadster
NOTE: There are two different downloads...
ranquest_v1.zip - this will only run the Parallax Propeller C3
ranquest_DemoBoard_ElJugader.zip - this will run on more standard Parallax propeller configurations. You may need to make some minor modifications to get this running on your own Propeller setup (like pin assignments).
Comments
Does it take full advantage of the extra features of the C3?
Source code in C??
/Johannes
OBC
I will take some new screen grabs after the game is uploaded.
The SN76489 is probably the simplest commercial available PSG ever created, that's one of the reasons for SNEcog being so small (476 bytes).
Wow, that screenshoot looks great.
/Johannes
Is it done yet? LOL
Did you do them by hand, or did you use some sort of paint/editing program?
OBC
The screen maps were done in a mapping program I created which made things a little easier and a little more useful than the paint program.
The game is almost done. The game is complete, I just need to add the music (which is almost encoded) and then it is set. My wife and I got a new camera recently so I figured I would give it a try and post some pictures.
I'm interested in the tile driver you are using and a list of features. (number of cogs, sprites per scanline, bpp, hw scrolling, mirroring... etc)
If it's okay with you I will post a video on YouTube as soon as I get the source code.
(Can't wait to test it out!! )
/Johannes
This was written on the C3 and requires the NES adapter and a micro SD card as well to play. The controller code is separated so if someone wanted to code in a different input device like an Atari joystick instead, it is easy to do. However there isn't enough free RAM to add something like a Wii, N64, or keyboard for controller. I may release a version that will also work on non C3 devices in the future as well.
Ahle2, if you want to make and post a video after I put it up, feel free!
i tested Ranquest on my C3 with Keyboard and it looks very nice, i also love that "Retro-Sound", pretty cool !
I tied this on my C3, however I kept receiving the error "file not found," even after reformatting the SD card and copying the files back fresh.
I will attempt to determine which "file" it is trying to access and see if that helps figure out the issue.
--trodoss
I am also using version 1.2.7 (R2) of the Propeller tool. If you are using a different version, try just loading up the binary instead of recompiling the code to see if that helps.
What differences are in the C3 that makes it more or less incompatible with demo/proto boards and hydras?
I had to recopy "ranquest.map" again onto the SD card. It was on the SD card, however, Ranquest was not "seeing" it. My guess is that if I reformated (or defragmented) the SD card and had copied the files fresh it would have worked the first time, and for whatever reason when I had done that a second time, there was still something wrong... Third time's the charm Maybe bad sectors on the SD card?
Every once in a while I have had problems like that on fsrw-based code, however it seems like it is taken care of now.
Great game, BTW!
I appreciate the tremendous amount of work it took to make it.
--trodoss
Originally I planned to finish this up shortly after the C3 was released, but I got a new job, had real life stuff, and was kept hitting that 32K Ram wall. But as they say, better late than never.
I started a program in c# called propeller construction set that lets you edit maps and tiles, maybe it can be modified to create new adventures
I will dig up, I haven't worked on it for a while.8
I would agree the 32K RAM is challenging to work around in the context of making a game. I thought about how to creatively use the SRAM on the C3. Wouldn't work well for a video buffer, however it could be used to load/buffer executing interpreted code, music/sfx, large blocks of text, etc. I don't know though that it is more efficient than just loading the data off of an SD card as needed.
Glad you finally finished Ranquest. Your game turned out great!
--trodoss
Trodoss: pretty much every time I stopped working on it was due to memory issues. To open up more memory I changed the font from using the same 8bit tiles as the background to special set of 1bit tiles (tiles 0-127 are 8 bit tiles, tiles 128-255 are 1 bit tiles/font). I also went from having 1 graphics tile set to 3 which can be loaded off the SD card. The map was always indented to load off the SD card since it was pretty large and I only needed a single screen at a time.
The two biggest items taking up memory are code and graphics, neither of which can be put on the SPI sram since they both needed to be in Propeller memory. I originally thought about using the SPI ram on the C3, but the more I worked on it, I didn't see much use for it (for this game). The majority of the data either HAS to be in Prop RAM, or is mostly read only data (graphics, map, music, etc) that can be read off the the SD card at close to the same speed. Now if I had a large amount of data that was read/write that was not graphics or code then I probably would have use the SPI ram.
One cool trick I discovered was that once you load the code for a COG into COG memory, you can re-use that memory space in global ram (if you never intend on stopping the COG). That became a life saver as I put the 1bit font graphics and music in loaded COG code. But one really cool trick I discovered is that you can save the compiled COG assembly code to a file, load it anywhere in memory, then pass on the address to the COG Start. This is how I fit in the keyboard driver. I saved the COG code to a file, loaded it from the SD card into where the tile graphics are held, pointed the keyboard spin code to start the keyboard COG code there, then after it was loaded into a COG, I loaded the tile graphics over the keyboard COG code. If I was aware of this trick from the start, I would have loaded all the COG assembly drivers this way.