Kirby And The Amazing Mirror hacking.

Teawater
Grand Yoshi
Grand Yoshi
Joined: July 8th, 2009, 3:29 am

June 28th, 2012, 11:07 pm #1

This is a guide to the European version of Kirby and the Amazing Mirror.

To-do: Include addresses for the North American version.

(Everything before 0815C714 may be code?)

0815C714 (0815DEC4) = Graphic (text?) screen data (08182044 = About Copy Abilities ; 081E2664 = ?)
082D96F0 = Graphic (text?) screen data pointers (082D9794 = BOMB description screen)
082DA32C = ?

082DA338 = LZ77 Compressed Graphic?

082DA608 = LZ77 Compressed Graphic?

082DA758 = Main Solidity Table (00-FF)
x00000002 = Underwater
x00000400 = Instant Death
x0?000800 = Gravity (? is gravity direction.)
x00?01000 = Blow-up block (If ? is 0, block is edible; if 1, not edible.)
x00002000 = Hit
x00?04000 = Exits (If ? is 0, press up; if 1 instant warp.)



xF0 = Vulnerable to Kirby
xF1 = Bomb Block
xF2 = Vulnerable to bomb blocks.
xF3 =
xF4 =
xF5 =
xF6 =
xF7 =

xFC = Warp: Underwater: Instant
xFD = Warp: Underwater: Press Up
xFE = Warp: Ground: Instant
xFF = Warp: Ground: Press Up

082DAB58 = Intro Room - Kirby starting rooms
082DAB60 = Intro Room - Kirby starting directions
082DAB70 = Intro Room - Kirby starting coords
082DAB90 = Main Room - Kirby starting rooms
082DAB98 = Main Room - Kirby starting directions
082DABA8 = Main Room - Kirby starting coords
082DABC8 = Main Room - Kirby starting rooms
082DABD0 = Main Room - Kirby starting directions
082DABE0 = Main Room - Kirby starting coords
082DAC00 =
082DAC14 =
082DAC44 = Solidity Code Pointers
082DB044 =

082EE640 =Interface graphics (Numbers, Kirby, Kirby Health, Enemy Health, Phone, Battery)
082EEE40 = Enemy and place names (Pixel data)
08316440 (last at 08341A40) = Ability desc. label/mini-image (Pixel data)
BORROW, GAME OVER, and DEMO graphics here...

0834DD8C = Kirby Ability Code Pointers (What the abilities can do.)
0834DDF8 =

08352B3C =

083C3064 = Sprite bank (?, ?, ?, Palettes, ?)
08452554 =
084829A4 =
084C4224 =
084C50D0 = Sprite palettes
084C8D10 = Sprite pixels (084D08E0 = Uncompressed Kirby sprite)
08873FD0 =


088785D0 = Static and Animated Palette data (Data: Indexed by Room Props x16)
0887DAD4 = Solidity Maps(Data: Indexed by Room Props x1A)
088BF124 = Objects (Data: Indexed by Room Props x20, & x1C?)
088E0938 = (Data: Indexed by Room Props x22)
0893B2C0 = (Data: Indexed by Room Props x24)

0893D610 = Room properties. (x28 bytes an entry; current room number displayed at 02023B28.)
x00 = Song (08001206 (02023518=080013D8))
x02 = ? (08001BC0)
x04 = ? (08001C02)
x06 = ? (08000EEA)
x08 = ? (08000EF2)
x0A = ? (08000CAC; 08001AD4)
x0C = ? (08000CBA; 08001B16)
x0E = ? (08000E12 (x2))
x10 = Unused?
x12 = Priority flags (08000DD2; 08000A46; 08001A90; 08001B74; 08033F76; 0803404E)
x14 = Pixel Data index (08000942; 08002282)
x16 = Palette Data index (08000962; 0800317E)
x18 = Map Data (08000B46)
x1A = Solidity Map (08000CDA; 08001132)
x1C = NPC/Enemies list index? (2) (08000B70; 080009D4)
x1E = Background index (08000B5C)
x20 = NPC/Enemies list index (08000CFE)
x22 = ? (0800EDC2; 08000D1A; 08001156; 0800EE8A; 080156CA)
x24 = ? Exits? (08002BE6; 08002C24)
x26 = Unused?

08946FA8 = (Probably map data, will check soon.)

