Magical Vacation/RAM map

From Data Crystal
Jump to navigation Jump to search

Chip tiny.png The following article is a RAM map for Magical Vacation.

$020000D0-$02000107 - Gets values from $080C5590 at $08001724 / Data from here is exchanged with data at $0203BB68 (see $080BDFD0, for example)
$02000108           - Loaded at $08008E98

$02000330-$02000331 - Table Number Entry where the Main Loop Jumps next

$02000340           - Loaded at $08008E98

$02000360           - Loaded at $08008E98

$02000EF0           - Loaded at $0805C2C8, seems to contain datasets in $38 bytes size

$020010B0           - Loaded at $0805C2C8

$02001190           - Loaded at $0805C2C8
$02001191           - Contains a value between #$00 and #$06 (always even number), index for registers $02001192-$02001199 (see $0805BEAC)
$02001192-$02001199 - Storage for doublebyte values (see $0805BEAC), these are Load Indexes for a address table in the subroutine at $0805C2C8. (Sound Effect(!) Related)

$0200119C-$0200119F - Address of the next Data for Sound A
$020011A0-$020011A3 - Compare-Address for Sound A
$020011A4-$020011A7 - Jump Back Address(!?!) for Sound A
$020111A8-$020011AB - Note Duration(!?!) for Sound A

$020011BC-$020011BD - Buffer for $04000080/1 (SOUNDCNT - Control Stereo/Volume/Enable  Stereo/Volume/Enable)

$020011D0           - Loaded at $0805C2C8

$02008678           - Loaded at $08008E98

$020096B0           - Loaded at $08008E98



$02029CB0           - Loaded at $08008E98

$0202DA08-$0202DA09 - (Random Number?)

$0202DE30-$0202DE33 - Set to #$0203BBA0 in Intro - Contains the address of the graphics settings
$0202DE34-$0202DE37 - Set to #$0203CAD0 in Intro - Contains the address of the graphics buffer offset
$0202DE38-$0202DE3B - Set to #$0203CAC0 in Intro
$0202DE3C-$0202DE3F - Set to #$0203BBF0 in Intro
$0202DE40-$0202DE43 - Set to #$0203BC10 in Intro

$0202DE54-$0202DE57 - Seems to be related to the character portrait rotation in the Intro (found via testing)

$0202DE5C           - In Intro, this contains the X-offset for the text in the Storybook/Character Presentation segments (found via testing)

$0202DE5E           - In Intro, this contains the Y-offset for the text in the Storybook/Character Presentation segments (found via testing)

$0202DE60-$0202DE61 - A Intro Frame Counter for each Storybook pic / character presentation (found via testing)

$0202DEAC-$0202DEAF - Something like a Global Frame Counter for the Intro (stops after leaving). Just counts upward. 32-bit size! (found via testing)
$0202DEB0-$0202DEB1 - A Frame Counter for certain segments of the Intro (like: how long the whole storybook or character pres. segment goes on) (found via testing)

$0202DEB4-$0202DEB5 - A Frame Counter for certain segments of the Intro (copy of $0202DEB0/1, no apparent differences) (found via testing)

$0202DEBC-$0202DEBD - Number of how many pixels the Tilescreen tilemap has scrolled down (found via testing)
$0202DEBE-$0202DEBF - Number of how many rows the Tilescreen tilemap has scrolled down (at $0809878C) (Maybe Number of which Intro Story graphic comes next, too)

$0202DF01           - Decides at $080BE1F0 if a subroutine gets started

$0202DF58           - Decides at $080BE1F0 if a subroutine gets started

$0202FD31           - Flag register? (see $08097CB4)



$020326BC           - Used at $0809B620
$020326BE           - Used at $0809B620

