Hannibal information 77 glöps
- general:
- level: user
- personal:
- first name: Soren
- last name: Hannibal
- demo Amiga OCS/ECS Extension by Pygmy Projects
- Great music, fast pace, solid timing and nice effects means this is still one of my favorites
- rulezadded on the 2016-01-03 17:10:56
- demo Atari STe We Were @ by Oxygene [web]
- Very impressive
- rulezadded on the 2015-12-24 06:34:57
- demotool Amiga AGA Amiga OCS/ECS WinUAE Demo Toolchain 5 by Lemon.
- I could repro the blank screen bug, but only if I
1. used the plain blueberry startup code (not my example demo, which was fixed), which doesn't enable screen DMA but assumes it is enabled
2. used only with kick 3.x, not with kick 1.x, because with kick 3.x it doesn't enable screen until something triggers a CLI window update, and
2. used the "-debug" flag (which disabled the compression and therefore didn't print anything on screen).
I don't think this is what you saw in your demo. Nevertheless, for next version, I will try to make it print something on screen at bootup, to not trigger this. - isokadded on the 2015-11-28 06:15:31
- demo Amiga OCS/ECS Wildcat by DMA [web]
- KK, I tried to debug a bit further (this is kinda fun!) and saw that yes, your code actually does write to the proper registers
However, at that point the copper DMA is still enabled, and the system copper is still set, so the next frame the system copper runs, and it overwrites those values. Even though your vblank interrupt sets a new copper list, the system copper has already been started.
I imagine it works with some kickstarts because they set them to the same values you need. You could fix it by for example either
1. instead of setting the registers with the CPU, you could put it in a "setup" copper list and load that into COP1LC. It would automatically be kicked the next frame you run. Optionally you could kick it right away
2. turn off copper DMA before you set the registers, set your real copper, and then reenable the dma or
3. just set them in the first "real" copper list you have. That's what I have traditionally done
Side note: I see that after setting the copper (in dff080), you do clr.w dff088. Probably fine for you, but there are 2 details to know when you do this:
1. writing to cop1jmp/cop2jmp from the CPU is dangerous if the blitter is running because it can mess up the blitter destination.
2. The copper automatically starts at the beginning of each frame, so if you just set the copper pointer during the previous frame you don't need this - isokadded on the 2015-11-26 07:52:17
- demo Amiga OCS/ECS Wildcat by DMA [web]
- Hey KK, I looked at this, and it seems that you are not setting DDFSTRT/DDTSTOP/DIWSTRT/DIWSTOP/BPLCON2/BPLCON3, and those are probably initialized differently in the various setups.
I found this by launching 2 instances of WinUAE - one working and one not working, and pressing shift+F12 to see in the debugger - you can see that those registers are different. The values you need for a 320x256 screen are
DIWSTRT($008e) = $2c81
DIWSTOP($0090) = $2cc1
DDFSTRT($0092) = $0038
DIWSTOP($0094) = $00d0
BPLCON2($0104) = 0
BPLCON3($0106) = $0C20
I'm not 100% sure the last two are needed, but these days I prefer to set all registers to cover myself. Try this and hopefully it helps (in the WInUAE debugger you could test it by directly writing to the registers with commands like this: W dff08e 2c81.w)
Other than that, really good job on the demo. I will check if my example demo has the proper setup, too. - rulezadded on the 2015-11-25 18:15:33
- demotool Amiga AGA Amiga OCS/ECS WinUAE Demo Toolchain 5 by Lemon.
- 7. I can't reproduce the problem, KK. I attempted these 2 things:
runa4000_60.exe exampledemo\out\exampledemo.exe (both AmigaForever or regular roms)
or
toolchain\startwinuae.exe a500 kick31 exampledemo\out\exampledemo.exe (the override only works if you DONT have amigaforever roms)
Both ran fine
Which exact roms are you seeing this on? There are multiple different Kickstart 3.1 out there (amigaforever lists different ones for a600 vs a1200 vs a4000 etc)
And what are your repro steps? - isokadded on the 2015-11-25 17:53:33
- demotool Amiga AGA Amiga OCS/ECS WinUAE Demo Toolchain 5 by Lemon.
- Couple more comments:
3. Which libraries are this? Where did you find them? What are they from? If they are legally redistributable, I'd probably want to include them
6. I actually already had one, I just forgot: Runa500_nofast is 512chip/0fast runa500 is for 512chip/512fast. - isokadded on the 2015-11-03 08:46:53
- demotool Amiga AGA Amiga OCS/ECS WinUAE Demo Toolchain 5 by Lemon.
- Thanks for the detailed suggestions, KK. I'll be happy to explain my design choices here.
1. yeah, that's definitely possible. One of my main design goals was to not require any installs/settings beyond just running the batch file, but I could change the sample bat files to check on this instead. Not sure I will get around to it
2. yeah, possible. I probably won't do this work myself either.
3. I don't know much about amiga c libraries. This sounds like a good fix. I just need to make sure that those binaries are freely sharable. Where did you find them?
4. copy2adf does all of this. It would be 3 commands or so, but it can create empty floppies and copy files to them, so you can make a simple bat-file for this yourself. BTW, the "runaXXX.bat" files internally detect if you add an adf or not, and if it is not an adf then it generates startup-sequence on the harddrive to launch it - so I use these to launch both adf and single-file demos.
5. I'm very familiar with makefiles, and it was a conscious choice for a couple of reasons:
5a. There are 2 types of programmers - the ones that are passionate about makefiles and the ones that don't care (or know) about how makefiles work - they just want to hack things together. The people that are passionate about makefiles can easily make their own makefiles, but the ones that just want to cobble things together, bat-files are simpler to read. And since I wanted to set this up to attract as many old-timers as possible - the ones that may never have bothered to learn makefiles, the choice was pretty clear for me.
5b. about asset conversion timestamping: sure, this would come automatically with makefiles, if there was a single output - however, my system spits out up to 4-5 files per asset being converted. So it's harder to have dependency checks like that. Also, it is a HUGE speedup on asset conversion to have a single executable launch that does a large batch of assets. So I wanted to do asset versioning check inside the executable instead, as part of the batch tool. I don't think I ever got it working, though - maybe later. Interestingly, the code reformatter actually does a version check - not using timestamps but by using a CRC. Also, I did the batch processing because it was fun to try to mess with threading :-)
6. Good point - To me, the gold standard is 1mb a500, but I can see the value in the 512k one. - isokadded on the 2015-10-26 17:18:20
- demotool Amiga AGA Amiga OCS/ECS WinUAE Demo Toolchain 5 by Lemon.
- @Heaven and @g0blinish: You are missing some executables? I don't know why that would be - vasmm68k_mot_win32.exe should be found in \toolchain\bin, and kingcon.exe should exist in of \toolchain. Is this not what you see when downloading the zip from scene.org?
If the example builds and runs then that should prove that the executables are there, right. - isokadded on the 2015-07-13 18:02:58
- demotool Amiga AGA Amiga OCS/ECS WinUAE Demo Toolchain 5 by Lemon.
- Spike, don't get your hopes up :-)
While I have plenty of ideas, I just don't have the time. And Paradroid set the bar pretty high with Redux, so I wouldn't feel happy releasing something half-assed :-) - isokadded on the 2015-05-20 08:57:40
account created on the 2006-01-30 23:42:28
