Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
128 commits
Select commit Hold shift + click to select a range
884fa86
Add UI option for z2mario
jroweboy Aug 22, 2025
514c900
Initial port of the beta z2mario code
jroweboy Aug 22, 2025
5178b21
WIP - Bringing files over from z2mario
jroweboy Aug 24, 2025
64e7932
wip
jroweboy Sep 22, 2025
1df5458
Back in action finally
jroweboy Jan 27, 2026
0e707df
Fix lives screen mario, and prevent shooting fire without fire active
jroweboy Jan 27, 2026
14be772
First public teaser video made
jroweboy Jan 31, 2026
a4b6bae
Make mario big when gaining life
jroweboy Jan 31, 2026
6888a9b
Add mostly working hammer
jroweboy Feb 2, 2026
7b28389
Fix hammer to actually work properly
jroweboy Feb 16, 2026
c506ce4
Make shield spell hold up a real shield
jroweboy Feb 23, 2026
e324c82
Break blocks with hammer
jroweboy Feb 28, 2026
6c82116
Revert to .net8 temporarily
jroweboy Feb 28, 2026
3ceef55
Fix issue with .net8 sucking
jroweboy Feb 28, 2026
8ae8c28
Major bug fixing efforts
jroweboy Mar 1, 2026
cdca535
WIP Dark Mario fight
jroweboy Apr 3, 2026
5da8499
Bring it back to .net 10
jroweboy Apr 28, 2026
83419c6
Work around NMI interrupting audio playback
jroweboy Apr 28, 2026
db486fa
WIP boss fight collision and proper motion
jroweboy May 4, 2026
88bf6ef
Mostly working boss. New title screen logo
jroweboy May 8, 2026
d152080
working towards finally getting the final boss done
jroweboy May 8, 2026
4fa285e
Fix up boss death animation
jroweboy May 8, 2026
5e861c9
Mostly working boss behavior finally
jroweboy May 9, 2026
9c29ef1
Finally. The boss is finally mostly working
jroweboy May 10, 2026
ca40299
Finish boss design
jroweboy May 11, 2026
134d4a2
Disable demo code and remove shadow fireball hack
jroweboy May 11, 2026
2b5f4b4
Reset the custom music tracks on death
jroweboy May 11, 2026
8833197
Remove unused boss fireball check
jroweboy May 11, 2026
4c2d6d7
Fixup the title screen to properly support removing the RANDOMIZER line
jroweboy May 11, 2026
c1277aa
Skip bounce recoil when processing projectiles
jroweboy May 12, 2026
4adfc9c
Remove a buncha unused code
jroweboy May 14, 2026
55b14a2
SO MANY FIXES FOR EVERYTHING
jroweboy May 16, 2026
d2a5714
Re-add in an rts that is used but freed
jroweboy May 16, 2026
cb4258e
Rename the fields on the stats screen
jroweboy May 16, 2026
8acbf59
Fix second time the title screen is drawn
jroweboy May 16, 2026
2818a21
Basic tanooki tail rendering
jroweboy May 21, 2026
0ac6dc1
Update banks for the sprites to account for the tanooki suit
jroweboy May 22, 2026
a3e844d
Keep tail between screens and shrink on too much damage
jroweboy May 22, 2026
a077ce3
Add tail swipe animation
jroweboy May 22, 2026
ab22e6d
Port smb3 tail sfx
jroweboy May 22, 2026
3228e43
Add tail swipe hitbox
jroweboy May 22, 2026
6456f47
Add a brick break hitbox to the tail
jroweboy May 22, 2026
16a9a0c
Fix tail swipe hitbox and animations
jroweboy May 22, 2026
643e413
Various fixes
jroweboy May 23, 2026
e7b7500
Fixup hammer recoil and remove lots of unused variables
jroweboy May 23, 2026
e2dfc64
Remove more dead code, fix elevator areatype issue, mostly fix hammer…
jroweboy May 23, 2026
d84b8fa
Add HOT NEW L O R E for z2mario
jroweboy May 24, 2026
732adef
Clear out shield on death and lives screen
jroweboy May 25, 2026
d020770
Remove unused smb1 noise sfx and try to make indoor theme play
jroweboy May 26, 2026
0a2f28e
Add 1up and lives sprite
jroweboy May 26, 2026
12b5f5c
Put tail sprite behind mud
jroweboy May 26, 2026
3b833f8
Don't clamp mario position when scroll locked
jroweboy May 26, 2026
e046994
Fix fairy glitching through top of elevator
jroweboy May 27, 2026
4d1ad53
Remove unused tail sprite, remove house music, try to fix final cutsc…
jroweboy May 28, 2026
22197d1
Fix boss fireball spawn position and add UNLIKE LINK instead of the end
jroweboy May 28, 2026
7a3cd80
Add TANOOKI spell name
jroweboy May 28, 2026
2659486
Fix elimination mode playing music in title screen instead of delete sfx
jroweboy May 28, 2026
c298b2a
Fix hammer giving mario speed and add darunia chimney support
jroweboy May 28, 2026
8e91f22
Free up space by putting ganon laugh in PRG1F
jroweboy May 28, 2026
09b8aea
Fix moa sfx when using custom music
jroweboy May 28, 2026
96c0949
Add house to global music handler
jroweboy May 28, 2026
8dd1d76
Fix issues after rebase
jroweboy May 28, 2026
ffada8a
Fix up ram inc issues
jroweboy May 28, 2026
0d61515
Add original ftm modules for the z2mario music tracks
jroweboy May 29, 2026
3b33440
Start trying to fix shadow sprites on boss defeat
jroweboy May 29, 2026
a9358d9
Fix shadow sprite and remove music workaround (will update z2ft to ge…
jroweboy May 29, 2026
f353c7e
Fix cutoff sfx so that it properly kills sfx
jroweboy May 29, 2026
7f82ca1
Allow the speedup patch to run for z2 mario mode only
jroweboy May 29, 2026
66afee8
Fix tail swipe issue when using it while silent
jroweboy May 29, 2026
394cb01
Fix tile collision for bricks added later
jroweboy May 29, 2026
7d3d397
Allow hammer when small with upstab
jroweboy May 30, 2026
a31932e
Make downstab pierce enemy shields
jroweboy May 30, 2026
8e47743
Properly clear projectile processing flag
jroweboy May 30, 2026
393f454
Force the swing version into east/west as I want them to be
jroweboy May 30, 2026
5e4ab72
Fix up stab handlers
jroweboy May 30, 2026
bb6fe96
Clean up csproj files and use a consistent style
jroweboy Jun 2, 2026
3919da3
Fix tanooki getting stuck and player palette on sideview change
jroweboy Jun 3, 2026
b8ef08d
Fix issues with game over screen
jroweboy Jun 3, 2026
8ab47ef
Add a version hash for the vanilla z2mario romhack
jroweboy Jun 9, 2026
c202105
Add flute twister stub
jroweboy Jun 9, 2026
3e3f252
First attempt at making the flute warp work
jroweboy Jun 10, 2026
a3a91a3
Builds but almost certainly contains logical bugs.
Jun 9, 2026
230488b
Flag/seed pasting convenience, filename formatting
pmcneill Jun 1, 2026
fb13114
Adds version option for filenames
pmcneill Jun 1, 2026
81e4f4b
Fix warnings
initsu Jun 9, 2026
7756bb5
Update dependencies
initsu Jun 4, 2026
937c31b
Keep level 9 XP costs when not shuffling XP
initsu Jun 9, 2026
35ca591
Revert "Merge pull request #418 from Ellendar/main"
Jun 9, 2026
0502baa
Restoring changes inadvertently removed.
Jun 9, 2026
4ad0d0e
Always write P-bag cave collectable to ROM
initsu Jun 9, 2026
985a35a
Allow headerless and different header ROMs
initsu Jun 11, 2026
533c8fd
Ask for a new ROM output folder if ROM writing throws
initsu Jun 12, 2026
09f3421
WIP Flute still mostly working this time for real
jroweboy Jul 11, 2026
b34ecf7
Fix outstanding issues with flute -> palace warp
jroweboy Jul 13, 2026
ad65903
Play 1up sound when grabbing a link doll
jroweboy Jul 13, 2026
e0f32a0
Make small mario throw hammers but use a nonglitchy frame unless fire
jroweboy Jul 13, 2026
fe46958
Skip over upstab hitbox check which triggered on marios swimming frame
jroweboy Jul 13, 2026
59231c7
Fix fairy bouncing phasing through sometimes
jroweboy Jul 13, 2026
f323924
Clear out some mario specific code on screen transition
jroweboy Jul 13, 2026
bd84f36
remove unused palace tracking which mistakingly overwrote the raft patch
jroweboy Jul 14, 2026
0b8afd1
Update the dark mario fight to let you use all attacks
jroweboy Jul 14, 2026
8100e45
Allow big mario to break bricks with his head to make p1 easier
jroweboy Jul 14, 2026
023d561
Replace flute song for warp whistle
jroweboy Jul 15, 2026
93b1a47
WIP new texts for mario hints
jroweboy Jul 15, 2026
6ac2a69
Add tanooki statue and spell spell star power
jroweboy Jul 17, 2026
1b05573
Allow flute warps to different locations
jroweboy Jul 17, 2026
0e356f1
Add a new title screen sequence for z2 mario.
jroweboy Jul 18, 2026
4f1d7cd
Fix scroll freeze by splitting out the mario one
jroweboy Jul 18, 2026
3337ded
Controllable mario on the title screen
jroweboy Jul 18, 2026
3c04b73
Shuffle a bunch and finish the basic title screen
jroweboy Jul 18, 2026
d283708
Update IRQ to prevent horrible things from happening
jroweboy Jul 19, 2026
87c5000
Make hammer throw from mario at small height when small
jroweboy Jul 19, 2026
f7f7032
Add missing jump in palace warp
jroweboy Jul 20, 2026
0b4e038
Fix almost all sfx issues by better clearing sfx state
jroweboy Jul 20, 2026
55a709f
Add pow shockwave. Probably need to check if enemy is onscreen eventu…
jroweboy Jul 20, 2026
4531f1d
Fix crash from growing in swamp
jroweboy Jul 20, 2026
4bfa6c4
Add a ton of custom text options for walking npcs
jroweboy Jul 22, 2026
a91ae9b
Move more stuff outta fixed bank/prg5 into expanded banks
jroweboy Jul 22, 2026
2490988
Fix hammer hitting statues and add coin sfx on file load
jroweboy Jul 22, 2026
257d185
Add new z2m credits
jroweboy Jul 22, 2026
eb353ab
Fix up dialog support for mario mode
jroweboy Jul 23, 2026
c5b5a79
I will PHYSICALLY EXPLODE if i have to fix another sfx bug.
jroweboy Jul 23, 2026
c7db952
It was technically a bug with the assembler and not SFX
jroweboy Jul 23, 2026
55141ae
!
jroweboy Jul 23, 2026
c902582
More jump branches
jroweboy Jul 23, 2026
a159ee8
Fix player turning into link when bridge is built
jroweboy Jul 27, 2026
06c048a
Clear out the current chr to fix the title screen on second quest
jroweboy Jul 27, 2026
b620b7a
*boom* (i exploded)
jroweboy Jul 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 29 additions & 35 deletions CommandLine/CommandLine.csproj
Original file line number Diff line number Diff line change
@@ -1,35 +1,29 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>Exe</OutputType>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<StartupObject>Z2Randomizer.CommandLine.Program</StartupObject>
<AssemblyName>Z2R</AssemblyName>
<Platforms>AnyCPU;x64</Platforms>
<RootNamespace>Z2Randomizer.CommandLine</RootNamespace>
<LangVersion>default</LangVersion>
<Configurations>Debug;Release;Unsafe Debug</Configurations>
<PublishTrimmed>true</PublishTrimmed>
</PropertyGroup>

<PropertyGroup Condition=" '$(Configuration)' == 'Unsafe Debug' ">
<DebugSymbols Condition=" '$(DebugSymbols)' == '' ">true</DebugSymbols>
<Optimize Condition=" '$(Optimize)' == '' ">false</Optimize>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="McMaster.Extensions.CommandLineUtils" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\Desktop.Common\Desktop.Common.csproj" />
</ItemGroup>

<ItemGroup>
<None Update="DefaultPlayerOptions.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>

</Project>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<StartupObject>Z2Randomizer.CommandLine.Program</StartupObject>
<AssemblyName>Z2R</AssemblyName>
<Platforms>AnyCPU;x64</Platforms>
<RootNamespace>Z2Randomizer.CommandLine</RootNamespace>
<LangVersion>default</LangVersion>
<Configurations>Debug;Release;Unsafe Debug</Configurations>
<PublishTrimmed>true</PublishTrimmed>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Unsafe Debug' ">
<DebugSymbols Condition=" '$(DebugSymbols)' == '' ">true</DebugSymbols>
<Optimize Condition=" '$(Optimize)' == '' ">false</Optimize>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="McMaster.Extensions.CommandLineUtils" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Desktop.Common\Desktop.Common.csproj" />
</ItemGroup>
<ItemGroup>
<None Update="DefaultPlayerOptions.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
6 changes: 3 additions & 3 deletions CommandLine/DefaultPlayerOptions.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"DisableMusic": false,
"RandomizeMusic": false,
"MixCustomAndOriginalMusic": true,
"RandomizeMusic": true,
"MixCustomAndOriginalMusic": false,
"IncludeDiverseMusic": false,
"DisableUnsafeMusic": true,
"FastSpellCasting": true,
Expand All @@ -16,5 +16,5 @@
"ShieldTunicColor": "Default",
"BeamSprite": "Default",
"BeepThreshold": "Normal",
"BeepFrequency": "Normal"
"BeepFrequency": "Off"
}
6 changes: 3 additions & 3 deletions CommandLine/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -137,9 +137,8 @@ public async Task Randomize()
var randomizer = new Hyrule(createAsm,palaceRooms);
var rom = await randomizer.Randomize(vanillaRomData!, configuration, UpdateProgress, cts.Token);

if (rom.romdata != null)
if (rom.success)
{

char os_sep = Path.DirectorySeparatorChar;
var filename = Rom!;
var outpath = OutputPath;
Expand All @@ -151,7 +150,7 @@ public async Task Randomize()
: Directory.GetCurrentDirectory();
}
string newFileName = $"{outpath}/Z2_{Seed}_{Flags}.nes";
await File.WriteAllBytesAsync(newFileName, rom.romdata);
await File.WriteAllBytesAsync(newFileName, rom.romdata!);
logger.Info($"File {newFileName} has been created!");
if (rom.debuginfo != null)
{
Expand All @@ -163,6 +162,7 @@ public async Task Randomize()
else
{
logger.Error("An exception occurred generating the rom");
logger.Error(rom.messages!);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<PropertyGroup>
<Configuration>Release</Configuration>
<Platform>Any CPU</Platform>
<PublishDir>bin\Release\net8.0\publish\win-x64\</PublishDir>
<PublishDir>bin\Release\net10.0\publish\win-x64\</PublishDir>
<PublishProtocol>FileSystem</PublishProtocol>
<_TargetId>Folder</_TargetId>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
Expand Down
3 changes: 2 additions & 1 deletion CommandLine/Properties/launchSettings.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
"profiles": {
"CommandLine": {
"commandName": "Project",
"commandLineArgs": "-c ../../../Sample.json -r ../../../../Zelda2.nes -s 12345678 -o ../../../.."
"commandLineArgs": "-f AAABvvyhAmLAAAAAAAAAEuPi+yAAAAAAAAAAAAAbhA -r ../Zelda2.nes -s mario -o ..",
"workingDirectory": "../build/"
}
}
}
7 changes: 4 additions & 3 deletions CommandLine/Sample.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
{
"AllowConnectionCavesToBeBlocked": false,
"AllowUnsafePathEncounters": false,
"AttackEffectiveness": "HIGH",
"AttackEffectiveness": "DEFAULT",
"AttackLevelCap": 8,
"BeamSprite": "DEFAULT",
"BeepFrequency": "Off",
"BeepThreshold": "Normal",
"BlockingRoomsInAnyPalace": false,
"BossRoomsExitType": "OVERWORLD",
"ChangePalacePallettes": true,
"ChangePalacePallettes": false,
"Climate":
{
"Name": "Classic",
Expand Down Expand Up @@ -171,5 +171,6 @@
"UseCommunityText": true,
"UseCustomRooms": false,
"VanillaShuffleUsesActualTerrain": true,
"WestBiome": "RANDOM_NO_VANILLA_OR_SHUFFLE"
"WestBiome": "RANDOM_NO_VANILLA_OR_SHUFFLE",
"MarioMode": true
}
66 changes: 32 additions & 34 deletions CoreSourceGenerator/CoreSourceGenerator.csproj
Original file line number Diff line number Diff line change
@@ -1,34 +1,32 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<LangVersion>default</LangVersion>
<Nullable>enable</Nullable>
<EnforceExtendedAnalyzerRules>true</EnforceExtendedAnalyzerRules>
<IsRoslynComponent>true</IsRoslynComponent>
<IncludeBuildOutput>false</IncludeBuildOutput>
<IsPackable>false</IsPackable>
<Configurations>Debug;Release;Unsafe Debug</Configurations>
<Platforms>AnyCPU</Platforms>
</PropertyGroup>
<PropertyGroup Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net6.0'))">
<EnableTrimAnalyzer>true</EnableTrimAnalyzer>
<IsTrimmable>true</IsTrimmable>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Unsafe Debug' ">
<DebugSymbols Condition=" '$(DebugSymbols)' == '' ">true</DebugSymbols>
<Optimize Condition=" '$(Optimize)' == '' ">false</Optimize>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.CSharp"/>
<PackageReference Include="PolySharp">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<LangVersion>default</LangVersion>
<Nullable>enable</Nullable>
<EnforceExtendedAnalyzerRules>true</EnforceExtendedAnalyzerRules>
<IsRoslynComponent>true</IsRoslynComponent>
<IncludeBuildOutput>false</IncludeBuildOutput>
<IsPackable>false</IsPackable>
<Configurations>Debug;Release;Unsafe Debug</Configurations>
<Platforms>AnyCPU</Platforms>
</PropertyGroup>
<PropertyGroup Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net6.0'))">
<EnableTrimAnalyzer>true</EnableTrimAnalyzer>
<IsTrimmable>true</IsTrimmable>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Unsafe Debug' ">
<DebugSymbols Condition=" '$(DebugSymbols)' == '' ">true</DebugSymbols>
<Optimize Condition=" '$(Optimize)' == '' ">false</Optimize>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" />
<PackageReference Include="PolySharp">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
</Project>
Loading