Cuyler36 / ACSE

A Save Editor for the Animal Crossing main series games written in C#
MIT License
197 stars 34 forks source link

Support for granular catalog modifications #42

Open billybasso opened 5 years ago

billybasso commented 5 years ago

Hey! This seems like a great tool! However, I'm curious -- what would be involved in figuring out the order of items in the catalog data and adding support for adding/clearing them individually? I'm trying to use your tool to fixup a savefile, and am considering adding the functionality myself. Any insight would be greatly appreciated!

This is for the GCN version btw

Cuyler36 commented 5 years ago

Hey there! Thanks for the suggestion! I've actually done some minor work that relates to this with the encyclopedia. The encyclopedia is part of the catalog (but not shown as it) in the first gen titles and Wild World. If you take a look here you can see what would have to be done for granular control over the catalog: https://github.com/Cuyler36/ACSE/blob/master/Classes/Encyclopedia.cs

I can look into how their bit order is determined in the meantime!

billybasso commented 5 years ago

Cool cool. I see what your doing. What do the masked out bits represent? Also how did you determine the order of the fish/insects in the encyclopedia? The don’t seem to match the order that’s displayed in game.

Cuyler36 commented 5 years ago

After determining where the bitmap was I used Dolphin's debugger to set each bit one at a time to see what insect they corresponded to. This wouldn't have to be done for furniture though, as I'm pretty sure it's in order. The masked out bits weren't part of the encyclopedia but might be part of the catalog so I preserved them just in case.

billybasso commented 5 years ago

I spent part of this weekend using dolphin to poke memory and managed to map the entire gamecube Animal Crossing catalog. I don't know if you already started doing this, but maybe it's helpful:

https://pastebin.com/RSgCJM7P

Cuyler36 commented 5 years ago

That's really useful! I'll look into adding it in soon. Thanks for your work! Why are almost all of the entries set to a value 0x00? That value is supposed to be the value to write into RAM (it's a map of flag collection bits). For each item, a bit should be set. So you'd want 0xFF for most of them I think.

billybasso commented 5 years ago

Yeah sorry I forgot to mention that — those values currently don’t mean anything. I was just testing them manually at one point, and forgot to change it before sending it to you. They should all be 0xFF, unless you want to skip some of the blank spots I found.

Cuyler36 commented 5 years ago

Just wanted to update you on this. I'll be looking into adding this in the coming weeks! I don't have an exact estimate as I plan on doing a lot of code refactoring, however it'll get done.

billybasso commented 5 years ago

I’m excited to hear that. Thanks for the update!

On Nov 1, 2018, at 10:41 PM, Cuyler36 notifications@github.com wrote:

Just wanted to update you on this. I'll be looking into adding this in the coming weeks! I don't have an exact estimate as I plan on doing a lot of code refactoring, however it'll get done.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or mute the thread.