Mike Harris
Members-
Content Count
532 -
Joined
-
Last visited
Content Type
Profiles
Member Map
Forums
Blogs
Gallery
Calendar
Store
Everything posted by Mike Harris
-
Finally have my 8 directions. MOVE_PLAYER: CALL POLLER LD A,(CONTROLLER_BUFFER+3) LD IY,(SPRTBL) LD IX,(SPRTBL+1) CP 01 CALL Z, NORTH CP 03 CALL Z, NORTH_EAST CP 02 CALL Z, EAST CP 06 CALL Z, SOUTH_EAST CP 04 CALL Z, SOUTH CP 12 CALL Z, SOUTH_WEST CP 08 CALL Z, WEST CP 09 CALL Z, NORTH_WEST RET If you have a better routine that saves cycles, space or whatever I am all ears.
-
Here is the routine in Z80 I created to give you the Joystick Values for your Coleco Games. Mind you this uses subroutines and definitions from the Electric Adventure Megablast Game. I did not post those routines because they don't belong to me. You can pick them up at http://www.electricadventures.net/ TEST_JOYSTICS: CALL POLLER LD A,(CONTROLLER_BUFFER+3) CP 00 CALL Z, PRINT_ZERO CP 01 CALL Z, PRINT_ONE CP 02 CALL Z, PRINT_TWO CP 03 CALL Z, PRINT_THREE CP 04 CALL Z, PRINT_FOUR CP 05 CALL Z, PRINT_FIVE CP 06 CALL Z, PRINT_SIX CP 07 CALL Z, PRINT_SEVEN CP 08 CALL Z, PRINT_EIGHT CP 09 CALL Z, PRINT_NINE JP TEST_JOYSTICS: PRINT_ZERO: LD HL,VRAM_NAME+460 LD DE, ZERO_PAT LD BC, 1 CALL LDIRVM RET PRINT_ONE: LD HL,VRAM_NAME+460 LD DE, ONE_PAT LD BC, 1 CALL LDIRVM RET PRINT_TWO: LD HL,VRAM_NAME+460 LD DE, TWO_PAT LD BC, 1 CALL LDIRVM RET PRINT_THREE: LD HL,VRAM_NAME+460 LD DE, THREE_PAT LD BC, 1 CALL LDIRVM RET PRINT_FOUR: LD HL,VRAM_NAME+460 LD DE, FOUR_PAT LD BC, 1 CALL LDIRVM RET PRINT_FIVE: LD HL,VRAM_NAME+460 LD DE, FIVE_PAT LD BC, 1 CALL LDIRVM RET PRINT_SIX: LD HL,VRAM_NAME+460 LD DE, SIX_PAT LD BC, 1 CALL LDIRVM RET PRINT_SEVEN: LD HL,VRAM_NAME+460 LD DE, SEVEN_PAT LD BC, 1 CALL LDIRVM RET PRINT_EIGHT: LD HL,VRAM_NAME+460 LD DE, EIGHT_PAT LD BC, 1 CALL LDIRVM RET PRINT_NINE: LD HL,VRAM_NAME+460 LD DE, NINE_PAT LD BC, 1 CALL LDIRVM RET ZERO_PAT: DB 010 ONE_PAT: DB 001 TWO_PAT: DB 002 THREE_PAT: DB 003 FOUR_PAT: DB 004 FIVE_PAT: DB 005 SIX_PAT: DB 006 SEVEN_PAT: DB 007 EIGHT_PAT: DB 008 NINE_PAT: DB 009 Pattern Numbers would correspond to your pattern number representing whatever you decide to represent the number. You could put Klingon Symbols if you wanted. This was just a quick routine to give numbers and may have errors but the numbers are sound. It was never meant to be optimized or professional. So for all those out there that can not find the info you need then here you are. You have 12 bytes in the buffer to check against so you can do all kinds of things with this routine to show the full spectrum of coleco controllers.
-
Cool. This is the first time ever seeing these values. Learning something new every day.
-
Do you have a quick and dirty example? So far I have been checking one bit at a time then jump to an action such as move in that direction.
-
Thank you, I have that straight. I am talking about the other 4 directions as in NW, SW, SE and NE
-
Any ideas? I know that the Coleco Poller returns 4 directions and from what I know about Coleco physical hardware is that the original J-Sticks have only up, down, left and right. The SAC controllers actually have physical contacts for the connects to inputs at one time yet it is still only up, down, left and right. As far as a routine all I can come up with is still check one bit at a time. 0 for north 1 for west, 2 for south and 4 for east. Any thoughts, recommendations, code???
-
It would be great if someone would write a decent GUI or how about the authors do it. After all this is the 21st century and DOS is dead. Bliss was on the right track and I have no idea where the guy went but I have the older version of 2600-daptor or some deal that uses 2600, Intellivision and Colecovision controllers but nothing maps the keys well outside of MESS/MAME It is time to break free of this old school programing and move into the modern era and I don't mean Java
-
ColEm Emulator for Windows, Android, and Linux
Mike Harris replied to GarageResearch's topic in ColecoVision / Adam
Until he gets around to adding this and that, which takes time, try using MESS/MAME which is complete with ADAM support. There are various other emulators out there like this one EmulTwo https://github.com/alekmaul/pvcollib/tree/master/emulators/emultwo It has a few sound issues but has F18A, Super Game, Mega Cart and Zx81 31 in 1 rom support. This one is my favorite and I use it for my development because it is drag and drop, scalable, no toying around. Debugger, Screenshot, definable keys for all controllers. I am in contact with the author and it is still being worked on and it is 100% FREE. It seems to have been programmed in a modern language, you need no libraries, no support files, an all in one executable. Exactly what you want in a program for the 21st century. As I mentioned, it has a few bugs but at the same time I've played a bunch of super games on it with zero issues other than sound. Then of course is the Blue MSX which has not been updated in years. -
ColEm Emulator for Windows, Android, and Linux
Mike Harris replied to GarageResearch's topic in ColecoVision / Adam
I would be happy if it just ran ADAM software but alas it's called COLEM and not ADAM emulator. Hard to do on phones -
What is really wrong about this picture is that I did not find it first.
-
Can someone say if this is a scam or worth it. https://www.ebay.com/itm/Colecovision-System-SUPER-ACTION-CONTROLLERS-NEW-FRESH-CASE-MINT-SEALED/233081087981?hash=item3644b727ed:g:U~4AAOSwpuFaE4Ji:rk:5:pf:0 This guy seems to "ACQUIRE" some never before used and mint Coleco Items which leave me to conclude that these are just some dude printing boxes and filling them with junk. Who in their right mind would buy a mint condition so and so just to open it up and check.
-
OK, taking tomorrow off to do some house work or my wife will beat my %%% but this time it will not be because I asked her too, Giggity. I have reached my goals to the point where I can take 5. I have successfully picked up objects from one room and placed them in another. They are in the same exact spot where I left them. For you budding programmers out there this is the table I created Room #, X, Y and Carried by? Player 1, NPC 2 or None 0 001, 150, 200, 0 002, 020, 040, 0 And so on. After you define objects in Ram with objects: DS 4 Then you need to initialize RAM with starting values such as Starting Room, Starting X,Y You can then load values on the fly as in LD A, Room # LD (objects), A LD A, X LD (objects+1), A LD A, Y LD (objects+2), A LD A, 0 LD (objects+3), A Once I put in NPC logic any one of the NPC's can grab the treasure by placing 2 in (objects+3) For this game I have enough RAM despite being 1k. If I plan to expand and need more I can change the data down to bits or share a byte or 2. Such as Room 40+127 would be Room 40 + Player Carry or 40+128 would be Room 40 + NPC Carry. You get the idea. Save space if you need to for larger games in order to use a stock Colecovision. There you go.... I learn something, you learn something.
-
Remember kids, there is a huge difference between XYZ and (XYZ) in Assembly and other programing languages. I sat for hours staring at my code until I took a break. That's the other tip... Walk away from your code for a couple of hours instead of getting frustrated. I had one issue that I wanted to punch the monitor so I took a day's rest and ended up reevaluating my code, rewrote the part needed and it was more compact, more precise and worked better. Today I ran into the same problem which came down to a pointer. I wanted to evaluate if two sprites were colliding and instead I ended up comparing garbage. WHY, WHY, WHY!!! It is not my code, it must be the assembler. @$%@$%$%$%@$%@ So in the end I should have pointed to SpriteTable+1 and SpriteTable+2 but ended up pointing to (SpriteTable+1) and (SpriteTable+2) Hopefully this will be a great tip for up and coming programmers. Now, I have collision detection for all actors in the game. Actors being NPC and loot. Rom is now 7.93k before optimization, sound data, test and debug if any.
-
Finished a long night of coding. Now, all objects in the game can be picked up and left in any room in the game. If I leave the room it will be in the same exact spot as I left it unless it is animated. It was a challenge and boiled down to better use of my ram tables. Another challenge that I had to think about is to get rid of a sprite from the screen when you leave a room. So started over with my mapping routine for objects and ended up saving a tremendous amount of cycles and a smaller rom. Still under 8k Assembly Language is like a movie, every single thing on camera has to be built and arranged.
-
BTW, does anyone have those Arcade editions in Reproduction boxes or at least one's that can be printed out and assembled?
-
And just think, I actually bought all 3 of those when they first came out. Same as Smart LOGO and CPM. I thought I was going to be some hot &&it programmer and there just wasn't enough information and tools at the time to do much. But at least I was real good at Jumpman Jr. and Montezuma's Revenge. Got past the first dark level and everything.
-
Well Tony from Electric Adventures came to my rescue once more. Going through his sample code I did have it right the first time because I used a function to disable NMI before my writes and everything went crazy. So he told me that there was another part which was to re-enable them. After I did that all my code works perfectly now. So, my latest work is adding the loot, weapons, treasure or whatever and a pick up routine. Pretty much everything is done as far as the graphics and mapping. I now wander around a 30 room world with no issues, no lag, no artifacts, no getting stuck inside walls or barriers. Still under 8k with all my pattern data defined, I just have to do a few things. So, starting from 2 December last year and had to basically learn everything I would say that's not bad.
-
BTW, how are those 1UP cabinets. I first seen them at Christmas time despite them being out for a while. I prefer making my own MAME cabinet but I could buy one but as a gift...
-
I was, just didn't want to post links. Hey, it may be worth that price to someone but one mans garbage is another mans gold. When I start selling my titles I want them to be original, not ports or MSX games or whatever. That's been done already. I already have a line up but at the same time I do not want to start vaporware announcements. My first game is almost done and 100% free, I never looked at this as a money venture but more of a love for the Colecovision that I defended when my friends were getting the NES and Genesis.
-
What the hell is wrong with these people. Do they honestly believe that these home brew games are some kind of vintage, rare whatever that they should be worth a car payment? Some guy wants $400 for pong which is a weekend project for any beginning programing student in college. That and some Space game from 2013 Collectorvision I actually have the source code in Assembly for 7 different machines including MSX, SMS and the Game boy. Oh and you get it new, sealed in the box....yeah I have no problem with making a couple of dollars but this gouging is way out of hand.
-
ALL fixed. Time to do the NPC, Loot and sound. Everything else is done aside from optimizations. So far I am under 8k for rom size.
-
I appreciate the effort but you really have to learn Assembly, works so much better, faster and tighter code.
-
Do you have an example? Such as CALL 73C7....Then what? Don't print until A = 0 or some deal? I tried to disable interrupts but that makes everything go crazy on the screen so this is new territory exclusive to the Colecovision in my experience.
-
Thanks ChildofCV I fixed all my jumps. I rearranged my joystick routine, implemented a phenomenal mapping system which I am REALLY proud of and the only problems I have before I put characters on the screen is artifacting from the bugs in Colecovision that comes from the NMI. So, I will be working on that before I put the NPC,s because I want a quality product in the end. All logic is in place, all maps, all pattern data, I have wandered around my map which at present is 30 rooms. Map logic is my greatest achievement in Assembly language where I defined one byte of RAM that holds current location and every time I enter a room it reads the location then checks a table with a room number and possible directions N,S,E,W. So you can add as many rooms as can fit on a cartridge and it will call a routine that draws the room and updates your position. The whole ROM so far is 5.82k Now, if I can not fix my artifacting then I will have to cut back my VRAM writes which means sending larger graphic data at one time which means a larger ROM but I have 32k to play with so.... I am not sure how much sound data will be so at this point t will be a balancing act with the sound and video. I have at least a 10 game list of ports and originality that is on my menu after this so I want to get as much out of this experience as I can. All my titles have never been done on the Colecovision to my knowledge. BTW, I got rid of all my JR Z and replaced them with JP Z but that was not my only problem. It was a combination that hopefully I will never make in the future again. Quick tip. If you have a change to your code, do it in increments. It saves on debugging. Also make a lot of backups so you can revisit old code. I make 4 backups on separate drives in case one dies. 52k of writing code and to have it lost due to a storm would send anyone up a wall. If you come up with a cool routine. Comment the crap out of it and save it in a separate library even if your game is changed and doesn't use it, you might want to use it down the road.
-
OK People... Happy New Years. I solved my mapping issues and thanks to all that helped. I now have zero issues traversing my 30 map system. Now to the NPC's
