1 2
18 19 20
24 25
Editor, Expert player (2329)
Joined: 5/15/2007
Posts: 3931
Location: Germany
@jlun2: I don't think I understand what you mean. I'm using the hex editor and comparing File 2 ( $002580 - $002c77 ) between the * copied from file 1 to file 2 (ingame) * copied from file 1 to file 2 (lua script) scenario. All the bytes were the same. And in the lua script scenario, as I explained, even if I load that file and save again ingame right after, that file gets wiped anyway on reset. Even though the checksum - which is supposedly saved within the file range - is the same and all bytes are the same. I copied in both those scenarios from the file select screen. Maybe jdaster64 can help me out again? If you look into it, feel free to use the script I posted in my previous post. Note that one of the first bytes in each file memory range has the characteristic that it's 00 for file 1, 01 for file 2, 02 for file 3.... I believe. My script doesn't take that into account. In the above comparison I had to edit the byte in the hex editor. Edit: It looks like if you did save the dirty file, the file doesn't get wiped immediately on reset. It loads the bytes but then zeroes them after. (due to checksum fail maybe) Edit: If I copy all of EWRAM** bytes from the good scenario to the bad one*, the bad one still has the wipe. The checksum / the problem is not with the EWRAM then maybe. (* even if I save again here) (** or Combined WRAM) Maybe instead of editing the save itself we should try to edit RAM directly that gets saved into the file.
Skilled player (1738)
Joined: 9/17/2009
Posts: 4980
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Oh. Sorry for the confusion then. Editing RAM might be a good idea for position, levels, items, etc. Good luck finding about event flags.
Post subject: made post prettier
Editor, Expert player (2329)
Joined: 5/15/2007
Posts: 3931
Location: Germany
@jlun2, we can already edit position, levels, items. We cannot edit flags etc. yet, though. The convenience with the savegames is that all interesting data is kept in one place. Position, stats, flags etc. are all spread throughout memory. But they are in one single place in the savegame. It would be convenient if we could edit savegames as opposed to RAM. I have tried around some more and I found a way to keep a dirty file. This is the easiest method I found: file 1 has content, file 2 and 3 are empty 1) on the file select screen, copy 1 to 3 (lua) 2) start file 3 3) set current used file to 2 (with lua) 4) save ingame 5) reset file 1 and 2 have content. 3 is wiped but we have 2 so it's ok. I have made a savegame that starts the credits right away (by being in one of the final rooms where the cutscenes play automatically). Here is an improved version of the savegame script. http://pastebin.com/w7ScYQiG If you find anything let me know. I will implement the "edit savegame" functionality into the main script soon. Basicly will go like this: - Ask user which File he wants to sacrifice - Ask user which File he wants the new savegame to be - Ask user which File he wants to use to start out - Let user edit stuff - Run procedure (script automatically handles everything) Edit: I had a suspicion I overlooked something and I was right. So far, I've only looked at EWRAM. But there is also an SRAM memory domain and it does hold the savegames too. I will look at it and mess around with it later and report back here when I find something.
Editor, Expert player (2329)
Joined: 5/15/2007
Posts: 3931
Location: Germany
I had a suspicion I overlooked something and I was right. So far, I've only looked at EWRAM. But there is also an SRAM memory domain and it does hold the savegames too. I will look at it and mess around with it later and report back here when I find something.
On reset, SRAM memory is loaded into EWRAM memory. If I didn't know any better, $0706 (SRAM domain, 2 bytes) is the checksum. If I change that before resetting, the file is wiped from EWRAM but is still kept on SRAM. It's just not going to be loaded at all. If I change the values back, it's recognized again. I don't know how to construct the algorithm for the checksum so I hope someone can help me. Info: $0010~$0705 (file 1 range, SRAM domain, those all the addresses that get zeroed when deleting the file) $0706 (size: 2 bytes, SRAM domain, supposedly the checksum for file 1) Here are two samples. Maybe it's possible to find the algorithm with this? http://pastebin.com/EqjdDkTW (If all fails I can still just code some automated thing to make the game create the checksum, and then rewind and put it in. It would just be smoother if we knew the algorithm.) Edit: There is also a chance I got confused and $0706 and $0707 are not the checksum but still part of file 1. They get zeroed too on deletion. When changing other addresses in file 1, the file is not loaded either. So maybe checksum is somewhere else.
Editor, Skilled player (1199)
Joined: 9/27/2008
Posts: 1085
Make a movie file. Save-state anchored for convenience. Have the movie save the game somewhere in its input (preferably very soon in the movie). Load the movie. Edit one stat in RAM you know will be saved. Run the movie. Compare it to the non-edited save. Since the movie is doing the exact same thing with the exact same timing, there should be no differences in clock. And hopefully no other factors to speak of. The only difference really should be the direct edit in RAM you did, and the checksum. Pick a different stat, and the common changed bytes are probably related to checksum. ... Well, it's one bit of advice I can think of. Curious if it'll help in any way.
Editor, Expert player (2329)
Joined: 5/15/2007
Posts: 3931
Location: Germany
Thanks FatRatKnight. Ok here are some diffs of the SRAM memory. https://www.diffchecker.com/Lb9MFMYn - room 0xF2(original) vs room 0xF3(edit) (Note: I think rooms are two bytes, not one. But yeah. I guess it gets saved once for each brother, hence the two values that are different.) https://www.diffchecker.com/KAxj1e2i - 0 coins vs 1 coin https://www.diffchecker.com/rwC6L43y - saved vs saved 1F later (Ingame clock time is saved as a frame count) So conclusion: Checksum for file 1 is in 0x0016 and it looks like it really does just add all bytes and keeps the last 8 bit like the zetaboards post said. But I have yet to try that myself and understand it. I don't know which bytes it is that need to be added, for starters. It looks easy to figure out though. Edit: But this quick test failed... Edit: I'm currently trying to approach this another way. I used the method I described in one of my previous posts to make a file that's completely empty. I then found out there are actually some addresses before the checksum that are accounted for... See here. (Edit: The address right after 0x0016 is not accounted for. Otherwise the image is correct.) Ok, this seems to be the code:
Language: Lua

