Last Ninja 2 - Cracking adventure

Diskussioner om programmering

Moderatorer: Fanta_gbg, e5frog, stonan, Zlasher, hollowman

Last Ninja 2 - Cracking adventure

Inläggav Fix » 21 juni 2012, 23:39

Eftersom jag klarade av Last Ninja 1, måste vi prova Last Ninja 2 med.... :-)
Ska bli spännande med kunskaperna vi har sen tidigare.
Kan tänka mig att det fungerar på liknade sätt, men betyder inte alls att jag kommer att lyckas.

Liknar Last Ninja 1... Och ja första filen laddar in "Activision" där det ligger lite kod på $0e00 ->
I första programmet som Autostartar ser man att det hoppar till JMP ($02C9) vilket betyder att startadressen ligger på $02C9, Dvs ett indirekt hopp.
Och vad ligger på $02C9... det vet vi inte innan programmet ligger på rätt ställe. Men finns två sätt att lösa det.
Det ena enklaste, är att starta det, och sedan freeze och gå in och titta alternativt titta ordentligt i koden.
Antar att man gjort så här för att "skydda" sig lite enkelt från att avslöja den riktiga startadressen till Loadern, då den startar mitt inne i koden.
I alla fall.... Loadern startar på $11FF... så laddar man in Activision filen och skriver SYS $11FF så laddas spelet in. Det betyder att vi enklast pillar in denna koden i Crossassembler miljö så vi enkelt kan ändra sen. Och förmodligen ligger loadern här också till resten av spelet precis som innan...

part1.jpg
part1.jpg (28.9 KiB) Visad 12937 gånger


Tittar vi längst ner på $1000... de två första bytesen är $FF, $11 dvs: $11FF

part1.1.jpg
part1.1.jpg (37.33 KiB) Visad 12937 gånger



Här ser vi vad som ligger på $11FF
part1.2.jpg
part1.2.jpg (35.37 KiB) Visad 12937 gånger




Har tittat lite på koden och börjat porta den till crossassembler miljö.
Inte riktigt lika som den förra, men liknande.
Dom rör ihop det lite mer, och laddar massor med små filer.
Men tror att det inte ska vara några problem att reda ut det, då man går till väga på följande sätt

C:11f2 A9 3E LDA #$3E
.C:11f4 20 0D 10 JSR $100D
.C:11f7 A9 3F LDA #$3F
.C:11f9 20 0D 10 JSR $100D
.C:11fc 4C 00 14 JMP $1400

och XX är den track/sector "fil" som ska laddas osv.

Gissa vad som startar på $1400 ?
Användarvisningsbild
Fix
Programmeringsexpert
Programmeringsexpert
 
Inlägg: 361
Blev medlem: 3 juni 2005, 11:09
Ort: ONSLAUGHT + HOKUTO FORCE

Re: Last Ninja 2 - Cracking adventure

Inläggav Iggelito » 22 juni 2012, 07:47

[LIKE TUMME]
Total Chaos / Noice & F4CG
\m/ >.< \m/ ¯ Goatpower ¯ \m/ >.< \m/
http://csdb.dk/scener/?id=1048
Användarvisningsbild
Iggelito
Stormästare
Stormästare
 
Inlägg: 389
Blev medlem: 7 april 2006, 12:39
Ort: InFlamestown (Göteborg)

Re: Last Ninja 2 - Cracking adventure

Inläggav Fix » 22 juni 2012, 10:03

Har tittat lite i morse.

$02AF = BYTA LEVEL
Precis samma adress som på LN1

Spelet verkar ha ungefär samma upplägg.
Fast sakerna ligger på lite andra ställen i minnet.
Och det ser även ut som det finns mer plats kvar i minnet till att peta in våra egna rutiner sedan.


Har fått över loader till C64 Studio, så jag lättare kan mixtra med koden sen.
Fått den att assemblera felfritt, fast det hänger sig när jag kör den.
Så jag har missat någon rad.
Blir att felsöka i morgon!

Fixat
Loadern fungerar nu, och man kan plocka ut de delar som jag behöver.
Ska bara ta reda på vart och hur spelet får reda vilken del som ska laddas.

GOD MIDSOMMAR !
Användarvisningsbild
Fix
Programmeringsexpert
Programmeringsexpert
 
Inlägg: 361
Blev medlem: 3 juni 2005, 11:09
Ort: ONSLAUGHT + HOKUTO FORCE

Re: Last Ninja 2 - Cracking adventure

Inläggav Fix » 23 juni 2012, 13:36

Nedan är ett litet klipp från loadern som vi fixade innan.
Och det är här som spelet sedan laddar in de olika levlarna.



; INTERNAL GAME LOADER PART
; Level 1 - THE CENTRAL $3E, $3F
; Level 2 - THE STREETS
; Level 3 -
; Level 4 -
; Level 5 -
; Level 6 -
; Level 7 -

;------------------------------------------------------------------------------------------

.11c2 JSR .100d


LDA #$4C ; Start Level ?
STA $1830 ;
JSR $6000 ; Start Game, Pre-Intro
; Show start screen, wait for Fire to load Level


LDA #$30 ; $8000->$AFFB
JSR .100d

LDA $01
AND #$FC
STA $01

LDY #$30
LDX #$F9
.11dc LDA $AF00,X
.11df STA $FF00,X
DEX
CPX #$FF
BNE .11dc

DEC .11dc+2
DEC .11df+2
DEY
BPL .11dc
INC $01

LDA #$3E ; $4E00->$CFFF ; GAME DATA
JSR .100d

LDA #$3F ; $4000->$4CFF ; GAME DATA
JSR .100d

JMP $1400 ; Start Game
Användarvisningsbild
Fix
Programmeringsexpert
Programmeringsexpert
 
Inlägg: 361
Blev medlem: 3 juni 2005, 11:09
Ort: ONSLAUGHT + HOKUTO FORCE

Re: Last Ninja 2 - Cracking adventure

Inläggav Fix » 24 juni 2012, 21:17

Status

Givetvis var det inte så lätt som jag trodde....
Och har petat i koden fram och tillbaka, men inte fått det att ladda in delarna som jag vill.
Men nu precis har jag lyckats med nästa pusselbit iallfall...

Loadern fungerar ungefär så här

LDA #$3E
JSR .100d

där #$3E är den del som ska laddas.
dock vet man inte vilka delar som ska laddas och hur...
Jag antog att man bara skulle fortsätta att öka 3F, 40, 41 osv...

Men dom har rört till det lite mot LN1.

Spelet hoppar till $16ad där ökar $EC med 1
.C:16ad E6 EC INC $EC
.C:16af A5 EC LDA $EC
.C:16b1 8D 41 18 STA $1841

Och $EC säts på ett annat ställe

.C:0ee4 A9 41 LDA #$41
.C:0ee6 85 EC STA $EC

Då vet vi att $EC är #$41 från start och det låter logiskt eftersom $3F är sista delen som laddas i den första loadern.
Men klabbet är ju att det inte går att ladda #$41...

Men vi ser

.C:16d8 A2 00 LDX #$00
.C:16da 20 89 17 JSR $1789
.C:16dd A2 01 LDX #$01
.C:16df 20 89 17 JSR $1789

Och på:

.C:1789 8A TXA
.C:178a 18 CLC
.C:178b 69 31 ADC #$31
.C:178d 8D 40 18 STA $1840

Ser vi att X åker till A och $31 läggs till.

Sen ser vi att följande körs

.C:1790 A9 40 LDA #$40 ; $1840
.C:1792 85 BB STA $BB ; Används i loader på $1003
.C:1794 A9 18 LDA #$18
.C:1796 85 BC STA $BC

Här ser vi att $BB / $BC sätts med $1840

Och i loadern ser vi

.C:1003 A0 01 LDY #$01
.C:1005 B1 BB LDA ($BB),Y
.C:1007 0A ASL A
.C:1008 0A ASL A
.C:1009 0A ASL A
.C:100a 88 DEY
.C:100b 51 BB EOR ($BB),Y
.C:100d AA TAX

Rörigt... JA !! men allt detta blir

att $EC ökas med ett varje gång spelet ska ladda in ny level

$EC = 41, 42, 43 , 44, 45 osv...
Och att vi hoppar 2 ggr till loadern

.C:16d8 A2 00 LDX #$00
.C:16da 20 89 17 JSR $1789
.C:16dd A2 01 LDX #$01
.C:16df 20 89 17 JSR $1789

Och att 1840 sätts med X och plussas med $31

1840 = 31 eller 32

Som sedan körs i koden på : $1003

Vilket blir:

42: $21, $22
43: $29, $2A
44: $11, $12
45: $19, $1A
osv...

Skriver vi nu $21 och $22

LDA #$21
JSR .100d
LDA #$22
JSR .100d

Så kan vi ladda in mer data...

Och i loaderkoden ser vi

.C:16d8 A2 00 LDX #$00
.C:16da 20 89 17 JSR $1789
.C:16dd A2 01 LDX #$01
.C:16df 20 89 17 JSR $1789
.C:16e2 20 33 15 JSR $1533
.C:16e5 A9 7F LDA #$7F
.C:16e7 8D 0D DC STA $DC0D
.C:16ea 2C 0D DC BIT $DC0D
.C:16ed 20 00 4E JSR $4E00
.C:16f0 20 83 15 JSR $1583

Att det ska köras kod på $4E00 och där ligger nu kod om vi laddas in ovan.

$4E00 = Rita ut Level på skärmen...

Nu ska jag reda ut vad som händer där....
och vad $1583 och $1533 gör...


Om ni tycker det är rörigt... vad tror ni jag tycker...


Nu har jag lyckats få lite styr på loadern...


part1.3.jpg
part1.3.jpg (33.72 KiB) Visad 12888 gånger

part1.4.jpg
part1.4.jpg (23.78 KiB) Visad 12888 gånger
Senast redigerad av Fix 24 juni 2012, 21:53, redigerad totalt 1 gång.
Användarvisningsbild
Fix
Programmeringsexpert
Programmeringsexpert
 
Inlägg: 361
Blev medlem: 3 juni 2005, 11:09
Ort: ONSLAUGHT + HOKUTO FORCE

Re: Last Ninja 2 - Cracking adventure

Inläggav hedning » 24 juni 2012, 21:27

Jag tycker det är fedt med lög! \o/
...::] Genesis Project - Accept No Limits [::...
SX-64, C64GS, silver badge c64, Brödbox, C64C, C64G, Drean C64C, VIC20, Plus/4, C16, C116, C128, C128D, Atari 520 STfm, Atari 1040 ST, Atari Falcon 030, Amiga 500, Amiga 600, Amiga 1200, CDTV.
Användarvisningsbild
hedning
Stormästare
Stormästare
 
Inlägg: 1852
Blev medlem: 15 mars 2009, 20:33
Ort: Lund

Re: Last Ninja 2 - Cracking adventure

Inläggav Fix » 24 juni 2012, 22:51

Kan jag bara reda ut hur jag får reda på vad jag ska mata in istället så jag kan ladda in själva levlen så är vi på god väg.
Tror jag är lite på G att reda ut det.

I denna röran tror jag svaret finns.


C:1790 A9 40 LDA #$40 ; $1840
.C:1792 85 BB STA $BB ; Används i loader på $1003
.C:1794 A9 18 LDA #$18
.C:1796 85 BC STA $BC

.C:1798 A9 02 LDA #$02
.C:179a 85 B7 STA $B7

.C:179c A9 08 LDA #$08
.C:179e 85 BA STA $BA
.C:17a0 A9 00 LDA #$00
.C:17a2 85 B9 STA $B9
.C:17a4 8A TXA
.C:17a5 0A ASL A
.C:17a6 AA TAX
.C:17a7 BC 37 18 LDY $1837,X
.C:17aa BD 36 18 LDA $1836,X
.C:17ad AA TAX
.C:17ae A9 40 LDA #$40
.C:17b0 20 03 10 JSR $1003
.C:17b3 90 D3 BCC $1788
.C:17b5 68 PLA
.C:17b6 68 PLA
.C:17b7 20 0E 14 JSR $140E

HÄR TROR JAG DET ÄR !!!!

.C:17ba A5 EC LDA $EC
.C:17bc 38 SEC
.C:17bd E9 41 SBC #$41
.C:17bf 4A LSR A
.C:17c0 4A LSR A
.C:17c1 08 PHP
.C:17c2 18 CLC
.C:17c3 69 1C ADC #$1C
.C:17c5 AD EA 17 LDA $17EA
.C:17c8 28 PLP
.C:17c9 A9 41 LDA #$41
.C:17cb 69 00 ADC #$00
.C:17cd AD F1 17 LDA $17F1
.C:17d0 20 83 15 JSR $1583
Användarvisningsbild
Fix
Programmeringsexpert
Programmeringsexpert
 
Inlägg: 361
Blev medlem: 3 juni 2005, 11:09
Ort: ONSLAUGHT + HOKUTO FORCE

Re: Last Ninja 2 - Cracking adventure

Inläggav Fix » 25 juni 2012, 19:16

part1.5.jpg
part1.5.jpg (30.87 KiB) Visad 12873 gånger


I mitt äventyr att bemästra även Last Ninja 2 vilket är lite svårare än trott, och när hoppet ibland håller på att svika lyckas man med nästa pusselbit. :mrgreen: :mrgreen:
Håller på att försöka reda ut den interna loadern till spelet så vi vet vad vi ska ha ut. Och här har dom rört till det som fan.
Men med lite tur och att helt enkelt prova sig fram går det sakta.

Ovan är en del som jag laddat in, men inte kunde komma på vad det var. Gissade på att det skulle vara SID data.
När jag tittade lite så låg det även kod, och då provade jag att köra koden. Ibland ser du snabbt vad det är.
Och i detta fall pep det från högtalaren. och körde jag det en gång till så pep det igen...
Så jag skrev helt enkelt en liten loop, och så strömmar det ut härlig Last Ninja 2 musik!!!!!
Användarvisningsbild
Fix
Programmeringsexpert
Programmeringsexpert
 
Inlägg: 361
Blev medlem: 3 juni 2005, 11:09
Ort: ONSLAUGHT + HOKUTO FORCE

Re: Last Ninja 2 - Cracking adventure

Inläggav Fix » 21 februari 2013, 12:23

STATUS:

Tyvärr körde jag fast, men kommer att ta upp det igen...
Kunde små pojkar på 15år fixa det ska fan jag också lyckas :-)
Användarvisningsbild
Fix
Programmeringsexpert
Programmeringsexpert
 
Inlägg: 361
Blev medlem: 3 juni 2005, 11:09
Ort: ONSLAUGHT + HOKUTO FORCE

Re: Last Ninja 2 - Cracking adventure

Inläggav Zlasher » 21 februari 2013, 12:33

Jeg har ingenting å bidra med, men er imponert, så fortsett gjerne å holde oss oppdatert.
Jeg liker å lese om det - selv om jeg ikke kan komme med noen forslag selv! :D
Atari Lynx-100%
Microvision-100%
Sega Master System 20%
VC 4000-95%
Vectrex-86%
Activision Patches-70%

Commodore|Atari|Nintendo|Sinclair|Grandstand|Sega
Min retroblogg: http://retro-spill.blogspot.com/
Användarvisningsbild
Zlasher
Moderator
Moderator
 
Inlägg: 810
Blev medlem: 2 januari 2010, 20:09
Ort: Oslo, Norge

Re: Last Ninja 2 - Cracking adventure

Inläggav e5frog » 26 februari 2013, 21:04

Små pojkar på 15 år har kanske inte så mycket annat att pyssla med, mamma fixar maten etc etc så lever man ett normalt vuxenliv så är man ju redan handikappad i jämförelse. ;-)
Kolla in mitt Fairchild System bild-galleri:
fairchild fairchild fairchild Bild fairchild fairchild fairchild
Användarvisningsbild
e5frog
Moderator
Moderator
 
Inlägg: 2763
Blev medlem: 8 augusti 2007, 18:16
Ort: Älvängen

Re: Last Ninja 2 - Cracking adventure

Inläggav Fix » 16 juni 2014, 13:43

Jag har faktiskt börjat rota i detta projekt igen... och tänkte försöka dokumentera det vidare.
Körde fast idet förra gången, och tappade intresse...

Just nu sitter jag och går igenom det lite allmänt så man kommer in i det igen.
Men just nu kan jag inte komma på varför jag inte löste det innan, nu tycker jag det ser enkelt ut att lösa.

Fast det kanske jag snart får äta upp...
Användarvisningsbild
Fix
Programmeringsexpert
Programmeringsexpert
 
Inlägg: 361
Blev medlem: 3 juni 2005, 11:09
Ort: ONSLAUGHT + HOKUTO FORCE

Re: Last Ninja 2 - Cracking adventure

Inläggav Redreamer » 16 juni 2014, 19:22

Tummen upp för att du kom igång igen, bara det är en bedrift, iaf om det hade varit jag :D
It always return one day!
Användarvisningsbild
Redreamer
Stormästare
Stormästare
 
Inlägg: 1423
Blev medlem: 1 maj 2005, 10:07
Ort: Borås

Re: Last Ninja 2 - Cracking adventure

Inläggav Fix » 16 juni 2014, 23:12

Tackar, tackar...

Jag håller nu på med att läsa ut all data fån original disketterna.
Det tar sin tid då det är med massa filer som ska dumpas.

Mitt program är inte så hightech, utan jag har mer eller mindre ändrat i originalloadern och tagit bort sådant som inte behövs.
Så man får starta den för varje fil man ska dumpa, vilket gör att det tar tid.

Dock har jag inte provat att få igång spelet med mina dumpade filer, men jag är säker på att det kommer att funka.

Jag hade missat att dumpa lite filer förra gången....



Ska se om jag inte kan upp upp lite mer info så nu kan följa...
Om det går vägen blir det ett nytt Rewind crack...

Kommer lite fler retro crack inom det närmaste hoppas jag.
En del spel ska ha trainer och intro bara.
Användarvisningsbild
Fix
Programmeringsexpert
Programmeringsexpert
 
Inlägg: 361
Blev medlem: 3 juni 2005, 11:09
Ort: ONSLAUGHT + HOKUTO FORCE

Re: Last Ninja 2 - Cracking adventure

Inläggav Fix » 26 juni 2014, 23:08

Så, nu har jag rippat ut alla sju nivåer i spelet.
Det är 5st filer på level, så det blev en massa rippande.

Nu orkade jag inte göra en ripper som automatiskt rippade, men det hade ju sparat tid...
Fördelen att göra ett program som gör det automatiskt skulle vara om man behöver rippa ut det igen.

Men jag antar att jag har fått ut vad jag behöver.

Kommer att posta programmet här sen.


Nu ska jag se om jag kan få ihop så spelet startar med dom filer jag har.
Ska ha semester nästa vecka, så vi får se om det blir något datande på kvällarna.

Ni som orkar läsa/följa får gärna ställa frågor, om ni själv försöker att knäcka spelet eller undrar hur jag gjort.

/Fix

** Som jag skrev ovan kan jag inte se varför detta ens skulle vara svårt att få ihop. Kan inte fatta varför jag körde fast, utan jag måste ha fastnat i något dumt tänk och låst hjärnan på det. Ska se om jag hinner sätta mig ner ikväll och pilla lite.
Användarvisningsbild
Fix
Programmeringsexpert
Programmeringsexpert
 
Inlägg: 361
Blev medlem: 3 juni 2005, 11:09
Ort: ONSLAUGHT + HOKUTO FORCE

Nästa

Återgå till Programmering/prog.-verktyg

Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 1 gäst

Banners

BOA Japon Mediapalatset Nostalgibutiken
Quartex Retro Overlays Retroplay Spel och sånt
Super Motaro Söders Serie & Skivhandel vintagegames.se RG 2016
cron