Commit Graph

83 Commits

Author SHA1 Message Date
ficedula
509a7d095c Added tag v0.1.1 for changeset c16a42616c6e 2023-03-21 22:55:54 +00:00
ficedula
cca900c256 v0.1.1 release
Update setup program to set null plugin path by default
2023-03-21 22:55:40 +00:00
ficedula
d3e0b957fb Allow WAIT and ANIMW to run lower priority scripts - seems like Marlene's script in mds7_pb1 need this...?
Implement SPTYE, GTPYE
Implement MENU subops 0x12, 0x13
Stub out TUTOR for now
2023-03-21 21:52:34 +00:00
ficedula
c2306aaffd Field VM - more accurate script execution (some commands yield to lower priority scripts, only run ~8 ops per frame)
Implement ADPAL, MMBud, PLUS_, MPJPO, ANIMB, XYI, MOVA, TURNW, MHMMX, GOLDu
Implement SPECIAL subop 0xF5
Fix model coordinates being read back from memory as unsigned incorrectly; round them when storing
Fix ladders ignoring player input enabled flag
Fix dialogs with choices on pages other than the first
2023-03-20 22:26:53 +00:00
ficedula
69c39f4b3c Implement a hacky version of eye blinking, implement very basic support for KAWAI eye control op
Fix crash when walking exactly onto triangle edge
Make background model animation cancel any in progress animations on the same model
Record AnimPlaying state against entity, not fiber - e.g. tin_1 relies talk script seeing if another script is animating
Implement channel volume transitions
2023-03-19 19:44:20 +00: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
8f7210b85f Start adding plugin infrastructure 2023-03-13 21:59:39 +00:00
ficedula
a41149c50b Added tag v0.1.0 for changeset 3a99d0355112 2023-03-13 16:26:46 +00:00
ficedula
f391f45670 v0.1.0 release
Fix setup not configuring path for packed Braver data
2023-03-13 16:23:33 +00:00
ficedula
f522093085 Make splash screen load option actually load, and implement load screen (oops!)
Support AVI movies as well as .mp4
2023-03-13 12:15:20 +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
59b67c1f23 Remove Escape closing game without any prompt
Fix character naming screen
Set game icon
Field
        Increase walk speed, looks a bit more correct now...?!
        Tweak walk algorithm again to take disabled walkmesh tris into account properly
Fix worldmap avatar to work again, given all the fixes to HRC/field model rendering
2023-03-05 20:10:58 +00:00
ficedula
fb95f5657d Add support for reading data from pack files, having optional data sources in data.txt 2023-03-04 14:08:38 +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
7991ff6df7 Better DPI handling
Rename Braver folder
2023-03-03 11:07:08 +00:00
ficedula
bd88b2b13f Add license 2023-02-28 19:52:28 +00:00
ficedula
f413946d3e Field
Implement shake effect / opcode
        Fix JUMP outside of walkmesh crashing
Implement more audio net messages
2023-02-27 17:08:27 +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
8d34c2cf15 Embed default data.txt into main executable - allow overriding with local file
Same for config variables - command line parameters take priority, but allow setting defaults in local file
2023-02-26 10:56:18 +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
51bc1bc9b3 First implementation of palette opcodes - STPAL, LDPAL, CPPAL, MPPAL2
Implement field background blanking to explicitly hide things outside of background bounds
Remove background scrolling clamp to viewport option - no longer needed
Auto size/position dialog window when script doesn't specify values
2023-02-24 15:11:29 +00:00
ficedula
047e40c3bc Better configuration of data sources and debug options 2023-02-23 23:01:24 +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
0c41f2aeb3 Field
Rework animations to be restartable rather than resumed via callback
        Add basic pause to core game
        Implement GOLDd, DEC, AND opcodes
