Points of Required Attention™
Please chime in on a proposed restructuring of the ROM hacking sections.
Views: 88,486,921
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search 04-26-24 10:46 AM
Guest: Register | Login

0 users currently in ROM Hacking | 5 guests | 1 bot

Main - ROM Hacking - Red Falcon, Contra editor (Formerly "Contra hacks...") New thread | New reply

Pages: 1 2 3 4 5 6 7 8

finisher
Posted on 06-09-08 07:10 PM Link | Quote | ID: 84833


Red Goomba
Level: 18

Posts: 1/48
EXP: 25325
Next: 4572

Since: 06-09-08

Last post: 3956 days
Last view: 2497 days
Does anyone know if Contra hacks exist? Any at all?

NastyNate
Posted on 06-09-08 08:35 PM Link | Quote | ID: 84839


Red Tektite
Level: 22

Posts: 24/76
EXP: 51906
Next: 6444

Since: 07-07-07
From: California

Last post: 5307 days
Last view: 4848 days
I too would like to know if Contra hacks exist O:

messiaen
Posted on 06-10-08 12:40 AM (rev. 2 of 06-10-08 12:46 AM) Link | Quote | ID: 84858


Cheep-cheep
Level: 32

Posts: 6/193
EXP: 204451
Next: 1991

Since: 05-26-08
From: Porto Alegre, Brazil

Last post: 4443 days
Last view: 4771 days
Didn't find anything on DataCrystal, Romhacking.net and Zophar's Domain. I found some notes on this site, but they are very general.


Wait, there is this:

http://www.youtube.com/watch?v=Gm6C33RSjCE

Googie
Posted on 06-10-08 12:56 AM Link | Quote | ID: 84859


Giant Red Paratroopa
Level: 77

Posts: 271/1407
EXP: 4181095
Next: 10034

Since: 02-19-07
From: Brooklyn, NY

Last post: 9 days
Last view: 9 days
never-obsolete chefed up this a while back, I dunno what the stats on that editor is though, he's been very busy.

Looks pretty sweet, Contra is a kick ass game... ^______^'

____________________
My Linktree

Trax
Posted on 06-10-08 02:16 AM Link | Quote | ID: 84861


Yellow Stalfos
Level: 71

Posts: 362/1145
EXP: 3035794
Next: 131320

Since: 07-06-07
From: Québec

Last post: 3627 days
Last view: 2879 days
I'll check it out and disassemble the whole damn ROM, if necessary...

never-obsolete
Posted on 06-10-08 02:22 AM (rev. 2 of 06-10-08 02:51 AM) Link | Quote | ID: 84863


Rat
Level: 24

Posts: 22/96
EXP: 74495
Next: 3630

Since: 02-22-07
From: Phoenix, AZ

Last post: 2596 days
Last view: 2596 days
here's my notes:

Level Headers

' Level Header (size: $20 per level) 0x0B329
'
' TT SS LLLL tttt ???? ll cc ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? mm ?? uuuuuuuuuuuu
'
' Jugle: 00 00 0180 0180 7186 0B 06 F9 FF 05 08 05 08 02 03 04 05 00 01 22 07 0B 00 000000000000
' Base I: 01 00 0682 1887 788E 04 00 FF FF 24 28 29 28 09 0A 04 24 00 01 22 2A 05 00 000000000000
' Waterfall: 00 01 CE84 F88E 1896 07 07 FF FF 0D 0E 0F 00 0B 0C 04 0D 00 01 22 07 07 00 000000000000
' Base II: 01 00 3682 1887 788E 07 00 FF FF 2E 2F 30 2F 2C 2D 04 2E 00 01 22 2A 08 00 000000000000
' Snow Field: 00 00 8F86 9896 689D 13 20 F0 F0 62 63 62 63 3D 3E 04 62 00 01 22 07 13 00 000000000000
' Energy Zone: 00 00 2589 1E9E FEA4 0B 0C DE DE 35 36 37 38 33 34 04 35 00 01 22 07 0B 81 000000000000
' Hangar: 00 00 818B AAA5 4AAD 0D 0E F1 F1 47 57 47 58 45 46 04 47 00 01 22 07 0D 81 000000000000
' Alien's Lair: 00 00 478E CAAD FAB4 09 05 EF EF 4C 4D 4E 4F 48 49 4A 4C 00 01 43 44 09 00 000000000000
'
'
'
' TT : level type
' 00=outdoor level
' 01=indoor level
'
'
' SS : scroll direction
' 00=right
' 01=up
'
'
' LLLL : level data pointer
'
'
' tttt : metatile (4x4) data pointer
'
'
' ???? : unknown (pointer -> 0x14000)
'
'
' ll : number of "screens"
'
'
' cc : unknown - seems to have something to do with background collision
' 06=Jungle
' 00=Base I
' 07=Waterfall
' 00=Base II
' 20=Snow Field
' 0C=Energy Zone
' 0E=Hangar
' 05=Alien's Lair
'
' mm : seems to be tied to ll, this stops scrolling
'
' uuuuuuuuuuuu : unused


