English Amiga Board


Go Back   English Amiga Board > Other Projects > project.Amiga Game Factory

 
 
Thread Tools
Old 06 November 2022, 12:19   #181
lmimmfn
Registered User
 
Join Date: May 2018
Location: Ireland
Posts: 672
Quote:
Originally Posted by jotd View Post
I have described the process in one answer here https://retrocomputing.stackexchange.com/a/24613/3316

Basically, disassembly gets you the easy ones (LEA, MOVE direct... in obvious code sections). The problems arise with move.l # and mostly dc.ls (pointers in data)

There are a lot of "little secrets" (which aren't secrets) to prepare the source file (like renaming the labels with the offset in it, or splitting ORIB #0,d0 i 2 DC.W 0...), plus the script which catches undefined pointer table labels you just inserted and declares them at the proper location in the source file. README in my github for the projects try to list how to proceed.

With kickstart files it's easier since addresses range from 0xF8000/0xFC000 to 0x100000.

On a game, you have to use memory protection (winuae or whdload) so if the game tries to access the old memory you catch it. But it can be very tedious so I have developed a lot of scripts to try to detect pointer tables.


The most annoying case (happens in Starglider) is a list of structures containing pointers and also data, but not periodically (kind of varying structures I dunno...). In that case if you declare a relocation when it's data then you introduce a bug which is super hard to track. Then you have to doubt of all the relocations, remove them, run with memory protection on, retry.... Time consuming even with the right tools. Without any tools it's just impossible.



Ah, that makes sense. So ATM play with the old install with CACHES on. But it hasn't speed regulation so for instance in WinUAE the game is unplayable because of speed (a bit like freescape games)
But I think I'm very close to making it work from fastmem so stay tuned Working on infestation ATM.

Yesterday I tried Hunter on my 060 with fastmem or chipmem and I thought that even with chipmem the FPS were good. But clearly with fastmem it was smoother.
Thanks, that makes it clear, I was curious as I disassembled Buggy Boy on the CPC and found it frustrating to determine which addresses were data and which were executable code,

I wonder if UAE supported dumping all addresses(and counts) the PC visits would speed it up? I.e. play a game from start to finish, disassemble the code and enrich with the dumped PC addresses to remove dummy labels in data segments of the code?
lmimmfn is offline  
Old 06 November 2022, 13:43   #182
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,162
accessing data in words or longwords would make a difference. If access as word, then it's not part of an address, if access as longword, then probably an address (if in addressable range), but not always.
jotd is offline  
Old 09 November 2022, 12:11   #183
Reynolds
Alien Breeder
 
Reynolds's Avatar
 
Join Date: Dec 2007
Location: Szigetszentmiklos / Hungary
Age: 46
Posts: 1,096
Haven't checked but saw a YT vid of Flight of the intruder, wonder if it also got speed-up with the Fast Ram reallocation?
Reynolds is offline  
Old 09 November 2022, 12:50   #184
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,162
either it's on an emulator, or real amiga. Game naturally uses fastmem, even in whdload. No big gain to expect.

Some news:

- good progress made on infestation, will zone a playable beta in a few
- still have the project to adapt paraj CPU blitter code for Fighter Bomber and Killing Cloud
- Starglider 2: standby but will finish it
jotd is offline  
Old 09 November 2022, 22:22   #185
Predseda
Puttymoon inhabitant
 
Predseda's Avatar
 
Join Date: Mar 2007
Location: Tromaville
Age: 46
Posts: 7,539
Send a message via ICQ to Predseda
Killing Cloud really deserves to be faster game.
Predseda is offline  
Old 10 November 2022, 21:46   #186
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,162
Infestation fastmem / no caches / no sound to test in the zone
jotd is offline  
Old 10 November 2022, 22:06   #187
Galahad/FLT
Going nowhere
 
Galahad/FLT's Avatar
 
Join Date: Oct 2001
Location: United Kingdom
Age: 50
Posts: 8,986
Quote:
Originally Posted by jotd View Post
So all the various sections are different programs? that complicates the work all right (encrpytion: not that much as whdload slave already decrypts them)
Yup, every vector game is separate code entirely, majority is in lower 512k chip ram, but it does have some code parts that load into slow ram/upper chip ram.

Its easy enough to track what code is what, simply latch onto the games loader (there is only one), and once it finishes loading, game is unpacked and decrypted, and it also passes in registers where the data was loaded and its size, so at least you can have a compare table knowing that those two elements are enough to identify what has just been loaded.
Galahad/FLT is offline  
Old 10 November 2022, 23:14   #188
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,162
yes, with whdload slave already existing it makes life easier
jotd is offline  
Old 11 November 2022, 17:41   #189
tolkien
AmigaMan
 
tolkien's Avatar
 
Join Date: Oct 2012
Location: Castro Urdiales/Spain
Posts: 760
Hunter now runs like light in my a1260 but there is an issue with disk access.
I have written the problem in mantis.
tolkien is offline  
Old 11 November 2022, 18:29   #190
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,162
good catch. There were hidden relocs like

Code:
move.l  #$0000233c,d0
how to decide if it's an address or a value?? by using watchpoints and trying to cover as much code as possible. Otherwise, it's hard to tell. If you relocate all moves immediate to data register by default there's a greater risk that you introduce a hard to find game bug.


So fixed, and update sent to whdload site. Careful: slave itself isn't important to update. The .reloc files have been updated to take those new relocs into account.
jotd is offline  
Old 11 November 2022, 20:05   #191
tolkien
AmigaMan
 
tolkien's Avatar
 
Join Date: Oct 2012
Location: Castro Urdiales/Spain
Posts: 760
Thanks mate. Im really enjoying this game. You are the master!
tolkien is offline  
Old 12 November 2022, 00:31   #192
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,162
Starglider 2 fastmem update in the zone. Now with crosshairs and sound.

Fixed a few crashes. I have a doubt with the tunnel from the planet. I flew through it and exited it: nothing there. Only an empty planet. Well. Have a try.
jotd is offline  
Old 12 November 2022, 02:04   #193
lmimmfn
Registered User
 
Join Date: May 2018
Location: Ireland
Posts: 672
Quote:
Originally Posted by jotd View Post
accessing data in words or longwords would make a difference. If access as word, then it's not part of an address, if access as longword, then probably an address (if in addressable range), but not always.
That makes sense but wouldn't it make relocation simpler if you had a map of addresses visited by the program counter to seperate code execution vs gfx/sound etc. so you're only focusing on code jmp instructions/and/or interrupts?
lmimmfn is offline  
Old 12 November 2022, 03:19   #194
Aardvark
Registered User
 
Join Date: Jan 2019
Location: Finland
Posts: 634
Quote:
Originally Posted by jotd View Post
Starglider 2 fastmem update in the zone. Now with crosshairs and sound.

Fixed a few crashes. I have a doubt with the tunnel from the planet. I flew through it and exited it: nothing there. Only an empty planet. Well. Have a try.
Still crashes in the tunnel, also saving doesn't work.
Aardvark is offline  
Old 12 November 2022, 12:35   #195
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,162
Quote:
Originally Posted by Aardvark View Post
Still crashes in the tunnel, also saving doesn't work.

Ok watching your first video again. There are several tunnels I may have taken another one. Will try to play exactly like you did.


About Red Zone (just re-read your message about the crash on 060/ 100MHz), I was wondering if the game should not be slowed down like other games. I don't have a 68060/100 but "just" a 68060/50 and it runs fine, but for instance with WinUAE if you set "fastest possible" the game is super-slow (which is not logical). So maybe speed regulation (like I did in Starglider 2) could be interesting to add.


Speed regulation is necessary on games that expect/are targetting no more than 25 fps on any machine because there are a lot of operations for a 68000. If the cpu is fast enough, the cycle can be completed in 1 frame and the game runs at 50 fps but twice as fast. Happened to F/18 interceptor, and a lot of other games (Populous 2, Syndicate, a lot of 2D games as well like Magic Pockets).
jotd is offline  
Old 12 November 2022, 13:53   #196
Aardvark
Registered User
 
Join Date: Jan 2019
Location: Finland
Posts: 634
Quote:
Originally Posted by jotd View Post
About Red Zone (just re-read your message about the crash on 060/ 100MHz), I was wondering if the game should not be slowed down like other games. I don't have a 68060/100 but "just" a 68060/50 and it runs fine, but for instance with WinUAE if you set "fastest possible" the game is super-slow (which is not logical). So maybe speed regulation (like I did in Starglider 2) could be interesting to add.
Crashes and buggy behavior in Red Zone with TF1260 was due to cache related bug in it's beta/alpha firmware. I also have Warp1260 now, and Red Zone behaves normally with it in high clock speed.

Stephen Leary explains this bug in detail here at 32:33 mark
[ Show youtube player ]

Last edited by Aardvark; 12 November 2022 at 14:12.
Aardvark is offline  
Old 12 November 2022, 21:58   #197
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,162
Quote:
Originally Posted by Aardvark View Post
Still crashes in the tunnel, also saving doesn't work.

ok I zoned a new version, fast memory. Save now works. I've been in the tunnel a lot of times and it never crashes for me. Can you try with NOCACHE just in case?
jotd is offline  
Old 12 November 2022, 23:45   #198
Aardvark
Registered User
 
Join Date: Jan 2019
Location: Finland
Posts: 634
Quote:
Originally Posted by jotd View Post
ok I zoned a new version, fast memory. Save now works. I've been in the tunnel a lot of times and it never crashes for me. Can you try with NOCACHE just in case?
No changes, it crashes even in Winuae with basic 020+8mb config
[ Show youtube player ]
Aardvark is offline  
Old 13 November 2022, 00:34   #199
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,162
more interesting. I don't have a crash with WinUAE. But with 020 + 8MB Z2 I get one ! so time to investigate more thanks!!
jotd is offline  
Old 13 November 2022, 01:19   #200
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,162
yes!! found a fake reloc that made the tunnel crash. Zoned the new version. Works now.
jotd is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
at a loss with Red Zone framerate jotd project.WHDLoad 23 02 March 2021 19:55
Cover Disk: Red Zone demo - Freezeframe? Angus support.Games 10 06 May 2020 16:09
Red Zone? mikey2002kent support.Games 0 26 February 2014 22:06
Proposal: Split Amiga projects and PC projects? andreas project.Amiga Game Factory 4 12 February 2008 12:00
Red Zone demo on The One cover disk? Angus Retrogaming General Discussion 7 08 November 2006 11:13

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 02:25.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.19217 seconds with 16 queries