News: 11 March 2016 - Forum Rules

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

Sarah Shinespark

  • Full Member
  • ***
  • Posts: 154
  • Creator of Arcana: Seal of Rimsala
    • View Profile
Re: Arcana - Seal of Rimsala! (SNES)
« Reply #200 on: July 12, 2021, 01:18:07 am »
OK, I can work on an equip that gives bonus gold! Plenty of worthless chests to replace with awesome new finds.

So I wanted to brag a little; I wrote a new program that extracts and prints the game's maps, and it works for both vanilla mods and SOR. I'll look into generating a RTF file, until then the highlighting was done manually. Please check it out! I'd like to know how readable it is.

Special

  • Sr. Member
  • ****
  • Posts: 367
    • View Profile
Re: Arcana - Seal of Rimsala! (SNES)
« Reply #201 on: July 12, 2021, 01:33:16 am »
Hey I downloaded your recent update and noticed that all the docs (maps, treasures, etc.) were now turned into PDFs, any chance your can bring them back in "txt" form again, PDFs are a pain to open sometimes whereas a simple .txt file in notepad is much easier.

odditude

  • Jr. Member
  • **
  • Posts: 68
    • View Profile
Re: Arcana - Seal of Rimsala! (SNES)
« Reply #202 on: July 12, 2021, 01:46:23 am »
OK, I can work on an equip that gives bonus gold! Plenty of worthless chests to replace with awesome new finds.

So I wanted to brag a little; I wrote a new program that extracts and prints the game's maps, and it works for both vanilla mods and SOR. I'll look into generating a RTF file, until then the highlighting was done manually. Please check it out! I'd like to know how readable it is.

that's really nifty!

i'd ask that if you do add RTF export, keep the plaintext export as an option - that output is easier to parse if you want to programmatically generate a "pretty" map (such as one that does the different encounter zones as different shades).

speaking of which, are you willing to provide that raw text output?

Sarah Shinespark

  • Full Member
  • ***
  • Posts: 154
  • Creator of Arcana: Seal of Rimsala
    • View Profile
Re: Arcana - Seal of Rimsala! (SNES)
« Reply #203 on: July 12, 2021, 10:16:25 am »
All of my programs generate in plaintext, I prefer it too. I printed to PDF because IIRC someone had trouble viewing the maps; figured the tabs/spacing weren't the same on their computer so I did it to show what it looked like on mine. The maps are 95 characters per line (32 bytes single spaced) so they don't really work on mobile.

But sure, I can go back to txt and provide PDF separately.
Vanilla maps
SOR maps

My next goal with these is to add the treasure chest locations and the monster encounters per tile.
Here's my mockup  :beer:
« Last Edit: July 12, 2021, 10:23:36 am by Sarah Shinespark »

odditude

  • Jr. Member
  • **
  • Posts: 68
    • View Profile
Re: Arcana - Seal of Rimsala! (SNES)
« Reply #204 on: July 12, 2021, 01:26:22 pm »
 :beer:

Sarah Shinespark

  • Full Member
  • ***
  • Posts: 154
  • Creator of Arcana: Seal of Rimsala
    • View Profile
Re: Arcana - Seal of Rimsala! (SNES)
« Reply #205 on: July 14, 2021, 02:11:58 am »
OK, the treasure reader is re-written!
Vanilla treasures

Next step is combining both, like [Balnia 1F] [Treasures 1F] [Balnia 2F] etc. I made the data formats easy to combine, but the trick is going to be having the program edit the maps to indicate WHICH treasure is which by going off the coordinates.

By the way, after seeing every treasure in the game I noticed there are two unreachable chests in vanilla Arcana, both in Icicle Dungeon. Two of the dead ends (green circles) are supposed to have a Restore Honey and MP Honey, but their coordinates are off; the game has the treasures' Y-positions as 1B (27) instead of 0B (11). Even if you try getting the treasures there (in the outermost donuts at the bottom), the game won't load their chests because it also checks the map for a "treasure tile" before drawing a treasure chest. Incidentally, treasure tiles are no-encounter tiles, so if you knew about this you could spin where the chests *should* be (green circles) and let your spirits recover.


Sure wish I could generate maps like that myself, would be super fun to draw on my own maps like that.


Oh, I found something neat! There's lots of unused map display tiles. Some would be really useful, and some look like they're used for marking the map as you go.



Some map musings:
The Map command displays a 16x16 grid. Full maps are 32x32, so this map is 1/4 scale. I'd love to add code to move the map around, but I think the code only renders the 16x16; need to investigate this. The code for generating the map is some kind of nested loop that updates square tiles into corner tiles etc, intuition tells me it's super inefficient and could be optimized. In addition, this code is ran EVERY time you open the map. If it was changed to drawing the whole map to RAM when you enter the floor and just turning off the tiles you haven't reached, loading new floors could be slower but opening the map would be way faster. (The map sprite #'s are written to RAM Fxxx and transferred to VRAM xxx). Also, I'm very close to being able to set the entire map to "seen", and I'm thinking about making an Easy Vanilla patch where the maps are already drawn. I'll combine it with the above discovery so you can see doors and event tiles too.

Also also, having bosses/events show up on the map is useless if you can't see them ahead of time. What if the map was updated slightly ahead of you?
« Last Edit: July 21, 2021, 12:47:07 pm by Sarah Shinespark »

Sarah Shinespark

  • Full Member
  • ***
  • Posts: 154
  • Creator of Arcana: Seal of Rimsala
    • View Profile
Re: Arcana - Seal of Rimsala! (SNES)
« Reply #206 on: July 21, 2021, 10:16:12 am »
I'm starting to suspect that the bugs in FastROM patch might actually be vanilla bugs  :huh: Was playing vanilla in Geiger's Debugger and got the Shaman game freeze bug.

reyvgm

  • Hero Member
  • *****
  • Posts: 1241
    • View Profile
Re: Arcana - Seal of Rimsala! (SNES)
« Reply #207 on: July 22, 2021, 10:09:47 am »
OK, the treasure reader is re-written!
Vanilla treasures