the pointer table for enemy data starts at 0x0B523 (1 entry per level). this points to another pointer table which breaks each level into sections. so enemy data is located:


' Jungle
' screen pointers: 0x0B83B
' data start: 0x0B855
' data end: 0x0B8B9
' Base I
' screen pointers: 0x0B8BA
' data start: 0x0B8C6
' data end: 0x0B91C
' Waterfall
' screen pointers: 0x0B91D
' data start: 0x0B931
' data end: 0x0
'
' Snow Field
' screen pointers: 0x0BA58
' data start: 0x0BA84
' data end: 0x0
' Energy Zone
' screen pointers: 0x0BB34
' data start: 0x0BB4E
' data end: 0x0
' Hangar
' screen pointers: 0x0BBC7
' data start: 0x0BBE5
' data end: 0x0



Enemy Format - some enemies appear to be different based on the stage they are used in.

' Enemy Data
'
' Level Type: 00 - outdoor
'
' XX EE YY
'
' XX : X coordinate XXXX XXXX
' ++++-++++--X coordinate
'
' EE : Enemy Type mmTT TTTT
' ||++-++++--object type
' ++---------multiplier
'
' The multiplier is used to define multiple instances of
' the same object on the same "page". Each object will have
' its own YY byte (to define Y-coor and behavior). The only
' downfall, is that all objets share the same XX byte. The
' number of objects defined is mm + 1 (so the max is 4).
'
' YY : Y coordinate YYYY Yaaa
' |||| |+++--attributes
' ++++-+-----Y coordinate
'
' The attribute bits define seperate behaviors for the same
' object, though to some objects, these have no effect. The
' actual "on screen" y-coordinate is (YYYYY * 8).


and some notes on enemies:

