Commit b5f3a0a4 authored by umbreon's avatar umbreon

add files from jun-aug 2017

parents
Pipeline #110 failed with stages
in 1 minute and 19 seconds
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7" />
</startup>
</configuration>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{71F58D21-F922-4AF6-8E04-25F76EE80864}</ProjectGuid>
<OutputType>Exe</OutputType>
<RootNamespace>ConsoleApp1</RootNamespace>
<AssemblyName>ConsoleApp1</AssemblyName>
<TargetFrameworkVersion>v4.7</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="original-attempt.cs" />
<Compile Include="functional-asm-translation-unorganized.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="semi-functional.cs" />
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
\ No newline at end of file

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.26430.14
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleApp1", "ConsoleApp1.csproj", "{71F58D21-F922-4AF6-8E04-25F76EE80864}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{71F58D21-F922-4AF6-8E04-25F76EE80864}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{71F58D21-F922-4AF6-8E04-25F76EE80864}.Debug|Any CPU.Build.0 = Debug|Any CPU
{71F58D21-F922-4AF6-8E04-25F76EE80864}.Release|Any CPU.ActiveCfg = Release|Any CPU
{71F58D21-F922-4AF6-8E04-25F76EE80864}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
This diff is collapsed.
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("ConsoleApp1")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ConsoleApp1")]
[assembly: AssemblyCopyright("Copyright © 2017")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("71f58d21-f922-4af6-8e04-25f76ee80864")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
This diff is collapsed.
This diff is collapsed.
instructions based on "Gauntlet IV (USA, Europe) (En, Ja) (September 1993).md"
rom sha-1: d28e22207121f0e2980dd409b4fb24f9fb8967ae
md5: 5e8ec4c047ef4af15027e93b5358858f
crc32: f9d60510
gauntlet 4 quest levels-aligned - all entries are 1024 bytes, and can be directly injected into an expanded rom
---
quest levels are 10*earth, 10*water, 10*fire, 10*wind, 10*castle, 1*hub, 14*other (count may be wrong, also level order not checked at all)
"other" levels are probably all battle mode?
---
injection instructions:
1. insert whole file anywhere in unused ROM space
2. replace level start address:
replace "00 03 DD 56" with injection address (offset of "00 03 DD 56" should be 42AA)
3. replace level offset table (starts at 25FC4):
the 65 entries should be [00 00 00 00], [00 00 04 00], [00 00 08 00], [00 00 0C 00], [00 00 10 00], ..., [00 01 00 00]
---
gauntDecode is an attempt at decompressing and decoding levels in c#, it properly decompresses some (but not all) quest levels
---
rom dump method is the final method used for dumping the levels
run rom and then save the 68000's memory to a file (levels will start at 0x2000, copy 8C00 or 0x7800 bytes depending on run)
usage:
1. build rom using sgdk (used version 1.31 "july 2017")
2. inject asm for dumping either levels 1-35 or levels 36-65 (replace the relevant nops)
3. insert original rom data: start at 0x19122, copy until end of file (paste it in out.bin starting at 0x19122)
4. insert assembled "injection" from assembled dumper.X68 at 0x19110 overwriting any bytes
5. replace offset 0x19302 (61 3C (bsr.s sub_19340)) with 4E 75 (rts)
6. run rom and save memory
7. run rom again with other level range asm injected. preserve any nops
*-----------------------------------------------------------
* Title :
* Written by :
* Date :
* Description:
*-----------------------------------------------------------
ORG $19110
START: ; first instruction of program
* Put program code here
movea.l #$FF2000, a4 ; use this before both runs
nop ; 3 nops before run 1's instructions, this can be ignored
nop ; 3 nops before run 1's instructions, this can be ignored
nop ; 3 nops before run 1's instructions, this can be ignored
movea.l #$3DD56, a2
jsr START
adda.l #1010, a4
movea.l #$3DE84, a2
jsr START
adda.l #1010, a4
movea.l #$3DFB1, a2
jsr START
adda.l #1010, a4
movea.l #$3E0B1, a2
jsr START
adda.l #1010, a4
movea.l #$3E1FC, a2
jsr START
adda.l #1010, a4
movea.l #$3E3BA, a2
jsr START
adda.l #1010, a4
movea.l #$3E565, a2
jsr START
adda.l #1010, a4
movea.l #$3E734, a2
jsr START
adda.l #1010, a4
movea.l #$3E8B9, a2
jsr START
adda.l #1010, a4
movea.l #$3E9DB, a2
jsr START
adda.l #1010, a4
movea.l #$3EADB, a2
jsr START
adda.l #1010, a4
movea.l #$3EC1D, a2
jsr START
adda.l #1010, a4
movea.l #$3EDAB, a2
jsr START
adda.l #1010, a4
movea.l #$3EEC8, a2
jsr START
adda.l #1010, a4
movea.l #$3EFAF, a2
jsr START
adda.l #1010, a4
movea.l #$3F0EA, a2
jsr START
adda.l #1010, a4
movea.l #$3F38B, a2
jsr START
adda.l #1010, a4
movea.l #$3F5CB, a2
jsr START
adda.l #1010, a4
movea.l #$3F7EE, a2
jsr START
adda.l #1010, a4
movea.l #$3F9E4, a2
jsr START
adda.l #1010, a4
movea.l #$3FB91, a2
jsr START
adda.l #1010, a4
movea.l #$3FE7A, a2
jsr START
adda.l #1010, a4
movea.l #$40086, a2
jsr START
adda.l #1010, a4
movea.l #$402A8, a2
jsr START
adda.l #1010, a4
movea.l #$4046F, a2
jsr START
adda.l #1010, a4
movea.l #$405AA, a2
jsr START
adda.l #1010, a4
movea.l #$407CE, a2
jsr START
adda.l #1010, a4
movea.l #$40A63, a2
jsr START
adda.l #1010, a4
movea.l #$40CF3, a2
jsr START
adda.l #1010, a4
movea.l #$40F07, a2
jsr START
adda.l #1010, a4
movea.l #$410F2, a2
jsr START
adda.l #1010, a4
movea.l #$41320, a2
jsr START
adda.l #1010, a4
movea.l #$415C6, a2
jsr START
adda.l #1010, a4
movea.l #$417E8, a2
jsr START
adda.l #1010, a4
movea.l #$419DC, a2
jsr START
adda.l #1010, a4
nop ; 3 nops before run 2's instructions, this can be ignored
nop ; 3 nops before run 2's instructions, this can be ignored
nop ; 3 nops before run 2's instructions, this can be ignored
movea.l #$41BBE, a2
jsr START
adda.l #1010, a4
movea.l #$41DE8, a2
jsr START
adda.l #1010, a4
movea.l #$41FFF, a2
jsr START
adda.l #1010, a4
movea.l #$4222A, a2
jsr START
adda.l #1010, a4
movea.l #$4245F, a2
jsr START
adda.l #1010, a4
movea.l #$4274C, a2
jsr START
adda.l #1010, a4
movea.l #$429A0, a2
jsr START
adda.l #1010, a4
movea.l #$42BAB, a2
jsr START
adda.l #1010, a4
movea.l #$42D9E, a2
jsr START
adda.l #1010, a4
movea.l #$42ED9, a2
jsr START
adda.l #1010, a4
movea.l #$430BF, a2
jsr START
adda.l #1010, a4
movea.l #$43308, a2
jsr START
adda.l #1010, a4
movea.l #$435B7, a2
jsr START
adda.l #1010, a4
movea.l #$437D5, a2
jsr START
adda.l #1010, a4
movea.l #$439E3, a2
jsr START
adda.l #1010, a4
movea.l #$43C17, a2
jsr START
adda.l #1010, a4
movea.l #$43E5E, a2
jsr START
adda.l #1010, a4
movea.l #$440F0, a2
jsr START
adda.l #1010, a4
movea.l #$443A3, a2
jsr START
adda.l #1010, a4
movea.l #$444DE, a2
jsr START
adda.l #1010, a4
movea.l #$44716, a2
jsr START
adda.l #1010, a4
movea.l #$4494B, a2
jsr START
adda.l #1010, a4
movea.l #$44B88, a2
jsr START
adda.l #1010, a4
movea.l #$44DD9, a2
jsr START
adda.l #1010, a4
movea.l #$45016, a2
jsr START
adda.l #1010, a4
movea.l #$45262, a2
jsr START
adda.l #1010, a4
movea.l #$45484, a2
jsr START
adda.l #1010, a4
movea.l #$456AF, a2
jsr START
adda.l #1010, a4
movea.l #$45980, a2
jsr START
adda.l #1010, a4
movea.l #$45B4F, a2
jsr START
adda.l #1010, a4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
injection: ; paste this at 0x19110, overwriting any bytes
move.b (a2)+, (a4)+
move.b (a2)+, (a4)+
move.b (a2)+, (a4)+
move.b (a2)+, (a4)+
move.b (a2)+, (a4)+
move.b (a2)+, (a4)+
move.b (a2)+, (a4)+
move.b (a2)+, (a4)+
moveq #0, d0
move.b (a2), d0
move.b (a2)+, (a4)+
move.w d0, d1
lsr.w #4, d0
move.w d0,$FFE7DC
andi.w #$F, d1
move.w d1,$FFE7E0
move.b (a2), d0
move.b (a2)+, (a4)+
move.w d0, d1
lsr.w #4, d0
move.w d0,$FFE7DE
andi.w #$F, d1
move.w d1, $FFE7E2
move.b (a2), $FFE972
move.b (a2)+, (a4)+
move.b (a2), $FFE974
move.b (a2)+, (a4)+
move.b (a2), $FFE976
move.b (a2)+, (a4)+
move.b (a2), $FFE978
move.b (a2)+, (a4)+
moveq #0, d3
move.b $FFE974, d3
moveq #0, d2
moveq #$20, d4
move.w #1, d0
nop ;;;bsr.w sub_1930A
nop ;;;bsr.w sub_1930A
END START ; last line of source
*~Font name~Courier New~
*~Font size~10~
*~Tab type~1~
*~Tab size~4~
#include <genesis.h>
int main()
{
VDP_drawText("bad", 10, 13);
//load up a2
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
//all of the nops are dumb
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop"