欢迎光临散文网 会员登陆 & 注册

rom map de aos

2022-01-16 02:23 作者:韩法混血十萝Official  | 我要投稿


Starting stats (hardcoded):

08033DC2,1 - Starting STR

08033DC6,1 - Starting CON

08033DCA,1 - Starting INT

08033DCE,1 - Starting LCK


0804BA26,1 - Number of ability souls in the game (hardcoded).


080E0DF8 - List of songs->text indexes for sound test mode.

  Entry length 4.

  00,2: Song index.

  02,2: Text index.


080E1320 - List of damage multipliers for the player's jumpkick/weapon/slide attacks.

  Each entry is a halfword.

  Indexes:

    2 (080E1324) - Jumpkick

    3 (080E1326) - Weapon

    4 (080E1328) - Slide (and Julius's uppercut)

  The other types of attack don't use this list so those entries are just 0.

  A 0x10 multiplier is equivalent to 1.0. For example, jumpkick has a multiplier of 8, meaning jumpkick damage is equivalent to STR*0.5.


080E13BC-080E1553 - List of skill gfx.

  Entry length 0xC.

  00,4: GFX pointer

  04,4: Palette pointer

  08,4: Sprite pointer


080E15A8 - List of red souls.


080E1CD0 - List of OBJ palette indexes for each soul type.

  4 entries, each is a byte, the OBJ palette index for that type of soul.

  0 (red) - 7

  1 (blue) - 6

  2 (yellow) - 8

  3 (ability) - 9


080E2B04-080E2B23 - List of how VRAM indexes map to tile offsets in VRAM.

  Each entry is a halfword.

  The index is a VRAM index in terms of 128x32px chunks.

  Each value is an offset in VRAM in terms of 8x8px tiles. So multiply this by 0x20 to get the offset in bytes.

  The way these indexes would map out visually to VRAM is like this:

    [    0    ] [    4    ]

    [    1    ] [    5    ]

    [    2    ] [    6    ]

    [    3    ] [    7    ]

    [    8    ] [    C    ]

    [    9    ] [    D    ]

    [    A    ] [    E    ]

    [    B    ] [    F    ]

  So e.g. F means the player's spot in VRAM, 0 means the common sprite's spot, E means the player's weapon's spot, etc.


080E2B34-080E2B43 - List of animation function pointers?

  4 entries in total.

  The animation's function index is the index in this list.


080E2B4C - List of metadata about variable-width font characters.

  Entry length 4. 0xDD entries in total?

  The index in this list is the index of the text character.

  00,01: ? (This is read, but is always just 0.)

  01,01: Width of this character in pixels.

  02,02: ? (This doesn't seem to be read, and is always just 0.)


0850A136-0850AD75 - List of font pixel data.

  Entry length 0xE. 0xE0 entries total.

  The first entry is character 0x20.

  00,0C: The pixels.

  0C,02: The character number (big endian). Not sure if this is used for anything.


080E9644 - List of enemy DNA.


080EA628-020EA709 - List of the enemy name text IDs.

  Entry length 2.

08506936-08506A49 - List of item description text IDs.

  Entry length 2.


080E11C4 - Soma's sprite pointer.

  This sprite has no animations and only a single static frame composed of two parts placed on top of each other.

  This is basically just a dummy to put Soma's top and bottom halves together from how they're arranged in VRAM.


08118D08-08118D23 - List of entity sizes for checking if certain entities have gone off screen (so their logic can be paused until they're on screen again).

  Entry length 4.

  00,2: Width.

  02,2: Height.

  These aren't perfect representations of every entity's size, just generic sizes like 8x8, 16x16, 48x48, etc, used to estimate the size.


081183F4-08118437 - A palette list, probably for several things?

  Palette 01 has the text colors used in the bestiary list.


082097D4 - Soma's palette.

  0801462E - Has it hardcoded.


08264398 - GFX tiles for the pause screen.

0826664C - Palette list for the pause screen.

  These include Soma's face, the static text, menu borders, etc.


084F0D8C,1 - New game starting sector index.

084F0D8D,1 - New game starting room index.

084F0D92,2 - New game starting X pos.

084F0D94,2 - New game starting Y pos.


084F106C - List of songs that play in each sector.

  Halfwords.


084F10AC-084F10B3 - List of create function pointers for each player character (Soma and Julius).

084F10B4-084F10BB - List of update function pointers for each player character (Soma and Julius).


084F1238 - List of pointers to weapon swing animation indexes.

  Index is the player's state, 0 for standing, 1 for crouching, 2 for in the air. (Maybe more?)

  Each pointer points to a list of player animation indexes. Each group of 3 bytes is for a weapon attack type. Each byte within the group is for a weapon swing animation.


084F128C - differentiates evil butcher/ripper knives

  Entry length 0x10.

  00,4: GFX pointer

  04,4: Palette pointer

  08,4: Sprite pointer

  0C,


084F12C8 - Has data to differentiate projectile red souls that share the same code pointer 08025785/08028EC1.

  The red soul data's var A is the index in this list.

  Entry length 0x18.

  00,4: X velocity.

  04,4: Initial Y velocity.

  08,4: Y acceleration (gravity).

  0C,1: Skill GFX index.

  0D,1: Sprite frame index.

  0E,1: Sprite animation index.

  0F,1: Palette index?

  10,2: SFX to play on throw.

    0 means no SFX.

  12,2: Bitfield affecting the behavior of the projectile.

    ?

    0001 - Whether this projectile's sprite should be animated as opposed to a static frame.

      If set, the projectile's animation is set to the animation index at 0E.

      If not, the projectile's frame is set to the frame index at 0D.

    0002 - Breaks on contact with the floor?

    0008 - If set, this entity's pointer gets stored to 02013160.

    0080 - runs code at 0802583C

    0200 

    0400 

  14,2: 

  16,?


0850E968 - List of room pointers for transition rooms.

  00000000 marks the end of the list.


085254A0-085254BF - List of layer metadata pointer for each pause menu subscreen.

  8 entries in total.

  Each entry:

    00 0815E940 - Main pause screen

    01 0815E790 - Soul set

    02 0815E8B0 - Equip

    03 0815E820 - Item use

    04 0815E700 - Ability souls

    05 0815E700 - Unused (would be for Sleep)

    06 0815E670 - Config

    07 0815E700 - Unused (would be for Enemy)


085255FC - List of palette shifts.

  Entry length 8.

  0,4: Palette list pointer.

  4,2: Palette index.

  6,2: Duration in frames to stay on this palette.


08525FBC-08525FFB - List of warp points.

  Entry length 8.

  00,2: X pos on the map in tiles.

  02,2: Y pos on the map in tiles.

  04,4: Room pointer of the warp point.


08526004 - List of breakable wall gfx/palette/sprites.

  Entry length 0xC.

  0x8 entries total.

  00,4: GFX asset pointer.

  04,4: Palette list pointer.

  08,4: Sprite pointer.


08526064 - List of breakable walls.

  Entry length 0xC.

  0x12 entries total.

  Var A of the breakable wall entity is the index in this list.

  00,2: Which visual type to use for this wall.

    Index in list 08526004.

  02,1: Palette index.

  03,1: Sprite frame index.

  04,1: 

  05,1: 

  06,1: Width in pixels.

  07,1: Height in pixels.

  08,1: 

  09,1: (gets copied to the breakable wall entity+14,1)

  0A,2: Unused, padding?


08526390-085263A7 - List of boss rush rewards.

  00,2: Maximum number of frames you can take to complete boss rush and still get this reward.

  04,4: Item global ID+1 of the reward.


08526658-085266D7 - List of pointers to event create functions (for object 20).

  The event object's var A is the index in this list.

085266D8-08526757 - List of pointers to event update functions (for object 20).

  The event object's var A is the index in this list.


Shop item pools:

08526C6C-08526C77 - List of shop item pools:

  08526C04

  08526C1C

  08526C40

  In each of those item pools, the first byte is the number of items in this pool.

  Then each item also takes up one byte. But these aren't item IDs - they're indexes in list 085269FC.

085269FC - List of allowable items that can be in the shop.

  Each entry is 4 bytes long.

  00,1: Item type.

  01,1: Item index.


08526C78-08526CE3 - List of BG layer info for each event face portrait.

  Entry length 0xC.

  00,04: GFX pointer.

  04,04: Palette list pointer.

  08,04: Layer metadata pointer.


rom map de aos的评论 (共 条)

分享到微博请遵守国家法律