Kuribo64
Views: 19,851,782 Home | Forums | Uploader | Wiki | Object databases | IRC
Rules/FAQ | Memberlist | Calendar | Stats | Online users | Last posts | Search
03-28-24 06:27 PM
Guest:

0 users reading Misc. Tweaks/Patches Thread | 1 bot

Main - General SM64DS hacking - Misc. Tweaks/Patches Thread Hide post layouts | New reply


Sparsite
Posted on 07-24-16 04:40 PM (rev. 10 of 08-20-16 03:41 AM) Link | #74532
So recently, I've been making some tweaks, so I thought I'd open a thread dedicated to Tweaks/Patches that aren't included in SM64DSe, that could be quite useful. If you want to add a tweak to the thread, just post a reply with your tweak.

Let me know if any of these tweaks don't work, I haven't tested all my hex offsets, just the ASM offsets.

Additional Notes: Only for the European release of the game, I'll probably fix the layout of the thread eventually, feel free to request tweaks, I've got more tweaks I'll get around to making eventually, a nop in hex is equivalent to 00 00 A0 E1

I think almost all of the hex offsets only work for Skeluxs modded controls ROM. I think I may have a universal fix in the future.

Sparsite Tweaks:
//Always Gameover On Death
02029B98: nop / 0x029B98: 00 00 A0 E1

//Water Doesn't Heal Player
0202A818: nop /0x02A818: 00 00

//Disable Select Menu
0202C160: nop / 0x02C160: 00 00 A0 E1

//Disable Pause Menu
0202C140: nop / 0x02C140: 00 00 A0 E1
ALTERNATE METHOD: 0202C068: nop / 0x02C068: 00 00 A0 E1

//Display Health HUD on Bottom Screen
020FD15C: mov r0, #0x1 / 0x010A4A0: 01
020FD1A0: mov r0, #0x1 / 0x010A4E4: 01

//Disable Time Text On Timer
020FBBD4: nop / 0x0109118: 00 00 A0 E1

//Disable Caps HUD On Minimap
020FA4A4: nop / 0x01079E8: 00 00 A0 E1

//Red Coin HUD On Bottom Screen
020FC7D8: mov r0, #0x1 / 0x0109D1C: 01 00 A0 E3
020FC7E4: mov r3, #0x20 / 0x0109D28: 20 30 A0 E3

//Only 1 Left Camera Button On Left Side, 1 Right Button on Right Side
020FC13C: nop / 0x109080: 00 00 A0 E1
020FC1B4: nop / 0x1090F8: 00 00 A0 E1

//Don't Spawn 100 Coin Star
020B19A4: nop / 0x0BEEE8: 00 00 A0 E1

//Don't Show Star On Minimap
020FA38C: nop / 0x1072D0: 00 00 A0 E1

//Whomps Don't Give Coins When Crushed or Stepped on
020107A4: nop / 0x0107A4: 00 00 A0 E1

//Modify Lakitu's Projectiles
021243F8: mov r0, #ACTOR_ID / 0x2A6ABC: XX XX (First four bytes are actor ID)

//Set Parameter 1 for Lakitu's Thrown Object
021243FC: mov r1, #PARAMETER / 0x2A6AC0: XX XX (assumed that first four bytes are param1 setting

Skeluxs Tweaks:
//Skip all screens
020cc344/0x1d2288: nop //forces jump to game
020cc2b8/0x1d21fc: nop //hides animations

//fix fading when screens skipped
020b6ffc/0x1bcf40: nop
020b6fec/0x1bcf30: nop

//Disable Level Intro Messages.
020C4728/0xD166C: NOP

//Disable Bowser Inside Castle Message.
0xD41B8: NOP

//Disable Star Collect Messages.
0xD41A4: NOP
0xF6B8C: NOP
0xF6B94: NOP

//Everything always visible
0x110EC: 0A 00 00 EB

//Show Debug Screen On File Loaded
0202AED8: mov r0, #0x2 / 0x2AED8: 02

//Remove hud counters.
020fd760/0x10a6a4: nop
020fd770/0x10a6b4: nop

//Disable controls
020d24ac/0xDF3f0: 28 02 00 EA
0200a5e0/0xa5e0: 00 90 a0 e3
020d3944/0xe0888: nop
020E5148/0xf208c: nop

//Mecha 11 Always Visible
0x247D40: FF FF FF 7F

//Chuckya window always visible
0x1159eC: FF FF FF 7F

//Stars always visible
0x117998: FF FF FF 7F

//Carriage increased view
0x2D9380: FF FF FF 7F

//Edge Marking
020557EC/0x557EC:
orr r0, r0, 20h (20 00 80 E3)

