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

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Kea

Pages: 1 [2] 3
ROM Hacking Discussion / Re: Screenshots
« on: March 05, 2017, 10:18:04 am »
You could move the cost over to the stock/equipped window, I think. It'd give you more room to work with, especially if you changed Equipped to Worn and put the stock and worn numbers in the same row as their labels. This would allow you to add hits or other relevant fields (up to six).

That's good idea, I might go for that. I don't think more than five displayed fields will be practical or helpful unless I can figure out how to display elemental properties ingame (that'll go in the readme most likely). Will experiment with placement some more.

And yeah, I'm not fond of FF1's font either.

ROM Hacking Discussion / Re: Screenshots
« on: March 01, 2017, 04:12:07 pm »
Thanks! I had considered displaying the weapon's evade bonus, replacing Crit Rate or as a fourth stat, but the Evade boost of a weapon is visible when you equip it, while Crit isn't (yet anyway). Adding a fourth displayed stat looked too cluttered and would break symmetry with armor displays which don't have a simple fourth stat to display.

Most of the rest of my FF1 work is more mechanics-oriented, so there's not much in the way of screenshots to show of it.

ROM Hacking Discussion / Re: Screenshots
« on: February 28, 2017, 11:56:07 pm »
Getting a hang of FF1a's text routines. Before:

And after:

(The "-1" means that the Mythril Hammer reduces your number of hits by one, another feature I've added)

I thought having to 'pull back' with the d-pad to lift something was a nice touch personally. But not having to equip the Bracelet every time is a huge improvement - with only two item slots the less you need to switch the better.

Those new graphics look gorgeous. Helps that LA is maybe my favorite Zelda too. Looking forward to seeing this progress!

I'm crying uncle on the Divide bug for the moment...just can't figure out how to solve it.  :-\

I'm pretty sure the relevant routine is at $5F8EE / 17:B8DE, which is executed when a monster tries to split, but banging my head against it I haven't gotten any further. Too rusty maybe.

The multiply bug is my fault; I missed that while trying to root out all the instances of IRQ effects in FF3. If somebody has a save file or savestate near a place with splitting enemies I can look into it in the next couple of days.

Can confirm, that behaviour occurs on every version of the game.

This page has an in-depth description of the Item Upgrade Glitch.

It's possible to trigger it accidentally, and it can do things like remove plot items from your inventory. If you want to fix the glitch, write  B00C at $6BFD7; that will fix the alignment when the game attempts go give you an item you already have 99 of.

This is really cool :thumbsup:

I have a soft spot for the brevity of the AWJ script, but a definitive translation that renders everything as it was meant to be shown is a great thing to make.

Newcomer's Board / Re: Kid Icarus, adding SRAM save function
« on: January 09, 2016, 01:57:41 pm »
People upload mapper hacks without including source+doc? That's missing 90% of the point...

But in general, it's best to work with the original mapper if at all possible. Using a different mapper can complicate your work and introduce new bugs, especially if you're using a mapper patch and don't know what it's actually modifying.

ROM Hacking Discussion / Re: AD0220's FF3 and MMC5
« on: January 09, 2016, 02:25:03 am »
Only other mapper to support 1MB PRG-ROM that's compatible with MMC3's features that I know of is mapper 245.

I could take a look at this as well; most of FF3's bankswapping is done using one of three routines in the fixed banks - most likely all bank swaps except those related to music loading are done there - so depending on how ad0220's patcher works it could overwrite code there; alternatively it might be introducing new bankswap code to load in the expanded text data. Though that wouldn't fit with how it works perfectly on Nestopia.

Only problem for me is that I can't seem to download the ad0220 translation, either on Firefox or IE - the connection times out instantly. It's the only file on the site that does this to me too.

Newcomer's Board / Re: What is a MMC Mapper?
« on: January 03, 2016, 12:06:24 pm »
Mapper 245 is a Chinese MMC3 clone that allows for 1024kB of PRG-ROM by sacrificing bankable CHR-RAM, fixing it to banks 0,2,4,5,6,7. Since FF3 fixes its CHR banks to those values anyway it's a good fit, but personally if you're going to use a pirate mapper you might as well just use oversize MMC3 or MMC5+CHR-RAM - none of those have any official support.

Compressing FF3's graphics would indeed be the better option, as you say.

ROM Hacking Discussion / FF3j MMC5 conversion
« on: December 25, 2015, 11:34:22 pm »
I've made an IPS patch (link) for FFIII on the Famicom that changes the mapper from MMC3 to MMC5. I haven't playtested the whole game to check for errors but am 99% sure it works correctly. I made this patch to challenge myself, but maybe others will be interested too.

Original message in the spoiler; I've since fixed the problems described inside.
I'm attempting to convert FFIII from the MMC3 to MMC5 (mostly for the extra PRG-ROM and the challenge); it mostly works perfectly but I've run into a snag with battle scenes. When they begin, instead of the battle music the victory music plays at several times the normal tempo and the screen looks like this:
The BG goes crazy and displays garbage data or correct gfx in the wrong places; the player character sprites function normally at first but are slowly overwritten by garbage pixels. The battle itself is fully functional - you can input commands like normal and once the battle finishes you return to the map screen with everything looking as it should. It's just the audio and graphics that are wrong. I haven't been able to pin down exactly what's causing the problem but I believe it to be related to the NMI interrupt used for battle*:
Code: [Select]
$07FB67 - NMI interrupt (battle scenes)
1F:FB57 48 PHA
48 PHA
F012 BEQ $FB71
20CBF8 JSR $F8CB @Storing some values from ($06,$09,$0C,05) -> ($2000,$2001,$2005,$2005)
A503 LDA $0003
8502 STA $0002
8D0352 STA $5203 @Set scanline target #
A501 LDA $01 @Load byte indicating whether to enable IRQs
18 CLC
8D0452 STA $5204 @Enable IRQs if bit was 00 set, or disable if clear
1F:FB71 A900 LDA #$00
8505 STA $0005
68 PLA
68 PLA
40 RTI

The unmodified routine looks like this:
Code: [Select]
1F:FB57 48 PHA
48 PHA
F012 BEQ $FB71
20CBF8 JSR $F8CB @Storing some values from ($06,$09,$0C,05) -> ($2000,$2001,$2005,$2005)
A503 LDA $0003
8502 STA $0002
8D00C0 STA $C000 @Set scanline target #
8D01E0 STA $C001 @Reset IRQ counter
A601 LDX $0001
9D00E0 STA $E000,X @Enable IRQs if bit 00 clear, or disable if set
1F:FB71 A900 LDA #$00
8505 STA $0005
68 PLA
68 PLA
40 RTI

If I change the STA $5204 to a LDA, or never set bit 07, the battle screen looks like this:
Menu BG is missing and there is some garbage in its place, but everything else functions perfectly.

If it would help, I have a .zip folder here which contains all my notes on the mapper-related routines plus notes on the changes I've made so far, an IPS patch for the conversion to apply to the translated ROM, a movie file demonstrating what happens when you enter battle, and a savestate just before the first battle of the game.

*FF3's NMI and BRK interrupt vectors point to $100 and $103 in memory, respectively, allowing the program to modify them at runtime. They're either just RTI or a JUMP to some other code in the fixed banks.

Okay, I figured out the problem: I forgot to modify the BRK interrupt (at $7FB40) to use MMC5 registers; figures it'd be a silly mistake like that. Now battles display properly and sound plays back at the normal speed. However, I still have the problem where regular battles play the victory music instead of the battle music. Not sure what to do there...

Edit: Hah, and in boss battles the Tozas music plays. Looks like all battle music is getting their ID shifted for some reason.

Turns out I missed a one-time bankswitch routine used to load music banks. Swapped it to use MMC5 registers and params, and now the right tune plays!

Without going into too much detail, FF3DS is a significant departure from the NES version - overall for the worse IMO, it feels much slower and grindier to me.

Saying that the GBA version of FF4 is "full of"  memes is a bit of an exaggeration. There's one line by Cid early on and then maybe two or three incidental NPCs that involve memes? Still I'm glad you've gotten to play a great game like FF4 for the first time.

There is a small oversight there in that items without icons at the beginning instead have the first letter overwritten.

This is because in the original Japanese version, items that don't use an icon instead have a space placed at the start of their text string. The English translation doesn't have enough long enough strings for item names to give up one character to a space, so you end up with the first letter being overwritten. Fixing this may be possible for most items by editing the text entries to make more aggressive use of the two-letter tiles, freeing up room to add a space in; some items might need all nine characters though.

As for the other bugs, the Item Upgrade trick flows from a simple bug, which ought to be a simple fix. I may take a look at it myself.

ROM Hacking Discussion / Re: Final Fantasy III Maeson Mix (Famicom)
« on: December 08, 2015, 07:36:31 pm »
Glad to hear it!

Another thing I discovered is that the Magic Power byte in monster ROM data is not simply copied for Intelligence and Spirit. Instead, the top half of the byte is used for Spirit and the bottom half is used for Intelligence. Because each half can only come to 0x0F (15) by itself, these values are multiplied by six to give the actual Int/Spi values.

As an example, take a monster with a Magic Power byte of 0xC2. It's Spirit will be (12*6) = 72, and its Intelligence will be (2*6) = 12. You can see how, if you aren't aware of the system, this can give monsters whose spell damage is much lower than anticipated.

ROM Hacking Discussion / Re: Final Fantasy III Maeson Mix (Famicom)
« on: December 07, 2015, 06:22:02 pm »
While trying to make sense of the debugger in  Fceux some time ago, I was playing around with it and the game genie encoder while fighting when i saw these adresses:

8395:E6 74
8397:E6 52

By changing E6 for other value you can modify the defense (8395) and evasion (8397). I don't know how it works exactly (again, i'm horrible), but lowering to something like C6, B6 or A6 makes it so you don't lose defense or evasion. Seems you can't really choose what percent of defense you lose, it's just 0% or 100%, at least as far as I know with my insufficient skills. Changing it to D6 for example has no effect.

Okay, I took a look at the code in that area, and figured out what it does. The section you found is responsible for setting the "party is running" flag in RAM. It checks the command being issued by each member of the party,  counts how many are using Run (0x6) or Escape (0x7), and stores that count to RAM. Later at $61F17 the game sets a flag if that count was at least one. One thing you could do here would be to make Escape not count as running for the purposes of making you defenceless.

Anyway, $6207B is where attack and defence changes from running are handled. If the party is running, an attacking monster gains double Attack and the target has zero Defence. I haven't found the code that zeroes out your Evade multiplier yet though. Anyway, here are some changes you can make:

$6207F: Write E6 to disable double Attack power
$62085: Write 46 26 to halve Defence instead of reducing to zero, write E6 26 to make no change to Defence while running

ROM Hacking Discussion / Re: Final Fantasy III Maeson Mix (Famicom)
« on: December 06, 2015, 03:38:21 am »
Long answer: The "running" that was brought up in this thread was  about running away from battles, as in the vanilla game it cuts your defense and evasion to 0, making you a sitting duck of fail. In the most recent patch (1.2, released a few days ago) I added a patch that doesn't cut your defense to make it less risky.

Wow, that's a very useful patch! Half defence makes much more sense than just zero. I'm curious, how were you able to find the code that handles reducing defence while fleeing?

I played around with this a little bit. You've made some very interesting changes; the modifications to Berserker mechanics in particular is really impressive. That must have taken some serious rewriting of the battle routines.

ROM Hacking Discussion / Re: Final Fantasy III Maeson Mix (Famicom)
« on: May 19, 2015, 04:08:50 pm »
To change a weapon's type completely, I indeed edited the weapon's battle sprite/palette and usability index. In additon, I edited the weapon's text data, which is stored at $3CC3A.

All of the text data in the A.W.Jackson / N.Corlett is stored uncompressed, but in order to accommodate multiple-letter characters, item icons and text command codes it's not stored in ASCII. Instead they use these hex codes. You can edit the hex code which corresponds to the weapon icon and change it to whatever other icon you want.

Some other things you might find useful:
-Partial chart of what shops sell, their offset in the ROM, and the offset of their pointer
-Partial list of chest content offsets

Pages: 1 [2] 3