OpenCiv1 Project - Open source rewrite of the original Civilization 1 Game designed by Sid Meier and Bruce Shelley in year 1991

I was actually intending to go through this thread and analyze your code to get a better understanding of what you're doing.
I cracked a few simple programs with ollydbg 15 yrs ago, so I understand the concepts, but haven't been messing around with assembly much since then.
Sorry guys,
Trip through a memory lane 😀

Around year 1988 I was finally blessed 🙏 with Amstrad CPC 464. It's an Z80 based 8bit computer with 64KB of memory, integrated keyboard and cassette (tape) deck.
The game loading was often interrupted with 'Loading error' because the tape got damaged little bit every time you load it.
The game that I bought back then was the 'Impossible mission' which after some time, you guessed, was starting to gave me a 'Loading error' 😱.

Naturally, I cracked the loader and made a vanilla version which could be loaded (and copied) normally.

I remember filling around 10 A4 pages (front and back) full of Z80 assembly code that I slowly analyzed and decoded. It took me around 4 days to do the job (I had no printer to print the assembly, just pencil and paper).

Couple months later as I was reading a Computer magazine that was popular in old 'Yugoslavia' the big title was 'The Impossible mission finally cracked' the article stated that it took so much time because the copy protection mechanism was so complicated that only some high level hacker finally cracked it 🤪

So much about 'It's impossible' statement, everything is possible with time, knowledge and enough effort 😎

Cheers
 
Last edited:
So you've basically made a virtual CPU with C#. Good job and the introduction is well written! It will no doubt be helpful.
I've started familiarizing myself with your code and with what you've done sofar. It will probably take some time before I even see whether I could provide any meaningful contributions.
Also I suggest you make issues on github where and how people can contribute. To make it more public, beyond the confines this forum.
The project obviously needs more publicity so if you agree I'll at least try to publish an entry on os game clones.
 
So you've basically made a virtual CPU with C#. Good job and the introduction is well written! It will no doubt be helpful.
I've started familiarizing myself with your code and with what you've done sofar. It will probably take some time before I even see whether I could provide any meaningful contributions.
Yes, exactly.
I have used this concept on my previous projects with much success.
What you get is runnable code that you can slowly translate, check for bugs and test.

It's performance is slow in the beginning, but as you translate code it gets better and better.
It would be impossible to run the code and test if I was translating all the code function by function.

Also I suggest you make issues on github where and how people can contribute. To make it more public, beyond the confines this forum.
Could you please elaborate what you mean by 'issues' on GitHub. GitHub has Issues and Actions. I have recently been more active on GitHub, but my knowledge of GitHub intricacies is poor. Do I simply add to Readme how people can contribute or something more?

The project obviously needs more publicity so if you agree I'll at least try to publish an entry on os game clones.
Yes, I agree.
I looked at os game clones and will make entry there.
I will see if I can find other options for making this more publicly known.

Cheers
 
The real question now, since it's progressing to a level of playability is how will I name my project.

What do you think would be the best name?

The name is now simply 'Civilization1' do I rename it to an 'Open Civilization I' sounds like it will not step on any toes and includes openness in a name (which is a goal for this project), 'Open Civilization I Ultimate' sounds cool, and so on.

What are your ideas on this?

Please share 😉
 
I like OpenCiv as it implies something similar to existing projects like OpenTTD and OpenRA. I don't think the name is taken. FreeCiv is the famous one that already exists (and is a bit different, it's inspired by civ but is its own thing)
 
I like OpenCiv as it implies something similar to existing projects like OpenTTD and OpenRA. I don't think the name is taken. FreeCiv is the famous one that already exists (and is a bit different, it's inspired by civ but is its own thing)
I agree, 'Open Civilization I' seems like a good choice. Later port to a modern platform can bear a more 'modern' name ;)
 
@rahorvat

1) I suggest OpenCiv1.
2) On github use the "Issues" tab to make entries where exactly you need help/assistance. You can assign labels to them, like "good first issue", "help wanted" etc.
3) I strongly suggest that in "Readme" you add a few screenshots and write what has already been done and what is on TODO list.
4) There's also a "Wiki" tab where you can write code styles, FAQs, etc. Like here. You can put this on the wiki and reference it in the Readme.

No doubt Blake will spread the news on reddit pages etc. :) Once people see those screenshots and realize it's not vaporware, they'll hopefully start contributing.
 
@rahorvat

