Skip to content

Instantly share code, notes, and snippets.

@heuripedes
Last active December 31, 2019 15:37
Show Gist options
  • Save heuripedes/0be1eaf68b7a466340f7799847131cfe to your computer and use it in GitHub Desktop.
Save heuripedes/0be1eaf68b7a466340f7799847131cfe to your computer and use it in GitHub Desktop.
  • $0020 - Current level (called round?)
  • $0021 - Current level bonus (this value is displayed after multiplying by 100)
  • $001A - Joypad input
  0000 0000
  |||| ||||
  |||| |||+- right (1)
  |||| ||+-- left  (2)
  |||| ||+-- up    (4)
  |||| |+--- down  (8)
  |||+- Start (1, pause, confirm etc)
  ||+-- Select (2, skip level)
  |+--- B (4, jump)
  +---- A (8, jump)
  • $0044 - player previous direction? (copied from $0052)

  • $0045 - player previous tile_id? (copied from $0721)

  • $0046 - player previous direction? (copied from $0052)

  • $0050 and $0051 - something related to jumping

    • $0050 is 0 when standing and 1 when jumping
    • $0051 is 0x12 when standing. goes from 0x03 at the start of the jump, to 0x0b at the peak of the jump, and back to 0x12
    • Because these two addresses are being constantly written, I suspect that gravity is being applied at all times.
  • $0052 - either direction player is facing or last directional input

  • $0053 - player xspeed (incremented by 1 each frame, capped at 2)

  • $00D0 - an enemy metasprite used to calculate the enemy position ($00d0 = y, $00d3 = x)

// fucking japs, man
struct Sprite {
  uint8_t y;       // 00
  uint8_t tile_id; // 01
  uint8_t palette; // 02  00 = enemy, 01 = player
  uint8_t x;       // 03
} // size 4;

struct MetaSprite {
  Sprite top_left;     // 00
  Sprite top_right;    // 04
  Sprite bottom_right; // 08
  Sprite bottom_left;  // 0c
} // size 16;
  • $0700 to $07FF seems to be an array of MetaSprites
  • $0700 helicopter and red baloon MetaSprite
  • $0720 player MetaSprite
  • $0730 fireball MetaSprite (moves up/down in a sine wave from left to right)
  • $0740 enemy MetaSprite
  • $0750 enemy MetaSprite?
  • $0760 enemy MetaSprite?
  • $0770 "Help!" balloon MetaSprite (doesn't move, takes 64 frames to appear, stays for another 64)
  • $0780 girl MetaSprite
  • $0790 fruit1 MetaSprite
  • $07a0 fruit2 MetaSprite
  • $07b0 fruit3 MetaSprite
  • $07c0 fruit4 MetaSprite
  • $07e0 spring MetaSprite
  • $07f0 spring MetaSprite

Entities:

  • Helicopter:
    • Moves from right to left in a 3 tile wide sine wave centered at the player (i.e. moves from one tile bellow the player to one tile above it).
    • Only seems to come when the vertical area overlaps with an enemy.
  • Red Balloon:
    • Moves from left to right in a similar manner to the Helicopter.
    • Only seems to come when the vertical area doesn't overlap with an enemy.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment