Btw, 0x80001790 is NOT a safe memory location to use in the Exception Vector area. You are editing an instruction responsible for Thermal Interrupt. I went ahead and added more ranges to the original thread covering this - http://mkwii.com/showthread.php?tid=1106
Dynamic Gravity [JoshuaMK]
|
(07-04-2019, 02:24 AM)Vega Wrote: Btw, 0x80001790 is NOT a safe memory location to use in the Exception Vector area. You are editing an instruction responsible for Thermal Interrupt. I went ahead and added more ranges to the original thread covering this - http://mkwii.com/showthread.php?tid=1106Yeah I noticed that and fixed it over a day ago. The specific address is now at 0x80001798. Btw there seems to be a decent sized area of zeros that don't change at all in memory starting at around 0x80342000 and I was wondering if you could look into it to see if it might be another chunk of free memory space? Maybe this has already been looked into but I thought it was interesting. (07-04-2019, 08:03 AM)JoshuaMK Wrote:Btw my rewrite of the code is almost done(prob will be done the end of tomorrow) It will make all controllers work. I also download NTSC-J + NTSC-K ISOs so I can try to port codes myself. I plan to find a PAL version tomorrow.(07-04-2019, 02:24 AM)Vega Wrote: Btw, 0x80001790 is NOT a safe memory location to use in the Exception Vector area. You are editing an instruction responsible for Thermal Interrupt. I went ahead and added more ranges to the original thread covering this - http://mkwii.com/showthread.php?tid=1106Yeah I noticed that and fixed it over a day ago. The specific address is now at 0x80001798. Btw there seems to be a decent sized area of zeros that don't change at all in memory starting at around 0x80342000 and I was wondering if you could look into it to see if it might be another chunk of free memory space? Maybe this has already been looked into but I thought it was interesting.
Super Mario Eclipse, what Super Mario Sunshine could've been.
07-04-2019, 01:46 PM
Ye, MKWii will specifically have its own unused regions of static memory. I personally have no idea which areas of memory that will be. The Exception Vectors are good because they are universal for every Wii game. Fyi, the ranges listed on the thread ranging anywhere from 0x80000198 to 0x800012FF are basically never used in any other MKW cheat codes. There is more than enough space in those ranges.
Btw, do you plan on working more on your Extended Laps code after this? I really like that code. (07-04-2019, 01:46 PM)Vega Wrote: Ye, MKWii will specifically have its own unused regions of static memory. I personally have no idea which areas of memory that will be. The Exception Vectors are good because they are universal for every Wii game. Fyi, the ranges listed on the thread ranging anywhere from 0x80000198 to 0x800012FF are basically never used in any other MKW cheat codes. There is more than enough space in those ranges.Yes I plan to work on the Extended Laps code once I'm done with this. One major problem with the extended laps code is that cpus make the counter rise, which then makes laps start counting far sooner than normal. One thing I did notice is that a human players address in register 3 during a lap count is always at the lowest value compared to the cpus. Generally speaking it goes like this: 0x80574848 CPU 0x805747C4 CPU 0x80574770 CPU ... 0x8057452F P1 The only problem with this is these addresses change after every race, so I can't use these to track human players. So unless there is something I'm missing, I will need to find a different way to track human players. Because I need only the human players to be able to count the laps up, and really importantly, I need to make each player have there own independent counter. I could achieve this fairly easily just as long as I can track each human player racing. Once I figure this out, there is one last problem with this code that I need to work out. And that is that as soon as you cross the start/finish line, and the lap doesn't count, the game immediately thinks you are now behind all the other racers, therefore putting you in last if you were in first previously, and putting 2nd into first and so on. For this I need to find a way to preserve positions. I could do this by finding where it is in code that determines what position you are in based on what lap you are on, and hook it to the value of what's in the milliseconds timer. That would be a rather easy fix, with the only hard part being finding that bit of code. Once that gets fixed I just need to figure out how to make TTs not work with this code. Then this code will be complete and ready for release.
Super Mario Eclipse, what Super Mario Sunshine could've been.
I don't know how far you are on this code currently but I went ahead and chopped your source down a bit (for the 2nd ASM). Ofc, with any source changes, test them first in-game before applying changes in the original post. I changed the Exception Vector location to 0x80001798 so the 1st ASM will need to be adjusted for this. No need to give me any credits for this. I'm not overhauling the source, just taking out some redundancy. The source below is for NTSC-U, I'm too lazy to setup macros atm.
######################### #Load Air Timer Value Into Register 11 # ######################### lis r12, 0x8000 lwz r11, 0x1798 (r12) ############################################ #Compare r11 to Set Value and Branch to Normal Gravity if Less Than # ############################################ cmplwi r11, 30 blt- normal_value ############################ #Load Analog Stick Y Axis Byte Into Memory# ############################ lis r12, 0x8034 #NTSC-U used for compilation ori r12, r12, 0xc203 lbz r11, 0 (r12) ##################################### #Compare Y axis Byte to set values and Branch Accordingly# ##################################### cmplwi r11, 0xe4 bgt- heaviest_value cmplwi r11, 0xc9 bgt- heavier_value cmplwi r11, 0xae bgt- heavy_value cmplwi r11, 0x20 blt- lightest_value cmplwi r11, 0x3b blt- lighter_value cmplwi r11, 0x56 blt- light_value ################################ #Set New Value for Gravity and Branch to the End # ################################ normal_value: lis r12, 0x3f80 b the_end heavy_value: lis r12, 0x3f95 b the_end heavier_value: lis r12, 0x3fb0 b the_end heaviest_value: lis r12, 0x3fc5 b the_end light_value: lis r12, 0x3f65 b the_end lighter_value: lis r12, 0x3f50 b the_end lightest_value: lis r12, 0x3f35 the_end: stw r12, 0 (r31) lfs f1, 0 (31) C2000000 00000012 #no address assigned 3D808000 816C1798 280B001E 41800040 3D80803r 618Cxxxx #Change r value and xxxx values accordingly for region 896C0000 280B00E4 41810044 280B00C9 41810034 280B00AE 41810024 280B0020 41800044 280B003B 41800034 280B0056 41800024 3D80XXXX 48000030 3D80MMMM 48000028 3D80hhhh 48000020 3D80HHHH 48000018 3D80LLLL 48000010 3D80UUUU 48000008 3D80YYYY 919F0000 C03F0000 60000000 00000000 (07-07-2019, 06:37 PM)Vega Wrote: I don't know how far you are on this code currently but I went ahead and chopped your source down a bit (for the 2nd ASM). Ofc, with any source changes, test them first in-game before applying changes in the original post. I changed the Exception Vector location to 0x80001798 so the 1st ASM will need to be adjusted for this. No need to give me any credits for this. I'm not overhauling the source, just taking out some redundancy. The source below is for NTSC-U, I'm too lazy to setup macros atm.I can already tell that this will work, but I will test it anyway.
Super Mario Eclipse, what Super Mario Sunshine could've been.
|
« Next Oldest | Next Newest »
|
Users browsing this thread: 5 Guest(s)