Ultimate Amiga

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 ... 6 7 [8] 9 10 11   Go Down

Author Topic: Hacking: Open Contribution Thread  (Read 76498 times)

0 Members and 5 Guests are viewing this topic.

MadMunky

  • Forum Mod
  • A600
  • *****
  • Karma: 2
  • Offline Offline
  • Gender: Male
  • Posts: 244
Re: Hacking: Open Contribution Thread
« Reply #105 on: January 16, 2013, 02:04:58 PM »

Very nice :)

Can your editor not export clean files like this for the Data Disk?

Problem I've got is I dont seem to be able to run the DD on Steem (I find Steem quicker and easier than the WinUAE :)) I'll keep playing away...

I've attached a memory dump of Bloodwych on the ST if you can find the HEX Values for the woodtrap stuff we can have a look see if it matches on the ST
« Last Edit: January 16, 2013, 02:10:10 PM by MadMunky »
Logged

Hungry Horace

  • Amorphous Blue-Blob Man
  • Site Admin
  • A4000T
  • ******
  • Karma: 307
  • Offline Offline
  • Gender: Male
  • Posts: 3,364
  • Don't forget... Ameboid's need love too!
    • AUW
Re: Hacking: Open Contribution Thread
« Reply #106 on: January 16, 2013, 03:00:58 PM »

the version of my editor which has the export files function doesnt have support for extended levels files unfortunately, i am trying to find the old version that i used to create the maps, but i'm not having much luck at the mo!
Logged
Quote from: KillerGorilla
because winuae is made of code and your amiga is made of stuff

Hungry Horace

  • Amorphous Blue-Blob Man
  • Site Admin
  • A4000T
  • ******
  • Karma: 307
  • Offline Offline
  • Gender: Male
  • Posts: 3,364
  • Don't forget... Ameboid's need love too!
    • AUW
Re: Hacking: Open Contribution Thread
« Reply #107 on: January 16, 2013, 03:29:48 PM »

found it, but i seem to have hard-coded the floor sizes etc.

this is the portion of the code that specifies the offsets for the tower (dungeon) data, and i have attached the BEXT binary file where you use these offsets:

Code: [Select]
Rem  --- 63312 from bext
Rem  --- 1358 from bextsave 
Rem  ---- offset -61954

BXT_MAX:
Data 7,5,8,8

BXT_SERPENT:
Data 7,5,63312
Data 17,17,63382
Data 17,17,63960
Data 17,17,64538
Data 23,23,65116
Data 19,19,66174
Data 15,15,66896



Rem -- 1088 between

BXT_CHAOS:
Data 21,21,68434
Data 21,21,69316
Data 21,21,70198
Data 21,21,71080
Data 15,15,71962

BXT_MOON:
Data 7,9,73556
Data 17,17,73682
Data 17,17,74260
Data 17,17,74838
Data 17,17,75416
Data 17,17,75994
Data 15,17,76572
Data 15,17,77082

BXT_DRAGON:
Data 21,21,78678
Data 17,17,79560
Data 15,15,80138
Data 15,15,80588
Data 12,12,81038
Data 12,12,81326
Data 12,12,81614
Data 12,12,81902

Rem --  17x17 (578)  -- 21x21 (882) -- 15x15 (450)
Rem -- 19x19  (722)  -- 23x23(1058) -- 15x17 (510)


Logged
Quote from: KillerGorilla
because winuae is made of code and your amiga is made of stuff

MadMunky

  • Forum Mod
  • A600
  • *****
  • Karma: 2
  • Offline Offline
  • Gender: Male
  • Posts: 244
Re: Hacking: Open Contribution Thread
« Reply #108 on: January 16, 2013, 04:10:06 PM »

Nice! Just did a quick hack to rip out the maps from memory and they loaded strait up in my editor.
« Last Edit: January 17, 2013, 02:27:21 PM by MadMunky »
Logged

MadMunky

  • Forum Mod
  • A600
  • *****
  • Karma: 2
  • Offline Offline
  • Gender: Male
  • Posts: 244
Re: Hacking: Open Contribution Thread
« Reply #109 on: January 17, 2013, 11:11:57 AM »

Horrace:

I have the following configured to search for the level, where as in BW all the levels where 4096 in the DataDisk there are different lengths

    private int [] ExtSerpTower = {7,17,17,17,23,19,15,0,4104};
    private int [] ExtChaosTower = {21,21,21,21,15,0,0,4103};
    private int [] ExtMoonTower = {7,17,17,17,17,17,15,15,4096};
    private int [] ExtDragonTower = {21,17,15,15,12,12,12,4103};

I use this data, the first 7 bytes to work out the offsets of the maps then read in the amount of bytes needed for that level, I've also been coming across a new hex code see below

990A
Logged

MadMunky

  • Forum Mod
  • A600
  • *****
  • Karma: 2
  • Offline Offline
  • Gender: Male
  • Posts: 244
Re: Hacking: Open Contribution Thread
« Reply #110 on: January 17, 2013, 01:34:23 PM »

Made it so my Viewer can dump memory and images to files now, here the Datadisk from my save game :)























































Logged

MadMunky

  • Forum Mod
  • A600
  • *****
  • Karma: 2
  • Offline Offline
  • Gender: Male
  • Posts: 244
Re: Hacking: Open Contribution Thread
« Reply #111 on: January 17, 2013, 02:27:05 PM »

Here's all the Bloodwych Maps..

http://postimage.org/gallery/66emnftc/fd62c12a/

And again the DataDisk so that you can see what levels what..

http://postimage.org/gallery/6e0zwpqo/
Logged

murlock

  • Chaos Wizard
  • A600
  • *
  • Karma: 2
  • Offline Offline
  • Gender: Male
  • Posts: 34
Re: Hacking: Open Contribution Thread
« Reply #112 on: January 20, 2013, 08:35:01 AM »

Just popping by to say Hi - I do read these forums from time to time :)

Looks like you're making some great progress.

The code I attached a few months back might help with some of the data disk, as I recall having to add some extra cases to cover some of the new things introduced.

Also I think I stored a number of byte patterns as constants for initially looking up the data.
Logged
Look to the towers my friend

MadMunky

  • Forum Mod
  • A600
  • *****
  • Karma: 2
  • Offline Offline
  • Gender: Male
  • Posts: 244
Re: Hacking: Open Contribution Thread
« Reply #113 on: January 20, 2013, 10:12:19 AM »

Thanks Murlock I'll take a look I've not really looked much at your code as yet..

I've made mine as your see in the above code to search for the level widths as this is the same in all versions so I just do + and - from Mod0 to work out where the data is I need to change.

Thinking about it I may need to change this so when people are creating there own maps it still works but that is a easy change later on.

One thing which is making my life harder is that when Using Steem everything is held in memory backwards so I have to keep converting my array backwards and forwards did you manage any way round this?

Also I know bloodwyn is the first character in the dataset but does anyone have a list of which order the other characters come in (just me being lazy :))

EDIT : Im pretty sure this is the right order for the characters...

public enum Characters {
    Blodwyn_StoneMaiden, Murlock_Darkheart, Elanore_Of_Avalon, Rosane_Swifthand,
    Astroth_Slaemworth, Zothen_Runecaster, Baldrick_The_Dung, Elfric_Falendor,
    Sir_Edward_Lion, Megrim_of_Moonwych, Sethra_Bhoaghail, Mr_Flay_Sepulcrast,
    Ulrich_Sternaxe, Zastaph_Mantric, Hengist_Meldanash, Thai_Chang_of_Yinn
}
« Last Edit: January 20, 2013, 10:36:48 AM by MadMunky »
Logged

MadMunky

  • Forum Mod
  • A600
  • *****
  • Karma: 2
  • Offline Offline
  • Gender: Male
  • Posts: 244
Re: Hacking: Open Contribution Thread
« Reply #114 on: January 20, 2013, 12:10:02 PM »

Horrace: Fancy updating the Champion Data

Hacking : Bloodwych Champion Data Structure

Each Character is 32 Bytes below is an example for Blodwyn (data is shown in Decimal)

A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,BB,CC,DD,EE,FF

1,35,17,13,13,35,35,31,31,6,9,5,128,0,0,0
199,255,0,0,0,0,7,9,2,0,3,0,0,0,0,0

Data in HEX

01 23 11 0d 0d 23 23 1f 1f 06 09 05 80 00 00 00
c7 ff 00 00 00 00 07 09 02 00 03 00 00 00 00 00

A = 1 (LEVEL)
B = 35 (STRENGH)
C= 17 (AGILITY)
D = 13 (INTELLIGENCE)
E = 13 (CHARISMA)
F = 35 (HIT POINTS)
G = 35 (HIT POINTS)

etc...

I know what the values are up to 'L' What's stored in the bytes after?
Logged