2023-02-20 21:41:24 +00:00
ficedula
91b839af5f Field
Tweak background transparency rendering again. Still not really perfect.
        Fix player entity calculation, perhaps
        Fix walkmesh calculation. Again. Partially.
        Implement DIRA, HPMPMAX[123], PRTYM, FADEW, INC opcodes
2023-02-18 11:36:39 +00:00
ficedula
af672ac5da Fix MenuHidden in savemap to be MenuVisible instead
Improve debug autosave to not overwrite initial file and keep 2 copies of previous autosaves
Add music volume ramp
Field
        Fix priority of dialog windows
        Fix movie playback race condition
        Fix moving non-player models ignoring collision flag
        Implement MVCAM op, AKAO music volume ramps, AKAO channel volume
        Reduce required angle for walkmesh sliding
        Fix line entities ignoring height when checking collision
        Don't render walkmesh by default any more
        Fix looping channel audio crashing when stopped
2023-02-15 21:50:11 +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
69c932a99b Battle
Implement some more memory addresses
        Improve how battle text display works
        Rework battle visuals to make them a bit more flexible
        Start implementing idle animation control
2023-02-12 12:10:21 +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
72bcdf57f4 Field
Make walk/move code a bit less crap
        Fix crash when background parameter not initialised - seems FF7 does that in some locations
        Implement WCLSE op
        Fix field models not displaying all textures properly
2023-02-09 11:43:07 +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
5da09de9e1 Field
Model lighting somewhat working
Fix music context push/pop not working
Fix background blending not actually applying properly
Better background Z range estimation, debug controls, and fixups
Limit background scrolling to actual background size
2023-02-06 22:27:11 +00:00
ficedula
57e957f08d Field
Implement STITM opcode
        Fix BITON/BITOFF comparisons
        Implement arrows (standalone+gateways) and player hand indicator
2023-02-05 10:33: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
b647f23d7a Field
Implement quarter-add background blend state
        Implement GETAXY, OFST, KAWAI opcodes ... enough to get nmkin_1 working

Audio music volume working
Music looping mostly working
2023-01-31 17:05:02 +00:00
ficedula
e459acca37 Auto saves for field locations
Save/load from field locations does the right thing
Fix saving game!
Fix loading game sometimes breaking character ID sorting
Field
        Implement SCRCC opcode ... at least somewhat
        Implement PMJMP and MAPJUMP opcodes
        Implement character name MENU op
        Improve 3d scrolling moderately
2023-01-30 13:49:21 +00:00
ficedula
6e62c8e6fe Battle screen very basically working with actions, AI, victory screens 2023-01-29 16:20:14 +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
4cd1c8a655 Implement GameOver screen
Put temporary battle debug screen in
Implement deferred ctex loading
Get battle swirl looking vaguely OK
2023-01-23 22:06:29 +00:00
ficedula
ffd01987fd Improve background rendering, again
Fix movie aspect ratio
Fix new screen rendering one frame before initial setup runs
2023-01-20 11:17:07 +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
11293aa771 Field
VM: Implement CANIM2, MMBLK, FMUSC, MULCK, PMVIE, MOVIE, MVIEF, SCR2DC, BTLON, BTLMD
        VM: Implement AKAO, AKAO2, FADE, NFADE partially
        Overlay working, use to implement auto fade in only when appropriate
        Movie playback mostly working (!)
2023-01-17 23:37:38 +00:00
ficedula
a35d7dab14 Field
Implement ASK opcode and display, choice text char
        Hit enter to force display of full window text
2023-01-16 22:21:16 +00:00
ficedula
980c806677 Field
VM: Implement BMUSC and IDLCK ops
        VM: Fix TURA opcode
        Fix walk code failing when moving through multiple walkmesh tris
2023-01-16 20:17:30 +00:00
ficedula
7ad26e79f5 Network screen changes and transitions working 2023-01-15 21:02:14 +00:00
ficedula
21c4d235a9 Basic field networking! 2023-01-15 13:25:32 +00:00