Abstract
CHIP-8 is the name given to the interpreted programming language developed in the mid-1970s. The sole purpose of the language was to make video games easily programmable for the machines which employed the programming language and software testing. There exist a number of classic games such as Pong, Tetris, Space Invaders, and Pac-Man that have been ported to CHIP-8. Technically speaking, the games written for CHIP-8 run on the “CHIP-8 Virtual Machine” which has its own instruction set comprising of 35 instructions along with 16 registers. The virtual machine has a resolution of 64 × 32 pixels, and color is monochrome. In this paper, we have implemented a CHIP-8 emulator written in the C programming language. We have handled the drawing on screen with the Simple DirectMedia Layer library (SDL2) and continuous software testing. The CHIP-8 virtual machine is similar to that of the Java virtual machine of the Java programming language but is much simpler in design. We have listed each instruction explaining what it does and how it carries out it while providing the detailed documentation of our CHIP-8 emulator and thus providing metaheuristic high-level solutions to fix them.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
http://www.multigesture.net/articles/how-to-write-an-emulator-chip-8-interpreter/
Osman, I., & Kelly, J. (1996). Meta-hueuristics theory and applications (pp. 1–690) ISBN:978-1-4613-1361-8.
Sharma, M., & Kaur, P. (2021). A Comprehensive analysis of nature-inspired meta-heuristic techniques for feature selection problem. Archives of Computational Methods in Engineering, 28, 1103–1127.
Jones, N. (1999). Arrays of pointers to functions: Embedded systems programming. Embeded Systems Programming, 46–56.
Martinez, F., Herrero, C., & Pablo, S. D. (2014). Open loop wind turbine emulator. In Renewable energy (Vol. 63, pp. 212–221). Elsevier.
Mizutani, I., & Mitsugi, J. (2016). A multicode and portable RFID tag events emulator for RFID information system. In Proceeding of 6th international conference on internet of things (pp. 187–188).
Babacan, Y., & Kakar, F. (2016). Floating memristror emulator with subthreshold region (Vol. 90, pp. 471–475). Springer.
Priyadarshini, S. B. B., & Panigrahi, S. (2017). A distributed scalar controller selection schemefor redundant data elimination in sensor networks. International Journal of Knowledgediscovery in Bioinformatics, IGI Global, 7(1), 91–104.
Ahrenholz, J., Goff, T., & Adamson, B. (2011). Integration of the CORE and EMANE network emulators. In MILCOM 2011 military communications conference.
Jena, A., Das, A. K., Mohapatra, H., & Prasad, D. (2020). Automated software testing foundations, applications and challenges (pp. 1–165) ISBN:978-981-15-2455-4.
Ellims, M., & Jackson, K. ISO 9001: Making the right mistakes (SAE Technical Paper Series 2000-01-0714).
Davis, M., & Weyuker, E. J. (1998). Metric-based Test data Adequacy criteria. Computer Journal, 13(1), 17–24.
Jorgensen. (1995). Software testing a craftsman’s approach. CRC Press.
Lyu, M. R., Huang, Z., Sze, S. K., & Cai, X. (2003). An empirical study on testing and fault tolerance for software reliability engineering (pp. 119–130).
McCabe, T. J. (1976). A complexity measure. IEEE Transactions on Software Engineering, 2(4), 202–213.
Richard, D. J., & Thompson, M. C. (1993). An analysis of test data selection criteria using the relay model of fault detection. IEEE Transactions on Software Engineering, 19(6), 533–553.
Torkar, R., Mankefors, S., Hansson, K., & Jonsson, A. (2003). An exploratory study of component reliability using unit testing. In Proceeding 14 international symposium on system reliability engineering (pp. 227–233).
Voas, J. M., & Miller, K. W. (1995). Software testability: The new verification. Software, 17–18.
Zhu, H. (1996). A formal analysis of subsume relation between software testing adequacy criteria. IEEE Transactions on Software Engineering, 22(4), 248–255.
Zhu, H., Hall, P. A. V., & May, J. H. R. (1997). Software unit test coverage and adequacy. ACM Computing Surveys, 29(4), 366–427.
Acknowledgment
We would like to thank the Department of Computer Science & Information Technology, Institute of Technical Education & Research, Siksha ‘O’ Anusandhan Deemed to be University for making this investigation successful.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2022 Springer Nature Switzerland AG
About this chapter
Cite this chapter
Priyadarshini, S.B.B., Mahapatra, A., Mohanty, S.N., Nayak, A., Jena, J.P., Samanta, S.K.S. (2022). myCHIP-8 Emulator: An Innovative Software Testing Strategy for Playing Online Games in Many Platforms. In: Khari, M., Mishra, D.B., Acharya, B., Gonzalez Crespo, R. (eds) Optimization of Automated Software Testing Using Meta-Heuristic Techniques. EAI/Springer Innovations in Communication and Computing. Springer, Cham. https://doi.org/10.1007/978-3-031-07297-0_9
Download citation
DOI: https://doi.org/10.1007/978-3-031-07297-0_9
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-07296-3
Online ISBN: 978-3-031-07297-0
eBook Packages: Intelligent Technologies and RoboticsIntelligent Technologies and Robotics (R0)