Author Topic: Mini-game Fixes  (Read 43966 times)

DLPB_

  • Banned
  • *
  • Posts: 11006
    • View Profile
Re: Mini-game Fixes
« Reply #25 on: 2012-07-15 20:40:23 »
The minigame is fixed as far as controls are concerned.  It now plays like it should. I can fix the scorer to be fairer and give it as an option.  The part that is hard is understanding which parts of the table do what in relation to enemy subs.  A lot of this data is a mystery to me, and I need to know because this needs changing.  It is not same as international version.  For example reactor battle has 7 subs in international and not 8.  There are likely a million differences in these tables.


DLPB_

  • Banned
  • *
  • Posts: 11006
    • View Profile
Re: Mini-game Fixes
« Reply #26 on: 2012-07-16 01:57:34 »
It turns out that although the tables exist (and are likely used in the psx version), they are more or less completely redundant on the PC game.   There are vast amounts of data in the exe completely unused and worthless because this minigame uses its own hardcoded settings.

I have located the main settings now, and can make any difficulty have 1-12 subs, as well as change the amount of energy they have and hit points required to beat them.

Making these records the same as international is unfortunately a far harder task since it would mean painstakingly looking at the PSX records and manually changing them in ff7.exes hardcoded area.  Basically I am not going to do that.

But what I am going to do is add in an option for a hard mode and better scorer, so this game will be more fun to play.  I have also sorted the internal programming to make the sub and area move like the PSX international.

My dealings with this minigame are pretty much done :)

Salk

  • *
  • Posts: 609
    • View Profile
Re: Mini-game Fixes
« Reply #27 on: 2012-07-16 04:59:15 »
Great job, DLPB!

Looking forward to the release of this new minigame fix!  ;)

DestroGalacticmon

  • *
  • Posts: 38
    • View Profile
Re: Mini-game Fixes
« Reply #28 on: 2012-07-16 21:09:33 »
I don't know if this relates to the matter at hand, but I've noticed that when starting the Submarine minigame, it loads Aseri2 and plays it for a few seconds. Then it just stops... If I remember correct, it played flawlessly on the PS1. What's the deal with that?

DLPB_

  • Banned
  • *
  • Posts: 11006
    • View Profile
Re: Mini-game Fixes
« Reply #29 on: 2012-07-16 21:12:13 »
What is aseri2 again?  A music?  I don't recall anything playing?

DestroGalacticmon

  • *
  • Posts: 38
    • View Profile
Re: Mini-game Fixes
« Reply #30 on: 2012-07-16 21:17:09 »
Aseri2 would be known as "Hurry Faster" in the OST. And I could bet a few bucks that it was playing during the submarine minigame... I could be wrong, though. I'll check the PS1 version now.

DLPB_

  • Banned
  • *
  • Posts: 11006
    • View Profile
Re: Mini-game Fixes
« Reply #31 on: 2012-07-16 21:20:59 »
It certainly wasn't from what I remember.  It never appeared during the minigame from gold saucer.  No sound is played at all, either psx or pc.

DestroGalacticmon

  • *
  • Posts: 38
    • View Profile
Re: Mini-game Fixes
« Reply #32 on: 2012-07-16 21:28:22 »
Huh, now this is weird. You know, I just re-played the Underwater Reactor Battle in the PS1 version, and the music was playing at first... then, it faded out.  :o So I guess there's nothing wrong with the PC music after all? My mistake...

Side note: Is it just me, or do the PS1 sound effects have better quality than the PC ones?

DLPB_

  • Banned
  • *
  • Posts: 11006
    • View Profile
Re: Mini-game Fixes
« Reply #33 on: 2012-07-16 21:29:50 »
It isn't you.  The PC from what I remember use ADPCM 8 bit (?) and are mono(?).  The PSX are generated at run time using the consoles sound chips.  They are stereo.

That's off-topic though.  :D

DLPB_

  • Banned
  • *
  • Posts: 11006
    • View Profile
Re: Mini-game Fixes
« Reply #34 on: 2012-07-17 22:56:06 »
New scorer is in place.  I had a long think about this and the new difficulty settings I will be adding, and this is the only real fair way.

Code: [Select]
Score= (Enemy_subs_destroyed*1000) - (Energy_lost/4) - Missiles_missed
Example:

Code: [Select]
10 Submarines destroyed, lost 1 bar of health, and missed with 5 missiles.

(10*1000)-(2048/4)-5 = 9483

Maximum points with 10 subs is therefore 10*1000-0-0 = 10000 points.

Time is only a consideration now for getting the job done, and of course, I am reducing that from 10 minutes.  I would have kept the frames_left calculation but the game uses timegettime which is very unfair.  If you don't get a full frame rate, the timer still counts down the same putting glitches or slow computers into the equation.  Time is still a consideration but not for score.  Score is now based heavily on number of subs destroyed and health lost, with accuracy a much smaller consideration than before.  Nevertheless, this number will be a factor with elite players.   

My plan is to make the submarine game always have 10 submarines, (or at least levels 1-4) but the speed of the subs, their energy and so forth widely different between levels.  If all works out, the different levels will FEEL like different levels.  In any case the scorer is done.  The best thing about the new scorer is, you only get points for what you do.  If you do nothing, you will end on 0.  Not on 16384 like before.

« Last Edit: 2012-07-17 23:05:38 by DLPB »

DLPB_

  • Banned
  • *
  • Posts: 11006
    • View Profile
Re: Mini-game Fixes
« Reply #35 on: 2012-07-18 06:41:15 »
Ok so the final 2 stages are here:

1.  Program in each level to have different time limits and attributes:  half done.
2.  Set AI and health of subs:  next

Part 1, I've had to do a really bog standard job.  The game does pull values from a table (that is never used), but pulling the time values eluded me since the game was designed to skip the tables and be superseded by hard code later on.  Instead I have devised a way to branch out the code and find the level then directly change the time value.  As seen in the pretty picture.  It sucks, but it works.  From here I can add what I like to each level.  Of course I have to stop any other code writing to these addresses.






DLPB_

  • Banned
  • *
  • Posts: 11006
    • View Profile
Re: Mini-game Fixes
« Reply #36 on: 2012-07-18 08:32:45 »
OK last update before release.  I have programmed in the ability for each level to have different mine strength, different enemy attack strength and different time limits.  I will try to add different enemy firing rates too.  Coupled with the new scorer and international code, this minigame is a whole lot more fun now!

Tenko Kuugen

  • Public Enemy
  • *
  • Posts: 1416
    • View Profile
    • Twitter
Re: Mini-game Fixes
« Reply #37 on: 2012-07-18 08:40:18 »
How much of this is actually in a full bootleg install? ( and how safe it is in regards to breaking the whole install if I add any fixes afterwards since I made my own edits on kernel, .exe, scene and flevel after the bootleg )

DLPB_

  • Banned
  • *
  • Posts: 11006
    • View Profile
Re: Mini-game Fixes
« Reply #38 on: 2012-07-18 08:51:53 »
The submarine minigame is unreleased.  All the other fixes listed here are either waiting to be implemented by aali or in MO installer (and bootleg?).  Full summary on first page.

The code change shouldn't break anything, and will be an option in the next MO.  It is going very well here.  I have decided that the last level will be a 1 shot kill.  If you get shot, you iz dead.


Tenko Kuugen

  • Public Enemy
  • *
  • Posts: 1416
    • View Profile
    • Twitter
Re: Mini-game Fixes
« Reply #39 on: 2012-07-18 09:04:34 »
I believe MO.exe gets used during Bootleg ( at least theres an option to install several fixes and I have a MO.exe in my bootleg folder. )
to which files are the fixes actually written? I remember that some minigames had their own files ( like fort condor )
speaking of fort condor, do you know if anyone has ever bothered to properly document the file for it? because one could do interesting things with said minigame

DLPB_

  • Banned
  • *
  • Posts: 11006
    • View Profile
Re: Mini-game Fixes
« Reply #40 on: 2012-07-18 09:06:10 »
No one has touched it program wise from what I can see...  not sure where the code is for that, very likely ff7.exe.  That's where the submarine game is :) 

Some of the fixes are done to flevel like the battler 3d odds.   

Tenko Kuugen

  • Public Enemy
  • *
  • Posts: 1416
    • View Profile
    • Twitter
Re: Mini-game Fixes
« Reply #41 on: 2012-07-18 09:12:20 »
hm, well, I did all my personal edits after the bootleg install so I assume that includes most fixes
the minigamefolder has files for chocobo, coaster, condor, snowboard and submarine. are those all just graphic related?
also, suprising just how much crap is stored in the exe

