News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Author Topic: Arcana - Seal of Rimsala! (SNES)  (Read 117888 times)

Sarah Shinespark

  • Full Member
  • ***
  • Posts: 102
  • Creator of Arcana: Seal of Rimsala
    • View Profile
Re: Arcana - Seal of Rimsala! (SNES)
« Reply #140 on: April 19, 2020, 01:21:57 pm »
cospefogo: You may want to ask RetGal about that; their topic is working fonts for a translation.

torha:
Oh wow, welcome! I've got plenty of time, but lots of dead ends I can use advice with  :D
Code: [Select]
Tip 1: 00-02 = 24-bit rom pointer. It's using SlowROM banks! That could be a modest gain.
Ah, you mean $00 and $02 right? The code itself is on $80, but you mean it's slower for doing LDA [$00],y to $17:xxxx than $97:xxxx? That doesn't seem easy to change thanks to that PHA/PLA... Also pretty sure the whole game loads values that way  :-X

Yeah I knew about exhal, I just haven't gotten it to work because I'm having trouble finding the end of compressed blocks. Would be amazing if I could edit the maps, I've seen where they're uncompressed into the end of RAM. Keeping them uncompressed would be a godsend. (I just tied in map values to encounter formations, but I've been busy trying to get Mimics working, and Monster-in-a-Box skips most of the code loading encounter data so it's been a royal pita)

Didn't have much reason to expand the rom (and I was worried it would stop working on hakchi2/Super UFO), but having that data would be enough reason. This memory map has an example of LoROM + FastROM using 1.5 MB, so that should be fine. As for the text, moving the banks would give me more space to talk, but it hasn't been a major issue. Maybe if I had a full game translation it would be different.

torha

  • Jr. Member
  • **
  • Posts: 13
    • View Profile
Re: Arcana - Seal of Rimsala! (SNES)
« Reply #141 on: April 19, 2020, 04:09:32 pm »
Tokimeki Memorial is a 4MB LoROM (FastROM) game that works on hakchi and Super UFO. :)


Quote
Ah, you mean $00 and $02 right? The code itself is on $80, but you mean it's slower for doing LDA [$00],y to $17:xxxx than $97:xxxx? That doesn't seem easy to change thanks to that PHA/PLA... Also pretty sure the whole game loads values that way 

Loading rom data from $00-3f is a bit slower. Maybe not that slow but anything might help.

Code: [Select]
808770 sep #$20
===> ora #$80
808772 sta $02
808774 stx $00
808776 sty $05

808779 ldy #$0000
80877c lda [$00],y

You could hijink the code and add that fastrom bank flag. Or if possible, rewrite the code and optimize it.


I'll try playing with exhal and see what I can do with it.


Quote
Maybe if I had a full game translation it would be different.

Haven't seen anyone do a text comparison yet with Card Master.


I'll try helping out where I can. Also look into the font and report in that other thread if I see something. I have some ideas but have to look harder.


edit:
808770 can be repurposed to add fastrom and load uncompressed data. More on that later when I get some stuff moving forward.


edit2:
Sadly this FAQ wasn't really updated much. I didn't know that much changed from JP to US.
https://gamefaqs.gamespot.com/snes/563513-arcana/faqs/17456


It's been 5+ years for you now on this mod?
https://gamefaqs.gamespot.com/boards/563513-arcana/71596251


This is kinda interesting.
http://www.angelfire.com/rpg2/teefa85/Arcana/Arcana.html
http://www.angelfire.com/rpg2/teefa85/Arcana/Facts.html


And the unused stuff
https://tcrf.net/Arcana


===============================================


April 19, 2020:
https://github.com/torha/files/raw/arcana/dungeon%20maps/dungeon%20map%20v1.ips
- Apply this on top of SOR v1.0d
- Expands ROM to 2MB
- Reads raw dungeon maps from A0:8000


https://github.com/torha/files/raw/arcana/dungeon%20maps
- source code


Quote
-Fix a text issue where some items and spells are written with a trailing space ("learned Change Attribute to Wind .")

Easy fix. Open SOR ROM to x2E902.
Code: [Select]
Change Attr. to Wind[x20][x00]
==>
Change Attr. to Wind[x00][x00]

