Jump to content

tane

Banned
  • Posts

    477
  • Joined

Everything posted by tane

  1. Yeah, the thing is when the image is enlarged, in some areas the proportion is different compared with others. It's easily noticeable with a lot of vertical bars of 1 pixel wide, when it's scaled in the video the result is some bars at 2 pixel wide and others of 3 pixels wide (for example), so the scaling doesn't look good as a whole image. Ok, still is good to have custom options and see the results.
  2. Feature: in video recording there should be proportional frame scales to the regular Atari dimensions. Atari dimensions are: Normal: 336 x 224(240) -> frame scale: 672 x 448 (NTSC), 672 x 480 (PAL). Widescreen: 352 x 224(240) -> frame scale: 704 x 448 (NTSC), 704 x 480 (PAL). Extended: 376 x 240 -> frame scale: 752 x 448 (NTSC), 752 x 480 (PAL). In that way it's sure that the pixel proportion is 1:1 (or 1:2). Now with both 720 height (960x720, 1280x720) the scaling is not 1:1 of pixels. Plus also regular dimension of the market: 4:3, 16:9 like now (480, 720)
  3. I'm thinking that someone could open a .rmt with player "A", but such file was created for player "B", and ended thinking "what a bad rmt", but actually is good if it's played with "B". Maybe some metadata inside each .rmt indicating which player was created from.
  4. Is there an automated way to convert old .rmt files (and its instruments) to the new player "Patch 16 Beta5"?
  5. Thanks, but the question is different: STEP 1: compile the asm to .rom, with MADS. STEP 2: somehow build a new firmware (.POF) based in boot.rom, with Quartus. STEP 3: upload the .pof to the cart, with a USB Blaster and Quartus. I'm asking for STEP 2 (not Step 3), how to build the .pof properly? Could be just screenshots step by step. Likely it should require to specify the model of the FPGA and a ton of parameters, etc.
  6. Select by price a clone: https://www.aliexpress.com/wholesale?catId=0&SearchText=usb+blaster+altera Definitely just a command line exe conversion is too simple for an Intel hardware... @ascrnet Can you make an "advanced" guide of how to create a new project (.pof) including the boot.rom with Quartus? A step by step screenshots is ok. https://atariage.com/forums/topic/241888-ultimate-cart-sd-multicart-technical-thread/?do=findComment&comment=4836069
  7. Ok, thanks. Can you point how to convert/compile a new "Max10_SD.pof" from the "boot.rom"? Is it with this?: avr-objcopy.exe -I binary -O ihex boot.rom boot_rom.hex
  8. ? Current changelog: Fix Atari 800 /S4 and /S5 are always active (Vigo) BOOT? in one for executable files and DLI flicker fixed (Flashjazzcat) New support for 4 types of cartridges .CAR (AsCrNet) Turbosoft 64kb y 128kb (N°50 and N°51) ATRAX 128kb (N°17) Standard cartridge 4kb (N°58) ???????? Previous changes made by Facuai are not mentioned... ...not required for XL-XE?: $8000-$9FFF bus-contention problem when running on the 800: A800 / Incognito: Control Extensions (CX): Plus Control-Extensions (CX):
  9. Hello! The authors of "River Raid On Mars" have asked to show a small preview of the game and the introduction prepared. It will not be in competition, for reasons explained at the end of the post, and either the project will be archived, completed or finished as it is. River Raid On Mars - Preview.mp4 Unfortunately some of the rules of the competition were misunderstood, it's not allowed to make hacks of third-party software, and also is not allowed to have official logos, like the Atari Fuji logo. Both are an essential part of this proposal in its conception, that's why this game has been retired from competition. The rule that was thought to allow to be in competition is the next one: 2.3 Also allowed are: 2.3.1 submission of an already existing program if it has been extended or altered. Finally, the aim of this post is not to make s discussion about the rules that certainly could be more clear, just to show a preview for those interested in new levels of this classic game, and the discussion of this thread should be in the already admitted entries. Bye!
  10. Feature: What about support to Kaillera for online players in a network game? The only information related was asked before years ago in this forum: https://atariage.com/forums/topic/273633-altirra-300-released/?do=findComment&comment=4060815
  11. Hi, is it possible to make a "lite" version for programmers, with no graphic output, I mean the smallest code possible, that just write for example in: $4000 = 01 if it's 16kb ram $4000 = 02 if it's 48kb ram $4000 = 03 if it's 64kb ram ... etc. for each feature, thinking in something useful to help the creation of new programs, adding the code at the beginning of new programs to help in the proper detection of the hardware ?
  12. Confirmed analogue step in the middle, but what's the game?
  13. Thanks all. The idea was to convert the macro CopyMemory (NRV, 2009) to a function in order to save space if multiple times is applied. As Macro: ;-------------------------------------------------------------------------------- ; CopyMemory [source address] [dest address] [bytes] ;-------------------------------------------------------------------------------- ; warning, using some page zero memory .macro CopyMemory copyMemPtr1 = 254 copyMemPtr2 = 252 copyMemCounter = 250 .if :0 <> 3 .error "CopyMemory error" .else ldy #0 lda #<:1 sta copyMemPtr1 lda #>:1 sta copyMemPtr1+1 lda #<:2 sta copyMemPtr2 lda #>:2 sta copyMemPtr2+1 .if :3 < 256 copyMemLoop1 lda (copyMemPtr1),y sta (copyMemPtr2),y iny cpy #:3 bne copyMemLoop1 .else lda #<:3 sta copyMemCounter lda #>:3 sta copyMemCounter+1 copyMemLoop2 lda (copyMemPtr1),y sta (copyMemPtr2),y iny bne copyMemB1 inc copyMemPtr1+1 inc copyMemPtr2+1 copyMemB1 lda copyMemCounter bne copyMemB2 dec copyMemCounter+1 copyMemB2 dec copyMemCounter lda copyMemCounter ora copyMemCounter+1 bne copyMemLoop2 .endif .endif .endm As 2 functions: function.main .local ///////////////////////////// Copy memory procedure - begin /////////////// TO EDIT VARIABLES TO THE RIGHT OF EQUAL: address.current.begin = $1234 address.current.fin = $5678 address.destiny.begin = $4321 ;[$address.current.begin - $address.current.fin] copy to [$address.destiny.begin - $address.destiny.fin] /////////////// ;Copy addresses to memory - begin: value.data.1 = address.current.begin value.data.2 = address.destiny.begin value.data.3 = address.current.fin-address.current.begin+1 lda #<value.data.1 ; ":" removed inside a local procedure (lda #<:value.data.1) sta copyMemPtr1 lda #>value.data.1 sta copyMemPtr1+1 lda #<value.data.2 sta copyMemPtr2 lda #>value.data.2 sta copyMemPtr2+1 lda #<value.data.3 sta copyMemCounter lda #>value.data.3 sta copyMemCounter+1 ;Copy addresses to memory - end jsr function.copy.memory ///////////////////////////// Copy memory procedure - end .endl rts function.copy.memory ;Variables: copyMemPtr1 = 254 copyMemPtr2 = 252 copyMemCounter = 250 ;Original macro: ldy #0 copyMemLoop2 lda (copyMemPtr1),y sta (copyMemPtr2),y iny bne copyMemB1 inc copyMemPtr1+1 inc copyMemPtr2+1 copyMemB1 lda copyMemCounter bne copyMemB2 dec copyMemCounter+1 copyMemB2 dec copyMemCounter lda copyMemCounter ora copyMemCounter+1 bne copyMemLoop2 ;Clean temp bytes of macro CopyMemory lda #$00 sta $fa sta $fb sta $fc sta $fd sta $fe sta $ff rts
  14. This compiles and works, but... org $609 general.launcher address1 = $1234 lda #<:address1 sta $4000 lda #>:address1 sta $4001 jump jmp jump run general.launcher ... not the following. The only difference is ".local" and ".endl". How can be created a local procedure with non-global labels inside? org $609 general.launcher .local address1 = $1234 lda #<:address1 sta $4000 lda #>:address1 sta $4001 .endl jump jmp jump run general.launcher
  15. Thanks, something I understood about how it works the VBI with the literature below, but I need to do a post-PhD to get properly ?, still I'm in the copy-paste level. If I find an easy example I could get how to use it. https://playermissile.com/dli_tutorial/ https://user.xmission.com/~trevin/atari/antic_insns.html https://www.atariarchives.org/c2bag/page069.php So I'm opening paths in a different way (Graph2Video). I hope to get it finished. ? Only the NTSC shape for now. video3.mp4
  16. Thanks. Not tested as I decided to build a new logo from zero, but I found that adding a "cli" at the end (or the beginning of something that is not shown), re-enables the screen.
  17. Almost. Problem solved: to delay a "cli" makes the trick. Still I don't have a SIO device, but already in the way.
  18. Tested but it didn't work. lda #$00 sta $02c4 sta $02c5 sta $02c6 sta $02c7 sta $02c8
  19. I thought it was just to scan the memory and find the characters, and then replace them by zeros, but is not that easy. How can be fixed a transition between 2 programs? It's shown around 0.1 seconds, but the screen should be black without any character. The characters are located in memory around $2000 and $2600. The strange thing is if the characters are located let's say between $21a0-$22a0, and then they are replaced by zeros before to enter in the transition, then unexpectedly the screen shows the next set of characters of $2500-$2600.
  20. Ok, I knew that, let's say there is no conflict of addresses, for example the first org could be $3000 and the one before the font $4000, and the rainbow works. But if then the image has (I guess) player-missiles on, the image won't load. Also if you turn off the display just before, the rainbow doesn't show up. Is there any way to re-enable the display? lda #$00 sta $D400 ; DMACTL sta $22F ; SDMCTL
  21. This version (latest checked in Github) is not working with some programs. For example when adding an image (G2F) thereafter, it will not work all times, the image doesn't start. Is there a way to restore the system to its default before exit the program? What to add here?: exit jmp WARMSV If in the G2F code is commented this line, it helps, but I'd like to have a full compatible Fuji Rainbow Logo program instead of to make hacks to other programs. ; lda:cmp:req $14 ;wait 1 frame It breaks out of the loop at $2C05: 2C03: A5 14 LDA RTCLOK+2 2C05: C5 14 L2C05 CMP RTCLOK+2 2C07: F0 FC BEQ $2C05 2C09: 78 SEI Note: not tested specifically with this small G2F code. Pasted here in order to know what commands are used with G2F. /***************************************/ /* Use MADS http://mads.atari8.info/ */ /* Mode: DLI (char mode) */ /***************************************/ icl "test.h" org $f0 fcnt .ds 2 fadr .ds 2 fhlp .ds 2 cloc .ds 1 regA .ds 1 regX .ds 1 regY .ds 1 WIDTH = 40 HEIGHT = 30 ; --- BASIC switch OFF ; org $2000\ mva #$ff portb\ rts\ ini $2000 ; --- MAIN PROGRAM org $2000 ant dta $44,a(scr) dta $04,$04,$04,$04,$04,$04,$04,$04,$04,$04,$04,$04,$04,$04,$04,$04 dta $04,$04,$04,$04,$04,$04,$04,$04,$04,$04,$04,$04,$04 dta $41,a(ant) scr ins "test.scr" .ds 0*40 .ALIGN $0400 fnt ins "test.fnt" ift USESPRITES .ALIGN $0800 pmg .ds $0300 ift FADECHR = 0 SPRITES els .ds $500 eif eif main ; --- init PMG ift USESPRITES mva >pmg pmbase ;missiles and players data address mva #$03 pmcntl ;enable players and missiles eif lda:cmp:req $14 ;wait 1 frame sei ;stop IRQ interrupts mva #$00 nmien ;stop NMI interrupts sta dmactl mva #$fe portb ;switch off ROM to get 16k more ram mwa #NMI $fffa ;new NMI handler mva #$c0 nmien ;switch on NMI+DLI again ift CHANGES ;if label CHANGES defined _lp lda trig0 ; FIRE #0 beq stop lda trig1 ; FIRE #1 beq stop lda consol ; START and #1 beq stop lda skctl and #$04 bne _lp ;wait to press any key; here you can put any own routine els null jmp DLI.dli1 ;CPU is busy here, so no more routines allowed eif stop mva #$00 pmcntl ;PMG disabled tax sta:rne hposp0,x+ mva #$ff portb ;ROM switch on mva #$40 nmien ;only NMI interrupts, DLI disabled cli ;IRQ enabled rts ;return to ... DOS ; --- DLI PROGRAM .local DLI ?old_dli = * ift !CHANGES dli1 lda trig0 ; FIRE #0 beq stop lda trig1 ; FIRE #1 beq stop lda consol ; START and #1 beq stop lda skctl and #$04 beq stop lda vcount cmp #$02 bne dli1 :3 sta wsync jmp NMI.quit eif dli_start .endl ; --- CHANGES = 1 FADECHR = 0 SCHR = 127 ; --- .proc NMI bit nmist bpl VBL jmp DLI.dli_start dliv equ *-2 VBL sta regA stx regX sty regY sta nmist ;reset NMI flag mwa #ant dlptr ;ANTIC address program mva #@dmactl(standard|dma|lineX1|players|missiles) dmactl ;set new screen width inc cloc ;little timer ; Initial values lda >fnt+$400*$00 sta chbase c0 lda #$00 sta colbak c1 lda #$04 sta color0 c2 lda #$06 sta color1 c3 lda #$08 sta color2 c4 lda #$0E sta color3 lda #$02 sta chrctl lda #$04 sta gtictl x0 lda #$00 sta hposp0 sta hposp1 sta hposp2 sta hposp3 sta hposm0 sta hposm1 sta hposm2 sta hposm3 sta sizep0 sta sizep1 sta sizep2 sta sizep3 sta sizem sta colpm0 sta colpm1 sta colpm2 sta colpm3 mwa #DLI.dli_start dliv ;set the first address of DLI interrupt ;this area is for yours routines quit lda regA ldx regX ldy regY rti .endp ; --- run main ; --- opt l- .MACRO SPRITES missiles .ds $100 player0 .ds $100 player1 .ds $100 player2 .ds $100 player3 .ds $100 .ENDM USESPRITES = 0 .MACRO DLINEW mva <:1 NMI.dliv ift [>?old_dli]<>[>:1] mva >:1 NMI.dliv+1 eif ift :2 lda regA eif ift :3 ldx regX eif ift :4 ldy regY eif rti .def ?old_dli = * .ENDM example G2F.zip
  22. I'm happy to feel several improvements testing some RMT. But in some cases it seems that a new set of instruments is required comparing the original and new output, in order to have a similar sound. Example at 60Hz: sketch.rmt Also, is it possible to have the "SONG" map in mono as big as it appears in stereo?
  23. An Atari with a working keyboard & video, but with a Raspberry Pi and a Teensy 2.0. Is there documentation of how to build this for an empty case project?
×
×
  • Create New...