$020326CC           - Set to #$1E at $08099C18.
$020326CD           - Set to #$00 at $08099C18.
$020326CE           - Set to #$3F at $08099C18.
$020326CF           - Set to #$00 at $08099C18.
$020326D0           - Jump Table Entry number for $080977CC; decides about Video Mode.
$020326D1           - Contains the number of the Jump Table Entry where $0800052E jumps to. Is loaded at the end of the subroutine at $080972B4
$020326D2           - ?
$020326D3           - Counter for the Intro Sequence with the Still Frames and story, which picture has to be loaded (#$00 - #$03)
$020326D4           - Flag Register; decides at $0809878C which Intro Graphics get loaded
                    - Bit 0: If clear, the subroutine at $080975CC does nothing
                    - Bit 3: If set, the subroutine at $0809878C loads an Intro Story graphic
                    - Bit 4: If set, the subroutine at $0809878C loads the Title Screen Tilemap data
                    - Bit 5: If set, the subroutine at $0809878C loads the Title Screen Graphic data
                    - Bit 6: If set, the Title Screen is in the stadium that it scrolls down
$020326D5           - Flag Register; decides at $0809878C which Intro Graphics get loaded

$02032704-$02032707 - (Storage for the Offset of the Tilemap buffers?)

$02036120-$0203612F - Set to #$FFFF at $080A9318
$02036130-$0203613F - Set to #$0001 at $080A9318
$02036140-$02036147 - Set to #$0000 at $080A9318

$02036156           - Set to #$00 at $080A9318
$02036157           - Set to #$00 at $080A9318
$02036158           - Bits 4-6 serve as a Jump Table Index at $080A93BC, a set Bit 7 can make that the Jump Table segment is left out
                    - Set to #$00 at $080A9318
$02036159           - Bit 0 cleared at $080A9318

$0203642C-$0203652F?- Space for $14-byte sized entries, set to what seems like standard values at $0809EB6C
$02036530-$02036531 - Set to #$0068 at $0809EB6C
$02036532-$02036533 - Set to #$0038 at $0809EB6C
$02036534-$02036535 - Set to #$003C at $0809EB6C

$02036538-$0203653B - Set to #$00000000 at $0809EB6C
$0203653C-$0203653F - Set to #$00000000 at $0809EB6C
$02036540-$02036543 - Set to #$00000000 at $0809EB6C
$02036544-$02036545 - Set to #$FFFF at $0809EB6C 
$02036546           - Bit 0 set and Bits 1-4 cleared at $0809EB6C

$020365EC           - At $080A0800, it decides about if the OAM is updated by CpuFastSet (= #$01) or DMA (<> #$01)

$0203B6D0-$0203B7D8?- Storage for addresses, see $080BD320

$0203BB48           - Relevant for Jump Table at $080A6DD4, (loaded at $080A6F28, too)

$0203BB4E           - (see $080A6F28)
$0203BB4F-$0203BB50 - Flags (see $080A08C8)
$0203BB51           - (see $080A7AFC)

$0203BB60-$0203BB63 - Address (see 080A7CFE onwards)

$0203BB68-$0203BB9F -  Data from here is exchanged with data at $020000D0 (see $080BDFD0, for example)
$0203BBA0-$0203BBA1 - Buffer for $04000050 (BLDCNT - Color Special Effects Selection)
$0203BBA2-$0203BBA3 - Buffer for $04000052 (BLDALPHA - Alpha Blending Coefficients)
$0203BBA4-$0203BBA5 - Buffer for $04000054 (BLDY - Brightness (Fade-In/Out) Coefficient)

$0203BBA8-$0203BBA9 - Buffer for $04000000 (DISPCNT - LCD Control)
$0203BBAA-$0203BBAB - Buffer for $04000008 (BG0CNT - BG0 Control)
$0203BBAC-$0203BBAD - Buffer for $0400000A (BG1CNT - BG1 Control)
$0203BBAE-$0203BBAF - Buffer for $0400000C (BG2CNT - BG2 Control)
$0203BBB0-$0203BBB1 - Buffer for $0400000E (BG3CNT - BG3 Control)
$0203BBB2-$0203BBB3 - Buffer for $04000010 (BG0HOFS - BG0 X-Offset)
$0203BBB4-$0203BBB5 - Buffer for $04000012 (BG0VOFS - BG0 Y-Offset)
$0203BBB6-$0203BBB7 - Buffer for $04000014 (BG1HOFS - BG1 X-Offset)
$0203BBB8-$0203BBB9 - Buffer for $04000016 (BG1VOFS - BG1 Y-Offset)
$0203BBBA-$0203BBBB - Buffer for $04000018 (BG2HOFS - BG2 X-Offset)
$0203BBBC-$0203BBBD - Buffer for $0400001A (BG2VOFS - BG2 Y-Offset)
$0203BBBE-$0203BBBF - Buffer for $0400001C (BG3HOFS - BG3 X-Offset)
$0203BBC0-$0203BBC1 - Buffer for $0400001E (BG3VOFS - BG3 Y-Offset)
$0203BBC2-$0203BBC3 - Buffer for $04000020 (BG2PA - BG2 Rotation/Scaling Parameter A (alias dx))
$0203BBC4-$0203BBC5 - Buffer for $04000022 (BG2PB - BG2 Rotation/Scaling Parameter B (alias dmx))
$0203BBC6-$0203BBC7 - Buffer for $04000024 (BG2PC - BG2 Rotation/Scaling Parameter C (alias dy))
$0203BBC8-$0203BBC9 - Buffer for $04000026 (BG2PD - BG2 Rotation/Scaling Parameter D (alias dmy))
$0203BBCA-$0203BBCB - Buffer for $04000030 (BG3PA - BG3 Rotation/Scaling Parameter A (alias dx))
$0203BBCC-$0203BBCD - Buffer for $04000032 (BG3PB - BG3 Rotation/Scaling Parameter B (alias dmx))
$0203BBCE-$0203BBCF - Buffer for $04000034 (BG3PC - BG3 Rotation/Scaling Parameter C (alias dy))
$0203BBD0-$0203BBD1 - Buffer for $04000036 (BG3PD - BG3 Rotation/Scaling Parameter D (alias dmy))

$0203BBD4-$0203BBD7 - Buffer for $04000028/A (BG2X - BG2 Reference Point X-Coordinate)
$0203BBD8-$0203BBDB - Buffer for $0400002C/E (BG2Y - BG2 Reference Point Y-Coordinate)
$0203BBDC-$0203BBDF - Buffer for $04000038/A (BG3X - BG3 Reference Point X-Coordinate)
$0203BBE0-$0203BBE3 - Buffer for $0400003C/E (BG3Y - BG3 Reference Point Y-Coordinate)

$0203BC00            - Big Timer (incremented each time the Small Timer runs out)
$0203BC01            - Big Timer Goal value
$0203BC02            - Small Timer (decremented each Loop)
$0203BC03            - Small Timer restore value

$0203BC10-$0203CAA3 - Space cleared (and used?) at $080B6970

$0203DD90-$0203E18F - OAM buffer

$0203E490-$0203E68F - BG/OBJ Palette buffer

$0203E9D0-$0203E9D3 - Flag registers, worked off at $080988E0

$0203E9E0-$0203F39F - (Random Number Table?) Set up in $080BF278
$0203F3A0-$0203F3A3 - (Random Number Index?) Some load index / controller for $0203E9E0-$0203F39F, see $080BF2E0

$0203F3AC           - Contains a Timer's Number (#$00-#$03), see $080BFB30

$0203F3B4-$0203F3B7 - Contains a Timer's Reload/Counter register's address (#$04000100, #$04000104...), see $080BFB30

$0203F3CC-$0203F3CF - Contains an address (see $080B7628)




$03000280-$03000A7F - Data gets transferred here (see $080BDFD0, for example)

$03007FF8-$03007FF9 - Buffer for $04000208/9 (Interrupt Master Enable register) at  $08098530
$03007FFC-$03007FFF - Contains the Address of the Data that got transferred to $03000280 (see $080BDFD0, for example)