Same for "Change Attr. to Fire[x00]".

I suppose there's likely some coding bug to track down though.
« Last Edit: April 21, 2020, 07:00:07 pm by torha »

Sarah Shinespark

  • Full Member
  • ***
  • Posts: 102
  • Creator of Arcana: Seal of Rimsala
    • View Profile
Re: Arcana - Seal of Rimsala! (SNES)
« Reply #142 on: April 21, 2020, 06:11:12 pm »
Tokimeki Memorial is a 4MB LoROM (FastROM) game that works on hakchi and Super UFO. :)
No kidding? I've heard of the game, sounds awfully familiar and I swear it was related to DDR somehow.

Quote
Loading rom data from $00-3f is a bit slower. Maybe not that slow but anything might help.

Code: [Select]
808770 sep #$20
===> ora #$80
808772 sta $02
808774 stx $00
808776 sty $05

808779 ldy #$0000
80877c lda [$00],y

You could hijink the code and add that fastrom bank flag. Or if possible, rewrite the code and optimize it.
That's... really clever just using an OR.



Quote
Sadly this FAQ wasn't really updated much. I didn't know that much changed from JP to US.
https://gamefaqs.gamespot.com/snes/563513-arcana/faqs/17456

It's been 5+ years for you now on this mod?
https://gamefaqs.gamespot.com/boards/563513-arcana/71596251

This is kinda interesting.
http://www.angelfire.com/rpg2/teefa85/Arcana/Arcana.html
http://www.angelfire.com/rpg2/teefa85/Arcana/Facts.html

And the unused stuff
https://tcrf.net/Arcana

I think that author is overreacting, there really don't seem to be many differences. No evidence of JP having item drops, spirits aren't any different, and there aren't any more items or spells available afaik. Main menu is slightly rearranged, status screen has the character class (which I used in SOR), and the level up screen was much more condensed. But yea it's been awhile since I started! I've seen those articles, used them for a bit of input like using Blood Cards. Actually Apocalypse612 helped submit my findings to TCRF; I elaborated on the spells and descriptions, and discovered the Mirror Card and Mimic enemy~  :beer:

Quote
Code: [Select]
Change Attr. to Wind[x20][x00]
==>
Change Attr. to Wind[x00][x00]

Same for "Change Attr. to Fire[x00]".

I suppose there's likely some coding bug to track down though.
About that text issue~ Both the 2 spells and their attribute names have a trailing space, but it doesn't seem happy with an unexpected x00.



Forward steps reduced 34f -> 28f  :o :o That's a big difference! Odd that I only see this improvement in Balnea Temple though...
« Last Edit: April 21, 2020, 06:33:00 pm by Sarah Shinespark »

torha

  • Jr. Member
  • **
  • Posts: 13
    • View Profile
Re: Arcana - Seal of Rimsala! (SNES)
« Reply #143 on: April 21, 2020, 07:05:09 pm »
https://github.com/torha/files/raw/arcana/rimsala%20title/rimsala%20title%20v1.ips
- Fixes title glitch with 'OF' colors
- Use on top of Seal of Rimsala! 1.0d


https://github.com/torha/files/tree/arcana/rimsala%20title
- source code here


Short explanation:
- exhal to get tiles
- Add 'F' in palette 1 color (**)
- inhal to get packed
- make adjustments to rom
  https://github.com/torha/files/blob/arcana/rimsala%20title/title_seal.asar.txt
- try me!


~~~~~~~~~~~~~~~~~~~~


https://github.com/torha/files/raw/arcana/fastrom/fastrom%20v1.ips
- Minor speed up when creating dungeon tiles
- Apply on top of SOR 1.0d


https://github.com/torha/files/tree/arcana/fastrom
- Source code here


Short explain:
Code: [Select]
839d59 lda $7f0000,x [7f0040]

839d5d pha
839d5e sep #$30             
839d60 plx                   
839d61 lda $83b251,x [83b350]
839d65 xba                   
839d66 plx                   
839d67 lda $83b251,x [83b251]
839d6b xba                   
839d6c rep #$30

Notice how it uses the stack (pha, plx, plx). A small gain by avoiding the r/w to ram.

