Giter VIP home page Giter VIP logo

freefalcon-central's Introduction

FreeFalcon

A campaign based, multiplayer, open source flight simulator.

About FreeFalcon

FreeFalcon was once a project to mod the original Microprose Falcon 4.0 Combat Simulator. Most of the development was done from a small group of people dedicated to the scene. Now we're going open source, and anybody can contribute.

Build Instructions

This is only a summary of the requirements and assumes a knowledge of your way around installing libraries on your system. For more detail, see our documentation.

FreeFalcon currently requires Visual Studio 2010, updated to SP1.

To load the Installer project, you'll need the latest version of the WiX Toolset, which can be found here. Without this, you will get an error when loading the solution, but you will still be able to build the FreeFalcon source code- you just won't be able to package it into an installer.

You'll need the Windows SDK 7.1 (get it here); to install it successfully, you'll need to uninstall any existing Visual C++ 2010 redistributables on your machine. They will be reinstalled with the SDK. Then install this to update the compiler.

The DirectX 8.1 SDK is also required (download here). Install it anywhere on your hard drive, and point Visual Studio to where ever you installed it. This tutorial covers how to do that- follow the instructions under "Setting up the Include and Library Paths", you can ignore "Linking the DirectX Static Libraries In Your Projects" as that is already taken care of.

To set up the source code to run in Debug mode, you'll need an install of FreeFalcon on your computer. To tell Visual Studio where this installation is, right click on the FFViper project and select Properties from the dropdown. Under Configuration Options in the window that pops up, select Debugging and edit the Working Directory to the root of your FreeFalcon install.

To compile the code, do a build on the solution or the FFViper project. To run the code, run the Debug target of the FFViper project. You should set FFViper as the startup project in the solution's settings so that this is done automatically. Once you've built the code once, you usually won't have to do full rebuilds; just run the Debug target again on FFViper and it should build any changes. If you pull down changes from GitHub, you may have to rebuild the projects that were changed.

Also, if you are planning on sending patches, be sure that you set Visual Studio to use spaces instead of tabs! This setting is located at Tools -> Options... -> Text Editor -> C/C++ -> Tabs, select "Insert spaces".

Building the Installer

To build the installer, you must be on the Release target. You can then right click the project and click Build and it will create the installer. If you don't have an up-to-date Release build of FFViper, this may take a while- it will build FFViper for you if it needs to. The installer will build into the pkg/ directory at the root of the repository.

Contributing

You can contribute to the project in various ways.

  • If you're a programmer, go ahead, fork us and hack away! If you feel that you have something good going, send a pull request and we'll talk about getting your code into the main source tree.
  • If you're not a programmer, not to worry! Just let us know if you find any bugs or have any suggestions in the issue tracker.

Legal

FreeFalcon doesn't have the cleanest history regarding its terms of use, but that all ends here. The code is now licensed under the rather liberal BSD 2-clause license; for the first time in its history, FreeFalcon is truly free. See the LICENSE.md file for the full text of the license.

freefalcon-central's People

Contributors

petermeyer avatar plutoniumheart avatar stewie23 avatar vinnydiehl avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

freefalcon-central's Issues

Failed assertions trying to get into 3D mode

Right as the first plane is lit up on the loading screen, there are two assertions that fail. Both message boxes pop up at roughly the same time, so let's look at these first.

One of them occurs in this switch. m_eSurfFmt is set to D3DX_SF_UNKNOWN at this point, and the switch falls through to the default case where there's a rather stupid way of erroring out (ShiAssert(false)? WTF).

The other simultaneous error is from this assertion here.

Accompanying these is this message on the console:

Texture: Failed to create texture  (Code: 80070057)

FF Copyprotection stragneness

I just got the Info out of the Community, thadt our Friend Fred BaldEgale has done
some nasty things in one of the most used tools for modding (LODEditor) wich has its
Counterpart in FFViper.exe See the text below.

In the Contribsection there is some Code of LODEditor Maybe we should check the
code and tell our Userbase not working with the blackboxed, harmfull LODEditor
Version.

LODEditor 7.0.2.4 and later

Commandline switches:

-dxl -ffdev

-ffim
-hires
-dxl
-ffdev
-adm1n
-unlkdb
-qed
-debug

-hisw

Menu: Dev Utilities "Lock DB", "Unlock DB" and "Check DB Status" functions.

The current security DB status has a check mark next to Lock DB or Unlock DB.

To lock and unlock the DB or check its status, use LE with "-ffdev" commandline switch
and the Dev Utilities "Lock DB", "Unlock DB" and "Check DB Status" functions.


d:\FFalcon\files.dir

moved to:

d:\FFalcon\Sounds\files.dir

d: = FF install drive

  • FalcLib\F4Find.cpp (code here)

RedViper.* and FFViper Config Editor.exe are zeroed out when FFViper.exe is run.

  • FalcLib\F4Find.cpp (code here)

  • FalcLib\Entity.cpp & Classtbl.cpp (code here)

For FFViper KoreaObj.dxh Parent record nDOF and nSwitch variables were put in
variables that can hold bigger values. When KO.dxh is "Locked", Falcon 4 versions
other than FFViper, will crash due to the original nDOF and nSwitch variables being
set to zero. "Unlocking" KO.dxh copies the new nDOF and nSwitch variable values
to the original variables.

d:\FFalcon\terrdata\objects\Falcon4.* files (except Falcon4.phd and Falcon4.pd)

The number of entries (records) in the file is moved to the end of the file
and zero is put in the number of entries position (first 2 bytes).

FFViper.cfg must have "set b_gFFDBC 1" for FFViper.exe to work. All other exe's
will error out. (This method will be used for release of FF 5.x).

Added "safe" DB access (detects the DB status) for LE and FFViper.
(This method will be removed for release of FF 5.x).

To lock and unlock the DB or check its status, use LE with "-ffdev" commandline switch
and the Dev Utilities "Lock DB", "Unlock DB" and "Check DB Status" functions.

End of File

Strange indexing overflow crashing on startup

Our next problem is here.

The problem is that ppn->sizeStages somehow jumps way up to some obscenely high number after a few of what appears to be normal iterations of that On block.

I put in a bit of test code to send the value of that to a file so I could observe its pattern, here are my findings: https://gist.github.com/53d3e98c47848414e4e6

The bit of code that I had there commented out does stop the crash, but I feel like that's a pretty bad thing to do? We should probably find out why the value of ppn->sizeStages suddenly jumps way up to 1064514355 and stop it from doing that.

Copyprotection code from former FF Coder

There are a few lines of code, made by the old Coder Fred Balding (Baldeagle) wich makes
some Copyprotection checks,

File: F4find.cpp

    // FF protection
    static int Done = 0;
    sprintf(path, "%s\\sounds\\files.dir", FalconDataDirectory);

Ranger reported me via EMail about this a few month ago.

FreeFalcon5 and FreeFalcon6 textures

The main UI screen has a FF5 texture that needs to be edited to remove the 5.
The exit screen has a FF6 texture that needs to be edited to remove the 6.
The version number now works OK so no need to put it in a texture.

UI-TacRef no textures

All weapons are shown as white, without any textures.
Helicopters are shown with a rotating square instead of a rotor.

FF6 graphic card (who knows?) issue when in MP

Hi all. I'm here with my alternative nick, because as seems my official one (Jackal) is kept here yet.

Also given that the old FreeFalcon forum has suddenly closed, would someone kindly help me with this issue?
When I'm in FF6, ITO2 theater last released version opened, and most of all when I'm in MP, the sim crashes after a few minutes of flight - it freezes and I'm obliged to close the sim with the hard manners using the manager (pressing the keys CTRL+ALT+CANC and closing the program not responding any longer).

To me, it's not a MP issue, or not only related to MP, but more anyway it's somehow related to the graphic side - I use Win7 Ultimate on a system equipped with a nVidia GTX660Ti graphic card, 32 Gb of RAM and an Intel I7-3820 @3.60GHz.

Here is as follows the last crash log:

"FFViper.exe caused a EXCEPTION_ACCESS_VIOLATION in module FFViper.exe at 0023:0065D42C, ObjectiveClass::GetRadarType()+60 byte(s), g:\cobradev\ffviper\campaign\camplib\objectiv.cpp, line 1569+25 byte(s)
Exception handler called in SimLoop Thread.
Read from location 00000067 caused an access violation.
Code: 0f bf 40 24 eb 02 33 c0 8b e5 5d c3 cc cc cc cc 
Stack dump:
Stack: 0023:0065D42C (0x00000000 0x12E08000 0x2528E728 0x006ADB4F) FFViper.exe, ObjectiveClass::GetRadarType()+60 byte(s), g:\cobradev\ffviper\campaign\camplib\objectiv.cpp, line 1569+25 byte(s)
Stack: 0023:008FAB3C (0x12E08C30 0x2528E728 0x00000000 0x0556F728) FFViper.exe, ALR56Class::GetLethality()+76 byte(s), g:\cobradev\ffviper\sim\rwr\alr56.cpp, line 32+14 byte(s)
Stack: 0023:007168A9 (0x12E08C30 0x12EC5128 0xFA5EFC84 0x4D05A19A) FFViper.exe, PlayerRwrClass::IsFiltered()+41 byte(s), g:\cobradev\ffviper\sim\rwr\playerrwr.cpp, line 1006+15 byte(s)
Stack: 0023:00714F0E (0x2523AE48 0x12EC42F0 0x00000000 0x2528E728) FFViper.exe, PlayerRwrClass::Exec()+910 byte(s), g:\cobradev\ffviper\sim\rwr\playerrwr.cpp, line 224+12 byte(s)
Stack: 0023:0077011B (0x00000000 0x00772DAF 0x00000800 0x00010000) FFViper.exe, AircraftClass::RunSensors()+395 byte(s), g:\cobradev\ffviper\sim\aircraft\aircraft.cpp, line 2550+21 byte(s)
Stack: 0023:0076DEEF (0x2520FC78 0x12EC42F0 0x085A24A6 0x0556FE50) FFViper.exe, AircraftClass::Exec()+9567 byte(s), g:\cobradev\ffviper\sim\aircraft\aircraft.cpp, line 1808
Stack: 0023:0072E550 (0x085A24A6 0x0556FE2C 0x2520FC78 0x0556FEB8) FFViper.exe, SimVuDriver::ExecModel()+32 byte(s), g:\cobradev\ffviper\sim\simlib\simvudrv.cpp, line 91+14 byte(s)
Stack: 0023:006ACDA2 (0x085A24A6 0x12835F08 0x0556FEA4 0x2520FC78) FFViper.exe, VuMaster::Exec()+50 byte(s), g:\cobradev\ffviper\vu2\src\vudriver.cpp, line 307+15 byte(s)
Stack: 0023:0078C2E4 (0x00000003 0x12BF3E10 0x00000000 0x00000000) FFViper.exe, SimulationDriver::Cycle()+836 byte(s), g:\cobradev\ffviper\sim\simdrive\simdrive.cpp, line 662
Stack: 0023:0071BEE1 (0x00000000 0x00000000 0x00000000 0x00000000) FFViper.exe, SimulationLoopControl::Loop()+1393 byte(s), g:\cobradev\ffviper\sim\simloop\simloop.cpp, line 504
Stack: 0023:0071B674 (0x00000000 0x0556FFD4 0x77279EF2 0x00000000) FFViper.exe, SimLoopWrapper()+68 byte(s), g:\cobradev\ffviper\sim\simloop\simloop.cpp, line 116+5 byte(s)
Stack: 0023:764E33AA (0x00000000 0x721D7CFC 0x00000000 0x00000000) kernel32.dll, BaseThreadInitThunk()+18 byte(s)
Stack: 0023:77279EF2 (0x0071B630 0x00000000 0x00000000 0x00000000) ntdll.dll, RtlInitializeExceptionChain()+99 byte(s)
Stack: 0023:77279EC5 (0x00000000 0x00000000 0x00000000 0x00000000) ntdll.dll, RtlInitializeExceptionChain()+54 byte(s)
EAX=00000043  EBX=00000000  ECX=03D70CA8  EDX=00000001  ESI=00004D15
EDI=00000000  EBP=00000000  ESP=0556FFF4  EIP=00000000  FLG=00010212
CS=0023   DS=002B  SS=002B  ES=002B   FS=0053  GS=002B
Error occurred at 1/24/2013 20:08:42.
C:\FreeFalcon6\FFViper.exe, run by Giove.
8 processor(s), type 586.
0 MBytes physical memory.
OS: 6.1 build 7601 platform 2 Service Pack 1
FreeFalcon: 6.0  *  FFViper: 2.3.3.44
Card: DXContext::Init - DriverInfo - "nvd3dum.dll" - "NVIDIA GeForce GTX 660 Ti", Vendor: 4318, Device: 4483, SubSys: 293802160, Rev: 161, Product: 0, Version: 0, SubVersion: 0, Build: 0
Game is Tactical Engagement type Networked
DX Model ID : ffffffff
Texture ID  : ffffffff"

