![]() |
![]() |
#41 |
Phone Homer
Join Date: Jun 2006
Location: 5150
Posts: 5,887
|
|
![]() |
![]() |
#42 | |
Coder/webmaster/gamer
Join Date: Oct 2001
Location: Canberra/Australia
Posts: 2,716
|
Quote:
|
|
![]() |
![]() |
#43 |
Coder/webmaster/gamer
Join Date: Oct 2001
Location: Canberra/Australia
Posts: 2,716
|
jotd...?
Last edited by Minuous; 30 January 2010 at 02:22. Reason: oops |
![]() |
![]() |
#44 |
Going nowhere
Join Date: Oct 2001
Location: United Kingdom
Age: 50
Posts: 9,035
|
|
![]() |
![]() |
#45 |
Zone Friend
Join Date: May 2006
Location: France
Posts: 1,896
|
Interesting Wikipédia but you could add ports games from others computers mostly Atari ST IMHO
KML |
![]() |
![]() |
#46 |
Coder/webmaster/gamer
Join Date: Oct 2001
Location: Canberra/Australia
Posts: 2,716
|
|
![]() |
![]() |
#47 |
Natteravn
Join Date: Nov 2009
Location: Herford / Germany
Posts: 2,583
|
Does anybody know what the legal status of those reassembled programs is? Are we really allowed to release the source?
I ask because I did a complete reassembly of Giana Sisters, just for fun and to remember the good old times. It's not just raw reassembler output, but it is readable, with meaningful symbol and function names and a documentation about the format of all the used files and objects. There's quite some weeks of hard work in it. Before I would ever invest more work into it (for example make it work with a real file system in a multi-tasking environment) it would be good to know about any legal issues... |
![]() |
![]() |
#48 |
Phone Homer
Join Date: Jun 2006
Location: 5150
Posts: 5,887
|
Giana Sisters was never legal anyway and I dont think anyone would care now - upload it
![]() |
![]() |
![]() |
#49 |
Natteravn
Join Date: Nov 2009
Location: Herford / Germany
Posts: 2,583
|
Ok. I will need some time to get it into a releasable state, though.
|
![]() |
![]() |
#50 |
Global Moderator
Join Date: Sep 2006
Location: Germany
Age: 46
Posts: 32,591
|
Hmm, so that means someone could make a GGS level editor... drool
Please release it phx ![]() |
![]() |
![]() |
#51 |
Natteravn
Join Date: Nov 2009
Location: Herford / Germany
Posts: 2,583
|
The map format was not analyzed in detail, only as much as it is relevant to the main program. But you will know enough to find the meaning of the rest by experimenting with it.
The level maps of GGS start at track 84 (that's cylinder 42), and each level occupies two tracks. A GGS map consists of three parts. 1. The header 2. The level map, containg 256x20 bytes with a code for each 8x8 block in the level. 3. Several variable sections which define the colors, offsets to the graphics being used, and pixel-precise(!) positions of blocks and objects in the level. As a teaser, here is a small part of my GGS data-format notes, describing the map format: ---8<--- Map File Format =============== $0C.B: Map width LSB $0D.B: Map width MSB $0E.B: Map height LSB $0F.B: Map height MSB $10: Map data Rest of file contains sections labeled with HEAD, SPAL, SLOB, SLBL, SUNT, SOBJ, SBLK, SVOR, SKOL and SEND. SPAL section (PALette): ----------------------- 16 words representing R7G7B7 color codes for COLOR00-COLOR15. SLBL section (Level Block Location): ------------------------------------ An array with the following records: $00.W: Block image number (starting with 1, not 0!) $02.W: Block X coordinate $04.W: Block Y coordinate (Warning! Cartesian coordinates! Y=0 is Y=159) A $ffff as image number marks the end of the array. SBLK section (BLocK image offsets): ----------------------------------- An array of 32-bit offsets into the block image data memory ($4181e). Note that a block number 1 will be at position 0 in this array! Block image data format: $00.W: Width in words - 1 $02.W: Width in pixels $04.W: Height $06: Image data of all 4 planes SLOB section (Level OBjects): ----------------------------- An array with the following records: $00.W: Object image number (starting with 1, 0 will be ignored) $02.W: Object X coordinate $04.W: Object Y coordinate (Warning! Cartesian coordinates! Y=0 is Y=159) A $ffff as image number marks the end of the array. SOBJ section (OBJect image offsets): ------------------------------------ First longword is $000387ee, which is checked against the first longword in the map image data. It follows an array of 32-bit offsets into the map image data memory ($4181e). Note that a image number 1 will be at position 0 in this array! $00.L: Mask data offset $04.L: Image bitmap data offset The mask has the same format as the mask in the Blitter Object Queue. SUNT section (level UNTergrund block): -------------------------------------- Defines a single 32-bit offsets into map image data. This 32x32 image will be used as the background for the whole level, before rendering the rest. Block image data format: $00.W: Width in words - 1 (always 1) $02.W: Width in pixels (always 32) $04.W: Height (always 32) $06: Image data of all 4 planes SKOL section (?): ----------------- A section terminated by "SVOR" which contains labels for BRUECKE2, DORNEN, BONUS, BONUS1, FLAMME and HINWEIS, defining coordinates for different types of animated objects. BRUECKE2 and HINWEIS are not used by the game. All labeled sections contain an array of the following records: $00.W: X position in map $02.W: Y position in map (Warning! Cartesian coordinates!) A set bit 15 in Y pos. disables the animated object. The array is terminated by X pos. $ffff. SVOR section (?): ----------------- Terminates a SKOL section. Just contains $ffff. ---8<--- |
![]() |
![]() |
#52 |
This cat is no more
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,462
|
another cool thing would be to rewrite the engine and use original level data (and bits of original code to be faithful to the original game)
|
![]() |
![]() |
#53 |
Natteravn
Join Date: Nov 2009
Location: Herford / Germany
Posts: 2,583
|
Everything is possible.
Now the game is perfectly reassembled. There is not a single function or data symbol without a meaningful name left. I can run the code through an optimizing assembler, gaining 500 bytes, or change it however I like, and it still works, which means I got everything correct. Currently I'm using a Makefile to automatically construct an ADF from the code, the data and all the maps, including a small start-up code. Then I copy it to an SD card and test it on my Minimig. But I figured out the version I reassembled was not perfect. The final level is corrupt. I get a dragon on parts of the title screen. The last diamond to catch is not present, of course. Was there ever a 100% working Amiga release? I would be interested in map 33 from this disk. In my version not only this map is missing but also the code is explicitely referencing to the first half of the title screen. |
![]() |
![]() |
#54 |
This cat is no more
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,462
|
Have you tried the whdload version of the game? Maybe you have disassembled a cracked version (you're talking about building an ADF and this game was clearly non dos track)
The whdload version uses original disks, so there's more chance that the final level is OK PS: nice job with the disassembling. I guess you can make it public, noone cares (except maybe Nintendo ![]() |
![]() |
![]() |
#55 |
Registered User
Join Date: Mar 2006
Location: Germany
Posts: 899
|
Is there a playable level 33, maybe it's some leftover data? When I get to the rightmost exit in level 32, this level restarts. When I get to the spot at the bottom between two big blocks, I fall a floor lower with the dragon and the diamond behind, which finishes the game. Tested with SPS 2500, I guess SPS 2945 version is the same.
|
![]() |
![]() |
#56 |
Natteravn
Join Date: Nov 2009
Location: Herford / Germany
Posts: 2,583
|
The map with the dragon and the diamond is level 33. There should be a short disk-access when the map is loaded after falling through the floor.
When touching the last diamond a text should appear: "Giana get up, the sun has frightened the night!". In my reassembled version I can see that this text is never printed. So it must have been an early beta... ![]() |
![]() |
![]() |
#57 | ||
Registered User
Join Date: Mar 2006
Location: Germany
Posts: 899
|
Ok, since it still says "stage 32" on the screen it wasn't clear.
Quote:
Quote:
|
||
![]() |
![]() |
#58 |
Natteravn
Join Date: Nov 2009
Location: Herford / Germany
Posts: 2,583
|
The "Red Sector" version.
|
![]() |
![]() |
#59 | ||
Natteravn
Join Date: Nov 2009
Location: Herford / Germany
Posts: 2,583
|
It's not easy to get an original GGS disk.
Quote:
Quote:
|
||
![]() |
![]() |
#60 |
Zone Friend
Join Date: May 2006
Location: France
Posts: 1,896
|
here:
|
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
CD32 toolkit games work in debug but not test | amigapd | support.Other | 0 | 04 February 2011 13:06 |
X68000 games with debug infos. | hitchhikr | project.CARE | 9 | 28 January 2011 11:10 |
Mame32 Debug | redblade | Retrogaming General Discussion | 4 | 10 October 2005 05:43 |
Debug ? | mtb | support.WinUAE | 8 | 19 December 2002 12:19 |
A good site for Epix (games + infos) | Maverick357 | Nostalgia & memories | 1 | 25 October 2001 17:37 |
|
|