Code: [Select]
  tay ; two 8-bit tile data
  xba
  tax
  sep #$30

  lda $83b251,x ; tile1
  xba
  tyx ; tile2
  lda $83b251,x
  rep #$30

Which fits perfectly.
« Last Edit: April 21, 2020, 07:33:23 pm by torha »

Sarah Shinespark

  • Full Member
  • ***
  • Posts: 102
  • Creator of Arcana: Seal of Rimsala
    • View Profile
Re: Arcana - Seal of Rimsala! (SNES)
« Reply #144 on: April 21, 2020, 07:33:35 pm »
Holy crap that's amazing.
(I really gotta learn how to use xkas)  :cookie:

EDIT: Saw the 2nd part, lemme test that too.
Wow, I just realized walking is really uneven speed in Dwarven Pass. Sometimes steps are 14/12, 15/12, 15/11. It's gotta be those "moving clouds".
« Last Edit: April 21, 2020, 08:08:23 pm by Sarah Shinespark »

torha

  • Jr. Member
  • **
  • Posts: 13
    • View Profile
Re: Arcana - Seal of Rimsala! (SNES)
« Reply #145 on: April 21, 2020, 07:39:23 pm »
I use asar which is like xkas but improved.
https://github.com/RPGHacker/asar


Lets you do dirty stuff like this quickly.
https://raw.githubusercontent.com/torha/files/arcana/fastrom/fast1.asar.txt
https://raw.githubusercontent.com/torha/files/arcana/dungeon%20maps/dungeon_raw.asar.txt


EDIT:
I should mention that you could modify the title.bin from here
https://github.com/torha/files/tree/arcana/rimsala%20title

Add a "!" font tile
Run inhal script
Copy packed back to same spot (it's smaller for sure)

Then write the full hack subtitle "SEAL OF RIMSALA!"


EDIT:
For the uneven walking speed, all I can think would be to add a minimum frame limiter depending on dungeon map maybe. Compared to how slow it was in vanilla game, would be kinda ironic actually.

With some luck, maybe I can help smash out some of the other annoying bugs on the master list.
« Last Edit: April 21, 2020, 07:54:34 pm by torha »

Sarah Shinespark

  • Full Member
  • ***
  • Posts: 102
  • Creator of Arcana: Seal of Rimsala
    • View Profile
Re: Arcana - Seal of Rimsala! (SNES)
« Reply #146 on: April 21, 2020, 08:11:09 pm »
I don't think a ! is necessary, but that's still pretty cool.
Guessing the uneven speed in Dwarven Pass is from the clouds overhead, probably doing more graphics handling for those.

...Wait, did you say the maps were uncompressed now? Like just the graphics, or the tiles?

torha

  • Jr. Member
  • **
  • Posts: 13
    • View Profile
Re: Arcana - Seal of Rimsala! (SNES)
« Reply #147 on: April 21, 2020, 08:24:44 pm »
The dungeon layouts 32x32 are uncompressed now. You can see the whole list here.
https://github.com/torha/files/tree/arcana/dungeon%20maps


ex.
Balnia 1F  https://github.com/torha/files/blob/arcana/dungeon%20maps/00.bin
Balnia 2F  https://github.com/torha/files/blob/arcana/dungeon%20maps/01.bin


Whole list is in here
https://raw.githubusercontent.com/torha/files/arcana/dungeon%20maps/dungeon_raw.asar.txt


Using the ips patch will load the raw data from A0:8000 onward.

Sarah Shinespark

  • Full Member
  • ***
  • Posts: 102
  • Creator of Arcana: Seal of Rimsala
    • View Profile
Re: Arcana - Seal of Rimsala! (SNES)
« Reply #148 on: April 21, 2020, 08:40:07 pm »
Awww yiss.
Probably tomorrow when I'm not in night class, I'll mess around with it and see if I can move tiles/chests/bosses. If so this is gonna break the game wide open.

Kinda wish I had the know-how to write a GUI editor, but I could do something command-line if I can decide how to take in input.


Oh snap, I can edit the map  8)
Made a shortcut from the start of Balnia 1F, now you can walk straight from the entrance. Reworked Ice Maze is gonna be fun.
« Last Edit: April 21, 2020, 09:48:04 pm by Sarah Shinespark »

torha

  • Jr. Member
  • **
  • Posts: 13
    • View Profile
Re: Arcana - Seal of Rimsala! (SNES)
« Reply #149 on: April 21, 2020, 09:52:02 pm »
Here's your next appreciation gift!


https://github.com/torha/files/raw/arcana/spell%20reader/spell%20reader%20v1.ips
- Fixes the dummy space in printed text
- Apply on top of SOR 1.0d


As usual source is here
https://github.com/torha/files/tree/arcana/spell%20reader
https://raw.githubusercontent.com/torha/files/arcana/spell%20reader/spell_reader.asar.txt


Notes:
Rewrote the spell, item printing code because it was big and had that error.

00 = EOS
20 20 = EOS
20 00 = EOS but doesn't catch this before


EDIT:
Also noticed that it uses SlowROM bank $05.
Code: [Select]
878168 lda #$e340
87816b clc
87816c adc $00
87816e sta $00

878170 lda #$0005
878173 sta $02
878175 rts

I didn't change this and almost forgot to point it out.


Turns out spells are fixed-width table at 05:E340. Of x16 bytes each entry. I don't think it needs expanding but wanted to notate it also.

Code: [Select]
878161 ldx #$0016
878164 jsl $808a39
808a39 jsr $8a3d

That's the text width value.


EDIT:
If someone has a bsnes savestate or sram for Rimsala boss, I can jump on that faster.

There still might be a " ." printing bug but haven't gotten one yet.
« Last Edit: April 21, 2020, 10:18:08 pm by torha »

Sarah Shinespark

  • Full Member
  • ***
  • Posts: 102
  • Creator of Arcana: Seal of Rimsala
    • View Profile
Re: Arcana - Seal of Rimsala! (SNES)
« Reply #150 on: April 21, 2020, 10:26:56 pm »
Here's your next appreciation gift!


https://github.com/torha/files/raw/arcana/spell%20reader/spell%20reader%20v1.ips
- Fixes the dummy space in printed text
- Apply on top of SOR 1.0d


As usual source is here
https://github.com/torha/files/tree/arcana/spell%20reader
https://raw.githubusercontent.com/torha/files/arcana/spell%20reader/spell_reader.asar.txt


Notes:
Rewrote the spell, item printing code because it was big and had that error.

00 = EOS
20 20 = EOS
20 00 = EOS but doesn't catch this before
/falls down
Really it just didn't catch that? That's hilarious. Awesome work!


Quote
Turns out spells are fixed-width table at 05:E340. Of x16 bytes each entry. I don't think it needs expanding but wanted to notate it also.

Code: [Select]
878161 ldx #$0016
878164 jsl $808a39
808a39 jsr $8a3d

That's the text width value.

Oh I have a lot of those tables documented here hun, hope it's not taking too much time finding values yourself! Interesting seeing the code.

I don't have any bsnes savestates, but if Apocalypse was here he could probably blaze up to the boss quickly. You can teleport by modifying your $16F7/$16F9 (just move to update the screen afterwards) but you still have to fight the event battles if my time screwing with that in Chapter 2 holds fast. Although just set their HP to 1 ($12FB) if you wanna go fast lol. Anyway, (00, 00) is the top left of the map.
« Last Edit: April 21, 2020, 10:39:06 pm by Sarah Shinespark »

Apocalypse612

  • Jr. Member
  • **
  • Posts: 4
    • View Profile
Re: Arcana - Seal of Rimsala! (SNES)
« Reply #151 on: April 21, 2020, 11:20:49 pm »
Here's the requested save state for BSNES. It's for the accuracy build exe (bsnes-plus-05-x64).

https://www.sendspace.com/file/01mbl8

torha

  • Jr. Member
  • **
  • Posts: 13
    • View Profile
Re: Arcana - Seal of Rimsala! (SNES)
« Reply #152 on: April 22, 2020, 11:52:28 pm »
Thanks a lot! It was helpful getting there fast. What a bug that turned out. It's like walking up to a "Welcome!" mat and finding a dog laid poop there. :rofl:


So I didn't know what to call this one.
https://github.com/torha/files/raw/arcana/title%20register%20reset/title%20register%20reset%20v1.ips
- Use on SOR 1.0d
- Fixes dirty graphics after failing Rimsala fight (maybe others)


https://github.com/torha/files/tree/arcana/title%20register%20reset
https://raw.githubusercontent.com/torha/files/arcana/title%20register%20reset/title_register_reset.asar.txt
- Source code provided


Explain here:
Rimsala fight uses h-dma7, which is still activated when we die and return to main menu. This causes all sorts of invisible wonky stuff to show.

note: There could be other registers that need zapping also. But maybe it's safe.


$105a is used to cache which h-dma channels to run. Now we find some code that runs only during title.
Code: [Select]
title + hal fade-in
978014 jsl $808c84   [808c84] A:0081 X:00d0 Y:001e S:1ffc D:1e00 DB:80 NvmxdIzC V: 52 H: 926 F:26
978018 lda #$0014             A:0430 X:0400 Y:001e S:1ffc D:1e00 DB:80 nvmxdIzC V: 65 H:1148 F:26
97801b jsl $808d24   [808d24] A:0014 X:0400 Y:001e S:1ffc D:1e00 DB:80 nvmxdIzC V: 65 H:1166 F:26
97801f jsl $8088de   [8088de] A:0000 X:0000 Y:0000 S:1ffc D:1e00 DB:80 nvmxdIZc V: 69 H: 234 F:26
978023 jsl $808e29   [808e29] A:0000 X:0000 Y:0000 S:1ffc D:1e00 DB:80 nvmxdIZc V:232 H:1070 F:26
978027 jsl $80a760   [80a760] A:0400 X:0400 Y:ffff S:1ffc D:1e00 DB:80 nvmxdIzC V:251 H:1036 F:26

Then we reset $105a to zero. And whoop goes the little gremlin. Onward and upward!
=== Special note: vanilla game has this same bug also. Experimentally verified. ===


So Card Master @Sarah Shinespark, anything else that can use a look?



Side-note: found another SlowROM bank to change.
Code: [Select]
809cf1 jsl $00995c   [00995c]

And the SlowROM NMI handler could be sped up methinks. I would expect small gain though. But combining all the measly crumbs could eventually turn into marshmallow dough.

Sarah Shinespark

  • Full Member
  • ***
  • Posts: 102
  • Creator of Arcana: Seal of Rimsala
    • View Profile
Re: Arcana - Seal of Rimsala! (SNES)
« Reply #153 on: April 23, 2020, 05:06:21 am »
These would go really well all added to the FastROM patch so other translations can use them 🤔 Theres a minor patch conflict between it and Multi-Levelup where the order matters. One sets a value to 85, and the other 87.

torha

  • Jr. Member
  • **
  • Posts: 13
    • View Profile
Re: Arcana - Seal of Rimsala! (SNES)
« Reply #154 on: April 23, 2020, 09:37:17 am »
I should re-edit my ips patches to remove checksum fixing. :oops: Then I'll recommend which ones should be standalone FastROM inclusion compatible.


For levelup - fastrom conflict:
Code: [Select]
vanilla:
87b29b lda $85a91a,x [85d736]
87b29f sta $1363,y   [811362]
87b2a2 rtl                   


current:
87b29b jml $87ffa1   [87ffa1]
87b29f sta $1363,y   [811362]
87b2a2 rtl                   


87ffa1 lda $85a91a,x [85d736]
87ffa5 ldx $1064     [801064]
87ffa8 cpx #$0055           
87ffab bne $ffb1     [87ffb1]
87ffad clc                   
87ffae adc $1363,y   [811362]
87ffb1 sta $1363,y   [811362]
87ffb4 rtl                   

levelup patch becomes

Code: [Select]
fix:
87b29b lda $85a91a,x [85d736]
87b29f jml $87ffa5
« Last Edit: April 23, 2020, 04:17:22 pm by torha »

Sarah Shinespark

  • Full Member
  • ***
  • Posts: 102
  • Creator of Arcana: Seal of Rimsala
    • View Profile
