Updates/Corrections: Version 132x02 appears to also be an officially released version of Pirates (probably a PAL region release?), not a change by Nostalgia in their release. Thanks to Jason Compton for the info.
A little trivia for you Pirate expert: How many different releases (incl. box variations) was there of the game for the C64? Incl. PAL or NTSC. Official releases, not botlegs.
The trick to resolving answering the copy-protection wrongly: In the first town split up your party/gold and choose to "advance" to Apprentice difficulty. That way the game becomes playable again. However when retiring you will suffer a penalty of bad health/hard life.
@@DenmarkRadar Penalty? That's a badge of honor among us Pirates. We live hard and party hard, plenty of women and sails into the storm rather than avoid it.
Just finished watching this again, and I'm really hoping you want to do a follow up of digging through the code op Pirates in more detail. As a programmer and game enthusiast I love to see all the details and really the duration of the clip could never be too long for my taste. Thanks for the wonderful channel, I love your work!
Must have put a 1,000 hours into this game! Had the map up on the wall with various coloured pins in it, like a professional! :) I own every Sid Meier's game for the C64 and DOS!
Ohhhh don't you just LOVE a game when you do shit like that put the map up on the wall and actually use it. Awesome. You know you're having a good time with a good game when you do that shit. Last game I did that was Red Dead 2, even though you have maps online with everything on, there's nothing better than writing down the locations of the rare elite animals to kill on the map. Loved it. Gold bars, big red circle! Awesome.
I've had a pirated floppy disk that came without the map back in the '80s, so I had to sail at the edges and define longitude and latitude with the instruments and then draw the game map box on a real world map, before start playing. Also I had to identify a lot of cities and islands that was renamed or wasn't accurately positioned. That's immersion.
It is mainly the text screens that are programmed in BASIC. The battles are all in machine code, including the sword battles, the ship sailing and the ship battles, the drawing of the terrain and the men walking on the land; basically anything that involved reading the joystick input and displaying sprites is all programmed in machine code and are called by SYS routines from BASIC. I spend many hours exploring the code and hacking the game by changing variables and memory locations.
The fun part is that all these things have not been written in actual machine code. Pirates! runs some kind of 16 bit integer Basic engine/runtime. These parts of the game exist as byte code that is executed by this engine/runtime. I've reverse engineered most commands of this engine and they clearly look like what you would expect from a Basic interpreter's command set.
That feels like the kind of thing that he got burned on in this game or a previous title: tracking down a phantom bug report which turned out to be due to a bum SID. After that wild goose chase, I can see why you'd paranoiacally guard so as not to get burned again.
@@OscarSommerbo I remember being bitten by the save-and-replace bug myself! There was (perhaps still is?) a lot of debate about it because it is hard to reproduce. In my experience, it is hard to reproduce with quality media and properly functioning disk drive. But if your disk becomes worn-out, or the drive is dirty or mis-aligned, this can happen pretty easy. But even then, the bug is still almost impossible to reproduce on demand.
@@hipparchos I mostly navigated by knowing where stuff was compared to eachother, knowing their latitudes is impressive :) I did however start to learn most the reef formations to the point that a single map piece often would be enough to find stuff :)
@@cryptc Yeah, since I didn't have the map of the game (for...reasons) I drew my own map eventually based on an atlas I had found. Pre-internet era was fun!
I loved the game. Used to start as Dutch, because they had only a few places. Conquered the Spanish cities for them, then switched alliances to French and conquered the same cities a second time, but now for the French. :)
I also find playing Dutch very satisfying. When you're English or French you almost always end up in a position where war declarations give you incentive to wipe the other out. As Dutch you can usually hang back a bit, build yourself up, and then choose which side to back.
I love this game ... Back in the days I played "Pirates!" so often, that I could find most treasures with one part of a map. I remember being very proud of that. 😊
Wasn’t there a C64 command utility that changed them for you once you finished your code? The problem was that it had to fit in memory too. I used a pen and paper!
@@galois19 There are several, but I would worry about using it on a BASIC program that long. I've certainly used line renumbering before with success. But yeah, I use paper still ;-)
@@rooneye :) You must be born long after 8 bits era :) To stay in memory, code could not be really long, including variable's lengths. So, with that many a, b, c, x, y.... and aberviations you had to right down on paper true meaning of variable. Lets say you have something similar to today's TotalCargoWeight, you will code it with "tcw" but you would write this to peace of paper
Also, the C64 Basic interpreter only considers the first two letters of a variable name. Hence variables TCW, TCA, TCB, etc. would all be regarded as the same variable, TC by the interpreter.
Nice video! One of my favourite games for the C64. I fell victim to the gold bug and lost a lot of gold! Made me determined to hack the game and get it back. Quick tip though = once you force the game to crash,you just need to re-enable the run/stop key by typing Poke 808,237. Then the program lists correctly. One of the lines of code near the beginning of the program disables it with Poke 808,234, replace the 234 with 237 and you can break back into thev program whenever you want so long as you are not in a machine code routine ie sailing etc. Interesting there is a random bug in the tape version where it would randomly crash if you got promoted.... you always had to save the game before you visited the governor if you were likely to get promoted!
What I also found remarkable is the use of a few 3-character variable names, like CTY or CLN, for important, probably often recurring properties. Mind that Commodore BASIC uses only 2 significant characters for variable names. The third character essentially assisted Sid's brain, but also wasted some significant amount of memory! - I've heard of the time vs space trade-off in game programing, but rather infrequently about a brain cells vs memory cells trade-off. ;-)
The SID has a random noise generator. It produces random numbers, but there are different versions of the SID so on some the code would make it different to get right output.
Every beginner programmer is like "I'm going to learn how to code and then write a game myself." Then finds a video like this and makes them stick to microservices
Bizarrely fascinating. This finally solved the mystery for me of why my pirated version of Pirates! had no background graphics in defiance of all the screenshots - cassette version. Still absolutely loved it though. That BASIC stuff though is just wild. Who would have thought such an in-depth and detailed game could have got away with using so much BASIC. And that SID exception-handler is so unexpected.
Cassettes are lame. Mostly only UK and Europe used cassette; here in America we bought disk drives for our 64's. Mind you, they had a staggering amount of electronics in there; it was basically another whole computer, and that's why they were expensive... but it enabled better software.
@@SeeJayPlayGames In UK and Europe we had computers with disk drives that worked properly and very quickly. When we saw the absolute trash of the C64 1541 which was slower than a tape, especially with a turboloader. Why on earth would we pay so much for broken trash?
@@Drew-Dastardly because of the rushed? way it was put together, the opposite of what Woz did for the Apple which was simple but cpu driven. This was like a second computer, so very expensive, connected with a very slow serial? link designed for the VIC20 which had much less data to move around. At least the one for the C128 was faster, the Apple drives were the fastest and cheapest. Who needs track position circuitry when you can always head bang n times at reset guaranteeing initial head position? Genius!
I simply cannot imagine keep track of all that code, just using the C64 and its limited screen. I'd like to imagine Sid used a C128 with 80 column support to at least give him some more real estate. Perhaps we've all become too used to all the modern comforts as programmers. But Sid must have kept some sort of outline or a system of notes keeping track of everything. Imagine having to find and fix a bug. Or what about having to renumber the code because you have to fit something in! Boggles the mind.
Right! That's why programmers back then were/are WAY better programmers than todays coders. They had to do all this shit and work arounds and it just made them way better coders.
i wrote some BASIC programs back in the day (in MSDOS) as for listing to screen we use to print out all the source code to a printer and used that as a reference..we could do "markups" on the printout for changes and either change it ourselves or have someone else do it on the computer... you are right screen is too small.. As for renumbering the trick was on your initial write to increment the line numbers by 5 or 10 looks like he did it by 5 that way if you need to add code or patch you put a gosub in between the lines .. also as mentioned REM statements took up memory but the coder would have a complete print out including all REM statements then run a little routine to remove them before running the code...
I played this so much as a kid! This game is actually the reason I was so eager to learn english, as I didn't understand any of the text at first , but slowly learnt what the options did (my older brothers helped a bit)... and I played a pirated version, so when I learned that there was a file on the disk with the right answers (probably made by whoever pirated it), it felt like I found the easy mode :'D Before that I did have a save file with a "good start" when I randomly got the right answer, but it took time... I got that newest version for PC on a dvd-rom and ended up buying it for my Steam library too. I felt I had to pay for my pirating days as a kid :P this game gave me so much joy! Sid Meier's games are very good and educational too, so I've learned a lot by playing them.
I played the Amiga version of this; so many good memories. I've re-bought the PC version on GoG, but it's not the same as when I was sitting in my moms basement trying to match map-pieces with the larger physical map.
AFAIK, when you fail the copyprotection question, it basically lets you play at a fifth difficulty level. Where everything is 10 times worse for you or something like that. Funny little not quite an easter egg is that until you play REALLY well, you wont find out that your endscore can go higher than 100/100. IIRC my best ever was 192/100. That's the game where i captured every treasure fleet AND silvertrain for, something like 7-8 years in a row. AND conquered nearly all the Spanish main(and some cities elsewhere) and turned them over to all 4 nations, enough so that i managed to get Duke with all nations. While best accomplishment was when i managed to capture the treasure fleet BOTH at sea(superduper galleons(as in carrying far more guns and crew than their stated max) with several/many thousand golds each) and then ALSO capture it in the city that i captured the individual ships outside(Havana). Scored something like 120k gold just from those together, even before counting goods to sell.
The Commodore 64 is such a legendary machine. As a Brit who used BBC Micro's at school then recently got one, I have a MASSIVE soft spot for that, but the C64 was just better, the single BEST computer of it's type, i.e the Beeb, shitty Sinclair's, Amstrad, etc. After that when the Amiga (again Commodore being awesome, so sad that we've lost them) came out it just blew EVERYTHING out of the window with how powerful it was for such a low price. Nothing compared to the Amiga in the 80's. Man fucking good times, with new computers and shit, now it's Mac, Windows or Linux and they're all basically the same. Machines were all so different back then.
I owned an original copy of the game and I hated its RapidLock protection scheme; I had to invest another $30 to get the KrackerJax copier and I'm glad I DID!!! ... I played this game so much that my 1541 read head wore out track 18 (directory track) of five copies into oblivion!
I spent a large chunk of my childhood playing Pirates! on the C64. Later, when the basic code became available, I spent several attempts to reverse engineer the code, at first just to see how the game worked, since this collection of algorithms entertained me for a large part of my childhood. One of my primary questions was "Why did the Governor flee some towns that you sacked, but not others?" I suspected at the time it had to do with a combination of your party size and population. But then there were the strange towns that NEVER seemed to be able to flip nationalities. I did run into the flip-over to 0 bug for gold. I was quite dismayed at the time. I then came up with the idea that maybe I would reverse engineer the game, or modify the original C64 game to add more map areas and features. Wouldn't it be great to sail around South America, and up the coast of Chile and Peru, and end up in the Pacific Ocean? I would think that this would completely possible in today's world of BackBit and EasyFlash cartridges. A side note, I recently came across an old book called "The Buccaneers of America" by Alexandre Exquemelin. Sid must have read this book while coming up with the design for the original Pirates! It reads like a lost lore book for this game.
There were a few other C64 games that used this kind of brutal copy protection that made you simply not want to play their game any more. Alternate Reality: The City was a good one for this, as your alignment would be set to permanently grow more and more evil as time went on, stores would throw you out on sight, even open taverns would suddenly charge huge 'membership fees' to join and THEN throw you out anyway before you could buy so much as a drink, etc. LOL. Good times, good times.
There were 10 tracks. Except the first track which I could not find, the others were originally composed by J.S.Bach and G.F.Handel. Not CPU Bach. Also, the game was criticized about the accuracy of the musics because they were ahead of their time. The game was around the time period between 1600-1680 but composers were borned not before 1685.
I remember when I examined Jeff Minter's machine code (I don't remember which games) and was surprised that he often did not use branches, but repeated instructions in the hundreds. I guess it had to do with speed.
My father hated video games and wouldn't let us play them. One of his friends got an Apple and sold his C64 to my father which he gave to me. Little did he know it came with every C64 game you can think of. I played the hell out of Pirates, and would definitely put it as #1. I think it had a lot of replayability for its time with all of the starting options.
Pretty nice, thank you for looking in to that. I didn't speak much english back in the days when I played the game, but still played for many hours, and used the power supplies as feet warmers (in winter), as there was no heater in the attic, in which I played on the Commodore 64 :-D Good times, glad I got to experience that beginings of digital gaming. A game I also enjoyed was Mafia. And unfortunately the game ends at Lvl 100. After a couple of years working with the C64, I was able to access the Source Code of Mafia and changed the end of the game to not occur at lvl 100 anymore, so I could play longer. Fun stuff!
Great video! I noticed a couple of SYS calls in the BASIC listing as it scrolled by, so those are worth investigating further. At least one of them looked like it set up the text box/menu with a border. The RNG detection was interesting too. Several of the MicroProse games had more than one version. I have two different revisions of Gunship, and I know Project Stealth Fighter also had at least two versions. Pirates was updated too, with the later version having animated flags for the ships and more variety in the town pictures.
I remember hacking Pirates! back in the day. One interesting thing is there are one two images on disk that never show up in any game I've ever played (I played a lot). Also several of the files are actually two files! As I recall, all/most of the graphics files were two. This was controlled by the game's fast loader; I can't remember where on the disk (unused directory bytes, maybe?). So it would load data into one section of RAM, for example screen memory controlled by a file's normal load address, and then, somewhere in the "middle" of the file, the fast loader would reset the load address to something else (like character/font RAM). There is no meta-data with-in the file to indicate where this split occurs. I have a disk somewhere with all the double-files separated into unique files. And changes to the BASIC program to load the two files normally. Also no fast-loader, so you better have JiffyDOS or it will be almost unplayable... well cassette fans might have the patience :) I didn't have JiffyDOS back in the day, so I think there is also a version with a fast-loader I made. Faster than Microprose and without the disk copy protection. It wasn't mentioned in the video, but the original has disk-media copy protection too.
I was once in Maryland with my dad and he was busy with something business-related so I took a walk down the sidewalk to look around and wouldn't you know I happened to walk right past the humble, rather nondescript offices of Microprose! As a long-time fan of their games I did a double take! Sadly the office was closed.
I, *ahem*, procured a copy of Pirates! when I about 10 from a family friend along with 200 other disks. It was always so ridiculously hard. Then one day playing with the directory as a kid does, I found a file that printed where the silver train and gold fleet would be and suddenly the game was a little easier. I didn’t know it was copy protection at the time. Later, I traced a map of the Caribbean from a book and used it to create a map of the game as I played. After that I finally started doing okay in the game. Good memories.
@42:30, the "JAN" written twice was for 30 days out in December. If you did 30 days out in December, without the second JAN, you would get an overflow error. I used this technique in business apps at the time.
I *loved* this game on the C-64 and on DOS and Windows, too! I got my dad hooked on it, and eventually my son, too. Thanks for this deep dive into how Sid put it together and some of the things that "might have been" in it, if only.... Very cool!
Damn! I miss those wonderful C-64 days, so many games and this was one of the best. My favorite Sid Meier game was Gunship. I was into flight sims for about 5 years and Microprose was the go to software company for me.
The original Apple II release of Ultima was all BASIC files as well. WOuld love to see someone walk through all the modules (outside, towns, dungeons, space) of that original California Pacific release!
You from the UK or something? Talking about the tape version and not everyone having a joystick... how different things were across the pond... the Atari joysticks worked with the 64; they were cheap and ubiquitous here in the USA. Chances were you had an Atari VCS (2600) AND a C=64 at some point in your life. I know I did.
@@SeeJayPlayGames No, I'm talking about the commodore 64. Sword fighting was best done with a joystick. But most of us college kids at the time couldn't afford them. You must have been rich.
@@jdlech Not rich growing up, but not poor either. Middle class, I guess. You couldn't afford $20-30 for a joystick? You must have been poor. I can relate... now.
Silent Service! Ah, good memories. I remember going over to my friend’s house after high school and his Dad was constantly playing it (Silent Service II actually) with a huge bowl of smoked cigarettes and cups of coffee. I was always more interested in watching him play than playing with my friend, I think I got on his nerves. 😂 I wonder if he ever got into the Silent Hunter series. Wish they’d make another one with the budget of Star Citizen! Ah, I can dream.
Ah, the hours and days and years sunk into this game! I could find a treasure with only one piece of the map... had a 1560 run where I first gave almost all Spanish towns to England, making me duke, then the Spanish came and took them back, giving me the opportunity to do the French and Dutch a favor too to rise up in their ranks. Lost my beautiful wife along the way though... :,( In the 64'er magazine, they had a cheat that gave you unlimited crew happiness, which stopped their nagging. I still must have the complete BASIC listing printout somewhere...
Pirates was the spiritual successor to Taipan from the Apple II.. it took the genre to a whole new level.. I can remember spending days glued to the tv and playing a single campaign. there have been many clones since the 2004 remake but none of them come close to the gameplay of the original... hope they make another true remake soon as its been far to long without a decent pirate conquest and trading game. They still make new CIV games every couple of years. Just wish they did the same with Pirates and Railroad tycoon because they are true masterpieces.
Thanks Robin for another great video with a unique insight to one of my favorite games! I recently got an original version of this game and it's one of my favorite pieces of my collection. I remember getting the question wrong back in the day and having that same terrible experience with game play.
Still one of the best gaming experiences I've ever had...to this very day. I had a copy of that NES cart and boy, did I wear that one out. Had the map on my wall and everything. Emulation is the only way I can still revisit this treasure. When Cyberpunk 2077 burned me, I went back to this classic. Never disappointed by that game.
Also had the C64 version on cassette. You had to load both sides of the tape for the game to run and it took about 25 minutes without a fast loader. Great game though and still a favourite.
I'd assumed that this game was written in machine or assembly language! Other commercial C64 BASIC games such as Sword of Fargoal and the Dunjonquest series were years earlier. Random observation: I believe the pictures in C64 Pirates! are loaded into part of the redefined character set (the characters not used in the text).
Thanks for this! One of my all time favorite games. As a teenager I played hours upon hours on an Amstrad PC1512 with a black and white monitor but was totally blown away when I saw it on my friend's C64. I didn't care for the Gold version much but I still enjoy playing the 2004 remake from time to time. Not a fan of the dancing mini game though.
this is intresting looking back at it a friend of mine had the situation with encounters every second but we had no idea .. we propebla had the warning but since weve had not idea about how to talk read or understand english we just "clicked" .. just looking at this or just listen to the audio noise sound the disc drive produces when reading brings back this warm and fuzzy feeling of happyness :)
The Pirates games was one of my favs many years ago when I had a C64. Watching this video was a good shot of nostalgia and it was cool to see all the extra stuff you demonstrated. Now, maybe I'll need to find a way to play that game again (emulator perhaps). Keep up the good work. Cheers!
me and a friend used to play this together on a c64 and the cpc 464. I used to take my computer to his place with my monitor (he lived only across the street) and we would play all afternoon. The cpc version was a tad slower, but some great memories!
I’m very glad my copy had superior box art. I Spent a lot of time studying the beautifully painted art on my version as a kid. A pirate ship in tropical waters, firing at a hapless ship with a broken mast and holes in its sails. There was a lot of detail to eat up like pirates climbing in the rigging. Really added a lot a flavour.
12:12 oh. had a flashback to late 80s trying to play this as a 10yo kid who didn't know English yet so didn't understand what the copy protection prompts were and thought the game was just one dumb unwinnable swordfight. probably wasn't alone with this impression back in the days of rampant piracy ;)
Oh, it's my favourite game of all time. I used to play it on Amstrad CPC6128. I spent countless hours on it. Since I had no manual nor map (for...reasons), I had to guess the arrivals of the silver train and treasure fleet before each game, and to draw my own map with all the towns.
Great video, as usual. I learned a lot from it. Checking the output of SID Osc.3 for a difference 101 times in a row AND in Basic seems like an overkill to me. Even if the code was written in assembly ,101 times would still be an overkill. Sid wanted to be really-really sure Osc.3 is returning the same value, it seems.
I guess he had to check a lot of times because the value of the SID did not change at every machine cycle. Much easier doing it this way than working out the timing in a precise way.
What a game. I remember hearing in some interview (maybe on The Retro Hour podcast, not sure) that the idea for Pirates! came from a co-worker at MicroProse, who learned about Pirate history during his vacation in the Caribbean.. Sorry, can't remember names.
Love the vid. You got a new subscription ;) Nice to see the coding. Back in the days the difference between code and the logic of the problem domain (here, the game) was so big. The programmer had to do the transition. Even more if ASM was used. Today the abstraction of the programming languages and dev stacks is so high that coding if much easier. Of course with higher abstraction also more complex solutions can be addressed. Just saying. Learned first coding as a kid on a C64 and still loving it.
Very cool game. There is small bug in game. At the begin of the game of the game you can choose the country (English, France, Dutch, etc). However later in the game it allows you select Holland. Holland is one of the Dutch provinces (South Holland and North Holland). On a different note, I noticed that you have an expansion card that you can plug-in up to 3 cartridge. I made a similar card that allowed me to plug-in up to 8 cartridges . I would use it to capture a copy of the cartridge and copy it to disk. This would allow me to “backup” a cartridge 👍🙂
I loved this game, but only had the PC version. In the PC version, the Gold Overflow bug was different. It seemed that it started to wrap into other state variables, because all kinds of weird behavior showed up somewhere between 50,000 and 150,000 (IIRC). I always had to divide the loot before 100,000 or for sure lose it all due to something completely unrelated. Don't recall the details.
There was additional copy protection in the game, a more indirect one. The box comes with a printed map of Carrabeian, with marked what city is on what location during the different time periods. There is no built-in map in the game - it only told you horizontal coordinates, vertical coords you had to read yourself using the instrument, then read the location of your ship on the map. Without that map doing the storyline quest or governor tasks are almost impossible to do, but it's enough to just randomly sailing and looting. Printing is dirt cheap nowadays but it was really expensive back then.
I too discovered the game was coded in BASIC probably also by an unexpected error in my youth, but wasn't aware of a lot of what was covered in here. I would love to see an updated C64 version that converts all the basic code to ML, as the game was always so slow. It might also be able to fit entirely in memory if converted. Imagine Pirates with no additional loading needed or slow draws.
Anyone has Pirates!? Anyone? lol Man, I have played dozen of Sid’s games during these decades.. RRTycoon, Civs, F15 II, Gunship2000, Colonization.. I’m in debt for Sid, Braben, Lord British, and a lot of other great pioneers for giving such amount of rich experiences, not only as a child or young person, but these classics still bring enjoyment even after 30-40 years. Cheers from Northern Europe!
Thanks, I liked the old Micro Prose games back in the day, Pirates was one of the few we didn't have though, but this was a very interesting look at the game! My dad was particularly into flight sims, on the C64 we had F-15 Strike Eagle and Gunship among others. Gunship was personally my favorite, although it had this very annoying bug where sometimes the roster save data would get corrupted and lost seemingly at random. I haven't been able to find much info about it other than it happened to others as well so it wasn't just an issue with our disk/C64, and a suggestion that it may have been linked to turning the game off when failing a mission to avoid getting KIA or MIA. Although I know there were times I did that and it didn't corrupt and times I didn't do that and it did, so that explanation seems kind of suspect. If you'd ever like to do an in-depth video on C64 Gunship (or any Micro Prose games really) in the future in a similar manner to this one I'd be extremely invested in it! Love your videos, I enjoy them a lot!
"My last big C64 game was Sid Meier's Pirates! Sid pushed beyond the confines of military sims to pursue a lifelong interest in the so-called Golden Age of Piracy. An action-adventure game, the player could sword fight, sail, attack enemy vessels and interact with the denizens of the Spanish Main. Every screen was restricted to a character set of no more than 127 unique characters using the C64's (less than ideal) palette of 16 colours. The team spent less than nine months on the game from launch to publication." -- Michael Haire, graphic artist
One of history's greatest games. A real sandbox for the day. I've conquered the whole map many times, even though that was not the point of the game. Once I kept the career going for 20 in game years, and found that the treasure fleet and silver train both show up in the locations and times listed in the manual. I was always good with the fencing, and found that wit and charm were the better choice when I play.
29:27 what is line 1 good for? it checks location $9525 to be 133 and then loads a file called "64ksupport". can't explain myself what might be the sense of this, cause in my mind there ara no c64 with less then 64k of ram out there, or? Mabe there was a plan to let run this code on another machine? or may be it be possible to run it on c128 in c128 mode?? at least it must be a system with a vic/sid in the same adressspace as the c64 has the vic/sid...
I was wondered at this myself. The best I can come up with: A German firm REX Datentechnik sold a 128K expansion, as well as some kernal switching boards and similar add-ons. One of the kernal switchers is the REX 9525, which may be coincidential or not. (It may have been that REX Datentechnik or a similar vendor used this address to insert an identifier, maybe as a proprietary POKE/PEEK address for setting/reading features.) Anyway, I guess it must have been about less than 64K reliably available, which may be due to some add-on board that would highjack some parts of the "underlay RAM" by messing with the address bus and/or by introducing an alternative bank-switching scheme (as would have been required for a custom memory expansion, as well).
Sorry I didn't address that, but I didn't really figure it out. This game still has many mysteries that could take me extra weeks of exploration. My guess is that "64ksupport" refers to going beyond BASIC's natural limit of 38911 bytes free; perhaps it's some machine language routines to support putting code and data under the BASIC/KERNAL ROMS, and maybe even under I/O.
I found a page talking about getting rid of copy protection on the game, and it talks about what this program is used for: c64preservation.com/RL6Handbook_v130/I_1STTUT.HTM#CHAPTER42 The 64ksupport program appears to be machine code support routines. I'm guessing line 1 does the check to see if the file is already in memory, allowing it to skip the load.
Cool stuff! Wild looking at this old code and PC! I still also have a bunch of the pirates of the spanish main table top game card ships. was a great game. Thanks for the great vid! :D
I am blown away at the 3 character variable names. BASIC, of course, ignored everything past the first two characters. Anything beyond that was spending bytes just to make the code (slightly!) more readable. Honestly, I'm still trying to wrap my brain around the fact that Pirates is largely in BASIC.
The thing with the sails during naval battle, is that "battle sails" are trimmed, and not as fast as "full sail". "full sail", though, exposes your sheets and mast to cannon damage, with a snapped mast you'll have to sail, very slowly, to a town where you can get it repaired. So it's best not to have full sail during a battle. During the last moments though when they're running away, you can raise them fully. By then they should be down to their last few cannon, and ships like these can only fire broadsides, ie sideways, anyway. So if you're directly behind them, you're in no danger.
I never had my own copy of pirates, but it was a fun game for sure. There must be other games in basic in the same way I recall always crashing and getting weird fonts loaded.
I had that cassette version of the game back then in the late 80s. I got it with my C64 as my first game. That game box had nicer art on the cover and the game included a beautiful map that was printed on high quality paper. It felt like a real map. The most of the drawn pictures (like portrait of the characters) are removed from the cassette version. I would say that was a really good design choice. Also land combat (the musket fights) are removed but it is also a good thing because those land combats are the weakest feature in the game. (I have later played several other versions of the game.) Pirates! is still one of my all time favorite games.
i was hoping you would also show the trick i found back in the 80s to show the entire pirates map. i believe i had commented about this about a couple of years ago on one of your videos about games. when you get to the prompt with long string error, you poke 53272,something. i cant remember it, maybe 23, maybe 32, you basically change the mode and get the map.
Oh, interesting, I actually didn't know about that, or didn't remember if you shared the trick earlier, sorry! Sounds like the map must be stored as a bitmap or screen, and you can do a poke or two to make the VIC-II point towards the map.
@@8_Bit yea, i've never seen this anywhere before. I think i'm the only one who knows this since i had discevered it by mistake just messing with 53272 :-)
Updates/Corrections: Version 132x02 appears to also be an officially released version of Pirates (probably a PAL region release?), not a change by Nostalgia in their release. Thanks to Jason Compton for the info.
A little trivia for you Pirate expert: How many different releases (incl. box variations) was there of the game for the C64? Incl. PAL or NTSC. Official releases, not botlegs.
The trick to resolving answering the copy-protection wrongly: In the first town split up your party/gold and choose to "advance" to Apprentice difficulty. That way the game becomes playable again. However when retiring you will suffer a penalty of bad health/hard life.
@@DenmarkRadar Penalty? That's a badge of honor among us Pirates. We live hard and party hard, plenty of women and sails into the storm rather than avoid it.
Just finished watching this again, and I'm really hoping you want to do a follow up of digging through the code op Pirates in more detail. As a programmer and game enthusiast I love to see all the details and really the duration of the clip could never be too long for my taste. Thanks for the wonderful channel, I love your work!
@@Ferrie123 I second that.
The game of my childhood. It's hard to believe that a child's imagination can make a real Caribbean out of these few pixels.
The best game ever!
Must have put a 1,000 hours into this game! Had the map up on the wall with various coloured pins in it, like a professional! :) I own every Sid Meier's game for the C64 and DOS!
Ohhhh don't you just LOVE a game when you do shit like that put the map up on the wall and actually use it. Awesome. You know you're having a good time with a good game when you do that shit. Last game I did that was Red Dead 2, even though you have maps online with everything on, there's nothing better than writing down the locations of the rare elite animals to kill on the map. Loved it. Gold bars, big red circle! Awesome.
been a fan of this game since the NES days, still have it on my PC
I've had a pirated floppy disk that came without the map back in the '80s, so I had to sail at the edges and define longitude and latitude with the instruments and then draw the game map box on a real world map, before start playing. Also I had to identify a lot of cities and islands that was renamed or wasn't accurately positioned. That's immersion.
I played pirates as a kid on my father's Tandy 1000
@@Morrodin182 i have the version from Steam I think
It is mainly the text screens that are programmed in BASIC. The battles are all in machine code, including the sword battles, the ship sailing and the ship battles, the drawing of the terrain and the men walking on the land; basically anything that involved reading the joystick input and displaying sprites is all programmed in machine code and are called by SYS routines from BASIC.
I spend many hours exploring the code and hacking the game by changing variables and memory locations.
The fun part is that all these things have not been written in actual machine code. Pirates! runs some kind of 16 bit integer Basic engine/runtime. These parts of the game exist as byte code that is executed by this engine/runtime. I've reverse engineered most commands of this engine and they clearly look like what you would expect from a Basic interpreter's command set.
Huge props to the programmer to have the foresight to check the RNG quality from the SID and produce an error if it's not good. That's really cool.
That feels like the kind of thing that he got burned on in this game or a previous title: tracking down a phantom bug report which turned out to be due to a bum SID. After that wild goose chase, I can see why you'd paranoiacally guard so as not to get burned again.
@@jpcompton I think something similar happened with "save and replace" to trigger him to write that improved command at line 20 side 2.
@@OscarSommerbo I remember being bitten by the save-and-replace bug myself! There was (perhaps still is?) a lot of debate about it because it is hard to reproduce. In my experience, it is hard to reproduce with quality media and properly functioning disk drive. But if your disk becomes worn-out, or the drive is dirty or mis-aligned, this can happen pretty easy. But even then, the bug is still almost impossible to reproduce on demand.
I loved this game so much as a kid, and it's the reason why I still know a lot of city names in the Caribbean :D
name one.
@@demonsty nassau, port royal (now kingston), san juan, havana, st martin, etc
Same here, I used to know their latitude as well thanks to the game
@@hipparchos I mostly navigated by knowing where stuff was compared to eachother, knowing their latitudes is impressive :)
I did however start to learn most the reef formations to the point that a single map piece often would be enough to find stuff :)
@@cryptc Yeah, since I didn't have the map of the game (for...reasons) I drew my own map eventually based on an atlas I had found. Pre-internet era was fun!
I loved the game. Used to start as Dutch, because they had only a few places. Conquered the Spanish cities for them, then switched alliances to French and conquered the same cities a second time, but now for the French. :)
I also find playing Dutch very satisfying. When you're English or French you almost always end up in a position where war declarations give you incentive to wipe the other out. As Dutch you can usually hang back a bit, build yourself up, and then choose which side to back.
I love this game ... Back in the days I played "Pirates!" so often, that I could find most treasures with one part of a map. I remember being very proud of that. 😊
Yea buddy!! Same here lol
I can pretty much still do that.
Where is the silver train located around these days x100 years ago?
omg that's hilarious, I could do that too! it was such a fun game
Would be great if Sid himself would do a reaction-video to your video! Maybe he could explain some more of the code!
I think the most impressive thing about this sort of thing that someone was able to keep track of all of those short variables.
Wasn’t there a C64 command utility that changed them for you once you finished your code? The problem was that it had to fit in memory too. I used a pen and paper!
@@galois19 There are several, but I would worry about using it on a BASIC program that long. I've certainly used line renumbering before with success. But yeah, I use paper still ;-)
What do you guys mean? Short variables and you used pen and paper?
@@rooneye :) You must be born long after 8 bits era :) To stay in memory, code could not be really long, including variable's lengths. So, with that many a, b, c, x, y.... and aberviations you had to right down on paper true meaning of variable. Lets say you have something similar to today's TotalCargoWeight, you will code it with "tcw" but you would write this to peace of paper
Also, the C64 Basic interpreter only considers the first two letters of a variable name. Hence variables TCW, TCA, TCB, etc. would all be regarded as the same variable, TC by the interpreter.
Nice video! One of my favourite games for the C64. I fell victim to the gold bug and lost a lot of gold! Made me determined to hack the game and get it back. Quick tip though = once you force the game to crash,you just need to re-enable the run/stop key by typing Poke 808,237. Then the program lists correctly. One of the lines of code near the beginning of the program disables it with Poke 808,234, replace the 234 with 237 and you can break back into thev program whenever you want so long as you are not in a machine code routine ie sailing etc. Interesting there is a random bug in the tape version where it would randomly crash if you got promoted.... you always had to save the game before you visited the governor if you were likely to get promoted!
I remember the game map was so good I would compare the treasure maps against our large Readers Digest Atlas to find the locations of the treasure
What I also found remarkable is the use of a few 3-character variable names, like CTY or CLN, for important, probably often recurring properties. Mind that Commodore BASIC uses only 2 significant characters for variable names. The third character essentially assisted Sid's brain, but also wasted some significant amount of memory! - I've heard of the time vs space trade-off in game programing, but rather infrequently about a brain cells vs memory cells trade-off. ;-)
It figures that Sid would verify the SID chip.
The SID has a random noise generator. It produces random numbers, but there are different versions of the SID so on some the code would make it different to get right output.
I got to say though, Sid's SIDs weren't the best.
In Austria there is this phrase, when something might get broken, it " probably goes Meier".
@@wolfengange So it does not goes to Meier? Any info on how the saying came about? Very off topic but I like to learn...
@@Mnnvint He wasn't into the SID but he knew games. Music wasn't his thing...
Every beginner programmer is like "I'm going to learn how to code and then write a game myself." Then finds a video like this and makes them stick to microservices
Would like to see more of these! That is breakdowns of C64 games, at present there are only three on your channel.
Bizarrely fascinating. This finally solved the mystery for me of why my pirated version of Pirates! had no background graphics in defiance of all the screenshots - cassette version. Still absolutely loved it though. That BASIC stuff though is just wild. Who would have thought such an in-depth and detailed game could have got away with using so much BASIC. And that SID exception-handler is so unexpected.
Cassettes are lame. Mostly only UK and Europe used cassette; here in America we bought disk drives for our 64's. Mind you, they had a staggering amount of electronics in there; it was basically another whole computer, and that's why they were expensive... but it enabled better software.
@@SeeJayPlayGames In UK and Europe we had computers with disk drives that worked properly and very quickly. When we saw the absolute trash of the C64 1541 which was slower than a tape, especially with a turboloader. Why on earth would we pay so much for broken trash?
@@Drew-Dastardly because of the rushed? way it was put together, the opposite of what Woz did for the Apple which was simple but cpu driven. This was like a second computer, so very expensive, connected with a very slow serial? link designed for the VIC20 which had much less data to move around. At least the one for the C128 was faster, the Apple drives were the fastest and cheapest. Who needs track position circuitry when you can always head bang n times at reset guaranteeing initial head position? Genius!
I simply cannot imagine keep track of all that code, just using the C64 and its limited screen. I'd like to imagine Sid used a C128 with 80 column support to at least give him some more real estate. Perhaps we've all become too used to all the modern comforts as programmers. But Sid must have kept some sort of outline or a system of notes keeping track of everything. Imagine having to find and fix a bug. Or what about having to renumber the code because you have to fit something in! Boggles the mind.
Right! That's why programmers back then were/are WAY better programmers than todays coders. They had to do all this shit and work arounds and it just made them way better coders.
What is more strange is that he didn't use a basic compiler to produce machine code - or maybe it was faster in basic to do the different math bits?
For the C64, it was quite common to use the disk buffers as temporary data storage. They used every bit of memory they could find
@@jdlech Sucks if you only have the game on tape though lol :)
i wrote some BASIC programs back in the day (in MSDOS) as for listing to screen we use to print out all the source code to a printer and used that as a reference..we could do "markups" on the printout for changes and either change it ourselves or have someone else do it on the computer... you are right screen is too small..
As for renumbering the trick was on your initial write to increment the line numbers by 5 or 10 looks like he did it by 5 that way if you need to add code or patch you put a gosub in between the lines ..
also as mentioned REM statements took up memory but the coder would have a complete print out including all REM statements then run a little routine to remove them before running the code...
I played this so much as a kid! This game is actually the reason I was so eager to learn english, as I didn't understand any of the text at first , but slowly learnt what the options did (my older brothers helped a bit)... and I played a pirated version, so when I learned that there was a file on the disk with the right answers (probably made by whoever pirated it), it felt like I found the easy mode :'D Before that I did have a save file with a "good start" when I randomly got the right answer, but it took time...
I got that newest version for PC on a dvd-rom and ended up buying it for my Steam library too. I felt I had to pay for my pirating days as a kid :P this game gave me so much joy! Sid Meier's games are very good and educational too, so I've learned a lot by playing them.
I played the Amiga version of this; so many good memories. I've re-bought the PC version on GoG, but it's not the same as when I was sitting in my moms basement trying to match map-pieces with the larger physical map.
AFAIK, when you fail the copyprotection question, it basically lets you play at a fifth difficulty level. Where everything is 10 times worse for you or something like that.
Funny little not quite an easter egg is that until you play REALLY well, you wont find out that your endscore can go higher than 100/100.
IIRC my best ever was 192/100. That's the game where i captured every treasure fleet AND silvertrain for, something like 7-8 years in a row. AND conquered nearly all the Spanish main(and some cities elsewhere) and turned them over to all 4 nations, enough so that i managed to get Duke with all nations.
While best accomplishment was when i managed to capture the treasure fleet BOTH at sea(superduper galleons(as in carrying far more guns and crew than their stated max) with several/many thousand golds each) and then ALSO capture it in the city that i captured the individual ships outside(Havana). Scored something like 120k gold just from those together, even before counting goods to sell.
As super slow as I've always understood BASIC to be, that's amazing that Pirates runs as well as it does.
The Commodore 64 is such a legendary machine. As a Brit who used BBC Micro's at school then recently got one, I have a MASSIVE soft spot for that, but the C64 was just better, the single BEST computer of it's type, i.e the Beeb, shitty Sinclair's, Amstrad, etc.
After that when the Amiga (again Commodore being awesome, so sad that we've lost them) came out it just blew EVERYTHING out of the window with how powerful it was for such a low price. Nothing compared to the Amiga in the 80's. Man fucking good times, with new computers and shit, now it's Mac, Windows or Linux and they're all basically the same. Machines were all so different back then.
I owned an original copy of the game and I hated its RapidLock protection scheme; I had to invest another $30 to get the KrackerJax copier and I'm glad I DID!!! ...
I played this game so much that my 1541 read head wore out track 18 (directory track) of five copies into oblivion!
haha yeh pirate protection could be a nightmare back in the day. Annoying af.
I had one game that wouldn't even load on a 1541 and had to play it on my C128 with a 1571 drive
I spent a large chunk of my childhood playing Pirates! on the C64. Later, when the basic code became available, I spent several attempts to reverse engineer the code, at first just to see how the game worked, since this collection of algorithms entertained me for a large part of my childhood. One of my primary questions was "Why did the Governor flee some towns that you sacked, but not others?" I suspected at the time it had to do with a combination of your party size and population. But then there were the strange towns that NEVER seemed to be able to flip nationalities.
I did run into the flip-over to 0 bug for gold. I was quite dismayed at the time.
I then came up with the idea that maybe I would reverse engineer the game, or modify the original C64 game to add more map areas and features. Wouldn't it be great to sail around South America, and up the coast of Chile and Peru, and end up in the Pacific Ocean? I would think that this would completely possible in today's world of BackBit and EasyFlash cartridges.
A side note, I recently came across an old book called "The Buccaneers of America" by Alexandre Exquemelin. Sid must have read this book while coming up with the design for the original Pirates! It reads like a lost lore book for this game.
There were a few other C64 games that used this kind of brutal copy protection that made you simply not want to play their game any more. Alternate Reality: The City was a good one for this, as your alignment would be set to permanently grow more and more evil as time went on, stores would throw you out on sight, even open taverns would suddenly charge huge 'membership fees' to join and THEN throw you out anyway before you could buy so much as a drink, etc. LOL. Good times, good times.
I'm pretty sure the music was composed by JS Bach; Sid just coded it. :)
Not CPU Bach?
@@tobyCornish Nah, that is still a few years away. :)
Its actually the Water Music
There were 10 tracks. Except the first track which I could not find, the others were originally composed by J.S.Bach and G.F.Handel. Not CPU Bach. Also, the game was criticized about the accuracy of the musics because they were ahead of their time. The game was around the time period between 1600-1680 but composers were borned not before 1685.
@@AltayGENC I too have problems identifying the first track. According to the Amiga version, the tune is by J.S. Bach from "Four preludes".
I remember when I examined Jeff Minter's machine code (I don't remember which games) and was surprised that he often did not use branches, but repeated instructions in the hundreds. I guess it had to do with speed.
My father hated video games and wouldn't let us play them. One of his friends got an Apple and sold his C64 to my father which he gave to me. Little did he know it came with every C64 game you can think of. I played the hell out of Pirates, and would definitely put it as #1. I think it had a lot of replayability for its time with all of the starting options.
Pretty nice, thank you for looking in to that. I didn't speak much english back in the days when I played the game, but still played for many hours, and used the power supplies as feet warmers (in winter), as there was no heater in the attic, in which I played on the Commodore 64 :-D
Good times, glad I got to experience that beginings of digital gaming.
A game I also enjoyed was Mafia. And unfortunately the game ends at Lvl 100. After a couple of years working with the C64, I was able to access the Source Code of Mafia and changed the end of the game to not occur at lvl 100 anymore, so I could play longer. Fun stuff!
Great video! I noticed a couple of SYS calls in the BASIC listing as it scrolled by, so those are worth investigating further. At least one of them looked like it set up the text box/menu with a border. The RNG detection was interesting too.
Several of the MicroProse games had more than one version. I have two different revisions of Gunship, and I know Project Stealth Fighter also had at least two versions. Pirates was updated too, with the later version having animated flags for the ships and more variety in the town pictures.
I remember hacking Pirates! back in the day. One interesting thing is there are one two images on disk that never show up in any game I've ever played (I played a lot). Also several of the files are actually two files! As I recall, all/most of the graphics files were two. This was controlled by the game's fast loader; I can't remember where on the disk (unused directory bytes, maybe?). So it would load data into one section of RAM, for example screen memory controlled by a file's normal load address, and then, somewhere in the "middle" of the file, the fast loader would reset the load address to something else (like character/font RAM). There is no meta-data with-in the file to indicate where this split occurs.
I have a disk somewhere with all the double-files separated into unique files. And changes to the BASIC program to load the two files normally. Also no fast-loader, so you better have JiffyDOS or it will be almost unplayable... well cassette fans might have the patience :)
I didn't have JiffyDOS back in the day, so I think there is also a version with a fast-loader I made. Faster than Microprose and without the disk copy protection. It wasn't mentioned in the video, but the original has disk-media copy protection too.
@2:12 _Seven Cities of Gold (1984)_ was one of the open world games predating _Sid Meier's Pirates! (1987)_
Dan Bunten!
Yeah, also its successor "Heart of Africa".
@@Mnnvint Thanks! Didn't know there was a sequel.
I was once in Maryland with my dad and he was busy with something business-related so I took a walk down the sidewalk to look around and wouldn't you know I happened to walk right past the humble, rather nondescript offices of Microprose! As a long-time fan of their games I did a double take! Sadly the office was closed.
I, *ahem*, procured a copy of Pirates! when I about 10 from a family friend along with 200 other disks. It was always so ridiculously hard. Then one day playing with the directory as a kid does, I found a file that printed where the silver train and gold fleet would be and suddenly the game was a little easier. I didn’t know it was copy protection at the time. Later, I traced a map of the Caribbean from a book and used it to create a map of the game as I played. After that I finally started doing okay in the game. Good memories.
@42:30, the "JAN" written twice was for 30 days out in December. If you did 30 days out in December, without the second JAN, you would get an overflow error. I used this technique in business apps at the time.
I *loved* this game on the C-64 and on DOS and Windows, too! I got my dad hooked on it, and eventually my son, too. Thanks for this deep dive into how Sid put it together and some of the things that "might have been" in it, if only.... Very cool!
I remember using my Action Replay VI to teleport my fleet to the pacific to attack that darn city of Panama from sea.
My favorite game for the c64 and all the tons of hours I spent on this game. So addictive
This brings back memories. I had F-15, Pirates, and Silent Service for the Atari 600/800XL (had both computers at one point).
I think I read that Sid got his start programming the Atari!
MicroProse was a huge company here in the Baltimore area!
Oh man, I remember having a great big map of taped together pieces of paper. Absolutely awesome game
Robin, I genuinely enjoy your videos; there's an easy going quality to them that reminds me of techmoan
Thanks, Techmoan and VWestlife are two of my favourite channels and I definitely take inspiration from both of them.
The almighty algorithm seems to be of the same opinion
Damn! I miss those wonderful C-64 days, so many games and this was one of the best. My favorite Sid Meier game was Gunship. I was into flight sims for about 5 years and Microprose was the go to software company for me.
The original Apple II release of Ultima was all BASIC files as well. WOuld love to see someone walk through all the modules (outside, towns, dungeons, space) of that original California Pacific release!
I remember playing Pirates for hours on end. You really had to have a joystick. Not everyone did.
You from the UK or something? Talking about the tape version and not everyone having a joystick... how different things were across the pond... the Atari joysticks worked with the 64; they were cheap and ubiquitous here in the USA. Chances were you had an Atari VCS (2600) AND a C=64 at some point in your life. I know I did.
@@SeeJayPlayGames No, I'm talking about the commodore 64. Sword fighting was best done with a joystick. But most of us college kids at the time couldn't afford them.
You must have been rich.
@@jdlech Not rich growing up, but not poor either. Middle class, I guess. You couldn't afford $20-30 for a joystick? You must have been poor. I can relate... now.
I can still hum the music to Pirates after many fond days of Pirates on my Amiga.
We're proper cultured.
Loved this game. Spent years playing it. Still have the original game in the Microprose box I bought in 1987..
Silent Service!
Ah, good memories. I remember going over to my friend’s house after high school and his Dad was constantly playing it (Silent Service II actually) with a huge bowl of smoked cigarettes and cups of coffee. I was always more interested in watching him play than playing with my friend, I think I got on his nerves. 😂
I wonder if he ever got into the Silent Hunter series. Wish they’d make another one with the budget of Star Citizen! Ah, I can dream.
Thanks for the video! This was my favorite C64 game. Such a great open world to explore. The game was a great mix of challenging but kid friendly too.
Ah, the hours and days and years sunk into this game! I could find a treasure with only one piece of the map... had a 1560 run where I first gave almost all Spanish towns to England, making me duke, then the Spanish came and took them back, giving me the opportunity to do the French and Dutch a favor too to rise up in their ranks. Lost my beautiful wife along the way though... :,(
In the 64'er magazine, they had a cheat that gave you unlimited crew happiness, which stopped their nagging. I still must have the complete BASIC listing printout somewhere...
I absolutely loved Pirates! on the C64 back in the day! What a great game it was!
Pirates was the spiritual successor to Taipan from the Apple II.. it took the genre to a whole new level.. I can remember spending days glued to the tv and playing a single campaign. there have been many clones since the 2004 remake but none of them come close to the gameplay of the original... hope they make another true remake soon as its been far to long without a decent pirate conquest and trading game. They still make new CIV games every couple of years. Just wish they did the same with Pirates and Railroad tycoon because they are true masterpieces.
Thanks Robin for another great video with a unique insight to one of my favorite games! I recently got an original version of this game and it's one of my favorite pieces of my collection. I remember getting the question wrong back in the day and having that same terrible experience with game play.
I loved my C64. Watching this brings back so many memories.
The 8Bit NES version of this game remains one of the BEST gaming experiences I have ever had. I still go back to it fairly frequently
The NES version of the game was a decent translation and the cartridge has a battery in it to save your character's progress.
I wonder what they did with all that basic code
Still one of the best gaming experiences I've ever had...to this very day. I had a copy of that NES cart and boy, did I wear that one out. Had the map on my wall and everything. Emulation is the only way I can still revisit this treasure. When Cyberpunk 2077 burned me, I went back to this classic. Never disappointed by that game.
Also had the C64 version on cassette. You had to load both sides of the tape for the game to run and it took about 25 minutes without a fast loader. Great game though and still a favourite.
I'd assumed that this game was written in machine or assembly language!
Other commercial C64 BASIC games such as Sword of Fargoal and the Dunjonquest series were years earlier.
Random observation: I believe the pictures in C64 Pirates! are loaded into part of the redefined character set (the characters not used in the text).
I played on C64, Amiga and PC: TONS OF HOURS! Maybe the game I played the most! I still love it. 💖👍🏴☠️
cool! never played this one but I loved Gold and the 2004 release
Thanks for this! One of my all time favorite games. As a teenager I played hours upon hours on an Amstrad PC1512 with a black and white monitor but was totally blown away when I saw it on my friend's C64. I didn't care for the Gold version much but I still enjoy playing the 2004 remake from time to time. Not a fan of the dancing mini game though.
How weird it must have been to have Robin Williams in a video game company meeting room.
this is intresting looking back at it a friend of mine had the situation with encounters every second but we had no idea .. we propebla had the warning but since weve had not idea about how to talk read or understand english we just "clicked" .. just looking at this or just listen to the audio noise sound the disc drive produces when reading brings back this warm and fuzzy feeling of happyness :)
The Pirates games was one of my favs many years ago when I had a C64. Watching this video was a good shot of nostalgia and it was cool to see all the extra stuff you demonstrated. Now, maybe I'll need to find a way to play that game again (emulator perhaps). Keep up the good work. Cheers!
me and a friend used to play this together on a c64 and the cpc 464. I used to take my computer to his place with my monitor (he lived only across the street) and we would play all afternoon. The cpc version was a tad slower, but some great memories!
I’m very glad my copy had superior box art. I Spent a lot of time studying the beautifully painted art on my version as a kid.
A pirate ship in tropical waters, firing at a hapless ship with a broken mast and holes in its sails. There was a lot of detail to eat up like pirates climbing in the rigging. Really added a lot a flavour.
12:12 oh. had a flashback to late 80s trying to play this as a 10yo kid who didn't know English yet so didn't understand what the copy protection prompts were and thought the game was just one dumb unwinnable swordfight. probably wasn't alone with this impression back in the days of rampant piracy ;)
Qué idioma?
This game was so amazingly fun to play.
Oh, it's my favourite game of all time. I used to play it on Amstrad CPC6128. I spent countless hours on it. Since I had no manual nor map (for...reasons), I had to guess the arrivals of the silver train and treasure fleet before each game, and to draw my own map with all the towns.
Great video, as usual. I learned a lot from it.
Checking the output of SID Osc.3 for a difference 101 times in a row AND in Basic seems like an overkill to me. Even if the code was written in assembly ,101 times would still be an overkill. Sid wanted to be really-really sure Osc.3 is returning the same value, it seems.
I guess he had to check a lot of times because the value of the SID did not change at every machine cycle. Much easier doing it this way than working out the timing in a precise way.
What a game. I remember hearing in some interview (maybe on The Retro Hour podcast, not sure) that the idea for Pirates! came from a co-worker at MicroProse, who learned about Pirate history during his vacation in the Caribbean.. Sorry, can't remember names.
Agh. Had to check. So, it was Sid himself who was in the Caribbean. Source: The Retro Hour podcast ep. 230, interview with Bill Stealey at 1h 1m 16s.
I used to pretend to be sick when I was kid, to stay home from school and play Pirates!
You're not the only one
Love the vid. You got a new subscription ;) Nice to see the coding. Back in the days the difference between code and the logic of the problem domain (here, the game) was so big. The programmer had to do the transition. Even more if ASM was used. Today the abstraction of the programming languages and dev stacks is so high that coding if much easier. Of course with higher abstraction also more complex solutions can be addressed. Just saying. Learned first coding as a kid on a C64 and still loving it.
Very cool game. There is small bug in game. At the begin of the game of the game you can choose the country (English, France, Dutch, etc). However later in the game it allows you select Holland. Holland is one of the Dutch provinces (South Holland and North Holland). On a different note, I noticed that you have an expansion card that you can plug-in up to 3 cartridge. I made a similar card that allowed me to plug-in up to 8 cartridges . I would use it to capture a copy of the cartridge and copy it to disk. This would allow me to “backup” a cartridge 👍🙂
I loved this game, but only had the PC version. In the PC version, the Gold Overflow bug was different. It seemed that it started to wrap into other state variables, because all kinds of weird behavior showed up somewhere between 50,000 and 150,000 (IIRC). I always had to divide the loot before 100,000 or for sure lose it all due to something completely unrelated. Don't recall the details.
Good to know game development doesn't always have to be 100% machine code.
Love to see an extended jouney thru the game mechanics. 👍
Wow! I loved my Commodores (64, 128, Amiga). Loved all those Sid Meier games. Thanks!
Love that scratch and save line. Whether it's BASIC, or my LADs assembly in BASIC, I always add a line 55555 that does that AND a verify. :)
Oh, one of my favorite games from this era!
There was additional copy protection in the game, a more indirect one. The box comes with a printed map of Carrabeian, with marked what city is on what location during the different time periods. There is no built-in map in the game - it only told you horizontal coordinates, vertical coords you had to read yourself using the instrument, then read the location of your ship on the map. Without that map doing the storyline quest or governor tasks are almost impossible to do, but it's enough to just randomly sailing and looting. Printing is dirt cheap nowadays but it was really expensive back then.
I too discovered the game was coded in BASIC probably also by an unexpected error in my youth, but wasn't aware of a lot of what was covered in here.
I would love to see an updated C64 version that converts all the basic code to ML, as the game was always so slow. It might also be able to fit entirely in memory if converted. Imagine Pirates with no additional loading needed or slow draws.
Anyone has Pirates!?
Anyone?
lol
Man, I have played dozen of Sid’s games during these decades.. RRTycoon, Civs, F15 II, Gunship2000, Colonization..
I’m in debt for Sid, Braben, Lord British, and a lot of other great pioneers for giving such amount of rich experiences, not only as a child or young person, but these classics still bring enjoyment even after 30-40 years.
Cheers from Northern Europe!
Thanks, I liked the old Micro Prose games back in the day, Pirates was one of the few we didn't have though, but this was a very interesting look at the game!
My dad was particularly into flight sims, on the C64 we had F-15 Strike Eagle and Gunship among others. Gunship was personally my favorite, although it had this very annoying bug where sometimes the roster save data would get corrupted and lost seemingly at random. I haven't been able to find much info about it other than it happened to others as well so it wasn't just an issue with our disk/C64, and a suggestion that it may have been linked to turning the game off when failing a mission to avoid getting KIA or MIA. Although I know there were times I did that and it didn't corrupt and times I didn't do that and it did, so that explanation seems kind of suspect.
If you'd ever like to do an in-depth video on C64 Gunship (or any Micro Prose games really) in the future in a similar manner to this one I'd be extremely invested in it! Love your videos, I enjoy them a lot!
"My last big C64 game was Sid Meier's Pirates! Sid pushed beyond the confines of military sims to pursue a lifelong interest in the so-called Golden Age of Piracy. An action-adventure game, the player could sword fight, sail, attack enemy vessels and interact with the denizens of the Spanish Main. Every screen was restricted to a character set of no more than 127 unique characters using the C64's (less than ideal) palette of 16 colours. The team spent less than nine months on the game from launch to publication."
-- Michael Haire, graphic artist
I lost count of how many days I literally spent playing this, instead of doing homework :-).
One of history's greatest games. A real sandbox for the day. I've conquered the whole map many times, even though that was not the point of the game. Once I kept the career going for 20 in game years, and found that the treasure fleet and silver train both show up in the locations and times listed in the manual. I was always good with the fencing, and found that wit and charm were the better choice when I play.
29:27 what is line 1 good for? it checks location $9525 to be 133 and then loads a file called "64ksupport". can't explain myself what might be the sense of this, cause in my mind there ara no c64 with less then 64k of ram out there, or? Mabe there was a plan to let run this code on another machine? or may be it be possible to run it on c128 in c128 mode?? at least it must be a system with a vic/sid in the same adressspace as the c64 has the vic/sid...
I was wondered at this myself. The best I can come up with: A German firm REX Datentechnik sold a 128K expansion, as well as some kernal switching boards and similar add-ons. One of the kernal switchers is the REX 9525, which may be coincidential or not. (It may have been that REX Datentechnik or a similar vendor used this address to insert an identifier, maybe as a proprietary POKE/PEEK address for setting/reading features.)
Anyway, I guess it must have been about less than 64K reliably available, which may be due to some add-on board that would highjack some parts of the "underlay RAM" by messing with the address bus and/or by introducing an alternative bank-switching scheme (as would have been required for a custom memory expansion, as well).
Also surprised this went unremarked by our host.
Sorry I didn't address that, but I didn't really figure it out. This game still has many mysteries that could take me extra weeks of exploration. My guess is that "64ksupport" refers to going beyond BASIC's natural limit of 38911 bytes free; perhaps it's some machine language routines to support putting code and data under the BASIC/KERNAL ROMS, and maybe even under I/O.
I found a page talking about getting rid of copy protection on the game, and it talks about what this program is used for: c64preservation.com/RL6Handbook_v130/I_1STTUT.HTM#CHAPTER42
The 64ksupport program appears to be machine code support routines. I'm guessing line 1 does the check to see if the file is already in memory, allowing it to skip the load.
@@MikoKisai thank you.
Cool stuff! Wild looking at this old code and PC! I still also have a bunch of the pirates of the spanish main table top game card ships. was a great game. Thanks for the great vid! :D
Pirates! one of the first/best open world games of its time.
This is so fascinating. I had no idea that they'd have written Pirates! in BASIC. I wonder what language they used for, say Gunship...
I recently finished "Uncharted Waters" on SNES. I've never played "Pirates!", thanks for making this vid now I'm intrigued.
I am blown away at the 3 character variable names. BASIC, of course, ignored everything past the first two characters. Anything beyond that was spending bytes just to make the code (slightly!) more readable.
Honestly, I'm still trying to wrap my brain around the fact that Pirates is largely in BASIC.
The thing with the sails during naval battle, is that "battle sails" are trimmed, and not as fast as "full sail". "full sail", though, exposes your sheets and mast to cannon damage, with a snapped mast you'll have to sail, very slowly, to a town where you can get it repaired. So it's best not to have full sail during a battle. During the last moments though when they're running away, you can raise them fully. By then they should be down to their last few cannon, and ships like these can only fire broadsides, ie sideways, anyway. So if you're directly behind them, you're in no danger.
This game was relased in polish for C64 i remember had awsome time with this game ♥
I never had my own copy of pirates, but it was a fun game for sure. There must be other games in basic in the same way I recall always crashing and getting weird fonts loaded.
I had that cassette version of the game back then in the late 80s. I got it with my C64 as my first game. That game box had nicer art on the cover and the game included a beautiful map that was printed on high quality paper. It felt like a real map. The most of the drawn pictures (like portrait of the characters) are removed from the cassette version. I would say that was a really good design choice. Also land combat (the musket fights) are removed but it is also a good thing because those land combats are the weakest feature in the game. (I have later played several other versions of the game.) Pirates! is still one of my all time favorite games.
Pirates and F15 Strike Eagle were the first computer games I played as a kid on an old Tandy my dad brought home from the office.
That fanwiki page is hilarious.
It's so hilarious that I want it to never change.
i was hoping you would also show the trick i found back in the 80s to show the entire pirates map. i believe i had commented about this about a couple of years ago on one of your videos about games. when you get to the prompt with long string error, you poke 53272,something. i cant remember it, maybe 23, maybe 32, you basically change the mode and get the map.
Oh, interesting, I actually didn't know about that, or didn't remember if you shared the trick earlier, sorry! Sounds like the map must be stored as a bitmap or screen, and you can do a poke or two to make the VIC-II point towards the map.
@@8_Bit yea, i've never seen this anywhere before. I think i'm the only one who knows this since i had discevered it by mistake just messing with 53272 :-)
@@8_Bit
this is how it looks
photos.app.goo.gl/ZTLLqT5kPufjrG9G6
Bravo Tonguç Abi.
Pretty clever dude!