I made the mistake of doing just one more thing ..... getting the ship explosion right. After that will publish for you to try out.
😊😊
I made the mistake of doing just one more thing ..... getting the ship explosion right. After that will publish for you to try out.
😊😊
The movement speeds are parameter controlled so I adjust - right now I have increased the speed of the bullets and minimum speed of the asteroids (since posting the video) but I can make the asteroids move even faster also. Just trying to implement the ship exploding right now and then can work on increased speeds
One side effect I forgot is that you can shoot yourself by accelerating and firing in the same direction
Well I wondered what vector games could be played on the HSG 512x512. I found a disassembly of the Atari Asteroids Arcade games and thought - have a go as it is only 6502 code. Having figured out the Vector Graphics drawing routines and also memory usage I created a version that works on the 8032 with HSG 512x512 resolution. (this video was taken on my 8296 - business keyboard).
See attached video - hard to play it with one hand
A little optimising still required on speeds but very close
Made another board up and installed internally in the FAT 40 as it already has sound
That’s awesome … I have to make changes to 4 modules so the button registers are essentially reporting no press …. The source code is therefore specifically for the petSD+ with no screen and buttons. I disabled the menu system and also writing to the screen.
Unfortunately just setting the configuration to “n” for screen and hw_buttons isn’t enough. The later actually caused compile issues.
Public holiday here today
Alex, I have just modified the 20171005 version that was the last know stable version that didn't have issues with the ATMEGA
Try this
Tested loading and saving and seems OK on my cbmSDmini
Ummm. I could look at the source code from the stable 2017 build and by-pass the buttons. I have built up a number of petSD+’s and found 40% failure rate for the ATMEGA chip …. In terms of booting correctly without intervention. Most of Those that “failed” I got booting fine if I used a build with the diagnostics channel enabled …. Which to me points to on the edge timing issues also perhaps. The challenge with that is the busy light is always on as the diag channel uses that circuit.
Excellent … I found for some reason it wouldn’t recognise the cbmSDmini like you and wondered if I programmed it directly - been a year so spent quite a bit of time trying to figure that out. Must be something to do with the bootloader.
In the end redoing the code as if a petSD+ worked from the SD card. Anyway glad it worked … works my side also
Umm… may look at the bootloader and see if there is an ID locked in making it a petSD+
OK try this - compiled as petsd+ and I tried it out on the CBMsdmini - worked.
You may need to figure out the device number if not 8 .. sometimes 11 or some other number which can then be changed
If this works then can label it properly
Done … just got to test then post
Could you recompile it with a petSD+ id?
I tried, even completely erasing the atmel (along with the locked eeprom), still the bootlader refuses to program this version.
Yes no problem
If it will not update then you can programme it directly over the avr programmer …
If not can recompile with a different device …. You do not need the resistors to simulate button voltage etc in the code I created. I bypassed all of that checking for that configuration.
Tested my own version.. it does run, but it still requires the voltage divider, or it wont boot.
Have you tested my version?
Attached is a zip file containing the PAL games. Basic 2 (1), Basic 2 HR-40, Basic 4, Basic 4HR-40b. The keyboard remapping for 80 column is not done yet.
Attached is a folder containing HAL programs that will run on the 3032 (basic 2) with an installed SuperSoft HR-40 ... had to patch the code so it would invert the bits for the HR board. Will sort the basic 4 version for the crtc PETs (with and without HR-40b) later.
On my 3032 system the character rom cable is plugged into the HR-40 board and the actual HR character rom is installed on the HAL PCG 6500 board
Done some basic testing only.
can you post it? on my petsd i dont need buttons, too.
Try this but it is looking for a CBMsdmini. If this doesn't work will have to dig deeper as created this over a year ago
Wäre ja cool wenn jemand mit Code-Erfahrung mal einfach das ganze Button-Geraffel rauswirft.
Laufwerks-ID stand auf 113!!!
Das isses ja. Zwischen validem ID-Eintrag und einem invaliden liegen .1V
Da ist so viel auf ein paar milliVolt gepfercht - obwohl alles sauber via Laufwerksbefehl einstellbar ist.
I did a version that ignores the buttons for Steve Gray's cbm mini SD board.... there is a configuration for that in the compiler code and I just modified and changed around it
If you put a big red Status-Light in The front of them case you could create a funny HAL-9000 version
Well I have just put in a speaker … quite loud but 😊
The case is nice ... well done !!!!
JLCPCB sanded it but I will confess to painting it the same color as the PET😬 but the original color of white wasn't that bad also. Glued in threaded inserts.
Mine built and working . Will try on a 4032 shortly.
.
Ok, now lets program something like DOOM!
I think something like a port of Elite would also be great!
OK - doing more with this card did spark some curiosity (not necessary Elite or Doom ) ..
I have explored what's available on the NET and one thing I have discovered is that to do anything fast with 3D wireframes on the HSG board you need matrix rotation routines & transformations in 6502 code. I have found information pertaining to the BBC micro but nothing for the PET. Doing them in basic is easy but very slow.
It will be a very time consuming job translating what is highly optimised code for the BBC micro to the PET - doable but very time-consuming.
Long shot but has anyone got any 6502 PET routines that perform matrix operations ?
(found something for the C64 but that was using multiplication formulae and is slow)
If I pre-process the coordinates to generate delta's and vector directions and save into memory and then just cycle through the numbers you get a slightly smoother/faster rotation but it is not massively different. The original one processed the delta's and vector directions on the fly.
Pretty boring really but the HSG board can handle rotating cubes, for example, OK provided the calculation steps do not consume too much CPU time.
I created some code in assembler that takes a pair of points (move to .. lineto), calculates the direction parameter to send to the Command register (the EF926x has a bit format depending on direction and angle), the delta X,Y values to use, and then write them to the EF936x GPU via the respective registers for fast vector based drawing. after each rotation I send a simple clear screen and write the next projection. No flickering so it runs fast. I can slow it down further with a delay routine but speeding it up can only come from pre-calculating all the parameters ahead of time and then just simply send them to the GPU in sequence. May try that.....
I calculated the coordinates in Excel and built a table in the code for almost fastest speed. It is doable to create code to generate the coordinates themselves for each rotation but that takes more time.
Fantastic .... glad it worked well ... image looks great.
I have modified the code to ignore blanks (0 byte) quicker but speed improvements only slight as it depends on the image
Meanwhile in the basement…
512x512 is a really nice one!
Really nice - you used the hsg image code ?
Need to make a correction .... the 512x512 HSG board uses MK4516 ram chips which do not need -5v
Found the problem …. A 4116 IC was not soldered in right and was half out from the board. Replaced it and now works…. Would you believe it but is was faulty from the start😂
Display MoreHmmm
Maybe you want to check U30 (LS157). Its the only IC that isn't used at all in 512*512 Mode as its sole job is to create the "MLS3 surrogate"
In 512 mode the 15th address bit of the memory location, generated by the EF Processor. In 512 Mode the processor doesn't outpout it. So i guess that's where the bank switching occurs?
Ok will check ... if some of the ram is faulty it would show in page 1 as well is my thought ... the pattern is all over the screen