o=0 for z=0x0010,0x0013,0x01 do o=o+memory.read_u8(z) end for z=0x0018,0x0707,0x01 do o=o+memory.read_u8(z) end text(70,70," ".. o%256 .." ",0xFFFFFF00,0xFF000000)
o%256 tells what the checksum should be at $0016. Now I need to find the checksum address for the other two files and then making a "edit stuff" thingie will be easy.
Editor, Expert player (2329)
Joined: 5/15/2007
Posts: 3931
Location: Germany
I discovered a minor glitch. One I caught thanks to "before after" comparison in my script. When you do the money trick where Luigi highjumps on small Mario, if Mario jumps on a certain frame, it will count as two hits. Instead of +1 coin -1 luigiHP on the English version, it's +2 coins -2 LuigiHP by doing just one jump.
Editor, Expert player (2329)
Joined: 5/15/2007
Posts: 3931
Location: Germany
In room 315 (outside Little Fungitown hospital) and in room 381 (Little Fungitown hospital entrance room), if you set your position to 0 and walk right, there is a hidden warp that sends you to the other room, respectively. Maybe there are hidden warps in other places. I have found out about this while working on the script. I'm working hard on the next version of said script. I'm struggling to make the code more reusable and transparent. For things like position, stats, green pipes etc. I'm planning on using lists instead of statically displaying stuff. Should be done with it this week. List of rooms that have "hidden" warps at position 0
315 <-> 381    Outside Fungitown Hospital <-> Little Fungitown Hospital main room

284 -> 332    Guffawha Ruins and Fungitown Yellow Pipe intermission room -> Guffawha Ruins last room

120 -> 119    Beanbean Outskirts West -> Beanbean Outskirts Northwest

