øAslickproductions.org/forum/index.php?PHPSESSID=ukascihcm6qoputfjcvkl4kg34&topic=2102.0e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/index071c-2.htmlslickproductions.org/forum/index.php?PHPSESSID=ukascihcm6qoputfjcvkl4kg34&board=13.100e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/index071c-2.html.zxýÂh^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ ,/v¡OKtext/htmlISO-8859-1gzip8:Öv¡ÿÿÿÿÿÿÿÿWed, 11 Mar 2020 11:09:09 GMT0ó°° ®0®P®€§²ð®üÂh^ÿÿÿÿÿÿÿÿ v¡ Limitations of Mode7

Author Topic: Limitations of Mode7  (Read 1080 times)

Bahamut ZERO

  • Cagnazzo
  • *
  • Posts: 347
  • Gender: Male
  • If ye're takin a beatin, hop in de back row!
    • View Profile
Limitations of Mode7
« on: August 10, 2015, 11:47:44 AM »
This is something I've pondered ever since causing a rather funny glitch concerning Mode7 (using multiple visuals to cause all sorts of mayhem  :laugh:).  What are the limits to the Mode7 effect used on the Overworld maps? Or to be more precise - is there a way to play around with the zoom/angle effects?


I mostly ask this out of pure curiosity, but I also ask because I want to play with the zoom effect used by the Sight spell and see if there's a way I could rig the overworlds up to be slightly angled when walking around on foot.



I update my graphics thread on almost a daily basis, so keep an eye out for new stuff!

chillyfeez

  • FF4 Hacker
  • *
  • Posts: 1,285
  • Gender: Male
  • Go ahead, ask me about Angel Feathers!
    • View Profile
Re: Limitations of Mode7
« Reply #1 on: August 10, 2015, 02:48:37 PM »
The things you want to do are well within the limitations of Mode 7. The problem is how to do it.
When I was researching vehicles (see this thread) I found some stuff about how the game handles the mode 7 zoom during takeoff and landing of an airship (or the Whale), but never had any success manipulating the zoom. That is, I could change the zoom, but there's lots of other things that would need to be corrected. For instance, you know how the other surrounding vehicles become momentarily invisible during takeoff or landing? That's because those sprites are only set to appear during certain levels of zoom (you've seen in your work, I'm sure, that the mini and micro vehicle sprites are actually different sprites).
Granted, when I was doing the vehicle research, I didn't know nearly as much about SNES assembly as I do now, so if I was looking at that stuff today, I might have more luck trying to decode it all, but I do have a lot of stuff I'm trying to get done at the moment. At some point I'll open that book up again. It's not something that I gave up on simply because I decided it was over my head (like 8-letter spell names). It's just that at the time I had figured out enough to do everthing that I wanted to do with vehicles. I can't promise that it'll be any time soon, though.
If you want to tool around with the information from that thread and see if you can figure anything else out, I'd be happy to follow along and lend my insight where possible.

Bahamut ZERO

  • Cagnazzo
  • *
  • Posts: 347
  • Gender: Male
  • If ye're takin a beatin, hop in de back row!
    • View Profile
Re: Limitations of Mode7
« Reply #2 on: August 11, 2015, 02:16:57 PM »
Hell yeah! I'll start sifting through this wealth of information and see what I can garner from it.


Just taking a quick look I appear to see answers to multiple things I was pondering the possibility of! Mostly changing vehicle BGMs and keeping the Black Chocobo around after you catch it.  Granted I won't have any immmediate use of the vehicle BGM changing (as further down the line I plan on nixing a number a tracks for different things),  I've been dying to edit the black chocobo and this info gives a reason to go through with that!

But yeah, definitely will be looking through all of this. Thanks!  :happy:

EDIT:  Not much on the Mode7 front,  mostly due to pouring over an assembly tutorial I found at SMWCentral so I can finally know what I'm looking at in Geigers opcode-wise.  As a test I did your edit to the Black Chocobo, which after adding a header to my my rom I was successfully able to do, using a handing opcode chart found with send tutorial.  I changed the wrong value at first, and got treated to a funny palette change + transfer to the moon afterwards XD. I'm having a good bit of fun with this.
« Last Edit: August 11, 2015, 03:44:44 PM by Bahamut ZERO »
I update my graphics thread on almost a daily basis, so keep an eye out for new stuff!

chillyfeez

  • FF4 Hacker
  • *
  • Posts: 1,285
  • Gender: Male
  • Go ahead, ask me about Angel Feathers!
    • View Profile
Re: Limitations of Mode7
« Reply #3 on: August 11, 2015, 07:56:31 PM »
As far as understanding the opcodes goes, I find the alphabetical list of them here to be an invaluable resource, too, and I always keep it open in the background when I write assembly.

Bahamut ZERO

  • Cagnazzo
  • *
  • Posts: 347
  • Gender: Male
  • If ye're takin a beatin, hop in de back row!
    • View Profile
Re: Limitations of Mode7
« Reply #4 on: August 12, 2015, 01:47:29 PM »
Never hurts to have more to reference to! 

One quick question - when using the disassemble funtion of Geigers,  should I leave the 8 Bit Accumulator and  8 Bit X/Y Registers checked?



I think I have an idea on how to track down (at least some part) of the Mode7 data. I'm going to set an event up to Load to the Worldmap (on Falcon) and play the "Airship Bombing Damcyan" visual to recreate the funny glitch I mentioned in my OP. Basically two Mode7 effects are trying to play simaultaneously (since I'm on the Overworld in the Falcon before tunneling out of the Underground, it'll play it's little Mode7 event immidiately after the transfer).

Hopefully I'll find out something interesting while amusing myself!


Hmm  using Vetcor Info I found this:

Code: [Select]
IRQ $00:FFFF $00:0204
NMI $00:FFFF $00:0200
RES  $00:8000


And when I do a dissassembly at these addresses:

Code: [Select]
Disassembly:
$00/0200 5C 85 90 00 JMP $009085[$00:9085]   A:00F0 X:01D8 Y:0000 P:eNvMXdizc
$00/0204 5C 60 92 00 JMP $009260[$00:9260]   A:00F0 X:01D8 Y:0000 P:eNvMXdizc


According to some of the info I've read from the ASM tutorial, IRQ and  NME are both interrupts, using absolute long jump opcodes. So it seems my little setup causes the game to use the same opcode twice to two different locations, and it causes things to go all kinds of wackadoo (zoom effect continues until there are many doubles of the current surroundings boxed in,  it seems to cycle through this effect twice over before the Damcyan bombing visual takes place. I've attached a screenshot of this in action for better undestanding.


Not sure how useful that is for what I'm looking for, but having some inkling of what I'm looking at is pretty exhilarating.  :banonsmash:



« Last Edit: August 12, 2015, 02:39:39 PM by Bahamut ZERO »
I update my graphics thread on almost a daily basis, so keep an eye out for new stuff!

chillyfeez

  • FF4 Hacker
  • *
  • Posts: 1,285
  • Gender: Male
  • Go ahead, ask me about Angel Feathers!
    • View Profile
Re: Limitations of Mode7
« Reply #5 on: August 12, 2015, 09:41:51 PM »
Never hurts to have more to reference to! 

One quick question - when using the disassemble funtion of Geigers,  should I leave the 8 Bit Accumulator and  8 Bit X/Y Registers checked?

It depends entirely on the context. SNES has the ability to run either way with the accumulator or the registers at any given time, and the only way to know which is appropriate at any given time is to see it live. I can tell you that ffiv typically runs with an 8-bit accumulator by default , and 16-bit x/y. Come to think of it, I don't know if I've ever seen the vanilla assembly use 8-bit x/y.
So, I would say check 8-bit accumulator and uncheck 8-bit x/y, but if the result looks kinda gibberishy, then you may want to try unchecking 8-bit accumulator.