Jump to content

Elkino

Members
  • Posts

    41
  • Joined

  • Last visited

Posts posted by Elkino

  1. 1 minute ago, x=usr(1536) said:

    Not a Windows user here, so my experience with Altirra is minimal to say the least.  If this is a dumb question, at least you know why in advance :-D

     

    Does Altirra (or any other emulator, for that matter) have the ability to attach to external devices via an SIO2USB or similar?

     

    The UDP bridge idea is also a good one, and I'm not proposing the SIO2USB route as a replacement for it.  But as a complementary method, there are certain circumstances where having the option of physically-attached hardware would be beneficial.

     

    I discussed something similar, with a SIO2USB cable with all pins it should be posible, as when you attach a 1050 drive to the PC to copy files to the emulator.

     

    https://github.com/atari800/atari800/issues/127

     

     

    • Like 1
  2. 1 hour ago, Xebec's Demise said:

    Would multiple disk games like Alternate Reality run in this online emulator or would they need to be modified?

    It is an interesting idea. Could be great see people playing AR in a web page. But, this was just a very basic proof of concept. I think that some disk swap button need to be developed. The MAME.js emulator can load several disk in the drives, but I don't know how to dynamically swap the disk loaded in the drive at-runtime. I hope that Altirra or Atari800 generate an https://emscripten.org/ version that be more versatile that allow to customize the emulator that run in the web page.

     

    https://github.com/atari800/atari800/issues/130

     

    • Like 1
    • Thanks 1
  3. 18 hours ago, rensoup said:

    New test version... UNPLAYABLE (3 versions Amax Megac DDATR)

     

    -fixes the Atarimax issues that @Mq. mentioned. 

    -has my beautiful hack to take out the dancing girl anim out of the VBi

    -slightly more robust boot process (reset stack ptr just in case, write to NMIRES)

     

    the hack involves changing the RTI return address in the VBi, to redirect it to the animation code which then returns to the original RTI return address. I like this hack, it's almost like multitasking ?. Now I don't have a clue how well it works outside Altirra of course!

     

    Let me know how it goes...

     

     

    pop_bhack_2106017.zip 436.9 kB · 11 downloads

     

    Edit: I just realized that the hack may not actually do much since it's still going to block disk access polling... damn....

     

    This atarimax car load and shows presentation demo. No playable.

     

    Works for me on :

    - NTSC 600XL expanded with 1MB and SIDE3 cart.

    - NTSC 130XE with 320k rambo and SIDE3 cart.

    • Like 1
  4. 3 minutes ago, Philsan said:

    Wouldn't be better to map fire to CTRL and cursor movement to LEFT ALT + arrows (like state-of-the art emulator Altirra)?

    Moreover, notebooks don't have numpad.

    Its a little bit tricky to do in MAME, what I can I do is map the arrows to *,-,=,+ and move the cursor with CTRL+Arrows, but on Mac CTRL+Arrows change the current desktop. (All can be easier if atari800 emulator have an JavaScript/WebAssembly target using emscripten).

     

    https://github.com/eahumada/mame/blob/master/src/mame/drivers/atari400.cpp

     

    Also, I exploring to continue working with jsA8E, but also need some work in the future.

     

    https://eahumada.github.io/AtariOnline/fastbasic.html?disk_filename=fastbasic.atr

     

    I wonder: On the FB IDE, how is possible to exit from the Save file prompt when press CTRL+Q if one not wish to save the sources? I get stuck in that point when I use the IDE in the emulator, as the "virtual" disk is write protected.

     

  5. 20 minutes ago, Philsan said:

    I noticed your page some days ago, thanks!

    What is the key for RESET?

    Great, I'm working on it. I just looking for it in the source code of the emulation, but seems that MAME don't have a warm reset, currently you need to refresh your browser is you want a fresh start. I wonder why the editor ask to save when you press CTRL+Q, and you can not press ESC to cancel and just exit.

     

    I fixed some mappings, F7=Is the break key and cursor movement maps to CTRL+NUMPAD 8,4,6,2 y will add the detail of the mappings at the botton of the page. LEFT ALT is FIRE and arrows are joystick directions.

     

    All keys are located near to the original Atari position.

     

    Can be great is in the future exists some like Altirra.js or Atari800.js to publish small Atari XL/XE 8-bit apps on the web, as atari800 on MAME.js seems to be not have active development.

     

  6.  

    Creating a fork, I have done some fixes on MAME key mappings, compiled the code with emscripten and generated the js files and copied it into to the page.

     

    This means that all the mappings can be modified in the future (may be). I also see that using a CFG file it is possible to modify the mappings, muy seems that the JavaScript MAME not parse the file.

     

    The mappings now are as follows:

     

    BACKSPACE: Delete the previous character.

    F7: is break.

    F2,F3,F4 maps to Start, Select, Option.

    Left ALT is Atari / Inverse mode key.

    CTRL+Insert: Inserts an space

    CTRL+Backspace: Delete the next character.

     

    The last two mappings happens due that the Shift and Ctrl keys are in fact inverted from the original layout to make easier use CTRL and SHIFT with the other keys.

     

    You need to press several time CAPS LOCK to change beetwen upper case to lower case, seems that is a bug in MAME atari400 code.

     

    All the other mappings remains the same.

     

    At this point, I also added the keyboard image under the emulator to make easier to locate the original key positions.

     

    I need to take some time to figure how the mappings are implemented under the hood in order to be able to implement additional features.

     

    Also, it is possible also review other mappings in the code.

     

    Thanks for your help.

     

    https://github.com/eahumada/mame/blob/master/src/mame/drivers/atari400.cpp

     

    // Mapped to F2, F3, F4 as in Altirra
    static INPUT_PORTS_START( atari_console )
    	PORT_START("console")
    	PORT_BIT(0x04, 0x04, IPT_KEYBOARD) PORT_NAME("CONS.2: Option") PORT_CODE(KEYCODE_F4)
    	PORT_BIT(0x02, 0x02, IPT_KEYBOARD) PORT_NAME("CONS.1: Select") PORT_CODE(KEYCODE_F3)
    	PORT_BIT(0x01, 0x01, IPT_KEYBOARD) PORT_NAME("CONS.0: Start") PORT_CODE(KEYCODE_F2)
    INPUT_PORTS_END
    // ...
    2021-04 EA:
    - "BackS Delete" from BACKSPACE is mapped to 'DEL'
    - "Break" from F7 is mapped to MAMEKEY 'F1' (As pause in not present in MacOSX)
    */
    static INPUT_PORTS_START( atari_keyboard )
    PORT_START("keyboard.0")
    // ...
    PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Break") PORT_CODE(KEYCODE_F7) PORT_CHAR(UCHAR_MAMEKEY(F1))
    //...
    PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Atari") PORT_CODE(KEYCODE_RALT) PORT_CHAR(UCHAR_MAMEKEY(F3))
    //...
    PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("BackS  Delete") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) PORT_CHAR(UCHAR_MAMEKEY(DEL))

     

  7.  I think that Altirra have 3-modes and the mode that MAME use is more similar to the raw native mode. Could be useful a photo from your keyboard.

     

    You detailed list is very helpful, appreciated and a photo of your keyboard can help me to create a set of mappings.That confirm that the keys are mapped based on the location of the US keyboard, as BACKSPACE is located where the Break key used to be. That is exasperating, I taken a look in to the MAME atari400.cpp original source code and found that [del] key should be used for delete, but it not work on my Mac.

     

    By the way, I have the intention to fix it. Attached is a picture of the original Atari layout, at the moment the keys are located near to the original location.

    16F31BB3-1616-4313-8F1F-C017C5C3C82E.jpeg

  8. 6 hours ago, TGB1718 said:

    Had a quick look, doesn't really work for me, the keyboard mapping is all wrong so can't

    even load a file from disk, also cursor keys don't work.

    Hello! thank you very much for your feedback, very appreciated! 
     

    About your comment yes, your are right, as this is the first version you need to have some patience as it use the default emulator keyboard mapping, then you have to spend some time at beginning 

    looking for the keys where are located in the original Atari, and put your keyboard layout on US-ENG. The break for example is located in the backspace key and you must look where the ctrl+* is located for left arrow, etc. This is the main issue but expecting to fix it.

     

    What is your language of your keyboard? What keys are displayed if you press A, B, C, shift-1, shift-2, etc? That can be very useful to me to solve the problem.

     

    I will solve that it in the future, if I found out how to indicate custom mappings on MAME.

  9. Also, if you have a customizable and embed-able emulator, you can create tools and content like this:

     

    https://8bitworkshop.com/v3.7.1/?file=joyas.bas&platform=atari8-800xl.mame

     

    Additionally, I wish that in the future the javascript/webassembly emulators have internet suppport (emulating fujinet with websocker or R: o N: device), then it can make possible to play your old games (o new ones) online just simple as opening a page. Well..., you may say I'm a dreamer, but I think that I'm not the only one ;-)

     

    There is a lot of browsers where is possible to take all the great Atari 8-bit apps that the hobbyists create, just for fun.

    • Like 1
  10. Of course an expert can configure a modern IDE and use a cross-assembler.

     

    But I think in fact that this can be usefull for beginners, many people study 6502 assembly today:

     

    https://codeburst.io/an-introduction-to-6502-assembly-and-low-level-programming-7c11fa6b9cb9


    That is the main reason to create a page in that you can experience from first and how is assembly some code and get direct results.

     

     Also the are old books that remember the old Atari editors, as atari roots:

     

     

    You can take the AtariRoots book, and practice directly in a live machine:

     

    https://eahumada.github.io/AtariOnline/assembler/assembler-mame.html

     

    The main motivation is for learn and teaching (apart of historical reasons and nostalgia) and fun! I wonder if you remember that many of us enter in programming, just for the fun that it gives.

     

    ;-) Just I want that somebody that see a video like this in the future, have the chance to google for some Atari emulator page where to practice. The alternative is have to configure eclipse and install an assembler and emulator to get some result and can be frustrating for a noob.

     

     

  11. Glad to show an emulated MAC/65 environment with DDT, that can be use from a web page when you want to do some assembly in your free time ;-) :

     

    https://eahumada.github.io/AtariOnline/mac65/mac65-mame.html

    Example:

    ENTER #D:SPRITE1.LST

    ASM

    DDT

    G 500B

    (You can use the numeric keypad as joystick and some times when you have a game-pad and MAME recognize that is connected you can move the sprite)

     

    Sadly, JavaScript MAME is not an accurate emulator, but I have the hope than in the future some other JavaScript/WebAssembly emulator emerge (jsAtari800 maybe? jsAltirra?) to allow to publish Atari interactive 8-bit content

     

    Here is the page for the work in progress Project, please feel free to fork and use to create your own content:

     

    https://eahumada.github.io/AtariOnline/

     

    Credits to '@8-bit and more' for the inspiration, when I see his videos I don't have and Atari with Mac65/DDT cartridge at hand, then I get this idea and also thinking how the authors of 8-bit content can share their creations live online, for teach and learn 6502 Atari programming.

     

    • Like 2
  12. 11 hours ago, damosan said:

    This is really cool but how useful is it?  Once you have a JVM running on a 48/64k machine how much is left over for byte code?

     

    I built a toy VM a few years ago implementing a 16 instruction stack machine.  It worked well and I started to implement some of the core in assembly but then the tech ADHD SQUIRREL! happened...  :)

     

    I think that this fall in the category: "We did it because we can." ?

     

    But, I get you, may be is not very useful as after compiled and linked, the final xex images with an average program give us only 3K left for data, even if use Proguard to optimize the class library bytecode, but at least can be useful to write some short examples in Java as you can see in the code. I know that not brilliant spend 32-bytes in a integer, but Atari Basic use 40-bit. After you prototype your code in Java it could be ported later to C. The runtime interpreter and the embedded bytecode is compiled with CC65, may be if we use a compiler that produce code optimized for 6502 we can get better results. Also, it is possible to rewrite the interpreter in assembly, but then it will lose portability. Currently the same interpreter can be run on linux, windows, macos, c64, a800, etc.

    • Like 2
  13. Yes, is possible to run JAVA bytecode on 8-bit home computers and develop some atari examples using standard class libraries.
     
    Here a demo running on Atari800 (The .XEX was tested on a real machine).
     
    This is a port to Atari from the B2FJ java virtual machine that allows to run bytecode on C64 (https://mzattera.github.io/b2fJ/)
     
    Demo Sources:
     
    Project on GitHub:
     

    b2fjplay.xex

    • Like 4
    • Thanks 3
    • Haha 1
×
×
  • Create New...