23 -> 0    Stardust Fields room before hammer bros (can't reach later) -> Beta

51 -> 41    Coffee shop -> Bean town east (intact)

55 -> 54     Bean town photo room -> Outside bean castle

91 -> 0       Peach's Castle (cutscene screen) (unreachable) -> Beta

94 -> 0       Stardust Fields (arrival cutscene) (unreachable) -> Beta

101 -> 0     Stardust Fields Highjump/Spinjump tutorial room -> Beta

170 -> 164     On sea -> Piranha Bean room

197 -> 0      Ocean floor room, yellow pipe to mainland -> Beta

217 -> 214    on sea -> on sea

267 -> 247    map screen (unreachable) -> Gwarhar Lagoon green pipe room

312 -> 302    Ship is leaking (cutscene) (unreachable) -> Ship interior, boss's treasure room

334 <-> 334   Joke's End green pipe room leads to itself

382 -> 381    L. Fungitown Hospital Left room -> L. Fungitown Hospital Main room

395 -> 0    Map screen (green pipe selection) (unreachable) -> Beta

396 -> 0   University starbean screen (cutscene) (unreachable) -> Beta

449 -> 0   Mountain lookout screen (unreachable) -> Beta

451 -> 0   Flying to/from Bowser's Castle screen (unreachable) -> Beta

454 -> 0   Flying to/from Bowser's Castle screen (unreachable) -> Beta

481 -> 0   Ship stranded on the ocean floor, cutscene (unreachable) -> Beta

484 -> 0    Ship is debarking, cutscene (unreachable) -> Beta

511 -> 0    Beta -> Beta

512 -> 0    Map screen with Bowser's Castle on it (unreachable) -> Beta

513 -> 0   Level map screen (unreachable) -> Beta

514 -> 0   Level map screen (unreachable) -> Beta

This is looking really useless at the moment. No Bowser's Castle early (yet) EDIT: I finished testing all the rooms and added them in the list above. Unfortunately, I found nothing useful. Please note, rooms 0 and 1 lead to Beta on the English version, but to the opening cutscenes on the Japanese version. The opening cutscene softlocks after you have been through it before, unfortunately. It looks like there is only one room that you can access where you can attempt to glitch into a Beta loading zone:
197 -> 0      Ocean floor room, yellow pipe to mainland -> Beta
I will try to glitch into that loading zone and if I succeed, I'm going to make a video about it. :) EDIT: Apparently, teleport glitch doesn't work underwater and you can't really use any other glitches to reach that place. Well, except if you wrap around the entire room maybe, but that would take like 4 hours.
Editor, Expert player (2329)
Joined: 5/15/2007
Posts: 3931
Location: Germany
MLSS Luascript v0.11 r4
Changes in 0.11 r4:
- Action Commands: Fix misaligned values.
- Battle: Fix bad camera addresses on the US version.
Added support for the demo ROM.
- Warnings: In Savegames, changing the current used file in the options now counts as "editing memory".
Warping to other rooms now counts as "editing memory".
Editing Position, Stats, Items, Action Commands, Flags, Savegames, Misc now counts as "editing memory".
- Run Event: Fixed issue where the script menu became suspended forever.
- Warp to Room: When warping to a room that starts an event while "set pos/cam" is active, doesn't set pos/cam now.
When warping and loading a savestate right after, aborts the warping now.
When trying to warp while the game is busy (e.g. when entering a battle or if there is an event), abourts the warping now.
Added a setting to override events and bad conditions (e.g. when entering a battle).
- Items: Added option to choose whether or not you want the script to account for "can equip" flags.
The item kind "shop" has been split into "consumables", "badges" and "pants".
Equipping and unequipping does not update your stats nor item effect, so I have added a warning telling so. (Might add a workaround hack in the future, but it's low priority)
- Savegames: Removed "equipped pants, badge, coffee" entries because editing it wouldn't update your stats nor item effect. (If you want to change which items are equipped in a savegame, you have to load it, change equips in-game and then save.)
Changes in 0.11 r3:
- Audio: The pace/vol reset button now works only when you "allow edits" in the settings.
- Warnings: In Audio, the pace/volume reset button and the soundtest buttons now count as "editing memory".
- Position: Added speed display.
- Stats/Overview: Fix wrong experience address size.
- Flags/Savegames: Fix wrong "can defend by hammer" flag.
Fix wrong "Thunder Bros Advanced" flag.
Fix wrong "Fire Bros Advanced" flag.
- Battle: When poisoned, it shows the correct status ailment now.
Changes in 0.11 r2:
- Audio: Added soundtest - lets you play most if not all BGM and SFX.
- Savegames: Added more flags.
- Flags: Added more flags. 
- Items: Now accounts for "can equip" flags.
- The kiosk demo ROM of the game is now supported. You can only use some displays for now..
- Basic Info renamed to "Overview".
Changes in v0.11 r1:
- Fixed issues related to the timer entries in Savegames and Misc.
- Menu function has been rewritten, which might improve performance.
- Snake game: Fixed script crash when starting Snake.
- Savegames: Added some important flags.
"Auto-Apply Checksum" now works even when the display is closed and it will now affect all three savegames.
Direction now shows a text (up, upright, right, etc.) instead of a number.
- Warnings: Now shows if "Auto-Apply Checksum" is active.
- Green Pipes: Has been renamed to "Flags".
-Free Movement: Moonjump and Through Walls will now only work when you are in control. Should fix all softlock issues.
Camera fix now accounts for Z position. Fixes issue where the camera was displaced when using "Free Movement" and moving across high ledges.
Changes in v0.11:
- Various minor fixes. Reorganized the menu items.
- Made Console Notifications, Warnings, Run While Paused, Add More Space and Change Font to be within a single menu option "Script Settings".
Added a setting to enable/disable all editing functionalities in the script.
- Added "Audio": You can change volume and pace of BGM, in-battle BGM and SFX. 
This is a fairly limited functionality and SFX pace cannot be changed on Japanese, apparently. Maybe this will be updated later.
- Added "Savegames": Allows you to view and edit savegame memory. 
Specifically, you can edit the room you are in, your position in that room, your stats and "base" stats, the ingame time, bros attack uses and your equipped armor. 
You can change the savegame slot the game currently uses.
You can enable/disable savegame slots.
You can not edit flags yet since they haven't been researched (might be added later). 
You can not edit items because it was too troublesome to add (please use the regular items display instead).
- Added "Misc": Allows you to edit money, bros attack uses, ingame time, event timer.
- Added "Warp to Room": Allows you to go to other rooms directly.
- Action Commands: Barrel button now works for Luigi behind Mario, too.
- Stats: Added "base" stats and Level.
The edit form has been removed. Please use the display to edit stats.
- Edit Position: Has been renamed to "Free Movement". 
Moonjump and Through Walls will now work even when the display is closed. 
Camera will now follow the brothers downwards on the Y-axis correctly (although it doesn't account for altitude at the moment). 
Fixed that Through Walls didn't count as editing memory. 
When controlling only one brother, the "Move around" buttons, Moonjump and Through Walls will now only affect that brother instead of both.
- Warnings: Now shows if Moonjump or Through Walls is active.
- Position: Added editing features.
- Console Notifications: Green pipe change notifications have been removed.
- Battle: Added ailments "Floaty" and "Heavy". 
Renamed "Stunned" to "Dizzy". 
Fixed some issues where enemies were not considered dead by the script. 
Fixed that the 6th enemy slot was considered a brother slot by the script.
- Run Event: Fixed erroneous event pointer for Cackletta (University) on the US version. 
Removed duplicate Warp to Larry entry on the US version.
- Basic Information: Fixed that the script crashed on hard reset.
- Holding + or - buttons will now cause numbers to increment/decrement faster
Notes:
  • I recommend using Bizhawk 1.11.7 mGBA core. In Bizhawk 1.11.8.2, the mGBA core has been updated but is broken. The Bizhawk staff has fixed it but has yet to release the next version. VBA-Next core seems to work fine except for everything that relies on savegames. (The SRAM memory domain is broken)
  • In Edit Savegames and in Edit Stats, there are two different kinds of stats you can edit. The normal stats are the values the game currently uses, adding boosts from equipment and possibly considering other aspects. Those values will be recalculated every once in a while (when leveling up or changing equipment). The "base" stats are the values the game will occasionally use to do that recalculation. In other words, editing the normal stats will directly change them but not be permanent. And editing base stats will only take effect after a level-up or changing equipment, but be permanent.
  • The layout of various displays has changed to accommodate the use of a single display function. Instead of statically displaying stuff, the script now uses (editable) lists more. Affected displays are Position, Stats, Action Commands, Green Pipes, Savegames. Those displays will have an "E" button that indicates whether or not you are currently in "Edit mode".
  • Savegames are stored in both SRAM and in EWRAM. The game loads the savegame from SRAM to EWRAM on power-on/reset. The script relies on the SRAM memory and it doesn't keep the two memory areas synchronous, so if you edit a savegame or use the "enable file" option, you need to reset the game for it to take effect.
  • The photo sprite ID and photo spritesheet entries in the Savegame display are tentative names. I actually don't know if those titles are accurate.
EDIT: Added 0.11 r4
Post subject: expanded post with more flags and info
Editor, Expert player (2329)
Joined: 5/15/2007
Posts: 3931
Location: Germany
Flags info dump (I numbered bits from 0~7)
--- sram ---

At the moment, I can't find the following things:
block flags 
minigame flags 
enemy on overworld gone flags

$0030
3rd bit= know swing bros

$003f
0th bit=know chopper bros
6th bit=know fire bros

$0073
0th bit=know knockback bros
1st bit=know cyclone bros
6th bit=know thunder bros

 * Setting other bits nearby the above bros attack bits will cause unused attacks to appear in the selection in battle. Such as "Hammer 3" or "Fire 2" with the description text "Temp".
 * Splash and Bounce bros are known by default.

$01E8
7th bit=tolstar initial cutscene

$01E9
2nd bit=watched splashbros tutorial in stardust fields
3rd bit=mountain village cutscene (arrival)

$01F7
0th bit= tolstar defeated

$0208
0th bit=mushroom r274 (mushr.k.1) (mushroom right)
1st bit=koopa r274 gave directions
2nd bit=koopa r274 right way
3rd bit=koopa r274 wrong way
4th bit=luigi left r274
5th bit=gave mushroom r274 back to toad
7th bit=toadsworth triggered r275
 * in r313, the lost koopa first checks for the right way flag, and then the wrong way flag. if neither is set, doesn't do anything.

$020A
1st bit= r113(koopacruiser), rolling barrel touched
2nd bit=r113(koopacruiser), 1st fight barrel gone
4th bit=r113(koopacruiser), 2nd fight barrel gone
5th bit=r113(koopacruiser), first koopa initial talk <-- after this, you can check the fight barrels
6th bit=r113(koopacruiser), first koopa, wants you to check barrel
7th bit= r314 coin block hit

$020C
1st bit=r102 (stardust), hammer bro gave you map

$0216
4th bit=r113(koopacruiser), 2nd goomba captured
5th bit=r113(koopacruiser), first goomba captured


$0217
0th bit=watched cutscene r333(koopacruiser takes off)
3rd bit= hammer guys 1st tutorial (hammer moves in battle) done
4th bit=photoguy initial talk r313(koopa cruiser)
5th bit=mario photo taken r313
6th bit=luigi photo taken r313
you can move when both photo flags are true

$0219
1st bit=watched cutscene r111(koopacruiser 1st room)

$022a
0th bit= know fire
1st bit= know thunder
2nd bit=know firedash
3rd bit=know thundergrab

$022B
1st bit=luigi knows highjump (overworld)
2nd bit=mario knows spinjump (overworld)
3rd bit=both have hammers (overworld)
4th bit= super hammers
5th bit= ultra hammers
6th bit= know mario makes luigi into mole
7th bit=know luigi flattens mario

 * you will always need the preceding action command. If you want to access fire, you need hammer. Hammer needs Spinjump/highjump. etc.
 * If the 4th or the 5th is set = Super Hammers. If both are set = Ultra Hammers.

$0235
1st bit= can def with hammer in battle
2nd bit=both know bros attack (battle)
3rd bit=both know items (battle)
4th bit=both know flee (battle)

$0237
0th bit= can equip badges
2nd bit=can equip coffee
4th bit=can pause
5th bit=have map in pause screen

 * 0th bit is required to equip coffee items

$02AB
3rd bit=r113(koopa cruiser), 1st koopa gave inbattle tutorial
4th bit=r113(koopa cruiser), 2nd koopa gave inbattle tutorial

$0249
7th = green pipe 9,  joke's end
6th =green pipe 8,gwarhar lagoon
5th = green pipe 7, little fungitown
4th = green pipe 6, castle area (east)
3rd = green pipe 5, chucklehuck woods
2nd = green pipe 4, castle area (south)
1st = green pipe 3, castle town
0th = green pipe 2, castle area (north)

$0236
7th bit= can learn advanced <-- only confirmed for splash and bounce bros.
(doesn't seem to work. Needs looking into.)

$024A
7th bit=green pipe 1, stardust f.

$0563
0th bit=??? gets set after initial rope game talk

Advanced:
splash 003e,4
Swing 003e,5
chopper 003d,2
fire 003c,1
bounce 0072,4
knockb 0071,2
cyclone 0071,3
thunder 0070,1
--- ewram ---

$4338
	1st bit=have highjump
	2nd bit=have spinjump
	3rd bit=have hammers
	4th bit= super hammers
	5th bit=ultra hammers
	6th bit=can submerge luigi
	7th bit=can flatten mario

$4339
	0th bit=have fire
	1st bit=have thunder
	2nd bit=can firedash
	3rd bit=can thundergrab

$433e
	2nd bit=bro attacks (battle)
	3rd bit=items (battle)
	4th bit=flee (battle)

$433c
	4th bit=can pause
	5th bit=have map
	1st bit=can equip badges
	2nd bit=can equip coffee

$433d
	7th bit=can learn advanced <-- doesn't seem to work. Needs looking into.

$433e
	1st bit=can defend w/ hammer

$4860
	0th bit=know chopper bros
	6th bit=know fire bros

$485f
	3rd bit=know swing bros

$489c
	0th bit=know knockb. bros
	6th bit=know thunder bros

$489c
	1st bit=know cyclone bros

Advanced flags:
splash 4861, 4
swing 4861, 5
chopper 4862, 2
fire 4863,1
bounce 489d,4
knockb 489e, 2
cyclone 489e, 3
thunder 489f, 1

  • I have added all important flags to the script. The download link in the previous post will be updated soon. (actually, it's going to take a little while)
  • I noticed oddities while searching flags:
    • As mentioned in the info dump above, there are flags that tell if you know a bros attack (such as e.g. Chopper Bros or Swing Bros). If you set other flags that are nearby those flags, it will cause strange attack names to show up in the selection in battle, such as "Hammer 2" or "Fire 3" and it will have the description text "Temp". Using such an attack depletes BP but doesn't do anything. It skips the turn:
    • If the EWRAM "have map" flag is toggled while on the pause screen, it will show an unused icon. This is only graphical:
Editor, Expert player (2329)
Joined: 5/15/2007
Posts: 3931
Location: Germany
Demo ROM: I have researched this game's prototype demo rom "Mario & Luigi - Superstar Saga (USA) (Demo) (Kiosk)". I added support for this ROM to the script. Will be functional in 0.11r2. Here is info I gathered while looking at the ROM: - Titlescreen demo cutscene is present. (In the final game, it's only present on the Japanese version) - It seems the game was very close to complete at the moment the ROM was created. All music tracks, action commands, bros attacks, moves, super and ultra hammers, etc. are present. Not sure about items. - When going to rooms that aren't used in the ROM, it will either freeze the game or load a glitched version of the room (graphics are missing in 95% of the cases), action commands and brothers aren't initialized when transitioning into those rooms and as a result you can barely move or interact with those rooms at all. I have the feeling most if not all rooms had been finished but the ROM got trimmed of them. Rooms that load but are messed up: 25(stardust) 27(stardust) 30(ending) 46(west beantown, bottom right house interior) 52 55 57 ... (no point in listing them all) - Room 8 is the "thanks for playing" room in this ROM. It's a copy of one of the beta test rooms in the final game. - Fire dash glitch is not present. - In the inventory screen you can only select Items or Stats. You can set the "have map" flag to make the Map selectable. It will be functional but show blackness. - Room 99 (cave between Stardust and Mountain) has extra Fighter Fly enemies, not present in the final game. - After battles, you will have your health replenished always. In the final game this only happens after boss battles and tutorials. - After dying in battle, the game fades to the title screen. - It looks like most events (ROM functions) are still present, although trying to run the code causes glitchy behavior in most cases. (Hohooros can be fought in battle but his rocks will have a glitch attack. Dragohoho can be fought, except that he isn't actually there - only a Goomba can be seen.) - You can change the game mode to trigger certain screens (IWRAM, $2306): * The otherwise inaccessible save screen can be triggered, and saving makes the game write to SRAM memory domain. But the saving code seems messed up. It writes over the same few bytes over and over. * The credits can be triggered, but all the background graphics are messed up. Sprites and the "The end - thanks for playing" text are still intact. The credits text is still mostly intact. No differences between the Demo and the USA version of the credits text. * The pause screen where the Koopa tells you you're missing photos can be triggered. * Sell items and Buy items screens can be triggered. * Minigames seem absent. Unused audio tracks: It seems there are more audio tracks that hadn't been discovered or documented on TCRF yet. Specifically: 0x2B = a quite sinister BGM 0xEF = Egadd saying "Mario" (which I don't remember from the final game) There are a lot more, but in most cases I can't tell if it's a glitched version of existing audio or a valid unused version. I will, at some point, also add a soundtest to the script. Should be fairly simple to implement.[/u] Edit: Added Demo ROM stuff.
Joined: 1/23/2016
Posts: 1
The build date, Oct 27 2003 18:22:5, is later than the other versions, which suggests that it is not a prototype. But still may have TCRF-worthy differences.
Editor, Expert player (2329)
Joined: 5/15/2007
Posts: 3931
Location: Germany
Tried researching NPC clip again, this time with some more promising results. It looks like each NPC has their own unique collision size, but I have not yet found the memory address for it.
EWRAM
one NPC memory slot:
0x0079e4 +- slotoffset      (X-Pos, 4 bytes)
0x0079e4 +- slotoffset+4      (Y-Pos, 4 bytes)
0x0079e4 +- slotoffset+8      (Z-Pos, 4 bytes)
slotoffset is 0x128
(have confirmed it works without memory editing. It's super precise) Notes: - Looks anything higher than 4096 (0x100) will clip. - It seems the push only happens with NPCs that walk. Most Koopas in Koopa Cruiser don't walk, so you can't skip taking the photos. - Luigi NPC, the 5000 he can push you upwards are actually enough to make it through the Toadsworth trigger. But I don't think it is possible to set up. - Trying the Oho jee push, it looks like you get different values for the push depending on your Y-pos. It almost seems like ejection is based on a circle.
Former player
Joined: 4/18/2015
Posts: 168
Location: Canada
It's nice to see you did more research on NPC Clipping :) It's especially nice to see you found more areas that it works! I'm sure that it'll be useful in some area of the game. I actually haven't beaten this game yet, so I don't know any specific examples
Editor, Expert player (2329)
Joined: 5/15/2007
Posts: 3931
Location: Germany
I think it is useless, you can't skip anything with this clip. The only hope was for a clip in Koopa Cruiser but standstill NPCs don't give boosts.. Not to mention you'd clip as one brother only if you use the English version (JP lacks that collision detection) and therefore wouldn't be able to make it through the wall. In other words, even if clipping in the Koopa Cruiser worked, it would only work on the JP version but the English version is way too good for TAS not to use it. Also to be clear, I have not found any more areas where it works other than the Oho Jee. All the other images were just to demonstrate the different margins you get pushed position-wise. Edit: In Mountain Village you can possibly skip the bridge but I haven't got the clip to work so far. And same thing as above, would work on JP only (not even that is confirmed).
Former player
Joined: 4/18/2015
Posts: 168
Location: Canada
Aww, well that's a shame. I didn't realize it only worked on the Japanese version, so hearing that is a bit of a disappointment. It looks like you're right on it being useless. Maybe some new method of NPC Clipping could be found one day?
Editor, Expert player (2329)
Joined: 5/15/2007
Posts: 3931
Location: Germany
Added image of Mountain Village to the previous post, and I have investigated further. The different amounts of pushes you can get sidewards (with Oho Jee and the Mountain Village guy) seem to be dependent on your follow path. If the follow path and the back brother are aligned nicely, you can get up to a ~4300 push, at least with the Oho Jee. I have not gotten any push higher than 4096 with the villager yet, no matter what I try. It should be possible in theory though. However, even if you do clip, it looks like you cannot clip with both brothers. I have assumed you can clip with both brothers on the JP version, because of how barrel clipping works on JP but not on English. - If one brother is in the wall and the other isn't, but one of them is barreled, you can abuse the wider collision size of the barrel to get both brothers into the wall (on JP). - If one brother is in the wall and the other isn't, and none is barreled, you cannot get the other brother into the wall. - The backbrother doesn't get pushed by NPC, thus you cannot clip with the backbrother at the same time as the front brother. So NPC clipping is looking useless in Mountain Village as well. That was the last promising place. I'm feeling safe about starting TAS v2 now, just waiting for Bizhawk 1.11.9.
Skilled player (1738)
Joined: 9/17/2009
Posts: 4980
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
MUGG wrote:
So NPC clipping is looking useless in Mountain Village as well. That was the last promising place. I'm feeling safe about starting TAS v2 now, just waiting for Bizhawk 1.11.9.
I remembered you posted about 1.11.8.2's RAM watch/lua being broken. It seems to work in the interim build at the moment for both cores, if that's the problem. 🙂
Editor, Expert player (2329)
Joined: 5/15/2007
Posts: 3931
Location: Germany
@jlun2, I'm waiting for 1.11.9 since they announced it on this page. I'd rather choose an official build than an interim. Item/stat routing is going to be so much fun (not really...) Item/Stat routing is complete. Will commence the TASing shortly. :P
Editor, Expert player (2329)
Joined: 5/15/2007
Posts: 3931
Location: Germany
Anyone here know when exactly these things change? I would like to add flags for these things. - Teehee Valley enemies - Items in Beanbean-Town Item shop - Items in Beanbean-Town Cloth shop - Items in Little Fungitown Item shop - Items in Little Fungitown Cloth shop If you have any more ideas as for flags to add to the script, feel free to tell me them.
jdaster64
He/Him
Joined: 12/1/2012
Posts: 103
Location: New Donk City
IIRC, the triggers for the item/badge shops are: - After clearing the Sewers (BBCT 1) - After clearing Chucklehuck Woods (BBCT 2) - After clearing Woohoo Hooniversity? (It's some time before beating Mom Piranha) (BBCT 3, LF 1) - After Princess Peach is kidnapped (BBCT 4) - After collecting the Beanstar Pieces (BBCT 5, LF 2) - After beating Popple+Birdo (BBCT 6, LF 3) I believe the Teehee Valley enemies change after Princess Peach is kidnapped, as I'm pretty sure I encountered them on the way to S.S. Chuckola via the top entrance.
Memory
She/Her
Site Admin, Skilled player (1552)
Joined: 3/20/2014
Posts: 1765
Location: Dumpster
I'm pretty sure that the teehee valley enemies change after going to little fungitown at all, I don't think Peach gets kidnapped at all in all bosses rta's and they trigger the second set of enemies in that category.
[16:36:31] <Mothrayas> I have to say this argument about robot drug usage is a lot more fun than whatever else we have been doing in the past two+ hours
[16:08:10] <BenLubar> a TAS is just the limit of a segmented speedrun as the segment length approaches zero
Editor, Expert player (2329)
Joined: 5/15/2007
Posts: 3931
Location: Germany
jdaster64 wrote:
IIRC, the triggers for the item/badge shops are: - After clearing the Sewers (BBCT 1) - After clearing Chucklehuck Woods (BBCT 2) - After clearing Woohoo Hooniversity? (It's some time before beating Mom Piranha) (BBCT 3, LF 1) - After Princess Peach is kidnapped (BBCT 4) - After collecting the Beanstar Pieces (BBCT 5, LF 2) - After beating Popple+Birdo (BBCT 6, LF 3) I believe the Teehee Valley enemies change after Princess Peach is kidnapped, as I'm pretty sure I encountered them on the way to S.S. Chuckola via the top entrance.
Nice. I actually already discovered the 5 flags that control what items are shown in both shops. But it's nice to know when those flags are set. Teehee Valley enemies change after using the lift up to LF with Peach, I found. EWRAM $433D, 1st bit - More items in shops #1 $433D, 2nd bit - More items in shops #2 $433D, 3rd bit - More items in shops #3 $433D, 4th bit - More items in shops #4 $433D, 5th bit - More items in shops #5 $4342, 5th bit - Visited L.Fungitown If #5 is set, doesn't check for #4. If #4 is set, doesn't check for #3. Etc.
Editor, Expert player (2329)
Joined: 5/15/2007
Posts: 3931
Location: Germany
jdaster64 wrote:
Here's the script for BizHawk; let me know if anything else needs explanation. https://www.dropbox.com/s/psvlichjvegg3o3/jdaster64_mlss_scripts_v2.lua?dl=0
I finally tried this, but I can't really understand the values. It doesn't seem to indicate that I'm about to lucky-hit with Mario. The blue text constantly says "Lucky chance: 5" regardless if I'm going to normal hit or lucky hit.
jdaster64
He/Him
Joined: 12/1/2012
Posts: 103
Location: New Donk City
IIRC, those dummy values are the chances of getting a Lucky hit (5%) and the amount of damage done w/all solo and Bros. attacks, all on the enemy in the first slot (which I assume would be a Fighter Fly). They were really only meant for testing. You can tell that it knew a Lucky hit was coming, though, since it had a higher number for Mario's solo Jump / Hammer attacks until you landed the attack. Alternatively, the next RNG value, 0x0CC411C5, is less than 0x100000000 * 5 / 100.
1 2
18 19 20
24 25

1731650489