Commit Graph

62 Commits

Author SHA1 Message Date
ficedula
1c81427002 Add decoders for worldmap encounter data
Update WM screen to trigger encounters (only for debug purposes, for now)
2023-12-03 14:53:23 +00:00
ficedula
5e86029e0c Add World Map message decoder
Move world map classes into a namespace, now we have multiple classes
Tweak WM decoder - location index isn't actually 7 bits, the top bit is a chocobo encounter flag
2023-12-01 18:30:59 +00:00
ficedula
6692cefc6d Implement Fire1 animation and camera effect
Implement RotateAroundFocus camera opcode
2023-12-01 11:06:35 +00:00
ficedula
112bb28a1b Add 32-bit support to Tex file decoder and exporter
Deal with P files that claim to be textured even though no texture is present
2023-10-24 19:59:52 +01:00
ficedula
40da50c49f Implement smooth/linear camera transitions and associated camera opcodes 2023-10-11 23:02:01 +01:00
ficedula
11f70afe4c Implement exe data source, exe embedded camera data
Camera interpreter for battle screen implementing most common opcodes working
2023-10-10 23:32:01 +01:00
ficedula
b5a2055da9 Add initial camdat decoders 2023-10-06 15:41:53 +01:00
ficedula
15aa4ae839 Make configuration code part of core library, use for parsing CrossSlash parameters
Add some abstract CrossSlash code for easier support of export types
Add LGP, Tex, Audio export types to CrossSlash
2023-09-29 12:16:21 +01:00
ficedula
10924792ea Move various bits of shared code into core library 2023-09-25 20:56:11 +01:00
ficedula
9409b38f8e Initial sprite decode/rendering code running 2023-09-25 20:44:09 +01:00
ficedula
79bdab6358 Correct Y axis flip on exported battle models, should just be rotating them
Read in, and export, HRC model bone names
2023-09-19 20:41:25 +01:00
ficedula
7ad0855f8b CrossSlash;
-add battle model export, move some GLTF export code into ancestor class
-add option to swap triangle winding
2023-09-18 23:15:35 +01:00
ficedula
9656695db3 Get field tile Z ordering/clipping working much closer to what FF7 does - fixes a lot of locations 2023-09-10 21:25:07 +01:00
Julian Xhokaxhiu
c145ec6c6a Uniform the entire project to net7.0-windows
And use dynamic variables for Exec commands
2023-08-27 17:49:55 +02:00
Julian Xhokaxhiu
a1eebfb511 Migrate project to .NET 7.0 2023-08-27 17:04:30 +02:00
ficedula
2114a63c37 Get basic networked battle display running 2023-08-22 22:25:01 +01:00
ficedula
449c1b837e Expand dialog plugins to provide more info on each individual line
Support voiced dialog in FFNx compat plugin
Support TryLoad on audio streams
Fix MENU opcode returning too quickly
Implement SPECIAL 0xFD sub-op
Make unrecognised text characters a warning in renderer rather than an error
Add a few more characters to font
Recognise avatar tag characters in text decoder (don't do anything with them yet)
More 7H support - map folders properly
2023-07-28 13:12:44 +01:00
ficedula
7d6611e04a Alter music to read via normal data sources so plugins/mods can override it
Config utility copes with name/description attributes, nested/category options
.IRO support for 7H plugin
Slightly more concise Tolk output
2023-07-23 15:51:40 +01:00
ficedula
adb65618d7 Add pitch support for audio items
Add focus item to fields
Improve UISysten plugin to allow better tracking of initial load vs. change of selection
Make debug options more accessible, layout labels more accessible
Update Tolk plugin to support focus tracking
2023-07-02 21:11:22 +01:00
ficedula
716345aa64 Start implementing pause op in dialogs
Set default collide distance on models
Actually use talk vs. collide distance properly in fields
Improve line collision checks, hopefully
VM priority improvements
2023-05-08 13:01:27 +01:00
ficedula
748a48e949 Start adding battle animation debug screen to play around with animations/effects
Start implementing battle animation script decoder
First parts of battle animation executor/renderer
Implement charge effect
Fix bugs reading LGP files with paths in them (i.e. magic.lgp)
Fix indices of battle animations being incorrect
2023-03-27 21:20:41 +01:00
ficedula
cfe09c880f Add some more missing net messages
Add basic battle animation script decoder
Prepare to add proper battle debug options
2023-03-27 11:30:47 +01:00
ficedula
782f96a75f Start reading in hundreds (renderstate) data against P files
Field
        Fix SPLIT including characters that aren't actually in the party
        Clamp BG scroll events that specifically track entities/player to the viewport
        (explicit scrolls clearly want to go beyond the viewport - but these ones shouldn't)
        Field models render using transparency / lighting based on render state - corrects save point appearance
2023-03-17 10:20:17 +00:00
ficedula
af21073419 Add basic background plugin
Add support for plugin configuration, priority, enable/disable
2023-03-15 20:14:14 +00:00
ficedula
bcc8ec53fb Remove inventory item separation - run off single ID as per FF7 data
Implement independent and support materia
Remove Braver newgame.xml, read new game data from FF7 kernel
Allow not setting player destination on field load, use when starting a new game
Init MenuLocked properly - apparently the game script doesn't?
Upgrade Monogame, NVorbis; correct usings for new Monogame
2023-03-07 20:49:10 +00:00
ficedula
14c1158323 Don't use Debug Assert, too easy to have a change of behaviour in release builds
Field
        Rewrite walk code again. Closer to something reasonable now!
        Implement PLUS, MINUS opcodes
        Allow some opcodes to force fiber to continue next frame. LDPAL at least seems like that's how it must be intended to work.
        Fix MPPAL
2023-03-04 12:41:59 +00:00
ficedula
bd88b2b13f Add license 2023-02-28 19:52:28 +00:00
ficedula
ef2ed5ffc9 Setup utility
Start adding packed files, use for savegames
Use trace output and add trace logger
Basic gamepad input
2023-02-26 17:32:10 +00:00
ficedula
9476d3fe52 Add basic field VM disassembler
Add field debugger screen showing state of all entity fibers
Fix closing window via script not triggering callbacks
Fix field crash when initial player position is off walkmesh (e.g. cargoin)
2023-02-26 10:56:18 +00:00
ficedula
654faceef4 First implementation of shop basics
Revert layout focus to use IDs so it works after a reload
2023-02-22 21:16:06 +00:00
ficedula
b387346c2e Fix game time and counter to use memory bank values rather than separate save data values
Implement clock font
Fix font palettes, removes need to use texture filter

Field
        Implement STTIM and WSPCL, timers now work
        Handle looping sfx on specific channels
        Implement AKAO Shine and AKAO Ambient Light effects

Battle
        Fix enemy weapon drops
2023-02-13 21:20:01 +00:00
ficedula
94e9bd27ce Field
Implement JUMP op
        Fix LADER to pause execution, keep player in view
        Fix REQEW to detect script already running properly
        Implement CANM_1, AXYZI, SMTRA, WMODE, SCRLA, MOD
        Partially maybe implement VWOFT
        Implement fade types 1/2
        Improve BringPlayerIntoView to take account of model height
        Improve Line events, probably
        Improve background auto-Z a bit more, maybe
Test/fix stereo ADPCM decoder
2023-02-11 16:42:04 +00:00
ficedula
d0764327db Field
Fix background state switching
        Improve background autoZ a bit more
        Call more line scripts, possibly correctly
        Implement ladders / LADER op
        Implement audio sfx playback on specific channels
2023-02-10 13:39:05 +00:00
ficedula
eea0e11c22 Field
Improve scrolling to only clamp scroll when player-initiated
        Implement SPLIT, JOIN, ANIME2 ops
        Fix TURA op rotation direction to be more resiliant
        Improve ANIMW to hopefully work better
Add support for looping sfx, allow field SOUND op to stop them
2023-02-09 19:11:02 +00:00
ficedula
9bd430073f Fix HRC models with no bone/single node not loading properly
Fix field model lighting
Improve field scrolling, implement control rotation
2023-02-08 20:52:34 +00:00
ficedula
c31b06cf39 Support moviecams, woo 2023-02-03 20:18:38 +00:00
ficedula
5309cc2681 Basic field random encounters implemented
Fix field sound effects
Actually make field scrolling work properly in a simple manner. I am an idiot.
Fix the increasingly horrible axis inversions in field models. Animation translations now work properly. I am an idiot.
More graphics state save/restore options.
2023-02-01 21:59:01 +00:00
ficedula
8ace3cfec2 Remove duplicate target flags declaration
Add batm font
Very basic action results and application working in battle
2023-01-28 12:44:36 +00:00
ficedula
fff04dc1db Walkmesh sliding more or less working. Still hacky. Can theoretically complete opening screen now. 2023-01-20 00:01:52 +00:00
ficedula
01686d930d Field:
Implement maxOps on script run - some scripts loop forever with no pause and need limiting!
        Basic implementation of triggers
        Implement FMOVE and GETAI ops
2023-01-15 10:34:42 +00:00
ficedula
6742b7ab36 Field:
2D/3D depth sorting kind of working!
        Hide unused party models properly on load
        Speed up fade transitions
2023-01-14 19:26:04 +00:00
ficedula
8d7cb60178 Field:
-Implement gateways
        -Get background scrolling working again
        -Fix music playback after first track(!)
        -Start declaring shop classes
2023-01-13 12:27:55 +00:00
ficedula
9e82ec8d6f Field VM:
-Mostly implement IFKEY, IFKEYON, IFKEYOFF
        -Stub out SLIP
        -Implement TURA, PTURA
        -Implement WINDOW
        -Implement RANDOM
        -Start implementing MENU

Fix script priorities not working as expected - higher priority scripts that are temporarily
paused for opcode execution will now prevent lower priority scripts from running as expected.

Auto-select player model when script doesn't set it - must be how it works given there are fields
that don't set it!

Field camera probably better implemented now (but background scrolling broken for now...)
2023-01-10 18:38:12 +00:00
ficedula
db1b18d70c Start on materia menu
Implement more icons
2022-12-11 21:37:12 +00:00
ficedula
552641c078 Fix up some more battle AI opcodes
Get basic battle AI memory chunk 4 working
Battle action queue basically working
2022-12-10 10:57:27 +00:00
ficedula
d64cbcc279 Basic magic working in battle engine 2022-11-28 17:01:59 +00:00
ficedula
db9a5c25ad Load item data
Rework cacheable singletons
Very basic character combatant in sim
2022-11-28 14:29:21 +00:00
ficedula
f5a9395923 Fix UI lists
Improve UI model binding
Add input repeating
Basic equip menu working
2022-11-26 15:15:59 +00:00
ficedula
99b59bf123 Add equipment 2022-11-23 22:24:56 +00:00
ficedula
233ff78517 Start implementing battle sim
Materia parsing
Start implementing battle UI
2022-11-22 19:37:44 +00:00