Next step is combining both, like [Balnia 1F] [Treasures 1F] [Balnia 2F] etc. I made the data formats easy to combine, but the trick is going to be having the program edit the maps to indicate WHICH treasure is which by going off the coordinates.

By the way, after seeing every treasure in the game I noticed there are two unreachable chests in vanilla Arcana, both in Icicle Dungeon. Two of the dead ends (green circles) are supposed to have a Restore Honey and MP Honey, but their coordinates are off; the game has the treasures' Y-positions as 1B (27) instead of 0B (11). Even if you try getting the treasures there (in the outermost donuts at the bottom), the game won't load their chests because it also checks the map for a "treasure tile" before drawing a treasure chest. Incidentally, treasure tiles are no-encounter tiles, so if you knew about this you could spin where the chests *should* be (green circles) and let your spirits recover.


Sure wish I could generate maps like that myself, would be super fun to draw on my own maps like that.


Oh, I found something neat! There's lots of unused map display tiles. Some would be really useful, and some look like they're used for marking the map as you go.



Some map musings:
The Map command displays a 16x16 grid. Full maps are 32x32, so this map is 1/4 scale. I'd love to add code to move the map around, but I think the code only renders the 16x16; need to investigate this. The code for generating the map is some kind of nested loop that updates square tiles into corner tiles etc, intuition tells me it's super inefficient and could be optimized. In addition, this code is ran EVERY time you open the map. If it was changed to drawing the whole map to RAM when you enter the floor and just turning off the tiles you haven't reached, loading new floors could be slower but opening the map would be way faster. (The map sprite #'s are written to RAM Fxxx and transferred to VRAM xxx). Also, I'm very close to being able to set the entire map to "seen", and I'm thinking about making an Easy Vanilla patch where the maps are already drawn. I'll combine it with the above discovery so you can see doors and event tiles too.

Also also, having bosses/events show up on the map is useless if you can't see them ahead of time. What if the map was updated slightly ahead of you?

Add the unused stuff to TCRF.net !
If you don't feel like it, then compile the unused stuff somewhere with a description of what it is and I'll add it and give you credit for it.

Sarah Shinespark

  • Full Member
  • ***
  • Posts: 154
  • Creator of Arcana: Seal of Rimsala
    • View Profile
Re: Arcana - Seal of Rimsala! (SNES)
« Reply #208 on: July 22, 2021, 02:47:59 pm »
Add the unused stuff to TCRF.net !
If you don't feel like it, then compile the unused stuff somewhere with a description of what it is and I'll add it and give you credit for it.
I did  8) Looks like you found it, too.
There's a lot of other textures that don't make sense, probably part of graphics elsewhere.

Oh yeah, I released a vanilla patch that makes all maps visible. It just changes the instruction "get the map completion bytes" to "get FF". Well that was easy!


Speaking of maps, here's the 256 map tiles... at least the ones loaded in this scene. Most of them are wall textures, which show the wrong palette when the map is up. Hmm, if I REALLY wanted to I could redraw the dungeon walls... but I don't want to. Again, those graphics are saved to RAM 7EF980 -> VRAM 980. Really easy to trace from there.



I found the code for all of the menu commands, so I can rearrange them or call them elsewhere. I want to make shortcuts so opening the menu isn't always necessary (A=Open, Y=Map, L=Inventory, R=Magic), but unfortunately the commands' code is in sub-assembly which is much harder to read and inject. There's plenty of room for me to jump somewhere else, but I'm not sure how to return from a jump in that language.


Quote from: torha
I was watching the vram in dungeon walking mode. It runs slow because it decompresses the dungeon tiles every frame. It'd be much faster if you expanded LoROM to 2MB and threw the raw tiles in there. Maybe battle monster sprites too.

It runs the decompressor 80/8766 every time the player moves (which is better than I thought), but the main thing against storing decompressed tiles is the game assembling them in a really complicated way. It's somehow using all those tiny lines in the screenshot above and manipulating them to procedurally draw the dungeon. It's bizarre to analyze because it's NOT 3D, there aren't actually walls with textures.
« Last Edit: July 23, 2021, 11:16:07 am by Sarah Shinespark »

Red Soul

  • Full Member
  • ***
  • Posts: 212
    • View Profile
    • Dynamic Designs
Re: Arcana - Seal of Rimsala! (SNES)
« Reply #209 on: July 25, 2021, 05:31:14 am »
A lot of interesting developments for this game lately!
Will the individual patches that have been released recently like map display and 3 digit stat gain be integrated into SoR at a later time and if not, will they be compatible with it?

Sarah Shinespark

  • Full Member
  • ***
  • Posts: 154
  • Creator of Arcana: Seal of Rimsala
    • View Profile
Re: Arcana - Seal of Rimsala! (SNES)
« Reply #210 on: July 25, 2021, 12:18:10 pm »
A lot of interesting developments for this game lately!
Will the individual patches that have been released recently like map display and 3 digit stat gain be integrated into SoR at a later time and if not, will they be compatible with it?
They're both compatible; Show All Maps simply changes "load the map progress bytes" to "load FF FF". It's basically easy mode, so it's staying optional. 3 Digit Bonuses has been part of SOR for awhile, I'm just releasing bugfixes as standalone in case someone wants to add them to their own mod. Taking inspiration from FF6.

Way down the road I want to release an editor; I do have unreleased Nightmare modules but I want something more all-encompassing like ff3usme. For now though, I'm importing RetGal's Spanish translation for a Spanish version.  I had just enough space to move my 9 custom font tiles elsewhere, now it just needs playtesting to make sure space I overwrote isn't used anywhere else. After that, I'll have to figure some way to patch SOR's text changes on top of the Spanish. (Scale Mail is Water Attribute, Dragon Shield repels Reptile, etc)



New ASM mod! 8) What do you think?

