Points of Required Attention™
Please chime in on a proposed restructuring of the ROM hacking sections.
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

Pages: 1 2 3 4 5

never-obsolete
Posted on 02-04-09 03:51 PM, in Searching for Free Bytes Link | Quote | ID: 100078


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
Posted on 02-04-09 08:28 PM, in Searching for Free Bytes (rev. 2 of 02-04-09 08:28 PM) Link | Quote | ID: 100088


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):



Flags 6
76543210
||||||||
||||+||+- 0xx0: horizontal mirroring; 0xx1: vertical mirroring; 1xxx: four-screen mirroring
|||| |+-- 1: SRAM in CPU $6000-$7FFF, if present, is battery backed
|||| +--- 1: 512-byte trainer at $7000-$71FF (stored before PRG data)
++++----- Lower nybble of mapper number


never-obsolete
Posted on 02-25-09 08:55 PM, in ROM hacking utilities Link | Quote | ID: 101835


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
Sorry to do back to back on this but on the topic of the Cursed CV II editor what is add new pointer and how do you do it?



Screens are mirrored on different maps so the pointer editor allows you to change what screens are mirrored where. A visual:


TOWN1:
+-+-+-+
|A|B|C|
+-+-+-+
|D|E|F|
+-+-+-+


TOWN2:
+-+-+-+
|G|A|H|
+-+-+-+


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.




Also how do you get the backgrounds to interleave properly when using TileMolester?



Not sure on that, I still use Tile Layer Pro.



Which brings me to a gripe I have with hacking the tiles on Simon's Quest. The tiles in Jekyll are perfectly interleaved right from the start but even when you assemble the CV2 tiles they are still somewhat scrambled.


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
Posted on 03-11-09 09:13 PM, in ROM hacking utilities (rev. 2 of 03-11-09 09:14 PM) Link | Quote | ID: 102499


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


Just a quick addendum. I noticed that on CursEd once you select the ferryman on Actor edit mode it automatically edits that character into another and you can not revert back to him. No big deal but if you save then you are stuck with that selection. Is there any remedy to that? For that matter do you have any documentation for CursEd like you have for NinJax?



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
Posted on 04-14-09 05:50 PM, in ROM hacking utilities (rev. 3 of 04-14-09 05:57 PM) Link | Quote | ID: 105043


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
Posted on 04-17-09 10:14 PM, in Rom expanding (rev. 3 of 04-17-09 10:17 PM) Link | Quote | ID: 105402


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
Posted on 06-04-09 10:14 PM, in Hack Ideas Thread (rev. 5 of 06-04-09 10:18 PM) Link | Quote | ID: 108097


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


You want to use bombs, bow and boomerang, but what button do you press to use them? You switch in the start menu? That would certainly break the flow of the game. A combination of buttons? Yes, maybe, but it's still limited. What makes Zelda II different from almost all the other games of the series is the capacity to JUMP. So unless you make a combination of Up+A or Down+A, there's virtually nothing left...



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
Posted on 06-12-09 07:13 PM, in The NEW General Project Screenshot / Video Thread EX Omega Supreme++ (rev. 2 of 06-12-09 07:14 PM) Link | Quote | ID: 108531


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
Posted on 06-12-09 08:33 PM, in The NEW General Project Screenshot / Video Thread EX Omega Supreme++ (rev. 3 of 06-12-09 08:36 PM) Link | Quote | ID: 108541


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
Posted on 06-16-09 04:53 PM, in The NEW General Project Screenshot / Video Thread EX Omega Supreme++ (rev. 2 of 06-16-09 05:02 PM) Link | Quote | ID: 108778


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 was going to do it long time ago but I decided not to since there is an editor out there already for Bionic Commando.



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
Posted on 07-08-09 05:15 PM, in Any one know a good dissasembler Link | Quote | ID: 110155


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
Posted on 07-10-09 03:29 AM, in SMB3 Title Screen Palette Definitions (rev. 2 of 07-10-09 03:31 AM) Link | Quote | ID: 110242


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

+------------------+
| F0F0F0F0F0F0F0F0 |
| 2A8A66555599A2A8 |
| AA555555555555A9 |
| A8A6A5ED77B5A5AA |
| 0023E020AAAA0A0E |<--
| 0F0BAAAAAAAA2200 |
| 0000AAAA00000000 |
| 000000000A0A0A0A |
+------------------+


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
Posted on 07-29-09 06:02 PM, in The NEW General Project Screenshot / Video Thread EX Omega Supreme++ (rev. 3 of 07-29-09 06:07 PM) Link | Quote | ID: 111602


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
Posted on 08-25-09 09:33 PM, in Help with hacking/disassembling the NES Mega Man games (rev. 5 of 08-25-09 09:43 PM) Link | Quote | ID: 114120


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
Posted on 10-16-09 05:58 PM, in The General Project Screenshot/Videos Thread... Link | Quote | ID: 117262


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
Posted on 12-03-09 04:58 AM, in Public Service Announcement: Use of the term "TSA" (rev. 3 of 12-03-09 05:01 AM) Link | Quote | ID: 121371


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
Posted on 02-10-10 07:12 PM, in LoZ (nes) stuff (rev. 4 of 02-10-10 07:16 PM) Link | Quote | ID: 126940


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
Posted on 02-11-10 08:07 PM, in LoZ (nes) stuff Link | Quote | ID: 126973


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
Posted on 02-15-10 11:23 PM, in MMC1 Input Addresses Link | Quote | ID: 127114


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
Posted on 02-17-10 10:47 PM, in 6502 ASM Questions... [Please?] (rev. 3 of 02-17-10 10:50 PM) Link | Quote | ID: 127217


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


Or can I just use a subroutine there? Can I say BEQ $DCD0 in the same way that I use JSR $DCD0?



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.
Pages: 1 2 3 4 5


Main - Posts by never-obsolete

Acmlmboard 2.1+4δ (2023-01-15)
© 2005-2023 Acmlm, blackhole89, Xkeeper et al.

Page rendered in 0.345 seconds. (332KB of memory used)
MySQL - queries: 138, rows: 170/170, time: 0.327 seconds.