Talk:GEOSCAPE.EXE

From UFOpaedia
Revision as of 20:59, 10 March 2008 by Seb76 (talk | contribs) (→‎Offsets)
Jump to navigation Jump to search

I just remembered something: Some bitmaps are stored in the executable. I think one such bitmap belongs to the Geoscape side bar. If the offsets for this can be located in the executable, you should be able to sign it off as an irrelevant section if you're hunting for particular variables in the executable.

But that's the hard part. Where do you look? And what image width are we looking at?

I once tried creating a program that took in an offset number, a line width number and how many bytes you want displayed from then on as the parameters. It would then open up one of the executables and draw the bytes on the screen as a bitmap of sorts. Kind of never got off the ground - I got distracted and now a year has passed and all my programming knowledge has gone into a vegetative state. I wonder if a program like this would be useful in locating tables or images in the file?

- NKF


The Geoscape side bar? Isn't that in GEOBORD.SCR?

Regardless, something to mask out known offsets in the file would certainly come in handy.

- Bomb Bloke 22:41, 21 October 2006 (PDT)

Offsets

This page is going to get rather long if we explain in detail all of the offsets here. I don't know if we should merge the Alien stats to the Alien Stats page or make a new page for it?

Also technically the Weapon stats are stored in Tactical so probably should be put on that page.

I've found some other offsets and if I keep digging I'm sure I'll find more. See my talk page for a mock-up of what I'm thinking for the format. Pi Masta 15:21, 12 March 2007 (PDT)

Well, in terms of length, it is (or is going to be) much like other game files: lots and lots of offsets, and their descriptions. It's not a page a casual player is going to reference.--Ethereal Cereal 15:56, 12 March 2007 (PDT)

Added the Detection Range offsets that Seb76 found. By the way fwiw my view is that only technically minded people will be looking at the wiki entry for a game save file so it's ok to fill this page with a lot of offsets. Spike 16:13, 9 March 2008 (PDT)


Well then, if you don't mind about huge posts, I guess it is a good place to put some stuff I discovered with static dissassembly of the executable [before my hard drive burns down ;)], some info may already be known (gold edition, sorry about the crude format...):

Damage modifiers:

.data:0046DE74 damageModifierIncendiary dw 64h,64h,50h, 0,28h,46h,46h,64h, 0,50h,0AAh,64h,64h,64h; 0
.data:0046DE74                                         ; DATA XREF: sub_429CA0+2B�r
.data:0046DE74                                         ; sub_429CA0+132�r ...
.data:0046DE90 damageModifierHE dw 64h,64h,64h,64h,4Bh,64h,64h,64h,82h,64h,64h,50h,3Ch,50h; 0
.data:0046DEAC damageModifierLaser dw 64h,64h,64h,64h,64h,64h,64h,64h,64h,64h,64h,96h,64h,46h; 0
.data:0046DEC8 damageModifierPlasma dw 64h,64h,64h,64h,64h,64h,64h,64h,64h,64h,64h,50h,64h,46h; 0
.data:0046DEE4 damageModifierStun dw 64h,64h,5Ah,50h,64h,64h,50h,64h,64h,5Ah,64h,64h,64h, 0; 0
.data:0046DF00 damageModifierMelee dw 64h,78h,64h,64h,5Ah,64h,64h,64h,64h,64h,64h,64h,64h,64h; 0
.data:0046DF1C damageModifierAcidSpit dw 64h,0A0h,6Eh,64h,28h,64h,64h,64h,64h,64h,64h,64h,64h,64h; 0

HWP weapons data:

.data:0046D57C builtinWeaponStats structBuiltinWeaponStats <0, 4, 3Ch, 3Ch, 21h, 0, 0, 5Ah, 50h, 0>; 0
.data:0046D57C                                         ; DATA XREF: sub_403350+99�r
.data:0046D57C                                         ; sub_40FF70+105�r ...
.data:0046D57C structBuiltinWeaponStats <2, 0Ch, 55h, 37h, 2Dh, 0, 0, 73h, 4Bh, 0>; 1
.data:0046D57C structBuiltinWeaponStats <3, 11h, 6Eh, 32h, 21h, 0, 0, 55h, 4Bh, 0>; 2
.data:0046D57C structBuiltinWeaponStats <4, 24h, 6Eh, 56h, 1Eh, 0, 0, 64h, 3Ch, 0>; 3
.data:0046D57C structBuiltinWeaponStats <2, 28h, 8Ch, 0, 0, 0, 0, 78h, 50h, 1>; 4
.data:0046D57C structBuiltinWeaponStats <7, 26h, 8Ch, 4Bh, 1Eh, 0, 0, 6Eh, 3Ch, 0>; 5
.data:0046D57C structBuiltinWeaponStats <4, 22h, 82h, 4Bh, 1Eh, 0, 0, 6Eh, 3Ch, 0>; 6
.data:0046D57C structBuiltinWeaponStats <3, 22h, 64h, 4Bh, 1Eh, 32h, 23h, 6Eh, 3Ch, 0>; 7

The structure is:

00000000 structBuiltinWeaponStats struc ; (sizeof=0x14)
00000000 damageType dw ?
00000002 ammoType dw ?
00000004 damage dw ?
00000006 snapshotAcc dw ?
00000008 snapshotTU dw ?
0000000A autoshotAcc dw ?
0000000C autoshotTU dw ?
0000000E aimshotAcc dw ?
00000010 aimshotTU dw ?
00000012 blasterEffect dw ?
00000014 structBuiltinWeaponStats ends

Funding countries borders polylines:

.data:00474AD4 GeoBordersData dw 0FFFFh                ; DATA XREF: GeoDrawBorders+3�r
.data:00474AD4                                         ; GeoDrawBorders+C�o
.data:00474AD6 dw 221h
.data:00474AD8 dw 0FF43h
.data:00474ADA dw 238h
.data:00474ADC dw 0FF3Dh
.data:00474ADE dw 22Ch
.data:00474AE0 dw 0FF28h
.data:00474AE2 dw 233h
.data:00474AE4 dw 0FF1Fh
.data:00474AE6 dw 236h
...

Funding countries names coordinates:

.data:00474DF8 GeoCountryNamesData dw 280h             ; DATA XREF: GeoDrawCountryNames+6�o
.data:00474DFA dw 0FF40h
.data:00474DFC dw 263h
.data:00474DFE dw 0B30h
.data:00474E00 dw 0FE53h
.data:00474E02 dw 25Ch
.data:00474E04 dw 0B2Ch
.data:00474E06 dw 0FEABh
.data:00474E08 dw 260h
.data:00474E0A dw 14h
.data:00474E0C dw 0FE8Ch
...

Craft data:

.data:0046F9A8 craftsData structCraftData <23Ah, 65336, 0, 760, 2, 1500, 150, 4, 0, 0, 0, 0Eh, 0,\
.data:0046F9A8                                         ; DATA XREF: sub_432B90+1C�r
.data:0046F9A8                                         ; sub_436970+59�r ...
.data:0046F9A8                  3, 0>                  ; 0
.data:0046F9A8 structCraftData <23Bh, 65236, 1, 3100, 8, 30, 800, 4, 0, 0, 0, 0Ch, 0,\
.data:0046F9A8                  0, 0>                  ; 1
.data:0046F9A8 structCraftData <23Ch, 65136, 2, 5400, 0Ah, 60, 1200, 4, 0, 0, 0, 1Ah,\
.data:0046F9A8                  0, 4, 0>               ; 2
.data:0046F9A8 structCraftData <23Dh, 65286, 2, 2100, 3, 1000, 100, 4, 0, 0, 0, 0, 0,\
.data:0046F9A8                  0, 0>                  ; 3
.data:0046F9A8 structCraftData <23Eh, 65286, 2, 4200, 9, 20, 500, 4, 0, 0, 0, 0, 0, 0,\
.data:0046F9A8                  0>                     ; 4
.data:0046F9A8 structCraftData <2B2h, 100, 2, 2200, 0Ch, 0, 50, 5, 38h, 0C8h, 0, 0, 0,\
.data:0046F9A8                  0, 0>                  ; 5
.data:0046F9A8 structCraftData <2B3h, 150, 2, 2400, 9, 0, 200, 4, 38h, 0FAh, 140078h,\
.data:0046F9A8                  0, 0, 0, 0>            ; 6
.data:0046F9A8 structCraftData <2B4h, 250, 2, 2700, 9, 0, 250, 4, 30h, 12Ch, 140110h,\
.data:0046F9A8                  0, 0, 0, 0>            ; 7
.data:0046F9A8 structCraftData <2B5h, 500, 2, 4000, 8, 0, 500, 3, 30h, 1F4h, 2800B0h,\
.data:0046F9A8                  0, 0, 0, 0>            ; 8
.data:0046F9A8 structCraftData <2B6h, 500, 2, 4300, 8, 0, 500, 3, 20h, 1F4h, 2800A0h,\
.data:0046F9A8                  0, 0, 0, 0>            ; 9
.data:0046F9A8 structCraftData <2B7h, 1000, 2, 4800, 6, 0, 1200, 2, 18h, 7D0h, \
.data:0046F9A8                  780150h, 0, 0, 0, 0>   ; 10
.data:0046F9A8 structCraftData <2B8h, 1400, 2, 5000, 6, 0, 3000, 1, 18h, 0FA0h, \
.data:0046F9A8                  8C0208h, 0, 0, 0, 0>   ; 11
.data:0046F9A8 structCraftData <2B9h, 800, 2, 3200, 6, 0, 2200, 2, 18h, 0BB8h, \
.data:0046F9A8                  3C0120h, 0, 0, 0, 0>   ; 12

known fields:

00000000 structCraftData struc ; (sizeof=0x1C)
00000000 nameIdx dw ?
00000002 scoreDestroyed dw ?                     ; base 10
00000004 weaponPods dw ?
00000006 maxSpeed dw ?                           ; base 10
00000008 acceleration dw ?
0000000A fuelCapacity dw ?                       ; base 10
0000000C damageCapacity dw ?                     ; base 10
0000000E ufoSize dw ?
00000010 anonymous_5 dw ?
00000012 field_12 dw ?
00000014 field_14 dd ?
00000018 cargoSpace db ?
00000019 field_19 db ?
0000001A field_1A db ?
0000001B anonymous_6 db ?
0000001C structCraftData ends

Base components data:

.data:00470640 baseElements baseComponentStruct <249h, 300, 1, 4, 0, 0, 5>; 0
.data:00470640                                         ; DATA XREF: BaseEditDrawSideBar_sub_432EF0+12D�r
.data:00470640                                         ; BuildFacilities+74�o ...
.data:00470640 baseComponentStruct <24Ah, 400, 16, 10, 1Eh, 0, 4>; 1
.data:00470640 baseComponentStruct <24Bh, 750, 26, 30, 0Ah, 0, 4>; 2
.data:00470640 baseComponentStruct <24Ch, 800, 32, 35, 32h, 0, 4>; 3
.data:00470640 baseComponentStruct <24Dh, 500, 12, 10, 0, 0, 5>; 4
.data:00470640 baseComponentStruct <24Eh, 800, 25, 15, 0, 0, 4>; 5
.data:00470640 baseComponentStruct <24Fh, 200, 16, 5, 0, 3201F4h, 5>; 6
.data:00470640 baseComponentStruct <250h, 150, 10, 5, 0FAh, 0, 4>; 7
.data:00470640 baseComponentStruct <251h, 400, 18, 15, 0Ah, 0, 4>; 8
.data:00470640 baseComponentStruct <252h, 400, 24, 10, 0, 3C0258h, 0Ah>; 9
.data:00470640 baseComponentStruct <253h, 600, 34, 12, 0, 460384h, 0Ah>; 10
.data:00470640 baseComponentStruct <254h, 800, 34, 14, 0, 5004B0h, 0Ah>; 11
.data:00470640 baseComponentStruct <255h, 1200, 38, 15, 0, 0, 9>; 12
.data:00470640 baseComponentStruct <256h, 1300, 33, 5, 0, 0, 9>; 13
.data:00470640 baseComponentStruct <257h, 750, 24, 16, 0Ah, 0, 8>; 14
.data:00470640 baseComponentStruct <258h, 1400, 26, 30, 0, 0, 9>; 15
.data:00470640 baseComponentStruct <259h, 200, 25, 25, 1, 0, 4>; 16

fields:

00000000 baseComponentStruct struc ; (sizeof=0x10)
00000000 stringId dw ?
00000002 cost dw ?                               ; base 10
00000004 constructionTime db ?                   ; base 10
00000005 maintenance db ?                        ; base 10
00000006 anonymous_4 dw ?
00000008 anonymous_5 dd ?
0000000C anonymous_8 dd ?
00000010 baseComponentStruct ends

Alien missions data (I made another post for this one in missions.dat):

.data:00470E70 alienMissionData structAlienMission <5, 1, 0, 12Ch>      ; 0
.data:00470E70                                         ; DATA XREF: SpawnAlienShip+10D�r
.data:00470E70                                         ; UpdateAlienMissions+78�r ...
.data:00470E70 structAlienMission <6, 1, 2, 104h>      ; 1 ;
.data:00470E70 structAlienMission <7, 2, 4, 12Ch>      ; 2 ;
.data:00470E70 structAlienMission 5 dup(<0FFFFh, 0FFFFh, 0FFFFh, 0FFFFh>); 3
...

fields:

00000000 structAlienMission struc ; (sizeof=0x8)
00000000 ufoType dw ?
00000002 numUfoToSpawn dw ?
00000004 unknown dw ?
00000006 timeCounter dw ?
00000008 structAlienMission ends

Ground patches (used to spawn locations on continents):

.data:00471278 randPlaces structArea <640h, 0FDF8h, 0A0h, 28h>    ; 0
.data:00471278                                         ; DATA XREF: GetRandomPositionOnContinent+2D�r
.data:00471278                                         ; GetRandomPositionOnContinent+46�r ...
.data:00471278 structArea <730h, 0FDF8h, 0F0h, 50h>    ; 1
.data:00471278 structArea <8C0h, 0FE70h, 50h, 50h>     ; 2
.data:00471278 structArea <730h, 0FE70h, 0A0h, 50h>    ; 3
.data:00471278 structArea <820h, 0FE70h, 0A0h, 50h>    ; 4
.data:00471278 structArea <730h, 0FEC0h, 0A0h, 50h>    ; 5
.data:00471278 structArea <7D0h, 0FEC0h, 0B0h, 60h>    ; 6
.data:00471278 structArea <870h, 0FEB0h, 0A0h, 88h>    ; 7
00000000 structArea struc ; (sizeof=0x8)
00000000 xstart dw ?
00000002 ystart dw ?
00000004 width dw ?
00000006 height dw ?
00000008 structArea ends

Zones sectors (used to get the zone number for a world coordinate):