There's more than enough room to relocate the spell text, just editing the pointers will take awhile. Now the game saves the spell's power and accuracy% to the screen buffer, so I can call them in the description! The code for displaying MP cost etc is the same at the end of each spell description, so I'm looking into a way to make the text reader jump to one location rather than repeat myself 81 times. Roadblock is that the text reader (A7B5) uses ANOTHER sub-language to process commands, so I can't just JSL somewhere.
...Okay, I found the command! Every spell's text starts with one, so I added one to the end that jumps to my display routine too. As a bonus, I freed up 6 bytes of text for each spell description.  :beer:
...And now there's display bugs  :-X Some letters are cut off, and there's a green flash when Axs checks his spells. Wtf did I do?

Wasn't able to reproduce the green flash, but I tracked the unfinished letters bug to vanilla missing some newline characters. And speaking of which, I found another vanilla bug to fix. On page 2+, the arrows have spell descriptions from the previous page.
« Last Edit: July 27, 2021, 01:45:46 pm by Sarah Shinespark »

slidelljohn

  • Sr. Member
  • ****
  • Posts: 352
    • View Profile
Re: Arcana - Seal of Rimsala! (SNES)
« Reply #211 on: July 27, 2021, 04:05:56 pm »
I think there might be a few more things that need to be changed with the fastrom patch.
Probably wont make much of a difference but things like this $10:C58D should probably
be changed to this $90:C58D.
Code: [Select]
$80/877C B7 00       LDA [$00],y[$10:C58D]

I also made a couple of minor optimizations to some of the asm.
Code: [Select]
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

old
$00/8400 E2 20       SEP #$20                   A:1B37 X:0000 Y:00D6 D:0000 DB:00 S:1FE3 P:nVmxdIZC V:225 H:0894 F:00 C:03
$00/8402 AD EF 0F    LDA $0FEF       [$00:0FEF] A:1B37 X:0000 Y:00D6 D:0000 DB:00 S:1FE3 P:nVMxdIZC V:225 H:0916 F:00 C:04
$00/8405 8D 0D 21    STA $210D       [$00:210D] A:1BF9 X:0000 Y:00D6 D:0000 DB:00 S:1FE3 P:NVMxdIzC V:225 H:0948 F:00 C:04
$00/8408 AD F0 0F    LDA $0FF0       [$00:0FF0] A:1BF9 X:0000 Y:00D6 D:0000 DB:00 S:1FE3 P:NVMxdIzC V:225 H:0978 F:00 C:04
$00/840B 8D 0D 21    STA $210D       [$00:210D] A:1BFC X:0000 Y:00D6 D:0000 DB:00 S:1FE3 P:NVMxdIzC V:225 H:1010 F:00 C:04
$00/840E AD F7 0F    LDA $0FF7       [$00:0FF7] A:1BFC X:0000 Y:00D6 D:0000 DB:00 S:1FE3 P:NVMxdIzC V:225 H:1040 F:00 C:04
$00/8411 8D 0E 21    STA $210E       [$00:210E] A:1BEC X:0000 Y:00D6 D:0000 DB:00 S:1FE3 P:NVMxdIzC V:225 H:1072 F:00 C:04
$00/8414 AD F8 0F    LDA $0FF8       [$00:0FF8] A:1BEC X:0000 Y:00D6 D:0000 DB:00 S:1FE3 P:NVMxdIzC V:225 H:1102 F:00 C:04
$00/8417 8D 0E 21    STA $210E       [$00:210E] A:1B56 X:0000 Y:00D6 D:0000 DB:00 S:1FE3 P:nVMxdIzC V:225 H:1134 F:00 C:04
$00/841A AD F1 0F    LDA $0FF1       [$00:0FF1] A:1B56 X:0000 Y:00D6 D:0000 DB:00 S:1FE3 P:nVMxdIzC V:225 H:1164 F:00 C:04
$00/841D 8D 0F 21    STA $210F       [$00:210F] A:1B5E X:0000 Y:00D6 D:0000 DB:00 S:1FE3 P:nVMxdIzC V:225 H:1196 F:00 C:04
$00/8420 AD F2 0F    LDA $0FF2       [$00:0FF2] A:1B5E X:0000 Y:00D6 D:0000 DB:00 S:1FE3 P:nVMxdIzC V:225 H:1226 F:00 C:04
$00/8423 8D 0F 21    STA $210F       [$00:210F] A:1B8F X:0000 Y:00D6 D:0000 DB:00 S:1FE3 P:NVMxdIzC V:225 H:1258 F:00 C:04
$00/8426 AD F9 0F    LDA $0FF9       [$00:0FF9] A:1B8F X:0000 Y:00D6 D:0000 DB:00 S:1FE3 P:NVMxdIzC V:225 H:1288 F:00 C:04
$00/8429 8D 10 21    STA $2110       [$00:2110] A:1B0B X:0000 Y:00D6 D:0000 DB:00 S:1FE3 P:nVMxdIzC V:225 H:1320 F:00 C:04
$00/842C AD FA 0F    LDA $0FFA       [$00:0FFA] A:1B0B X:0000 Y:00D6 D:0000 DB:00 S:1FE3 P:nVMxdIzC V:225 H:1350 F:00 C:04
$00/842F 8D 10 21    STA $2110       [$00:2110] A:1B85 X:0000 Y:00D6 D:0000 DB:00 S:1FE3 P:NVMxdIzC V:226 H:0018 F:00 C:04
$00/8432 AD F3 0F    LDA $0FF3       [$00:0FF3] A:1B85 X:0000 Y:00D6 D:0000 DB:00 S:1FE3 P:NVMxdIzC V:226 H:0048 F:00 C:04
$00/8435 8D 11 21    STA $2111       [$00:2111] A:1BC7 X:0000 Y:00D6 D:0000 DB:00 S:1FE3 P:NVMxdIzC V:226 H:0080 F:00 C:04
$00/8438 AD F4 0F    LDA $0FF4       [$00:0FF4] A:1BC7 X:0000 Y:00D6 D:0000 DB:00 S:1FE3 P:NVMxdIzC V:226 H:0110 F:00 C:04
$00/843B 8D 11 21    STA $2111       [$00:2111] A:1B63 X:0000 Y:00D6 D:0000 DB:00 S:1FE3 P:nVMxdIzC V:226 H:0142 F:00 C:04
$00/843E AD FB 0F    LDA $0FFB       [$00:0FFB] A:1B63 X:0000 Y:00D6 D:0000 DB:00 S:1FE3 P:nVMxdIzC V:226 H:0172 F:00 C:04
$00/8441 8D 12 21    STA $2112       [$00:2112] A:1BC2 X:0000 Y:00D6 D:0000 DB:00 S:1FE3 P:NVMxdIzC V:226 H:0204 F:00 C:04
$00/8444 AD FC 0F    LDA $0FFC       [$00:0FFC] A:1BC2 X:0000 Y:00D6 D:0000 DB:00 S:1FE3 P:NVMxdIzC V:226 H:0234 F:00 C:04
$00/8447 8D 12 21    STA $2112       [$00:2112] A:1B41 X:0000 Y:00D6 D:0000 DB:00 S:1FE3 P:nVMxdIzC V:226 H:0266 F:00 C:04
$00/844A AD F5 0F    LDA $0FF5       [$00:0FF5] A:1B41 X:0000 Y:00D6 D:0000 DB:00 S:1FE3 P:nVMxdIzC V:226 H:0296 F:00 C:04
$00/844D 8D 13 21    STA $2113       [$00:2113] A:1B31 X:0000 Y:00D6 D:0000 DB:00 S:1FE3 P:nVMxdIzC V:226 H:0328 F:00 C:04
$00/8450 AD F6 0F    LDA $0FF6       [$00:0FF6] A:1B31 X:0000 Y:00D6 D:0000 DB:00 S:1FE3 P:nVMxdIzC V:226 H:0358 F:00 C:04
$00/8453 8D 13 21    STA $2113       [$00:2113] A:1B98 X:0000 Y:00D6 D:0000 DB:00 S:1FE3 P:NVMxdIzC V:226 H:0390 F:00 C:04
$00/8456 AD FD 0F    LDA $0FFD       [$00:0FFD] A:1B98 X:0000 Y:00D6 D:0000 DB:00 S:1FE3 P:NVMxdIzC V:226 H:0420 F:00 C:04
$00/8459 8D 14 21    STA $2114       [$00:2114] A:1BA0 X:0000 Y:00D6 D:0000 DB:00 S:1FE3 P:NVMxdIzC V:226 H:0452 F:00 C:04
$00/845C AD FE 0F    LDA $0FFE       [$00:0FFE] A:1BA0 X:0000 Y:00D6 D:0000 DB:00 S:1FE3 P:NVMxdIzC V:226 H:0482 F:00 C:04
$00/845F 8D 14 21    STA $2114       [$00:2114] A:1B70 X:0000 Y:00D6 D:0000 DB:00 S:1FE3 P:nVMxdIzC V:226 H:0514 F:00 C:04
$00/8462 C2 20       REP $20                    A:1B70 X:0000 Y:00D6 D:0000 DB:00 S:1FE3 P:nVMxdIzC V:226 H:0584 F:00 C:03
$00/8464 60          RTS                        A:1B70 X:0000 Y:00D6 D:0000 DB:00 S:1FE3 P:nVmxdIzC V:226 H:0606 F:00 C:06