Re: Arcana - Seal of Rimsala! (SNES)
« Reply #155 on: April 23, 2020, 01:44:07 pm »
Um, that skips a game breaking bugfix~
The code is also called whenever changing spirits, so I have it check to see if the victory theme is playing so if only activates then. Otherwise switching the spirits will ADC a certain value each time.

torha

  • Jr. Member
  • **
  • Posts: 13
    • View Profile
Re: Arcana - Seal of Rimsala! (SNES)
« Reply #156 on: April 23, 2020, 02:09:09 pm »
The forum ate my new code somehow. :/

edit: Check above post again. That should be the correct answer that won't have a bank conflict. Re-organizing github files so will take a bit.
« Last Edit: April 23, 2020, 04:36:45 pm by torha »

Sarah Shinespark

  • Full Member
  • ***
  • Posts: 102
  • Creator of Arcana: Seal of Rimsala
    • View Profile
Re: Arcana - Seal of Rimsala! (SNES)
« Reply #157 on: April 26, 2020, 02:05:32 am »
I may have to un patch Fastrom and MLU on SOR to be sure the new versions will apply properly... tracking changes separately from those patches is annoying lol.

Anyway, if I'm gonna be editing maps I'm gonna want a program to help visualize it. Got code I can repurpose for that, just thinking out loud about possible scopes.
-Easiest: reads an extended ROM and displays each map.
-Possible features: show ROM addresses near area shown, select a certain map
-Harder: Accept original game as well, automate extracting with exhal for reading data
-Harder: Automate inserting with inhal for non expanded games

Idk, it would be amazing to make a tool anyone can use with vanilla. But at the moment I just need something to draw out the values so I dont have to keep stretching Translhexion to a weird size.


EDIT: Ohh I just got it, you suggested adding a ! to the title because I had it in the topic name. That's really good attention to detail   :cookie:

EDIT2: Got the map viewer working!  :beer: Truncated it for size, but it shows all 14 blocks of 400 bytes!
Legend:
1x: Encounters (1/20 in SOR, 1/12 in vanilla)
2x: Encounters (1/4), only in Stavery 12F in Chapter 4
30: No encounters
40: Stairs up
41: Stairs down
5x: Event x
6x: Fog
70: Boss
80: Treasure chest
90: Door

Code: [Select]
Source file: Arcana - SOR v1.0dx.smc
....
Map 1: 0X100000
                                                                                               
                                             40                                                 
                     80    80    30 30 30 30 30 12 12 12 12    10 10 10                         
                     10    12    30 12                12 12    10    10                         
                     10    12    30 12                12 12    10    10                         
                     10    12    30 30 30 30 30 12 12 12 12    10    10                         
                     10    12                70                10    10                         
                     10    12 12 12    11 11 30    12 12 12 12 12    10                         
                     10    12    12    11          12    12    12    10                         
                     10    12          11          12    12    12    10                         
                     10    11 11 11 11 11 11 11 11 12 12 12 12 12    11                         
                     10                      10                      11                         
                     10    12 12 12 12 12    10 10 10 10 10 10 10    11                         
                     10    12    12    12                      10    11                         
                     10    12 12 12 12 12 11 11 11 11 11 11    10    11                         
                     10    12 12 12 12 12 11 11 11 11 11 11    10    11                         
                     10    12    12    12    11                10    11                         
                     10    12 12 12 12 12    11    80 11 11 11 11    11                         
                     10                      11                11    11                         
                     10 10 10 10 10 10 10 10 11 11 11 11 11    11    11                         
                     10    10                10          11    11    11                         
                     10    10    11 11 11    10    11 11 11    11    12                         
                     10    10    11    80    10    11 11 11    11    12                         
                     10    10    11          10                11    12                         
                     10    10 11 11    11 11 10 11 11 11 11 11 11    12                         
                     10    10    11          10                      12                         
                     10    10    11    80    10 10 10 10 10 10 10    12                         
                     10    10    11 11 11    10 10 10 10 10 10 10    12                         
                     10    10                               10 10    12                         
                     10    10 10 10 10 10 10 10 10 10 10 10 10 10    12                         
                     10    10 10 10 10 10    90    10 10 10 10 10    80                         
                                                                                               


Map 2: 0X100400
                                                                                               
                                 30 30 30 30 30 30 30 30 30                                     
                                 30          30          30                                     
                                 30    30 30 30 30 30    30                                     
                                 30    30          30    30                                     
                                 30    30    54    30    30                                     
                                 30    30 30 30 30 30    30                                     
                                 30                      30                                     
                                 30 30 30 30 30 30 30 30 30                                     
                                             70                                                 
   15 15 15       15 15 15       15 15 15    15    15 13 13 13 13    15    14    15    14       
   15    15 14 14 15    15 14 14 15    15    15    15          13    15    14    15    14       
   15 15 15       15 15 15       15 15 15    15    15    15    13    15    14    15    14       
   15 15 15       15 15 15       15 15 15    15    15    15    13    15    14    15    14       
   15    15 14 14 15    15 14 14 15    15    15    15    15    13    15    14    15    14       
   15 15 15       15 15 15       15 15 15    15 15 15    15 15 13 13 13 13 13 13 13 13 13       
                                       14                                              13       
   14 13 13 13 13 13 13 13 14 14 14 14 14 14 14 15 15 15 15 15 14 14 14 14 13 13 13 13 13       
   14                                              13                                           
   14    15 15 15 13 13 13 13 13 13 13 13 13 13    13 13 13 13 13 13 13 13 13 13 13 13 13       
   14    15    15    14    14    14    14    13    13          15          15          13       
   14    15    15    14    14    14    14    13    13    80    15    80    15    80    13       
   14    15 15 15    14    14    14    14    13    13    14    80    14    80    14    13       
   14                14    14    14    14    13    13    14          14          14    13       
   14 14 14 14 14 14 14    14 14 14    14    13    13 13 13 13 13 13 13 13 13 13 13 13 13       
                                             13                                                 
                                             13                                                 
                                          13 13 13                                             
                                          13    13                                             
                                          13 13 13                                             
                                             41                                                 
                                                                                               


Map 3: 0X100800
                                                                                               
                                                                                               
                                                                                               
                                                                                               
                                                                                               
                                                                                               
                                                                                               
                                                                                               
                                                                                               
                                                                                               
                                                                                               
                                                                                               
                                                                                               
                                                                                               
                                                                                               
   80 10 10 10 10 10 10 10 10 10 10 10 10 10                                                   
                  10                      13                                                   
   10 10 10       10    13 13 13 13 13    13                                                   
   10    10       10    13    13    13    13                                                   
   10 10 10       10    13    13    13    13                                                   
         10       10    13    80    80    13                                                   
   60 30 30       10    13                13                                                   
         10       10    13 13 13 13 13 13 13                                                   
   80    10       10    13                                                                     
   10    10       10    13    13 13 13 13                                                       
   10 10 10       10    13    13       13                                                       
   10 10 10       10    13    13    30 30                                                       
   10    10       10    13    13    30                                                         
   80    10 10 10 10    13 13 13    30 30 61                                                   
                                                                                               
                                                                                               
                                                                                               


Map 4: 0X100C00
                                                                                               
         14 14 14 14 14 14 14 14 14 14 14 80    14 14 14 14 14 80    15 15 15 80    80         
         14                                     14                   15             15         
         14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 80    15 15 15 80    15         
         14                                     14                   15             15         
         14 14 14 14 14 14 14 14 14 14 14 80    14 14 14 14 14 80    15 15 15 80    15         
         14                                     14                   15             15         
         14 14 14 14 14 14 14 14 14 14 14 80    14 14 14 14 14 80    15 15 15 15 15 15         
         14                                     14                   15             15         
         14 14 14 14 14 14 14 14 14 14 14 80    14 14 14 14 14 14 15 15 15 15 80    15         
         14                                     14                   15             15         
         14 14 14 14 14 14 14 14 14 14 14 80    14 14 14 14 14 80    15 15 15 80    15         
   30 30 14                                     14                   15             30 70 30   
   30    14 14 14 14 14 14 14 14 14 14 14 80    14 14 14 14 14 80    15 15 15 80          30   
   66                                                                                     67   
                                                                                               
                                                                                               

« Last Edit: April 30, 2020, 01:21:25 am by Sarah Shinespark »