08947758 ; 08947EC8 = Map Data (Room width/height) (Data: Indexed by Room Props x18)
089CD28C = Compressed pixels (Data: Indexed by Room Props x14)
08A50918 = Map Background (Data: Indexed by Room Props x1E)

08B628F4 = Pointers to 08150184 code.

08B64304 = Audio-related
08B64334 = Song list (Pointers: Indexed by Room Props x00)
08B65694-08D6A1F0 = Song data

08D6A278 =

08D6ACB0 =

-labels

08D6AD20 =

08D6AD28 =

08D6AD38 =

08D6ADB4 =

08D6ADBC =

08D6ADC0 =

08D6AEE4?

08D6AFC4 = Ability desc. label/mini-image pointers (08D6B0E8 = Bomb)

08D6B344 = Enemy and place names (Language Pointers)

08D6B404 =
08D6B414 =
08D6B43C =

08D6CB40 = (Not pointers.)

08D6D3C4 = Animated Palette pointers.

*Pointer banks that are indexed by Room Props!*
08D6D864 = Palette data (Pointers: Indexed by Room Props x16)
08D6D90C = Solidity Maps (Pointers: Indexed by Room Props x1A) RL Compressed
08D6DD88 = Object list (Pointers: Indexed by Room Props x20, & x1C?)
08D6E204 = (Pointers: Indexed by Room Props x22) RL Compressed
08D6E680 = (Related to exits?)(Pointers: Indexed by Room Props x24)
08D6EAFC = Map Data (Room width/height) (Pointers: Indexed by Room Props x18) LZ77 Compressed
08D6EF78 = Pixel data (Pointers: Indexed by Room Props x14) LZ77 Compressed
08D6F000 = Map Backgrounds (Pointers: Indexed by Room Props x1E)



08D782E0 = Game header 2

08F40580 = FF-filled unused data.
If you ever find an error in any of my reference materials, PLEASE let me know.

