27 June 2020, 13:58 | #21 |
Registered User
Join Date: Jun 2009
Location: Dublin, then Glasgow
Posts: 6,404
|
First thing I see there is that you're assigning two bitmaps to a single memory allocation. If that isn't the issue, try adding some width (say 16 pixels) to the allocation and see if it goes away. If it does, the alignment of the bitplanes means that the allocation needs to be bigger.
|
27 June 2020, 14:17 | #22 |
Registered User
Join Date: Nov 2019
Location: Celle / Germany
Posts: 147
|
I already checked the bitmaplib and the command "Bitmap": as far as I read the code, it allocates the memory for the bitmap at an even address.
While testing I got another problem: a program with a single "NPrint" leads to a crash an a A500+kick1.3 (emulated) Can someone confirm that? |
27 June 2020, 14:29 | #23 | |
Registered User
Join Date: Sep 2019
Location: Italy
Age: 49
Posts: 36
|
it still hang..
do you want me to send you my project in private? Code:
mem0.l=AllocMem((#SCREENW+16)*(#SCREENH+#SCROFFSET)/2,2) mem1.l=AllocMem((#SCREENW+16)*(#SCREENH+#SCROFFSET)/2,2) mem2.l=AllocMem((#SCREENW+16)*((#SCREENH*2)+32)/2,2) CludgeBitMap 0,#SCREENW,#SCREENH+#SCROFFSET,#BPL,mem0 CludgeBitMap 1,#SCREENW,#SCREENH+#SCROFFSET,#BPL,mem1 CludgeBitMap 2,#SCREENW,(#SCREENH*2)+32,#BPL,mem2 Quote:
|
|
30 June 2020, 15:53 | #24 |
Registered User
Join Date: Nov 2019
Location: Celle / Germany
Posts: 147
|
Good news.
I fixed that problem with allocating bitmaps. The problem was inside bitmaplib: it was possible that an internal variable was located at an odd address. I compiled a new acidlibs-collection. Please try it here: |
30 June 2020, 16:31 | #25 |
Registered User
Join Date: Sep 2019
Location: Italy
Age: 49
Posts: 36
|
|
30 June 2020, 17:09 | #26 |
Registered User
Join Date: Jun 2009
Location: Dublin, then Glasgow
Posts: 6,404
|
Sweet! Thanks for that Sven! Now, where can we send a few beer tokens as a sign of our appreciation?
|
30 June 2020, 21:12 | #27 |
AmigaMan
Join Date: Oct 2012
Location: Castro Urdiales/Spain
Posts: 765
|
Very good mate!!!
|
30 June 2020, 21:15 | #28 |
Registered User
Join Date: Sep 2019
Location: Italy
Age: 49
Posts: 36
|
Hello Honitos,
i just have to overwrite AcidLibs or do i have to anything else? Becuse my game still hang... tnx |
30 June 2020, 21:34 | #29 |
Registered User
Join Date: Nov 2019
Location: Celle / Germany
Posts: 147
|
Yes, just replace the acidlibs-file...
Can you test the little test source provided by Nightshift several posts up? |
01 July 2020, 11:07 | #30 |
Registered User
Join Date: Sep 2019
Location: Italy
Age: 49
Posts: 36
|
|
01 July 2020, 13:24 | #31 |
Registered User
Join Date: Nov 2019
Location: Celle / Germany
Posts: 147
|
I'm going to check it again this evening.
Check it with kick2.0 if you can. I am still having problems with kick1.3 but with kick2.0 on a 68000 it works... Last edited by Honitos; 01 July 2020 at 13:49. |
02 July 2020, 08:45 | #32 |
Registered User
Join Date: Mar 2020
Location: Duesseldorf / Germany
Posts: 39
|
I followed the discussion and your tests in this thread a little bit:
In summary, can it be said that AB3-Games (with the workaround and/or the changed AcidLibs) run on an A500 OCS with Kickstart 2.x (and above)? |
02 July 2020, 10:21 | #33 |
Registered User
Join Date: Jun 2009
Location: Dublin, then Glasgow
Posts: 6,404
|
I can confirm that Nightshift's test code works fine on a 68000 / 2.0 with the new library. I'm having trouble with a project I'm working on though, seems to crash very early on a 68000 - either at WBStartup or when assigning a variable at the very top of the code. I don't think either of those are the issue, so I reckon it's one of the command libraries doing something strange on initialisation. For the moment it's not a huge deal because this particular code doesn't do anything particularly AB3-ish, so it compiles in BB2 with very little hassle, but there are other projects where that's not the case.
|
02 July 2020, 11:51 | #34 |
Registered User
Join Date: Nov 2019
Location: Celle / Germany
Posts: 147
|
Amiblitz3 programs on OCS Amiga 500
It seems(at least) to be a problem in printlib.
Without NPrint, the bitmap example by Nightshift works with Kick1.3. I am debugging the init code at the Moment. |
02 July 2020, 12:10 | #35 |
Registered User
Join Date: Sep 2019
Location: Italy
Age: 49
Posts: 36
|
|
02 July 2020, 12:28 | #36 |
Registered User
Join Date: Jun 2009
Location: Dublin, then Glasgow
Posts: 6,404
|
Just a thought (without knowing too much of the internals)... I think printlib opens dos.library to use the text output functions it contains. Maybe it makes use of some 2.0 DOS calls?
It would appear that the changes made to the original libraries are far more than the FPU requirement, which is a big shame really... |
02 July 2020, 15:41 | #37 |
Registered User
Join Date: Nov 2019
Location: Celle / Germany
Posts: 147
|
I found the reason for the crash:
It is located in the memlib that is used by other libs to allocate memory. Someone of the opensourceteam has done many changes to that lib to improve memory handling. Unfortunately he used memory pooling, an efficient way to handle allocated memory blocks. That functionality was provided first with Kick2.0... |
02 July 2020, 15:47 | #38 |
Registered User
Join Date: Nov 2019
Location: Celle / Germany
Posts: 147
|
What annoys me is the fact, that it is completely unnecessary in this context:
it is this call chain that happens: printlib -> string2lib -> memlib -> *crash* * string2lib needs memlib and there fore the initcode of memlib is executed->crash * printlib uses a single function in string2lib to check if fpu-optimization is enabled maybe i could move the fpu-checks into another lib that does not use memlib. That would solve the current problem... |
03 July 2020, 13:42 | #39 | |
Registered User
Join Date: Nov 2019
Location: Celle / Germany
Posts: 147
|
Quote:
At the moment, that is correct. The memlib that handles many memory allocations of different libs uses pooling technology that has been introduced into amigaOS 2.0. |
|
03 July 2020, 13:45 | #40 |
Registered User
Join Date: Nov 2019
Location: Celle / Germany
Posts: 147
|
I patched the memlib to use simple AllocMem/FreeMem-routines.
That should work on kick1.x-machines again. But it is not a solution as the more modern memory pooling should be used when the os makes it available. Maybe I could add an os-checking and let the lib use both technologies. Please try the patched AcidLibs first, and tell my if your common sources still work on kick1/kick2/kick3. |
Currently Active Users Viewing This Thread: 2 (0 members and 2 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Port Wolfenstein on Amiga 500 / 1000 OCS | Miggy4eva | Retrogaming General Discussion | 191 | 03 April 2019 18:51 |
Blanck buffer with VASM and dcb or blk on amiga 500 OCS | prb28 | Coders. Asm / Hardware | 19 | 04 January 2019 18:48 |
Amiga 500 Rev.6A VS Amiga 500 Plus with 2MB chip and ACA 500 | turrican9 | support.Hardware | 0 | 24 December 2016 02:16 |
Amiga 500. OCS or ECS? | trydowave | support.Hardware | 10 | 25 May 2013 21:58 |
|
|