DLPB_

  • Banned
  • *
  • Posts: 11006
    • View Profile
Re: Mini-game Fixes
« Reply #42 on: 2012-07-18 15:49:18 »
When they ported to PC they placed a lot of the programming into ff7.exe.  Menu values and so forth... but they also shipped a ton of stuff from the minigames too.  The submarine game is entirely in ff7.exe with only the graphics remaining in the Minigame folder.

The submarine game is by far the worst coded thing in FF7.exe.  It has huge tables in the exe which although accessed and written, are then superseded by identical hardcoded data which is also placed into identical tables at run time.  It  makes absolutely no sense. A HUGE area of the exe has been wasted.

DLPB_

  • Banned
  • *
  • Posts: 11006
    • View Profile
Re: Mini-game Fixes
« Reply #43 on: 2012-07-20 02:19:13 »
OK I lied.  But I am excited.

Today the final values were found and I have reprogrammed the last of the data  This means each new minigame level has its own:

time limit
enemy submarine speed settings
enemy submarine health settings
enemy submarine fire rate
enemy submarine Missile speed
enemy submarine missile chasing timer
Enemy submarine missile strength
Ally submarine missile chasing timer
Mine strength

Level 1 is piss easy but...
Level 4 is deadly.  I have modelled it after Euro Extreme mode on MGS2.  You are allowed to be hit by 2 mines, but 1 enemy sub missile and you are a goner.  These missiles travel faster and longer.  It really is like a proper war game now!  Release sometimes in next 2 days I reckon.

Also note, the original submarine game had an issue.  The enemy subs were firing all 4 of their missiles in 1 go.  This has also been fixed.
« Last Edit: 2012-07-20 02:25:56 by DLPB »

DestroGalacticmon

  • *
  • Posts: 38
    • View Profile
Re: Mini-game Fixes
« Reply #44 on: 2012-07-20 14:03:20 »
Does the wireframe mode still have to be enabled manually, or is it enabled by default now?

DLPB_

  • Banned
  • *
  • Posts: 11006
    • View Profile
Re: Mini-game Fixes
« Reply #45 on: 2012-07-20 15:28:34 »
Manual, though I guess I can probably set it to be default.

DestroGalacticmon

  • *
  • Posts: 38
    • View Profile
Re: Mini-game Fixes
« Reply #46 on: 2012-07-20 17:39:44 »
Well, having the wireframe by default would sure be easier when playing with a controller, which has no F2 button. :D

Also, wireframe mode is better for the overall feel. Having only the blue geometry to navigate with felt like I'm trying do squats in a mailbox. Wireframe offers a lot more relief and breathing space.

DLPB_

  • Banned
  • *
  • Posts: 11006
    • View Profile
Re: Mini-game Fixes
« Reply #47 on: 2012-07-24 17:33:59 »
Now remember the extended mini-game programming I have done is OPTIONAL.  The new scorer and the International version movement are separate and can be used with the original AI and values.

This video is a test showing different missile programming.  I now have to use trial and error to get all the difficulties gelling properly and the AI working better (enemy ship speeds etc). A few niggles to sort out but even at this early stage it is more fun to play with  8)

http://www.youtube.com/watch?v=2uPoXn0SZDE&feature=youtu.be

DLPB_

  • Banned
  • *
  • Posts: 11006
    • View Profile
Re: Mini-game Fixes
« Reply #48 on: 2012-07-24 23:12:22 »
The wireframe is now on by default and is in green.  A very nice green it is too.

The wireframe has 4 modes
which are set from 0077F731

00: No wireframe, smooth area.
20: No wireframe, Unsmooth area
40: Wireframe, smooth area
60: Wireframe, unsmooth area

Originally only 00 and 40 were used.  I have made 20 and 60 the used versions, with 60 as default.

00 and 40 do not smooth out the area, but personally, I think it looks far better as sharp.
« Last Edit: 2012-07-24 23:14:07 by DLPB »

LeonhartGR

  • *
  • Posts: 2577
  • ~Whatever...~ Enjoy life!
    • View Profile
    • LeonhartGR Productions
Re: Mini-game Fixes
« Reply #49 on: 2012-07-25 00:06:34 »
Well done DLPB... you finally made it!