1) I suggest OpenCiv1.
2) On github use the "Issues" tab to make entries where exactly you need help/assistance. You can assign labels to them, like "good first issue", "help wanted" etc.
3) I strongly suggest that in "Readme" you add a few screenshots and write what has already been done and what is on TODO list.
4) There's also a "Wiki" tab where you can write code styles, FAQs, etc. Like here. You can put this on the wiki and reference it in the Readme.

No doubt Blake will spread the news on reddit pages etc. :) Once people see those screenshots and realize it's not vaporware, they'll hopefully start contributing.

Thank you for your helpful comments!
 
@rahorvat

1) I suggest OpenCiv1.
2) On github use the "Issues" tab to make entries where exactly you need help/assistance. You can assign labels to them, like "good first issue", "help wanted" etc.
3) I strongly suggest that in "Readme" you add a few screenshots and write what has already been done and what is on TODO list.
4) There's also a "Wiki" tab where you can write code styles, FAQs, etc. Like here. You can put this on the wiki and reference it in the Readme.

No doubt Blake will spread the news on reddit pages etc. :) Once people see those screenshots and realize it's not vaporware, they'll hopefully start contributing.
Huh,
done! 😩
 
  • Like
Reactions: axx
Hi, I fixed the existing palette problems and some string problems.
I will start to move global vars from their memory segment DS, to a global namespace Civilization.
The overlays also need their names (for example overlay 8 is civilopedia).
The naming will be easier after I map the strings.

Cheers
 
Last edited:
@rahorvat

1) I suggest OpenCiv1.
2) On github use the "Issues" tab to make entries where exactly you need help/assistance. You can assign labels to them, like "good first issue", "help wanted" etc.
3) I strongly suggest that in "Readme" you add a few screenshots and write what has already been done and what is on TODO list.
4) There's also a "Wiki" tab where you can write code styles, FAQs, etc. Like here. You can put this on the wiki and reference it in the Readme.

No doubt Blake will spread the news on reddit pages etc. :) Once people see those screenshots and realize it's not vaporware, they'll hopefully start contributing.
+1 to all this! And you bet I'll share this around the CivFanatics social pages and retro groups once there's screenshots and stuff! :)

OpenCiv1 it is then ;)
I like it! I once tried to convince the creator of MoM-IME to change his project name to OpenMoM and failed haha.. as yeah a 'open' title fits well with other similar rebuild projects out there using it..
 
Last edited:
+1 to all this! And you bet I'll share this around the CivFanatics social pages and retro groups once there's screenshots and stuff! :)
Oh yes, there are screenshots and stuff on project GitHub page. Also, the game is playable and working.
Currently I'm working on variables and having trouble between signed and unsigned int's, so when you start the game immediately there is unhappiness and revolt LOL ;) but I will fix it soon.

Also I'm getting many visits from osgameclones.com, Thanks axx 😀

Yet, nobody to contribute, but, no trouble, I will get there, slowly 🐌😉

Cheers
 
Last edited:
Oh yes, there are screenshots and stuff on project GitHub page. Also, the game is playable and working.
Currently I'm working on variables and having trouble between signed and unsigned int's, so when you start the game immediately there is unhappiness and revolt LOL ;) but I will fix it soon.

Also I'm getting many visits from osgameclones.com, Thanks axx 😀

Yet, nobody to contribute, but, no trouble, I will get there, slowly 🐌😉

Cheers
Ahh wonderful! If it's at a playable stage and there's pictures etc then that should give us what we need to do some posts and share around ( @The_J this is getting pretty far now). Any plans for a compiled WIP version for us 'common folk' to check out? That would make it even more shareable to the masses.

Also recommend you edit your first/top post of this thread and stick in that GitHub link and some of those cool screenshots to up the presentation. As you know what most people/lurkers are like, they don't wanna read a giant thread so they just look at the start and the end haha.
.
 
Ahh wonderful! If it's at a playable stage and there's pictures etc then that should give us what we need to do some posts and share around ( @The_J this is getting pretty far now). Any plans for a compiled WIP version for us 'common folk' to check out? That would make it even more shareable to the masses.
Not in this stage, it's pretty early for a release (there are still a number of bugs). I'm pretty confident in a few months (end of 2023).

Also recommend you edit your first/top post of this thread and stick in that GitHub link and some of those cool screenshots to up the presentation. As you know what most people/lurkers are like, they don't wanna read a giant thread so they just look at the start and the end haha.
.
Good idea, thanks, will do it ;)
 
Last edited:
Back
Top Bottom