' Enemy Types Level Usage
' ----------- ------------ ------------------------
' x=untested
' -=glitch
' #=ok
' --------------------------------------------
' 00=weapon 1xxx567x [3] - XX 00 YY
' YY = YYYY YTTT
' |||| |+++--weapon type
' |||| | 000=[R]rapid fire
' |||| | 001=[M]machine gun
' |||| | 010=[F]flame thrower
' |||| | 011=[S]spread gun
' |||| | 100=[L]laser
' |||| | 101=[B]invincibility
' |||| | 110=[ ]kill all enemies on screen
' |||| | 111=UNUSED (same as 110, but no object is visible)
' ++++-+-----Y coor
' --------------------------------------------
' 01=
' --------------------------------------------
' 02=weapon box 1xxx567x [3] - XX 02 YY (see obj #00 for description)
' --------------------------------------------
' 03=weapon drop 1xxx567x [3] - XX 03 YY (see obj #00 for description)
' --------------------------------------------
' 04=small turret 1xxx-xxx [3] - XX 04 YY
' YY = YYYY Yxxx
' |||| ||++--# of shots fired (00=1, 01=2, 10/11=3)
' |||| |+----???
' ++++-+-----Y coor
' --------------------------------------------
' 05=running man 1xxx-xxx [3] - XX 05 YY
' YY = YYYY YSxD
' |||| |||+--direction (0=left;1=right)
' |||| ||+---go prone (0=false; 1=true)
' |||| |+----stop'n'shoot (0=false;1=true)
' ++++-+-----Y coor
' --------------------------------------------
' 06=rifle man 1xxx567x [3] - XX 06 YY
' YY = YYYY YxCH
' |||| |||+--hide'n'shoot (0=false;1=true)
' |||| ||+---crouch'n'shoot (0=false;1=true)
' |||| |+----???
' ++++-+-----Y coor
' --------------------------------------------
' 07=large turret 1xxx-xxx [3] - XX 07 YY
' YY = YYYY YuuB
' |||| |||+--background (0=rock; 1=jungle)
' |||| |++---UNUSED
' ++++-+-----Y coor
' --------------------------------------------
' 08=3-way d-spread -xxx-xxx [3] - XX 08 YY
' YY = YYYY Yxxx
' |||| |||+--
' |||| ||+---
' |||| |+----
' ++++-+-----Y coor
' --------------------------------------------
' 09=
' --------------------------------------------
' 0A=
' --------------------------------------------
' 0B=up mortar 1xxxxxxx [3] - XX 0B YY
' YY = YYYY Ymmm
' |||| |+++--projectile mode
' |||| | 000=UP x3 spread
' |||| | 001=UP x1
' |||| | 010=UP/R x1
' |||| | 011=UP/L x1
' |||| | 100=UP x1 (high)
' |||| | 101=UP/L x1 (high)
' |||| | 110=UP/L+ x1 (high)
' |||| | 111=UP/L++ x1 (high)
' ++++-+-----Y coor
' --------------------------------------------
' 0C=mortar man -xxx5xxx [3] - XX 0C YY
' YY = YYYY Yxxx
' |||| |+++--UNUSED
' ++++-+-----Y coor
' --------------------------------------------
' 0D=
' --------------------------------------------
' 0E=turret man -xxxx67x [3] - XX 0E YY
' YY = YYYY YSSS
' |||| |+++--firing speed
' |||| | 000=fastest
' |||| | ...
' |||| | 111=slowest
' ++++-+-----Y coor
' --------------------------------------------
' 0F=
' --------------------------------------------
' 10=bomb turret 1xxx---x [3] - XX 10 YY
' YY = YYYY YxxB
' |||| |||+--background (0=wall; 1=jungle)
' |||| |++---UNUSED
' ++++-+-----Y coor
'
' grenade -xxx5--x [3] - XX 10 YY
' YY = YYYY Yxxx
' |||| |||+--
' |||| ||+---
' |||| |+----
' ++++-+-----Y coor
'
' downward flame -xxx-6-x [3] - XX 10 YY
' YY = YYYY Yxmm
' |||| ||++--mode
' |||| || 00=48p + motion activated
' |||| || 01=80p + motion activated
' |||| || 10=112p + motion activated
' |||| || 11=128p + motion activated
' |||| |+----???
' ++++-+-----Y coor
'
' claw -xxx--7x [3] - XX 10 YY
' YY = YYYY Ymmm
' |||| |+++--mode
' |||| | 000=64p [fast start]
' |||| | 001=56p
' |||| | 010=96p [fast start]
' |||| | 011=56p + motion activated
' |||| | 100=64p
' |||| | 101=56p [fast tempo]
' |||| | 110=96p
' |||| | 111=64p + motion activated
' ++++-+-----Y coor
' --------------------------------------------
' 11=sound fx 1xxx---x [3] - XX 11 YY
' YY = YYYY Yxxx
' |||| |+++--???
' ++++-+-----Y coor
'
' single grenade -xxx5--x [3] - XX 11 YY
' YY = YYYY Yxxx
' |||| |||+--
' |||| ||+---
' |||| |+----
' ++++-+-----Y coor
'
' left flame -xxx-6-x [3] - XX 11 YY
' YY = YYYY Yxmm
' |||| ||++--mode
' |||| || 00=48p
' |||| || 01=80p
' |||| || 10=112p
' |||| || 11=128p
' |||| |+----???
' ++++-+-----Y coor
'
' spiked wall -xxx--7x [3] - XX 11 YY
' YY = YYYY YSRR
' |||| ||++--rise speed
' |||| || 000=slow
' |||| || ...
' |||| || 000=fast
' |||| |+----quick start (0=false; 1=true)
' ++++-+-----Y coor
' --------------------------------------------
' 12=explosion 1xxx--xx [3] - XX 12 YY
' YY = YYYY Yxxx
' |||| |+++--UNUSED
' ++++-+-----Y coor
'
' armored vehicle -xxx5-xx [3] - XX 12 YY
' YY = YYYY Yxxx
' |||| |||+--
' |||| ||+---
' |||| |+----
' ++++-+-----Y coor
'
' right flame -xxx-6xx [3] - XX 12 YY
' YY = YYYY Yxmm
' |||| ||++--mode
' |||| || 00=48p
' |||| || 01=80p
' |||| || 10=112p
' |||| || 11=128p
' |||| |+----???
' ++++-+-----Y coor
' --------------------------------------------
' 13=mine cart (<-) -xxxxx7x [3] - XX 13 YY
' YY = YYYY Yxxx
' |||| |+++--???
' ++++-+-----Y coor
' --------------------------------------------
' 14=BOSS Level #?? -xxxxx1x [?] - XX 14 YY
' YY = YYYY Yxxx
' |||| |+++--???
' ++++-+-----Y coor
'
' mine cart (stop) -xxxxx7x [3] - XX 14 YY
' YY = YYYY Yxxx
' |||| |+++--???
' ++++-+-----Y coor
' --------------------------------------------
' 15=mine cart (s->) -xxxxx7x [3] - XX 15 YY
' YY = YYYY Yxxx
' |||| |+++--???
' ++++-+-----Y coor
' --------------------------------------------
' 16=small explosion xxxx5xxx [3] - XX 16 YY
' YY = YYYY Yxxx
' |||| |+++--???
' ++++-+-----Y coor