.data:00474F38 geo_globe_zones structGlobeZone <618h, 987h, 0FDD0h, 0FE47h, 0>; 0
.data:00474F38                                         ; DATA XREF: GetWorldZoneFromPos+10�o
.data:00474F38 structGlobeZone <730h, 987h, 0FE48h, 0FF0Fh, 0>; 1
.data:00474F38 structGlobeZone <780h, 95Fh, 0FF10h, 0FFAFh, 0>; 2
.data:00474F38 structGlobeZone <0, 0B3Fh, 0FD30h, 0FDCFh, 1>; 3
.data:00474F38 structGlobeZone <0, 0B3Fh, 1E0h, 2D0h, 2>; 4
.data:00474F38 structGlobeZone <870h, 9D7h, 0FFB0h, 0FFFFh, 3>; 5
.data:00474F38 structGlobeZone <898h, 0A4Fh, 0, 77h, 3>; 6
.data:00474F38 structGlobeZone <898h, 0A27h, 78h, 1DFh, 3>; 7
.data:00474F38 structGlobeZone <0A78h, 1DFh, 0FDD0h, 0FEE7h, 4>; 8
.data:00474F38 structGlobeZone <0A78h, 13Fh, 0FEE8h, 0FF87h, 5>; 9
.data:00474F38 structGlobeZone <0A78h, 1B7h, 0FF88h, 0FFFFh, 5>; 10
.data:00474F38 structGlobeZone <28h, 1B7h, 0, 13Fh, 6> ; 11
.data:00474F38 structGlobeZone <140h, 22Fh, 0FEE8h, 0FF87h, 7>; 12
.data:00474F38 structGlobeZone <1E0h, 2CFh, 0FE70h, 0FEE7h, 7>; 13
.data:00474F38 structGlobeZone <230h, 2CFh, 0FEE8h, 0FFD7h, 7>; 14
.data:00474F38 structGlobeZone <2D0h, 347h, 0FE70h, 4Fh, 8>; 15
.data:00474F38 structGlobeZone <348h, 4AFh, 0FE70h, 0FFD7h, 8>; 16
.data:00474F38 structGlobeZone <1E0h, 59Fh, 0FDD0h, 0FE6Fh, 9>; 17
.data:00474F38 structGlobeZone <348h, 59Fh, 0FFD8h, 18Fh, 0Ah>; 18
.data:00474F38 structGlobeZone <5A0h, 617h, 0FDD0h, 0FE47h, 0Bh>; 19
.data:00474F38 structGlobeZone <5A0h, 72Fh, 0FE48h, 0FF0Fh, 0Bh>; 20
.data:00474F38 structGlobeZone <5A0h, 77Fh, 0FF10h, 0FFAFh, 0Bh>; 21
.data:00474F38 structGlobeZone <5A0h, 86Fh, 0FFB0h, 0FFFFh, 0Bh>; 22
.data:00474F38 structGlobeZone <5A0h, 897h, 0, 1DFh, 0Bh>; 23
.data:00474F38 structGlobeZone <4B0h, 59Fh, 0FE70h, 0FFD7h, 0Bh>; 24
.data:00474F38 structGlobeZone <988h, 0A77h, 0FDD0h, 0FF0Fh, 0Ch>; 25
.data:00474F38 structGlobeZone <960h, 0A77h, 0FF10h, 0FFAFh, 0Ch>; 26
.data:00474F38 structGlobeZone <9D8h, 0A77h, 0FFB0h, 0FFFFh, 0Ch>; 27
.data:00474F38 structGlobeZone <0A50h, 27h, 0, 77h, 0Dh>; 28
.data:00474F38 structGlobeZone <0A28h, 27h, 78h, 1DFh, 0Dh>; 29
.data:00474F38 structGlobeZone <28h, 1B8h, 140h, 1DFh, 0Dh>; 30
.data:00474F38 structGlobeZone <1B8h, 22Fh, 0FF88h, 4Fh, 0Eh>; 31
.data:00474F38 structGlobeZone <230h, 2CFh, 0FFD8h, 4Fh, 0Eh>; 32
.data:00474F38 structGlobeZone <1B8h, 347h, 50h, 1DFh, 0Eh>; 33

Same for country zones:

.data:00475090 geo_glob_country_zones structGlobeZone <758h, 7F8h, 0FE78h, 0FF00h, 0>; 0
.data:00475090                                         ; DATA XREF: GetCountryFromPos+11�o
.data:00475090 structGlobeZone <7F8h, 8ACh, 0FE78h, 0FF18h, 0>; 1
.data:00475090 structGlobeZone <820h, 848h, 0FF18h, 0FF30h, 0>; 2
.data:00475090 structGlobeZone <8A8h, 8C0h, 0FF00h, 0FF38h, 0>; 3
.data:00475090 structGlobeZone <8ACh, 8F0h, 0FEA0h, 0FF00h, 0>; 4
.data:00475090 structGlobeZone <8F0h, 924h, 0FE94h, 0FEC0h, 0>; 5
.data:00475090 structGlobeZone <0F0h, 190h, 0FDD0h, 0FE98h, 1>; 6
.data:00475090 structGlobeZone <0C0h, 0F0h, 0FE20h, 0FEB0h, 1>; 7
.data:00475090 structGlobeZone <190h, 258h, 0FD98h, 0FEC0h, 1>; 8
.data:00475090 structGlobeZone <258h, 528h, 0FD80h, 0FE70h, 1>; 9
.data:00475090 structGlobeZone <528h, 550h, 0FDD0h, 0FE28h, 1>; 10
.data:00475090 structGlobeZone <0B00h, 10h, 0FE20h, 0FE70h, 2>; 11
.data:00475090 structGlobeZone <0B18h, 38h, 0FE70h, 0FEA8h, 3>; 12
.data:00475090 structGlobeZone <30h, 78h, 0FE48h, 0FE84h, 4>; 13
.data:00475090 structGlobeZone <38h, 78h, 0FE8Ch, 0FEA8h, 5>; 14
.data:00475090 structGlobeZone <58h, 90h, 0FEA8h, 0FED8h, 5>; 15
...