new
$80/8400 A9 00 21    LDA #$2100                 A:AE5D X:0000 Y:00E8 D:0000 DB:80 S:1FE3 P:nVmxdIZC V:225 H:0818 F:00 C:03+
$80/8403 5B          TCD                        A:2100 X:0000 Y:00E8 D:0000 DB:80 S:1FE3 P:nVmxdIzC V:225 H:0836 F:00 C:02+
$80/8404 E2 20       SEP #$20                   A:2100 X:0000 Y:00E8 D:2100 DB:80 S:1FE3 P:nVmxdIzC V:225 H:0848 F:00 C:03
$80/8406 AD EF 0F    LDA $0FEF       [$80:0FEF] A:2100 X:0000 Y:00E8 D:2100 DB:80 S:1FE3 P:nVMxdIzC V:225 H:0866 F:00 C:04
$80/8409 85 0D       STA $0D         [$00:210D] A:2153 X:0000 Y:00E8 D:2100 DB:80 S:1FE3 P:nVMxdIzC V:225 H:0892 F:00 C:03-1
$80/840B AD F0 0F    LDA $0FF0       [$80:0FF0] A:2153 X:0000 Y:00E8 D:2100 DB:80 S:1FE3 P:nVMxdIzC V:225 H:0910 F:00 C:04
$80/840E 85 0D       STA $0D         [$00:210D] A:21A9 X:0000 Y:00E8 D:2100 DB:80 S:1FE3 P:NVMxdIzC V:225 H:0936 F:00 C:03-1
$80/8410 AD F7 0F    LDA $0FF7       [$80:0FF7] A:21A9 X:0000 Y:00E8 D:2100 DB:80 S:1FE3 P:NVMxdIzC V:225 H:0954 F:00 C:04
$80/8413 85 0E       STA $0E         [$00:210E] A:21E8 X:0000 Y:00E8 D:2100 DB:80 S:1FE3 P:NVMxdIzC V:225 H:0980 F:00 C:03-1
$80/8415 AD F8 0F    LDA $0FF8       [$80:0FF8] A:21E8 X:0000 Y:00E8 D:2100 DB:80 S:1FE3 P:NVMxdIzC V:225 H:0998 F:00 C:04
$80/8418 85 0E       STA $0E         [$00:210E] A:21D4 X:0000 Y:00E8 D:2100 DB:80 S:1FE3 P:NVMxdIzC V:225 H:1024 F:00 C:03-1
$80/841A AD F1 0F    LDA $0FF1       [$80:0FF1] A:21D4 X:0000 Y:00E8 D:2100 DB:80 S:1FE3 P:NVMxdIzC V:225 H:1042 F:00 C:04
$80/841D 85 0F       STA $0F         [$00:210F] A:21D4 X:0000 Y:00E8 D:2100 DB:80 S:1FE3 P:NVMxdIzC V:225 H:1068 F:00 C:03-1
$80/841F AD F2 0F    LDA $0FF2       [$80:0FF2] A:21D4 X:0000 Y:00E8 D:2100 DB:80 S:1FE3 P:NVMxdIzC V:225 H:1086 F:00 C:04
$80/8422 85 0F       STA $0F         [$00:210F] A:214A X:0000 Y:00E8 D:2100 DB:80 S:1FE3 P:nVMxdIzC V:225 H:1112 F:00 C:03-1
$80/8424 AD F9 0F    LDA $0FF9       [$80:0FF9] A:214A X:0000 Y:00E8 D:2100 DB:80 S:1FE3 P:nVMxdIzC V:225 H:1130 F:00 C:04
$80/8427 85 10       STA $10         [$00:2110] A:21CA X:0000 Y:00E8 D:2100 DB:80 S:1FE3 P:NVMxdIzC V:225 H:1156 F:00 C:03-1
$80/8429 AD FA 0F    LDA $0FFA       [$80:0FFA] A:21CA X:0000 Y:00E8 D:2100 DB:80 S:1FE3 P:NVMxdIzC V:225 H:1174 F:00 C:04
$80/842C 85 10       STA $10         [$00:2110] A:2145 X:0000 Y:00E8 D:2100 DB:80 S:1FE3 P:nVMxdIzC V:225 H:1200 F:00 C:03-1
$80/842E AD F3 0F    LDA $0FF3       [$80:0FF3] A:2145 X:0000 Y:00E8 D:2100 DB:80 S:1FE3 P:nVMxdIzC V:225 H:1218 F:00 C:04
$80/8431 85 11       STA $11         [$00:2111] A:2105 X:0000 Y:00E8 D:2100 DB:80 S:1FE3 P:nVMxdIzC V:225 H:1244 F:00 C:03-1
$80/8433 AD F4 0F    LDA $0FF4       [$80:0FF4] A:2105 X:0000 Y:00E8 D:2100 DB:80 S:1FE3 P:nVMxdIzC V:225 H:1262 F:00 C:04
$80/8436 85 11       STA $11         [$00:2111] A:2102 X:0000 Y:00E8 D:2100 DB:80 S:1FE3 P:nVMxdIzC V:225 H:1288 F:00 C:03-1
$80/8438 AD FB 0F    LDA $0FFB       [$80:0FFB] A:2102 X:0000 Y:00E8 D:2100 DB:80 S:1FE3 P:nVMxdIzC V:225 H:1306 F:00 C:04
$80/843B 85 12       STA $12         [$00:2112] A:21A2 X:0000 Y:00E8 D:2100 DB:80 S:1FE3 P:NVMxdIzC V:225 H:1332 F:00 C:03-1
$80/843D AD FC 0F    LDA $0FFC       [$80:0FFC] A:21A2 X:0000 Y:00E8 D:2100 DB:80 S:1FE3 P:NVMxdIzC V:225 H:1350 F:00 C:04
$80/8440 85 12       STA $12         [$00:2112] A:2171 X:0000 Y:00E8 D:2100 DB:80 S:1FE3 P:nVMxdIzC V:226 H:0012 F:00 C:03-1
$80/8442 AD F5 0F    LDA $0FF5       [$80:0FF5] A:2171 X:0000 Y:00E8 D:2100 DB:80 S:1FE3 P:nVMxdIzC V:226 H:0030 F:00 C:04
$80/8445 85 13       STA $13         [$00:2113] A:2121 X:0000 Y:00E8 D:2100 DB:80 S:1FE3 P:nVMxdIzC V:226 H:0056 F:00 C:03-1
$80/8447 AD F6 0F    LDA $0FF6       [$80:0FF6] A:2121 X:0000 Y:00E8 D:2100 DB:80 S:1FE3 P:nVMxdIzC V:226 H:0074 F:00 C:04
$80/844A 85 13       STA $13         [$00:2113] A:2190 X:0000 Y:00E8 D:2100 DB:80 S:1FE3 P:NVMxdIzC V:226 H:0100 F:00 C:03-1
$80/844C AD FD 0F    LDA $0FFD       [$80:0FFD] A:2190 X:0000 Y:00E8 D:2100 DB:80 S:1FE3 P:NVMxdIzC V:226 H:0118 F:00 C:04
$80/844F 85 14       STA $14         [$00:2114] A:21B8 X:0000 Y:00E8 D:2100 DB:80 S:1FE3 P:NVMxdIzC V:226 H:0144 F:00 C:03-1
$80/8451 AD FE 0F    LDA $0FFE       [$80:0FFE] A:21B8 X:0000 Y:00E8 D:2100 DB:80 S:1FE3 P:NVMxdIzC V:226 H:0162 F:00 C:04
$80/8454 85 14       STA $14         [$00:2114] A:21FC X:0000 Y:00E8 D:2100 DB:80 S:1FE3 P:NVMxdIzC V:226 H:0188 F:00 C:03-1
$80/8456 C2 20       REP $20                    A:21FC X:0000 Y:00E8 D:2100 DB:80 S:1FE3 P:NVMxdIzC V:226 H:0206 F:00 C:03
$80/8458 A9 00 00    LDA #$0000                 A:21FC X:0000 Y:00E8 D:2100 DB:80 S:1FE3 P:NVmxdIzC V:226 H:0224 F:00 C:03+
$80/845B 5B          TCD                        A:0000 X:0000 Y:00E8 D:2100 DB:80 S:1FE3 P:nVmxdIZC V:226 H:0242 F:00 C:02+
$80/845C 60          RTS                        A:0000 X:0000 Y:00E8 D:0000 DB:80 S:1FE3 P:nVmxdIZC V:226 H:0254 F:00 C:06

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

