Título: problema en asmsx Publicado por: jrcp_kun en 08 de Febrero de 2015, 05:01:06 pm quiero hacer una pruebas y he creado 2 pantallas completas en sc5
si una la hago p1: .incbin "pantalla1" si la p2 la hago igual me da error como tengo que hacer para cargar esa imagen?? la quiero meter en vram pagina 1 asi que seria: ld hl,p2 ld de,8000h ld bc,69ffh call LDIRVM pero al compilar me lanza error de que no puede meter en page3 los datos. hay que poner algo diferente o como va?? Título: Re:problema en asmsx (A megarom Vas!) Publicado por: j4mk3 en 11 de Febrero de 2015, 11:00:18 am Empiezas a manejar una cantidad de datos bastante grande. Yo diría así de memoria que ya te pasas de los 16Ks por página de Memoria para cargar más de 1 pantalla de SC5.
Vas a tener que empezar a trabajar con subpaginas y megaROM Mírate el PDF manual que acompaña al asMSX. Es bastante claro. El juego está en el uso de 2 directivas que ya el asMSX te da. SELECT n AT Dirección y SUBPAGE n AT Dirección La primera te cambia una página la dirección que digas. y la segunda prepara el asMSX para decirle que esos datos van a partir de esa dirección. Ojito con todo esto ! que si cambias de página mientras tienes código en ejecución en ella... cuelgue fijo!. :) Te pongo un pequeño ejemplo que carga "basura" en subpáginas en diferentes páginas de memoria. Es un programa simple que va leyendo de la subpágina 3 a la subpágina 8, un byte y lo mete en el registro C para verlo por el debugger del blueMSX y ver que efectivamente funciona. Verás que tiene un .break nada más empezar para que se pare ahí la ejecución. Código: .bios Fíjate en el SUBPAGE 63. Este es el MÁXIMO que te permite crear el asMSX. En el manual ponía que podía poner SUBPAGE 64. Pues no, creo que es una errata..megarom KonamiSCC .start JUEGO .db "Mi juego se llama algo" DATO equ 0A000h JUEGO: .search .break ld B,3 @@LOOP: ld A,B SELECT A AT 0A000h ld A,[DATO] ld C,A ld A,B inc A and 111b cp 3 jp nc,@@CONT ld A,3 @@CONT: ld B,A jp @@LOOP SUBPAGE 1 AT 06000h db 0 SUBPAGE 2 AT 08000h db 0 SUBPAGE 3 AT 0A000h db 0,0,0,0 SUBPAGE 4 AT 0A000h db 1,1,1,1 SUBPAGE 5 AT 0A000h db 2,2,2,2 SUBPAGE 6 AT 0A000h db 3,3,3,3 SUBPAGE 7 AT 0A000h db 4,4,4,4 SUBPAGE 8 AT 0A000h db 5,5,5,5 SUBPAGE 63 AT 0A000h db 60,60,60,60 Si compilas este código debería crearte una ROM de 512Ks. Título: Re:problema en asmsx Publicado por: jrcp_kun en 12 de Febrero de 2015, 11:13:00 am lo pruebo pues solo estoy haciendo pruebas y aprendiendo
gracias |