Hungry Horace

  • Amorphous Blue-Blob Man
  • Site Admin
  • A4000T
  • ******
  • Karma: 307
  • Offline Offline
  • Gender: Male
  • Posts: 3,364
  • Don't forget... Ameboid's need love too!
    • AUW
Re: Hacking: Open Contribution Thread
« Reply #115 on: January 20, 2013, 04:11:41 PM »


A,B,C,D, E,F,G,H
I,J,K,L, M,N,O,P

Q,R,S,T, U,V,W,X
Y,Z,AA,BB, CC,DD,EE,FF

1,35,17,13, 13,35,35,31
31,6,9,5, 128,0,0,0

199,255,0,0, 0,0,7,9
2,0,3,0, 0,0,0,0

Data in HEX

01 23 11 0d  0d 23 23 1f
1f 06 09 05 80 00 00 00
c7 ff 00 00  00 00 07 09
02 00 03 00  00 00 00 00

Full break down as far as i remember….


A = 1 (LEVEL)
B = 35 (STRENGTH)
C= 17 (AGILITY)
D = 13 (INTELLIGENCE)

E = 13 (CHARISMA)
F = 35 (HIT POINTS)
G = 35 (MAX HIT POINTS)
H = 35 (VITALITY)

I = 35 (MAX VITALITY)
J = 06 (CURRENT SPELL POINTS - INGAME….  DIFFERENT PRE-GAME?)
K= 09 (MAX SPELL POINTS - INGAME….  DIFFERENT PRE-GAME?)
L = 05 ('NATURAL' ARMOUR LEVEL)

M,N,O,P = (SPELL BOOK CONTENTS …. H= PAGE 1, I = PAGE 2 … ETC)
 USE BINARY … %1000 = TOP SPELL ONLY, %1111 = ALL SPELLS ON PAGE

Q = FOOD LEVEL (0-$C7)
R = $FF  ?
S = 00  - CURRENTLY WORN GLOVES (OBJECT VALUE)
T = 00  ?
U = 00  ?
V = 00  ?
W = 07 - START X-COORD
X = 09 - START Y-COORD
Y = 02 - START DIRECTION (0-3)
Z = 00 - START TOWER (DO NOT CHANGE!!)
AA = 03 - START FLOOR
BB = 00 ?
CC = 00  ?
DD = 00 ?
EE = 00  ?
FF = 00  ?


I am 99% sure one of the unknown values changes depending on levelling up pending, and/or spells waiting to be purchased… so XP is probably in there also, if not part of the same thing.

I will definitely use this to update the information in this board, but i'd be interested to know if you can work out any blanks by looking at the "live" data for us!

Logged
Quote from: KillerGorilla
because winuae is made of code and your amiga is made of stuff

MadMunky

  • Forum Mod
  • A600
  • *****
  • Karma: 2
  • Offline Offline
  • Gender: Male
  • Posts: 244
Re: Hacking: Open Contribution Thread
« Reply #116 on: January 20, 2013, 05:27:35 PM »

R = When you have a protect spell this is the amount of time it last 05 = 5 Second FF = 255 Seconds
Z = Timer Between hits (Gets Set to EE, as you level this will decrease so you attack faster. When set to 00 you will kill almost anything instantly as you do so many hits so quickly)
BB = Hit Cooldown
CC = XP till next Level (Change this to FF and you will gain a level when you sleep)
DD = XP Countdown Goes up to FF when if you do a hit of 20 it will reduce down by 20 then wrap round again when at 0
EE = Spells waiting to buy from the fairy
« Last Edit: January 20, 2013, 05:43:02 PM by MadMunky »
Logged

Hungry Horace

  • Amorphous Blue-Blob Man
  • Site Admin
  • A4000T
  • ******
  • Karma: 307
  • Offline Offline
  • Gender: Male
  • Posts: 3,364
  • Don't forget... Ameboid's need love too!
    • AUW
Re: Hacking: Open Contribution Thread
« Reply #117 on: January 20, 2013, 06:34:50 PM »

R = When you have a protect spell this is the amount of time it last 05 = 5 Second FF = 255 Seconds

nice find!


Quote
Z = Timer Between hits (Gets Set to EE, as you level this will decrease so you attack faster. When set to 00 you will kill almost anything instantly as you do so many hits so quickly)

definately Z ?   if you set this to a different value before game-start does it work? is it different before / after game-start? (i.e. part of the code sets it to EE)

Quote
BB = Hit Cooldown

