Views: 22,900,750 |
Home
| Forums
| Uploader
| Wiki
| Object databases
| IRC
Rules/FAQ | Memberlist | Calendar | Stats | Online users | Last posts | Search |
10-08-24 11:44 AM |
Guest: |
0 users reading Minigame Hacking | 1 bot |
Main - General SM64DS hacking - Minigame Hacking | Hide post layouts | New reply |
Sparsite |
| ||
take your dumb self out of here. thank you. Level: 34 Posts: 140/270 EXP: 245521 Next: 8130 Since: 05-20-16 Last post: 2873 days ago Last view: 2733 days ago |
Post anything regarding minigame hacking here.
As of right now, all the minigames code needs to be documented before we can start making custom minigames. Graphics in root/MG are not as important, they will come in the next release of the file system documentation. Minigame Hacking (EUR) Document By Sparsite RAM Addresses: 0229293C - Rec Room Button Transparency Value on title screen, 2 byte (0 - 4096) 0209B304 - Which Minigame Screen (0 = first, 1 = second) 02191CA0 - Which Character Face Is Selected 02191CB4 - Yellow Moving Left And Right Arrow Animation Frame (0-63 frames) Offsets: BL 0x020214A4 (star and life count) BL 0x02020994 (larger images like marios face) BL 0x02021024 (images like back arrow) Registers for offsets: R0 determines the screen. 0 = top, 1 = bottom R1 determines image loaded R2 determines X location R3 determines Y location R1 Values: Luigi Minigame Page Head Not Selected - 020C2C48 Mario Minigame Page Head Not Selected - 020C2DB0 Yoshi Minigame Page Head Selected - 020C2DF8 Wario Minigame Page Head Not Selected - 020C2E40 NEW Text - 020C2F68 Touch To Start Text - 020C2FD0 Back Arrow On Bottom Screen - 020C2E8C ROM Map: 020C0EF4 - Set back arrow to bottom screen 020C0EF8 - Set back arrow's X position 020C0EFC - Set back arrow's Y position 020C0F00 - Branch to HUD Loading function for the back arrow Tweaks: //All Minigames Unlocked EUR: ROM 0x13644 to 0xFF00A0E3 US: ROM 0x13520 to 0xFF00A0E3 US 1.1: ROM 0x13598 to 0xFF00A0E3 JAP: ROM 0x13598 to 0xFF00A0E3 //Disable Touch To Start Text 020C0B90: nop ____________________ ASMR: *quietly whispers* move r0 r7 push r4 to r14 load register r4 into r0 POP |
Louiskovski |
| ||
Red Koopa Normal user Level: 25 Posts: 39/122 EXP: 82901 Next: 6719 Since: 05-29-14 From: Germany Last post: 795 days ago Last view: 41 days ago |
Wow, interesting. Creating custom minigames would be nice! It would be a cool bonus for a sm64ds hack |
Sparsite |
| ||
take your dumb self out of here. thank you. Level: 34 Posts: 164/270 EXP: 245521 Next: 8130 Since: 05-20-16 Last post: 2873 days ago Last view: 2733 days ago |
Ok, looks like we are making progress, some new notes!
Minigames appear to reside in overlays, most of which I have found in overlay 6. I decided to put my focus on the sound chest minigame, just to get a feel of how it works. It appears minigames have constructors. This seems to be where the tile data is stored for minigames. In overlay 6, at 0x7F484, you will see 12dScMgSound_c Everything after _c seems to follow the whole minigames behaviour (most likely with some branch instructions). The tiles follow a pattern of XX 00 YY 00 (or maybe its 00 XX 00 YY but it shouldn't matter). NOTE: Hitboxes DO update when these positions are changed so we are in luck Overlay 06: 0x5C7B0 - Health On New Level Loaded 0x5CC40 - Starting Health On Game Loaded (Deafault 03) 0x7F858 - Top Left Chest X Position 0x7F85A - Top Left Chest Y Position 0x7F85C - Top Middle Chest X Position 0x7F85E - Top Middle Chest Y Position 0x7F860 - Top Right Chest X Position 0x7F862 - Top Right Chest Y Position 0x7F864 - Bottom Left Chest X Position 0x7F866 - Bottom Left Chest Y Position 0x7F868 - Bottom Middle Chest X Position 0x7F86A - Bottom Middle Chest Y Position 0x7F86C - Bottom Right Chest X Position 0x7F86C - Bottom Right Chest Y Position Incase some were unaware, the game later swaps between 6 chest and 8 chest, these 8 chests are completely different objects from the 6 layout chests. 0x7F88C - Outer Top Left Chest X Position 0x7F88E - Outer Top Left Chest Y Position 0x7F890 - Inner Top Left Chest X Position 0x7F892 - Inner Top Left Chest Y Position 0x7F894 - Inner Top Right Chest X Position 0x7F896 - Inner Top Right Chest Y Position 0x7F898 - Outer Top Right Chest X Position 0x7F89A - Outer Top Right Chest Y Position 0x7F89C - Outer Bottom Left Chest X Position 0x7F89E - Outer Bottom Left Chest Y Position 0x7F8A0 - Inner Bottom Left Chest X Position 0x7F8A2 - Inner Bottom Left Chest Y Position 0x7F8A4 - Inner Bottom Right Chest X Position 0x7F8A6 - Inner Bottom Right Chest Y Position 0x7F8A8 - Outer Bottom Right Chest X Position 0x7F8AA - Outer Bottom Right Chest Y Position Sound ID's are located below all the chest coordinates, I have not documented all of them but here is what I have so far. Sound ID offsets: Sound IDs follow a pattern of XX 00 0x7F928 - Return to lobby sound 0x7F92A - Enter warp pipe sound 0x7F92C - Bowsers laugh 0x7F92E - Enter secret level 0x7F930 - Collecting a red coin 0x7F932 - Collecting a secret 0x7F934 - Bwee sound 0x7F936 - Enter regular level Variants 00 = Pause sound 46 = Return to lobby sound 47 = Enter warp pipe sound 48 = Bowsers laugh 49 = Enter secret level 4A = Collecting a red coin 4B = Collecting a secret 4C = Bwee sound 4D = Enter regular level I also remember knocking out some sort of end detection where the text was always perfect even if I got some wrong. I'll look at this after all the sound is documented. In NO$GBA Debugger, I found out a little bit of info: (you can ignore this mess lol) 020B2638 - Branch to functions that load health hud 020AF948 - Beginning of some sort of minigame hud function 020AFA0C - Load Hearts in top left 020AFB0C - Loads "(A) RULES" text at the top. NOP to get rid of that text. 020B036C8 - Loads musical notes when treasure chest is touched 020B0288 - Branch to hud loading stuff 0211B904 - Subtract 1 from the health counter (r1) 0211B908 - Store r1 in r2, r2 being the health address 0211B90C - Update health if wrong treasure chest 0211C678 - set health related? 0211CB00 - set health to 3 on minigame boot 0211C054 - Play Chest Sounds Sounds use method 0x02011E28 Somewhere below all the co-ordinates, there are sound IDs that are played, setting them all to 00 only plays the pause sound. ____________________ ASMR: *quietly whispers* move r0 r7 push r4 to r14 load register r4 into r0 POP |
Main - General SM64DS hacking - Minigame Hacking | Hide post layouts | New reply |
Page rendered in 0.025 seconds. (2048KB of memory used) MySQL - queries: 28, rows: 198/198, time: 0.008 seconds. Acmlmboard 2.064 (2018-07-20) © 2005-2008 Acmlm, Xkeeper, blackhole89 et al. |