Release Starcraft


notaz

Certified Guru
Joined
Aug 23, 2005
Messages
4,913
Location
Lithuania
Website
notaz.gp2x.de
The Overmind said:
Awaken my child, and embrace the glory that is your birthright. Know that I am the Overmind; the eternal will of the Swarm, and that you have been created to serve me.

It's on the repo.


You'll need full installation of Brood War from PC with latest 1.16.1 patch applied. It also needs to have required files copied from CD (1.16.1 removed CD checks, but doesn't automatically install all required files):


- copy "INSTALL.EXE" from the StarCraft CD to your StarCraft folder and rename it to "StarCraft.mpq


- copy "INSTALL.EXE" from the StarCraft: Brood War CD to your StarCraft folder and rename it to "BroodWar.mpq"


You should try the game on PC without CD first, if that works, you're ready to copy the game's folder to pandora/appdata , the folder should be named "starcraft".


So a Starcraft port? Sort of..


The "no source, no port" rule is not completely true, you can get something similar (but not the same) as a port through static recompilation. Similar stuff was done several times by M-HT for some DOS games. The game was also converted for Android with somewhat similar approach.


So how does it work? The game was fully disassembled with IDA, then converted from x86 disassembly to C with my custom tools that I wrote as the project progressed, then compiled as a normal program and linked against ARM winelib (so the Win32 API is provided by ARM port of wine). Sounds easy? The hell not! I've started it sometime in autumn and was hoping to have something after a month or so, but it was far from working at the time of New Year. Then tried to target the Alive compo, but that slipped too. There were way too many problems and things that I did not expect.. Maybe I'll write about it someday. Would I do it with another game? Maybe not, let's just say "no source, no port" rule is always true and Windows games should be handled through emulation, static recompilation is possible but way too problematic in practice.


However in the end I think it works quite well, give it a try. It should be close to how "real" port would work, there is no emulation anywhere. There is a bit of overhead in 8bpp -> 16bpp conversion, but it's not too bad. The game likes to eat CPU even when it doesn't really need it, so it might make sense to underclock sometimes.


Known bugs in b6:

none

old bugs:


- custom scenarios are broken


- when playing as terran, attempting to land a building will crash the game


- first protoss mission (from expansion) crashes


Edit: wine is hacked a bit, I've pushed out the changes to github:

http://github.com/notaz/wine/tree/pandora_hacks
 
Last edited by a moderator:
I want to marry you!!!! This is more then epic :) . May I ask if you will try to fix the landing crash bug? Some campaign missions need you to land buildings.
 
It's one of my two favorite games !!!

I'll try this right now.

Maybe the cpu throttling option (while ingame) may help about cpu eating.
 
Oh wow!  You, notaz, have proven lots of people wrong with their "no source no port" rule :)   Thank you.  I will donate just for this effort of yours alone when I get home!  :)

Edit:  Donation sent!
 
Last edited by a moderator:
This is so awesome, especially the whole approach...
 
I put my SC folder in program files, but it said it can't load local.dll .
 
Holy Crap! O.O

....speechless I tell you...

Words are not enough to express the gratitude and amazement I feel right now.

On a more sober note... will you continue working on this, or will this 'port' forever have the two bugs you mentioned?

Either way this is Oh... My... Fuzzy... Goodness mind blowing.

Installing this first thing tomorrow when I get to work. (Home comp. Motherboard is broken).

Wow.
 
I tried many combinations, can't make it work :/ :/ :/ .

Got it, it's a bit dirty to put all in appdata/starcraft, but np :D .
 
Last edited by a moderator:
Yup, i finally make it putting everything in the appdata/starcraft/ folder.

It runs incredibly fast compared to qemu+win95 !

Notaz, Hero above Heroes, Master of the Masters, i hope you'll fix the custom scenarios as it would be awesome to get network play ! (i also have something else in mind, which is the de facto method to connect to korean servers, as bnet is almost dead for sc/bw)
 
- When playing as terran, attempting to land a building will crash the game
Who plays Terrans anyway? :D

I was Zerg most of the time (zergling rush and lurker traps later on), Protoss sometimes for dark templar ambushes.

Any idea if this bug may get fixed?
 
Last edited by a moderator:
Wow, I really wasn't expecting this.  I was more of a C and C guy than Starcraft, but with that said this is definately getting slapped on my Pandora.

You don't suppose Diablo 2 could be.. done the same way? :eek:
That would be godlike.  I use the PS1 version of Diablo to get my fix when I'm on my Pandora, but D2 on it would be insanity.
 
Back
Top