old
$80/833B F4 00 00    PEA $0000                  A:81E3 X:0994 Y:01E8 D:1DF8 DB:80 S:1FE6 P:NVmxdIzC V:225 H:0236 F:00 C:05
$80/833E 2B          PLD                        A:81E3 X:0994 Y:01E8 D:1DF8 DB:80 S:1FE4 P:NVmxdIzC V:225 H:0270 F:00 C:05


new
$80/833B A9 00 00    LDA #$0000                 A:5E84 X:06F2 Y:048A D:1DF8 DB:80 S:1FE6 P:nVmxdIzC V:225 H:0244 F:01 C:03-2
$80/833E 5B          TCD                        A:0000 X:06F2 Y:048A D:1DF8 DB:80 S:1FE6 P:nVmxdIZC V:225 H:0262 F:01 C:02-3

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

old
$80/83DB AD 21 00    LDA $0021       [$80:0021] A:0000 X:FFFE Y:0003 D:0000 DB:80 S:1FE7 P:NvmxdIzC V:235 H:0142 F:17 C:05
$80/83DE 8D 25 00    STA $0025       [$80:0025] A:0000 X:FFFE Y:0003 D:0000 DB:80 S:1FE7 P:nvmxdIZC V:235 H:0176 F:17 C:05
$80/83E1 AD 23 00    LDA $0023       [$80:0023] A:0000 X:FFFE Y:0003 D:0000 DB:80 S:1FE7 P:nvmxdIZC V:235 H:0210 F:17 C:05
$80/83E4 8D 27 00    STA $0027       [$80:0027] A:0000 X:FFFE Y:0003 D:0000 DB:80 S:1FE7 P:nvmxdIZC V:235 H:0244 F:17 C:05
$80/83E7 AD 31 00    LDA $0031       [$80:0031] A:0000 X:FFFE Y:0003 D:0000 DB:80 S:1FE7 P:nvmxdIZC V:235 H:0278 F:17 C:05
$80/83EA 8D 35 00    STA $0035       [$80:0035] A:0000 X:FFFE Y:0003 D:0000 DB:80 S:1FE7 P:nvmxdIZC V:235 H:0312 F:17 C:05
$80/83ED AD 33 00    LDA $0033       [$80:0033] A:0000 X:FFFE Y:0003 D:0000 DB:80 S:1FE7 P:nvmxdIZC V:235 H:0346 F:17 C:05
$80/83F0 8D 37 00    STA $0037       [$80:0037] A:0000 X:FFFE Y:0003 D:0000 DB:80 S:1FE7 P:nvmxdIZC V:235 H:0380 F:17 C:05
$80/83F3 AD 29 00    LDA $0029       [$80:0029] A:0000 X:FFFE Y:0003 D:0000 DB:80 S:1FE7 P:nvmxdIZC V:235 H:0414 F:17 C:05
$80/83F6 8D 2D 00    STA $002D       [$80:002D] A:0000 X:FFFE Y:0003 D:0000 DB:80 S:1FE7 P:nvmxdIZC V:235 H:0448 F:17 C:05
$80/83F9 AD 2B 00    LDA $002B       [$80:002B] A:0000 X:FFFE Y:0003 D:0000 DB:80 S:1FE7 P:nvmxdIZC V:235 H:0482 F:17 C:05
$80/83FC 8D 2F 00    STA $002F       [$80:002F] A:0000 X:FFFE Y:0003 D:0000 DB:80 S:1FE7 P:nvmxdIZC V:235 H:0516 F:17 C:05
$80/83FF 60          RTS                        A:0000 X:FFFE Y:0003 D:0000 DB:80 S:1FE7 P:nvmxdIZC V:235 H:0590 F:17 C:06