[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
Actually, I think they just ran out! Sorry.
Quote
Like
Share

Xira
Yoshi Mage
Yoshi Mage
Xira
Yoshi Mage
Yoshi Mage
Joined: January 7th, 2011, 1:18 am

June 29th, 2012, 4:30 am #2

Just wondering, since you're gonna find all these in the U (North American) version as well, and would most likely make a editor for that version if any, why not just get that version right away and save yourself the trouble of finding some things twice?
Quote
Like
Share

Xira
Yoshi Mage
Yoshi Mage
Xira
Yoshi Mage
Yoshi Mage
Joined: January 7th, 2011, 1:18 am

April 25th, 2014, 2:12 am #3

TO USE THESE IN A HEX EDITOR, REMOVE THE STARTING 08 FROM THE ADDRESSES. FOR USE IN MEMORY VIEWER, KEEP THEM.

For US version (as all my research will be unless stated otherwise):
082D88B8 = Main Solidity Table
088B4AD8-088B4CAB = All Main Hub Room Objects (there is 13 of them)


OBSERVATION NOTES FOR OBJECTS:
[???] Is unproven theory.

An object is 36 [decimal] Bytes & consist of items, doors, enemies, and possibly more.

*An item starts with the bytes "01 24" to state that the upcoming data is an object. [maybe???]
*The following two bytes is the numeric position of the item. The first item in the room is "00 00", the next "00 01", etc.
*The next 2 bytes are mysterious, and the following 2 bytes are the X position, with the next following 2 bytes being the Y position.
*After a 2 byte gap, the following two byte is the object ID.
*The remaining bytes have yet to have their meaning discovered.
Quote
Like
Share

Xira
Yoshi Mage
Yoshi Mage
Xira
Yoshi Mage
Yoshi Mage
Joined: January 7th, 2011, 1:18 am

July 27th, 2015, 2:53 am #4

Object List:
"(Again)" Means I've already seen the object, and do not see any noticeable changes.
"???" or "Nothing" means I did not find anything when the ID was in play.



Enemies:
00 = Waddle Dee
01 = Bronto Burt
02 = Blipper
03 = Glunk
04 = Squishy
05 = Scarfy
06 = Gordo
07 = Snooter
08 = Chip
09 = Soarar
0A = Haley
0B = Roly-Poly
0C = Cupie
0D = Blockin
0E = Snooter (Again?)
0F = Leap
10 = Jack
11 = Big Waddle Dee
12 = Waddle Doo
13 = Flamer
14 = Hot Head
15 = Laser Ball
16 = Pengy
17 = Rocky
18 = Sir Kibble
19 = Sparky
1A = Sword Knight
1B = UFO
1C = Twister
1D = Wheelie
1E = Noddy
1F = Golem
20 = Golem (Alt Pallet 1)
21 = Golem (Alt Pallet 2)
22 = Foley
23 = Shooty
24 = Scarfy (Again?)
25 = Boxin
26 = Cookin
27 = Minny
28 = Bomber
29 = Heavy Knight
2A = Giant Rocky
2B = Metal Guardian
2C = Nothing
2D = Batty
2E = Foley (Automatic Trigger)
2F = Bang-Bang
30 = Just an explosion
31 = Nothing
32 = Droppy
33 = Prank
34 = Mirra
35 = Shotzo
36 = Nothing
37 = Waddle Dee (Again?)

Mini-Bosses
38 = Mr. Frosty
39 = Bonkers
3A = Phan Phan
3B = Batafire
3C = Box Boxer
3D = Boxy
3E = Master Hand
3F = Bombar
40-47 = ???

Bosses
48 = Gobbler
49 = ???
4A = ???
4B = Mega Titan
4C = ???
4D = Crazy Hand
4E = (Dark?) Meta Knight
4F = Dark Mind
50 = Dark Mind Mirrors
51 = Dark Mind Kirby Fly-Away Trigger
52 = (Dark?) Meta Knight
53-5E = Nothing

Collectible Items
5E = Cherries
5F = Pep Brew
60 = Meat
61 = Maxim Tomato
62 = Battery
63 = 1UP
64 = Lollipop
65 = Mirror Shard
66-6C = Nothing (???)

Interactive Items
6D = Small Button
6E = Fire
6F = Mirror (Door)
70 = Shotzo (Dud)
71 = Triggered Vertical Sliding Door
72 = Mirror to Meta Knight Boss
73 = ???
74 = ???
75 = ??? Can freeze game if not loaded correctly
76-7A = ???
7B = Star Platform
7C = Left Facing Flame
7D = Large Star Stone Block (with no collision?)
7E = Large Star Stone Block
7F = ???
80 = Small Chest
81 = Large Chest
82 = ???
83 = ???
84 = Ridable Star (freezes if destination not set)
85 = Ridable Star (glitches room and causes death if destination not set)
86 = ???
87 = ???
88 = Large Star Stone Block (again?)
89 = Large Star Stone Block (again again?)
8A = Kirby Cannon
8B = Manual 8 Directional Kirby Cannon
8C = Special Hub Mirrors
8D = A script Involving Kirbies that make them useless
8E = A script Involving Kirbies that make them useless
8F = Master sword (non-collectible)
90 = Puff of dust clouds
91 = Half a mirror that goes boom? (Can white freeze the game)
92 = Beam Ability Stand (Gives ability)
93 = Wheel Ability Stand
94 = Parasol Ability Stand
95 = Sword Ability Stand
96 = Throw Ability Stand
97 = RANDOM Ability Stand (unused?)
98 = Master sword
99 = ???
9A = ???
AF = Banana Peel

Effects:
9B = Pop Explosion Light
9C = Pop Explosion Heavy
9D = Foley's Propellers Leaves
9E = Pop Explosion Medium Heavier
9F = Pop Explosion Medium
A0 = Can't tell, graphics are glitched
A1 = Pop Explosion Faint
A2 = ???
A3 = Vanishing Star
A4 = Vanishing Star (Again?)
A5-A7 = Explosion Pop Heavy (Again?)
A8 = Bomb Explosion
A9-BB = More Generic Explosions (Although ID AF is found at the end of objects section)
BC = Mega Titan Hand
BD = Mega Titan Hand
BE = Mega Titan Hand
BF = Mega Titan Hand
C0-CF = More Generic Explosions
D0 = Punch Effect
D1-D2 = Slightly different explosions
D3 = Another Generic Pop Explosions
D3-D4 = Pop Explosions That Causes The Game To Freeze
D5 = Sir Kibble's Cutter
D6 = Shot Sound
D7 = Shot Sound
D8 = Whizz Sound
D9 = Bubble Pop Sound
DA = Shot Sound
DB-EF = Game Freezes (Nothing set?)
F0 = Game Reset
F1-F9 = Game Freezes (Nothing set?)
FA = Nothing
FB-FF = Game Freezes (Nothing set?)

Quote
Like
Share

Xira
Yoshi Mage
Yoshi Mage
Xira
Yoshi Mage
Yoshi Mage
Joined: January 7th, 2011, 1:18 am

October 12th, 2015, 12:40 am #5

Oh lookie, a video was made regarding the information in my post above: https://youtu.be/d9cCptmbWyg
Quote
Like
Share

Teawater
Grand Yoshi
Grand Yoshi
Joined: July 8th, 2009, 3:29 am

October 12th, 2015, 6:01 am #6

wrote:Oh look, I hacked/modded a non-PC game without anyone's help!
Good! Sooo.... would this be 100% true? (Didn't use any info from my first post at all? Indirectly or directly.) (It's okay either way, I don't mind.)

And yay @ video....! But.... it _____ your _____. xP
If you ever find an error in any of my reference materials, PLEASE let me know.

[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
Actually, I think they just ran out! Sorry.
Quote
Like
Share

UltimateXeallar
Hatchling
Hatchling
Joined: August 30th, 2015, 11:29 pm

October 12th, 2015, 6:03 am #7

I didn't even know hacking this game was still a thing...
Nice video.
Pretty much my experience with modding this game is screwing up the graphics purposefully. Derp.
d00d
Quote
Like
Share

Xira
Yoshi Mage
Yoshi Mage
Xira
Yoshi Mage
Yoshi Mage
Joined: January 7th, 2011, 1:18 am

October 12th, 2015, 10:17 am #8

Teawater wrote: (Didn't use any info from my first post at all? Indirectly or directly.)

And yay @ video....! But.... it ~SsshWhyUMention~. xP
Can't really say, you don't really have much on objects.

[member]Not as much anymore ...well this conversation still does. WE MUST PURGES ITZ[member]
[+] Spoiler
[member]P.S. Guests can't read this text. ;P[member]

@UX; Yes hacking it is a thing. Just like hacking the NES version of SMB3 instead of the much improved GBA one is still a thing. Also, for a fun fact it is the only Kirby game ever owned in my family. :P
Quote
Like
Share

Teawater
Grand Yoshi
Grand Yoshi
Joined: July 8th, 2009, 3:29 am

October 13th, 2015, 2:10 am #9

wrote:088BF124 = Objects (Data: Indexed by Room Props x20, & x1C?)
08D6DD88 = Object list (Pointers: Indexed by Room Props x20, & x1C?)
Well, it's still [something], nonetheless... (Yes, the 0.00001% of information does count. :P)
wrote:[member]Not as much anymore ...well this conversation still does. WE MUST PURGES ITZ[member]
[member]I see you fixed it. Mostly... If it wasn't for the ... um... whatever...., I'd say perfectly. (Yes, the 0.00001% of information does count. :P)

Wait... I just said that, didn't I? xP[member]
If you ever find an error in any of my reference materials, PLEASE let me know.

[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
Actually, I think they just ran out! Sorry.
Quote
Like
Share

mugg
Hatchling
Hatchling
mugg
Hatchling
Hatchling
Joined: January 1st, 2017, 4:23 pm

January 1st, 2017, 4:38 pm #10

Hello, I'm new to this forum. Just dropped by to say thanks for the info on how to change objects.
wrote:97 = RANDOM Ability Stand (unused?)
I think it's used in boss endurance.

If you come across any unused content or graphics in this game, please feel free to let me know.

I have successfully used your knowledge to test for objects in the prototype rom and was able to use the information to write a little article here. Thanks much!
Quote
Like
Share

Teawater
Grand Yoshi
Grand Yoshi
Joined: July 8th, 2009, 3:29 am

January 2nd, 2017, 5:41 pm #11

Welcome to the forums mugg... No wonder your name looks familiar. TCRF. XD Good website.

I'm charleysdrpepper on there, but ofcourse that's obvious. :D (The person who has done a lot of Golden Sun and M&L research.)

And you are welcome.

@unused content: Maybe... But that depends on if I remember to/whatever... I'm sure editing TCRF or posting a topic/post here could work....)
@unsued tiles: Checked VBA's Tile Viewer? When you make the image, you may want to show 256 tiles (16x16)... They should be (mostly) in the same order as the collision tileset. (Edit: Oh, I have it on my photobucket. XD http://s900.photobucket.com/user/charle ... .html?o=78 )
Also, I think that the 1-32 numbered tiles might have represented something, unless I'm mistaken???/I forget now. (Maybe Door IDs? But we can always look that up.)
If you ever find an error in any of my reference materials, PLEASE let me know.

[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
Actually, I think they just ran out! Sorry.
Quote
Like
Share

Xira
Yoshi Mage
Yoshi Mage
Xira
Yoshi Mage
Yoshi Mage
Joined: January 7th, 2011, 1:18 am

January 4th, 2017, 1:44 am #12

Hey mugg welcome to YL! Glad to hear you found the information here useful.
Quote
Like
Share

mugg
Hatchling
Hatchling
mugg
Hatchling
Hatchling
Joined: January 1st, 2017, 4:23 pm

January 5th, 2017, 10:37 pm #13

@Teawater, haha yeah you might have seen my name in the change log. I'm on fire on tcrf these days, it's like I have found a new passion.

I think I know the basics of ripping graphics, but in VBA the tiles show up garbled or as pieces and I can't be bothered putting them together for hours. Isn't there a faster way?

I have put your amazing mirror debug sheet on the tcrf Amazing Mirror page in the todo, fyi. Thanks

---
To stay on topic here:

JP Prototype ROM

$0871A5C0 (ROM) - ID of first waddle doo in RR

US Version ROM

$088B4B50 (ROM) - ID of left area mirror, main hub room


I deleted my notes, but as far as I remember, the 0x8E object (a script that somehow disables all the Kirbys) seems odd. If it is triggered when only you (and not the other Kirbys) are in the room, it spawns a few question mark sprites over and over... strange. Is the object used for a cutscene somewhere, I wonder...



Quote
Like
Share

Teawater
Grand Yoshi
Grand Yoshi
Joined: July 8th, 2009, 3:29 am

January 6th, 2017, 7:42 am #14

@Faster way: That depends.... I imagine it possible to like... take advantage of VRAM & inserting hex to put them together... but I think I was using Paint.NET when I put those together myself, though? (Assuming I remember correctly... I pt it together a long time-ish. ago... so,...)

@todo postage: Okay... Still need to make sure the gravity slopes are correct (Since I probably randomly guessed/no idea.) ... and add in the fuse tiles.... (I think one has to guess what they would look like if not checking for map data/debug stuff.... but I was going by what the collision tiles do.)

...
Hm...
If you ever find an error in any of my reference materials, PLEASE let me know.

[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
Actually, I think they just ran out! Sorry.
Quote
Like
Share

mugg
mugg

October 1st, 2017, 3:02 pm #15

Hi it's been a while.
I would like to learn what determines where in memory the enemy slots start.

In room 611 (radish ruins 2nd switch room, leave to the right), there is a Mirra which has these addresses:

Code: Select all

$95	x
$99	y
$8C	hitbox x
$8D	hitbox y
$8E	hitbox width
$8F	hitbox height
But room 101 (rainbow road, very first room) has a Waddle Doo that comes at you when you start going right and he has:

Code: Select all

$49	x
$4D	y
...
Why do they both start at different points?
What is it that determines the starting point?
Thanks in advance
Quote
Share

mugg
mugg

October 1st, 2017, 6:40 pm #16

Sorry for double posting...

I already found a solution for my case. But I'm interested in more things:
- a complete room list, if there is one?

- where is the content of your full mouth stored?
(whether it is double or single star, if it's a mix or ability or nothing, and if it's a mix what the starting ability is)

- the % calculation
Quote
Share

Teawater
Grand Yoshi
Grand Yoshi
Joined: July 8th, 2009, 3:29 am

October 2nd, 2017, 3:53 am #17

Room list: Though we have Room Properties listed above, I don't recall having a room list, so nope.

Full mouth???
% calculation?
It's been so long since I actually looked at Amazing Mirror... I may need a refresher....
If you ever find an error in any of my reference materials, PLEASE let me know.

[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
Actually, I think they just ran out! Sorry.
Quote
Like
Share

mugg
mugg

October 7th, 2017, 10:54 am #18

To be more clear with my questions:

Full mouth:

Where does the game store the information,
- whether it's a single or a multi-star?
- what ability is in your mouth, before absorbing it?

% calculation

On the file select screen, the game will tell how much % has been completed for a file. The completion is based on
- The amount of rooms you visited
- The areas you unlocked (= the big switches)
- The mirror pieces you collected
- The levers you activated (there are 4 of them)
- Treasure chests
All of these things are stored as flags.
For example, Kracko's mirror piece is EWRAM address 0x38970, 1st bit.
The ability room which is unlocked after unlocking all the areas, is EWRAM 0x28C58, 1st bit. Etc.
These flags may also be stored in SRAM, but I don't want to bother with cracking the checksum mechanism right now.

I'm only interested in the "on the fly" calculation that is done when the file select screen is brought up.

Also:

Hitboxes

For enemies and the Kirbys, the hurtboxes are stored in EWRAM. Enemy slots are more or less at fixed offsets. My luascript does a search every 12th frame based on the "FF FF FF 01" that each slot has at the beginning. This all works fine enough.

For hitboxes (stars that you shoot out of your mouth, sliding, etc.), they are stored in IWRAM. IWRAM stores things at dynamic offsets. I could search for "FF FF FF FF" here, but I think it would be nice to understand how the game stores the starting point. Like how it does in Mario & Luigi, if you recall.

Not having to search starting offsets would mean a boost in performance for my luascript.


Thanks in advance for any help!
Quote
Share

Teawater
Grand Yoshi
Grand Yoshi
Joined: July 8th, 2009, 3:29 am

October 8th, 2017, 11:22 am #19

% Calculation:

Function is at 08139204:

02038960 = Treasure: 128 flags are read. (Just add them all up... 0-128 = x) ; (x * 39 / 84) (Total: 59%) Actually, it's probably 39 points for the 84 items? (Because a ton of these flags might go unused even though they are still read in the calculation.)
0893D3F0 = Maps: 0x110 rooms that count toward percentage. (Flags can be read at 02028CA0 (16-bits, the 0x8000 bit in each.)) (x * 37 / 0x110) (Total: 37%)

02028C10 = Unlockable areas: 1% for each non-zero 32-bit (Total: 15%) (?, Moonlight Mansion, Rainbow Route, Cabbage Cavern, ...)
Each mirror piece = 1% = (Total: 8%)
0203AD2C = Unknown: 1% if this is 9999+ (0x270F)

59 + 37 + 15 + 8 + 1 = I went over...
39 + 37 + 15 + 8 + 1 = 100


-----
@Mouth: Oh.... Umm... Opening the game up in VBA clarified the stars bit... sort of... I just need to see when double stars happen.
If you ever find an error in any of my reference materials, PLEASE let me know.

[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
Actually, I think they just ran out! Sorry.
Quote
Like
Share

heynow
Hatchling
Hatchling
Joined: March 10th, 2018, 9:00 pm

March 10th, 2018, 9:21 pm #20

Hi, sorry for the late reply. I use this thread a lot because this is the only place where i can get object IDs for Kirby and the amazing mirror, so thank you guys. Btw, some boss IDs that are "???" are actually bosses, you just have to wait for them to appear (like Wiz or Mega Titan's head.) Also I have a question, what can you do with the ability code pointers in the European version? What use does it have? Is it possible to swap parts of movesets of an ability with another? (Sorry if my English is bad)
Quote
Like
Share

Teawater
Grand Yoshi
Grand Yoshi
Joined: July 8th, 2009, 3:29 am

March 11th, 2018, 2:47 am #21

0834DD8C = Kirby Ability Code Pointers (What the abilities can do.)

This? Yeah, you can swap the pointers and see what happens. If you know thumb code, you can also follow the pointers and edit them.
Example:
First ability pointer is 08054789, right? Well, if it is an odd number, it means it's thumb code (Even numbers are for arm code.)
So that's when you go into Tools>Disassemble... and check the code at 08054788 (Make sure it's displaying in Thumb.)
And for learning purposes, I recommend using GBATEK and a breakpoint debugger such as SDL-H or no$gba debugger. (A word of warning is that it may not be straight-forward without taking notes. Either on paper, or mentally.)
If you ever find an error in any of my reference materials, PLEASE let me know.

[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
[+] Spoiler
Actually, I think they just ran out! Sorry.
Quote
Like
Share

Confirmation of reply: