Final Fantasy V Research & Development / Re: Enemy Group size/spell animation issues
« Last post by Praetarius5018 on April 18, 2018, 12:45:49 PM »I thought "1234" would be a dead give away for an example number...
Final Fantasy V Research & Development / Re: Enemy Group size/spell animation issues
« Last post by Shinryuu on April 18, 2018, 11:51:49 AM »Basically, it pauses code execution where you currently are, jumps to a different spot, executes there until it hits a "return" (RTL in this case) and then unpauses.
It happens roughly like so.Code: [Select]$C1/6BDE 22 34 12 D8 JSL $D8/1234
$D8/1234 <do some stuff here>
...
$D8/12FF 6B RTL //returns to where you stopped
$C1/6BE2 <continue here like normal>
There is also a "small" counterpart JSR that functions the same but can't leave the current bank.
The target area of JSL doesn't have to be in the ROM, you can also move to the RAM and execute that (for your own sanity, don't), which is basically like a regular language's eval.
Now here's the thing that separates JSL from a regular function call: you do not have to move to the start of a function, you can go wherever you want.
Start of a "function", middle of it or heck execute a data table if you want, asm doesn't stop you, only the crashes will.
Thanks, I'll try it right away. One more question, though; is the space at D8/1234 really unused (it doesn't seem like that)? Can I just replace the code there with the one you posted without screwing up anything else?
Game Modification Station / Re: New Tool: Visual SAK
« Last post by Squall on April 18, 2018, 11:36:45 AM »- New feature: Import of a palette from zSnes savestate.
- Added new BPP: 8BPP (SNES Mode 7). No planes. In mode 7 a tile takes 128 bites - because in the memory tiles are interwoven with the tile map
- Added new BPP: 8bpp (SNES Mode 7 - II) same as above except it contain only the tiles (64 bytes each)
- Added new BPP: 8bpp (SNES Mode 3) - each tile is 64 bytes, but each pixels is divided in 8 planes according to the SNES model of planes
- Added new Compression: LZSS-CT, a modification of LZSS used in Chrono Trigger SNES
*Download from the first post.
Final Fantasy V Research & Development / Re: Inu's Patches
« Last post by Xardas on April 18, 2018, 05:50:05 AM »Pay attention if you read the word "number" (you are gonna read it alot).
It sometimes means something like "amount", but may also mean something like "integer".
As long as you read carefully, especially pay attention if the noun near "number" is singular or plural, you will be fine though.
The txt is in the first post.
Final Fantasy V Research & Development / Re: Enemy Group size/spell animation issues
« Last post by Lenophis on April 18, 2018, 01:06:38 AM »P.S. I wonder what cause the crashes ... is it software bug, is it some 'hidden' limitation of the GPU. Will the game crash if we use contemporary powerful PC? What about a different emulator?Without even looking at it, I'm fairly confident that the OAM data overflowed into whatever else (maybe the stack), which caused the crash. This is probably why FF6's engine only used 6 slots for monsters, and probably why it had two separate routines for displaying damage with different numbers of targets hit at once. Although, I haven't really looked at FF5 enough to know if it has something similar or not.
The only way to make it not crash, is to hack the engine to put in a safety mechanism that will detect the number of targets and them being hit at once.
*reads other posts*
Oh... Looks like what I said wasn't it at all then. Nevermind!
Final Fantasy IV Research & Development / Re: Filly Fantasy IV
« Last post by thepatirckinator on April 17, 2018, 05:25:32 PM »Final Fantasy IV Research & Development / Re: Filly Fantasy IV
« Last post by thepatirckinator on April 17, 2018, 05:05:55 PM »Final Fantasy V Research & Development / Re: Enemy Group size/spell animation issues
« Last post by Praetarius5018 on April 17, 2018, 02:57:27 PM »Extremely simplified, JSL would be the asm equivalent of a function call.
Not so simplified, it can also be used like eval.
And even more simplified, it is even worse.
Basically, it pauses code execution where you currently are, jumps to a different spot, executes there until it hits a "return" (RTL in this case) and then unpauses.
It happens roughly like so.
$C1/6BDE 22 34 12 D8 JSL $D8/1234
$D8/1234 <do some stuff here>
...
$D8/12FF 6B RTL //returns to where you stopped
$C1/6BE2 <continue here like normal>There is also a "small" counterpart JSR that functions the same but can't leave the current bank.
The target area of JSL doesn't have to be in the ROM, you can also move to the RAM and execute that (for your own sanity, don't), which is basically like a regular language's eval.
Now here's the thing that separates JSL from a regular function call: you do not have to move to the start of a function, you can go wherever you want.
Start of a "function", middle of it or heck execute a data table if you want, asm doesn't stop you, only the crashes will.
Final Fantasy V Research & Development / Re: Enemy Group size/spell animation issues
« Last post by Shinryuu on April 17, 2018, 11:35:56 AM »Because I'm unsure of how you replaced the original code of 4 bytes with a much longer code... What is JSL?
Recent Posts