new
$80/83DB A5 21       LDA $21         [$00:0021] A:0000 X:FFFE Y:0001 D:0000 DB:80 S:1FE7 P:NvmxdIzC V:235 H:0136 F:07 C:04-1
$80/83DD 85 25       STA $25         [$00:0025] A:0000 X:FFFE Y:0001 D:0000 DB:80 S:1FE7 P:nvmxdIZC V:235 H:0164 F:07 C:04-1
$80/83DF A5 23       LDA $23         [$00:0023] A:0000 X:FFFE Y:0001 D:0000 DB:80 S:1FE7 P:nvmxdIZC V:235 H:0192 F:07 C:04-1
$80/83E1 85 27       STA $27         [$00:0027] A:0000 X:FFFE Y:0001 D:0000 DB:80 S:1FE7 P:nvmxdIZC V:235 H:0220 F:07 C:04-1
$80/83E3 A5 31       LDA $31         [$00:0031] A:0000 X:FFFE Y:0001 D:0000 DB:80 S:1FE7 P:nvmxdIZC V:235 H:0248 F:07 C:04-1
$80/83E5 85 35       STA $35         [$00:0035] A:0000 X:FFFE Y:0001 D:0000 DB:80 S:1FE7 P:nvmxdIZC V:235 H:0276 F:07 C:04-1
$80/83E7 A5 33       LDA $33         [$00:0033] A:0000 X:FFFE Y:0001 D:0000 DB:80 S:1FE7 P:nvmxdIZC V:235 H:0304 F:07 C:04-1
$80/83E9 85 37       STA $37         [$00:0037] A:0000 X:FFFE Y:0001 D:0000 DB:80 S:1FE7 P:nvmxdIZC V:235 H:0332 F:07 C:04-1
$80/83EB A5 29       LDA $29         [$00:0029] A:0000 X:FFFE Y:0001 D:0000 DB:80 S:1FE7 P:nvmxdIZC V:235 H:0360 F:07 C:04-1
$80/83ED 85 2D       STA $2D         [$00:002D] A:0000 X:FFFE Y:0001 D:0000 DB:80 S:1FE7 P:nvmxdIZC V:235 H:0388 F:07 C:04-1
$80/83EF A5 2B       LDA $2B         [$00:002B] A:0000 X:FFFE Y:0001 D:0000 DB:80 S:1FE7 P:nvmxdIZC V:235 H:0416 F:07 C:04-1
$80/83F1 85 2F       STA $2F         [$00:002F] A:0000 X:FFFE Y:0001 D:0000 DB:80 S:1FE7 P:nvmxdIZC V:235 H:0444 F:07 C:04-1
$80/83F3 60          RTS                        A:0000 X:FFFE Y:0001 D:0000 DB:80 S:1FE7 P:nvmxdIZC V:235 H:0472 F:07 C:06

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


