Register | Login | |||||
Main
| Memberlist
| Active users
| ACS
| Commons
| Calendar
| Online users Ranks | FAQ | Color Chart | Photo album | IRC Chat |
| |
1 user currently in Rom Hacking: |
Acmlm's Board - I2 Archive - Rom Hacking - FF Hacking FAQ/Running Q&A | | | |
Pages: 1 2 3 4 5 6 7 | Add to favorites | "RSS" Feed | Next newer thread | Next older thread |
User | Post | ||
BillyGraham21 Micro-Goomba Level: 5 Posts: 8/10 EXP: 363 For next: 166 Since: 06-23-05 Since last post: 47 days Last activity: 13 hours |
| ||
Originally posted by Don Killmi interesting, i've previously found that data and implimented a B-button dash hack as well, although that was some time ago (must be over a year by now). One thing i've found when removing the Open/Close dialog is that you have to make sure to remove the setup before the subroutine is actually called or else there is a possiblity for some buggy results. A simlpe suggestion, i know, but for whatever reason i had overlooked it at the time . Also, what areas of RAM did you use? i don't know, i'm just curious... like a cat. |
|||
Don Killmi Level: 8 Posts: 2/29 EXP: 1764 For next: 423 Since: 06-27-05 Since last post: 11 hours Last activity: 11 hours |
| ||
At first i tried using some space of the last song in memory (the "death" theme), but as soon as i stepped out of town i would get a black screen. Turned out the game copies something else to that area in RAM. So, using space previously allocated to music for asm hacks is a no no. Of course i removed the references to the sound routine First strobe the joystick, then i jumped to the free space. one thing i learned is that you can strobe by doing: LDX #$01 STX $4016 DEX STX $4016 instead of LDA #$01 STA $4016 LDA #$00 STA $4016, thus saving 1 byte. I never actually cared for that kind of optimization, but when you are short on a few bytes, everything counts. Are there any problems for strobing the joystick like that? It should be essentially the same, but who knows... Then, i just checked $20 and CMP'ed it to #$40 (b button). then i set $34 by either 2 or 1, depending if the button was pressed or not. One thing i need to find is where int the memory the number of the current map is stored. If i knew that, i could prohibit bdash in the overworld. Character data in RAM starts at $6100. To make the job change whenever i wanted, i messed with the story completion variables. I just set a bp where bahamut aknowledged you, and went from there. Really cool, i didn't think it would be easy like that. |
|||
BillyGraham21 Micro-Goomba Level: 5 Posts: 9/10 EXP: 363 For next: 166 Since: 06-23-05 Since last post: 47 days Last activity: 13 hours |
| ||
Ah, interesting. And yes, the DEX will not aversly effect the joystick strobing. I had originally replaced my b-dash routine over the select button in the main controller routine, but had to impliment an extended and convoluted hack to prevent the B button from rapid-firing and doing other nasty things throughout the rest of the game. I take it that using the sound effect routine prevents those nasty occurances? | |||
Don Killmi Level: 8 Posts: 3/29 EXP: 1764 For next: 423 Since: 06-27-05 Since last post: 11 hours Last activity: 11 hours |
| ||
...but had to impliment an extended and convoluted hack to prevent the B button from rapid-firing and doing other nasty things throughout the rest of the game... Where exactly? I haven't seen any problems so far, but who knows... i need to test it more. Also, would any have already implemented a working MP system, ala Dawn of Souls? My hack as it is would make way more sense with an MP based system. The mages always get fixed level spell charges at fixed levels. (eg. get an lv8 charge at lv 24). So, if you had a character which was a black belt all along, then change him to black mage at level 23 and level up once, his spell list will be empty except for that one lv8 charge. I want to change that, and i think an MP system is my best bet. Pure mages would get more MP than red mages (who would have more 'average' stats), and knight/thief/bl.belt wouldn't get any MP at all. Spell costs could be fixed by level (eg. lv1 = 1MP, lv2 = 3MP, lv3 = 6MP, lv4=..., lv8 = 25MP). To make class change even more worthwhile, i would have to modify spells to actually use the caster's intelligence. I remember there was a thread on the GameFaqs FF1 board which had several fixes and detailed how intelligence was supposed to be used, but the game loads from another address instead of it (always zero), so the intelligence stat was basically worthless. I had the thread backed up, but i don't have it anymore (poor HD). If anyone still have it, it would be most appreciated. (dormento at gmail removethis dot com). Edit: I have a problem. I was editing the Coneria town map in FFHackster. Things were going well, and all of a sudden, i couldn't enter town anymore (i would get a black screen). Does anybody know of bugs when editing maps? I didn't modified the palette, and i still had ~450 KAB... (edited by Don Killmi on 07-04-05 01:38 PM) |
|||
Imajin Buster Beetle Level: 34 Posts: 440/452 EXP: 234863 For next: 18788 Since: 03-15-04 From: Kingdom of Zeal Since last post: 39 days Last activity: 53 days |
| ||
I'm having a problem with the Hackster Companion. How do I get it to recognize my Hackster.Dat File? EDIT: Now it works again. But I have another problem. I've placed a sprite in a room, and it doesn't show up. Other sprites in the room show up. (edited by Imajin on 07-20-05 04:41 PM) |
|||
Celice Keese Level: 16 Posts: 38/128 EXP: 17573 For next: 2683 Since: 06-08-05 From: Oroville, CA Since last post: 2 hours Last activity: 2 hours |
| ||
That's happened to me too. I used one of the unused sprites, and apparently they just don't work. Perhaps you had to clear a certain event? Are you using a savestate to check it out? | |||
Kanji Red Goomba Level: 12 Posts: 16/47 EXP: 7874 For next: 47 Since: 03-15-04 Since last post: 62 days Last activity: 19 days |
| ||
Originally posted by Celice Well, I actually can't remember which Sprite it is... It's a sprite I redid in Companion to start a battle once you talk to it. As for a Savestate, well, there is a savestate involved, but it's on the World Map, so I go into the room after loading the Savestate. |
|||
Celice Keese Level: 16 Posts: 41/128 EXP: 17573 For next: 2683 Since: 06-08-05 From: Oroville, CA Since last post: 2 hours Last activity: 2 hours |
| ||
I don't know how to fix that. Apparently the guy who did Retuurn of Lich as able to pull it off, but it looks like he changed one of the elves and not an unknown. And I asked of a savestate cause if you were using a save from the end of game to test out the world and such, perhaps the sprite may have been deactivated due to some event which would of been completed. | |||
Dragonsbrethren Octorok Level: 10 Posts: 12/31 EXP: 4111 For next: 303 Since: 04-14-04 From: New Jersey Since last post: 82 days Last activity: 82 days |
| ||
Every unknown I've used in the past worked fine. Your savestate may be causing problems, if it triggers a plot event and that event was already triggered. If that's not it try just using another sprite (You didn't happen to leave a blank sprite in the list of map sprites, did you? I may have had a problem with that once, I don't really remember) | |||
Vystrix Nexoth Level: 30 Posts: 336/348 EXP: 158678 For next: 7191 Since: 03-15-04 From: somewhere between anima and animus Since last post: 3 days Last activity: 2 days |
| ||
I figured out how to change where the game writes the 'Final Fantasy' and Dragon graphic tiles into the pattern tables in the B+Select map screen. For some reason, the game draws the map itself from the actual overworld data, yet has hard-coded which tiles are free to hold other graphics. I figured out how to change that. I flipped the overworld data horizontally, then fixed up the B+Select screen (depicted above), as a proof-of-concept. Turns out it stores a table of the VRAM addresses to which each non-map tile will be written. Not the most elegant way to do it, but at least it's not too obtuse to hack (I was afraid it'd be a bit-map or something). The 'Final Fantasy' text, and the Dragon graphics, are stored and handled separately, and as such have separate tables. And now on to the good stuff: "Final Fantasy": 0x28 tiles High addresses at PRG 0x27BB2 (iNES 27BC2) Low addresses at PRG 0x27B8A (iNES 27B9A) Dragon graphics: 0x30 tiles High addresses at PRG 0x27D19 (iNES 27D29) Low addresses at PRG 0x27CE9 (iNES 27CF9) A given tile NN is located at VRAM 0x0NN0, so the "high" bytes are 0x00-0x0F, indicating which tile row to which to write the tile; the "low" bytes are multiples of 0x10 (0x00-0xF0) and indicate which tile column to which to write the tile. For the above map screen, I mirrored the overworld (by exporting it in FF Hackster, adding a PGM header, loading it in The GIMP, mirroring it, saving it, removing the header, and importing in Hackster), then:
Anyhow, hope this helps. With this information, you can change the general shape of the overworld without having some of the tiles clobbered by the decorative graphics. (edited by Vystrix Nexoth on 08-22-05 08:26 PM) |
|||
theonyxdragoon Blue Octorok Level: 9 Posts: 23/38 EXP: 2446 For next: 716 Since: 07-16-05 From: Somewhere between Mars and Jupiter, on an asteroid Since last post: 2 days Last activity: 6 hours |
| ||
hmm...seems like no one has posted here in a while, but I do have a question. I was wondering if there is any way to create a separate command in the battle menus so that characters can jump (and if possible, only some characters). Yes, I would expect a "Are you out of your mind?!" comment, but I thought I'd just ask. | |||
Gavin Fuzzy Rhinoceruses don't play games. They fucking charge your ass. Level: 43 Posts: 741/799 EXP: 551711 For next: 13335 Since: 03-15-04 From: IL, USA Since last post: 13 hours Last activity: 13 hours |
| ||
Originally posted by theonyxdragoon as on a Dragoon's "Jump" ? |
|||
theonyxdragoon Blue Octorok Level: 9 Posts: 24/38 EXP: 2446 For next: 716 Since: 07-16-05 From: Somewhere between Mars and Jupiter, on an asteroid Since last post: 2 days Last activity: 6 hours |
| ||
yes, the character becomes vulnerable for a moment (possibly disappears, sprite-wise) then attacks a certain character. | |||
Sliver X Level: 8 Posts: 12/19 EXP: 1942 For next: 245 Since: 05-01-04 Since last post: 1 day Last activity: 3 days |
| ||
Various things: 3EB3A: Menu Background Color 2FC30 - 2FFAF: Bridge Scene TSA 37F14: Palettes for Bridge Scene 2F030 - 2F3AF: Ending TSA 3ACAC-3AD0F: Shop Keeper TSA |
|||
Gavin Fuzzy Rhinoceruses don't play games. They fucking charge your ass. Level: 43 Posts: 743/799 EXP: 551711 For next: 13335 Since: 03-15-04 From: IL, USA Since last post: 13 hours Last activity: 13 hours |
| ||
This is the routine that checks to see which battle sprite position should be assigned to a character. The positions are Alive+Healthy, Alive+Status Ailment/Low Health, Dead. Before this routine is called, the desired character is loaded into the accumulator:
and here is the routine:
|
|||
theonyxdragoon Blue Octorok Level: 9 Posts: 26/38 EXP: 2446 For next: 716 Since: 07-16-05 From: Somewhere between Mars and Jupiter, on an asteroid Since last post: 2 days Last activity: 6 hours |
| ||
woa...thanks for the info gavin, hopefully when i get to that level of hacking, I could manipulate the data myself. But I think the "jump" command (similar to ff3j's, but not as complex, sprite-wise) will probably be adding rather than changing data in a rom, which would make it hard to do. |
|||
Don Killmi Level: 8 Posts: 13/29 EXP: 1764 For next: 423 Since: 06-27-05 Since last post: 11 hours Last activity: 11 hours |
| ||
Below i post my b button dash code, just in case anyone want's to add it to their hacks. makes some parts of the game a little bit less annoying. I used the space previously allocated to the routine which plays the annoying dialog menu noise, which i think is a double plus ; B button dash, just like the WSC, PSX & GBA versions ; uses the space freed by the annoying noise played when a dialog box opens ; who would've thought that annoying noise would come to be usefull? ; Much thanks Gavin (i think) for locating that particular piece of code. ;problems: still works at the world map (a minor one) ; MAX SIZE 21 bytes .org $D6C7 ;assemble code to run at this (CPU) address .mem 8 ;setup accumulator and index regs for NES code .index 8 LDA $20 ;this address contains the buttons pressed AND #%01000000 ;tests if B button is pressed BNE bdash ;branches with 2 bytes only (1 byte address)=good! LDA #$01 ;normal speed STA $34 ;use this speed to walk RTS bdash: LDA #$02 ;double speed STA $34 RTS Edit: Oops, i forgot to say it is assemblable with x816 (x112f.exe), the best NES assembler, IMHO. I still need some info about how to take the INT stat into account when casting spells. Any help would be much appreciated. (edited by Don Killmi on 09-30-05 01:44 PM) (edited by Don Killmi on 09-30-05 02:07 PM) |
|||
Sliver X Level: 8 Posts: 13/19 EXP: 1942 For next: 245 Since: 05-01-04 Since last post: 1 day Last activity: 3 days |
| ||
There's a bug dealing with map recompression and large levels in Hackster that will make levels crash on entrance, either with a black screen or with garbled graphics. I'm not sure how common this issue is, but we ran into it a lot with Dragoon X Omega II. bitmaster took the time to look into it for us, for which I'm eternally grateful. The method of fixing this with FCEUXD is as follows. Make a save state right before an entrance that is known to crash, then: bbitmaster> the first thing you should do is set a write breakpoint on $8000 before it crashes bbitmaster> should break at the decompression code at bbitmaster> $D1A6:91 12 STA ($12),Y @ $8000 bbitmaster> that looks like a loop to decompress the data bbitmaster> which looks like it's RLE encoded bbitmaster> when that breakpoint at D1A6 is snapped bbitmaster> open the hex editor bbitmaster> and look at location $10 and $11 bbitmaster> those point to the faulty byte in the rom bbitmaster> for me $10-11 reads: 24B5 bbitmaster> but it's little endian, so you need to turn that around to B524 bbitmaster> and scroll down to it in the hex editor bbitmaster> now you can only edit what's in the rom file with FCEUXD bbitmaster> so you should right click on that offset and select "Go Here in rom file" bbitmaster> for me $b524 is at $17534... anyway bbitmaster> you need to subtract a few bytes from it bbitmaster> when the debugger snapped at $8000 bbitmaster> the X register tells how far over it's trying to run Try subtracting X first; if that doesn't work, subtract 1 more. (edited by Sliver X on 09-30-05 09:41 PM) |
|||
Don Killmi Level: 8 Posts: 14/29 EXP: 1764 For next: 423 Since: 06-27-05 Since last post: 11 hours Last activity: 11 hours |
| ||
Thanks SX, i've run into that bug a lot too. When doing something as simple as adding some buildings to a town, i would trigger it and render some work unusable. I've never got the "garbled graphics" crash, only a black screen. Btw, it is amazing how FCEUXD makes asm hacking easy. It has never been so easy. Just found this, and it was a 1 min. job. (Overly commented, asm newbie here) This routine controls how much damage you receive when you step on lava tiles $C863:BD 0B 61 LDA $610B,X @ $610B = #$00 ;loads the high byte of HP $C8660 07 BNE $C86F ;branches if not zero $C868:BD 0A 61 LDA $610A,X @ $610A = #$17 ;low byte of HP $C86B:C9 02 CMP #$02 ;compares to prevent underflow (else you could end up with a lot of HP) $C86D:90 11 BCC $C880 ;branches if carry clear $C86F:BD 0A 61 LDA $610A,X @ $610A = #$17 ;loads the low byte into memory $C872:38 SEC ;sets carry $C873:E9 01 SBC #$01 ;damages the party $C875:9D 0A 61 STA $610A,X @ $610A = #$17 ;stores back into place $C878:BD 0B 61 LDA $610B,X @ $610B = #$00 ;loads high byte $C87B:E9 00 SBC #$00 ;subtract with carry $C87D:9D 0B 61 STA $610B,X @ $610B = #$00 ;stores back This stuff here can be used to set a healing spring, a ressurrection place (kinda like ff2), make the damage higher, etc.etc. With 26 bytes, you can do something, jump somewhere (i need to learn bankswitching sometime) then jump back. Amazing, and very, very easy. |
|||
Sliver X Level: 8 Posts: 14/19 EXP: 1942 For next: 245 Since: 05-01-04 Since last post: 1 day Last activity: 3 days |
| ||
Intro: (Fading Palette) 3A12C: Color 02 3A2B8: Color 03: First Fade Color 3A2E3: Color 03: Second Fade Color [Fade colors cycle the base color by increments of $10 to lighter colors and back.] 3A2C8: Fade Speed 3A311: Set to EA to kill Intro altogether. |
Pages: 1 2 3 4 5 6 7 | Add to favorites | "RSS" Feed | Next newer thread | Next older thread |
Acmlm's Board - I2 Archive - Rom Hacking - FF Hacking FAQ/Running Q&A | | | |