Dot color data for LOC.DAT entries shawn on world map (can't think of a better name...):

.data:00475202 locationColor dw 0, 0Dh, 0Bh, 9, 1, 5, 7, 3           ; 0
.data:00475202                                         ; DATA XREF: geoDrawLocations+ED�r

Just after that are data describing the mask for drawing the location (I don't remember the format, but it shouldn't be something too complicated to decypher)

Flare pattern (tactical mode):

.data:0046C558 flarePattern db 10h, 10h, 10h, 10h, 10h, 10h, 10h, 10h, 10h, 10h, 10h, 10h, 0Fh, 0Fh, 0Fh, 0Fh, 0Fh, 0Fh, 0Fh, 10h, 10h, 10h, 10h, 10h, 10h, 10h, 10h, 10h, 10h, 10h, 10h; 0
.data:0046C558                                         ; DATA XREF: LightmapAddFlarePattern+7�o
.data:0046C558                                         ; LightmapAddFlarePattern+19�o
.data:0046C558 db 10h, 10h, 10h, 10h, 10h, 10h, 10h, 10h, 10h, 0Fh, 0Fh, 0Fh, 0Eh, 0Eh, 0Eh, 0Eh, 0Eh, 0Eh, 0Eh, 0Fh, 0Fh, 0Fh, 10h, 10h, 10h, 10h, 10h, 10h, 10h, 10h, 10h; 31
.data:0046C558 db 10h, 10h, 10h, 10h, 10h, 10h, 10h, 0Fh, 0Fh, 0Eh, 0Eh, 0Eh, 0Dh, 0Dh, 0Dh, 0Dh, 0Dh, 0Dh, 0Dh, 0Eh, 0Eh, 0Eh, 0Fh, 0Fh, 10h, 10h, 10h, 10h, 10h, 10h, 10h; 62
.data:0046C558 db 10h, 10h, 10h, 10h, 10h, 10h, 0Fh, 0Fh, 0Eh, 0Eh, 0Dh, 0Dh, 0Ch, 0Ch, 0Ch, 0Ch, 0Ch, 0Ch, 0Ch, 0Dh, 0Dh, 0Eh, 0Eh, 0Fh, 0Fh, 10h, 10h, 10h, 10h, 10h, 10h; 93
.data:0046C558 db 10h, 10h, 10h, 10h, 10h, 0Fh, 0Fh, 0Eh, 0Dh, 0Dh, 0Ch, 0Ch, 0Ch, 0Bh, 0Bh, 0Bh, 0Bh, 0Bh, 0Ch, 0Ch, 0Ch, 0Dh, 0Dh, 0Eh, 0Fh, 0Fh, 10h, 10h, 10h, 10h, 10h; 124
.data:0046C558 db 10h, 10h, 10h, 10h, 0Fh, 0Fh, 0Eh, 0Dh, 0Ch, 0Ch, 0Bh, 0Bh, 0Bh, 0Ah, 0Ah, 0Ah, 0Ah, 0Ah, 0Bh, 0Bh, 0Bh, 0Ch, 0Ch, 0Dh, 0Eh, 0Fh, 0Fh, 10h, 10h, 10h, 10h; 155
.data:0046C558 db 10h, 10h, 10h, 0Fh, 0Fh, 0Eh, 0Dh, 0Ch, 0Ch, 0Bh, 0Ah, 0Ah, 0Ah, 9, 9, 9, 9, 9, 0Ah, 0Ah, 0Ah, 0Bh, 0Ch, 0Ch, 0Dh, 0Eh, 0Fh, 0Fh, 10h, 10h, 10h; 186
.data:0046C558 db 10h, 10h, 0Fh, 0Fh, 0Eh, 0Dh, 0Ch, 0Ch, 0Bh, 0Ah, 0Ah, 9, 9, 8, 8, 8, 8, 8, 9, 9, 0Ah, 0Ah, 0Bh, 0Ch, 0Ch, 0Dh, 0Eh, 0Fh, 0Fh, 10h, 10h; 217
.data:0046C558 db 10h, 10h, 0Fh, 0Eh, 0Dh, 0Ch, 0Ch, 0Bh, 0Ah, 9, 9, 8, 8, 7, 7, 7, 7, 7, 8, 8, 9, 9, 0Ah, 0Bh, 0Ch, 0Ch, 0Dh, 0Eh, 0Fh, 10h, 10h; 248
.data:0046C558 db 10h, 0Fh, 0Eh, 0Eh, 0Dh, 0Ch, 0Bh, 0Ah, 9, 9, 8, 7, 7, 6, 6, 6, 6, 6, 7, 7, 8, 9, 9, 0Ah, 0Bh, 0Ch, 0Dh, 0Eh, 0Eh, 0Fh, 10h; 279
.data:0046C558 db 10h, 0Fh, 0Eh, 0Dh, 0Ch, 0Bh, 0Ah, 0Ah, 9, 8, 7, 6, 6, 6, 5, 5, 5, 6, 6, 6, 7, 8, 9, 0Ah, 0Ah, 0Bh, 0Ch, 0Dh, 0Eh, 0Fh, 10h; 310
.data:0046C558 db 10h, 0Fh, 0Eh, 0Dh, 0Ch, 0Bh, 0Ah, 9, 8, 7, 6, 6, 5, 5, 4, 4, 4, 5, 5, 6, 6, 7, 8, 9, 0Ah, 0Bh, 0Ch, 0Dh, 0Eh, 0Fh, 10h; 341
.data:0046C558 db 0Fh, 0Eh, 0Dh, 0Ch, 0Ch, 0Bh, 0Ah, 9, 8, 7, 6, 5, 4, 4, 3, 3, 3, 4, 4, 5, 6, 7, 8, 9, 0Ah, 0Bh, 0Ch, 0Ch, 0Dh, 0Eh, 0Fh; 372
.data:0046C558 db 0Fh, 0Eh, 0Dh, 0Ch, 0Bh, 0Ah, 9, 8, 7, 6, 6, 5, 4, 3, 2, 2, 2, 3, 4, 5, 6, 6, 7, 8, 9, 0Ah, 0Bh, 0Ch, 0Dh, 0Eh, 0Fh; 403
.data:0046C558 db 0Fh, 0Eh, 0Dh, 0Ch, 0Bh, 0Ah, 9, 8, 7, 6, 5, 4, 3, 2, 1, 1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0Ah, 0Bh, 0Ch, 0Dh, 0Eh, 0Fh; 434
.data:0046C558 db 0Fh, 0Eh, 0Dh, 0Ch, 0Bh, 0Ah, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0Ah, 0Bh, 0Ch, 0Dh, 0Eh, 0Fh; 465
.data:0046C558 db 0Fh, 0Eh, 0Dh, 0Ch, 0Bh, 0Ah, 9, 8, 7, 6, 5, 4, 3, 2, 1, 1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0Ah, 0Bh, 0Ch, 0Dh, 0Eh, 0Fh; 496
.data:0046C558 db 0Fh, 0Eh, 0Dh, 0Ch, 0Bh, 0Ah, 9, 8, 7, 6, 6, 5, 4, 3, 2, 2, 2, 3, 4, 5, 6, 6, 7, 8, 9, 0Ah, 0Bh, 0Ch, 0Dh, 0Eh, 0Fh; 527
.data:0046C558 db 0Fh, 0Eh, 0Dh, 0Ch, 0Ch, 0Bh, 0Ah, 9, 8, 7, 6, 5, 4, 4, 3, 3, 3, 4, 4, 5, 6, 7, 8, 9, 0Ah, 0Bh, 0Ch, 0Ch, 0Dh, 0Eh, 0Fh; 558
.data:0046C558 db 10h, 0Fh, 0Eh, 0Dh, 0Ch, 0Bh, 0Ah, 9, 8, 7, 6, 6, 5, 5, 4, 4, 4, 5, 5, 6, 6, 7, 8, 9, 0Ah, 0Bh, 0Ch, 0Dh, 0Eh, 0Fh, 10h; 589
.data:0046C558 db 10h, 0Fh, 0Eh, 0Dh, 0Ch, 0Bh, 0Ah, 0Ah, 9, 8, 7, 6, 6, 6, 5, 5, 5, 6, 6, 6, 7, 8, 9, 0Ah, 0Ah, 0Bh, 0Ch, 0Dh, 0Eh, 0Fh, 10h; 620
.data:0046C558 db 10h, 0Fh, 0Eh, 0Eh, 0Dh, 0Ch, 0Bh, 0Ah, 9, 9, 8, 7, 7, 6, 6, 6, 6, 6, 7, 7, 8, 9, 9, 0Ah, 0Bh, 0Ch, 0Dh, 0Eh, 0Eh, 0Fh, 10h; 651
.data:0046C558 db 10h, 10h, 0Fh, 0Eh, 0Dh, 0Ch, 0Ch, 0Bh, 0Ah, 9, 9, 8, 8, 7, 7, 7, 7, 7, 8, 8, 9, 9, 0Ah, 0Bh, 0Ch, 0Ch, 0Dh, 0Eh, 0Fh, 10h, 10h; 682
.data:0046C558 db 10h, 10h, 0Fh, 0Fh, 0Eh, 0Dh, 0Ch, 0Ch, 0Bh, 0Ah, 0Ah, 9, 9, 8, 8, 8, 8, 8, 9, 9, 0Ah, 0Ah, 0Bh, 0Ch, 0Ch, 0Dh, 0Eh, 0Fh, 0Fh, 10h, 10h; 713
.data:0046C558 db 10h, 10h, 10h, 0Fh, 0Fh, 0Eh, 0Dh, 0Ch, 0Ch, 0Bh, 0Ah, 0Ah, 0Ah, 9, 9, 9, 9, 9, 0Ah, 0Ah, 0Ah, 0Bh, 0Ch, 0Ch, 0Dh, 0Eh, 0Fh, 0Fh, 10h, 10h, 10h; 744
.data:0046C558 db 10h, 10h, 10h, 10h, 0Fh, 0Fh, 0Eh, 0Dh, 0Ch, 0Ch, 0Bh, 0Bh, 0Bh, 0Ah, 0Ah, 0Ah, 0Ah, 0Ah, 0Bh, 0Bh, 0Bh, 0Ch, 0Ch, 0Dh, 0Eh, 0Fh, 0Fh, 10h, 10h, 10h, 10h; 775
.data:0046C558 db 10h, 10h, 10h, 10h, 10h, 0Fh, 0Fh, 0Eh, 0Dh, 0Dh, 0Ch, 0Ch, 0Ch, 0Bh, 0Bh, 0Bh, 0Bh, 0Bh, 0Ch, 0Ch, 0Ch, 0Dh, 0Dh, 0Eh, 0Fh, 0Fh, 10h, 10h, 10h, 10h, 10h; 806
.data:0046C558 db 10h, 10h, 10h, 10h, 10h, 10h, 0Fh, 0Fh, 0Eh, 0Eh, 0Dh, 0Dh, 0Ch, 0Ch, 0Ch, 0Ch, 0Ch, 0Ch, 0Ch, 0Dh, 0Dh, 0Eh, 0Eh, 0Fh, 0Fh, 10h, 10h, 10h, 10h, 10h, 10h; 837
.data:0046C558 db 10h, 10h, 10h, 10h, 10h, 10h, 10h, 0Fh, 0Fh, 0Eh, 0Eh, 0Eh, 0Dh, 0Dh, 0Dh, 0Dh, 0Dh, 0Dh, 0Dh, 0Eh, 0Eh, 0Eh, 0Fh, 0Fh, 10h, 10h, 10h, 10h, 10h, 10h, 10h; 868
.data:0046C558 db 10h, 10h, 10h, 10h, 10h, 10h, 10h, 10h, 10h, 0Fh, 0Fh, 0Fh, 0Eh, 0Eh, 0Eh, 0Eh, 0Eh, 0Eh, 0Eh, 0Fh, 0Fh, 0Fh, 10h, 10h, 10h, 10h, 10h, 10h, 10h, 10h, 10h; 899
.data:0046C558 db 10h, 10h, 10h, 10h, 10h, 10h, 10h, 10h, 10h, 10h, 10h, 10h, 0Fh, 0Fh, 0Fh, 0Fh, 0Fh, 0Fh, 0Fh, 10h, 10h, 10h, 10h, 10h, 10h, 10h, 10h, 10h, 10h, 10h, 10h; 930

Sorry for the big post and the raw format... Seb76 13:59, 10 March 2008 (PDT)