(Link to AcmlmWiki) Offline: thank ||bass
Register | Login
Views: 13,040,846
Main | Memberlist | Active users | Calendar | Chat | Online users
Ranks | FAQ | ACS | Stats | Color Chart | Search | Photo album
06-09-24 11:51 PM
Acmlm's Board - I3 Archive - - Posts by never-obsolete
Pages: 1 2 3 4
User Post
never-obsolete

Paragoomba








Since: 05-14-06
From: AZ

Last post: 6323 days
Last view: 6322 days
Posted on 06-11-06 09:14 PM, in DOS Game Notes Required Link
use the same methods for console games. figure out the structure of the data you are looking for. searh for the data. edit away. if you're lucky the game will seperate things into different files (based on contents) and in directories.

for text use a table with the dos character set (assuming it doesn't use an internal set or use graphics for text) and a hex editor. graphics would be more tricky, you'd have to figure out the format, and possibly write your own extractor/inserter. and if you want more control over the game, learn x86 assembly.

though this is all assumming no compression is used.
never-obsolete

Paragoomba








Since: 05-14-06
From: AZ

Last post: 6323 days
Last view: 6322 days
Posted on 06-11-06 09:28 PM, in Hack Release: The Lone Ra**** Link
i dont condone rape in any means, but i'd shake your hand. i firmly believe in excersing my rights, despite what others think of my actions. and thats what you did. i didn't play your hack, but keep on pushing peoples buttons.


(edited by never-obsolete on 06-11-06 08:29 PM)
never-obsolete

Paragoomba








Since: 05-14-06
From: AZ

Last post: 6323 days
Last view: 6322 days
Posted on 06-12-06 02:16 AM, in NES Screen Editor Link
i don't know what kind of editing program you would consider this, but here's what it does:

-edit palette files(20h bytes in size, though only 0-Fh are used to render)
-edit 40h attribute table file
-edit 3C0h name table file
-edit 1000h chr-data file

and here's a screenshot

every file can also be made from scratch. as you can see, the screen that shows how the data would be rendered durring emulation and/or dev-cart is a bit buggy in its attribute table fetches. i see this being more helpful for development, but would anybody be interested in this (with the bugs removed, of course, and possibly more features)?

edit: only the main screen is shown in the picture, not the editors


(edited by never-obsolete on 06-12-06 01:18 AM)
never-obsolete

Paragoomba








Since: 05-14-06
From: AZ

Last post: 6323 days
Last view: 6322 days
Posted on 06-13-06 12:46 AM, in Megaman/Transformers Hack Link

this may help if you don't want to duplicate palettes for two (or more) sprites that
use different palette sets, but you want them to use the same set in your project.

the palette loaded into nes vram is as follows (each letter is a byte):

txxx mxxx mxxx mxxx
mxxx mxxx mxxx mxxx

t = universal background color
m = mirror of t
x = values that can be changed and will show durring rendering

the first row is for backgrounds and the second is for sprites. each sprite (8x8
pixel tile) has 4 bytes that are written to sprite oam. these 4 bytes contain this
data:

0 - y position of the top sprite
1 - the tile number of the sprite (index into pattern table)
2 - attributes of the sprite (bits: 76543210)
bits 0 and 1 tell the ppu what palette entry to render the sprite with so:
xxxxxx00 = 1st sprite palette
xxxxxx01 = 2nd
xxxxxx10 = 3rd
xxxxxx11 = 4th
the 'x' bits do other stuff, but dont pertain to palettes
3 - x position of left of sprite

now trace the value in ram (probably somewhere in $0200-$02FF, though not
always) for the attribute byte of the sprite you wanna change. set a breakpoint
for when that address is written to so you can see where the game sets that value.
now change the value that is written to that address to reflect which palette you
want to be used durring rendering of that sprite. be sure all the 'x' bits are the same
in your new value or you will get some strange effects.

the 4 bytes will always be in the order listed above because more then likely the
game will use sprite dma to transfer all the values into sprite oam. so if the data
is stored at $0200 it will be in this order:

$0200 = sprite0_Y
$0201 = sprite0_T
$0202 = sprite0_A
$0203 = sprite0_X
$0204 = sprite1_Y
$0205 = sprite1_T
$0206 = sprite1_A
$0207 = sprite1_X
...etc...

hope this helps.



(edited by never-obsolete on 06-12-06 11:54 PM)
never-obsolete

Paragoomba








Since: 05-14-06
From: AZ

Last post: 6323 days
Last view: 6322 days
Posted on 06-16-06 05:09 PM, in What do I need? Link
if you are looking for offset $B547 then go to row 00B540 and count each column over until you get to 7, but start with 0.
never-obsolete

Paragoomba








Since: 05-14-06
From: AZ

Last post: 6323 days
Last view: 6322 days
Posted on 06-17-06 07:49 AM, in What do I need? Link

nes prg-rom space is:

bank0 - $8000 to $BFFF
bank1 - $C000 to $FFFF

smaller switchable banks are possible, just depends on the mapper. ram is
located at $0000 to $07FF and is thus mirrored after that up to $2000. all
code/data is loaded into those 2 banks of prg-rom, though thats not there actual
offset in the rom. the value will be stored in ram when needed but will first need
to be loaded from rom. you need to find where in rom it is loaded from by using a
breakpoint set to when that location in ram is written to. and ram will be written to
like so:

lda #n
sta $g

where n = the value of health and g = offset in ram. though it might be tricky
because indirect or indexed addressing might be used or they will use the X or Y
register instead of the accumulator (A register). so you might get something like:

lda ($nn), Y
or
lda ($nn, X)

which are the two forms of indirect addressing (X and Y are 6502 registers, nn =
zero page address). or you might also get one of these:

lda $nn, X
lda $nnnn, X
lda $nnnn, Y

which are forms of indexed addressing. ($nn = zero page address and $nnnn =
non-zero page address) when the game stores the value into ram it may also use
indirect/indexed addressing rather than absolute.
never-obsolete

Paragoomba








Since: 05-14-06
From: AZ

Last post: 6323 days
Last view: 6322 days
Posted on 06-18-06 01:04 AM, in Disassembly help Link

an array would probably be accessed by indexed addressing.
($nnnn = base adress)

opcode $nnnn, register

just plug in your processor opcode that loads/moves a value as well as the
indexing register. a struct would probably use indexed indirect adressing.

opcode ($nnnn), register

the base address would point to the first byte of the struct and the register would
be used to move to different variables. then increase the base pointer by the length
of the struct to get to the next struct.
never-obsolete

Paragoomba








Since: 05-14-06
From: AZ

Last post: 6323 days
Last view: 6322 days
Posted on 06-18-06 01:08 AM, in What do I need? Link
the debugger will snap where an instruction writes to the ram address. you will need to back track from there a line (or possibly more) to see where the value written is read from in rom.
never-obsolete

Paragoomba








Since: 05-14-06
From: AZ

Last post: 6323 days
Last view: 6322 days
Posted on 06-24-06 06:04 PM, in Question about NES Bank Switching Link
Originally posted by spel werdz rite

Anyways, my knowledge of 6502 is limited.



you may need to learn more 6502 assembly because bank-switching only gets the code/data to be "visible" to the nes. it doesn't make the game use the new stuff, you'll have to code the routines yourself.

Originally posted by d4s

it is probably very hard to convert a game that originally didnt use a mapper



actually, depending on space in the unhacked rom, it might be easier. if you're modifiying a game to use a different mapper, it has to support all the same options as the one it originally had did or else you're gonna have to do quite a few bank-switching asm hacks to get the same net effect. if the game has nrom board you just have to make sure the original banks are swapped in when the game accesses them. and of course, as AP said, move the vector table/interrupt handlers and bank-switching code to a fixed bank.

what mapper did you have in mind, or what were you looking to accomplish?


(edited by never-obsolete on 06-24-06 09:50 PM)
never-obsolete

Paragoomba








Since: 05-14-06
From: AZ

Last post: 6323 days
Last view: 6322 days
Posted on 06-26-06 06:44 PM, in My New Rom Hack: Super Penio Brothers! Link
Originally posted by Dario

i give this a negative infinity.



you can't quanticize (spelling?) infinty you can only approach it.

and when are the real idiots gonna realize, if you don't like something, don't pay any attention to it. it will surely die. but rather you make all your "this is shit" comments and the author is just accomplishing his goal of getting attention to his creation. let him make as many penis hacks as he wants, who is it gonna hurt?
never-obsolete

Paragoomba








Since: 05-14-06
From: AZ

Last post: 6323 days
Last view: 6322 days
Posted on 06-26-06 06:49 PM, in Hacking roms... Link
Originally posted by mcchrisownzzz

well. that's no good.



such is life...wear a helmet. and you could try learning a programming language and code your own editor. its just a thought.
never-obsolete

Paragoomba








Since: 05-14-06
From: AZ

Last post: 6323 days
Last view: 6322 days
Posted on 06-30-06 06:55 PM, in The Favorable Hacking Utility Link
Originally posted by BGNG

Taking after the great editor of DOS days, Hexposure



i could probably help with that as i wrote one just like Hexposure in every way exept its a windows program. the only thing not finished is the relative search and editing on the text side. adding more features would be possible.
never-obsolete

Paragoomba








Since: 05-14-06
From: AZ

Last post: 6323 days
Last view: 6322 days
Posted on 07-03-06 10:16 AM, in Donkey Kong Link
Here's some notes I gathered about 'Donkey Kong(JU).nes':

Fig 1.1


+-------------------------------------------------------+
| Format: |
+-------------------------------------------------------+

-ah -al -nb -b0 ...[bN]

ah : high part of address in vram

al : low part of address in vram

nb : dc54hhhh
||||||||
||||++++-length of data
|||+-----?
||+------?
|+-------0=repeat b0; 1=read in new byte (up to bN)
+--------0=write in rows; 1=write in columns

b0 : first byte of data

bN : the last byte of data (only used if nb.c == 1)

+-------------------------------------------------------+
| Rom Layout |
+-------------------------------------------------------+

address #bytes usage
------- ------- -------------------------------
$0000 ?
...
$356B 32 In-game Palette
...
$359C 4 Fig 1.1 - LadB
$35A0 7 Barrels Column #1
$35A7 7 Barrels Column #2
$35AE 7 Barrels Column #3
$35B5 4 Fig 1.1 - LadB
$35B9 4 Fig 1.1 - Goal
$35BD 4 Fig 1.1 - Plat1
$35C1 4 Fig 1.1 - Lad1
$35C5 4 Fig 1.1 - Plat2
$35C9 15 Fig 1.1 - Plat3Top
$35D8 18 Fig 1.1 - Plat3Bot
$35EA 4 Fig 1.1 - T1
$35EE 20 Fig 1.1 - P4T
$3602 19 Fig 1.1 - P4M
$361F 9 Fig 1.1 - P4B
$3628 4 Fig 1.1 - T2
$362C 26 Fig 1.1 - P5T
$3646 4 Fig 1.1 - Lad2
$364A 27 Fig 1.1 - P5M
$3665 4 Fig 1.1 - Lad3
$3669 4 Fig 1.1 - T3
$366D 4 Fig 1.1 - T4
$3671 8 Fig 1.1 - P6T
$3679 29 Fig 1.1 - P6M
$3696 21 Fig 1.1 - P6B
$36AB 4 Fig 1.1 - T5
$36AF 4 Fig 1.1 - Lad4
$36B3 14 Fig 1.1 - P7T
$36C1 29 Fig 1.1 - P7M
$36DE 12 Fig 1.1 - P7B
$36F1 4 Fig 1.1 - T6
$36F5 22 Fig 1.1 - P8T
$370B 4 Fig 1.1 - P9
$370F 18 Fig 1.1 - P8B
$3721 5 Left 2 Tiles of oil can
$3726 5 Right 2 Tiles of oil can
$372B ?
...
$3753 138 Zone 3 Object Data
$37DD ?
...
$3819 207 Zone 2 Object Data
$38E9 16 Title Screen Background Palette
$38F9 4 Title Screen Pointer Palette (only 1 color)
$38FD ?
...
$600F ?

NOTE: Any object in Fig 1.1 named 'T*' is only one tile by default



The background collision is hard coded into the game...so no level changes withough extensive r.e. and asm hacks.


(edited by never-obsolete on 07-03-06 09:34 PM)
(edited by never-obsolete on 07-03-06 09:35 PM)
never-obsolete

Paragoomba








Since: 05-14-06
From: AZ

Last post: 6323 days
Last view: 6322 days
Posted on 07-05-06 05:03 AM, in Final Fantasy and 6502 ASM Hacking Link
a book called "Programming the 6502" by Rodnay Zaks or NESdev, though some of the documents are dated, but its a start. and the documents don't get any simpler, you just kinda have to wade through them. it helps if you know a programming language.

Originally posted by VinceIP

Is it possible to expand a NES rom without major glitches?



the problem is being able to use the newly added space because of bank swapping. if you have your new prg/chr bank swapped in when the game expects something else, either your program counter won't point to a valid address (in the case of prg), or your graphics will look screwy. plus your interrupt handlers are another issue.

if you want any hope of pulling this off you have to first learn 6502, then learn how the NES works, then start your project.
never-obsolete

Paragoomba








Since: 05-14-06
From: AZ

Last post: 6323 days
Last view: 6322 days
Posted on 07-07-06 01:18 AM, in Remember iNes? Link
iNes might output sound through midi and it would only require logging all sound durring emulation to a file.
never-obsolete

Paragoomba








Since: 05-14-06
From: AZ

Last post: 6323 days
Last view: 6322 days
Posted on 07-07-06 03:53 PM, in Wolverine For NES hacks Link
Originally posted by BOBTHEVILA

If you want it to be a tad better you might be able to help with finding the hex that make them anoyingly fllicker. Then I could turn it off



the flickering is a limitation of the NES. only 8 sprites can be rendered on each scanline per frame. to get around this, programmers cycle through the 8 sprites that are drawn on the scanline each frame, hence the flicker.
never-obsolete

Paragoomba








Since: 05-14-06
From: AZ

Last post: 6323 days
Last view: 6322 days
Posted on 07-08-06 12:38 AM, in about the wii Link
Originally posted by VinceIP

it would be fine to play hacked NES ROMS since it no longer has a patent.



roms are copyrighted and that can last 70 to 120 years. even then, the U.S. Congress can extend the copyright. (if you don't live in the U.S., then its different)
never-obsolete

Paragoomba








Since: 05-14-06
From: AZ

Last post: 6323 days
Last view: 6322 days
Posted on 07-10-06 08:23 PM, in Big Nose the Caveman help Link
use a stand-alone hex editor
never-obsolete

Paragoomba








Since: 05-14-06
From: AZ

Last post: 6323 days
Last view: 6322 days
Posted on 07-11-06 08:03 PM, in Any freaking windows compatible hex editors? Link
yeah i too liked hexposure so here's one i coded up. just like it but for windows. the only thing is i never got around to finishing the relative search function.

HexEdit.zip

edit: and the data cannot be edited from the text side yet either.


(edited by never-obsolete on 07-11-06 07:06 PM)
never-obsolete

Paragoomba








Since: 05-14-06
From: AZ

Last post: 6323 days
Last view: 6322 days
Posted on 07-12-06 10:05 PM, in Why is Mario and Luigi more diferent in SMB3 than SMW? Link


SMB3 runs on the NES, which is much simpler than the SNES and therefore easier to ASM hack.



this brings to mind a multi-directional scrolling split screen routine (kinda like that seen in smb3) i'm writing for a nes project...and it is not easier to program for

edit: typos


(edited by never-obsolete on 07-12-06 09:06 PM)
Pages: 1 2 3 4
Acmlm's Board - I3 Archive - - Posts by never-obsolete


ABII

Acmlmboard 1.92.999, 9/17/2006
©2000-2006 Acmlm, Emuz, Blades, Xkeeper

Page rendered in 0.067 seconds; used 441.24 kB (max 570.05 kB)