{"id":5450,"date":"2023-11-20T13:15:46","date_gmt":"2023-11-20T12:15:46","guid":{"rendered":"https:\/\/msxitalia.org\/?p=5450"},"modified":"2023-12-08T15:04:40","modified_gmt":"2023-12-08T14:04:40","slug":"msxgl","status":"publish","type":"post","link":"https:\/\/msxitalia.org\/en\/msxgl\/","title":{"rendered":"MSXgl a game library written in C"},"content":{"rendered":"<p><strong>MSXgl<\/strong> \u00e8 una libreria di giochi scritta in C e destinata ai computer MSX. L&#8217;obiettivo di questa libreria \u00e8 quello di offrire ai programmatori C l&#8217;intero set di funzionalit\u00e0 per creare un gioco ad alte prestazioni. Anche se un programma C non potr\u00e0 mai essere efficiente come un programma scritto interamente in Assembler, l&#8217;obiettivo \u00e8 cercare di avvicinarsi il pi\u00f9 possibile. Per raggiungere questo, la libreria \u00e8 compilata dinamicamente per consentire all&#8217;utente di configurare le funzionalit\u00e0 in base alle proprie esigenze. Inoltre, le funzionalit\u00e0 pi\u00f9 onerose in termini di risorse sono scritte in Assembler. L&#8217;altro obiettivo era quello di creare una libreria totalmente indipendente dal BIOS. In questo modo \u00e8 molto pi\u00f9 facile utilizzare i 16K della pagina 0. La libreria fornisce anche un codice di gestione degli interrupt per creare ROM che rimangano sempre sulla pagina 0. Sono disponibili molti programmi di esempio per dimostrane le diverse caratteristiche.<\/p>\n\n\t\t<style>\n\t\t\t#gallery-1 {\n\t\t\t\tmargin: auto;\n\t\t\t}\n\t\t\t#gallery-1 .gallery-item {\n\t\t\t\tfloat: left;\n\t\t\t\tmargin-top: 10px;\n\t\t\t\ttext-align: center;\n\t\t\t\twidth: 33%;\n\t\t\t}\n\t\t\t#gallery-1 img {\n\t\t\t\tborder: 2px solid #cfcfcf;\n\t\t\t}\n\t\t\t#gallery-1 .gallery-caption {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\t\t\t\/* see gallery_shortcode() in wp-includes\/media.php *\/\n\t\t<\/style>\n\t\t<div id='gallery-1' class='gallery galleryid-5450 gallery-columns-3 gallery-size-thumbnail'><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/msxitalia.org\/en\/msxgl\/sample_math\/'><img decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/msxitalia.org\/wp-content\/uploads\/2023\/11\/sample_math-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Demo MSXgl\" aria-describedby=\"gallery-1-5453\" \/><\/a>\n\t\t\t<\/dt>\n\t\t\t\t<dd class='wp-caption-text gallery-caption' id='gallery-1-5453'>\n\t\t\t\tDemo MSXgl\n\t\t\t\t<\/dd><\/dl><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/msxitalia.org\/en\/msxgl\/sample_wyz\/'><img decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/msxitalia.org\/wp-content\/uploads\/2023\/11\/sample_wyz-150x150.png\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" \/><\/a>\n\t\t\t<\/dt><\/dl><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/msxitalia.org\/en\/msxgl\/sample_vdpcmd\/'><img decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/msxitalia.org\/wp-content\/uploads\/2023\/11\/sample_vdpcmd-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" \/><\/a>\n\t\t\t<\/dt><\/dl><br style=\"clear: both\" \/><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/msxitalia.org\/en\/msxgl\/sample_swsprt\/'><img decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/msxitalia.org\/wp-content\/uploads\/2023\/11\/sample_swsprt-150x150.png\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" \/><\/a>\n\t\t\t<\/dt><\/dl><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/msxitalia.org\/en\/msxgl\/sample_clock\/'><img decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/msxitalia.org\/wp-content\/uploads\/2023\/11\/sample_clock-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" \/><\/a>\n\t\t\t<\/dt><\/dl><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/msxitalia.org\/en\/msxgl\/sample_sprite\/'><img decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/msxitalia.org\/wp-content\/uploads\/2023\/11\/sample_sprite-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" \/><\/a>\n\t\t\t<\/dt><\/dl><br style=\"clear: both\" \/><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/msxitalia.org\/en\/msxgl\/sample_print\/'><img decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/msxitalia.org\/wp-content\/uploads\/2023\/11\/sample_print-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" \/><\/a>\n\t\t\t<\/dt><\/dl><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/msxitalia.org\/en\/msxgl\/sample_scroll\/'><img decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/msxitalia.org\/wp-content\/uploads\/2023\/11\/sample_scroll-150x150.png\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" \/><\/a>\n\t\t\t<\/dt><\/dl><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/msxitalia.org\/en\/msxgl\/sample_game\/'><img decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/msxitalia.org\/wp-content\/uploads\/2023\/11\/sample_game-150x150.png\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" \/><\/a>\n\t\t\t<\/dt><\/dl><br style=\"clear: both\" \/><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/msxitalia.org\/en\/msxgl\/sample_psg\/'><img decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/msxitalia.org\/wp-content\/uploads\/2023\/11\/sample_psg-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" \/><\/a>\n\t\t\t<\/dt><\/dl><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/msxitalia.org\/en\/msxgl\/sample_draw\/'><img decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/msxitalia.org\/wp-content\/uploads\/2023\/11\/sample_draw-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" \/><\/a>\n\t\t\t<\/dt><\/dl><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/msxitalia.org\/en\/msxgl\/sample_text\/'><img decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/msxitalia.org\/wp-content\/uploads\/2023\/11\/sample_text-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" \/><\/a>\n\t\t\t<\/dt><\/dl><br style=\"clear: both\" \/>\n\t\t<\/div>\n\n<p>Grazie ad un tool di compilazione avanzato \u00e8 possibile creare in modo semplice il programma finale per un gran numero di formati:<\/p>\n<ul>\n<li>Plain ROM da 8K a 64K (l&#8217;interrupt Handler pu\u00f2 essere installato nella pagina 0)<\/li>\n<li>ROM mappata da 64K a 4096K (mappatori ASCII-8, ASCII-16, Konami e Konami SCC)<\/li>\n<li>Programma binario MSX-DOS 1 o 2<\/li>\n<li>programma binario BASIC.<\/li>\n<\/ul>\n<p>La libreria supporta i seguenti dispositivi:<\/p>\n<ul>\n<li>VDP (TMS9918, V9938 e V9958) e V9990<\/li>\n<li>PSG (AY-3-8910), MSX-Music, MSX-Audio, Konami SCC<\/li>\n<li>Tastiera, Joystick, Mouse e Ninja Tap (adattatore per 4 joystick)<\/li>\n<li>ROM mapper, slot manager e Real Time Clock (RP-5C01).<\/li>\n<\/ul>\n<p>Ecco anche i formati audio supportati:<\/p>\n<ul>\n<li>Arkos Tracker 2 (AKG, AKY e AKM)<\/li>\n<li>Trilo Tracker SCC<\/li>\n<li>Inseguitore Vortex II (PT3)<\/li>\n<li>Inseguitore WYZ (WYZ)<\/li>\n<li>ayFX<\/li>\n<li>VGM (per tutti i chip audio supportati)<\/li>\n<li>lVGM (un formato VGM leggero per PSG)<\/li>\n<li>PCM<\/li>\n<li>Encoder (aka. campioni PCM 8bit puliti e cristallini sul povero PSG)<\/li>\n<\/ul>\n<p>Per concludere questa breve descrizione, \u00e8 importante far notare che la libreria viene aggiornata costantemente, sia nel core che nella documentazione. Inoltre \u00e8 possibile avere supporto attraverso la comunit\u00e0 molto attiva sul canale discord che troverete a questo indirizzo: <a href=\"https:\/\/discord.com\/channels\/920822639059148851\/\">https:\/\/discord.com\/channels\/920822639059148851\/<\/a><\/p>\n<p>\u00c8 possibile reperire la documentazione dai seguenti link:<\/p>\n<ul>\n<li>Documentazione del codice: <a href=\"https:\/\/l.facebook.com\/l.php?u=https%3A%2F%2Faoineko.org%2Fmsxgl-doc%3Ffbclid%3DIwAR1GaQx6UpoO6jJP5nMweMZdFkxtwaB5TNpovAxDzhweEOC75VXCGDKkw_k&amp;h=AT26XtVUvb3ifC9OqRV5MR2HeJa1YMNp7hMVd1Niko0wiBchEK80HyFCWdT7P0wPzNNQ0rvh1JiLn0TrQK__q90bfSkWnbZ3lDijr2DK0XiOXEWizYTM0ZvHPRYvbRnAF3EDu_qoR6FMvR_WzA&amp;__tn__=-UK-R&amp;c%5b0%5d=AT0uepTBS1eebC24DG9iy9Vi2HEvJL3lGhhFFOjFXPRxRn6jh5ohXqmUUb_G4hCHR2MhYE_5Co0FCJIZh7d_KJR-317m8-7z88ZVioNsGmparWNpeYiQo_EWSxDUuxgUMxsrpqK68VFvYS6C6lz2wbO3pHvIxameGGt-0qRNceA2y47DVLpK4nuuMD4UU0x1JI_9NE5z79Vx\">https:\/\/aoineko.org\/msxgl-doc<\/a><\/li>\n<li>Documentazione della libreria: <a href=\"https:\/\/l.facebook.com\/l.php?u=https%3A%2F%2Faoineko.org%2Fmsxgl%3Ffbclid%3DIwAR0kOkJJ6_x4mzRPvNdl8tbUcI5qL88V1o5QMDkFkkbUPd8iZPmx5Pm7ER4&amp;h=AT3Ho-yM3s8Gcv6ylVlbJx8lQ4W497RU7mEOHkrsmim5f1UPd1D28yowLf2w0LO5FKoD9fDzt3g9Xva5pnpND3B0spSJ_gua2AroSLd8CDnq8w4sqJU0WWzmvu1l1HLpSv4MckEQRq4IswXirQ&amp;__tn__=-UK-R&amp;c%5b0%5d=AT0uepTBS1eebC24DG9iy9Vi2HEvJL3lGhhFFOjFXPRxRn6jh5ohXqmUUb_G4hCHR2MhYE_5Co0FCJIZh7d_KJR-317m8-7z88ZVioNsGmparWNpeYiQo_EWSxDUuxgUMxsrpqK68VFvYS6C6lz2wbO3pHvIxameGGt-0qRNceA2y47DVLpK4nuuMD4UU0x1JI_9NE5z79Vx\">https:\/\/aoineko.org\/msxgl<\/a><\/li>\n<li>GitHub: aoineko-fr\/MSXgl: The MSX Game Library in C language (<a href=\"https:\/\/l.facebook.com\/l.php?u=https%3A%2F%2Fgithub.com%2Faoineko-fr%2FMSXgl%3Ffbclid%3DIwAR1d4OEHgYy9vsxb7SSCi9Po9lUxmGcewLWa0P1xEmprAzUwjFXgvEGtymU&amp;h=AT1dfnQADWaMswKrlRZTWj_cdD2WELtawaVS8TkJzEYp4_mIGC-2l883affh8Mien71vKkcnYcE8tcY9g8BJfBW_mYOmEiG98trsh0cSSMd0ik3C6D9oq9y3fnlcLWXEXZrqMDTbfgygdCYtTQ&amp;__tn__=-UK-R&amp;c%5b0%5d=AT0uepTBS1eebC24DG9iy9Vi2HEvJL3lGhhFFOjFXPRxRn6jh5ohXqmUUb_G4hCHR2MhYE_5Co0FCJIZh7d_KJR-317m8-7z88ZVioNsGmparWNpeYiQo_EWSxDUuxgUMxsrpqK68VFvYS6C6lz2wbO3pHvIxameGGt-0qRNceA2y47DVLpK4nuuMD4UU0x1JI_9NE5z79Vx\">https:\/\/github.com\/aoineko-fr\/MSXgl<\/a>)<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>Per chi fosse interessato l\u2019<a class=\"x1i10hfl xjbqb8w x6umtig x1b1mbwd xaqea5y xav7gou x9f619 x1ypdohk xt0psk2 xe8uvvx xdj266r x11i5rnm xat24cr x1mh8g0r xexx8yu x4uap5 x18d9i69 xkhd6sd x16tdsg8 x1hl2dhg xggy1nq x1a2a7pz xt0b8zv x1qq9wsj xo1l8bm\" role=\"link\" href=\"https:\/\/www.facebook.com\/Associazione.MSX.Italia?__cft__[0]=AZWtW1kbPNs-h0X85XLUtlSKwrS2h0EfGuNwjtd0M1PViiWRP1v-ecIHfthHvkFXOWHq94BEStwCld8Sjyxph5HZV4pPzclIzcfMyJIWrb9R-3V_FjjkVgcWyg5bavYJbeQZX-I3whyOQrf4Qant6h10WsQDbiQVQEyQIPwa7IigJywispZTopKR03G8R5dvPlVM89QzLX0uMinZyfKrpw6A&amp;__tn__=-]K-y-R\"><span class=\"xt0psk2\">Associazione MSX Italia<\/span><\/a>\u00a0ha creato un gruppo di lavoro di Ricerca e sviluppo sulla programmazione C per MSX. Per maggiori info:\u00a0associazioneMSXitalia@gmail.com<\/p>\n","protected":false},"excerpt":{"rendered":"<p>MSXgl \u00e8 una libreria di giochi scritta in C e destinata ai computer MSX. L&#8217;obiettivo di questa libreria \u00e8 quello di offrire ai programmatori C l&#8217;intero set di funzionalit\u00e0 per creare un gioco ad alte prestazioni. Anche se un programma C non potr\u00e0 mai essere efficiente come un programma scritto interamente in Assembler, l&#8217;obiettivo \u00e8 [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":5452,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[4],"tags":[],"dipi_cpt_category":[],"class_list":["post-5450","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linguaggio-c"],"_links":{"self":[{"href":"https:\/\/msxitalia.org\/en\/wp-json\/wp\/v2\/posts\/5450","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/msxitalia.org\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/msxitalia.org\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/msxitalia.org\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/msxitalia.org\/en\/wp-json\/wp\/v2\/comments?post=5450"}],"version-history":[{"count":4,"href":"https:\/\/msxitalia.org\/en\/wp-json\/wp\/v2\/posts\/5450\/revisions"}],"predecessor-version":[{"id":5859,"href":"https:\/\/msxitalia.org\/en\/wp-json\/wp\/v2\/posts\/5450\/revisions\/5859"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/msxitalia.org\/en\/wp-json\/wp\/v2\/media\/5452"}],"wp:attachment":[{"href":"https:\/\/msxitalia.org\/en\/wp-json\/wp\/v2\/media?parent=5450"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/msxitalia.org\/en\/wp-json\/wp\/v2\/categories?post=5450"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/msxitalia.org\/en\/wp-json\/wp\/v2\/tags?post=5450"},{"taxonomy":"dipi_cpt_category","embeddable":true,"href":"https:\/\/msxitalia.org\/en\/wp-json\/wp\/v2\/dipi_cpt_category?post=5450"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}