-
Content Count
1,465 -
Joined
-
Last visited
Content Type
Profiles
Member Map
Forums
Blogs
Gallery
Calendar
Store
Everything posted by FarmerPotato
-
Having fun with Dragon's Lair at Midwest Gaming Classic, Wisconsin Center, Milwaukee. Mike's packaging material is on the easel. The poster art is on the joystick console
-
From the album: Making
-
From the album: Making
-
I have a spare MiniMemory, new battery (I updated two MM recently.) Probably a few E/A as well. I'm using those same physical cartridges more than anything right now.
-
I measure how fast I can blast 4k of bitmap data, for 1 frame of a 16x16 tile area of the screen. I store the pattern and color in chars 00-7F (each bank) for one frame. checkr is a routine that blasts a 4x4 checkerboard pattern into the color table with a scrolled offset of 0-7. Registers are in PAD. * Timing Full blast 4k. Pat tbl all >F0 with vmsw 2k, color table with checkr 2k. All in CPU RAM. Music playing. ; 512 frames in 51 seconds with 2 vsync waits in a row. 10 fps or 6 ticks/frame ; 512 frames in 40 seconds with 1 vsync wait. 12 fps or 5 ticks/frame. ; 512 frames in 38 seconds with 0 vsync wait. Still around 5 ticks. half blast 2k. color table only with checkr. ; 512 frames in 24 seconds. 21 fps or 3 ticks/frame. half blast 2k. Inner loop of checkr in PAD. ; 512 frames in 21 seconds. 25 fps or 2-3 ticks/frame. no music ; 512 frames in 17 seconds. 30 fps. 2 ticks/frame. Cycle Analysis of checkr: T(a73e-a794) N Cy N*Cy 1024 26 26624 movb r4,*r15 (8 movb per unrolled loop) 128 10 1280 dec r2 128 10 1280 jne Total 29184 cycles average cycles measured in checkr: 30352 Times two, or 60700 cycles. Trying movb r4,@VDPWD takes 30 cycles. Slower than movb r4,*r15. Adds 4096 cycles. Time to move code into pad: 60 + 20*(38+14+14) = 1380 So do this once. ; full bandwidth, supposedly optimized vdp blitter. ; fill all the bytes that would be written if the whole field had been calculated. ; move this routine to >8380 padck1 equ >8380 ck1 movb r3,*vd movb r3,*vd movb r3,*vd movb r3,*vd movb r4,*vd movb r4,*vd movb r4,*vd movb r4,*vd dec r2 jne ck1 b @ck2 ck1$ ckinit ; move code into pad. call this once. li r0,padck1 li r1,ck1 li r2,(ck1$-ck1) ck0 mov *r1+,*r0+ dec r2 jne ck0 checkr li r2,>80 ; loops mov r9,r0 neg r0 andi r0,7 sla r0,1 ai r0,padck1 b *r0 ; jump into partial move ck2 mov r9,r0 neg r0 andi r0,7 jeq ck3 ; partial last char causes all the trouble. we could wrap but clobbering 0 would look awful. movb r3,*vd dec r0 jeq ck3 movb r3,*vd dec r0 jeq ck3 movb r3,*vd dec r0 jeq ck3 movb r3,*vd dec r0 jeq ck3 movb r4,*vd dec r0 jeq ck3 movb r4,*vd dec r0 jeq ck3 movb r4,*vd ck3 rt Next steps: Moving data from a buffer in CPU RAM will be a large hit. Since at best 2k takes 2 ticks, even 6 ticks for 4k, page flipping will be essential. I will have to break up the blitting into sections, as Rasmus suggested. Perhaps doing other processing in between (though there is only a finite amount of processing to do per frame. sprites move at most 1 pixel per frame.) While I would like to have full bitmap scrolling, other ideas are: 1. My current scheme is 2 tiles, with 2*2 permutations (space above space, space above block, block above space, block above block). There are two frames. On each tick, I update 4 patterns in the next frame, then update the SIT. Total 32+256 bytes. 2. Idea. Making the background out of only 5 tiles, with all permutations of 5*5*8 stored in the pattern/color table. Then to update the frame, write 256 bytes of SIT (in 16 rows of 16.) This is still awfully limiting. Total 256 bytes. 3. Idea. Have 11 tiles, and update all 11*11 permutations for a frame. Write SIT. Total 2.5k. 4. Reduce the scrolling area width or height. Links Source repo https://github.com/olsone/games/tree/master/9d9damashi Blog https://github.com/olsone/games/wiki/9d9damashi-RetroChallenge-2019-Blog Video https://www.youtube.com/watch?v=writJ0I5fHg Thread http://atariage.com/forums/topic/289763-namcos-unpublished-sequel-to-munchman
-
Im working on blasting bitmap mode again. I decided on a 16x16 area with two frames. So that chars 0-127 are for one frame in each bank. One char has to double as the blank char. I found that I can push the whole color table portion in under 2 ticks, thats 2k of sequential writes, operating completely out of PAD. doing something more interesting than a scrolling checkerboard will be slower. Id post code but we just got hit with a lightning strike. Im typing on my phone plugged into a car jumper battery.
-
Full credit to Sparkdrummer! Flottman1 knows the filename on disk, but maybe I was runnning the cassette version! Anyway I cropped the first line of the screen which displays CAVERN QUEST. I located it on 99er.net but not ftp.whtech.com
-
Here it is:
-
Markus of Marinus, by our maestro Opry99er.
-
Oh wow. From where I see it, you make it look easy. 3000 hours is why it looks perfect (: I have about 300 hours into FORTI-2. I was afraid I was just slow. (it's got an awful timing bug with the 9900 running code out of its memory, though data access works.)
-
Looking for a monitor, feedback wanted.
FarmerPotato replied to jrhodes's topic in TI-99/4A Computers
Can anyone verify that the Samsung 910mp works with PAL output , or if there is more than one version of the 910mp? We have someone bringing a Spectrum ZX81 to Midwest Gaming classic and I think that might be our only PAL monitor in the 80s row. -
Good one!
-
Namco's Unpublished Sequel to MunchMan
FarmerPotato replied to FarmerPotato's topic in TI-99/4A Computers
Thank you for the good words. I'm happy that y'all were entertained. There are still some sprites nobody named. My kids are demanding that this become a playable game, so it must be. My sprite table is full at 247 sprites, so there will be a lot of code rewritten to page in the chardefs. Besides I want 16x16 sprites too. For background: this is a tribute to the 2004 Katamari Damacy for Playstation 2. (Lately for Nintendo Switch.) https://en.wikipedia.org/wiki/Katamari_Damacy https://www.amazon.com/Speaking-Library-Adventures-Wordbook-Included/dp/0895120666 -
Some people know that TI experimented with porting its best-known games to Intellivision. Well, much later, Namco planned to roll up the market for retro-gaming by producing software for the TI-99/4A. A Namco intern told their boss to build on the nostalgia for "Munk-Man" and this is what happened. I found the binary on an MSX forum earlier this year: (k2.dsk or download here) contains a single E/A 3 object file "K2" without Namco markings. The program name is K2. Watch the video here: https://youtu.be/writJ0I5fHg
- 12 replies
-
- games
- KatamariDamacy
- (and 4 more)
-
From the album: Programming
For details, see https://github.com/olsone/games/tree/master/9d9damashi -
This might work, using the Bill Prothro routine. I did not test it yet... SUB POKEV(A,B) :: C=A/256 :: CALL LOAD(-3,B,INT(A/256),B AND 255) :: CALL LINK("POKEV") :: SUBEND SUB PEEKV(A,B) :: C=A/256 :: CALL LOAD(-2,INT(A/256),B AND 255) :: CALL LINK("PEEKV") :: CALL PEEK(-3,B) :: SUBEND SUB COLORHI(A,B,C) :: CALL LOAD(-3,(B-1)*16+C-1,8,15+A) :: CALL LINK("POKEV") :: SUBEND SUB CHARHI(A,A$) :: HEX$ = "123456789ABCDEF" :: MSB = 3+INT(A/32) :: LSB = (A AND 31)*8 :: FOR I=1 TO LEN(A$) STEP 2 :: B = POS(HEX$,SEG$(A$,I,1))*16 + POS(HEX$,SEG$(A$,I+1,1)) :: CALL LOAD(-3,B,MSB,LSB+INT((I-1)/2)) :: CALL LINK("POKEV") :: NEXT I :: SUBEND I call it CHARHI , it is going to be slower than CHAR, so you could rename just some of the CALL CHAR statements where needed. Similarly COLORHI though the slowdown is much less. CHAR definitions 144-159 overlap the sprite motion table in Extended Basic. One thing missing here: turning off sprite motion by setting the status byte at >83C2. I think it's off by default.
-
The easiest way to run these cartridges is a FinalGROM or FlashROM99 cartridge loaded with the cartridge dump. No other hardware needed. The other formats are for loading the game into external 32K RAM. So you need a 32K RAM (like the sidecar currently available) and a cartridge such as Editor/Assembler or MiniMemory that can load the program from disk or cassette. Some cartridge dump formats can be loaded from Extended Basic. Other than BASIC programs, you will always need a 32k memory expansion to load disk or cassette programs into. FlashROM99 emulates the original cartridge so no memory expansion is required.. for cartridge games. Again, FlashROM99 by itself is able to run most of the Atarisoft modules (except DigDug and Moon Patrol I think). PacMan and Ms PacMan do work fine I think. FlashROM99 cannot run a lot of TI cartridges (those based on GROM chips, like Tunnels of Doom.) FinalGROM runs almost all cartridges.
-
From the album: Programming
-
From the album: Programming
