If you are still using the old URL (datacrystal.romhacking.net), please update your bookmarks! The old URL may stop working soon.
The current URL is datacrystal.tcrf.net.
The current URL is datacrystal.tcrf.net.
Yu-Gi-Oh! Dark Duel Stories/RAM map: Difference between revisions
Jump to navigation
Jump to search
Mantidactyle (talk | contribs) No edit summary |
Mantidactyle (talk | contribs) (→WRAM) |
||
(13 intermediate revisions by 2 users not shown) | |||
Line 12: | Line 12: | ||
B7F1 1 ? (set to 0xAA when setting up Debug New game) | B7F1 1 ? (set to 0xAA when setting up Debug New game) | ||
B7FF 1 Erase save file and start Debug New Game | B7FF 1 Erase save file and start Debug New Game | ||
B9F0 1 SRAM block currently used | |||
==WRAM== | ==WRAM== | ||
Line 75: | Line 76: | ||
C5AF 1 OAM pointer offset | C5AF 1 OAM pointer offset | ||
The pointer at 0x536 + (C5AF) determines where to jump from [[Yu-Gi-Oh!_Dark_Duel_Stories:ROM_map#rst_40_-_Load_pointer_to_OAM_subroutine|function 0:0524]] (OAM subroutine) | The pointer at 0x536 + (C5AF) determines where to jump from [[Yu-Gi-Oh!_Dark_Duel_Stories:ROM_map#rst_40_-_Load_pointer_to_OAM_subroutine|function 0:0524]] (OAM subroutine) | ||
C5B0 2 ? (Related to display, updated by func_0:1104) | |||
C5B2 1 ? (Related to display) | C5B2 1 ? (Related to display) | ||
C5B3 1 ? (Related to display) | C5B3 1 ? (Related to display) | ||
C5B4 1 ? (Related to display, updated by func_0:110F) | |||
C5B5 2 ? | C5B5 2 ? | ||
C5B7 1 ? | C5B7 1 ? | ||
C5B8 1 ? (copied in wC7F3 by func_3:5A2C) | |||
C5BA 2 Construction part ID | C5BA 2 Construction part ID | ||
C5BE 2 ? (Card ID to be summoned ?) | C5BE 2 ? (Card ID to be summoned ?) | ||
Line 127: | Line 131: | ||
0x07 : Construction card (outside duels) | 0x07 : Construction card (outside duels) | ||
0x09 : Construction card (in duels) | 0x09 : Construction card (in duels) | ||
0x0C : ? (func_F:4ED4) | |||
C6B1 1 Current Field | C6B1 1 Current Field | ||
C6B2 1 Current Stat Level | C6B2 1 Current Stat Level | ||
Line 171: | Line 176: | ||
C78F 3 Player's Trap + card status | C78F 3 Player's Trap + card status | ||
C792 15 Player's Hand + cards status | C792 15 Player's Hand + cards status | ||
Bit 0: Card position | |||
Bit 1: Is there a card in this zone | |||
Bit 2: Card frozen (more than 1 turn) | |||
Bit 3: Card frozen | |||
Bit 4: Monster Level | |||
Bit 5: Monster Level | |||
Bit 6: SET status | |||
Bit 7: Card stolen for a turn (returns to the opponent at end of turn) | |||
C7A1 1 Field Column | C7A1 1 Field Column | ||
C7A2 1 Field Row | C7A2 1 Field Row | ||
Line 221: | Line 226: | ||
C7C8 1 ? (related to damage calc) | C7C8 1 ? (related to damage calc) | ||
C7C9 1 ? (related to damage calc) | C7C9 1 ? (related to damage calc) | ||
C7CA 128 ? (Game Link data ? | C7CA 128 Game Link data | ||
C7EC 1 ? (set at func_3:59CE, called by Healing and Damage Spells in routine func_3:5BC2) | |||
C7F3 1 ? (copy of wC5B8 from func_3:5A2C) | |||
C84A 1 Receiving Game Link data ? | |||
C84B 1 Sending Game Link data ? | |||
C84C 1 ? | C84C 1 ? | ||
C84D 4 Duel: Monster currently selected + copy | C84D 4 Duel: Monster currently selected + copy | ||
Line 284: | Line 292: | ||
C8D5 1 ? (subroutine 2:73C3) | C8D5 1 ? (subroutine 2:73C3) | ||
C8D6 1 Debug New Game | C8D6 1 Debug New Game | ||
C8D7 1 | C8D7 1 SRAM block currently used | ||
C8D8 1 Set to 01 when a New Game is started | C8D8 1 Set to 01 when a New Game is started | ||
C8D9 1 ? | C8D9 1 ? | ||
Line 328: | Line 336: | ||
C99B 1 ? (00'd when a special text is requested from character ≥ 0xB5) | C99B 1 ? (00'd when a special text is requested from character ≥ 0xB5) | ||
C99C 1 Special text pointer offset | C99C 1 Special text pointer offset | ||
C9B8 8 | C9B8 8 BG Color data | ||
CA38 1 ? | CA38 1 ? | ||
CA3A 1 Debug Character Viewer - Character ID | CA3A 1 Debug Character Viewer - Character ID | ||
Line 413: | Line 421: | ||
2:D3E8 280 Card Construction parts | 2:D3E8 280 Card Construction parts | ||
2:D500 400 Constructed cards in Chest / Trunk | 2:D500 400 Constructed cards in Chest / Trunk | ||
3:D000 989 ? (0x20'd by func_0:1849, prolly related to Display) | |||
6:D04A 8 Card Levels display | 6:D04A 8 Card Levels display | ||
Latest revision as of 16:14, 20 August 2024
The following article is a RAM map for Yu-Gi-Oh! Dark Duel Stories.
VRAM
Address Size Description ------- ---- ----------- 8800 1280 On the field: Card Illustration
SRAM
Address Size Description ------- ---- ----------- A7D4 2 Deck Capacity (SRAM) B7F1 1 ? (set to 0xAA when setting up Debug New game) B7FF 1 Erase save file and start Debug New Game B9F0 1 SRAM block currently used
WRAM
Address Size Description ------- ---- ----------- C100 2 Pointer C102 8 Password digits offsets C10C 8 Name Entry characters C400 2 ? C426 2 Pointer to the Music data being read C428 2 ROM Bank of the Music data being read C42A 2 Music pointer C42C 2 Music ROM Bank C42E 2 Start of Music loop C436 1 Current ROM Bank, or Screen ID when unused for Bank switching purposes 0x01 : Pre-duel screen 0x02 : CPU opponent's talking 0x03 : Player's turn in duel 0x04 : Menus / Title Screen 0x05 : Card display / Text box in duel 0x06 : Monster battle end 0x07 : CPU's turn in duel (inputs disabled) 0x09 : Password Screen 0x0A : "To Be Continued" Screen 0x0B : Monster battle 0x0D : CPU's turn in duel 0x10 : Character Viewer menu 0x11 : Credits screen 0x12 : Sound Test C437 1 Current WRAM Bank C438 1 Sound Effect playing ? C439 1 ? C43B 1 ? C43C 1 ? C43D 1 Music playing ? C441 1 Music loop flag C500 160 Illustration colors C5A0 1 ? C5A1 1 ? C5A2 1 ? C5A3 1 ? (related to Game Link) 0x00 : ? 0x02 : ? 0x04 : ? C5A4 1 ? (related to Game Link) C5A5 1 ? (related to Game Link) C5A6 1 ? (related to Game Link) C5A7 1 Button pressed 0x00 : None 0x01 : A 0x02 : B 0x04 : Select 0x08 : Start 0x10 : → 0x20 : ← 0x40 : ↑ 0x80 : ↓ C5A8 1 ? C5AA 1 ? (related to Joypad ?) C5AC 1 Indicates the game is loading graphics C5AD 1 Stores offset to the WRAM display array at (C100) C5AE 1 ? (Seems to be related to Battle Display) C5AF 1 OAM pointer offset The pointer at 0x536 + (C5AF) determines where to jump from function 0:0524 (OAM subroutine) C5B0 2 ? (Related to display, updated by func_0:1104) C5B2 1 ? (Related to display) C5B3 1 ? (Related to display) C5B4 1 ? (Related to display, updated by func_0:110F) C5B5 2 ? C5B7 1 ? C5B8 1 ? (copied in wC7F3 by func_3:5A2C) C5BA 2 Construction part ID C5BE 2 ? (Card ID to be summoned ?) C5C0 1 ? C5C1 1 ? C5C6 1 ? C5C7 2 Player's Life Points C5C9 1 ? (Player) (Initialized to 0 at start of duel, when Life Points are initialized to 8000) C5CA 2 CPU's Life Points C5CC 1 ? (CPU) (Initialized to 0 at start of duel, when Life Points are initialized to 8000) C5CD 2 Stores duel-related values C5CF 1 ? (Related to text boxes ?) C5D0 16 Next character string to display C5E4 1 ? (Related to card names ?) C5E5 1 ? (Related to Player's Name) C5E6 1 ? (Related to Player's Name) C5E7 1 ? (Related to Player's Name) C5E8 1 Field ID C5E9 2 Current Card ID being incremented (Trunk) C5EC 1 ? C5ED 1 ? C5EE 1 ? C5EF 1 ? C5F0 1 ? C5F1 1 ? C5F2 1 ? C5F3 2 ? C5F5 1 Trunk : Current Card order C5F6 2 Card viewer : cost Deck viewer : last card ID displayed or last card part ID read Duel : Player's Life Points (temporary copy) Trunk : last card quantity (1 byte) C5F8 1 ? C5F9 1 ? C5FC 2 Current Card ID being incremented C602 1 Current cursor position in Deck viewer C605 1 Current page in Deck viewer C607 1 Current card position in Deck C609 1 Current card position -1 in Deck C60A 80 Player's deck C65A 80 CPU's shuffled deck C6AA 1 CPU's deck size / cards drawn C6AD 1 ? C6AE 2 Card currently viewed C6B0 1 0x02 : ? (func_F:4F19) 0x03 : Regular card 0x06 : Menus 0x07 : Construction card (outside duels) 0x09 : Construction card (in duels) 0x0C : ? (func_F:4ED4) C6B1 1 Current Field C6B2 1 Current Stat Level C6B3 2 Card currently selected (even by the CPU) C6B5 1 Current Field Column C6B6 1 Current Field Row C6B7 2 Current card ATK C6B9 2 Current card DEF C6BB 1 Current card Type C6BC 1 Current card Cost C6BD 1 Current card Level C6BE 1 Current card Alignment C6BF 1 Current card Effect ID (magic trap ritual) C6C0 1 Current card Effect ID (monster) C6C1 2 ? (card data ?) C6C3 2 ? (card data ?) C6C5 2 ? (card data ?) C6C7 1 ? (card data ?) C6EE 1 ? C6EF 1 ? (retrieved in subroutine 2:6C98) C6F0 2 Number of characters displayed in current text box (compared with text length to determine if there are any characters left to display) C6F4 1 ? C6F5 1 ? C6F6 1 ? C6F7 1 ? C6F8 1 ? C6F9 1 CPU Character ID displayed C6FA 1 Text ID displayed C6FB 1 ? C6FC 1 ? C6FD 1 ? C6FE 1 ? C700 1 Column to check C701 1 Row to check C702 1 Column (Targeted) C703 1 Row (Targeted) C704 1 ? (set to 0x01 if (C7C5)&4 ≠ 0, or (C7C5)&8 ≠ 0) C705 80 Player's shuffled deck C755 1 Cards drawn during this duel C759 15 CPU's hand + card status C768 3 CPU's Trap + card status C76B 18 CPU's cards on the Field + card status C780 18 Player's cards on the Field + card status C78F 3 Player's Trap + card status C792 15 Player's Hand + cards status Bit 0: Card position Bit 1: Is there a card in this zone Bit 2: Card frozen (more than 1 turn) Bit 3: Card frozen Bit 4: Monster Level Bit 5: Monster Level Bit 6: SET status Bit 7: Card stolen for a turn (returns to the opponent at end of turn) C7A1 1 Field Column C7A2 1 Field Row C7A3 3 Card being processed + card status (Card Level, card frozen, Brain Control...) C7A6 2 Player's Life Points (temporary copy) C7A8 1 ? (Copied to wC5FB) C7A9 2 P1 or P2 Life Points (temporary copy) C7AB 1 ? (Copied to wC5FB) C7AD 1 ? C7B0 1 Current turn 0x00: Player 2 or CPU (first turn) 0x01: Player 1 0x02: Player 2 or CPU C7B1 1 Menu ID (different from C85C) 0x00: Title Screen 0x01: Campaign 0x02: Versus 0x03: Trade 0x04: Duel Records 0x05: Character Viewer 0x06: Construction 0x07: Name entry 0x08: Password 0x09: Sound Test C7B2 1 Type of damage 0x00 : No Damage 0x04 : Direct Attack vs CPU 0x09 : Spell Damage vs CPU C7B3 2 Card being processed by the Player C7B5 2 Card being processed by the CPU C7B7 1 Monster Alignment (Player) C7B8 1 Monster Alignment (CPU) C7B9 2 Player's Life Points (temporary copy) C7BB 2 CPU's Life Points (temporary copy) C7BD 2 Monster ATK (Player) and direct damage C7BF 2 Monster ATK (CPU) and direct damage C7C1 2 Monster DEF (Player) C7C3 2 Monster DEF (CPU) C7C5 1 ? (OR'd with 0x08 when doing more damage than CPU's remaining Life Points) C7C6 1 ? (related to damage calc) C7C7 1 ? (related to damage calc) C7C8 1 ? (related to damage calc) C7C9 1 ? (related to damage calc) C7CA 128 Game Link data C7EC 1 ? (set at func_3:59CE, called by Healing and Damage Spells in routine func_3:5BC2) C7F3 1 ? (copy of wC5B8 from func_3:5A2C) C84A 1 Receiving Game Link data ? C84B 1 Sending Game Link data ? C84C 1 ? C84D 4 Duel: Monster currently selected + copy Main menu: PRNG C851 4 Fixed PRNG (for Construction cards mainly) C855 4 PRNG seed C859 1 Min value possible for Pseudo-Random Number C85A 1 Max value possible for Pseudo-Random Number C85B 1 PRN between (C859) and (C85A) C85C 1 Current selected menu (main menu) C85D 1 Current Campaign screen C885 1 ROM Bank for Fusion Data (start) C886 1 ROM Bank for Fusion Data (end) C887 2 Fusion Material pointer (start) C889 2 Fusion Material pointer (end) C88B 2 Card played by CPU, OR Monster Card targeted by Equip Card, OR Fused Monster #1 C88D 2 Card played by Player, OR Equip Card targeting Monster Card, OR Fused Monster #2 C88F 2 Fusion Monster ID C891 2 Player's card ID (temporary copy while attacking) C893 2 Player's Life Points (temporary copy) C895 2 P1 or P2 Life Points (temporary copy) C897 2 Monster ATK (Player) (temporary copy) C899 2 Monster DEF (Player) (temporary copy) C89B 1 Monster Alignment (Player) (temporary copy) C89C 2 CPU's card ID (temporary copy) C89E 2 CPU's Life Points (temporary copy) C8A0 2 CPU's Life Points (temporary copy) C8A2 2 Monster ATK (CPU) (temporary copy) C8A4 2 Monster DEF (CPU) (temporary copy) C8A6 1 Monster Alignment (CPU) (temporary copy) C8A7 1 ? (Battle value) C8A8 1 ? C8A9 2 Card being processed (copy) C8AB 2 Monster to Special Summon (e.g. Spirit of the Book) Monster to target (e.g. Harpie's Pet Dragon) C8AD 1 ? C8AE 1 ? C8AF 1 ? (Battle value) C8CC 1 Current CPU opponent C8CD 1 Pre-Duel music to be played C8CE 1 Duel music to be played C8CF 1 ? C8D0 1 ? C8D1 1 0x00 : First turn, no attack 0x01 : You can attack 0x02 : Player loses 0x03 : Player wins C8D2 1 Probably same as (C8D1) but for Link Duels ? C8D3 1 Stage 2 selected opponent 0x00 : Espa Roba 0x01 : Weevil Underwood 0x02 : Rex Raptor 0x03 : Rare Hunter 0x04 : Pandora 0x05 : Seto Kaiba C8D4 1 ? (subroutine 2:73C3) C8D5 1 ? (subroutine 2:73C3) C8D6 1 Debug New Game C8D7 1 SRAM block currently used C8D8 1 Set to 01 when a New Game is started C8D9 1 ? C8FF 1 Duel : ? (Related to text boxes) C900 1 Duel : Character to display in text box C901 2 Duel : ? (Related to text boxes) C905 1 Duel : Text Box ID C907 1 ? C90A 1 Duel : ? (Related to text boxes) C90C 42 Duel Records (battles) C93E 42 Duel Records (wins) C970 1 Stage 1 selected opponent 0x00 : Tristan Taylor 0x01 : Joey Wheeler 0x02 : Mai Valentine 0x03 : Mako Tsunami 0x04 : Yugi Muto 0x32 : Tea C972 1 ? C973 1 Stage 3 selected opponent 0x00 : Simon Muran 0x01 : Ishitzu Ishtar 0x02 : Heishin 0x03 : P. Seto C974 8 Player's Name (copy) C97C 8 Player's Name C984 1 ? (related to Player's Name) C986 4 ? (related to save management) C98A 1 1st character in Player's name + 5th character in Player's name C98B 1 2nd character in Player's name + 6th character in Player's name C98C 1 3rd character in Player's name + 7th character in Player's name C98D 1 4th character in Player's name + 8th character in Player's name C997 1 ? C998 1 ? C999 1 0x01 : Player no longer affected by Swords of Revealing Light 0x02 : Player's Swords of Revealing Light active (1 turn left) 0x03 : Player's Swords of Revealing Light active (2 turn left) 0x04 : Player's Swords of Revealing Light active (3 turn left) C99A 1 0x01 : CPU no longer affected by Swords of Revealing Light 0x02 : CPU's Swords of Revealing Light active (1 turn left) 0x03 : CPU's Swords of Revealing Light active (2 turn left) 0x04 : CPU's Swords of Revealing Light active (3 turn left) C99B 1 ? (00'd when a special text is requested from character ≥ 0xB5) C99C 1 Special text pointer offset C9B8 8 BG Color data CA38 1 ? CA3A 1 Debug Character Viewer - Character ID CA44 1 Did the player play a monster this turn ? CA47 2 ? CA49 ? ? (in subroutine 9:557F) CAC7 1 ? CAC8 2 ? (Scroll X / Y ?) CAD2 1 Debug Sound Test 01 : Music 02 : Sound Effect CAD3 1 Debug Sound Test - Music ID CAD4 1 Debug Sound Test - Sound Effect ID CAD5 1 Numbers of monsters Tributes this turn CAD6 2 Card being processed (temporary copy) CADA 1 Column being processed (temporary copy) CADB 1 Row being processed (temporary copy) CF8B 36 Stack (push / pop) CFBC 8 Password - Entered password CFC4 8 Password - Card password CFC4 1 Duel - ? CFC5 1 Duel - Previous ROM Bank (used after rst 08) CFC6 2 Duel - Previous Program Counter (used after rst 08) CFCF 1 Password - Valid password flag CFD0 2 Password - Card ID being checked CFD2 1 Password - "Is this OK?" textbox 00 - B returns to main menu 01 - B returns to password input CFD2 1 Password - "Is this OK?" textbox 00 - YES 01 - NO D001 2 AI - ? D005 1 AI - ? D006 2 AI - ? D05F 2 AI - Can the CPU attack ? D067 1 AI - Is there a Trap card on the opponent's field ? D472 15 AI - CPU's hand D4BA 2 AI - CPU's Life Points D4BC 2 AI - Player's Life Points D4BE 1 AI - Field ID D4BF 1 AI - Player's SoRL D4C0 1 AI - CPU's SoRL D4C1 1 AI - (C997) D4C2 2 AI - ? D4C5 2 AI - CPU's card ATK D4C7 1 AI - ? D4CA 1 AI - Column (current) D4CB 1 AI - Row (current) D4CE 1 AI - ? D4D5 1 AI - Effect triggered 0x01 : Field ? 0x05 : Healing 0x06 : Direct Damage ? 0x07 : ? 0x08 : ? 0x09 : ? 0x0A : Special Summon ? 0x0C : ? 0x0D : ? 0x0E : ? 0x0F : ? D4D6 1 AI - Column to check D4D7 1 AI - Row to check D4DE 1 AI - ? D4F3 1 AI - ? D4F4 1 AI - Field ID D4F5 1 AI - ? D4F6 2 AI - ? D4F8 2 AI - Direct Damage or Healing D4FA 1 AI - ? D4FD 2 AI - Attack Phase : Player's Monster ID D4FF 2 AI - Attack Phase : Player's Life Points D501 2 AI - Attack Phase : Player's Life Points D503 2 AI - Attack Phase : Player's Monster ATK D505 2 AI - Attack Phase : Player's Monster DEF D507 1 AI - Attack Phase : Player's Monster Alignment D508 2 AI - Attack Phase : CPU's Monster ID D50A 2 AI - Attack Phase : CPU's Life Points D50C 2 AI - Attack Phase : CPU's Life Points D50E 2 AI - Attack Phase : CPU's Monster ATK D510 2 AI - Attack Phase : CPU's Monster DEF D512 1 AI - Attack Phase : CPU's Monster Alignment 2:D000 1000 Cards in Chest / Trunk 2:D3E8 280 Card Construction parts 2:D500 400 Constructed cards in Chest / Trunk 3:D000 989 ? (0x20'd by func_0:1849, prolly related to Display) 6:D04A 8 Card Levels display
HRAM
Address Size Description ------- ---- ----------- FF80 2 ? FF82 2 ? FFD9 2 Deck Capacity (HRAM) FFDB 1 Grandpa flag ? 0x80 - Grandpa gives a card FFDC 1 Flag ? FFDD 1 System running the game 0x01 - Game Boy / Super Game Boy 1 0x11 - Game Boy Color FFE0 5 ?
Internal Data for Yu-Gi-Oh! Dark Duel Stories
| |
---|---|