//Highlight Shading, only seems to be active on certain models such as the title screen Mario/Yoshi heads.
020557EC/0x557EC:
orr r0, r0, 02h (02 00 80 E3)

____________________
ASMR:
*quietly whispers*
move r0 r7
push r4 to r14
load register r4 into r0
POP

FroggestSpirit
Posted on 09-06-16 03:58 PM (rev. 2 of 09-07-16 01:13 PM) Link | #76918
I just came up with one for always reading the touch screen joystick as if the origin is the center of the screen (useful for emulators that have a joystick to touch function, as this prevents the joystick from dragging the origin around).

EUR:
0202C528 = e3a02080 (Mov r2,#0x80) This sets the X value
0202C53C = e3a01060 (Mov r1,#0x60) This sets the Y value

US:
0202b444 = e3a02080 (Mov r2,#0x80) This sets the X value
0202b458 = e3a01060 (Mov r1,#0x60) This sets the Y value

The graphics of the joystick will still move and drag, but the input should stay put.

Sparsite
Posted on 09-06-16 07:48 PM Link | #76920
Posted by FroggestSpirit
I just came up with one for always reading the touch screen joystick as if the origin is the center of the screen (useful for emulators that have a joystick to touch function, as this prevents the joystick from dragging the origin around).

0202b444 = e3a02080 (Mov r2,#0x80) This sets the X value
0202b458 = e3a01060 (Mov r1,#0x60) This sets the Y value

This is for the US version. The graphics of the joystick will still move and drag, but the input should stay put.


All assembly hacking is done on EUR. Skeluxes modded rom already locks the circle where ever you touch, the furthest you can run is at the top of the blue circle in when you touch down, so locking it to the middle isnt very necessary.

This tweak would still be useful, but I'd need the EUR offsets.

____________________
ASMR:
*quietly whispers*
move r0 r7
push r4 to r14
load register r4 into r0
POP

FroggestSpirit
Posted on 09-07-16 04:36 AM Link | #76931
Im still pretty new to this scene, but out of curiosity, why is most ASM hacking done on the EUR version? I should be able to get those offsets tomorrow though. Also, haven't tried skeluxes mod, but the main reason i did mine is so it can be used with a joystick to touchpad function, since when the joystick is in neutral position, it reads as center

Sparsite
Posted on 09-07-16 06:16 AM (rev. 3 of 09-07-16 06:18 AM) Link | #76932
Posted by FroggestSpirit
Im still pretty new to this scene, but out of curiosity, why is most ASM hacking done on the EUR version? I should be able to get those offsets tomorrow though. Also, haven't tried skeluxes mod, but the main reason i did mine is so it can be used with a joystick to touchpad function, since when the joystick is in neutral position, it reads as center


Fiachra and Skelux both used EUR so I used EUR (the 3 of us are the only sm64ds asm hackers atm), using versions like US could get confusing too incase someone mistakes EUR offsets for US offsets. Additionally, the asm patch template was made specifically for EUR so all US assembly would have to been done in a hex editor since nothing can compile raw arm code to NDS roms.

Also, skelux released his controls with a joystick to touch screen controls program. And the circle doesnt move with his controls either.

____________________
ASMR:
*quietly whispers*
move r0 r7
push r4 to r14
load register r4 into r0
POP

FroggestSpirit
Posted on 09-07-16 12:16 PM (rev. 2 of 09-07-16 01:14 PM) Link | #76936
Alright, that makes sense. I'll get the Eur offsets as soon as I can. It sounds like his mod takes care of it, but I suppose it wouldn't hurt to have the offsets anyways. I've worked with a lot of GameBoy ASM, and have done a small amount of DS ASM (mostly pokemon stuff)

Edit: added the Eur offsets. Didn't test them yet, but they should be right

Fiachra
Posted on 09-07-16 06:36 PM Link | #76941
Welcome to kuribo64. If you've not seen it the ASM Hacking Template is available here and makes applying patches like this very simple.

Posted by Sparsite
... Skelux's modded rom already locks the circle where ever you touch, the furthest you can run is at the top of the blue circle in when you touch down, so locking it to the middle isnt very necessary. ...

Yes but that code has not been made publicly available, it's useful to have these changes posted.


Main - General SM64DS hacking - Misc. Tweaks/Patches Thread Hide post layouts | New reply

Page rendered in 0.037 seconds. (2048KB of memory used)
MySQL - queries: 28, rows: 122/122, time: 0.013 seconds.
[powered by Acmlm] Acmlmboard 2.064 (2018-07-20)
© 2005-2008 Acmlm, Xkeeper, blackhole89 et al.