This "C:04-1" means 1 less cycle used.

I looked at some of the compression when the tiles get loaded in the 1st dungeon and I removed some of the compression.
https://www.mediafire.com/file/of5w7v0s43l9i19/Arcana_Optimizations.rar/file

The data at $10:C58D-$10:C9DF that gets decompressed took about 791 scanlines to decompress and load into wram. Now it takes about 33 scanlines to load into wram.

July 27, 2021, 08:29:42 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
I went ahead and removed the other compression for walking forward and backwards. Here is a patch for it:
https://www.mediafire.com/file/13urnvqrcvo6s6s/Arcana_Optimizations_%25232.rar/file
« Last Edit: July 27, 2021, 08:29:42 pm by slidelljohn »

Sarah Shinespark

  • Full Member
  • ***
  • Posts: 154
  • Creator of Arcana: Seal of Rimsala
    • View Profile
Re: Arcana - Seal of Rimsala! (SNES)
« Reply #212 on: July 27, 2021, 08:47:34 pm »
I think there might be a few more things that need to be changed with the fastrom patch.
Probably wont make much of a difference but things like this $10:C58D should probably
be changed to this $90:C58D.
Code: [Select]
$80/877C B7 00       LDA [$00],y[$10:C58D]

Thanks, got it on my 3rd try. (My first try initiated p a r t y  t i m e). I tracked down RAM $1DFA (used for the bank), ASM jumped from 80/8772 and ORA $80.


Quote
I also made a couple of minor optimizations to some of the asm.
This "C:04-1" means 1 less cycle used.

Whoa. How do you display C instead of FC in the logs?


Quote
I looked at some of the compression when the tiles get loaded in the 1st dungeon and I removed some of the compression.
https://www.mediafire.com/file/of5w7v0s43l9i19/Arcana_Optimizations.rar/file

The data at $10:C58D-$10:C9DF that gets decompressed took about 791 scanlines to decompress and load into wram. Now it takes about 33 scanlines to load into wram.

 :o  Are you a wizard? That's unbelievable!
...Oh, you expanded the ROM too? My mod is using x100000 - x1037FF for the uncompressed maps, so I may have to put your code in a different bank or location. Eventually planning on re-compressing the maps, but that's waiting until I can code a map editor which is a ways off.

slidelljohn

  • Sr. Member
  • ****
  • Posts: 352
    • View Profile
Re: Arcana - Seal of Rimsala! (SNES)
« Reply #213 on: July 27, 2021, 09:04:14 pm »
Whoa. How do you display C instead of FC in the logs?
I modified the bsnes plus debugger to display the cycles and I removed nearly all of the slowdown caused by
tracing code in it. Its still needs some work but it took about 10,000 lines of code to remove the slowdown
while tracing. Im not sure what the FC is for.

:o  Are you a wizard? That's unbelievable!
...Oh, you expanded the ROM too? My mod is using x100000 - x1037FF for the uncompressed maps, so I may have to put your code in a different bank or location. Eventually planning on re-compressing the maps, but that's waiting until I can code a map editor which is a ways off.
Thanks! :beer:

I just put the code there to see how it works. You can definitely put it anywhere that works best for you. The compression
looks like it uses RLE and a sliding window so its not too complex if you wanted to recompress things but I would probably
remove all of the compression. Removing compression not only speeds up the game in some spots but it would also free up wram.

July 27, 2021, 09:07:29 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
Thanks, got it on my 3rd try. (My first try initiated p a r t y  t i m e). I tracked down RAM $1DFA (used for the bank), ASM jumped from 80/8772 and ORA $80.

Probably dont need the ora $80 since the pointers have the bank:
Code: [Select]
$838160-$8381E7 = decompression pointers

8D C5 8D C5 72 DE 72 DE 47 E0 8D C5 8D C5 8D C5

8D C5 8D C5 8D C5 8D C5 8D C5 8D C5 8D C5 8D C5

5F E3 5F E3 5F E3 5F E3 5F E3 8D C5 8D C5 8D C5

8D C5 8D C5 8D C5 8D C5 8D C5 8D C5 5F E3 5F E3

5F E3 5F E3


10 00 10 00 10 00 10 00 13 00 10 00

10 00 10 00 10 00 10 00 10 00 10 00 10 00 10 00

10 00 10 00 12 00 12 00 12 00 12 00 12 00 10 00

10 00 10 00 10 00 10 00 10 00 10 00 10 00 10 00

12 00 12 00 12 00 12 00


1st group has the low high byte and the second group has the bank.

Sarah Shinespark

  • Full Member
  • ***
  • Posts: 154
  • Creator of Arcana: Seal of Rimsala
    • View Profile
Re: Arcana - Seal of Rimsala! (SNES)
« Reply #214 on: July 27, 2021, 09:59:22 pm »
I modified the bsnes plus debugger to display the cycles and I removed nearly all of the slowdown caused by
tracing code in it. Its still needs some work but it took about 10,000 lines of code to remove the slowdown
while tracing. Im not sure what the FC is for.
10,000 lines  :o :o


Quote
Thanks! :beer:

I just put the code there to see how it works. You can definitely put it anywhere that works best for you. The compression
looks like it uses RLE and a sliding window so its not too complex if you wanted to recompress things but I would probably
remove all of the compression. Removing compression not only speeds up the game in some spots but it would also free up wram.

