Kuribo64
Views: 14,252,408 Home | Forums | Uploader | Wiki | Object databases | IRC
Rules/FAQ | Memberlist | Calendar | Stats | Online users | Last posts | Search
05-10-21 11:06 PM
Guest:

0 users reading Switch screens in SM64DS | 1 bot

Main - General SM64DS hacking - Switch screens in SM64DS New reply


schnurbi
Posted on 01-30-16 02:28 AM (rev. 2 of 01-30-16 02:34 AM) Link | #67379
Hey people!

I just got a broken DS and am making it into a GBA Macro.
(So bottom screen only)
[thumbnail]
Is there a way to hack the game to display the main gameplay on the bottom screen?
(f.ex. just switch screens)
Or has someone done this already?

Thanks so much!

regards

schnurbi

Platinatic
Posted on 02-04-16 01:45 PM Link | #67514
it looks cool! but what is the exact point of the project, to run DS games? Or GBA games?
because you can't play SM64DS without the X and Y buttons.


SGC
Posted on 02-06-16 09:35 PM (rev. 2 of 02-06-16 09:36 PM) Link | #67570
You don't have to hack it. You can choose what screen you want GBA games to display on in the system settings.

Edit: Never mind I misunderstood the title of the thread.

____________________
MKDS Hacking & Modding Discord:
https://discordapp.com/invite/CAktUYP

Arisotura
Posted on 02-10-16 10:06 PM Link | #67675
should be pretty easy, the DS has a register for swapping the top/bottom screens, just find what writes to it and hack that

____________________
NSMBHD - Kafuka - Jul
melonDS the most fruity DS emulator there is

zafkflzdasd

Fiachra
Posted on 02-13-16 08:38 AM Link | #67742
It's bit 15 at 0x04000304 however this only partially works:
[thumbnail]

Looks like you'll need to do some additional work to get the various icons working correctly.

For smaller images like the life and star count the method 0x020214A4 is used to draw them; r0 is set to 0x01 for the bottom screen and 0x00 for the top screen. You can find where this method is called from and change the value of r0 passed in or else if you want to swap them all, change the instruction "cmp r0, #0x00" at 020214AC to "cmp r0, #0x01":
[thumbnail]

For larger images like Mario's face on the bottom screen method 0x02020994 is used, r0 determines the screen as in 0x020214A4. Again, you can either find where this method is called from and modify r0 for each individual call or else change the "cmp r0, #0x00" instruction at 0x0202099C to "cmp r0, #0x01":
[thumbnail]

Nearly there, there's still that direction arrow on the bottom screen. This is drawn by the method 0x02021024 called at 020DA284. Change the "mov r0, #0x01" instruction at 0x020FA280 to "mov r0, #0x00":
[thumbnail]

Now you can set bit 15 at 0x04000304 to "0":
[thumbnail]

Flip bit 15 as needed for menus etc.

Arisotura
Posted on 02-13-16 08:43 AM Link | #67743
ugh, I didn't think it would be so shitty


maybe Nintendo envisioned a "level on bottom screen" feature like NSMB has?

____________________
NSMBHD - Kafuka - Jul
melonDS the most fruity DS emulator there is

zafkflzdasd

Hiccup
Posted on 02-13-16 02:03 PM Link | #67747
wait. what makes you think they envisioned that?

Arisotura
Posted on 02-13-16 02:17 PM Link | #67750
read Fiachra's post


basically, the touch screen sprites are set to go on the bottom screen no matter how they're set up

____________________
NSMBHD - Kafuka - Jul
melonDS the most fruity DS emulator there is

zafkflzdasd

Hiccup
Posted on 02-13-16 02:58 PM Link | #67761
I suppose that sort of implies it.

Arisotura
Posted on 02-18-16 04:05 PM Link | #67877
also schnurbi, is your ...thing based off a DS Lite?


if so, it won't work without some hardware hacking: the DS Lite doesn't start if the top screen is missing/broken

maybe the phat DS does, though, dunno

____________________
NSMBHD - Kafuka - Jul
melonDS the most fruity DS emulator there is

zafkflzdasd


Main - General SM64DS hacking - Switch screens in SM64DS New reply

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