Ultimate Amiga
Network Boards => AMOS Factory => Extensions Forum => Topic started by: Hungry Horace on November 12, 2008, 09:28:22 PM
-
I remember trying this out some time back, and it looked a very good extension. I also noticed that Lonewolf10 has uploaded it to the submissions forum.
However, as i recall, the version i tried had an unregistered-splashscreen that made it rather miserable to use. Does anyone have a full version / key for this?
Perhaps it could be resourced and cracked instead? my ASM skills arent great, and using resource on the file seemed to produce more junk that I was expecting! Does anyone know how you would go about re-sourcing and / or cracking an extension like this?
-
I know the concepts behind it. CPU-blitting is faster than Amiga's chipset Bobs because the mask plane only has to be read once for every row of pixels. If AGA had supported chunky-pixel displays it wouldn't have had that problem. As it is, the Amiga chipset reads the mask plane once for every bitplane for every row of pixels. For a 6-bitplane screen it reads the mask plane 6 times!
-
Perhaps it could be resourced and cracked instead? my ASM skills arent great, and using resource on the file seemed to produce more junk that I was expecting! Does anyone know how you would go about re-sourcing and / or cracking an extension like this?
Yes, I had the same problem when I tried to uncompile a lib. The uncompilers seem to be unable to work out random data and real commands, not surprising since the values in certain sequences can be either! :(
I have also never really used Power Bobs, thanks to the splash screen.
Regards,
Lonewolf10
-
Here is a hacked version of the Powerbobs library (without the annoying message) :)
There is still a delay at the start so when you design your programs, ensure that you use AMOS TO BACK
then wait a second or so before using AMOS TO FRONT. It works fine when your programs are compiled also :)
In AMOS, put it in slot 13 in your config file (not sure about AMOS Pro)
Kev G
-
hi KevG,
once again, many thanks for that. unfortunately, it doesnt work at all with AMOS Pro
"cannot load extension - use default interpreter config" :(
what did you do to hack this? I would like to have a go at doing the same thing to the AMOS Pro version of it.
maybe Lonewolf10 can advise as to what the difference is in general between amos and amos pro extensions?
-
ok, i had a play around and produced a working AMOS Pro version. I'm not 100% sure on it yet though, as i really havent done much with it. File is attached.
KevG - was the only difference the nulling of the text?
I'd like to get ride of the delay somehow, and you can still see it opening the (horrible) default AMOS screen.
-
I had to raplace the chr(13) with chr(0) with a hex editor because
it asks you to press RETURN when the text appears. Yes, I nulled the text as well.
Like I said earlier, put a AMOS TO BACK instruction as your first line of code then wait a second.
Create your own screen, then use AMOS TO FRONT. You dont see the annoying default screen then.
-
Hi guys,
I think powerbobs is just what I need, but can you answer some questons for me?
1) do I just put this libs file in an(the) amos libs directory?
2) What are the comands and its syntax?
3) Would an amos program using this extension compile or not?
4) is this for AGA onlt, ECS only, or both?
sorry for the stupid questions, but I'm a total noob with amos extensons
thanks
-
1) in the case of Amos pro you would;
- put AMOSPro_Powerbobs.lib (from the zip) into your AP_SYSTEM/ folder
- open AMOS, and go to the drop down "config" - "set interpretter" .
- "load default configuration" and then "set Loaded extensions"
- in slot 13 type "AMOSPro_PowerBobs.lib"
- exit and "save configuration"
- close AMOS Pro and re-open it. Power Bobs will now work.
2) commands and syntax can be found in the attached (to this post) .txt file
many of them are direct replacements for the AMOS bob commands.
3) yes, all extensions work in the compiler, providing you are sharing the setup between amos & amos compiler (i use the compiler from within amos pro itself to avoid any problems there)
4) seems to be for ECS like the rest of AMOS, but would run ECS bobs on an AGA machine perfectly well.
hope that helps.
-
Thanks much forthe help. :) Any idea exactly how much faster this blits? Have any realy tests comparisons been done?
-
Based on the performance of CPUBlit, I'd say it'd probably be a waste of time on a flat 68000 but would be worthwhile on 68020 or better due to the wider bus width and the code cache. Feel free to prove me wrong. :)
On a 6-bitplane blit, you'd get a speed impovement of 5/12 or 41.67%. The time spent rereading the mask plane can be substantial on the Amiga graphics chipsets.
-
3) yes, all extensions work in the compiler, providing you are sharing the setup between amos & amos compiler (i use the compiler from within amos pro itself to avoid any problems there)
No, that isn't true.
If they have been programmed correctly they will. There are lots of extensions and various hacked versions, so I recommend doing test compilations of commands you intend to use (the program would only consist of commands you wish to use and nothing else). In the event it fails you won't have wasted hours/days/months using commands that work perfectly well in the editor and fail when compiled.
A simple example is you can have the Print At command use the Print command code. If done correctly all will compile fine (I believe it requires a special jump command that the compiler will recognise - it's been a year since I last worked on coding my extension), however if done incorrectly (a normal bsr or jsr ASM command) it will fail when compiled.
Regards,
Lonewolf10
-
HH....
I have just installed your hacked version of the AMOSPro Powerbobs library and I think there is something wrong with it. It seems a tad unstable to me. Mouse pointer dissapears, theres a long delay and the screen sometimes gets corrupted. I have tried fiddling around with it using zap file editor but I can't get it working properly either. The AMOS1.3 version that I did ages ago works just fine though and is reasonably stable.
I have spent most of today installing AMOSPro 2 & compiler and have compiled some of my old source code from AMOS1.3 and I have to say that I am not impressed at all with the speed. It's just so slow compared to AMOS1.3 because you can't disable multi-tasking.
So, all things considered, its back to AMOS1.3 for me. A pitty, because the AMOS pro editor is far superior to the AMOS1.3 editor.
-
Last week I took a quick look at this library also, but didn't get very far. I need more information on the exact format of Amos Pro extensions. Is this information documented anywhere here or elsewhere on the Internet?
-
i havent tested the AP version i admit.
I just copied what the hack appeared to be on the A1.3 version on to the AP edition.
-
Last week I took a quick look at this library also, but didn't get very far. I need more information on the exact format of Amos Pro extensions. Is this information documented anywhere here or elsewhere on the Internet?
I have put together a basic guide to the layout of AMOS Pro extensions. You can find it here:
Extensions layout (http://amos.condor.serverpro3.com/index.php/topic,277.0.html)
Regards,
Lonewolf10
-
... just added info for AMOS 1.3 (and earlier?) extensions to the same thread.
Regards,
Lonewolf10
-
HolyMonkey sent me a bounty proposal for removing the nag screen on PowerBobs.
This time i've tried to do it "properly" - the old hack just involved nulling out the text iirc and making the button it waited for equal zero. (crude, but it sort of worked)
This time i'm using ReSource and actually removing the registration check by modifying the 68k ASM.
I think this version works, but i actually think i can still improve it.
I've attached a zip containing both extensions modified, and an example demo using it which has been compiled. I *think* it might still be briefly opening a screen. I'd be grateful if anyone could confirm it at least works, even if that is the case.
thanks
-
Thx i will test it.
-
I just tested it and it seems to work perfectly. no pause, no screen with text, no wait for button press.
Great job Hungry Horace!
Lets please give this Nag-Free version a permanent place as a hosted file here at AmosFactory.
cheers.
Mike
-
Nice work Hungry Horace ;)
I shall download and add it to my pile of AMOS stuff ;D
I just tested it and it seems to work perfectly. no pause, no screen with text, no wait for button press.
Have you tried compiling something with Power Bob instructions in it?
-
would anyone mind trying this out....
it's a slightly 'cleaner' (in terms of redundant code being skipped) version of the hack.
Like before, i've tested the AmosPro version and it seems ok. What i'd like to know is if the AMOS1.3 version is ok as well really.
-
Did you dissemble the whole extension Hungry Horace? As noted above, the AmosPro "magic numbers" make it rather awkward. From the extension structure I inferred that the cold start routine starts at $6DC. Dissembling from here, I get the following code:
MOVEM.L A3-A6,-(SP)
LEA (lbL000298,PC),A3 * store address of datazone
MOVE.L A3,($1B8,A5)
LEA (lbL000024,PC),A0 * store address of default/run routine
MOVE.L A0,($1BC,A5)
LEA (lbL000024,PC),A0 * store address of cleanup routine (same as default/run)
MOVE.L A0,($1C0,A5)
MOVEM.L (SP)+,A3-A6
MOVEQ #12,D0 * Move extnb-1 to d0 - extension loaded OK.
RTS
lbL000024
LINK.W A3,#-$20
BSR.W lbC00012A * bsr to nag screen routine - replace this with $4E714E71 to skip
dl $FE31001D * AmosPro Rbsr
dl $FE31000A * AmosPro Rbsr
.
.
.
lbC00012A is the nag screen routine (easily identified by the text) so I found I could skip it simply by replacing the "BSR.W lbC00012A" with two NOPs. This can be done by loading the extension binary into a hex editor, going to location $704 and replacing $61000100 with $4E714E71.
-
Yes the whole thing was disassembled, but as you've seen,not much of it is relevant to the nag screen.
Not using NOPs though I inserted BRA instructions to "skip" the unwanted code when it checked for validity, in order to ensure I got rid of the screen open and additional delays etc.
It took longer on the 1.3 version, but I deduced the "shared" code it needed to miss.
Like yours, the patch was applied to the original file.
-
On closer inspection I was able to identify the specific code that opens the nag screen and prints the message. It's interesting that everything is done with internal amos.library calls. I wasn't aware that these were documented back in the day. The equ.s file on the AmosPro tutorial disk has the equates for these functions but doesn't explain the input parameters. The note at the top of the file just says "Be patient, we will soon (I hope) publish informations about the functions of the amos.library."
L0 MOVEM.L A3-A6,-(SP)
LEA (MB,PC),A3
MOVE.L A3,($1B8,A5) * store address of datazone
LEA (default,PC),A0
MOVE.L A0,($1BC,A5) * store address of default/run routine
LEA (default,PC),A0
MOVE.L A0,($1C0,A5) * store address of cleanup routine (same as default/run)
MOVEM.L (SP)+,A3-A6
MOVEQ #12,D0 * Move extnb-1 to d0 - extension loaded OK.
RTS
default LINK.W A3,#-$20
BSR.W nagscreen * bsr to nag screen routine - replace this with $4E714E71 to skip
dl $FE31001D * AmosPro Rbsr
dl $FE31000A * AmosPro Rbsr
.
.
.
nagscreen MOVEA.L ($1B8,A5),A2 *Dload flag from datazone
ADDQ.L #1,($5D4,A2)
BEQ.W lbC00091E *Skip nag screen if flag set
MOVE.L #6,-(A3)
MOVE.L #$140,-(A3)
MOVE.L #$C8,-(A3)
MOVE.L #4,-(A3)
MOVE.L #0,-(A3)
MOVE.L (A3)+,D5
ANDI.L #$8004,D5
MOVE.L (A3)+,D6
MOVEQ #1,D4
MOVEQ #2,D1
lbC00083E CMP.L D1,D6
BEQ.B lbC00084C
LSL.W #1,D1
ADDQ.W #1,D4
CMP.W #7,D4
BCS.B lbC00083E
lbC00084C MOVE.L (A3)+,D3
MOVE.L (A3)+,D2
MOVE.L (A3)+,D1
LEA ($95C,A5),A1
MOVEA.L (-8,A5),A0 * EcCall Cree (See wequ.s and equ.s)
JSR (12,A0) *
MOVE.L A0,($52C,A5)
MOVE.W ($BC,A0),($52A,A5)
ADDQ.W #1,($52A,A5)
MOVEA.L (-8,A5),A0 * EcCall CopForce
JSR ($20,A0) *
MOVEQ #5,D2
MOVEQ #0,D1
MOVEA.L (-12,A5),A0 * WiCall Locate
JSR ($10,A0) *
LEA (PowerBobsV10.MSG,PC),A1
MOVEA.L (-12,A5),A0 * WiCall Centre
JSR (8,A0) *
MOVEQ #7,D2
MOVEQ #0,D1
MOVEA.L (-12,A5),A0 * WiCall Locate
JSR ($10,A0) *
LEA (Unregisteredv.MSG,PC),A1
MOVEA.L (-12,A5),A0 * WiCall Centre
JSR (8,A0) *
MOVEQ #9,D2
MOVEQ #0,D1
MOVEA.L (-12,A5),A0 * WiCall Locate
JSR ($10,A0) *
LEA (PowerSoft.MSG,PC),A1
MOVEA.L (-12,A5),A0 * WiCall Centre
JSR (8,A0) *
MOVEQ #13,D2
MOVEQ #0,D1
MOVEA.L (-12,A5),A0 * WiCall Locate
JSR ($10,A0) *
LEA (PresstheEnter.MSG,PC),A1
MOVEA.L (-12,A5),A0 * WiCall Centre
JSR (8,A0) *
lbC0008D4 MOVEA.L (-4,A5),A0 * SyCall WaitVbl
JSR ($5C,A0) *
MOVEA.L (-4,A5),A0 * SyCall InKey
JSR (A0) *
CMP.W #13,D1 * Has chr$(13) been entered?
BNE.B lbC0008D4
MOVEQ #6,D1
MOVEA.L (-8,A5),A0 * EcCall Del
JSR ($10,A0) *
CLR.W ($52A,A5)
CLR.L ($52C,A5)
CMPA.L #0,A0
BEQ.B lbC00091E
MOVE.W ($BC,A0),D0
CMP.W #8,D0
BCC.B lbC00091E
ADDQ.W #1,D0
MOVE.W D0,($52A,A5)
MOVE.L A0,($52C,A5)
MOVEA.L (-8,A5),A0
JSR ($20,A0)
lbC00091E RTS
-
The equ.s file on the AmosPro tutorial disk has the equates for these functions but doesn't explain the input parameters. The note at the top of the file just says "Be patient, we will soon (I hope) publish informations about the functions of the amos.library."
Yeah, I spent some time a few years back trying each of those routines and how to get them to work.
I believe I sent a copy of what I worked out to HungryHorace a year or so back. I can publish what I worked out here if you like?
-
I believe I sent a copy of what I worked out to HungryHorace a year or so back. I can publish what I worked out here if you like?
It would be great if it could be hosted here. I'm sure it would help during the redevelopment work.
I was intrigued that extension writers were able to use these functions "back in the day". Did they reverse engineer the amos libraries or was there some other official extension documentation that I missed?
-
dont re-invent the wheel too much... Bruceuncle already resourced most extensions
http://www.ultimateamiga.co.uk/index.php/topic,9794.msg46877.html#msg46877
-
I was intrigued that extension writers were able to use these functions "back in the day". Did they reverse engineer the amos libraries or was there some other official extension documentation that I missed?
Francois documented the functions within a sourcefile located on one of the disks. All the info you need is in the attached file.
P.S. Apologies for the late reply.
-
anyone got any thoughts on why i cant get PBOBS to display my image number 101 from the bob bank?
is there a coded limit on what image numbers can be used??
-
anyone got any thoughts on why i cant get PBOBS to display my image number 101 from the bob bank?
is there a coded limit on what image numbers can be used??
Did you check your AMOS configuration to ensure that you can use more than 100 Bobs?
-
anyone got any thoughts on why i cant get PBOBS to display my image number 101 from the bob bank?
is there a coded limit on what image numbers can be used??
Did you check your AMOS configuration to ensure that you can use more than 100 Bobs?
Wouldn't that be for 100+ bobs displayed, and not a limit on what image number in the bank can be used?
I was trying (at the time) to convert some old (working) code to Pbobs for speed gain, and I tend to use lots of different numbers in my big banks (often with gaps) to make things easier (like all heroes on 100+, monsters from 200+, etc)
-
Did you check your AMOS configuration to ensure that you can use more than 100 Bobs?
Wouldn't that be for 100+ bobs displayed, and not a limit on what image number in the bank can be used?
Hmph, I was clutching at straws and was probably a bit sleepy when I wrote that ;D
My current project (almost finished) uses just under 500 bobs in the bob/sprite bank, with a handful of sprites at the end. I am however using the normal Bob command. I have 3 thought's:
1) Your 'Bob' is actually a sprite
2) Pbobs is bugged and won't go past 100
3) I *may* have a partial fix to a part of AMOS that you don't have - or don't have installed.
-
I suspect a pbobs bug tbh!
Usually the simplest answer is the true one!
At some point maybe I'll look at the pbob code again
-
Ok, I just did some testing on my project. I loaded it in saved it under a different name (added "-Pbob" to filename) then converted all Bob instructions to Pbob. Everything worked until it found the first Pbob instruction then it flagged an error.
Confused, I dug up the Pbob documentation. I found the following:
Pbob NR,X,Y,IMAGE
Does almost the same thing as the normal Bob command.
The only differences are :
1) the maximum width of the IMAGE is 32 pixels wide.
There are no restrictions on the height of the Pbob.
2) the height of the IMAGE that will be displayed may NOT exceed
the maximum height for this Pbob.
See the Pbob Height command.
3) the amount of colours of the IMAGE may NOT exceed the amount
of screen colours where the Pbob will be displayed.
Else a crash is certain!
So if you open a screen with 4 colours, do not try to display a Pbob
with 8 or more colours. But it is valid to, for example, to open a screen
with 32 colours and display Pbob's with fewer colours (bitplanes).
Only the bitplanes defining the Pbob will be copied on screen.
4) all parameters must be included.
5) the Pbob numbering starts at 1, not 0 like the AMOS/Pro Bobs...
6) it is important to know that the coordinates for the Pbob's are
measured from the top left-hand corner of the image.
The current hot spot setting in not taken into account!
7) the Pbob commands have to be executed in the screen where they are
to be displayed !
This is because a part of the Clipping routine is done inside the
Pbob command.
Ex.:
Repeat
Screen 1
Proc UPDATE_SCORE
Screen 0
Proc MOVE_BADDIES : Rem move the BAD_GUYS with Pbob NR,X,Y,IMAGE
Proc MOVE_GOODIE : Rem move the GOOD_GUYS with Pbob NR,X,Y,IMAGE
Proc UPDATE_BADDIES_AND_GOODIES : Rem Pbob Clear : Pbob Draw : Screen Swap : Wait Vbl
Until AMOUNT_OF_GOODIES=0
My bob images are 60x60. So that's why it won't work with my existing bobs.
-
As a workaround, stack images 2 across and try again. Let us know how that works.
-
Hmm. Could that have been my problem also?
What does it do when you try to use it? "Image not found"?
-
Hmm. Could that have been my problem also?
What does it do when you try to use it? "Image not found"?
I don't know what your problem is. The only error messages I got were "illegal function call" (which is part of AMOS's error messages, but can be used by 3rd-party extensions) or those below which are part of the Powerbobs extension:
Pbob height is not set !
Image height > Pbob height !
I did do some testing tonight (results attached). Although Powerbobs limits the user to 64 active bobs, it seems to successfully use image numbers above 100 - I tried 105.
In order to successfully display a Powerbob there are a few instructions that must be set (Reserve Pbobs, Pbob Height and Pbob) and then finally call Pbob Draw to draw a bob range (e.g. 1 to 1). Again, see attached file as an example, saved in ASCII format as I don't know which version of Powerbobs you have installed (I currently have one that was modded, and uploaded to here last year?)
NB: Attached archive is actually an .LHA archive, renamed to .ZIP so I could upload it
-
Hi,
Where is posible to download Powerbobs Manual or any TXT help file? Thank you!
-
1) in the case of Amos pro you would;
- put AMOSPro_Powerbobs.lib (from the zip) into your AP_SYSTEM/ folder
- open AMOS, and go to the drop down "config" - "set interpretter" .
- "load default configuration" and then "set Loaded extensions"
- in slot 13 type "AMOSPro_PowerBobs.lib"
- exit and "save configuration"
- close AMOS Pro and re-open it. Power Bobs will now work.
2) commands and syntax can be found in the attached (to this post) .txt file
many of them are direct replacements for the AMOS bob commands.
3) yes, all extensions work in the compiler, providing you are sharing the setup between amos & amos compiler (i use the compiler from within amos pro itself to avoid any problems there)
4) seems to be for ECS like the rest of AMOS, but would run ECS bobs on an AGA machine perfectly well.
hope that helps.
Thnak you but dont see the TXT attatched :-[ cheers!
-
http://de.aminet.net/aminet/dev/amos/PowerBobs.lha is the shareware release.
-
Hey guys im trying to get the hacked version of powerbobs for amos 1.3.
the file in the tiny portal is unhacked and I dont see any file attached to this thread at all.
can anyone help me?