?? could you explain this one please! Amount of time after being hit until you do something?

Quote
CC = XP till next Level (Change this to FF and you will gain a level when you sleep)
  so does this count downwards, getting set to a new (higher) value when you level-up, decreasing to -1 ($FF) for a level-up?

Quote
DD = XP Countdown:  Goes up to FF when if you do a hit of 20 it will reduce down by 20 then wrap round again when at 0

err... bit confused on this one also!

Quote
EE = Spells waiting to buy from the fairy

a fixed number? i.e. changes to 01 for 1 spell to buy, 2 for 2 spells... ?
Logged
Quote from: KillerGorilla
because winuae is made of code and your amiga is made of stuff

MadMunky

  • Forum Mod
  • A600
  • *****
  • Karma: 2
  • Offline Offline
  • Gender: Male
  • Posts: 244
Re: Hacking: Open Contribution Thread
« Reply #118 on: January 20, 2013, 10:06:19 PM »

Z = As soon as the game starts the value gets cleared and set to EE so if I set it to 10 it will just get cleared, the same thing happens for all characters, when you move off the level it seem to only effect your party characters. (Level 01 = E9, Level 02 = D9, Level 04 = C9, Level 06 = A9, Level 08 = 99,  Level 10 = 89)

BB = When you attack this will then increases to 07 and counts back down to 00 before you can attack again (this gets overridden though when you change Z) (7 seconds it seems between attack maybe this changes as you lvl)

CC = Correct this counts downwards FF when you lvl as soon as you sleep and it says you leveled and then go to some like 30 you will then have to decrease this value back to FF and you will level again and the next time the value will be something like 35 and repeats. (Ill see if I can work out the pattern) (Pattern is 11,24,40,50,53,60)

DD = Starts at 255 then if you do 30 Damage to a monster this will reduce to 225 (You need to get it down to 0) I guess this is linked to CC

EE = Correct so if you put this value to 09 you will be able to buy 9 spells from the fairy
« Last Edit: January 21, 2013, 11:47:17 AM by MadMunky »
Logged

MadMunky

  • Forum Mod
  • A600
  • *****
  • Karma: 2
  • Offline Offline
  • Gender: Male
  • Posts: 244
Re: Hacking: Open Contribution Thread
« Reply #119 on: January 21, 2013, 06:17:39 PM »

OK this is a little odd anyone know about this...

My logic for finding the maps is find mod0's first 8 bytes then 57 bytes in is normally where all the map data is this works fine on all emulators but in Stew or WinUAE once you start the game a load of extra bytes are inserted so the bytes which where at 57 in are now at 312 below is all the data from mod0 to where 02 04 is for the first set of stairs for level 0, any ideas...

0c 15 0f 1f 13 04 00 00 01 15 0f 1f 13 05 00 00
00 00 00 18 03 8a 05 4c 0c ce 0f a0 0f c8 00 00
08 05 08 00 06 0b 00 00 05 05 08 00 06 0c 00 00
00 1f 00 1f 00 18 05 4c 00 00 f0 1e 00 00 00 b3
00 5d 00 00 00 27 06 18 ff ff 00 00 00 07 00 08
00 00 ff ff 10 0e 05 03 00 0c 00 16 00 00 00 00
00 00 00 0e 05 03 00 00 00 00 00 00 ff ff ff ff
ff ff 00 00 00 00 82 23 00 ff 00 00 ff ff ff ff
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff
00 7f 00 ff 00 03 ff ff ff ff ff ff ff ff 01 00
00 00 00 00 00 00 00 60 0f 00 00 00 00 00 00 09
00 0c 00 00 ff ff ff ff ff ff 00 00 00 00 00 00
00 00 00 00 ff ff ff ff 00 00 00 00 00 00 ff ff
ff ff ff ff 00 00 00 00 00 00 00 ff 00 00 ff ff
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 ff 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
0c 15 0f 1f 13 04 00 00 01 15 0f 1f 13 05 00 00
00 00 00 18 03 8a 05 4c 0c ce 0f a0 0f c8 00 00
08 05 08 00 06 0b 00 00 05 05 08 00 06 0c 00 00
00 15 00 15 00 18 00 05

I wish I looked before I posted, this seems to be all the data about player location, mouse location etc...
« Last Edit: January 21, 2013, 06:21:19 PM by MadMunky »
Logged
Pages: 1 ... 6 7 [8] 9 10 11   Go Up
 

TinyPortal 2.2.2 © 2005-2022