stratoform

  • Jr. Member
  • **
  • Posts: 82
    • View Profile
Re: Arcana - Seal of Rimsala! (SNES)
« Reply #158 on: April 26, 2020, 10:09:30 pm »
@torha
The Seal of Rimsala "title register reset" fix has a fastrom bank conflict.

Code: [Select]
$97/800A A9 24 00    LDA #$0024
$97/800D 8D 39 06    STA $0639
$97/8010 22 63 81 80 JSL $808163
$97/8014 22 84 C0 80 JSL $8084C0 --- here $97 vs $80

I suggest changing it to:

Code: [Select]
org $97800a
jsl +
nop #2


org $9cffc0
+
lda #$0024   ; old code
sta $0639

sep #$20     ; reset h-dma
stz $105a
rep #$20
rtl

Sarah Shinespark

  • Full Member
  • ***
  • Posts: 102
  • Creator of Arcana: Seal of Rimsala
    • View Profile
Re: Arcana - Seal of Rimsala! (SNES)
« Reply #159 on: April 28, 2020, 01:58:03 am »
Okay, uncovered a little more!  :)
So Stavery 12F in Ch4 has a unique high encounter rate, 1 in 4. Also I understand the RNG better; given a number (4) it returns (0...3). This changes my understanding of a lot of code, especially the damage formula! Back to the drawing board... So if I understand this correctly,
Encounter rates:
Vanilla: 0C (1 in 12)
SOR: 14 (1 in 20)
Stavery 12F: 04 (1 in 4)

EDIT: Also back attack % seems to be 1/16.

EDIT2: Think I found position/quantity data for enemy formations! It's in a really well-hidden set of tables. Depending on the floor tile, the 2nd byte in the formation data references a pointer table to the hidden table. As it's based on the "2"nd byte in the formation "Header", I decided to call it the H2 Table. An example:
Code: [Select]
H2 Table format
*First byte, #entries
*Each entry's first byte, #words

H2 Table 00
Used by: Balnea 2F (Chapter 1 tiles 13, 14, 15)
Entries @ 9288: 10
00: 9289: 08 0400 0700 0800 2500 2600 4400 4700 4800
01: 929A: 01 0403
02: 929D: 01 0404
03: 92A0: 03 0402 0703 0802
04: 92A7: 03 0502 0602 2404
05: 92AE: 03 0503 0603 2404
06: 92B5: 05 0700 0800 2503 2603 4404
07: 92C0: 05 0403 2501 2601 4700 4800
08: 92CB: 02 0503 0603
09: 92D0: 02 0504 0604
0A: 92D5: 02 0503 0604
0B: 92DA: 05 0500 0600 2401 2700 2800
0C: 92E5: 03 0402 0702 0802
0D: 92EC: 03 0702 2400 4803
0E: 92F3: 05 0502 0602 2400 4704 4804
0F: 92FE: 03 0703 0803 2404

Notice how the first byte in each word always has a similar range. I think the high nybble is vertical position and low nybble is horizontal position. The 2nd byte in the word... hmm, probably refers to the enemy ID position in the formation table!! Yes, so for the first entry "0400 0700 0800 2500 2600 4400 4700 4800", notice how they all end in 00 and are arranged like "3 in front row, 2 in middle, 3 in back row". Balnea 2F has either "00" (Slime) or "0A" (Pudding/Jell) for the first entry! So this is the infamous 8-slime encounter. Oh man, what a find  :woot!:

Positions 00 through 03 are for the characters... THE CHARACTERS! lol

They're saving that spot for Axs, little guy... you'll have to move.
(Mimic secretly wants to be the mascot)


EDIT 3:
OK, I made a nerd document  8)  Think I'll do one for the original game too so I have something to submit. Here's an excerpt!



I decided to call the H2 Table the "Battle Lists". Every area has a set of 16 (00-0F) possible battles, and it uses the Enemy List to decide what enemies to use. So a battle with 00 x8 could yield Slime x8 or Pudding x8 depending on what floor tile you're on. :thumbsup: Battle Lists also include enemy positional data, so now I know how to move enemies around too.
« Last Edit: April 30, 2020, 01:29:39 am by Sarah Shinespark »