There's a tool written by Raeven0 called exhal that can de/re-compress HAL games, but I had some help finding the sections last time. I'll have to fiddle around with it with the sections I do have (the maps).

EDIT: Took me awhile but I read up on WRAM and realized you had a pointer table to the next bank, finally relocated the code to $A1 to not conflict with SOR; now to remove all the filler FF's so my $A0 code doesn't get overwritten.

Quote
Probably dont need the ora $80 since the pointers have the bank:
Code: [Select]
$838160-$8381E7 = decompression pointers

8D C5 8D C5 72 DE 72 DE 47 E0 8D C5 8D C5 8D C5

8D C5 8D C5 8D C5 8D C5 8D C5 8D C5 8D C5 8D C5

5F E3 5F E3 5F E3 5F E3 5F E3 8D C5 8D C5 8D C5

8D C5 8D C5 8D C5 8D C5 8D C5 8D C5 5F E3 5F E3

5F E3 5F E3


10 00 10 00 10 00 10 00 13 00 10 00

10 00 10 00 10 00 10 00 10 00 10 00 10 00 10 00

10 00 10 00 12 00 12 00 12 00 12 00 12 00 10 00

10 00 10 00 10 00 10 00 10 00 10 00 10 00 10 00

12 00 12 00 12 00 12 00


1st group has the low high byte and the second group has the bank.

How the heck did you find where each entry in the bank list goes?
All right, I'm stuck. SOR already has a patch messing with this section, so I have to find a way to remove it. But also I'm trying to relocate the data from bank $A0/A1 to $A2/A3; thought I got it but it just slowed... the game down. Now I figure it'd be easier to just re-compress the maps in $A0. Down side editing them will be more steps. But if I ever make a full blown editor it can call exhal/inhal for me.
« Last Edit: August 01, 2021, 12:21:11 am by Sarah Shinespark »

slidelljohn

  • Sr. Member
  • ****
  • Posts: 352
    • View Profile
Re: Arcana - Seal of Rimsala! (SNES)
« Reply #215 on: August 01, 2021, 02:40:05 am »
How the heck did you find where each entry in the bank list goes?

I'm not sure if this answers your question but this is how I found where the bank goes.
Code: [Select]
$83/8F22 BF 60 81 83 LDA $838160,x[$83:8160] //high/low pointer
$83/8F26 48          PHA                     
$83/8F27 BF A4 81 83 LDA $8381A4,x[$83:81A4] //bank pointer, 4th byte is not used

Manamiko

  • Jr. Member
  • **
  • Posts: 19
    • View Profile
Re: Arcana - Seal of Rimsala! (SNES)
« Reply #216 on: August 01, 2021, 06:21:10 pm »
This may have already been answered, but was the usecase of armor ever fixed so that it actually reduces damage? Also, I would love to see a minor side patch that gives the option of a hardtype. IE: All monster damage increased x3, and bosses x4. I know, as if the game wasn't already hard enough for some players.

Sarah Shinespark

  • Full Member
  • ***
  • Posts: 154
  • Creator of Arcana: Seal of Rimsala
    • View Profile
Re: Arcana - Seal of Rimsala! (SNES)
« Reply #217 on: August 02, 2021, 01:26:28 am »
This may have already been answered, but was the usecase of armor ever fixed so that it actually reduces damage? Also, I would love to see a minor side patch that gives the option of a hardtype. IE: All monster damage increased x3, and bosses x4. I know, as if the game wasn't already hard enough for some players.
You should be able to just patch Arcana Hardtype on top, though I haven't checked it for patch conflicts. If you want a hardtype from me, I could always remove the Map option for ya. Hope you have graph paper!!  >:D

I haven't changed the armor damage formula, but I did make wearing accessories worthwhile; vanilla gave unshielded characters 52 mdef (endgame level) and 20% crit chance for unarmed. I could raise the amount armor absorbs, but chose to focus more on offering race resistances that you can check in the menu.


I'm not sure if this answers your question but this is how I found where the bank goes.
Code: [Select]
$83/8F22 BF 60 81 83 LDA $838160,x[$83:8160] //high/low pointer
$83/8F26 48          PHA                     
$83/8F27 BF A4 81 83 LDA $8381A4,x[$83:81A4] //bank pointer, 4th byte is not used
Ah I meant, the X value seems to come from whatever it's loading, and you changed the whole table. It's like you investigated every possible graphic it could load.

I'm working on re-compressing SOR's maps with inhal and Python, but sometimes it gets inserted with a larger size and it breaks the map.  :( Especially true with maps 4 and 5 (Crimson Valley and Forest of Doubt) which are MOSTLY BLANK WHY R U DOIN THIS  :-\ Maybe I could relocate them so they aren't contiguous? They're about $1000 bytes (4096)... huh, how about that. There's $500 bytes free space afterwards.

So I can relocate the maps to the same bank and hopefully they'll just read until the FF. Will have to update my Python script to get the pointers from the pointer table rather than hard-coding them.
« Last Edit: August 02, 2021, 02:15:54 am by Sarah Shinespark »

slidelljohn

  • Sr. Member
  • ****
  • Posts: 352
    • View Profile
Re: Arcana - Seal of Rimsala! (SNES)
« Reply #218 on: August 02, 2021, 02:45:34 am »
I only tested the 1st item in the pointer table (X: = 0). I didn’t test any of the other items in the table. I did test each pointer that was different (I think there was 4) by changing the 1st item to each different pointer.

Manamiko

  • Jr. Member
  • **
  • Posts: 19
    • View Profile
Re: Arcana - Seal of Rimsala! (SNES)
« Reply #219 on: August 04, 2021, 08:25:37 pm »
Hey Sarah. So I went ahead and applied the SoR patch, the all maps, and then the hard type patch that exists here on the website. After having Teefa join, i bought 2 short swords and went to equip them. Upon entering the equipment screen, it immediately flashed blue and went black, unresponsive. I got a fresh rom, applied SoR and all maps, but no hard type. It works perfectly at the moment. So it looks like no hard type for now, haha.