Ultimate Amiga
Amiga Software Help / Discussion => Games Hacking, Modding and Editing => Topic started by: Hungry Horace on December 19, 2009, 04:12:46 PM
-
right, thought it was time to start a thread on this.
I was having a nose around last night in the disk.1 file and discovered this:
(http://pspuae.condor.serverpro3.com/HostedProjects/DevelopersSection/HungryHorace/NewZealandStoryEditor/NZS_leveldata.png)
which looked to me a lot like a tile-layout.
i had trouble working out where/what it was for, until Skateblind pointed out that it needed vertically flipping, and suddenly it matches the final level. I quick edit on that confirmed that is indeed the case.
However, before i can do anything meaningful with it, i really need the graphics / tiles.
Would anyone (BooBoo?) be able to assist in ripping those?
-
and so it begins....
(http://pspuae.condor.serverpro3.com/HostedProjects/DevelopersSection/HungryHorace/NewZealandStoryEditor/ItBegins.png)
-
Hi - just seen this - Looks good
-Ive had a realy quick look and strate away with GFXRip can see tiles at !11264 on Disk.1
will definitely have a more indepeth look -
edit:although I not good at figuring out the dimenstion any clues? 16x16x4bit at a guess? and check this out http://hol.abime.net/960/gamemap
-
yes, they are 16x16. - colour, one has to assume 16 (4 bitplanes)
all maps are !1024 pixels wide, which equates to $40 (hex) bytes 'wide'
-
Just got these level one Tiles from WinUae SaveState
16x16x4 RAW Interleaved/ST
Also wanted to check do you just want the tiles from any source to make a Map editor or you would like to find there location on Disk.1?
-
i will take 'any source' in the meanwhile, but disk.1 locations would be good for further down the line
-
Ok ill continue ripping the tiles from WinUae SaveStates
Im going to save the tiles without borders - The picture above has borderd around the tiles - Ok? Let me know
The tiles are there on Disk.1 - I cant quite line the tiles up from Disk.1 anyway ;)-
Edit: Forget the bollocks I wrote before at some point ill check strings from the WinUae savestate/tiles with Disk.1 ;D
All tiles atached below hopefully -
-
The above attachment also contains a WinUae SaveState of NZS Stage 1_1
Corrections
Tiles - Stage 1_1
16x16x4bit RAW Interleaved/ST
175 Tiles x 16 = 2800
WinUae SaveState - The tiles can be cut from the SaveState !251,058 - !273,457
They can then be loaded into ArtPro 16x2800x4
Disk.1 - Tiles start at !11,330
Comparing the Disk.1 tiles with the ones form WinUae SaveState at first they seem the same but there are differences -
Data mixed in with the Tiles? Value 2C?
There very close I dont think there packed so to Rip Tiles from Disk.1 some sort of Filter/Decoder/injecter would be needed.
(http://eab.abime.net/images/smilies/xmas.gif)
-
Disk.1 - Tiles start at !11,330
Comparing the Disk.1 tiles with the ones form WinUae SaveState at first they seem the same but there are differences -
Data mixed in with the Tiles? Value 2C?
I think ive got how to decode the tiles from Disk.1
Examples
2C 00 02 = 00*2+1 = 00 00 00
2C DD 03 = DD*3+1 = DD DD DD DD
2C 00 0F = 00*15+1 = 00 00 00 00 00
00 00 00 00 00
00 00 00 00 00 00
And so on...............
Gone a bit off on Ripping Raw tiles dont know if you want to split threads :)
-
right... i think i have that. so effectively the tiles are packed on disk.1?
what i will need to do is create one programs to 'extract' each level's tiles and another to edit them?
i wonder if it is worth seing if we can get the (unpacked) tiles taken from files with the WHDload slave then - as that is likely to cause a lot of problems with 'putting them back'
ps. tile ripping is still realated so you are fine in this thread and you have teh power of mod in this board also ;)
-
right... i think i have that. so effectively the tiles are packed on disk.1?
Its not very good hardley saves any space
what i will need to do is create one programs to 'extract' each level's tiles and another to edit them?
Work out exactly where the Packed Tiles start and end - Ive just been using the Replace fuction of the HEX editor to decode/unpack
i wonder if it is worth seing if we can get the (unpacked) tiles taken from files with the WHDload slave then - as that is likely to cause a lot of problems with 'putting them back'
Absolutely -Dont know how big the file size of the edited tiles will be once encoded/Packed again - and the game doesnt use files and is probably max 880kb -but ive started and im intrested -there maybe ways round this like leaving certain tiles unedited or leaving some blank
Ill try and work out some address and dimensions for ArtPro - Just for my own curiosity
:)
-
Ripping 132 Tiles of Stage1_1 from Disk.1
Cut from disk.1 !11330 - !27464
Use Find & Replace All on HEX editor and the Key from post 8 to Replace all 2C values with correct Values -
ArtPro 16x2112x4
Now whos going to try editing the tiles and re inserting them ;D
-
i'm going to create the extractor/unpacker first ;)
-
using the png ripped tiles i've managed to get level 1-1 displaying on AMOS
seems an offset value for tile numbers is needed on every level afterwards though, so that might be a bit tricky (read: boring) to work out.
-
Wow that was quick - Thats realy good HH :)
Ok ive attached all the WinUae SaveStates -Tiles always start at !251,058
Also a the PNG of stage 4_4b and a TxT file of how many tiles I think each stage has - but a lot of the tile sets end with a black tile I dont know yet if this is a tile or Data but i included it.
:O and as you know a single tile is 128bytes - so just a matter of multiplying that by number of tiles - To cut from WinUae
Then multiplying by 16 for the ArtPro dimensions.
-
ok, i've adjusted my map viewer and calculated the necessary offsets (i suspect the big patches of data between worlds have monster or some other data in them)
every level is working from the .png's at the moment, except level 5-3, which i said looked odd.
I will ignore that for now and wait until i have 'clean' data extracted/converted from the savestates.
-
Excellent Stuff Horace :) cant wait to see it -Maybe when youve got time you could compile a little beta ;D- Can you scroll the Levels? and will you be able to make some kind of interface for editing ok?
Your right about level 5-3 I must have saved in the wrong order ive attached below
-
already working on interface at the top of the screen for tile changes.
I will upload a compiled version once it's possible to change the map layout using that.
screen scrolling is on the cursor keys, map switching on +/- keys
thanks for the fixed tiles - just adding that now
-
attached is a very early editor.
use cursors to move the screen (everything is displayed, i havent added the width/height limits yet)
< > move up/down through selected tiles
+ - move up/down through the levels
Left click a tile on the map screen to paste a tile from the buffer
Right click a tile on the map screen to copy a tile to the buffer
Level 1-2 and i suspect some others have a broken palette (not all colours used) so they may not all display the editor screen correctly.
more data please!
-
i know you worked out the tile start address in disk.1 for level 1-1 ... do you have end address for that and the start address for 1-2?
been messing with some data blocks around the map data, and so far all i've done is screw up the tiles!
-
wow! Impressive work guys 8)
you gonna make a whole "NZS : The Lost Levels" set in the end or something then? ;-)
-
wow! Impressive work guys 8)
you gonna make a whole "NZS : The Lost Levels" set in the end or something then? ;-)
more likely make the Arcade level set in the amiga version. it will depend on how much can be 'uncovered' though.
-
As far as I can tell the Tiles for Stage1-2 start at !33854 - I will get more exact info on the tiles from Disk.1 evenchaly and make a list but because of the packing its not much fun - Im just scanning for other stuff.
Finding certain things might be easyer makeing changes to memory with ARIII?
:)
-
changing on disk.1 or changing on AR3 is down to personal preference.
I favour disk.1 edits in this instance because i can 'zero' massive blocks of code ... i still cant find that enemy data though!!
i was wondering. are the tiles definately in a "stream" following each other on disk.1 ? i was wondering if the collision info for each might be contained in a byte or word before/after each tile?
-
Not sure try Zeroing from !27464 to !33854
I have moved the three boomerang guys at the end on stage 1_1 in the WinUae save state but couldnt find the same strings in Disk.1
There address were !416992,!417050,!417108 -It might take a little while to figure out ;)
-
Not sure try Zeroing from !27464 to !33854
I have moved the three boomerang guys at the end on stage 1_1 in the WinUae save state but couldnt find the same strings in Disk.1
There address were !416992,!417050,!417108 -It might take a little while to figure out ;)
you're already way ahead of me on that then.
It occured to me that zeroing might break the game if it kills a 'termination' byte.
what where the values at those addresses and what did you change them to?
Also, i uploaded the WHDload slave for the NZS Amiga Format Demo to WHDload.de today. Might be worth experimenting with that, then working backwards, as there is a lot less info to investigate
-
Cool ill check out the Demo -Might hold some clues, I know i tried it last time you uploaded to EAB but think I might have lost it
!416992 String = 03,34,00,40 maybe have a look with the ARIII
34 - changed to 90 = further away
40 to 70 lower down
Realy not sure now because when you die they return to there original postions?
-
Realy not sure now because when you die they return to there original postions?
that makes sense, in that you are changing them "on the fly" with a savestate edit,rather than changing the source data.
sorry for the short reply - been at the pub :)
-
Howdy -I finaly got round to looking at this agian cos im still curious
Ok not that exciting just going to post a few things -Im working my way through Ripping the tiles and stuff ;)
Disk.1
Palette =!574,472
Each set of level tiles seems to have its own key to unpacking Tiles
For Example
Lvl 1_1 = 2C 00 02 = 00*2+1 = 00 00 00
Lvl 1_2 = 25 00 02 = 00*2+1 = 00 00 00
Lvl 1_3 = 15 00 02 = 00*2+1 = 00 00 00
There is some data before each set of Level tiles still not 100% sure what this does changing produces some strange results? For example Lvl1_2 Data at !33794 - 33853
Horace do you have a list of exact Addreses for where Map data for each level Starts and Ends to save me looking? If not ill use your editor to check
-
Horace do you have a list of exact Addreses for where Map data for each level Starts and Ends to save me looking? If not ill use your editor to check
i'll get the addresses from the editor code for you.
-
errr...
If LEVEL>0 and LEVEL<5 : Rem -- 1,2,3,4
LEVELDATA=$18C80+((LEVEL-1)*$1600)
Else If LEVEL>4 and LEVEL<9 : Rem -- 5,6,7,8
LEVELDATA=$18C80+((LEVEL-1)*$1600)+$4200
Else If LEVEL>8 and LEVEL<12 : Rem -- 9,10,11,12
LEVELDATA=$18C80+((LEVEL-1)*$1600)+($1E400)
Else If LEVEL>11 and LEVEL<16 : Rem -- 13,14,15
LEVELDATA=$18C80+((LEVEL-1)*$1600)+($23C00)
Else If LEVEL>15 and LEVEL<18 : Rem -- 16,17
LEVELDATA=$18C80+((LEVEL-1)*$1600)+($30200)
Else If LEVEL>17 and LEVEL<20 : Rem -- 18,19,20,21
LEVELDATA=$18C80+((LEVEL-1)*$1600)+($3C800)
Else If LEVEL>19 and LEVEL<22 : Rem -- 18,19,20,21
LEVELDATA=$18C80+((LEVEL-1)*$1600)+($46200)
End If
you do the maths! ;)
-
ThankYou Sir :)
-
/me prods BooBoo
any progress mate?
-
Hi - Hopefuly ill have some time to look I was just going to say before the MAP data there 2 figures that change the dimensions of the level - length,height.
Im using Disk.1 as a ADF now - zeroed all data that isnt Level 1_1 -Map tiles etc witch has clearded a lot of data, If you were makeing a game wouldnt you place enemies @ X,Y? but I guess thats not the point just have to keep looking :)
-
Hi - Hopefuly ill have some time to look I was just going to say before the MAP data there 2 figures that change the dimensions of the level - length,height.
<snip>
If you were makeing a game wouldnt you place enemies @ X,Y? but I guess thats not the point just have to keep looking :)
if you change the width/height the exit/start points move, so clearly they are placed as 'offsets' from some point rather than fixed X/Y values based on the maximum level-size, i suspect the same will be true of the enemies
-
editor, source and a whole host of other crap attached for BooBoo!
-
Thankyou Horace hopefuly I wont confuse my self to much :)
-
i cant rememebr how much i commented the source tbh