there's still a lot to be filled in, especially with the enemies. i never got around to figuring out Base I, Base II, or Waterfall.

edit: o yeah, the castlevania 2 editor kinda bumped that one and it really hasn't been worked on in awhile.

NastyNate
Posted on 06-10-08 06:35 AM Link | Quote | ID: 84867


Red Tektite
Level: 22

Posts: 25/76
EXP: 51906
Next: 6444

Since: 07-07-07
From: California

Last post: 5307 days
Last view: 4848 days
haha damn... that youtube video is crazy...
i gotta try that hack lol

messiaen
Posted on 06-11-08 02:09 AM (rev. 2 of 06-11-08 02:09 AM) Link | Quote | ID: 84888


Cheep-cheep
Level: 32

Posts: 7/193
EXP: 204451
Next: 1991

Since: 05-26-08
From: Porto Alegre, Brazil

Last post: 4443 days
Last view: 4771 days
TT SS LLLL tttt ????
Jugle: 00 00 0180 0180 7186

Changing this in the level header seem to affect the pallete.

finisher
Posted on 06-17-08 06:59 PM Link | Quote | ID: 85261


Red Goomba
Level: 18

Posts: 2/48
EXP: 25325
Next: 4572

Since: 06-09-08

Last post: 3956 days
Last view: 2497 days
@Googie: Was that program ever released?

Also, I already have that "Super Contra 2" hack shown in that youtube link video. I actually don't consider that a direct, direct hack as it's a pirated/unlicensed/whatever game. However, its difficulty and sheer murder experience is what matters

Trax
Posted on 07-16-08 12:10 AM Link | Quote | ID: 87511


Yellow Stalfos
Level: 71

Posts: 396/1145
EXP: 3035794
Next: 131320

Since: 07-06-07
From: Québec

Last post: 3627 days
Last view: 2879 days
Hey folks, this post inspired me and I fiddled an editor for Contra. It's just the beginning, but at least I managed to decompress the graphics data and layout some tiles:




A part of the PPU is overwritten by boss tiles during gameplay, that's why we see garbage for now...

Now I understand why there's almost nothing on Contra in the hacking world. The game doesn't have dedicated CHR banks, so it's a pain right at the start. The graphics are compressed and they change drastically during the game. On the other hand, data is fairly easy to hack because some banks do only one thing. For example, bank 2 is used for levels definitions. Bank 3 is used exclusively for levels tile mappings. Bank 4 contains graphics data. I think Bank 1 is for sound and music...


Raccoon Sam
Posted on 07-18-08 02:40 AM Link | Quote | ID: 87606


Cobrat
Level: 56

Posts: 527/672
EXP: 1380026
Next: 18150

Since: 02-19-07
From: Hi

Last post: 3467 days
Last view: 2699 days
Oh my god.

That looks very cool, Trax! It's amusing to see someone in the ROM hacking community to work like 'Hmm, that looks cool, I'll start development on an editor to it!'.

____________________


Trax
Posted on 07-19-08 04:30 AM Link | Quote | ID: 87671


Yellow Stalfos
Level: 71

Posts: 400/1145
EXP: 3035794
Next: 131320

Since: 07-06-07
From: Québec

Last post: 3627 days
Last view: 2879 days
Slow but steady, a little more of the editor. You can select from the meta-tiles to set the brush, and modify the decor. Again, many tiles are garbage, because the PPU is not loaded with the tiles corresponding to the boss graphics. No save function yet. The width field is inert for the moment. It looks like the actual number of pages (0x100 pixels wide) is the number on the header + 2. Bank 2 has 2C4 (708 decimal) bytes of unused space at the end, so we can expect possible expansion of levels...



By the way, Never-Obsolete, I shamelessly stolen the title from your screenshot, I hope you don't mind...


