English Amiga Board


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

 
 
Thread Tools
Old 04 April 2011, 11:04   #121
Lord Riton
Registered User
 
Lord Riton's Avatar
 
Join Date: Jan 2011
Location: France
Age: 52
Posts: 507
Quote:
Originally Posted by meynaf View Post
"l'un n'empĂȘche pas l'autre" (one doesn't prevent the other)

I mean, you could have a single game with both kind of views, and a switch between them.
Guess i could very fast transform qon to a DM style square by square deplacement game, yes, but the graphics would not look that great, them beeing calculated in Real time. I think a real ham8 DM game can really look awesome if using well worked bitmap graphics.


Quote:
Originally Posted by meynaf View Post
You already did a great job for a non-graphician guy
Thank you, but in fact i think i didn't draw a single object myself, i just used my scanner, or pictures from the internet, or some pictures i took myself with a digital camera


Quote:
Originally Posted by meynaf View Post
I can't help without having 24-bit original images. Or were they made directly in HAM8 ?
Most of them came from some french mode catalog, i just scanned them on my PC, reworked them a little to hide things i didn't want, and added a background. I think to move them from my PC to my Amiga i changed them in 256 color IFF ILBM pictures (the photoshop program i had on my PC allowed this). But i lost the 256 color pictures on my Amiga, and my old PC i had that time is dead since a longer while also.


Quote:
Originally Posted by meynaf View Post
Yes I know. I *must* find this room
I bet you would be the first, beside me
Lord Riton is offline  
Old 04 April 2011, 22:20   #122
Lord Riton
Registered User
 
Lord Riton's Avatar
 
Join Date: Jan 2011
Location: France
Age: 52
Posts: 507
I rewrote my c2p code.

surprisingly bad news, it's even slower than my old , but i'm pretty sure it should be faster..

Maybe it's a WinUAE only effect ? I'm to tired now, but tommorrow i'll put QON for download with my new c2p routine. Maybe someone with a real Amiga could tell me then how fast it works (?)

I suspect WinUAE executing movem.l faster than it actualy should compared to a real Amiga , that's why my old c2p could be faster..

Or maybe i just need to do it all in Fast ram, and then copy to chip ram with movems , like with my old c2p (?)..


Ah well, guess i'll just drink to forget .. or i'm going to play some mass effect rather, think that's even better... much better !


Edit: if you want to help me test this you can do this there: http://eab.abime.net/showthread.php?t=58617

Last edited by Lord Riton; 05 April 2011 at 16:08.
Lord Riton is offline  
Old 07 April 2011, 09:12   #123
meynaf
son of 68k
 
meynaf's Avatar
 
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,323
Quote:
Originally Posted by Lord Riton View Post
Guess i could very fast transform qon to a DM style square by square deplacement game, yes, but the graphics would not look that great, them beeing calculated in Real time. I think a real ham8 DM game can really look awesome if using well worked bitmap graphics.
Right, a HAM8 DM game would look awesome, for sure !

Quote:
Originally Posted by Lord Riton View Post
Thank you, but in fact i think i didn't draw a single object myself, i just used my scanner, or pictures from the internet, or some pictures i took myself with a digital camera
Anyway you did better job than whatever i could have made

Quote:
Originally Posted by Lord Riton View Post
Most of them came from some french mode catalog, i just scanned them on my PC, reworked them a little to hide things i didn't want, and added a background. I think to move them from my PC to my Amiga i changed them in 256 color IFF ILBM pictures (the photoshop program i had on my PC allowed this). But i lost the 256 color pictures on my Amiga, and my old PC i had that time is dead since a longer while also.
Too bad. I have a relatively good HAM8 renderer, which i may have wanted to try.

Quote:
Originally Posted by Lord Riton View Post
I bet you would be the first, beside me
New grab in the zone. This time it should be the right place ; there are a lot of moving NPCs in a place using Captive gfx

Btw. I've had a quick look at the code. Apparently you like macros a lot
But this makes the code quite unreadable - and very long.

Btw2. WinUae isn't at all a good way to see if code is faster than previous version or not

Now a few things to signal...

Typo : 3rd month of the year in english is "March", not "Marsh".

As long as you have an Intuition screen, mouse handling would be much better with Intuition messages rather than direct peeking bfe001/dff016. This way, people returning to WB by switching screen will not inadvertently click on your buttons - or restart the whole game.

I've seen a few bmi+beq branching on same label. As you have a 68k, not a 6502, you can remplace them by "ble" instruction (or "bls" if your cmp is unsigned).

Your program makes Enforcer hits upon startup, and when clicking "continue with that level" in the editor. But with Enforcer turned on, the editor won't crash and i can use it.

Here are the reports :
Code:
Enforcer Hit!  Bad Program!

04-Avr-11    20:56:03
WORD-READ from 00000000                        PC: 6806DD52
USP:  680AA2EC SR: 0000 SW: 0769  (U0)(-)(-)  TCB: 68065BC0
Data: 00000000 0000001E 0000000B 0000001E 00000004 6806922C 04A700B5 000AD511
Addr: 6806922C 68004928 00000000 00000000 68153138 68155D38 68066FE8 --------
Stck: 00000000 0000001E 0000000B 0000001E 00000004 6806922C 04A700B5 000AD511
Stck: 68069208 6806C238 680691C0 68004928 68153138 68155D38 68066FE8 6806FE8E
PC-8: 002E4CDF 03034E75 48E7FFFE 20796807 17962279 6807179A 2469002C 26690030
PC *: 36130829 00050017 6600001C 23C86807 17964EB9 6806DDBC 20396807 1796C0E9
Name: "Background CLI"  CLI: "QON.exe"  Hunk 0000 Offset 000069E2
Code:
Enforcer Hit!  Bad Program!

04-Avr-11    21:01:09
WORD-READ from 09CDF893                        PC: 680E2B2A
USP:  6808AAF0 SR: 0011 SW: 0769  (U0)(-)(-)  TCB: 680887D0
Data: 681AC888 00000126 00000065 00000002 09CDF891 0000005C 0000024D 00000005
Addr: 681AC8D0 680F3C99 09CDF891 00000002 680A8FF0 00000230 68066FE8 --------
Stck: 00000009 00000004 00000001 00000119 00000058 0000023C 00000071 000AD511
Stck: 681BA098 68183B48 68090048 680B3378 680A8FF0 00000230 68066FE8 680CC4EE
PC-8: 00084EF9 680E2B32 38280006 04440001 E54C2479 680EB9A0 28324000 D88A2444
PC *: 382A0002 48C4E58C C8FC0003 88FC0004 48C4EEAC E28C2C01 2A029284 9484DC84
Name: "Background CLI"  CLI: "QON.exe"  Hunk 0000 Offset 0002D522
*


Further inquiry located the offending instructions at :
- _string_taille in source "supermac" - Value "CharKern" (A3) is 0. So we read a word from location 0. Oops.
- in main source, label prendre_x_texture, move.w 2(a2),d4 reads from bogus address
meynaf is offline  
Old 07 April 2011, 10:46   #124
johnz
Registered User
 
Join Date: Feb 2011
Location: FR
Posts: 34
the new version runs well on my amiga 1240 in middle size. i've found the room with npc :-).
great graphics it reminds me the texture quality of alien vs predator on atari jaguar
johnz is offline  
Old 07 April 2011, 12:11   #125
Lord Riton
Registered User
 
Lord Riton's Avatar
 
Join Date: Jan 2011
Location: France
Age: 52
Posts: 507
Quote:
Originally Posted by meynaf View Post
New grab in the zone. This time it should be the right place ; there are a lot of moving NPCs in a place using Captive gfx
This time you found the room ! congratulation hehe, guess i'll have to finish your DM infernal level now


Quote:
Originally Posted by meynaf View Post
Btw. I've had a quick look at the code. Apparently you like macros a lot
But this makes the code quite unreadable - and very long.
Yes i like macros hehe, makes look the source files like if they were written in basic at some places I think my "supermac" could help retisent people that know basic or such programming languages, to go to assembler in a "smoother" transition , look at this exemple:

Code:
    CLS    rp1
    SETFONT    rp1,topaz8
    COLOR    rp1,#41,#0
    PRINT    rp1,#txt_print_game_title,#10,#51
    SETFONT    rp1,ruby15
    COLOR    rp1,#30,#0
    PRINT    rp1,#txt_print_menu,#11,#14

    RESET_BOUTONS
    BOUTON    #bt_dlg_001        ;  OK 
    BOUTON    #bt_dlg_002        ; ANNULER

dlg_002
    MOUSEWAIT
Quote:
Originally Posted by meynaf View Post
Btw2. WinUae isn't at all a good way to see if code is faster than previous version or not
Yes i realized this, now


Quote:
Originally Posted by meynaf View Post
Typo : 3rd month of the year in english is "March", not "Marsh".
Ha ! thank you, i was never good at spelling, neither in english, nor in french or german


Quote:
Originally Posted by meynaf View Post
As long as you have an Intuition screen, mouse handling would be much better with Intuition messages rather than direct peeking bfe001/dff016. This way, people returning to WB by switching screen will not inadvertently click on your buttons - or restart the whole game.
You are right, in fact i do it partialy the "good" way, the main qon keyhandler routine does it good, the MOUSEWAITs that are in the programm are still from early method, and i know i should replace them, but it's much easier for me to still use these instead


Quote:
Originally Posted by meynaf View Post
I've seen a few bmi+beq branching on same label. As you have a 68k, not a 6502, you can remplace them by "ble" instruction (or "bls" if your cmp is unsigned).
That made me smile that you are talking of the 6502 , i came from the C64 and programmed a lot on it in assembler (the 6510 of the c64 is about the same as a 6502 if i remember).
Guess this is just another proof that my assembler skills are not that great


Quote:
Originally Posted by meynaf View Post
Your program makes Enforcer hits upon startup, and when clicking "continue with that level" in the editor. But with Enforcer turned on, the editor won't crash and i can use it.

Further inquiry located the offending instructions at :
- _string_taille in source "supermac" - Value "CharKern" (A3) is 0. So we read a word from location 0. Oops.
- in main source, label prendre_x_texture, move.w 2(a2),d4 reads from bogus address
Strange, i don't exactly know what enforcer hit is, guess will have to google for it later.

The code at "prendre_x_texture" is indeed a bit "strange", but it should not point to a false adress.
here is the code that i found strange:

Code:
    move.l    (a2,d4.w),d4    ; offset de la structure du mur dans murs
    add.l    a2,d4
    move.l    d4,a2
    move.w    2(a2),d4
i now changed it into:

Code:
    move.l    (a2,d4.w),d4    ; offset de la structure du mur dans murs
    add.l    d4,a2
    move.w    2(a2),d4
but it should still work exactly the same, strange..


Thanks for your long "report"

Quote:
Originally Posted by johnz View Post
the new version runs well on my amiga 1240 in middle size. i've found the room with npc :-).
great graphics it reminds me the texture quality of alien vs predator on atari jaguar
Nice ! Thank you

Last edited by TCD; 07 April 2011 at 12:12. Reason: Back to back posts merged. Use multi-quote.
Lord Riton is offline  
Old 07 April 2011, 18:43   #126
Thorham
Computer Nerd
 
Thorham's Avatar
 
Join Date: Sep 2007
Location: Rotterdam/Netherlands
Age: 47
Posts: 3,751
Quote:
Originally Posted by Lord Riton View Post
Strange, i don't exactly know what enforcer hit is, guess will have to google for it later.
Enforcer is a program that uses the MMU (in fact, it needs a MMU) to protect non-allocated parts of the memory, and detects if a program accidentally reads or writes to those memory areas (maybe it does more then just that, I'm unsure). This can be useful to detect certain bugs.

Now a small tip: You can use local labels in your source:
Code:
testlabel
	nop
	nop
.locallabel
	nop
	nop
.anotherlocallabel
	nop
	nop
.exit
	rts

anothertestlabel
	nop
	nop
.locallabel
	nop
	nop
.anotherlocallabel
	nop
	nop
.exit
	rts
They behave mostly like normal labels, but are associated with the first normal label that comes before them, which is why you can use multiple local labels with the same name.

I used to do it they way you did in your source code, until I discovered them only a few years ago (thanks to meynaf).
Thorham is offline  
Old 07 April 2011, 20:25   #127
Lord Riton
Registered User
 
Lord Riton's Avatar
 
Join Date: Jan 2011
Location: France
Age: 52
Posts: 507
Quote:
Originally Posted by Thorham View Post
Enforcer is a program that uses the MMU (in fact, it needs a MMU) to protect non-allocated parts of the memory, and detects if a program accidentally reads or writes to those memory areas (maybe it does more then just that, I'm unsure). This can be useful to detect certain bugs.
Ok i see now what this is, it's like the memory managment in windows or the like.


Quote:
Originally Posted by Thorham View Post
Now a small tip: You can use local labels in your source:
Code:
testlabel
    nop
    nop
.locallabel
    nop
    nop
.anotherlocallabel
    nop
    nop
.exit
    rts

anothertestlabel
    nop
    nop
.locallabel
    nop
    nop
.anotherlocallabel
    nop
    nop
.exit
    rts
They behave mostly like normal labels, but are associated with the first normal label that comes before them, which is why you can use multiple local labels with the same name.

I used to do it they way you did in your source code, until I discovered them only a few years ago (thanks to meynaf).
Ha ! thanks for the info, this is indeed good to know
I already was asking myself why people offten use points befor the name on their variables, and i didn't like how it looked
Lord Riton is offline  
Old 11 April 2011, 09:18   #128
meynaf
son of 68k
 
meynaf's Avatar
 
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,323
Quote:
Originally Posted by Lord Riton View Post
This time you found the room ! congratulation hehe, guess i'll have to finish your DM infernal level now
Yes, you have. Yet i won't mind if you don't success ; reaching that room requires solving a lot of crazy puzzles

Quote:
Originally Posted by Lord Riton View Post
Yes i like macros hehe, makes look the source files like if they were written in basic at some places I think my "supermac" could help retisent people that know basic or such programming languages, to go to assembler in a "smoother" transition , look at this exemple:

Code:
    CLS    rp1
    SETFONT    rp1,topaz8
    COLOR    rp1,#41,#0
    PRINT    rp1,#txt_print_game_title,#10,#51
    SETFONT    rp1,ruby15
    COLOR    rp1,#30,#0
    PRINT    rp1,#txt_print_menu,#11,#14

    RESET_BOUTONS
    BOUTON    #bt_dlg_001        ;  OK 
    BOUTON    #bt_dlg_002        ; ANNULER

dlg_002
    MOUSEWAIT
This is good to do, but perhaps the macro system could just implement a call to a subroutine. This would make the code much smaller

Your "supermac" reminds me a lof of my own system framework, though it's done in a very different way.

Quote:
Originally Posted by Lord Riton View Post
That made me smile that you are talking of the 6502 , i came from the C64 and programmed a lot on it in assembler (the 6510 of the c64 is about the same as a 6502 if i remember).
I started on 6502 and apparently people coming from here don't always see all the power of 68k

Quote:
Originally Posted by Lord Riton View Post
Strange, i don't exactly know what enforcer hit is, guess will have to google for it later.

The code at "prendre_x_texture" is indeed a bit "strange", but it should not point to a false adress.
here is the code that i found strange:

Code:
    move.l    (a2,d4.w),d4    ; offset de la structure du mur dans murs
    add.l    a2,d4
    move.l    d4,a2
    move.w    2(a2),d4
i now changed it into:

Code:
    move.l    (a2,d4.w),d4    ; offset de la structure du mur dans murs
    add.l    d4,a2
    move.w    2(a2),d4
but it should still work exactly the same, strange..
It should not point to a false address, but it actually does, sometimes. This may well be the cause of the few crashes that have been reported.
Perhaps D4 is simply too large and goes after the table, or the table isn't initialised at that point.

If you can not use Enforcer or a similar tool (which is most probably the case on any emulator), then you can add some address comparison at these places to check if the address is valid or not, or some range-checking to D4.

Then, seeing a bad address coming, you can debug it.
meynaf is offline  
Old 11 April 2011, 10:19   #129
Lord Riton
Registered User
 
Lord Riton's Avatar
 
Join Date: Jan 2011
Location: France
Age: 52
Posts: 507
Quote:
Originally Posted by meynaf View Post
If you can not use Enforcer or a similar tool (which is most probably the case on any emulator), then you can add some address comparison at these places to check if the address is valid or not, or some range-checking to D4.

Then, seeing a bad address coming, you can debug it.
I think the problem is simply that i use d4.w and the table is higher than 32767, that gives a negativ number and it reads a value befor the table.
This value it reads is then taken to set a textures length, and probably the value it reads is much to high so when i draw that wall's texture it crashes the program.
Lord Riton is offline  
Old 24 April 2011, 14:18   #130
Lord Riton
Registered User
 
Lord Riton's Avatar
 
Join Date: Jan 2011
Location: France
Age: 52
Posts: 507
I fixed a bug that did freeze the game in the underground levels when the framerate was to fast. It happened to me when using "JIT" option on WinUAE, or also when using the small view without JIT. It was a problem related to the NPC pathways. It did not happen in the town level because i had no NPCs with pathways there.

I also added a QONreadme.txt file with a little bit of control instructions.

I finnaly added a new little dungeon, entrance is right in front of the player when starting the game in the "game" mode.

Not really worth the download if you didn't have the problem with the bug.
Lord Riton is offline  
Old 25 April 2011, 09:21   #131
meynaf
son of 68k
 
meynaf's Avatar
 
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,323
Quote:
Originally Posted by Lord Riton View Post
Not really worth the download if you didn't have the problem with the bug.
I haven't had this one, only the problems with the editor mode and the hit at startup.

However, if things have changed in this area, i'll happily perform another test.
meynaf is offline  
Old 25 April 2011, 13:54   #132
Lord Riton
Registered User
 
Lord Riton's Avatar
 
Join Date: Jan 2011
Location: France
Age: 52
Posts: 507
Quote:
Originally Posted by meynaf View Post
I haven't had this one, only the problems with the editor mode and the hit at startup.

However, if things have changed in this area, i'll happily perform another test.
I think i fixed that bug as well, but i can't really say, i never got it myself, you tell me please
Lord Riton is offline  
Old 28 April 2011, 08:21   #133
meynaf
son of 68k
 
meynaf's Avatar
 
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,323
Quote:
Originally Posted by Lord Riton View Post
I think i fixed that bug as well, but i can't really say, i never got it myself, you tell me please
Ok. I've downloaded it again, and will do the test in the coming days.
meynaf is offline  
Old 29 April 2011, 02:32   #134
andreas
Zone Friend
 
Join Date: Jun 2001
Location: Germany
Age: 50
Posts: 5,857
Send a message via ICQ to andreas Send a message via AIM to andreas
Post Enforcer

Quote:
Originally Posted by Lord Riton View Post
Ok i see now what this is, it's like the memory managment in windows or the like.
It's not Windows' memory management itself actually. Well I guess in Windows you can regard it as a (humble) equivalent of the ASSERT functionality in MSVC++. assert() is a great helper in Win32 programming---and sometimes a life saver---e. g. it can be used to detect strings you built, which due to an error (that you made) wreak havoc in the memory. Or discover mischief done by pointers that point to some area where they ought NOT point to at all...

Last edited by andreas; 29 April 2011 at 02:39.
andreas is offline  
Old 02 May 2011, 08:43   #135
meynaf
son of 68k
 
meynaf's Avatar
 
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,323
Quote:
Originally Posted by andreas View Post
It's not Windows' memory management itself actually. Well I guess in Windows you can regard it as a (humble) equivalent of the ASSERT functionality in MSVC++. assert() is a great helper in Win32 programming---and sometimes a life saver---e. g. it can be used to detect strings you built, which due to an error (that you made) wreak havoc in the memory. Or discover mischief done by pointers that point to some area where they ought NOT point to at all...
I wouldn't say it like that. ASSERT is for checking a condition - and it's sometimes a life saver, right.

But it has little to do with Enforcer, which just traps accesses to where you shouldn't fetch data at all, such as lower addresses (f.e. address zero).

Anyway i have made the tests.

There are heaps of enforcer hits (word-read from 0 at code offset $6b9c), even when starting in game mode. Just press right mouse button during the game, then left button to show the game menu, and you'll get more hits.
Apparently one error has been fixed, but the other has become worse. Something to do with startup/cleanup code, perhaps.

It is really too bad you no longer have a real Amiga setup
meynaf is offline  
Old 02 May 2011, 19:13   #136
Narf the Mouse
Registered User
 
Join Date: Jan 2007
Location: Vancouver Area, Canada
Posts: 136
What settings should I use to run this in WinUAE? I only had an Amiga 500, none of the others and I'm somewhat confused by the processor/system setting options of WinUAE.
Narf the Mouse is offline  
Old 02 May 2011, 23:27   #137
Lord Riton
Registered User
 
Lord Riton's Avatar
 
Join Date: Jan 2011
Location: France
Age: 52
Posts: 507
The main options:


CPU:

- 68030 processor
- JIT option checked.


RAM:

2 MB CHIP + 8MB FAST

ROM:

Kickstart 3.1


CPU speed:

Fastest possible

Display:

fullscreen
"doubblescan", or if you like it like on an older TV screen, "Scanelines".


If you use all these options you should get 50 FPS even in fullscreen mode and using the largest view on even a basic PC (with at least a 2GHz processor). If you don't get that speed you probably did something wrong.
Lord Riton is offline  
Old 03 May 2011, 01:18   #138
Narf the Mouse
Registered User
 
Join Date: Jan 2007
Location: Vancouver Area, Canada
Posts: 136
Quote:
Originally Posted by Lord Riton View Post
The main options:


CPU:

- 68030 processor
- JIT option checked.


RAM:

2 MB CHIP + 8MB FAST

ROM:

Kickstart 3.1


CPU speed:

Fastest possible

Display:

fullscreen
"doubblescan", or if you like it like on an older TV screen, "Scanelines".


If you use all these options you should get 50 FPS even in fullscreen mode and using the largest view on even a basic PC (with at least a 2GHz processor). If you don't get that speed you probably did something wrong.
Thanks.
Narf the Mouse is offline  
Old 03 February 2012, 13:55   #139
Lord Riton
Registered User
 
Lord Riton's Avatar
 
Join Date: Jan 2011
Location: France
Age: 52
Posts: 507
Someone said my portraits do not fit with the game.

What about these ?
Click image for larger version

Name:	010.png
Views:	404
Size:	131.7 KB
ID:	30495

Unfortunatly i am not a graphician, and i didn't hire one either. These pictures come all from various internet sites. It's also why i didn't update the QON files with them.
Lord Riton is offline  
Old 03 February 2012, 18:21   #140
nikvest
Vertigo User
 
Join Date: Oct 2005
Location: Belgrade/Serbia
Age: 46
Posts: 314
I think they look spot on.

Edit: BTW, don't give up on QON. Please...
nikvest 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
Retro Game Night: Short Quests for CD32 Games illy5603 Retrogaming General Discussion 9 29 July 2013 21:02

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 12:04.

Top

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