So, what do you think?n Is anyone there who could give a help to solve this?

Thanks a lot in advance for yor attention and best regards.

JagHond

"already in Index" errors in console output

I'm getting the following two lines of seemingly related error output in the console:

ERROR: BID_FILE_DIS already in Index
ERROR: WIN_ADD_SQUADRON already in Index

They may or may not be harmless, but it'd be best to kill everything reminiscent of an error, eh? ๐Ÿ˜ƒ

The problem occurs in C_Resmgr::LoadIndex() on this line. There are several spots in that method where an "already in Index" error could be printed, but both are from this line, so it's at some point in that while loop that they occur.

Terrain Textures not loading

The current code loads the terrain textures here

Since the FF6 installer comes with terrain files with "H" in front an not with "L" nothing gets loaded at all.

Changing the "L" to "H" (res is 0) leads to a crash when it tries to load the first mipmap

Windows 8 resolution bug

When trying to run the code in Windows 8, I get the following warning:

Requested unavailable resolution 1024x768x16

The warning is coming from this bit of code.

Peter is also getting this issue on a Win8 install. It looks like it's whining about having to load 16-bit colours. This warning can't be ignored to continue to the UI- the sim crashes upon continuation.

FF6 does boot on this computer as I have it installed, but it doesn't run when compiled in debug mode on VS2010, so I'm adding this to the migration milestone.

Questions about future development.

Let's assume that we have a sort-of-working version (i.e. able to go into 3D environment for 90% of the times, in both debug and release version, and is functioning the way it was in FF6) of the code, what's the next step? Who's capable of/going to do it?

Occasional bug when trying to load a font

Sometimes this assertion fails, sometimes it doesn't. The file that it is trying to read is at art/ckptart/autofont/16x12font.rct in the FF install directory. The contents of str on the pass where it fails is "3 43 234 10 18 1\n"- only 6 numbers, when there should be 7 or more. It appears to reach the EOF one-off.

I can't exactly pin down the cause of this- it seems to crop up whenever it feels like it, and disappear whenever I try to observe it.

Debug Assertion Failed on startup

I just compiled the updtodate source from the Repo. In debug/Release i get a new critical Error:

Debug Assertion Failed

The Debugger falls back into this Code in
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\crt\src\dbghook.c\dbghook.c

__declspec(noinline)
void __cdecl _CRT_DEBUGGER_HOOK(int _Reserved)
{
/* assign 0 to _debugger_hook_dummy so that the function is not folded in retail */
(_Reserved);
_debugger_hook_dummy = 0;
}

Expression Stream != Null

The Line of crash is in the Method: int DisplayOptionsClass::LoadOptions(char *filename)
in F:\Projekte\GitHub\freefalcon-central\src\falclib\dispopts.cpp Line:62 "fclose(fp);"

Maybe this is an sideeffect of the registry changes we had?

FFViperCompat

Right now weather Module will not initialize correctly after FFViper was compiled
correctly. This has to do with General overrides. The Problem is known and is
not solved read.

Topics: FRead Problem, past bug in VC++ Compiler.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.