never-obsolete
Posted on 07-19-08 10:01 AM Link | Quote | ID: 87688


Rat
Level: 24

Posts: 24/96
EXP: 74495
Next: 3630

Since: 02-22-07
From: Phoenix, AZ

Last post: 2596 days
Last view: 2596 days
not at all. it's good to see contra getting some attention.

Trax
Posted on 07-21-08 09:43 AM Link | Quote | ID: 87780


Yellow Stalfos
Level: 71

Posts: 402/1145
EXP: 3035794
Next: 131320

Since: 07-06-07
From: Québec

Last post: 3627 days
Last view: 2879 days
Now, some enemies show up. I changed the palette of the decor to green, so the red enemies would be clearly visible, but it's still arbitrary colors. Any data on palettes are welcome. I set all objects to have a X offset of -20. And to make them more "in-game-like", their Y position is shifted too. Notice the Weapon Zeppelin seems farther away to the right than in the game. It's normal. To trigger the apparition of the zeppelin, the object must simply appear on screen (from the right, since the scrolling goes that way)...



Again, controls at the top are still inert. Modifying the level width should be easy, unless there are some other things in the game that could interfere. Nothing new on Base I and II data formats. Level 3 won't be too hard, you just have to switch the axis. All the others are right scrolling, so it'll be pretty much the same as level 1. More to come later...


Googie
Posted on 07-21-08 03:21 PM Link | Quote | ID: 87798


Giant Red Paratroopa
Level: 77

Posts: 306/1407
EXP: 4181095
Next: 10034

Since: 02-19-07
From: Brooklyn, NY

Last post: 9 days
Last view: 9 days
I really like how this is coming along Trax, enemy displays for the win.

____________________
My Linktree

never-obsolete
Posted on 07-21-08 05:55 PM Link | Quote | ID: 87801


Rat
Level: 24

Posts: 25/96
EXP: 74495
Next: 3630

Since: 02-22-07
From: Phoenix, AZ

Last post: 2596 days
Last view: 2596 days
i took a stab at the palettes.


' TT SS LLLL tttt ???? ll cc ?? ?? ?? ?? ?? ?? PP PP PP PP pp pp pp pp mm ?? uuuuuuuuuuuu
'
' Jugle: 00 00 0180 0180 7186 0B 06 F9 FF 05 08 05 08 02 03 04 05 00 01 22 07 0B 00 000000000000
' Base I: 01 00 0682 1887 788E 04 00 FF FF 24 28 29 28 09 0A 04 24 00 01 22 2A 05 00 000000000000
' Waterfall: 00 01 CE84 F88E 1896 07 07 FF FF 0D 0E 0F 00 0B 0C 04 0D 00 01 22 07 07 00 000000000000
' Base II: 01 00 3682 1887 788E 07 00 FF FF 2E 2F 30 2F 2C 2D 04 2E 00 01 22 2A 08 00 000000000000
' Snow Field: 00 00 8F86 9896 689D 13 20 F0 F0 62 63 62 63 3D 3E 04 62 00 01 22 07 13 00 000000000000
' Energy Zone: 00 00 2589 1E9E FEA4 0B 0C DE DE 35 36 37 38 33 34 04 35 00 01 22 07 0B 81 000000000000
' Hangar: 00 00 818B AAA5 4AAD 0D 0E F1 F1 47 57 47 58 45 46 04 47 00 01 22 07 0D 81 000000000000
' Alien's Lair: 00 00 478E CAAD FAB4 09 05 EF EF 4C 4D 4E 4F 48 49 4A 4C 00 01 43 44 09 00 000000000000


PP = bkg pal indexes
pp= sprite pal indexes


and the code:


$D081:85 02 STA $0002 = #$03 ; this code calculates the pointer
$D083:85 36 STA $0036 = #$00 ;
$D085:A5 1A LDA $001A = #$DA
$D087:29 30 AND #$30
$D089:85 03 STA $0003 = #$CE
$D08B:A2 00 LDX #$00
$D08D:86 00 STX $0000 = #$60
$D08F:A9 00 LDA #$00
$D091:85 07 STA $0007 = #$C8
$D093:A4 00 LDY $0000 = #$00
$D095:B9 50 00 LDA $0050,Y @ $0050 = #$02 ; get palette index from array
$D098:0A ASL ; and factor it in to pointer
$D099:79 50 00 ADC $0050,Y @ $0050 = #$02 ;
$D09C:26 07 ROL $0007 = #$00
$D09E:6D 25 D2 ADC $D225 = #$27
$D0A1:85 06 STA $0006 = #$FD
$D0A3:A5 07 LDA $0007 = #$00
$D0A5:6D 26 D2 ADC $D226 = #$D2
$D0A8:85 07 STA $0007 = #$00

