| |||
Views: 88,496,314 |
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search | 04-28-24 12:39 PM |
|
Guest: Register | Login |
Main - Posts by never-obsolete |
never-obsolete |
| ||
Rat Level: 24 Posts: 41/96 EXP: 74508 Next: 3617 Since: 02-22-07 From: Phoenix, AZ Last post: 2598 days Last view: 2598 days |
assuming the nes:
-set a r/w breakpoint on a location that seems unused and play the game. -some games don't go too deep in the stack and you may be able to use locations in the lower part of the page. -if the mapper supports on-cart ram and the game doesn't already have it, add it. -if the game uses chr-ram, you could store it there as well. though you'd have to do all r/w durring vblank or disable rendering. |
never-obsolete |
| ||
Rat Level: 24 Posts: 42/96 EXP: 74508 Next: 3617 Since: 02-22-07 From: Phoenix, AZ Last post: 2598 days Last view: 2598 days |
change byte 6 of the header (from http://nesdevwiki.org/wiki/INES):
|
never-obsolete |
| ||
Rat Level: 24 Posts: 43/96 EXP: 74508 Next: 3617 Since: 02-22-07 From: Phoenix, AZ Last post: 2598 days Last view: 2598 days |
Posted by Daterribleppic Screens are mirrored on different maps so the pointer editor allows you to change what screens are mirrored where. A visual:
So changing any of the data for screen "A" will affect both towns. Use caution when changing pointers because any 16bit value is technically a valid pointer, though it may or may not be pointing to actual screen data.
Not sure on that, I still use Tile Layer Pro.
I'm a bit confused on what you're asking, do you mean sprite or background tiles? Sprites have to be arranged like that because they are 8x16. Background tiles can be arranged however you like, just keep in mind that solidity/breakability is based on the tile id number. |
never-obsolete |
| ||
Rat Level: 24 Posts: 44/96 EXP: 74508 Next: 3617 Since: 02-22-07 From: Phoenix, AZ Last post: 2598 days Last view: 2598 days |
Didn't notice this post before, but I got the email. I'll fix the ferryman bug, and the documentation needs to be finished up and I'll post it. Thanks for the feedback. |
never-obsolete |
| ||
Rat Level: 24 Posts: 45/96 EXP: 74508 Next: 3617 Since: 02-22-07 From: Phoenix, AZ Last post: 2598 days Last view: 2598 days |
here's CursEd v0.21.0. Fixed some bugs and added the Ferryman to the global property editor. A few of the *.DAT files were updated so the old ones should be overwritten. |
never-obsolete |
| ||
Rat Level: 24 Posts: 46/96 EXP: 74508 Next: 3617 Since: 02-22-07 From: Phoenix, AZ Last post: 2598 days Last view: 2598 days |
A trick I used in messing with Castlevania 2 was to have two banks of text. The first bank was the same as the original text and the second was all my new text. The new text had all its pointers have an address that was:
$0000 < addr < $8000 when the string routine read the pointer it checked if the msb was >= $80. If so, it went about its business as normal. If the msb < $80, it would be ORed with $80, the new bank swapped in, then it goes about its business. The same effect could have been achieved by using the string id#, ...if greater the "x" swap banks, else not. Also, did you update the header? |
never-obsolete |
| ||
Rat Level: 24 Posts: 47/96 EXP: 74508 Next: 3617 Since: 02-22-07 From: Phoenix, AZ Last post: 2598 days Last view: 2598 days |
I'm not sure if Zelda II uses joypad2, but you could read buttons from joypad2, but use it for player1. Then you could have up to 8 more buttons. Playing in an emulator wouldn't be a problem, you can just map the keys like an snes controller, though for a console you'd have to build a custom controller. Just an idea I've been thinking over for a homebrew I've been working on. I was gonna try and get a four score and have 2-16 button controllers. |
never-obsolete |
| ||
Rat Level: 24 Posts: 48/96 EXP: 74508 Next: 3617 Since: 02-22-07 From: Phoenix, AZ Last post: 2598 days Last view: 2598 days |
I recently beat this game again and was inspired to write up an editor:
I've got most of the combat zones loading correctly. |
never-obsolete |
| ||
Rat Level: 24 Posts: 49/96 EXP: 74508 Next: 3617 Since: 02-22-07 From: Phoenix, AZ Last post: 2598 days Last view: 2598 days |
In the story, it was the code name of the project to revive Master D (...Hitler). Though they spelled it "Albatros" in the opening sequence.
Somehow "Exploding Hitler Head" seemed too long-winded. |
never-obsolete |
| ||
Rat Level: 24 Posts: 50/96 EXP: 74508 Next: 3617 Since: 02-22-07 From: Phoenix, AZ Last post: 2598 days Last view: 2598 days |
Posted by Mega-Dog I saw BC Editor by The Almighty Guru. The version on his (old?) site and RHDN was from ~2005, and only edits a few things. The site also mentions an editor by Graou but I couldn't find a valid link. Some shots of a Death Race Editor: |
never-obsolete |
| ||
Rat Level: 24 Posts: 51/96 EXP: 74508 Next: 3617 Since: 02-22-07 From: Phoenix, AZ Last post: 2598 days Last view: 2598 days |
Dissassemblers for the NES are usually not very good at producing usable output.
Aside from the code vs data problem, the limited address space of the 6502 means there's all these different memory mappers that try and work around that limit. This makes it harder for a dissassembler to figure out where the target of branches and jumps are. Unless you are running the game, you have no idea which banks are swapped where. Try checking the nesdev main page, I remember seeing a couple of dissassemblers that tried to place labels correctly. |
never-obsolete |
| ||
Rat Level: 24 Posts: 52/96 EXP: 74508 Next: 3617 Since: 02-22-07 From: Phoenix, AZ Last post: 2598 days Last view: 2598 days |
The 23E020 looks like it might be saying "write $20 bytes to $23E0" (attribute tables are at $23C0, $27C0, $2BC0, $2FC0 in PPU memory). Is there a 23C020 before the first line of F0s? I've seen other games store static attribute tables that way. |
never-obsolete |
| ||
Rat Level: 24 Posts: 53/96 EXP: 74508 Next: 3617 Since: 02-22-07 From: Phoenix, AZ Last post: 2598 days Last view: 2598 days |
This is an alternate weapon hack like Contra III. Which one looks better?
Having 4 lives and the weapon indicators all lined up is out because of all the flickering it causes. |
never-obsolete |
| ||
Rat Level: 24 Posts: 54/96 EXP: 74508 Next: 3617 Since: 02-22-07 From: Phoenix, AZ Last post: 2598 days Last view: 2598 days |
Play the entire game with the code/data logger running. You'll still need to go over it by hand since it'll be difficult to make sure every possible branch is taken, data is read, etc...
I'm not sure if there are dissassmblers that'll use the *.cdl file. I tried writing one awhile back, but it was only useful for NROM and mappers that use 32K banks. Even then it would still mess up on games that run code from ram. |
never-obsolete |
| ||
Rat Level: 24 Posts: 56/96 EXP: 74508 Next: 3617 Since: 02-22-07 From: Phoenix, AZ Last post: 2598 days Last view: 2598 days |
Here are some screenshots of hack I started working on:
The map system has been replaced to allow more flexibility. I haven't made any changes to the map, so you'll probably recognize the screens. The status bar looks like crap, but it will be replaced eventually too. |
never-obsolete |
| ||
Rat Level: 24 Posts: 57/96 EXP: 74508 Next: 3617 Since: 02-22-07 From: Phoenix, AZ Last post: 2598 days Last view: 2598 days |
Metatile. I just recently found out what people were referring to when they said TSA, I thought it was something specific to SMB3. |
never-obsolete |
| ||
Rat Level: 24 Posts: 58/96 EXP: 74508 Next: 3617 Since: 02-22-07 From: Phoenix, AZ Last post: 2598 days Last view: 2598 days |
Here's a hack I was working on for awhile. There were going to be two, the first was a reimaging of the original...graphical facelift, assembly hacks, etc. The second part was going to be something more original. Somewhere along the line I realized that the only portion I hadn't started re-writing was the title screen, main menu, sound code, and few other things, so I decided to focus on a homebrew instead. I post these in case anyone wants to use any of it, but I won't be working on this anymore. I do plan to continue work on the dissassembly though. Here's the ips for the latest (somewhat) stable version, plus all the source files: LoZ-DX.zip Here's the dissassembly I was putting together: LoZ-Disasm.zip The ips is larger than the original game because it was mapper hacked to FME7 which uses chr-rom, and had the prg-rom expanded. Dungeons are broken, so don't bother going into them, as the game will lock up because there is some code that needed to be copied to ram. Eventually I had planned to fix it, but I was lazy and just copied it there manually and froze it in the hex viewer (fceuxdsp). The new inventory screen doesn't work right in fceu (and its derivatives) because of a bug in the emulator when reading the palette from vram. edit: fixed urls |
never-obsolete |
| ||
Rat Level: 24 Posts: 59/96 EXP: 74508 Next: 3617 Since: 02-22-07 From: Phoenix, AZ Last post: 2598 days Last view: 2598 days |
To fix the cause of the crashing would be simple. If you're interested, I could
do it, since I already know what code needs to be copied where. The bigger issue is the items and doorways. I'm not sure how familiar you are with the game internals, but if you've ever seen this map, you can see visually how its mapped out in memory (sorta). The dungeons are treated like alternate overworlds (16 screens wide x 8 screens tall). The memory associated with locked doorways and items in each room are accessed by Link's room coordinate, not by which dungeon he is in. The new map system took a diferent approach: -each dungeon has its own dimensions (see "level_dungeonSize" in "mapreader.asm") -each dungeon has a layout map that is a list of screen indexes (see "level1_map" in "dungeonlayout.asm") The reason behind this was for more variation in dungeon shape, to allow for multiple floors (without chewing up a ton of rom like the old system would have), and to allow screens to be reused if needed. The new system was going to use more ram for tracking items and doors then the original one, so I started mapping out sram to free up some space. $6C90-$7EFF is copied from $A500 in prg1, and is mostly code to draw sprites and the animation/frame data. After the space would have been freed, a new system for accessing the ram associated for each dungeon would have to be coded. The easiest way to fix this would be to drop the new map layout system for dungeons and use the one the that the overworld uses (which is similar to how the original did it). Then all the ram used for items/doors would be accessed correctly again, and you'd just have to fill in the data for dungeons 2-9 (some of its just padded with zeros). There were also a couple minor things, like altering the data that hardcodes wall collision in the dungeons, updating the graphics used in the later dungeons, and fixing the whistle/lake secret for dungeon 7. |
never-obsolete |
| ||
Rat Level: 24 Posts: 60/96 EXP: 74508 Next: 3617 Since: 02-22-07 From: Phoenix, AZ Last post: 2598 days Last view: 2598 days |
What values are at $E9EA? And does it loop? |
never-obsolete |
| ||
Rat Level: 24 Posts: 61/96 EXP: 74508 Next: 3617 Since: 02-22-07 From: Phoenix, AZ Last post: 2598 days Last view: 2598 days |
The operand for branches is an 8bit signed displacement, so as long as the destination is within range, you can. Keep in mind that a return address will not be pushed onto the stack. |
Main - Posts by never-obsolete |
© 2005-2023 Acmlm, blackhole89, Xkeeper et al. |
MySQL - queries: 138, rows: 170/170, time: 0.327 seconds. |