$D0AA:A0 00 LDY #$00 ; write bkg color (or transparent for sprites)
$D0AC:A9 0F LDA #$0F ;
$D0AE:9D C0 07 STA $07C0,X @ $07C4 = #$00 ;
$D0B1:E8 INX

$D0B2:A5 74 LDA $0074 = #$00 ; write 3 entries
$D0B4:D0 1A BNE $D0D0 ;
$D0B6:B1 06 LDA ($06),Y @ $002E = #$00 ;
$D0B8:9D C0 07 STA $07C0,X @ $07C4 = #$00 ;
$D0BB:C8 INY ;
$D0BC:E8 INX ;
$D0BD:C0 03 CPY #$03 ;
$D0BF:D0 F1 BNE $D0B2 ;

$D0C1:E6 00 INC $0000 = #$01 ; loop more palettes
$D0C3:E4 02 CPX $0002 = #$20
$D0C5:D0 C8 BNE $D08F


i only tested this for the first level so it may not hold true for all of them.

Trax
Posted on 07-22-08 12:38 PM Link | Quote | ID: 87833


Yellow Stalfos
Level: 71

Posts: 403/1145
EXP: 3035794
Next: 131320

Since: 07-06-07
From: Québec

Last post: 3627 days
Last view: 2879 days
Hmmm, data... Nice work, N-O, I'll check this out and see what I can do...
Do you know where the actual palette data is located?

never-obsolete
Posted on 07-22-08 06:57 PM (rev. 5 of 07-22-08 08:00 PM) Link | Quote | ID: 87843


Rat
Level: 24

Posts: 26/96
EXP: 74495
Next: 3630

Since: 02-22-07
From: Phoenix, AZ

Last post: 2596 days
Last view: 2596 days
palette data starts at $D227 (cpu).


i wrote this function up real quick...

in:
unsigned char paletteIndexes[0x08]
rom[] (global)


out:
unsigned char paletteData[0x20]


#define OFFSET_ADDR 0x01D235 // address of base pointer
#define OFFSET_PAL0 0x01D0BC // address of palette[0]
#define OFFSET_PALBANK 0x01C010 // last prgbank

void get_ContraPalette(unsigned char (&paletteIndexes)[8])
{
unsigned char paletteData[0x20];
unsigned char regX = 0;
unsigned int physAddr;


for (int i = 0; i < 8; i++)
{
physAddr = rom[OFFSET_ADDR] + (rom[OFFSET_ADDR + 1] * 0x100) + (paletteIndexes[i] * 3);
physAddr = (physAddr & 0x3FFF) + OFFSET_PALBANK;


paletteData[regX] = rom[OFFSET_PAL0];
regX++;
for(int regY = 0; regY < 3; regY++)
{
paletteData[regX] = rom[physAddr + regY];
regX++;
}

}
}


i didn't test the function on a rom, but i fed the function indexes $00 to $4C (highest value i saw) and it gave back the correct pointer.

edit: fixed spacing

Trax
Posted on 07-23-08 05:04 AM Link | Quote | ID: 87865


Yellow Stalfos
Level: 71

Posts: 405/1145
EXP: 3035794
Next: 131320

Since: 07-06-07
From: Québec

Last post: 3627 days
Last view: 2879 days
Something's bizarre, there is no palette data at 0x1D0BC...
But I understand what your code is doing, no problem...
Now on to determining how palettes are selected for different sprite parts and meta-tile parts...

never-obsolete
Posted on 07-23-08 03:40 PM Link | Quote | ID: 87879


Rat
Level: 24

Posts: 27/96
EXP: 74495
Next: 3630

Since: 02-22-07
From: Phoenix, AZ

Last post: 2596 days
Last view: 2596 days
0x01D0BC should have been 0x01D0BD, which is where #$0F is loaded from.


$D0AC:A9 0F LDA #$0F ;
$D0AE:9D C0 07 STA $07C0,X @ $07C4 = #$00 ;


Pages: 1 2 3 4 5 6 7 8


Main - ROM Hacking - Red Falcon, Contra editor (Formerly "Contra hacks...") New thread | New reply

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

Page rendered in 0.033 seconds. (358KB of memory used)
MySQL - queries: 132, rows: 172/172, time: 0.020 seconds.